@agile-team/mach-report 2.10.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +6 -2
  2. package/dist/ExcelBindingWizard-CjIiVox-.cjs +1 -0
  3. package/dist/ExcelBindingWizard-Dxm-K5HL.js +1240 -0
  4. package/dist/ParamEditor-D-Hf5xfO.cjs +1 -0
  5. package/dist/ParamEditor-DRGxzxeO.js +381 -0
  6. package/dist/ReportBatchPanel-BYgg0EDB.cjs +1 -0
  7. package/dist/ReportBatchPanel-Bby5yLzU.js +287 -0
  8. package/dist/ReportPreview-DWXROHBP.cjs +6 -0
  9. package/dist/ReportPreview-DiNXhQI0.js +4138 -0
  10. package/dist/ReportTemplateLibrary-C6CO7YCT.cjs +1 -0
  11. package/dist/ReportTemplateLibrary-DfzDXRvr.js +260 -0
  12. package/dist/RuleEditor-C2QsOHOs.cjs +1 -0
  13. package/dist/RuleEditor-D9wQHrkf.js +2024 -0
  14. package/dist/TemplateReviewPanel-BKofGrV9.js +222 -0
  15. package/dist/TemplateReviewPanel-DwtOcLue.cjs +1 -0
  16. package/dist/analytics.cjs +1 -1
  17. package/dist/analytics.d.cts +2 -0
  18. package/dist/analytics.d.ts +2 -0
  19. package/dist/analytics.js +29 -29
  20. package/dist/batch-Bt3Fd27Z.cjs +1 -0
  21. package/dist/batch-mRqhhhjt.js +364 -0
  22. package/dist/computed-Bvk0W15F.js +521 -0
  23. package/dist/computed-CGV2a809.cjs +1 -0
  24. package/dist/config-B612mw0x.js +525 -0
  25. package/dist/config-BRoLo2oj.cjs +1 -0
  26. package/dist/designer.cjs +2 -2
  27. package/dist/designer.d.cts +659 -9
  28. package/dist/designer.d.ts +659 -9
  29. package/dist/designer.js +2030 -1824
  30. package/dist/index.cjs +8 -8
  31. package/dist/index.d.cts +147 -3
  32. package/dist/index.d.ts +147 -3
  33. package/dist/index.js +639 -592
  34. package/dist/injection-keys-Db_DyLkm.cjs +1 -0
  35. package/dist/injection-keys-e85udZCp.js +7 -0
  36. package/dist/list-cell-BuYn4tGF.cjs +1 -0
  37. package/dist/{list-cell-Dxyi7DOw.js → list-cell-ClFra1zS.js} +54 -40
  38. package/dist/matrix-DVyWiYsd.cjs +1 -0
  39. package/dist/matrix-yZsGnldA.js +227 -0
  40. package/dist/param-validation-BlHHXs6u.js +153 -0
  41. package/dist/param-validation-DCK039V1.cjs +1 -0
  42. package/dist/pdf.cjs +25 -25
  43. package/dist/pdf.d.cts +3 -0
  44. package/dist/pdf.d.ts +3 -0
  45. package/dist/pdf.js +677 -677
  46. package/dist/plugin-BDTU4D94.cjs +1 -0
  47. package/dist/plugin-Cd5G2QQn.js +22 -0
  48. package/dist/region-binding-workflow-CXDmt9Bs.js +977 -0
  49. package/dist/region-binding-workflow-DhQvu1co.cjs +3 -0
  50. package/dist/{report-params-B_VCihAh.js → report-params-B44imUd4.js} +1 -1
  51. package/dist/{report-params-CjWrjPl6.cjs → report-params-SJfhKgaX.cjs} +1 -1
  52. package/dist/server/node.d.cts +5 -2
  53. package/dist/server/node.d.ts +5 -2
  54. package/dist/server-node.cjs +1 -1
  55. package/dist/server-node.js +87 -87
  56. package/dist/server.cjs +1 -1
  57. package/dist/server.d.cts +201 -2
  58. package/dist/server.d.ts +201 -2
  59. package/dist/server.js +557 -658
  60. package/dist/style.css +1 -1
  61. package/dist/template-registry-WNXdkiET.js +506 -0
  62. package/dist/template-registry-ukBGlm8N.cjs +1 -0
  63. package/dist/template-review-BXp2oyqg.cjs +1 -0
  64. package/dist/template-review-BdcXSYbx.js +1616 -0
  65. package/dist/tree-BX380Rr7.cjs +1 -0
  66. package/dist/tree-CqcQ99NM.js +172 -0
  67. package/dist/{validate-UUy9yP4K.js → validate-7s0yn6ii.js} +44 -44
  68. package/dist/validate-DsRiNw8h.cjs +1 -0
  69. package/dist/vue/async.d.cts +93 -4
  70. package/dist/vue/async.d.ts +93 -4
  71. package/dist/vue/index.d.cts +145 -7
  72. package/dist/vue/index.d.ts +145 -7
  73. package/dist/vue-async.cjs +1 -1
  74. package/dist/vue-async.js +5 -5
  75. package/dist/vue.cjs +1 -1
  76. package/dist/vue.js +116 -113
  77. package/dist/{workbook-session-B-bW5_yR.js → workbook-session-BKOTwcoq.js} +1 -1
  78. package/dist/{workbook-session-D7RtdNo0.cjs → workbook-session-CLYLhZWu.cjs} +1 -1
  79. package/dist/worker.cjs +1 -1
  80. package/dist/worker.d.cts +5 -2
  81. package/dist/worker.d.ts +5 -2
  82. package/dist/worker.js +1 -1
  83. package/dist/xlsx.cjs +3 -3
  84. package/dist/xlsx.d.cts +129 -2
  85. package/dist/xlsx.d.ts +129 -2
  86. package/dist/xlsx.js +336 -242
  87. package/package.json +1 -1
  88. package/dist/ExcelBindingWizard-CF7RplWm.cjs +0 -1
  89. package/dist/ExcelBindingWizard-qhwEderR.js +0 -842
  90. package/dist/ReportPreview-BE1tCHqE.js +0 -4604
  91. package/dist/ReportPreview-QKRKQOe3.cjs +0 -6
  92. package/dist/RuleEditor-BA36yIV6.js +0 -1723
  93. package/dist/RuleEditor-CczJ6mJm.cjs +0 -1
  94. package/dist/TemplateReviewPanel-CHi4Alqa.cjs +0 -1
  95. package/dist/TemplateReviewPanel-Dz0G5o83.js +0 -217
  96. package/dist/binding-preview-BWsdf_z2.cjs +0 -2
  97. package/dist/binding-preview-DILq0-0f.js +0 -649
  98. package/dist/decimal-CI1OAczk.js +0 -87
  99. package/dist/decimal-CQA0xJex.cjs +0 -1
  100. package/dist/list-cell-CyM1ZlRN.cjs +0 -1
  101. package/dist/matrix-BbXarwyk.js +0 -661
  102. package/dist/matrix-Cm65WLLP.cjs +0 -1
  103. package/dist/param-validation-BWNjLcN0.js +0 -116
  104. package/dist/param-validation-CiTxFeZ8.cjs +0 -1
  105. package/dist/plugin-CThk42vJ.cjs +0 -1
  106. package/dist/plugin-tGn7-5oF.js +0 -25
  107. package/dist/template-registry-CGWTLtIA.cjs +0 -1
  108. package/dist/template-registry-DzlQs3OF.js +0 -434
  109. package/dist/template-review-D1RoNCPw.cjs +0 -1
  110. package/dist/template-review-fnteXRng.js +0 -1473
  111. package/dist/validate-Bf6ccFr2.cjs +0 -1
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),W=require("./matrix-Cm65WLLP.cjs"),q=require("./useLocalDraft-Yiw1wFgI.cjs"),Q=require("./template-registry-CGWTLtIA.cjs"),Z=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),oe=require("./designer.cjs");function X(t,D=new Set){return typeof t=="string"||("field"in t&&t.field&&D.add(t.field),"weightField"in t&&t.weightField&&D.add(t.weightField),"args"in t&&t.args.forEach(b=>X(b,D))),D}function Y(t,D){return typeof t=="string"?t:"value"in t?t.value===null?D.null:String(t.value):"aggregate"in t?`${D[t.aggregate]}(${t.field??D.allRows})`:"field"in t?t.field:`${D[t.op]}(${t.args.map(b=>Y(b,D)).join(", ")})`}function ie(t,D,b){const x=e.ref("");function v(g){const f=t.list.columns.find(N=>N.field===g)?.format;return f&&"digits"in f&&f.digits!==void 0?`${f.digits} ${b.value.digits}`:void 0}const d=e.computed(()=>{const g=new Map;for(const f of t.datasetSchema?.fields??[])g.set(f.field,{field:f.field,label:f.label??f.field,meta:[f.type,f.unit,v(f.field)].filter(Boolean).join(" · ")});for(const f of t.list.columns)g.has(f.field)||g.set(f.field,{field:f.field,label:f.header||f.field,meta:f.semanticRole??""});return[...g.values()]}),l=e.computed(()=>{const g=x.value.trim().toLocaleLowerCase();return d.value.filter(f=>`${f.field} ${f.label} ${f.meta}`.toLocaleLowerCase().includes(g))}),c=e.computed(()=>Y(D.value.expression,b.value)),p=e.computed(()=>{const g=[...X(D.value.expression)];return(t.datasets?.[t.list.dataset]??[]).slice(0,5).map((f,N)=>({row:N+1,values:g.map(y=>`${y} = ${f[y]==null?b.value.null:String(f[y])}`).join(" · ")}))});return{query:x,matches:l,fieldWindow:e.computed(()=>l.value.slice(0,50)),expression:c,sources:p}}const A=t=>JSON.parse(JSON.stringify(t));function re(t,D){const b=e.ref(!1),x=e.ref(""),v=e.ref({dataset:"",parentKey:"",foreignKey:"",columns:[]}),d=e.ref({rowFields:[],columnFields:[],measures:[]}),l=q.useLocalDraft(()=>({enabled:b.value,detail:v.value,matrix:d.value}));let c;const p=e.ref(),g=e.computed(()=>[...new Set([...Object.keys(t.datasets??{}),...Object.keys(t.datasetSchemas??{})])]),f=e.computed(()=>y(t.list.dataset,t.datasetSchema)),N=e.computed(()=>y(v.value.dataset));function y(m,B){const h=new Map;for(const w of(B??t.datasetSchemas?.[m])?.fields??[])h.set(w.field,w.label??w.field);const F=t.datasets?.[m]?.[0];for(const w of Object.keys(F??{}))h.has(w)||h.set(w,w);if(m===t.list.dataset)for(const w of t.list.columns)h.has(w.field)||h.set(w.field,w.header||w.field);return[...h].map(([w,R])=>({field:w,label:R}))}function $(){if(c===JSON.stringify(t.list)){c=void 0;return}b.value=t.mode==="detail"?!!t.list.detail:!!t.list.matrix;const m=g.value.find(B=>B!==t.list.dataset)??"";v.value=A(t.list.detail??{dataset:m,parentKey:t.list.rowKey??t.datasetSchema?.rowKey??f.value[0]?.field??"",foreignKey:"",columns:[],header:!0,unmatched:"error"}),d.value=A(t.list.matrix??{rowFields:[],columnFields:[],measures:[],totals:!0}),d.value.measures=d.value.measures.map(B=>({...B,numeric:B.numeric??"number"})),x.value="",p.value=void 0,l.accept()}e.watch(()=>[t.mode,t.list.dataset,t.mode==="detail"?t.list.detail:t.list.matrix],$,{immediate:!0});function M(m){v.value.dataset=m,v.value.columns=[],v.value.foreignKey=N.value[0]?.field??"",v.value.rowKey=t.datasetSchemas?.[m]?.rowKey}function r(m,B){if(B&&!v.value.columns.some(h=>h.field===m)){const h=t.datasetSchemas?.[v.value.dataset]?.fields.find(F=>F.field===m);v.value.columns.push({field:m,header:N.value.find(F=>F.field===m)?.label??m,widthMm:30,align:"auto",semanticRole:h?.semanticRole,editable:!1})}else B||(v.value.columns=v.value.columns.filter(h=>h.field!==m))}function n(m,B,h){const F=d.value[m];d.value[m]=h?[...new Set([...F,B])]:F.filter(w=>w!==B)}function k(){d.value.measures=[...d.value.measures,{field:f.value[0]?.field??"",op:"sum",numeric:"number"}]}function o(m){d.value.measures=d.value.measures.filter((B,h)=>h!==m)}function S(){x.value="",p.value=void 0;try{const m=t.datasets?.[t.list.dataset]??[];if(!m.length)throw new Error(t.messages.noData);const B=W.createMatrixTable(m.slice(0,1e3),{...d.value,maxInputRows:1e3});p.value={columns:B.columns.slice(0,5).map(h=>h.header),rows:B.rows.slice(0,5).map(h=>B.columns.slice(0,5).map(F=>h[F.field]))}}catch(m){x.value=m instanceof Error?m.message:String(m)}}function L(){if(t.readonly)return;const m=A(t.list);t.mode==="detail"?b.value?(m.detail=A(v.value),delete m.matrix):delete m.detail:b.value?(m.matrix=A(d.value),delete m.detail,delete m.groups,delete m.groupBy,delete m.grandTotal):delete m.matrix;const B=Q.validateReportTemplate({pages:[{widthMm:Math.max(1,m.leftMm+m.widthMm),heightMm:297,components:[m]}]});if(!B.ok){x.value=B.errors.slice(0,3).map(h=>h.message).join(";");return}t.accept&&!t.accept(m)||(c=JSON.stringify(m),t.accept||D(m),l.accept())}return{enabled:b,pendingLocalChanges:l.pending,detail:v,matrix:d,datasets:g,sourceFields:f,childFields:N,error:x,preview:p,chooseDataset:M,toggleChildColumn:r,toggleDimension:n,addMeasure:k,removeMeasure:o,checkMatrix:S,apply:L}}const de={class:"mr-data-layout"},se={class:"mr-data-layout__check"},ue=["disabled"],ce={class:"mr-data-layout__hint"},me=["aria-label","value","disabled"],fe={value:"",disabled:""},ge=["value"],ve={class:"mr-data-layout__pair"},ye=["aria-label","disabled"],be=["value"],ke=["aria-label","disabled"],he={value:"",disabled:""},Ve=["value"],Ee=["aria-label","disabled"],pe={value:void 0},Ne=["value"],Be={class:"mr-data-layout__choices"},De=["checked","disabled","onChange"],Se=["aria-label","disabled"],we={class:"mr-data-layout__pair"},Ce=["aria-label","disabled"],xe={value:"error"},$e={value:"ignore"},Me={class:"mr-data-layout__check"},Fe=["disabled"],Te={class:"mr-data-layout__hint"},Le=["checked","disabled","onChange"],Ue={class:"mr-data-layout__pair"},Re=["aria-label","onUpdate:modelValue","disabled"],Ke=["value"],Ge=["aria-label","onUpdate:modelValue","disabled"],_e=["value"],Oe=["aria-label","onUpdate:modelValue","disabled","placeholder"],We={key:0},je=["aria-label","onUpdate:modelValue","disabled"],Ae=["value"],Ie={class:"mr-data-layout__pair"},Je=["aria-label","onUpdate:modelValue","disabled"],qe={value:"number"},He={value:"decimal"},ze=["aria-label","onUpdate:modelValue","disabled"],Ze=["disabled","onClick"],Pe=["disabled"],Qe={class:"mr-data-layout__check"},Xe=["disabled"],Ye={class:"mr-data-layout__pair"},et=["disabled"],tt=["disabled"],lt={class:"mr-data-layout__actions"},at=["disabled"],nt=["disabled"],ot={key:2,class:"mr-data-layout__preview"},it={key:3,class:"mr-data-layout__error",role:"alert"},rt=e.defineComponent({__name:"RuleDataLayout",props:{list:{},accept:{type:Function},mode:{},datasets:{},datasetSchema:{},datasetSchemas:{},readonly:{type:Boolean},messages:{}},emits:["change","dirty"],setup(t,{emit:D}){const b=t,x=D,v=re(b,M=>x("change",M)),{enabled:d,detail:l,matrix:c,datasets:p,sourceFields:g,childFields:f,error:N,preview:y}=v;e.watch([v.pendingLocalChanges,d,l,c],()=>x("dirty",v.pendingLocalChanges.value),{immediate:!0,deep:!0,flush:"sync"});const $=W.getComputationMetadata();return(M,r)=>(e.openBlock(),e.createElementBlock("div",de,[e.createElementVNode("label",se,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[0]||(r[0]=n=>e.isRef(d)?d.value=n:null),type:"checkbox",disabled:t.readonly},null,8,ue),[[e.vModelCheckbox,e.unref(d)]]),e.createTextVNode(e.toDisplayString(t.messages.enabled)+e.toDisplayString(t.mode==="detail"?t.messages.detail:t.messages.matrix),1)]),e.unref(d)&&t.mode==="detail"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("p",ce,e.toDisplayString(t.messages.detailHint),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.childDataset),1),e.createElementVNode("select",{"aria-label":t.messages.childDataset,value:e.unref(l).dataset,disabled:t.readonly,onChange:r[1]||(r[1]=n=>e.unref(v).chooseDataset(n.target.value))},[e.createElementVNode("option",fe,e.toDisplayString(t.messages.select),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),n=>(e.openBlock(),e.createElementBlock("option",{key:n,value:n},e.toDisplayString(n),9,ge))),128))],40,me)]),e.createElementVNode("div",ve,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.parentKey),1),e.withDirectives(e.createElementVNode("select",{"aria-label":t.messages.parentKey,"onUpdate:modelValue":r[2]||(r[2]=n=>e.unref(l).parentKey=n),disabled:t.readonly},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),n=>(e.openBlock(),e.createElementBlock("option",{key:n.field,value:n.field},e.toDisplayString(n.label),9,be))),128))],8,ye),[[e.vModelSelect,e.unref(l).parentKey]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.foreignKey),1),e.withDirectives(e.createElementVNode("select",{"aria-label":t.messages.foreignKey,"onUpdate:modelValue":r[3]||(r[3]=n=>e.unref(l).foreignKey=n),disabled:t.readonly},[e.createElementVNode("option",he,e.toDisplayString(t.messages.select),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),n=>(e.openBlock(),e.createElementBlock("option",{key:n.field,value:n.field},e.toDisplayString(n.label),9,Ve))),128))],8,ke),[[e.vModelSelect,e.unref(l).foreignKey]])])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.rowKey),1),e.withDirectives(e.createElementVNode("select",{"aria-label":t.messages.rowKey,"onUpdate:modelValue":r[4]||(r[4]=n=>e.unref(l).rowKey=n),disabled:t.readonly},[e.createElementVNode("option",pe,e.toDisplayString(t.messages.noRowKey),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),n=>(e.openBlock(),e.createElementBlock("option",{key:n.field,value:n.field},e.toDisplayString(n.label),9,Ne))),128))],8,Ee),[[e.vModelSelect,e.unref(l).rowKey]])]),e.createElementVNode("fieldset",Be,[e.createElementVNode("legend",null,e.toDisplayString(t.messages.childColumns),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),n=>(e.openBlock(),e.createElementBlock("label",{key:n.field},[e.createElementVNode("input",{type:"checkbox",checked:e.unref(l).columns.some(k=>k.field===n.field),disabled:t.readonly,onChange:k=>e.unref(v).toggleChildColumn(n.field,k.target.checked)},null,40,De),e.createTextVNode(e.toDisplayString(n.label),1)]))),128))]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.title),1),e.withDirectives(e.createElementVNode("input",{"aria-label":t.messages.title,"onUpdate:modelValue":r[5]||(r[5]=n=>e.unref(l).label=n),disabled:t.readonly},null,8,Se),[[e.vModelText,e.unref(l).label]])]),e.createElementVNode("div",we,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.unmatched),1),e.withDirectives(e.createElementVNode("select",{"aria-label":t.messages.unmatched,"onUpdate:modelValue":r[6]||(r[6]=n=>e.unref(l).unmatched=n),disabled:t.readonly},[e.createElementVNode("option",xe,e.toDisplayString(t.messages.error),1),e.createElementVNode("option",$e,e.toDisplayString(t.messages.ignore),1)],8,Ce),[[e.vModelSelect,e.unref(l).unmatched]])]),e.createElementVNode("label",Me,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[7]||(r[7]=n=>e.unref(l).header=n),type:"checkbox",disabled:t.readonly},null,8,Fe),[[e.vModelCheckbox,e.unref(l).header]]),e.createTextVNode(e.toDisplayString(t.messages.childHeader),1)])])],64)):e.unref(d)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("p",Te,e.toDisplayString(t.messages.matrixHint),1),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["rowFields","columnFields"],n=>e.createElementVNode("fieldset",{key:n,class:"mr-data-layout__choices"},[e.createElementVNode("legend",null,e.toDisplayString(t.messages[n]),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),k=>(e.openBlock(),e.createElementBlock("label",{key:k.field},[e.createElementVNode("input",{type:"checkbox",checked:e.unref(c)[n].includes(k.field),disabled:t.readonly,onChange:o=>e.unref(v).toggleDimension(n,k.field,o.target.checked)},null,40,Le),e.createTextVNode(e.toDisplayString(k.label),1)]))),128))])),64)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(c).measures,(n,k)=>(e.openBlock(),e.createElementBlock("div",{key:k,class:"mr-data-layout__measure"},[e.createElementVNode("div",Ue,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.measure),1),e.withDirectives(e.createElementVNode("select",{"aria-label":t.messages.measure,"onUpdate:modelValue":o=>n.field=o,disabled:t.readonly},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),o=>(e.openBlock(),e.createElementBlock("option",{key:o.field,value:o.field},e.toDisplayString(o.label),9,Ke))),128))],8,Re),[[e.vModelSelect,n.field]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.aggregate),1),e.withDirectives(e.createElementVNode("select",{"aria-label":t.messages.aggregate,"onUpdate:modelValue":o=>n.op=o,disabled:t.readonly},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref($).aggregates,o=>(e.openBlock(),e.createElementBlock("option",{key:o,value:o},e.toDisplayString(t.messages[o]),9,_e))),128))],8,Ge),[[e.vModelSelect,n.op]])])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.measureLabel),1),e.withDirectives(e.createElementVNode("input",{"aria-label":t.messages.measureLabel,"onUpdate:modelValue":o=>n.label=o,disabled:t.readonly,placeholder:n.field},null,8,Oe),[[e.vModelText,n.label]])]),n.op==="weightedAvg"?(e.openBlock(),e.createElementBlock("label",We,[e.createTextVNode(e.toDisplayString(t.messages.weight),1),e.withDirectives(e.createElementVNode("select",{"aria-label":t.messages.weight,"onUpdate:modelValue":o=>n.weightField=o,disabled:t.readonly},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),o=>(e.openBlock(),e.createElementBlock("option",{key:o.field,value:o.field},e.toDisplayString(o.label),9,Ae))),128))],8,je),[[e.vModelSelect,n.weightField]])])):e.createCommentVNode("",!0),e.createElementVNode("div",Ie,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.numeric),1),e.withDirectives(e.createElementVNode("select",{"aria-label":t.messages.numeric,"onUpdate:modelValue":o=>n.numeric=o,disabled:t.readonly},[e.createElementVNode("option",qe,e.toDisplayString(t.messages.number),1),e.createElementVNode("option",He,e.toDisplayString(t.messages.decimal),1)],8,Je),[[e.vModelSelect,n.numeric]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.digits),1),e.withDirectives(e.createElementVNode("input",{"aria-label":t.messages.digits,"onUpdate:modelValue":o=>n.digits=o,type:"number",min:"0",max:"100",disabled:t.readonly},null,8,ze),[[e.vModelText,n.digits,void 0,{number:!0}]])])]),e.createElementVNode("button",{type:"button",disabled:t.readonly,onClick:o=>e.unref(v).removeMeasure(k)},e.toDisplayString(t.messages.remove),9,Ze)]))),128)),e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(c).measures.length>=32,onClick:r[8]||(r[8]=(...n)=>e.unref(v).addMeasure&&e.unref(v).addMeasure(...n))}," + "+e.toDisplayString(t.messages.addAggregate),9,Pe),e.createElementVNode("label",Qe,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[9]||(r[9]=n=>e.unref(c).totals=n),type:"checkbox",disabled:t.readonly},null,8,Xe),[[e.vModelCheckbox,e.unref(c).totals]]),e.createTextVNode(e.toDisplayString(t.messages.totals),1)]),e.createElementVNode("details",null,[e.createElementVNode("summary",null,e.toDisplayString(t.messages.widthSettings),1),e.createElementVNode("div",Ye,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.dimensionWidth),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[10]||(r[10]=n=>e.unref(c).rowWidthMm=n),type:"number",min:"1",disabled:t.readonly,placeholder:"40"},null,8,et),[[e.vModelText,e.unref(c).rowWidthMm,void 0,{number:!0}]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.messages.measureWidth),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[11]||(r[11]=n=>e.unref(c).columnWidthMm=n),type:"number",min:"1",disabled:t.readonly,placeholder:"28"},null,8,tt),[[e.vModelText,e.unref(c).columnWidthMm,void 0,{number:!0}]])])])])],64)):e.createCommentVNode("",!0),e.createElementVNode("div",lt,[e.unref(d)&&t.mode==="matrix"?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:t.readonly,onClick:r[12]||(r[12]=(...n)=>e.unref(v).checkMatrix&&e.unref(v).checkMatrix(...n))},e.toDisplayString(t.messages.check),9,at)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"mr-data-layout__primary",disabled:t.readonly,onClick:r[13]||(r[13]=(...n)=>e.unref(v).apply&&e.unref(v).apply(...n))},e.toDisplayString(t.messages.apply),9,nt)]),e.unref(y)?(e.openBlock(),e.createElementBlock("div",ot,[e.createElementVNode("p",null,e.toDisplayString(t.messages.sample),1),e.createElementVNode("table",null,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y).columns,(n,k)=>(e.openBlock(),e.createElementBlock("th",{key:k},e.toDisplayString(n),1))),128))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y).rows,(n,k)=>(e.openBlock(),e.createElementBlock("tr",{key:k},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n,(o,S)=>(e.openBlock(),e.createElementBlock("td",{key:S},e.toDisplayString(o??"—"),1))),128))]))),128))])])])):e.createCommentVNode("",!0),e.unref(N)?(e.openBlock(),e.createElementBlock("p",it,e.toDisplayString(e.unref(N)),1)):e.createCommentVNode("",!0)]))}}),dt=Z._export_sfc(rt,[["__scopeId","data-v-744aabaf"]]),st={class:"mr-expression__row"},ut=["value","disabled","aria-label"],ct={value:"field"},mt={value:"constant"},ft={key:0,value:"operation"},gt={value:"aggregate"},vt=["value","disabled","aria-label"],yt=["value"],bt=["value","disabled","aria-label"],kt=["value"],ht=["value","disabled","aria-label"],Vt=["value"],Et=["value","disabled","aria-label"],pt={value:"text"},Nt={value:"number"},Bt={value:"boolean"},Dt={value:"null"},St=["value","disabled","aria-label"],wt={key:0,value:""},Ct=["value"],xt=["value","disabled","aria-label"],$t={value:"",disabled:""},Mt=["value"],Ft=["value","disabled","aria-label"],Tt={value:"true"},Lt={value:"false"},Ut=["type","value","disabled","aria-label"],Rt=["disabled","aria-label","onClick"],Kt=["disabled"],Gt=e.defineComponent({__name:"ReportExpressionEditor",props:{modelValue:{},fields:{},messages:{},readonly:{type:Boolean},depth:{}},emits:["update:modelValue"],setup(t,{emit:D}){const b=t,x=D,v=W.getComputationMetadata(),d=e.computed(()=>"aggregate"in b.modelValue?"aggregate":"field"in b.modelValue?"field":"value"in b.modelValue?"constant":"operation"),l=e.ref("text");e.watch(()=>b.modelValue,r=>{"value"in r&&(l.value=r.value===null?"null":typeof r.value=="string"?"text":typeof r.value)},{immediate:!0});function c(r){b.readonly||x("update:modelValue",r)}function p(r){c(r==="aggregate"?{aggregate:"sum",field:b.fields[0]?.field??""}:r==="field"?{field:b.fields[0]?.field??""}:r==="constant"?{value:""}:{op:"add",args:[{field:b.fields[0]?.field??""},{value:0}]})}function g(r){const n=r,k="args"in b.modelValue?b.modelValue.args:[{value:0},{value:0}];c({op:n,args:n==="divide"||n==="subtract"?k.slice(0,2):k})}function f(r,n){"args"in b.modelValue&&c({...b.modelValue,args:b.modelValue.args.map((k,o)=>o===r?n:k)})}function N(r){if(!("args"in b.modelValue))return;const n=r===void 0?[...b.modelValue.args,{value:0}]:b.modelValue.args.filter((k,o)=>o!==r);c({...b.modelValue,args:n})}function y(r){l.value=r,c({value:r==="null"?null:r==="boolean"?!1:r==="number"?0:""})}function $(r){l.value==="number"?r.trim()&&Number.isFinite(Number(r))&&c({value:Number(r)}):c({value:r})}function M(r,n){if(!("aggregate"in b.modelValue))return;const k={...b.modelValue,[r]:n};r==="aggregate"&&(k.aggregate=n),r==="field"&&!n&&delete k.field,c(k)}return(r,n)=>{const k=e.resolveComponent("ReportExpressionEditor",!0);return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["mr-expression",{"mr-expression--nested":(t.depth??0)>0}])},[e.createElementVNode("div",st,[e.createElementVNode("select",{value:d.value,disabled:t.readonly,"aria-label":t.messages.argument,onChange:n[0]||(n[0]=o=>p(o.target.value))},[e.createElementVNode("option",ct,e.toDisplayString(t.messages.field),1),e.createElementVNode("option",mt,e.toDisplayString(t.messages.constant),1),(t.depth??0)<12?(e.openBlock(),e.createElementBlock("option",ft,e.toDisplayString(t.messages.operation),1)):e.createCommentVNode("",!0),e.createElementVNode("option",gt,e.toDisplayString(t.messages.aggregate),1)],40,ut),"field"in t.modelValue&&!("aggregate"in t.modelValue)?(e.openBlock(),e.createElementBlock("select",{key:0,value:t.modelValue.field,disabled:t.readonly,"aria-label":t.messages.field,onChange:n[1]||(n[1]=o=>c({field:o.target.value}))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.fields,o=>(e.openBlock(),e.createElementBlock("option",{key:o.field,value:o.field},e.toDisplayString(o.label),9,yt))),128))],40,vt)):"op"in t.modelValue?(e.openBlock(),e.createElementBlock("select",{key:1,value:t.modelValue.op,disabled:t.readonly,"aria-label":t.messages.operation,onChange:n[2]||(n[2]=o=>g(o.target.value))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(v).operations,o=>(e.openBlock(),e.createElementBlock("option",{key:o,value:o},e.toDisplayString(t.messages[o]),9,kt))),128))],40,bt)):"aggregate"in t.modelValue?(e.openBlock(),e.createElementBlock("select",{key:2,value:t.modelValue.aggregate,disabled:t.readonly,"aria-label":t.messages.aggregate,onChange:n[3]||(n[3]=o=>M("aggregate",o.target.value))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(v).aggregates,o=>(e.openBlock(),e.createElementBlock("option",{key:o,value:o},e.toDisplayString(t.messages[o]),9,Vt))),128))],40,ht)):(e.openBlock(),e.createElementBlock("select",{key:3,value:l.value,disabled:t.readonly,"aria-label":t.messages.resultType,onChange:n[4]||(n[4]=o=>y(o.target.value))},[e.createElementVNode("option",pt,e.toDisplayString(t.messages.text),1),e.createElementVNode("option",Nt,e.toDisplayString(t.messages.number),1),e.createElementVNode("option",Bt,e.toDisplayString(t.messages.boolean),1),e.createElementVNode("option",Dt,e.toDisplayString(t.messages.null),1)],40,Et))]),"aggregate"in t.modelValue?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("select",{value:t.modelValue.field??"",disabled:t.readonly,"aria-label":t.messages.measure,onChange:n[5]||(n[5]=o=>M("field",o.target.value))},[t.modelValue.aggregate==="count"?(e.openBlock(),e.createElementBlock("option",wt,e.toDisplayString(t.messages.allRows),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.fields,o=>(e.openBlock(),e.createElementBlock("option",{key:o.field,value:o.field},e.toDisplayString(o.label),9,Ct))),128))],40,St),t.modelValue.aggregate==="weightedAvg"?(e.openBlock(),e.createElementBlock("select",{key:0,value:t.modelValue.weightField??"",disabled:t.readonly,"aria-label":t.messages.weight,onChange:n[6]||(n[6]=o=>M("weightField",o.target.value))},[e.createElementVNode("option",$t,e.toDisplayString(t.messages.weight),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.fields,o=>(e.openBlock(),e.createElementBlock("option",{key:o.field,value:o.field},e.toDisplayString(o.label),9,Mt))),128))],40,xt)):e.createCommentVNode("",!0)],64)):"value"in t.modelValue?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[l.value==="boolean"?(e.openBlock(),e.createElementBlock("select",{key:0,value:String(t.modelValue.value),disabled:t.readonly,"aria-label":t.messages.constant,onChange:n[7]||(n[7]=o=>c({value:o.target.value==="true"}))},[e.createElementVNode("option",Tt,e.toDisplayString(t.messages.true),1),e.createElementVNode("option",Lt,e.toDisplayString(t.messages.false),1)],40,Ft)):l.value!=="null"?(e.openBlock(),e.createElementBlock("input",{key:1,type:l.value==="number"?"number":"text",value:t.modelValue.value??"",disabled:t.readonly,"aria-label":t.messages.constant,onInput:n[8]||(n[8]=o=>$(o.target.value))},null,40,Ut)):e.createCommentVNode("",!0)],64)):"args"in t.modelValue?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.modelValue.args,(o,S)=>(e.openBlock(),e.createElementBlock("div",{key:S,class:"mr-expression__argument"},[e.createVNode(k,{"model-value":o,fields:t.fields,messages:t.messages,readonly:t.readonly,depth:(t.depth??0)+1,"onUpdate:modelValue":L=>f(S,L)},null,8,["model-value","fields","messages","readonly","depth","onUpdate:modelValue"]),t.modelValue.args.length>2?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:t.readonly,"aria-label":`${t.messages.remove} ${t.messages.argument} ${S+1}`,onClick:L=>N(S)}," × ",8,Rt)):e.createCommentVNode("",!0)]))),128)),!["subtract","divide"].includes(t.modelValue.op)&&t.modelValue.args.length<16?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:t.readonly,onClick:n[9]||(n[9]=o=>N())}," + "+e.toDisplayString(t.messages.addArgument),9,Kt)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)],2)}}}),_t=Z._export_sfc(Gt,[["__scopeId","data-v-84e5c0e5"]]),T=t=>JSON.parse(JSON.stringify(t));function Ot(t,D){const b=e.computed(()=>({...oe.RULE_EDITOR_MESSAGES,...t.messages})),x=e.ref("computations"),v=e.ref(""),d=e.ref(""),l=e.ref({field:"",expression:{field:""},scope:"row"}),c=e.ref([]),p=e.ref(0),g=e.ref(""),f=e.ref(-1),N=e.ref("style"),y=e.ref({field:"",op:">",value:0}),$=e.ref({color:"#b91c1c",backgroundColor:"#fff1f2",bold:!1}),M=e.ref([]),r=q.useLocalDraft(()=>l.value),n=q.useLocalDraft(()=>c.value),k=q.useLocalDraft(()=>({when:y.value,style:$.value})),o=e.ref(new Map),S=e.ref(new Map);let L="",m=!1;const B=e.computed(()=>r.pending.value||n.pending.value||k.pending.value||o.value.size>0||S.value.size>0);let h;const F=e.computed(()=>{const s=new Map;for(const u of t.datasetSchema?.fields??[])s.set(u.field,u.label??u.field);for(const u of t.list.columns)s.has(u.field)||s.set(u.field,u.header||u.field);for(const u of Object.keys(t.datasets?.[t.list.dataset]?.[0]??{}))s.has(u)||s.set(u,u);return[...s].map(([u,V])=>({field:u,label:V}))}),w=e.computed(()=>c.value[p.value]),R=e.computed(()=>t.list.columns.find(s=>s.field===g.value)),H=e.computed(()=>W.validateComputedFields(j()));function G(){if(h===JSON.stringify(t.list)){h=void 0;return}m=!0,o.value=new Map,S.value=new Map,c.value=T(t.list.groups??(t.list.groupBy?[t.list.groupBy]:[]));for(const s of c.value)for(const u of s.aggregates??[])u.numeric??="number";t.list.columns.some(s=>s.field===g.value)||(g.value=t.list.columns[0]?.field??""),v.value="",M.value=[],_(d.value),P(-1),n.accept(),m=!1}e.watch(()=>t.list,G,{immediate:!0}),e.watch(l,()=>{M.value=[]},{deep:!0}),e.watch(()=>t.datasets,()=>{M.value=[]},{deep:!0});function _(s){!m&&r.pending.value&&(o.value=new Map(o.value).set(d.value,T(l.value))),d.value=s,l.value=T(t.list.computed?.find(V=>V.field===s)??{field:"",expression:{field:F.value[0]?.field??""},scope:"row"}),l.value.numeric??="number",M.value=[],v.value="",r.accept();const u=o.value.get(s);if(u){l.value=T(u);const V=new Map(o.value);V.delete(s),o.value=V}}function j(){return[...(t.list.computed??[]).filter(u=>u.field!==d.value),T(l.value)]}function K(s){if(t.readonly)return!1;const u=Q.validateReportTemplate({pages:[{widthMm:Math.max(1,s.leftMm+s.widthMm),heightMm:297,components:[s]}]});return u.ok?(v.value="",h=JSON.stringify(s),D(s),!0):(v.value=u.errors.map(V=>V.message).slice(0,3).join(";"),!1)}function z(){if(!l.value.field.trim()){v.value=b.value.missingTarget;return}const s=T(t.list);if(s.computed=j(),s.columns.some(u=>u.field===l.value.field)||s.columns.push({field:l.value.field,header:l.value.field,widthMm:30,semanticRole:"measure",align:"right",editable:!1,format:{kind:"number",...l.value.digits===void 0?{}:{digits:l.value.digits}}}),K(s)){const u=new Map(o.value);u.delete(d.value),u.delete(l.value.field),o.value=u,d.value=l.value.field,r.accept()}}function I(){if(!d.value)return;const s=T(t.list);if(s.computed=(s.computed??[]).filter(u=>u.field!==d.value),K(s)){const u=new Map(o.value);u.delete(d.value),o.value=u,r.accept(),_("")}}function J(){M.value=[],v.value="";const s=t.datasets?.[t.list.dataset];if(!s?.length){v.value=b.value.noData;return}try{const u=W.computeDataset(s.slice(0,1e3),{fields:j(),maxRows:1e3,maxCells:2e6});M.value=u.rows.slice(0,5).map((V,U)=>({row:U+1,value:V[l.value.field]}))}catch(u){v.value=u instanceof Error?u.message:String(u)}}function i(s){l.value.expression=s}function a(s,u){l.value.groupBy=u?[...l.value.groupBy??[],s]:(l.value.groupBy??[]).filter(V=>V!==s)}function C(){c.value.push({field:F.value[0]?.field??"",headerTemplate:"{value}",subtotalLabel:b.value.subtotalLabel,aggregates:[],keepWithNext:!0}),p.value=c.value.length-1}function E(s){const u=p.value,V=u+s;V<0||V>=c.value.length||([c.value[u],c.value[V]]=[c.value[V],c.value[u]],p.value=V)}function ee(){c.value.splice(p.value,1),p.value=Math.max(0,Math.min(p.value,c.value.length-1))}function te(){w.value&&(w.value.aggregates??=[]).push({field:F.value[0]?.field??"",op:"sum",numeric:"number"})}function le(){const s=T(t.list);s.groups=T(c.value),delete s.groupBy,K(s)&&n.accept()}function P(s){!m&&k.pending.value&&(S.value=new Map(S.value).set(L,{when:T(y.value),style:{...$.value}})),L=`${g.value}|${N.value}|${s}`,f.value=s;const u=N.value==="cell"?R.value?.visibleWhen:N.value==="rowVisibility"?t.list.rowVisibleWhen:R.value?.rules?.[s]?.when;y.value=T(u??{field:g.value,op:">",value:0});const V=R.value?.rules?.[s]?.style;$.value={color:String(V?.color??"#b91c1c"),backgroundColor:String(V?.backgroundColor??"#fff1f2"),bold:V?.bold===!0},k.accept();const U=S.value.get(L);if(U){y.value=T(U.when),$.value={...U.style};const O=new Map(S.value);O.delete(L),S.value=O}}function ae(s){const u=t.datasetSchema?.fields.find(O=>O.field===y.value.field),V=t.datasets?.[t.list.dataset]?.find(O=>O[y.value.field]!=null)?.[y.value.field],U=u?.type==="number"||!u&&typeof V=="number";u?.type==="decimal"?y.value.numeric="decimal":U?y.value.numeric="number":delete y.value.numeric,y.value.value=U&&s.trim()&&Number.isFinite(Number(s))?Number(s):s}function ne(s=!1){const u=T(t.list),V=u.columns.find(U=>U.field===g.value);if(!V){v.value=b.value.noSelection;return}if(N.value==="rowVisibility")s?delete u.rowVisibleWhen:u.rowVisibleWhen=T(y.value);else if(N.value==="cell")s?delete V.visibleWhen:V.visibleWhen=T(y.value);else if(V.rules??=[],s&&f.value>=0)V.rules.splice(f.value,1);else{if(s)return;f.value<0?V.rules.push({when:T(y.value),style:{...$.value}}):V.rules[f.value]={when:T(y.value),style:{...$.value}}}if(K(u)){const U=new Map(S.value);U.delete(L),S.value=U,k.accept()}}return{m:b,pendingLocalChanges:B,draftSnapshot:()=>JSON.stringify({formula:l.value,groups:c.value,when:y.value,style:$.value,computedDrafts:[...o.value],conditionDrafts:[...S.value]}),tab:x,fields:F,formula:l,groups:c,groupIndex:p,currentGroup:w,column:g,currentColumn:R,conditionIndex:f,effect:N,when:y,style:$,error:v,preview:M,diagnostics:H,selectedComputed:d,loadComputed:_,applyComputed:z,removeComputed:I,check:J,setExpression:i,toggleGroupField:a,addGroup:C,moveGroup:E,removeGroup:ee,addAggregate:te,applyGroups:le,loadCondition:P,setThreshold:ae,applyCondition:ne,applyLayout:K,resetDraft:()=>{h=void 0,G()}}}const Wt=["aria-label"],jt={class:"mr-rule-editor__directory"},At=["aria-label"],It=["aria-selected","onClick"],Jt={key:0},qt={key:1},Ht={class:"mr-rule-editor__catalog"},zt=["disabled"],Zt=["aria-label"],Pt={class:"mr-rule-editor__field-list"},Qt=["disabled","title","onClick"],Xt={key:1},Yt={key:0,class:"mr-rule-editor__panel"},el=["aria-label","value","disabled"],tl={value:""},ll=["value"],al=["aria-label","disabled"],nl={class:"mr-rule-editor__pair"},ol=["aria-label","disabled"],il=["value"],rl=["aria-label","disabled"],dl={value:"number"},sl={value:"decimal"},ul={key:0,class:"mr-rule-editor__checks"},cl=["checked","disabled","onChange"],ml={key:2,class:"mr-rule-editor__hint"},fl={class:"mr-rule-editor__advanced"},gl=["aria-label","disabled"],vl=["aria-label","disabled"],yl={value:"propagate"},bl={value:"error"},kl=["aria-label","disabled"],hl={value:"error"},Vl={value:"null"},El={key:3,class:"mr-rule-editor__hint"},pl={key:4,class:"mr-rule-editor__diagnostic"},Nl={class:"mr-rule-editor__actions"},Bl=["disabled"],Dl=["disabled"],Sl=["disabled"],wl={key:5,class:"mr-rule-editor__error"},Cl={key:1,class:"mr-rule-editor__panel"},xl={class:"mr-rule-editor__pair"},$l=["aria-label"],Ml=["value"],Fl={key:0,value:0},Tl=["disabled"],Ll=["aria-label","disabled"],Ul=["value"],Rl={class:"mr-rule-editor__pair"},Kl=["aria-label","disabled"],Gl=["aria-label","disabled"],_l={class:"mr-rule-editor__checks"},Ol=["disabled"],Wl=["disabled"],jl={class:"mr-rule-editor__pair"},Al=["aria-label","onUpdate:modelValue","disabled"],Il=["value"],Jl=["aria-label","onUpdate:modelValue","disabled"],ql=["value"],Hl=["aria-label","onUpdate:modelValue","disabled"],zl={value:void 0},Zl=["value"],Pl={key:0},Ql=["aria-label","onUpdate:modelValue","disabled"],Xl=["value"],Yl={class:"mr-rule-editor__pair"},ea=["onUpdate:modelValue","disabled","aria-label"],ta={value:"number"},la={value:"decimal"},aa=["disabled","onClick"],na=["disabled"],oa={class:"mr-rule-editor__actions"},ia=["disabled","aria-label"],ra=["disabled","aria-label"],da=["disabled"],sa=["disabled"],ua={key:2,class:"mr-rule-editor__panel"},ca=["aria-label","disabled"],ma=["value"],fa=["aria-label","disabled"],ga={value:"style"},va={value:"cell"},ya={value:"rowVisibility"},ba={key:0},ka=["aria-label","value","disabled"],ha={value:-1},Va=["value"],Ea=["aria-label","disabled"],pa=["value"],Na={class:"mr-rule-editor__pair"},Ba=["aria-label","disabled"],Da=["value"],Sa=["value","disabled"],wa={class:"mr-rule-editor__pair"},Ca=["disabled"],xa=["disabled"],$a={class:"mr-rule-editor__check"},Ma=["disabled"],Fa={class:"mr-rule-editor__actions"},Ta=["disabled"],La=["disabled"],Ua={class:"mr-rule-editor__explanation"},Ra={key:0},Ka={class:"mr-rule-editor__results"},Ga={key:0},_a={key:1},Oa={key:1,class:"mr-rule-editor__error",role:"alert"},Wa=e.defineComponent({__name:"RuleEditor",props:{list:{},datasets:{},datasetSchema:{},datasetSchemas:{},readonly:{type:Boolean},messages:{}},emits:["change","dirty"],setup(t,{expose:D,emit:b}){const x=t,v=b,d=Ot(x,J=>v("change",J)),{m:l,tab:c,fields:p,formula:g,groups:f,groupIndex:N,currentGroup:y,column:$,currentColumn:M,conditionIndex:r,effect:n,when:k,style:o,error:S,preview:L,diagnostics:m,selectedComputed:B}=d,h=e.ref({}),F=e.ref(0);function w(){d.resetDraft(),h.value={},F.value++}const R=e.computed(()=>d.pendingLocalChanges.value||Object.values(h.value).some(Boolean));e.watch([R,d.draftSnapshot,h],()=>v("dirty",R.value),{immediate:!0,deep:!0,flush:"sync"}),D({get pendingLocalChanges(){return R.value}});const H=ie(x,d.formula,l),{query:G,matches:_,fieldWindow:j,expression:K,sources:z}=H,I=W.getComputationMetadata();return(J,i)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-rule-editor","aria-label":e.unref(l).settings},[e.createElementVNode("aside",jt,[e.createElementVNode("div",{class:"mr-rule-editor__tabs",role:"tablist","aria-label":e.unref(l).settings},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["computations","groups","conditions","detail","matrix"],a=>e.createElementVNode("button",{key:a,type:"button",role:"tab","aria-selected":e.unref(c)===a,class:e.normalizeClass({"is-active":e.unref(c)===a}),onClick:C=>c.value=a},[e.createTextVNode(e.toDisplayString(e.unref(l)[a]),1),a==="computations"&&t.list.computed?.length?(e.openBlock(),e.createElementBlock("span",Jt,e.toDisplayString(t.list.computed.length),1)):e.createCommentVNode("",!0),a==="groups"&&e.unref(f).length?(e.openBlock(),e.createElementBlock("span",qt,e.toDisplayString(e.unref(f).length),1)):e.createCommentVNode("",!0)],10,It)),64))],8,At),e.createElementVNode("div",Ht,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(l).catalog),1),R.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:t.readonly,onClick:w},e.toDisplayString(e.unref(l).restoreDraft),9,zt)):e.createCommentVNode("",!0),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).searchFields),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":i[0]||(i[0]=a=>e.isRef(G)?G.value=a:null),type:"search","aria-label":e.unref(l).searchFields},null,8,Zt),[[e.vModelText,e.unref(G)]])]),e.createElementVNode("div",Pt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(j),a=>(e.openBlock(),e.createElementBlock("button",{key:a.field,type:"button",disabled:t.readonly||e.unref(c)!=="computations",title:e.unref(l).useField,onClick:C=>e.unref(d).setExpression({field:a.field})},[e.createElementVNode("strong",null,e.toDisplayString(a.label),1),e.createElementVNode("code",null,e.toDisplayString(a.field),1),e.createElementVNode("small",null,e.toDisplayString(a.meta),1)],8,Qt))),128))]),e.unref(_).length>50?(e.openBlock(),e.createElementBlock("small",Xt,e.toDisplayString(e.unref(l).shown)+" 50 / "+e.toDisplayString(e.unref(_).length),1)):e.createCommentVNode("",!0)])]),e.unref(c)==="computations"?(e.openBlock(),e.createElementBlock("div",Yt,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).existing),1),e.createElementVNode("select",{"aria-label":e.unref(l).existing,value:e.unref(B),disabled:t.readonly,onChange:i[1]||(i[1]=a=>e.unref(d).loadComputed(a.target.value))},[e.createElementVNode("option",tl,"+ "+e.toDisplayString(e.unref(l).newField),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.computed,a=>(e.openBlock(),e.createElementBlock("option",{key:a.field,value:a.field},e.toDisplayString(a.field),9,ll))),128))],40,el)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).target),1),e.withDirectives(e.createElementVNode("input",{"aria-label":e.unref(l).target,"onUpdate:modelValue":i[2]||(i[2]=a=>e.unref(g).field=a),disabled:t.readonly,autocomplete:"off"},null,8,al),[[e.vModelText,e.unref(g).field]])]),e.createElementVNode("div",nl,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).scope),1),e.withDirectives(e.createElementVNode("select",{"aria-label":e.unref(l).scope,"onUpdate:modelValue":i[3]||(i[3]=a=>e.unref(g).scope=a),disabled:t.readonly},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(I).scopes,a=>(e.openBlock(),e.createElementBlock("option",{key:a,value:a},e.toDisplayString(e.unref(l)[a]),9,il))),128))],8,ol),[[e.vModelSelect,e.unref(g).scope]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).numeric),1),e.withDirectives(e.createElementVNode("select",{"aria-label":e.unref(l).numeric,"onUpdate:modelValue":i[4]||(i[4]=a=>e.unref(g).numeric=a),disabled:t.readonly},[e.createElementVNode("option",dl,e.toDisplayString(e.unref(l).number),1),e.createElementVNode("option",sl,e.toDisplayString(e.unref(l).decimal),1)],8,rl),[[e.vModelSelect,e.unref(g).numeric]])])]),e.unref(g).scope==="group"?(e.openBlock(),e.createElementBlock("fieldset",ul,[e.createElementVNode("legend",null,e.toDisplayString(e.unref(l).groupFields),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),a=>(e.openBlock(),e.createElementBlock("label",{key:a.field},[e.createElementVNode("input",{type:"checkbox",checked:e.unref(g).groupBy?.includes(a.field),disabled:t.readonly,onChange:C=>e.unref(d).toggleGroupField(a.field,C.target.checked)},null,40,cl),e.createTextVNode(e.toDisplayString(a.label),1)]))),128))])):e.createCommentVNode("",!0),typeof e.unref(g).expression!="string"?(e.openBlock(),e.createBlock(_t,{key:1,"model-value":e.unref(g).expression,fields:e.unref(p),messages:e.unref(l),readonly:t.readonly,"onUpdate:modelValue":e.unref(d).setExpression},null,8,["model-value","fields","messages","readonly","onUpdate:modelValue"])):(e.openBlock(),e.createElementBlock("p",ml,e.toDisplayString(e.unref(g).expression),1)),e.createElementVNode("details",null,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(l).advanced),1),e.createElementVNode("div",fl,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).digits),1),e.withDirectives(e.createElementVNode("input",{"aria-label":e.unref(l).digits,"onUpdate:modelValue":i[5]||(i[5]=a=>e.unref(g).digits=a),type:"number",min:"0",max:"100",disabled:t.readonly},null,8,gl),[[e.vModelText,e.unref(g).digits,void 0,{number:!0}]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).nulls),1),e.withDirectives(e.createElementVNode("select",{"aria-label":e.unref(l).nulls,"onUpdate:modelValue":i[6]||(i[6]=a=>e.unref(g).nulls=a),disabled:t.readonly},[e.createElementVNode("option",yl,e.toDisplayString(e.unref(l).propagate),1),e.createElementVNode("option",bl,e.toDisplayString(e.unref(l).error),1)],8,vl),[[e.vModelSelect,e.unref(g).nulls]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).division),1),e.withDirectives(e.createElementVNode("select",{"aria-label":e.unref(l).division,"onUpdate:modelValue":i[7]||(i[7]=a=>e.unref(g).divisionByZero=a),disabled:t.readonly},[e.createElementVNode("option",hl,e.toDisplayString(e.unref(l).error),1),e.createElementVNode("option",Vl,e.toDisplayString(e.unref(l).propagate),1)],8,kl),[[e.vModelSelect,e.unref(g).divisionByZero]])])])]),e.unref(g).numeric==="decimal"?(e.openBlock(),e.createElementBlock("p",El,e.toDisplayString(e.unref(l).decimalHint),1)):e.createCommentVNode("",!0),e.unref(m).valid&&e.unref(g).field?(e.openBlock(),e.createElementBlock("div",pl,[e.createTextVNode(e.toDisplayString(e.unref(l).dependencies),1),e.createElementVNode("strong",null,e.toDisplayString(e.unref(m).order.join(" → ")),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",Nl,[e.createElementVNode("button",{type:"button",disabled:t.readonly,onClick:i[8]||(i[8]=(...a)=>e.unref(d).check&&e.unref(d).check(...a))},e.toDisplayString(e.unref(l).check),9,Bl),e.createElementVNode("button",{type:"button",class:"mr-rule-editor__primary",disabled:t.readonly||!e.unref(m).valid,onClick:i[9]||(i[9]=(...a)=>e.unref(d).applyComputed&&e.unref(d).applyComputed(...a))},e.toDisplayString(e.unref(l).apply),9,Dl),e.unref(B)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:t.readonly,onClick:i[10]||(i[10]=(...a)=>e.unref(d).removeComputed&&e.unref(d).removeComputed(...a))},e.toDisplayString(e.unref(l).remove),9,Sl)):e.createCommentVNode("",!0)]),!e.unref(m).valid&&e.unref(g).field?(e.openBlock(),e.createElementBlock("p",wl,e.toDisplayString(e.unref(m).errors.join(";")),1)):e.createCommentVNode("",!0)])):e.unref(c)==="groups"?(e.openBlock(),e.createElementBlock("div",Cl,[e.createElementVNode("div",xl,[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":i[11]||(i[11]=a=>e.isRef(N)?N.value=a:null),"aria-label":e.unref(l).groups},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),(a,C)=>(e.openBlock(),e.createElementBlock("option",{key:C,value:C},e.toDisplayString(C+1)+" · "+e.toDisplayString(a.field),9,Ml))),128)),e.unref(f).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("option",Fl,e.toDisplayString(e.unref(l).noGroups),1))],8,$l),[[e.vModelSelect,e.unref(N),void 0,{number:!0}]]),e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(f).length>=16,onClick:i[12]||(i[12]=(...a)=>e.unref(d).addGroup&&e.unref(d).addGroup(...a))}," + "+e.toDisplayString(e.unref(l).addGroup),9,Tl)]),e.unref(y)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).field),1),e.withDirectives(e.createElementVNode("select",{"aria-label":e.unref(l).field,"onUpdate:modelValue":i[13]||(i[13]=a=>e.unref(y).field=a),disabled:t.readonly},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),a=>(e.openBlock(),e.createElementBlock("option",{key:a.field,value:a.field},e.toDisplayString(a.label),9,Ul))),128))],8,Ll),[[e.vModelSelect,e.unref(y).field]])]),e.createElementVNode("div",Rl,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).header),1),e.withDirectives(e.createElementVNode("input",{"aria-label":e.unref(l).header,"onUpdate:modelValue":i[14]||(i[14]=a=>e.unref(y).headerTemplate=a),disabled:t.readonly,placeholder:"{value}"},null,8,Kl),[[e.vModelText,e.unref(y).headerTemplate]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).footer),1),e.withDirectives(e.createElementVNode("input",{"aria-label":e.unref(l).footer,"onUpdate:modelValue":i[15]||(i[15]=a=>e.unref(y).subtotalLabel=a),disabled:t.readonly},null,8,Gl),[[e.vModelText,e.unref(y).subtotalLabel]])])]),e.createElementVNode("div",_l,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":i[16]||(i[16]=a=>e.unref(y).keepWithNext=a),type:"checkbox",disabled:t.readonly},null,8,Ol),[[e.vModelCheckbox,e.unref(y).keepWithNext]]),e.createTextVNode(e.toDisplayString(e.unref(l).orphan),1)]),e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":i[17]||(i[17]=a=>e.unref(y).repeatHeader=a),type:"checkbox",disabled:t.readonly},null,8,Wl),[[e.vModelCheckbox,e.unref(y).repeatHeader]]),e.createTextVNode(e.toDisplayString(e.unref(l).repeat),1)])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y).aggregates,(a,C)=>(e.openBlock(),e.createElementBlock("div",{key:C,class:"mr-rule-editor__aggregate"},[e.createElementVNode("div",jl,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).output),1),e.withDirectives(e.createElementVNode("select",{"aria-label":e.unref(l).output,"onUpdate:modelValue":E=>a.field=E,disabled:t.readonly},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),E=>(e.openBlock(),e.createElementBlock("option",{key:E.field,value:E.field},e.toDisplayString(E.label),9,Il))),128))],8,Al),[[e.vModelSelect,a.field]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).aggregate),1),e.withDirectives(e.createElementVNode("select",{"aria-label":e.unref(l).aggregate,"onUpdate:modelValue":E=>a.op=E,disabled:t.readonly},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(I).aggregates,E=>(e.openBlock(),e.createElementBlock("option",{key:E,value:E},e.toDisplayString(e.unref(l)[E]),9,ql))),128))],8,Jl),[[e.vModelSelect,a.op]])])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).measure),1),e.withDirectives(e.createElementVNode("select",{"aria-label":e.unref(l).measure,"onUpdate:modelValue":E=>a.valueField=E,disabled:t.readonly},[e.createElementVNode("option",zl,e.toDisplayString(a.field),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),E=>(e.openBlock(),e.createElementBlock("option",{key:E.field,value:E.field},e.toDisplayString(E.label),9,Zl))),128))],8,Hl),[[e.vModelSelect,a.valueField]])]),a.op==="weightedAvg"?(e.openBlock(),e.createElementBlock("label",Pl,[e.createTextVNode(e.toDisplayString(e.unref(l).weight),1),e.withDirectives(e.createElementVNode("select",{"aria-label":e.unref(l).weight,"onUpdate:modelValue":E=>a.weightField=E,disabled:t.readonly},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),E=>(e.openBlock(),e.createElementBlock("option",{key:E.field,value:E.field},e.toDisplayString(E.label),9,Xl))),128))],8,Ql),[[e.vModelSelect,a.weightField]])])):e.createCommentVNode("",!0),e.createElementVNode("div",Yl,[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":E=>a.numeric=E,disabled:t.readonly,"aria-label":e.unref(l).numeric},[e.createElementVNode("option",ta,e.toDisplayString(e.unref(l).number),1),e.createElementVNode("option",la,e.toDisplayString(e.unref(l).decimal),1)],8,ea),[[e.vModelSelect,a.numeric]]),e.createElementVNode("button",{type:"button",disabled:t.readonly,onClick:E=>e.unref(y).aggregates?.splice(C,1)},e.toDisplayString(e.unref(l).remove),9,aa)])]))),128)),e.createElementVNode("button",{type:"button",disabled:t.readonly,onClick:i[18]||(i[18]=(...a)=>e.unref(d).addAggregate&&e.unref(d).addAggregate(...a))}," + "+e.toDisplayString(e.unref(l).addAggregate),9,na),e.createElementVNode("div",oa,[e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(N)===0,"aria-label":e.unref(l).moveUp,onClick:i[19]||(i[19]=a=>e.unref(d).moveGroup(-1))}," ↑ "+e.toDisplayString(e.unref(l).outer),9,ia),e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(N)>=e.unref(f).length-1,"aria-label":e.unref(l).moveDown,onClick:i[20]||(i[20]=a=>e.unref(d).moveGroup(1))}," ↓ "+e.toDisplayString(e.unref(l).inner),9,ra),e.createElementVNode("button",{type:"button",disabled:t.readonly,onClick:i[21]||(i[21]=(...a)=>e.unref(d).removeGroup&&e.unref(d).removeGroup(...a))},e.toDisplayString(e.unref(l).remove),9,da)])],64)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"mr-rule-editor__primary",disabled:t.readonly,onClick:i[22]||(i[22]=(...a)=>e.unref(d).applyGroups&&e.unref(d).applyGroups(...a))},e.toDisplayString(e.unref(l).apply),9,sa)])):e.unref(c)==="conditions"?(e.openBlock(),e.createElementBlock("div",ua,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).column),1),e.withDirectives(e.createElementVNode("select",{"aria-label":e.unref(l).column,"onUpdate:modelValue":i[23]||(i[23]=a=>e.isRef($)?$.value=a:null),disabled:t.readonly,onChange:i[24]||(i[24]=a=>e.unref(d).loadCondition(-1))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.list.columns,a=>(e.openBlock(),e.createElementBlock("option",{key:a.field,value:a.field},e.toDisplayString(a.header||a.field),9,ma))),128))],40,ca),[[e.vModelSelect,e.unref($)]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).effect),1),e.withDirectives(e.createElementVNode("select",{"aria-label":e.unref(l).effect,"onUpdate:modelValue":i[25]||(i[25]=a=>e.isRef(n)?n.value=a:null),disabled:t.readonly,onChange:i[26]||(i[26]=a=>e.unref(d).loadCondition(-1))},[e.createElementVNode("option",ga,e.toDisplayString(e.unref(l).style),1),e.createElementVNode("option",va,e.toDisplayString(e.unref(l).cell),1),e.createElementVNode("option",ya,e.toDisplayString(e.unref(l).rowVisibility),1)],40,fa),[[e.vModelSelect,e.unref(n)]])]),e.unref(n)==="style"?(e.openBlock(),e.createElementBlock("label",ba,[e.createTextVNode(e.toDisplayString(e.unref(l).existing),1),e.createElementVNode("select",{"aria-label":e.unref(l).existing,value:e.unref(r),disabled:t.readonly,onChange:i[27]||(i[27]=a=>e.unref(d).loadCondition(Number(a.target.value)))},[e.createElementVNode("option",ha,"+ "+e.toDisplayString(e.unref(l).newCondition),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(M)?.rules,(a,C)=>(e.openBlock(),e.createElementBlock("option",{key:C,value:C},e.toDisplayString(C+1)+" · "+e.toDisplayString(a.when.field)+" "+e.toDisplayString(a.when.op)+" "+e.toDisplayString(a.when.value),9,Va))),128))],40,ka)])):e.createCommentVNode("",!0),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).condition),1),e.withDirectives(e.createElementVNode("select",{"aria-label":e.unref(l).condition,"onUpdate:modelValue":i[28]||(i[28]=a=>e.unref(k).field=a),disabled:t.readonly},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),a=>(e.openBlock(),e.createElementBlock("option",{key:a.field,value:a.field},e.toDisplayString(a.label),9,pa))),128))],8,Ea),[[e.vModelSelect,e.unref(k).field]])]),e.createElementVNode("div",Na,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).comparison),1),e.withDirectives(e.createElementVNode("select",{"aria-label":e.unref(l).comparison,"onUpdate:modelValue":i[29]||(i[29]=a=>e.unref(k).op=a),disabled:t.readonly},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList([">",">=","<","<=","==","!="],a=>e.createElementVNode("option",{key:a,value:a},e.toDisplayString(a),9,Da)),64))],8,Ba),[[e.vModelSelect,e.unref(k).op]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).threshold),1),e.createElementVNode("input",{value:e.unref(k).value,disabled:t.readonly,onInput:i[30]||(i[30]=a=>e.unref(d).setThreshold(a.target.value))},null,40,Sa)])]),e.unref(n)==="style"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",wa,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).color),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":i[31]||(i[31]=a=>e.unref(o).color=a),type:"color",disabled:t.readonly},null,8,Ca),[[e.vModelText,e.unref(o).color]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(l).background),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":i[32]||(i[32]=a=>e.unref(o).backgroundColor=a),type:"color",disabled:t.readonly},null,8,xa),[[e.vModelText,e.unref(o).backgroundColor]])])]),e.createElementVNode("label",$a,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":i[33]||(i[33]=a=>e.unref(o).bold=a),type:"checkbox",disabled:t.readonly},null,8,Ma),[[e.vModelCheckbox,e.unref(o).bold]]),e.createTextVNode(e.toDisplayString(e.unref(l).bold),1)])],64)):e.createCommentVNode("",!0),e.createElementVNode("div",Fa,[e.createElementVNode("button",{type:"button",class:"mr-rule-editor__primary",disabled:t.readonly,onClick:i[34]||(i[34]=a=>e.unref(d).applyCondition())},e.toDisplayString(e.unref(l).apply),9,Ta),e.unref(r)>=0||e.unref(n)!=="style"?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:t.readonly,onClick:i[35]||(i[35]=a=>e.unref(d).applyCondition(!0))},e.toDisplayString(e.unref(l).removeCondition),9,La)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["detail","matrix"],a=>e.withDirectives(e.createVNode(dt,{key:`${a}-${F.value}`,list:t.list,mode:a,datasets:t.datasets,"dataset-schema":t.datasetSchema,"dataset-schemas":t.datasetSchemas,readonly:t.readonly,messages:e.unref(l),accept:e.unref(d).applyLayout,onDirty:C=>h.value={...h.value,[a]:C}},null,8,["list","mode","datasets","dataset-schema","dataset-schemas","readonly","messages","accept","onDirty"]),[[e.vShow,e.unref(c)===a]])),64)),e.createElementVNode("aside",Ua,[e.createElementVNode("header",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(l).explanation),1),R.value?(e.openBlock(),e.createElementBlock("span",Ra,e.toDisplayString(e.unref(l).pending),1)):e.createCommentVNode("",!0)]),e.createElementVNode("p",null,e.toDisplayString(e.unref(l).sourceHint),1),e.unref(c)==="computations"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("h4",null,e.toDisplayString(e.unref(l).expression),1),e.createElementVNode("code",null,e.toDisplayString(e.unref(K)),1),e.createElementVNode("div",Ka,[e.createElementVNode("h4",null,e.toDisplayString(e.unref(l).sourceValues)+" → "+e.toDisplayString(e.unref(l).result),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(z),a=>(e.openBlock(),e.createElementBlock("div",{key:a.row,class:"mr-rule-editor__trace"},[e.createElementVNode("small",null,"#"+e.toDisplayString(a.row),1),e.createElementVNode("code",null,e.toDisplayString(a.values),1),e.createElementVNode("strong",null,e.toDisplayString(e.unref(L).find(C=>C.row===a.row)?.value??(e.unref(L).length?"—":e.unref(l).notChecked)),1)]))),128)),e.unref(L).some(a=>a.value==null)?(e.openBlock(),e.createElementBlock("p",Ga,e.toDisplayString(e.unref(l).nullReason),1)):e.createCommentVNode("",!0),e.unref(L).length?(e.openBlock(),e.createElementBlock("p",_a,e.toDisplayString(e.unref(l).sample),1)):e.createCommentVNode("",!0)])],64)):e.createCommentVNode("",!0),e.unref(S)?(e.openBlock(),e.createElementBlock("p",Oa,e.toDisplayString(e.unref(S)),1)):e.createCommentVNode("",!0)])],8,Wt))}}),ja=Z._export_sfc(Wa,[["__scopeId","data-v-81150490"]]);exports.default=ja;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),h=require("@agile-team/mach-report"),_=require("./designer.cjs"),V=require("./_plugin-vue_export-helper-BLmdZLlg.cjs");function B(a){const f=e.shallowRef(),i=e.ref("20"),d=e.ref(!1),t=e.ref(!1),o=e.ref(!1),u=e.ref(""),g=e.shallowRef();let s=0,m;function k(){s++,clearTimeout(m),t.value=!1,o.value=!!f.value,u.value=""}for(const r of[()=>a.document,()=>a.previous])e.watch(r,()=>{d.value=!1,k()},{deep:!0,flush:"sync"});for(const r of[()=>a.datasets,()=>a.dataSchemas,()=>a.formats])e.watch(r,k,{deep:!0,flush:"sync"});e.watch([i,d],k,{flush:"sync"}),e.onBeforeUnmount(()=>{s++,clearTimeout(m)});const c=e.computed(()=>f.value?.issues.filter(r=>r.severity==="error").length??0);function y(){clearTimeout(m);const r=s;t.value=!0,u.value="",m=setTimeout(()=>{if(r!==s)return;const p=Number(i.value),v=Object.fromEntries(Object.entries(a.datasets??{}).map(([n,l])=>[n,p<0?l:l.slice(0,p)]));try{const n=h.reviewReportTemplate(a.document,{previous:a.previous,dataSchemas:a.dataSchemas,formats:a.formats,allowBreakingChanges:d.value,fixtures:p===0?[]:[{name:i.value,datasets:v}]});if(r!==s)return;f.value=n,o.value=!1,g.value={requested:i.value,rows:p===0?0:Object.values(v).reduce((l,E)=>l+E.length,0),datasets:p===0?0:Object.keys(v).length,formats:[...a.formats??[]]}}catch(n){u.value=n instanceof Error?n.message:String(n)}finally{r===s&&(t.value=!1)}},0)}return{report:f,sampleSize:i,acknowledged:d,running:t,stale:o,failure:u,checkedScope:g,errors:c,run:y}}const N=["aria-label","aria-busy"],D=["disabled"],b={class:"mr-review-controls"},w=["aria-label","disabled"],C={value:"0"},T={value:"20"},x={value:"100"},R={value:"-1"},q={key:0,class:"is-error",role:"alert"},j={key:1,class:"mr-review-stale",role:"status"},F={key:2,class:"mr-review-note"},z={key:0,class:"mr-review-summary",role:"status"},I={key:0,class:"mr-review-note"},M={key:1,class:"mr-review-note"},O={key:2,class:"mr-review-list"},L={key:0},P=["onClick"],U={key:3,class:"mr-review-note"},A={key:4,class:"mr-review-ack"},$={key:0,class:"mr-review-note"},G={key:1,class:"mr-review-list"},H=["onClick"],W={key:0,class:"mr-review-scope"},J={key:0},K={class:"mr-review-note"},Q=e.defineComponent({__name:"TemplateReviewPanel",props:{document:{},previous:{},datasets:{},dataSchemas:{},formats:{},messages:{}},emits:["locate"],setup(a,{emit:f}){const i=a,d=f,t=e.computed(()=>({..._.TEMPLATE_REVIEW_MESSAGES,...i.messages})),{report:o,sampleSize:u,acknowledged:g,running:s,stale:m,failure:k,checkedScope:c,errors:y,run:r}=B(i);function p(v){const n=/\.pages\[(\d+)\]\.components\[(\d+)\]/.exec(v);d("locate",{path:v,...n?{pageIndex:Number(n[1]),componentIndex:Number(n[2])}:{}})}return(v,n)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-template-review","aria-label":t.value.title,"aria-busy":e.unref(s)},[e.createElementVNode("header",null,[e.createElementVNode("strong",null,e.toDisplayString(t.value.title),1),e.createElementVNode("button",{type:"button",disabled:e.unref(s),onClick:n[0]||(n[0]=(...l)=>e.unref(r)&&e.unref(r)(...l))},e.toDisplayString(e.unref(s)?t.value.running:t.value.run),9,D)]),e.createElementVNode("div",b,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(t.value.samples),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":n[1]||(n[1]=l=>e.isRef(u)?u.value=l:null),"aria-label":t.value.samples,disabled:e.unref(s)},[e.createElementVNode("option",C,e.toDisplayString(t.value.none),1),e.createElementVNode("option",T,e.toDisplayString(t.value.first20),1),e.createElementVNode("option",x,e.toDisplayString(t.value.first100),1),e.createElementVNode("option",R,e.toDisplayString(t.value.all),1)],8,w),[[e.vModelSelect,e.unref(u)]])])]),e.unref(k)?(e.openBlock(),e.createElementBlock("p",q,e.toDisplayString(e.unref(k)),1)):e.createCommentVNode("",!0),e.unref(m)?(e.openBlock(),e.createElementBlock("p",j,e.toDisplayString(t.value.stale),1)):e.createCommentVNode("",!0),e.unref(o)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.unref(m)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",z,[e.createElementVNode("span",{class:e.normalizeClass({"is-error":e.unref(y)})},e.toDisplayString(e.unref(y))+" "+e.toDisplayString(t.value.errors),3),e.createElementVNode("span",null,e.toDisplayString(e.unref(o).issues.length-e.unref(y))+" "+e.toDisplayString(t.value.warnings),1)])),e.createElementVNode("section",null,[e.createElementVNode("h3",null,[e.createTextVNode(e.toDisplayString(t.value.changes)+" ",1),e.createElementVNode("small",null,e.toDisplayString(e.unref(o).changes?.totalChanges??0),1)]),a.previous?e.unref(o).changes?.totalChanges?(e.openBlock(),e.createElementBlock("ol",O,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o).changes?.changes,(l,E)=>(e.openBlock(),e.createElementBlock("li",{key:E},[e.createElementVNode("div",null,[e.createElementVNode("span",null,e.toDisplayString(t.value.categories[l.category])+" · "+e.toDisplayString(t.value.kinds[l.kind]),1),l.breaking?(e.openBlock(),e.createElementBlock("b",L,e.toDisplayString(t.value.breaking),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",onClick:S=>p(l.path)},e.toDisplayString(t.value.locate),9,P)]),e.createElementVNode("code",null,e.toDisplayString(l.path),1),e.createElementVNode("dl",null,[l.before!==void 0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("dt",null,e.toDisplayString(t.value.before),1),e.createElementVNode("dd",null,e.toDisplayString(l.before),1)],64)):e.createCommentVNode("",!0),l.after!==void 0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("dt",null,e.toDisplayString(t.value.after),1),e.createElementVNode("dd",null,e.toDisplayString(l.after),1)],64)):e.createCommentVNode("",!0)])]))),128))])):(e.openBlock(),e.createElementBlock("p",M,e.toDisplayString(t.value.noChanges),1)):(e.openBlock(),e.createElementBlock("p",I,e.toDisplayString(t.value.baseline),1)),e.unref(o).changes?.truncated?(e.openBlock(),e.createElementBlock("p",U,e.toDisplayString(t.value.truncated),1)):e.createCommentVNode("",!0),e.unref(o).changes?.breakingChanges?(e.openBlock(),e.createElementBlock("label",A,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":n[2]||(n[2]=l=>e.isRef(g)?g.value=l:null),type:"checkbox"},null,512),[[e.vModelCheckbox,e.unref(g)]]),e.createTextVNode(e.toDisplayString(t.value.acknowledge),1)])):e.createCommentVNode("",!0)]),e.createElementVNode("section",null,[e.createElementVNode("h3",null,e.toDisplayString(t.value.issues),1),e.unref(o).issues.length?(e.openBlock(),e.createElementBlock("ol",G,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o).issues,(l,E)=>(e.openBlock(),e.createElementBlock("li",{key:E},[e.createElementVNode("div",null,[e.createElementVNode("span",{class:e.normalizeClass({"is-error":l.severity==="error"})},e.toDisplayString(l.severity==="error"?t.value.errors:t.value.warnings),3),e.createElementVNode("button",{type:"button",onClick:S=>d("locate",l)},e.toDisplayString(t.value.locate),9,H)]),e.createElementVNode("p",null,e.toDisplayString(l.message),1),e.createElementVNode("code",null,e.toDisplayString(l.path),1)]))),128))])):(e.openBlock(),e.createElementBlock("p",$,e.toDisplayString(t.value.noIssues),1))]),e.unref(o).samples.length?(e.openBlock(),e.createElementBlock("section",{key:1,class:e.normalizeClass({"is-stale":e.unref(m)})},[e.createElementVNode("h3",null,e.toDisplayString(t.value.results),1),e.unref(c)?(e.openBlock(),e.createElementBlock("p",W,[e.createTextVNode(e.toDisplayString(t.value.scope)+" · "+e.toDisplayString(e.unref(c).requested==="-1"?t.value.all:e.unref(c).requested==="0"?t.value.none:e.unref(c).requested+" "+t.value.rows)+" · "+e.toDisplayString(e.unref(c).datasets)+" "+e.toDisplayString(t.value.datasets)+" · "+e.toDisplayString(e.unref(c).rows)+" "+e.toDisplayString(t.value.rows),1),e.unref(c).formats.length?(e.openBlock(),e.createElementBlock("span",J," · "+e.toDisplayString(e.unref(c).formats.join(" / ")),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o).samples,l=>(e.openBlock(),e.createElementBlock("p",{key:l.name},e.toDisplayString(l.name)+" · "+e.toDisplayString(l.rows)+" "+e.toDisplayString(t.value.rows)+" · "+e.toDisplayString(l.pages)+" "+e.toDisplayString(t.value.pages),1))),128))],2)):e.createCommentVNode("",!0),e.createElementVNode("p",K,e.toDisplayString(t.value.checked),1)],64)):(e.openBlock(),e.createElementBlock("p",F,e.toDisplayString(t.value.empty),1))],8,N))}}),X=V._export_sfc(Q,[["__scopeId","data-v-1f1889a4"]]);exports.default=X;
@@ -1,217 +0,0 @@
1
- import { shallowRef as V, ref as x, watch as R, onBeforeUnmount as O, computed as B, defineComponent as z, openBlock as o, createElementBlock as n, unref as s, createElementVNode as l, toDisplayString as e, createTextVNode as E, withDirectives as I, isRef as q, vModelSelect as P, createCommentVNode as d, Fragment as C, normalizeClass as j, renderList as N, vModelCheckbox as U } from "vue";
2
- import { reviewReportTemplate as A } from "@agile-team/mach-report";
3
- import { TEMPLATE_REVIEW_MESSAGES as D } from "./designer.js";
4
- import { _ as L } from "./_plugin-vue_export-helper-8SL1F89S.js";
5
- function $(i) {
6
- const g = V(), f = x("20"), h = x(!1), t = x(!1), u = x(!1), p = x(""), b = V();
7
- let v = 0, _;
8
- function w() {
9
- v++, clearTimeout(_), t.value = !1, u.value = !!g.value, p.value = "";
10
- }
11
- for (const c of [() => i.document, () => i.previous]) R(c, () => {
12
- h.value = !1, w();
13
- }, { deep: !0, flush: "sync" });
14
- for (const c of [() => i.datasets, () => i.dataSchemas, () => i.formats]) R(c, w, { deep: !0, flush: "sync" });
15
- R([f, h], w, { flush: "sync" }), O(() => {
16
- v++, clearTimeout(_);
17
- });
18
- const m = B(() => g.value?.issues.filter((c) => c.severity === "error").length ?? 0);
19
- function S() {
20
- clearTimeout(_);
21
- const c = v;
22
- t.value = !0, p.value = "", _ = setTimeout(() => {
23
- if (c !== v) return;
24
- const k = Number(f.value), y = Object.fromEntries(Object.entries(i.datasets ?? {}).map(([r, a]) => [r, k < 0 ? a : a.slice(0, k)]));
25
- try {
26
- const r = A(i.document, {
27
- previous: i.previous,
28
- dataSchemas: i.dataSchemas,
29
- formats: i.formats,
30
- allowBreakingChanges: h.value,
31
- fixtures: k === 0 ? [] : [{ name: f.value, datasets: y }]
32
- });
33
- if (c !== v) return;
34
- g.value = r, u.value = !1, b.value = { requested: f.value, rows: k === 0 ? 0 : Object.values(y).reduce((a, T) => a + T.length, 0), datasets: k === 0 ? 0 : Object.keys(y).length, formats: [...i.formats ?? []] };
35
- } catch (r) {
36
- p.value = r instanceof Error ? r.message : String(r);
37
- } finally {
38
- c === v && (t.value = !1);
39
- }
40
- }, 0);
41
- }
42
- return { report: g, sampleSize: f, acknowledged: h, running: t, stale: u, failure: p, checkedScope: b, errors: m, run: S };
43
- }
44
- const F = ["aria-label", "aria-busy"], G = ["disabled"], W = { class: "mr-review-controls" }, H = ["aria-label", "disabled"], J = { value: "0" }, K = { value: "20" }, Q = { value: "100" }, X = { value: "-1" }, Y = {
45
- key: 0,
46
- class: "is-error",
47
- role: "alert"
48
- }, Z = {
49
- key: 1,
50
- class: "mr-review-stale",
51
- role: "status"
52
- }, ee = {
53
- key: 2,
54
- class: "mr-review-note"
55
- }, te = {
56
- key: 0,
57
- class: "mr-review-summary",
58
- role: "status"
59
- }, se = {
60
- key: 0,
61
- class: "mr-review-note"
62
- }, le = {
63
- key: 1,
64
- class: "mr-review-note"
65
- }, ae = {
66
- key: 2,
67
- class: "mr-review-list"
68
- }, oe = { key: 0 }, ne = ["onClick"], re = {
69
- key: 3,
70
- class: "mr-review-note"
71
- }, ue = {
72
- key: 4,
73
- class: "mr-review-ack"
74
- }, ie = {
75
- key: 0,
76
- class: "mr-review-note"
77
- }, ce = {
78
- key: 1,
79
- class: "mr-review-list"
80
- }, ve = ["onClick"], de = {
81
- key: 0,
82
- class: "mr-review-scope"
83
- }, me = { key: 0 }, fe = { class: "mr-review-note" }, pe = /* @__PURE__ */ z({
84
- __name: "TemplateReviewPanel",
85
- props: {
86
- document: {},
87
- previous: {},
88
- datasets: {},
89
- dataSchemas: {},
90
- formats: {},
91
- messages: {}
92
- },
93
- emits: ["locate"],
94
- setup(i, { emit: g }) {
95
- const f = i, h = g, t = B(() => ({ ...D, ...f.messages })), { report: u, sampleSize: p, acknowledged: b, running: v, stale: _, failure: w, checkedScope: m, errors: S, run: c } = $(f);
96
- function k(y) {
97
- const r = /\.pages\[(\d+)\]\.components\[(\d+)\]/.exec(y);
98
- h("locate", { path: y, ...r ? { pageIndex: Number(r[1]), componentIndex: Number(r[2]) } : {} });
99
- }
100
- return (y, r) => (o(), n("section", {
101
- class: "mr-template-review",
102
- "aria-label": t.value.title,
103
- "aria-busy": s(v)
104
- }, [
105
- l("header", null, [
106
- l("strong", null, e(t.value.title), 1),
107
- l("button", {
108
- type: "button",
109
- disabled: s(v),
110
- onClick: r[0] || (r[0] = //@ts-ignore
111
- (...a) => s(c) && s(c)(...a))
112
- }, e(s(v) ? t.value.running : t.value.run), 9, G)
113
- ]),
114
- l("div", W, [
115
- l("label", null, [
116
- E(e(t.value.samples), 1),
117
- I(l("select", {
118
- "onUpdate:modelValue": r[1] || (r[1] = (a) => q(p) ? p.value = a : null),
119
- "aria-label": t.value.samples,
120
- disabled: s(v)
121
- }, [
122
- l("option", J, e(t.value.none), 1),
123
- l("option", K, e(t.value.first20), 1),
124
- l("option", Q, e(t.value.first100), 1),
125
- l("option", X, e(t.value.all), 1)
126
- ], 8, H), [
127
- [P, s(p)]
128
- ])
129
- ])
130
- ]),
131
- s(w) ? (o(), n("p", Y, e(s(w)), 1)) : d("", !0),
132
- s(_) ? (o(), n("p", Z, e(t.value.stale), 1)) : d("", !0),
133
- s(u) ? (o(), n(C, { key: 3 }, [
134
- s(_) ? d("", !0) : (o(), n("div", te, [
135
- l("span", {
136
- class: j({ "is-error": s(S) })
137
- }, e(s(S)) + " " + e(t.value.errors), 3),
138
- l("span", null, e(s(u).issues.length - s(S)) + " " + e(t.value.warnings), 1)
139
- ])),
140
- l("section", null, [
141
- l("h3", null, [
142
- E(e(t.value.changes) + " ", 1),
143
- l("small", null, e(s(u).changes?.totalChanges ?? 0), 1)
144
- ]),
145
- i.previous ? s(u).changes?.totalChanges ? (o(), n("ol", ae, [
146
- (o(!0), n(C, null, N(s(u).changes?.changes, (a, T) => (o(), n("li", { key: T }, [
147
- l("div", null, [
148
- l("span", null, e(t.value.categories[a.category]) + " · " + e(t.value.kinds[a.kind]), 1),
149
- a.breaking ? (o(), n("b", oe, e(t.value.breaking), 1)) : d("", !0),
150
- l("button", {
151
- type: "button",
152
- onClick: (M) => k(a.path)
153
- }, e(t.value.locate), 9, ne)
154
- ]),
155
- l("code", null, e(a.path), 1),
156
- l("dl", null, [
157
- a.before !== void 0 ? (o(), n(C, { key: 0 }, [
158
- l("dt", null, e(t.value.before), 1),
159
- l("dd", null, e(a.before), 1)
160
- ], 64)) : d("", !0),
161
- a.after !== void 0 ? (o(), n(C, { key: 1 }, [
162
- l("dt", null, e(t.value.after), 1),
163
- l("dd", null, e(a.after), 1)
164
- ], 64)) : d("", !0)
165
- ])
166
- ]))), 128))
167
- ])) : (o(), n("p", le, e(t.value.noChanges), 1)) : (o(), n("p", se, e(t.value.baseline), 1)),
168
- s(u).changes?.truncated ? (o(), n("p", re, e(t.value.truncated), 1)) : d("", !0),
169
- s(u).changes?.breakingChanges ? (o(), n("label", ue, [
170
- I(l("input", {
171
- "onUpdate:modelValue": r[2] || (r[2] = (a) => q(b) ? b.value = a : null),
172
- type: "checkbox"
173
- }, null, 512), [
174
- [U, s(b)]
175
- ]),
176
- E(e(t.value.acknowledge), 1)
177
- ])) : d("", !0)
178
- ]),
179
- l("section", null, [
180
- l("h3", null, e(t.value.issues), 1),
181
- s(u).issues.length ? (o(), n("ol", ce, [
182
- (o(!0), n(C, null, N(s(u).issues, (a, T) => (o(), n("li", { key: T }, [
183
- l("div", null, [
184
- l("span", {
185
- class: j({ "is-error": a.severity === "error" })
186
- }, e(a.severity === "error" ? t.value.errors : t.value.warnings), 3),
187
- l("button", {
188
- type: "button",
189
- onClick: (M) => h("locate", a)
190
- }, e(t.value.locate), 9, ve)
191
- ]),
192
- l("p", null, e(a.message), 1),
193
- l("code", null, e(a.path), 1)
194
- ]))), 128))
195
- ])) : (o(), n("p", ie, e(t.value.noIssues), 1))
196
- ]),
197
- s(u).samples.length ? (o(), n("section", {
198
- key: 1,
199
- class: j({ "is-stale": s(_) })
200
- }, [
201
- l("h3", null, e(t.value.results), 1),
202
- s(m) ? (o(), n("p", de, [
203
- E(e(t.value.scope) + " · " + e(s(m).requested === "-1" ? t.value.all : s(m).requested === "0" ? t.value.none : s(m).requested + " " + t.value.rows) + " · " + e(s(m).datasets) + " " + e(t.value.datasets) + " · " + e(s(m).rows) + " " + e(t.value.rows), 1),
204
- s(m).formats.length ? (o(), n("span", me, " · " + e(s(m).formats.join(" / ")), 1)) : d("", !0)
205
- ])) : d("", !0),
206
- (o(!0), n(C, null, N(s(u).samples, (a) => (o(), n("p", {
207
- key: a.name
208
- }, e(a.name) + " · " + e(a.rows) + " " + e(t.value.rows) + " · " + e(a.pages) + " " + e(t.value.pages), 1))), 128))
209
- ], 2)) : d("", !0),
210
- l("p", fe, e(t.value.checked), 1)
211
- ], 64)) : (o(), n("p", ee, e(t.value.empty), 1))
212
- ], 8, F));
213
- }
214
- }), ge = /* @__PURE__ */ L(pe, [["__scopeId", "data-v-1f1889a4"]]);
215
- export {
216
- ge as default
217
- };
@@ -1,2 +0,0 @@
1
- "use strict";const F=require("./dataset-BkRmwgeJ.cjs"),S=require("./template-registry-CGWTLtIA.cjs"),A=require("./grid-geometry-CZ_cYB6O.cjs");function x(e){let t="";for(let o=e;o>0;o=Math.floor((o-1)/26))t=String.fromCharCode(65+(o-1)%26)+t;return t}function v(e){return`${x(e.left)}${e.top}:${x(e.right)}${e.bottom}`}function O(e){let t=0;for(const o of e.toUpperCase())t=t*26+o.charCodeAt(0)-64;return t}function u(e){if(typeof e!="string")throw new Error("Excel 范围应为 A1:B20 格式的字符串");const t=/^\$?([A-Z]{1,3})\$?([1-9]\d{0,6})(?::\$?([A-Z]{1,3})\$?([1-9]\d{0,6}))?$/i.exec(e.trim());if(!t)throw new Error(`Excel 范围无效:${e}`);const o={left:O(t[1]),top:Number(t[2]),right:O(t[3]??t[1]),bottom:Number(t[4]??t[2])};if(o.right<o.left||o.bottom<o.top||o.right>16384||o.bottom>1048576)throw new Error(`Excel 范围超出边界或顺序无效:${e}`);return o}function _(e,t){if(t!==void 0)return u(t);const o=e.model.rows??[];if(!o.length)return{top:1,left:1,bottom:1,right:1};const n={top:1/0,left:1/0,bottom:1,right:1};for(const r of o)n.top=Math.min(n.top,r.number),n.bottom=Math.max(n.bottom,r.number),n.left=Math.min(n.left,r.min||1),n.right=Math.max(n.right,r.max||1);return n}function W(e,t,o){const n=e.bottom-e.top+1,r=e.right-e.left+1;if(n>t.limits.maxRows||r>t.limits.maxColumns||n*r>o)throw new Error(`Excel 范围 ${v(e)} 超过导入行、列或单元格上限;请用 sheets/range 缩小范围`);return n*r}function Y(e,t){return e.top<=t.bottom&&e.bottom>=t.top&&e.left<=t.right&&e.right>=t.left}function q(e,t){const o=[];for(const n of e.model.merges){const r=u(n);if(Y(t,r)){if(r.left<t.left||r.right>t.right||r.top<t.top||r.bottom>t.bottom)throw new Error(`${e.name}: 范围 ${v(t)} 截断合并单元格 ${n},请包含完整合并区域`);o.push(r)}}return o}function Z(e,t){const o=new Map;for(const r of t)o.set(r.top,Math.max(o.get(r.top)??r.top,r.bottom));const n=[];for(let r=e.top;r<=e.bottom;){let s=o.get(r)??r;for(let i=r;i<=s;i++)s=Math.max(s,o.get(i)??i);n.push({top:r,bottom:s}),r=s+1}return n}function z(e,t,o,n){const r=[];let s,i=0;for(const a of e){const l=a.bottom-a.top+1;if(l>200)throw new Error("合并单元格跨越超过 200 行,无法安全分段;请先缩小或拆分该合并区域");let c=0;for(let d=a.top;d<=a.bottom;d++)c+=n(d);if(c>o&&Number.isFinite(o))throw new Error("合并区域或单行高度超过标准纸张可用高度;请使用 wide 或调整原模板行高");const m=s?a.bottom-s.top+1:l;s&&(m>t||i+c>o)&&(r.push(s),s=void 0,i=0),s?s.bottom=a.bottom:s={...a},i+=c}return s&&r.push(s),r}function U(e){const t=new Map,o=new Set;for(const n of e){t.set(`${n.top}:${n.left}`,n);for(let r=n.top;r<=n.bottom;r++)for(let s=n.left;s<=n.right;s++)(r!==n.top||s!==n.left)&&o.add(`${r}:${s}`)}return{masters:t,covered:o}}function $(e){return JSON.parse(JSON.stringify(e))}function V(e,t){const o=e.template.pages.slice(t.pageStart,t.pageStart+t.pageCount),n=o[0];if(!n)throw new Error(`工作表 ${t.name} 没有可绑定页面`);const r=new Map;let s=[];for(const i of o)for(const a of i.components){if(a.kind==="list"||!a.grid||a.meta?.xlsxSheet!==t.name)continue;const l=u(String(a.meta.xlsxRange)),c=a.grid;s=c.colWidthsMm??[],c.cells.forEach((m,d)=>r.set(l.top+d,{cells:$(m),height:c.rowHeightsMm?.[d]??6}))}if(!s.length||!r.size)throw new Error(`工作表 ${t.name} 缺少导入几何元数据`);return{rows:r,widths:[...s],page:n,range:u(t.range)}}function C(e,t,o){const n=[],r=[];for(let s=t;s<=o;s++){const i=e.rows.get(s);if(!i)throw new Error(`导入模板缺少第 ${s} 行`);for(const a of i.cells)if(a&&s+(a.rowSpan??1)-1>o)throw new Error(`第 ${s} 行合并区域跨越绑定边界,请调整 header/detail 范围`);n.push($(i.cells)),r.push(i.height)}return{cells:n,rowHeightsMm:r,colWidthsMm:e.widths,paddingMm:.25}}function Q(e,t){const o=u(e.header),n=e.detail?u(e.detail):{...t.range,top:o.bottom+1};for(const r of[o,n])if(r.left!==t.range.left||r.right!==t.range.right||r.top<t.range.top||r.bottom>t.range.bottom||r.top>r.bottom)throw new Error("绑定区域必须位于导入选区内并覆盖其完整列宽");if(n.top!==o.bottom+1)throw new Error("detail 应紧接 header,避免静态内容被隐式删除");if(e.columns.length!==t.widths.length)throw new Error("columns 应逐列映射整个选区;不能自动猜测业务字段");return X(t,[o.top,o.bottom+1,n.bottom+1]),{header:o,detail:n}}function X(e,t){for(const[o,n]of e.rows)for(const r of n.cells){const s=o+(r?.rowSpan??1);if(t.some(i=>o<i&&s>i))throw new Error(`第 ${o} 行合并区域跨越绑定边界,请调整 header/detail 范围`)}}function ee(e,t){const o=[];for(const n of A.resolveGridLayout(e,t.reduce((r,s)=>r+s,0),100).cells)for(let r=n.ci;r<Math.min(t.length,n.ci+(n.cell.colSpan??1));r++)o[r]=n.cell;return o}function te(e,t,o,n){if(t)return t;const r=e?.numberFormat;if(!r||r==="General")return;const s=/^(#,##)?0(?:\.(0+))?(%)?$/.exec(r);if(s){const i=s[2]?.length??0;if(i<=100)return s[3]?{kind:"percent",digits:i}:{kind:"number",digits:i,...s[1]?{thousands:!0}:{}}}n.push(`${o}: Excel 数字格式 ${r} 未自动套用到动态数据,请在 columns 中显式声明 format`)}function oe(e,t,o,n,r){const s=ee(t,n),i=A.resolveGridLayout(o,n.reduce((m,d)=>m+d,0),20).cells;if(i.some(({cell:m})=>(m.colSpan??1)!==1||(m.rowSpan??1)!==1))throw new Error("动态明细样例行不能包含合并格;合并表头可以保留");const a=new Map(i.map(m=>[m.ci,m.cell])),l=new Set,c=e.columns.map((m,d)=>{const f=typeof m=="string"?{field:m}:m;if(!f||typeof f.field!="string"||!f.field.trim()||l.has(f.field))throw new Error(`columns[${d}] 需要唯一的非空 field`);l.add(f.field);const g=s[d]?.text??f.field,h=a.get(d),w=e.inferSampleFormats===!1?f.format:te(h,f.format,f.field,r);return{...f,...w?{format:w}:{},header:f.header??g,widthMm:n[d],style:{...h?.style,...f.style},...f.semanticRole&&!f.align?{align:"auto"}:{},...f.editable===void 0&&h?.editable===!1?{editable:!1}:{}}});return re(e,s,c),c}function re(e,t,o){const n=new Map;e.columns.forEach((r,s)=>{const i=t[s];if(!i||typeof r=="string")return;const a=n.get(i)??{style:{}};if(r.header!==void 0){if(a.text!==void 0&&a.text!==r.header)throw new Error("同一合并表头不能配置不同 header");a.text=r.header}ne(a.style,{...r.headerAlign?{align:r.headerAlign}:{},...r.headerStyle}),n.set(i,a)});for(const[r,s]of n)s.text!==void 0&&Object.assign(r,{text:s.text,rawText:s.text,value:s.text}),r.style={...r.style,...s.style},t.forEach((i,a)=>{i===r&&(s.text!==void 0&&(o[a].header=s.text),s.style.align!==void 0&&(o[a].headerAlign=s.style.align))})}function ne(e,t){for(const o of Object.keys(t))if(t[o]!==void 0){if(e[o]!==void 0&&e[o]!==t[o])throw new Error(`同一合并表头不能配置不同 ${o}`);Object.assign(e,{[o]:t[o]})}}function se(e,t){const o=e.page,n=t.rowHeightsMm.reduce((r,s)=>r+s,0);return{...o,heightMm:Math.max(o.heightMm,n+(o.marginTopMm??0)+(o.marginBottomMm??0)),components:[{kind:"rect",leftMm:o.marginLeftMm??0,topMm:o.marginTopMm??0,widthMm:e.widths.reduce((r,s)=>r+s,0),heightMm:n,grid:t}]}}function ae(e,t,o,n){const r=V(e,t),{header:s,detail:i}=Q(o,r),a=C(r,r.range.top,s.bottom),l=C(r,i.top,i.top),c={...r.page,components:[]},m={kind:"list",id:`bound:${t.name}`,dataset:o.dataset??"detail",title:t.name,leftMm:c.marginLeftMm??0,topMm:c.marginTopMm??0,widthMm:r.widths.reduce((d,f)=>d+f,0),layout:c.layout??"page",headerGrid:a,columns:oe(o,a,l,r.widths,n),rowHeightMm:l.rowHeightsMm[0],headerEveryPage:!0,align:"auto",paddingMm:.25,...o.rowKey?{rowKey:o.rowKey}:{},...o.revisionField?{revisionField:o.revisionField}:{},...o.sourceTokenField?{sourceTokenField:o.sourceTokenField}:{},...o.groupBy?{groupBy:o.groupBy}:{},...o.grandTotal===void 0?{}:{grandTotal:o.grandTotal}};return c.components.push(m),i.bottom===r.range.bottom?[c]:(n.push(`${t.name}: 明细区域后的静态内容保留为后续独立页面,不推断动态页脚定位`),[c,se(r,C(r,i.bottom+1,r.range.bottom))])}function j(e,t){const o=S.validateReportTemplate(e.template);if(!o.ok)throw new Error(`导入模板无效:${o.errors[0]?.message}`);if(!t.length)throw new Error("至少需要一个 Excel 业务绑定");const n=new Map;for(const l of t){if(!e.sheets.some(c=>c.name===l.sheet)||n.has(l.sheet))throw new Error(`绑定工作表不存在或重复:${l.sheet}`);n.set(l.sheet,l)}const r=[...e.warnings],s=e.sheets.flatMap(l=>{const c=n.get(l.name);return c?ae(e,l,c,r):$(e.template.pages.slice(l.pageStart,l.pageStart+l.pageCount))}),i={...$(e.template),pages:s},a=S.validateReportTemplate(i);if(!a.ok)throw new Error(`业务模板无效:${a.errors[0]?.path} ${a.errors[0]?.message}`);return{template:i,warnings:r}}function ie(e,t){return ce(e,t)}function ce(e,t){const o=e.sheets.find(l=>l.name===t.sheet);if(!o)return[];const n=u(t.regions.header),r=u(t.regions.detail),s=[n.top,n.bottom+1,r.bottom+1],i=[],a=new Set;for(const l of e.template.pages.slice(o.pageStart,o.pageStart+o.pageCount))for(const c of l.components){if(c.kind==="list"||!c.grid||c.meta?.xlsxSheet!==t.sheet)continue;const m=u(String(c.meta.xlsxRange));c.grid.cells.forEach((d,f)=>{const g=m.top+f;for(const h of d){const w=s.some(b=>g<b&&g+(h?.rowSpan??1)>b),E=g===r.top&&((h?.rowSpan??1)>1||(h?.colSpan??1)>1);if(!w&&!E)continue;const y=w?"$.recipe.regions":"$.recipe.regions.detail";a.has(y)||(a.add(y),i.push({path:y,code:"region",message:w?`第 ${g} 行合并区域跨越绑定边界,请选择完整合并区域`:"动态明细原型行不能包含合并格"}))}})}return i}function G(e){return JSON.parse(JSON.stringify(e))}function M(e){return e instanceof Error?e.message:String(e)}function p(e,t,o,n){e.push({path:t,code:o,message:n})}function K(e,t){return{fields:e.fields,...t?{rowKey:t}:{}}}function le(e,t){const o=new Set;for(const[n,r]of e.entries()){const s=`$.datasets[${n}]`;if(!r||typeof r.id!="string"||!r.id.trim()||o.has(r.id)){p(t,s,"schema","数据集标识应非空且唯一");continue}o.add(r.id);try{F.validateDatasetRows([],K(r,r.rowKey));for(const[i,a]of r.fields.entries())a.digits!==void 0&&(!Number.isInteger(a.digits)||a.digits<0||a.digits>100)&&p(t,`${s}.fields[${i}].digits`,"schema","显示精度应为 0–100 的整数")}catch(i){p(t,s,"schema",M(i))}}}function fe(e,t,o){const n=e.sheets.find(a=>a.name===t.sheet);if(!n){p(o,"$.recipe.sheet","source","指定的工作表不存在");return}let r;try{r=u(n.range)}catch(a){p(o,"$.source.sheets","source",M(a));return}const s=new Map;for(const a of["title","header","detail","footer"]){const l=t.regions?.[a];if(!(!l&&(a==="title"||a==="footer")))try{const c=u(l??"");if(c.left!==r.left||c.right!==r.right||c.top<r.top||c.bottom>r.bottom)throw new Error("区域必须覆盖选区完整列宽,并位于原始工作表内");s.set(a,c)}catch(c){p(o,`$.recipe.regions.${a}`,"region",M(c))}}const i=[...s.values()];i.length&&(i[0].top!==r.top||i[i.length-1].bottom!==r.bottom)&&p(o,"$.recipe.regions","region","标题、表头、明细、页脚应完整覆盖来源,不能隐式删除静态内容");for(let a=1;a<i.length;a++)i[a].top!==i[a-1].bottom+1&&p(o,"$.recipe.regions","region","各区域应顺序相邻且不重叠")}function me(e,t,o,n){if(!Array.isArray(e.fields)||e.fields.length!==o)return p(n,"$.recipe.fields","mapping","每个物理 Excel 列必须显式绑定一个业务字段"),0;const r=new Set(t.fields.map(a=>a.field)),s=new Set;let i=0;e.fields.forEach((a,l)=>{typeof a!="string"||!r.has(a)?p(n,`$.recipe.fields[${l}]`,"mapping","请选择契约中已声明的字段"):s.has(a)?p(n,`$.recipe.fields[${l}]`,"mapping","同一业务字段不能重复绑定物理列"):(i++,s.add(a))});try{if(!e.rowKey)throw new Error("请明确选择稳定业务主键,不能使用展示行号");const a=K(t,e.rowKey),l=F.validateDatasetRows(t.samples??[],a,{path:`$.datasets.${t.id}.samples`,maxRows:100,maxCells:2e5,maxIssues:30});for(const c of l.issues)p(n,c.path,c.code==="row-key"?"row-key":"schema",c.message)}catch(a){p(n,"$.recipe.rowKey","row-key",M(a))}return i}function D(e,t){const o=[];return!t||t.version!=="1.0"?[{path:"$.recipe.version",code:"schema",message:"不支持的 Excel 绑定配置版本"}]:(fe(e,t,o),o.length||o.push(...ie(e,t)),o)}function L(e,t,o){const n=[];if(!t||t.version!=="1.0")return{ok:!1,issues:[{path:"$.recipe.version",code:"schema",message:"不支持的 Excel 绑定配置版本"}],mapped:0,total:0};le(o,n);const r=e.sheets.find(a=>a.name===t.sheet)?.columnCount??0,s=o.find(a=>a.id===t.dataset);let i=0;return s?n.some(a=>a.code==="schema")||(i=me(t,s,r,n)):p(n,"$.recipe.dataset","schema","请明确选择宿主提供的数据集契约"),{ok:n.length===0,issues:n,mapped:i,total:r}}function J(e,t,o){const n=L(e,t,o);if(!t||t.version!=="1.0")return n;const r=[...D(e,t),...n.issues];return{...n,ok:r.length===0,issues:r}}function ge(e){const t=e.semanticRole??(e.type==="number"||e.type==="decimal"?"measure":e.type==="date"?"date":"text");return{field:e.field,semanticRole:t,editable:!1,...e.type==="number"&&e.digits!==void 0?{format:{kind:"number",digits:e.digits}}:{},...e.type==="date"?{format:{kind:"date",pattern:"YYYY-MM-DD"}}:{}}}function he(e,t,o,n){const r=J(e,t,o);if(!r.ok)throw new Error(r.issues.map(m=>`${m.path}: ${m.message}`).join(`
2
- `));const s=e.sheets.find(m=>m.name===t.sheet),i={...e,sheets:[{...s,pageStart:0}],template:{...e.template,pages:e.template.pages.slice(s.pageStart,s.pageStart+s.pageCount)}},a=new Map(o.find(m=>m.id===t.dataset).fields.map(m=>[m.field,m])),l={sheet:t.sheet,dataset:t.dataset,header:t.regions.header,detail:t.regions.detail,rowKey:t.rowKey,inferSampleFormats:!1,columns:t.fields.map(m=>ge(a.get(m)))},c=j(i,[l]);return{document:S.defineReportTemplate({...n,template:c.template}),recipe:G(t),warnings:c.warnings}}function de(e){return e===null||typeof e=="string"||typeof e=="boolean"||typeof e=="number"&&Number.isFinite(e)}function H(e,t=0){if(de(e))return;if(!e||typeof e!="object"||t>16)throw new Error("绑定会话元数据只允许有限深度的普通 JSON 值");const o=Object.getPrototypeOf(e);if(Array.isArray(e)?o!==Array.prototype:o!==Object.prototype&&o!==null)throw new Error("绑定会话不能包含特殊对象原型");if(Object.getOwnPropertySymbols(e).length)throw new Error("绑定会话不能包含 Symbol");if(Array.isArray(e)&&Object.keys(e).length!==e.length)throw new Error("绑定会话数组不能包含空位或额外属性");for(const[n,r]of Object.entries(Object.getOwnPropertyDescriptors(e)))if(!(Array.isArray(e)&&n==="length")){if(["__proto__","prototype","constructor"].includes(n)||r.get||r.set||!r.enumerable)throw new Error("绑定会话包含不安全元数据");H(r.value,t+1)}}function ue(e,t){if(e?.version!=="1.0"||!Array.isArray(e.fields)||e.fields.length>16384||e.fields.some(o=>typeof o!="string"))throw new Error("Excel 绑定配置无效");if(typeof e.dataset!="string"||typeof e.rowKey!="string"||!e.regions||typeof t?.id!="string"||typeof t.name!="string")throw new Error("Excel 绑定参数或标识无效");for(const o of Object.values(e.regions))o!==""&&u(o)}function pe(e){for(const t of e.sheets)if(u(t.range),typeof t.name!="string"||![t.index,t.rowCount,t.columnCount,t.pageCount].every(o=>Number.isInteger(o)&&o>0)||!Number.isInteger(t.pageStart)||t.pageStart<0||t.pageStart+t.pageCount>e.template.pages.length)throw new Error("Excel 绑定工作表几何元数据无效")}function we(e,t,o){if(H({sheets:e.sheets,warnings:e.warnings,recipe:t,identity:o}),!Array.isArray(e.sheets)||!e.sheets.length||e.sheets.length>32||!Array.isArray(e.warnings)||e.warnings.some(n=>typeof n!="string"))throw new Error("Excel 绑定来源元数据无效");if(ue(t,o),!e.sheets.some(n=>n.name===t.sheet))throw new Error("Excel 绑定工作表不存在");pe(e)}function P(e,t,o){return we(e,t,o),S.parseReportTemplate({schemaVersion:"1.0",id:o.id,name:o.name,template:e.template}),G({version:"1.0",source:e,recipe:t,identity:o})}function ye(e){if(typeof e=="string"&&e.length>1e7)throw new Error("Excel 绑定会话超过 1000 万字符上限");const t=typeof e=="string"?JSON.parse(e):e;if(!t||t.version!=="1.0"||t.recipe?.version!=="1.0"||!Array.isArray(t.source?.sheets))throw new Error("Excel 绑定会话结构或版本无效");return P(t.source,t.recipe,t.identity)}function Ee(e,t,o,n){const r=e.sheets.find(l=>l.name===t);if(!r)throw new Error("工作表不存在");const s=u(r.range),i=Math.min(o,n),a=Math.max(o,n);if(!Number.isInteger(i)||!Number.isInteger(a)||i<s.top||a>s.bottom)throw new Error("选中行超出来源区域");return v({...s,top:i,bottom:a})}function I(e,t,o){const n=e??t;if(!Number.isInteger(n)||n<1||n>o)throw new Error(`预览窗口大小应为 1–${o} 的整数`);return n}function T(e,t,o){const n=e??t;if(!Number.isInteger(n))throw new Error("预览起点应为整数");return Math.max(t,Math.min(o,n))}function be(e,t,o={}){const n=e.sheets.find(f=>f.name===t);if(!n)throw new Error("指定的工作表不存在");const r=u(n.range),s=T(o.row,r.top,r.bottom),i=T(o.column,r.left,r.right),a=Math.min(r.bottom,s+I(o.rows,24,100)-1),l=Math.min(r.right,i+I(o.columns,12,32)-1),c=Array.from({length:a-s+1},(f,g)=>({row:s+g,cells:[]})),m=new Set;for(const f of e.template.pages.slice(n.pageStart,n.pageStart+n.pageCount))for(const g of f.components){if(g.kind==="list"||!g.grid||g.meta?.xlsxSheet!==t)continue;const h=u(String(g.meta.xlsxRange));if(h.bottom<s||h.top>a)continue;const w=A.resolveGridLayout(g.grid,g.widthMm,g.heightMm);for(const E of w.cells)d(E.cell,h.top+E.ri,h.left+E.ci)}for(const f of c){for(let g=i;g<=l;g++)m.has(`${f.row}:${g}`)||f.cells.push({address:`${x(g)}${f.row}`,row:f.row,column:g,text:"",rowSpan:1,colSpan:1,continued:!1});f.cells.sort((g,h)=>g.column-h.column)}return{top:s,bottom:a,left:i,right:l,source:r,rows:c,columns:Array.from({length:l-i+1},(f,g)=>({column:i+g,name:x(i+g)}))};function d(f,g,h){const w=g+(f.rowSpan??1)-1,E=h+(f.colSpan??1)-1;if(w<s||g>a||E<i||h>l)return;const y=Math.max(s,g),b=Math.max(i,h),B=Math.min(a,w)-y+1,N=Math.min(l,E)-b+1;c[y-s].cells.push({address:`${x(h)}${g}`,row:y,column:b,text:f.text??f.rawText??String(f.value??""),rowSpan:B,colSpan:N,continued:y!==g||b!==h,style:f.style});for(let R=y;R<y+B;R++)for(let k=b;k<b+N;k++)m.add(`${R}:${k}`)}}exports.bindExcelTemplate=j;exports.checkedRange=W;exports.columnName=x;exports.createExcelBindingDocument=he;exports.createExcelBindingSession=P;exports.excelBindingRowRange=Ee;exports.getExcelSheetWindow=be;exports.mergeLookup=U;exports.mergeRowGroups=Z;exports.parseExcelBindingSession=ye;exports.parseImportRange=u;exports.rangeName=v;exports.rowSegments=z;exports.selectedMerges=q;exports.selectedRange=_;exports.validateExcelBindingFields=L;exports.validateExcelBindingRecipe=J;exports.validateExcelBindingRegions=D;