@agile-team/mach-report 2.16.0 → 2.18.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 (177) hide show
  1. package/README.md +25 -12
  2. package/dist/{ExcelBindingWizard-CP6h2x1f.cjs → ExcelBindingWizard-Czn3C2yE.cjs} +1 -1
  3. package/dist/{ExcelBindingWizard-HhB3hAJE.js → ExcelBindingWizard-DMGZj6I6.js} +3 -3
  4. package/dist/ParamEditor-KzDQvbHY.js +732 -0
  5. package/dist/ParamEditor-oDfD8LgE.cjs +1 -0
  6. package/dist/{ReportBatchPanel-ruxcbfY6.js → ReportBatchPanel-BJK7PvZ4.js} +39 -39
  7. package/dist/ReportBatchPanel-DnmNRssu.cjs +1 -0
  8. package/dist/ReportParamPanel-mQkeN70Q.js +1020 -0
  9. package/dist/ReportParamPanel-sOANVRz-.cjs +1 -0
  10. package/dist/ReportPreview-BxWWTUL5.js +5583 -0
  11. package/dist/ReportPreview-Yf99omi3.cjs +6 -0
  12. package/dist/{ReportTemplateLibrary-DcwrH-63.js → ReportTemplateLibrary-BFjB08Wu.js} +1 -1
  13. package/dist/{ReportTemplateLibrary-BDlNT8JN.cjs → ReportTemplateLibrary-BO42QnWd.cjs} +1 -1
  14. package/dist/RuleEditor-CqxT1a-W.js +2337 -0
  15. package/dist/RuleEditor-D7YWigD9.cjs +1 -0
  16. package/dist/{TemplateOutlinePanel-CGrT5DFN.cjs → TemplateOutlinePanel-B0XX350V.cjs} +1 -1
  17. package/dist/{TemplateOutlinePanel-SXCjaPKR.js → TemplateOutlinePanel-zG0DrsIB.js} +2 -2
  18. package/dist/{TemplateReusePanel-6Z3wRFz8.cjs → TemplateReusePanel-BD0HSKp_.cjs} +1 -1
  19. package/dist/{TemplateReusePanel-lHLOS9Wn.js → TemplateReusePanel-Czwe5GbC.js} +2 -2
  20. package/dist/{TemplateReviewPanel-Dpk7sLcF.cjs → TemplateReviewPanel-CA5sdffM.cjs} +1 -1
  21. package/dist/{TemplateReviewPanel-CJ9PLc48.js → TemplateReviewPanel-NhmQI65C.js} +2 -2
  22. package/dist/analytics.cjs +1 -1
  23. package/dist/analytics.d.cts +163 -42
  24. package/dist/analytics.d.ts +163 -42
  25. package/dist/analytics.js +76 -141
  26. package/dist/artifact-integrity.json +110 -108
  27. package/dist/assets-2eC3mOcV.js +232 -0
  28. package/dist/assets-B0Hxn4l6.cjs +1 -0
  29. package/dist/{auto-uVBjX1j5.cjs → auto-B0EZFIK1.cjs} +1 -1
  30. package/dist/{auto-YR7a4BtF.js → auto-BlchZ1b8.js} +10 -10
  31. package/dist/{batch-WzDIXJAt.js → batch-DGCt44XM.js} +1 -1
  32. package/dist/{batch-z6Aw5GEY.cjs → batch-DYcokH4v.cjs} +1 -1
  33. package/dist/charts-Dlv8j2AG.js +141 -0
  34. package/dist/charts-aCtoswXq.cjs +1 -0
  35. package/dist/codes.cjs +9 -9
  36. package/dist/codes.d.cts +54 -0
  37. package/dist/codes.d.ts +54 -0
  38. package/dist/codes.js +12097 -13668
  39. package/dist/column-visual-BpgQVWwT.js +238 -0
  40. package/dist/column-visual-CtYxnBCP.cjs +1 -0
  41. package/dist/component-tree-6TV7W6Yj.cjs +1 -0
  42. package/dist/component-tree-CvW4lzpv.js +67 -0
  43. package/dist/computed-4TnxzgIh.cjs +1 -0
  44. package/dist/computed-C8NRZQss.js +739 -0
  45. package/dist/data-bar-Ce38juRZ.cjs +1 -0
  46. package/dist/data-bar-PtjXhMgN.js +9 -0
  47. package/dist/dataset-DL83majE.js +161 -0
  48. package/dist/dataset-IrlXbUvh.cjs +1 -0
  49. package/dist/designer--TKECSEc.cjs +2 -0
  50. package/dist/designer-d6hJS41w.js +5683 -0
  51. package/dist/designer.cjs +1 -1
  52. package/dist/designer.d.cts +835 -45
  53. package/dist/designer.d.ts +835 -45
  54. package/dist/designer.js +23 -20
  55. package/dist/{encoding-BYF9ZTl9.cjs → encoding-B--eZpp1.cjs} +1 -1
  56. package/dist/{encoding-BOGq4qYL.js → encoding-mctOLocI.js} +2 -2
  57. package/dist/{font-loader-EKLzOJxf.cjs → font-loader-DBBJ5KE9.cjs} +1 -1
  58. package/dist/{font-loader-CzI1GuBc.js → font-loader-DW8tIaNp.js} +1 -1
  59. package/dist/index-CPh6tqge.js +1575 -0
  60. package/dist/index-CUNw7dL9.cjs +1 -0
  61. package/dist/index.cjs +8 -8
  62. package/dist/index.d.cts +534 -16
  63. package/dist/index.d.ts +534 -16
  64. package/dist/index.js +1393 -955
  65. package/dist/json-snapshot-By4ZVVUt.js +1967 -0
  66. package/dist/json-snapshot-jiXff4lc.cjs +2 -0
  67. package/dist/matrix-0hywp0-F.cjs +1 -0
  68. package/dist/matrix-Dy-tyY7E.js +381 -0
  69. package/dist/param-validation-C-8sRJLq.cjs +1 -0
  70. package/dist/param-validation-CnDEd2l-.js +333 -0
  71. package/dist/{pdf-DJ5S6ukC.js → pdf-CKROKygt.js} +1845 -1845
  72. package/dist/{pdf-ByVCb1i6.cjs → pdf-DqyxJ96U.cjs} +47 -47
  73. package/dist/pdf.cjs +1 -1
  74. package/dist/pdf.d.cts +66 -0
  75. package/dist/pdf.d.ts +66 -0
  76. package/dist/pdf.js +2 -2
  77. package/dist/{plugin-C2j5_mhx.js → plugin-ByjF2kiV.js} +5 -5
  78. package/dist/{plugin-Dr39GBRG.cjs → plugin-DM1M2wlI.cjs} +1 -1
  79. package/dist/prefill-B8H9qwE4.js +371 -0
  80. package/dist/prefill-D7EswyTI.cjs +1 -0
  81. package/dist/{prepared-DqtpvRTn.js → prepared-BE-4jfX5.js} +2 -2
  82. package/dist/{prepared-DdrjLC7L.cjs → prepared-CGVphji3.cjs} +1 -1
  83. package/dist/{protocol-BzwMP4Vw.cjs → protocol-ByRVzzQG.cjs} +1 -1
  84. package/dist/{protocol-kt4Iy6-3.js → protocol-Cr81vFSQ.js} +3 -3
  85. package/dist/{record-bindings-CZWBJ1fU.js → record-bindings-DEJtmo3p.js} +67 -107
  86. package/dist/record-bindings-ehjnCDHt.cjs +1 -0
  87. package/dist/{region-binding-workflow-CWNvIjkV.js → region-binding-workflow-CBg0l_tj.js} +2 -2
  88. package/dist/{region-binding-workflow-CqSMxQ4p.cjs → region-binding-workflow-D05tOYn3.cjs} +1 -1
  89. package/dist/report-encoding-worker.cjs +1 -1
  90. package/dist/report-encoding-worker.js +1 -1
  91. package/dist/{report-params-B1RzkhJj.js → report-params-D9tBuM9B.js} +1 -1
  92. package/dist/{report-params-WDGrA4oP.cjs → report-params-VTg8MoCp.cjs} +1 -1
  93. package/dist/runtime-CDA6d263.cjs +1 -0
  94. package/dist/runtime-CEMvybO7.js +170 -0
  95. package/dist/sbom.cdx.json +1 -1
  96. package/dist/server/node.d.cts +121 -7
  97. package/dist/server/node.d.ts +121 -7
  98. package/dist/server-node.cjs +4 -4
  99. package/dist/server-node.js +3446 -2115
  100. package/dist/server.cjs +1 -1
  101. package/dist/server.d.cts +417 -29
  102. package/dist/server.d.ts +417 -29
  103. package/dist/server.js +787 -544
  104. package/dist/sha256-BDQ1Qk7A.js +158 -0
  105. package/dist/sha256-DgZAKXqI.cjs +1 -0
  106. package/dist/style.css +1 -1
  107. package/dist/template-bindings-Cg5oBLFT.cjs +1 -0
  108. package/dist/template-bindings-TKnXM7ll.js +62 -0
  109. package/dist/{template-catalog-BtR2JmCL.js → template-catalog-CmbWOJqy.js} +16 -16
  110. package/dist/template-catalog-Utu4GP09.cjs +1 -0
  111. package/dist/{template-fragments-BVsbxs4a.cjs → template-fragments-C_zSHJAa.cjs} +1 -1
  112. package/dist/{template-fragments-By0aZC1D.js → template-fragments-DWgo9tlZ.js} +2 -2
  113. package/dist/{template-outline-BwRV_eRo.cjs → template-outline-DWkzZXVC.cjs} +1 -1
  114. package/dist/{template-outline-cnWfT_LK.js → template-outline-DiADphlq.js} +1 -1
  115. package/dist/{template-registry-Cw3vRTX2.js → template-registry-BIhIHOab.js} +319 -314
  116. package/dist/template-registry-DzWswQI5.cjs +1 -0
  117. package/dist/vue/async.d.cts +636 -35
  118. package/dist/vue/async.d.ts +636 -35
  119. package/dist/vue/index.d.cts +746 -67
  120. package/dist/vue/index.d.ts +746 -67
  121. package/dist/vue-async.cjs +1 -1
  122. package/dist/vue-async.js +3 -3
  123. package/dist/vue.cjs +1 -1
  124. package/dist/vue.js +94 -89
  125. package/dist/{workbook-session-Cbts-22R.cjs → workbook-session-B94EwVa_.cjs} +1 -1
  126. package/dist/{workbook-session-BeSO8PFB.js → workbook-session-BoScoOg-.js} +2 -2
  127. package/dist/worker.cjs +1 -1
  128. package/dist/worker.d.cts +75 -7
  129. package/dist/worker.d.ts +75 -7
  130. package/dist/worker.js +4 -4
  131. package/dist/xlsx.cjs +4 -4
  132. package/dist/xlsx.d.cts +208 -15
  133. package/dist/xlsx.d.ts +208 -15
  134. package/dist/xlsx.js +288 -252
  135. package/package.json +1 -1
  136. package/dist/ParamEditor-CUQLgoxa.cjs +0 -1
  137. package/dist/ParamEditor-OKesP_nO.js +0 -594
  138. package/dist/ReportBatchPanel-cZCAMAwH.cjs +0 -1
  139. package/dist/ReportPreview-BcDKCLiK.js +0 -4834
  140. package/dist/ReportPreview-Bk9nLfO9.cjs +0 -6
  141. package/dist/RuleEditor-BX5S8RSF.cjs +0 -1
  142. package/dist/RuleEditor-CGl9XY2s.js +0 -2037
  143. package/dist/assets-CqIbfbTr.js +0 -126
  144. package/dist/assets-e4YSke8n.cjs +0 -1
  145. package/dist/capabilities-DDwXr_cA.js +0 -103
  146. package/dist/capabilities-DNLyZdNw.cjs +0 -1
  147. package/dist/component-tree-Ca6YYfHq.js +0 -61
  148. package/dist/component-tree-DkGLEfZC.cjs +0 -1
  149. package/dist/computed-C-4C2S5h.js +0 -521
  150. package/dist/computed-CGV2a809.cjs +0 -1
  151. package/dist/config-Dg_o8e7m.cjs +0 -1
  152. package/dist/config-XQ4qrQ7Q.js +0 -844
  153. package/dist/dataset-BkRmwgeJ.cjs +0 -1
  154. package/dist/dataset-H5pFuQGU.js +0 -121
  155. package/dist/designer-BfQSahxq.js +0 -5163
  156. package/dist/designer-CPPdeM5_.cjs +0 -2
  157. package/dist/diagnostic-notification-B9K9We3h.cjs +0 -1
  158. package/dist/diagnostic-notification-qGAYZdkB.js +0 -7
  159. package/dist/drill-CsdjgkRM.cjs +0 -1
  160. package/dist/drill-DIGsZfyB.js +0 -145
  161. package/dist/json-snapshot-D6ioHth9.js +0 -1702
  162. package/dist/json-snapshot-DknkjvxP.cjs +0 -2
  163. package/dist/matrix-CGRGkn5s.js +0 -112
  164. package/dist/matrix-gEO7ZM_u.cjs +0 -1
  165. package/dist/param-validation-C3HlcLLO.cjs +0 -1
  166. package/dist/param-validation-Do7Eg8Zv.js +0 -181
  167. package/dist/record-bindings-DUX1VMlR.cjs +0 -1
  168. package/dist/runtime-BjKBI530.js +0 -168
  169. package/dist/runtime-CBFEPKEs.cjs +0 -1
  170. package/dist/sha256-BshdOkCC.cjs +0 -1
  171. package/dist/sha256-DTG-Gq8i.js +0 -157
  172. package/dist/template-bindings-C2SpvsMU.js +0 -58
  173. package/dist/template-bindings-CEtWyiLX.cjs +0 -1
  174. package/dist/template-catalog-C2NLdrwB.cjs +0 -1
  175. package/dist/template-registry-C62vpv4a.cjs +0 -1
  176. package/dist/tree-BX380Rr7.cjs +0 -1
  177. package/dist/tree-CjVZLRw7.js +0 -172
@@ -0,0 +1 @@
1
+ "use strict";function Ht(t,i="utf8"){return new TextDecoder(i).decode(t)}const Ie=new TextEncoder;function Re(t){return Ie.encode(t)}const Oe=1024*8,Be=(()=>{const t=new Uint8Array(4),i=new Uint32Array(t.buffer);return!((i[0]=1)&t[0])})(),bt={int8:globalThis.Int8Array,uint8:globalThis.Uint8Array,int16:globalThis.Int16Array,uint16:globalThis.Uint16Array,int32:globalThis.Int32Array,uint32:globalThis.Uint32Array,uint64:globalThis.BigUint64Array,int64:globalThis.BigInt64Array,float32:globalThis.Float32Array,float64:globalThis.Float64Array};class st{buffer;byteLength;byteOffset;length;offset;lastWrittenByte;littleEndian;_data;_mark;_marks;constructor(i=Oe,e={}){let n=!1;typeof i=="number"?i=new ArrayBuffer(i):(n=!0,this.lastWrittenByte=i.byteLength);const a=e.offset?e.offset>>>0:0,r=i.byteLength-a;let l=a;(ArrayBuffer.isView(i)||i instanceof st)&&(i.byteLength!==i.buffer.byteLength&&(l=i.byteOffset+a),i=i.buffer),n?this.lastWrittenByte=r:this.lastWrittenByte=0,this.buffer=i,this.length=r,this.byteLength=r,this.byteOffset=l,this.offset=0,this.littleEndian=!0,this._data=new DataView(this.buffer,l,r),this._mark=0,this._marks=[]}available(i=1){return this.offset+i<=this.length}isLittleEndian(){return this.littleEndian}setLittleEndian(){return this.littleEndian=!0,this}isBigEndian(){return!this.littleEndian}setBigEndian(){return this.littleEndian=!1,this}skip(i=1){return this.offset+=i,this}back(i=1){return this.offset-=i,this}seek(i){return this.offset=i,this}mark(){return this._mark=this.offset,this}reset(){return this.offset=this._mark,this}pushMark(){return this._marks.push(this.offset),this}popMark(){const i=this._marks.pop();if(i===void 0)throw new Error("Mark stack empty");return this.seek(i),this}rewind(){return this.offset=0,this}ensureAvailable(i=1){if(!this.available(i)){const n=(this.offset+i)*2,a=new Uint8Array(n);a.set(new Uint8Array(this.buffer)),this.buffer=a.buffer,this.length=n,this.byteLength=n,this._data=new DataView(this.buffer)}return this}readBoolean(){return this.readUint8()!==0}readInt8(){return this._data.getInt8(this.offset++)}readUint8(){return this._data.getUint8(this.offset++)}readByte(){return this.readUint8()}readBytes(i=1){return this.readArray(i,"uint8")}readArray(i,e){const n=bt[e].BYTES_PER_ELEMENT*i,a=this.byteOffset+this.offset,r=this.buffer.slice(a,a+n);if(this.littleEndian===Be&&e!=="uint8"&&e!=="int8"){const h=new Uint8Array(this.buffer.slice(a,a+n));h.reverse();const o=new bt[e](h.buffer);return this.offset+=n,o.reverse(),o}const l=new bt[e](r);return this.offset+=n,l}readInt16(){const i=this._data.getInt16(this.offset,this.littleEndian);return this.offset+=2,i}readUint16(){const i=this._data.getUint16(this.offset,this.littleEndian);return this.offset+=2,i}readInt32(){const i=this._data.getInt32(this.offset,this.littleEndian);return this.offset+=4,i}readUint32(){const i=this._data.getUint32(this.offset,this.littleEndian);return this.offset+=4,i}readFloat32(){const i=this._data.getFloat32(this.offset,this.littleEndian);return this.offset+=4,i}readFloat64(){const i=this._data.getFloat64(this.offset,this.littleEndian);return this.offset+=8,i}readBigInt64(){const i=this._data.getBigInt64(this.offset,this.littleEndian);return this.offset+=8,i}readBigUint64(){const i=this._data.getBigUint64(this.offset,this.littleEndian);return this.offset+=8,i}readChar(){return String.fromCharCode(this.readInt8())}readChars(i=1){let e="";for(let n=0;n<i;n++)e+=this.readChar();return e}readUtf8(i=1){return Ht(this.readBytes(i))}decodeText(i=1,e="utf8"){return Ht(this.readBytes(i),e)}writeBoolean(i){return this.writeUint8(i?255:0),this}writeInt8(i){return this.ensureAvailable(1),this._data.setInt8(this.offset++,i),this._updateLastWrittenByte(),this}writeUint8(i){return this.ensureAvailable(1),this._data.setUint8(this.offset++,i),this._updateLastWrittenByte(),this}writeByte(i){return this.writeUint8(i)}writeBytes(i){this.ensureAvailable(i.length);for(let e=0;e<i.length;e++)this._data.setUint8(this.offset++,i[e]);return this._updateLastWrittenByte(),this}writeInt16(i){return this.ensureAvailable(2),this._data.setInt16(this.offset,i,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeUint16(i){return this.ensureAvailable(2),this._data.setUint16(this.offset,i,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeInt32(i){return this.ensureAvailable(4),this._data.setInt32(this.offset,i,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeUint32(i){return this.ensureAvailable(4),this._data.setUint32(this.offset,i,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat32(i){return this.ensureAvailable(4),this._data.setFloat32(this.offset,i,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat64(i){return this.ensureAvailable(8),this._data.setFloat64(this.offset,i,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeBigInt64(i){return this.ensureAvailable(8),this._data.setBigInt64(this.offset,i,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeBigUint64(i){return this.ensureAvailable(8),this._data.setBigUint64(this.offset,i,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeChar(i){return this.writeUint8(i.charCodeAt(0))}writeChars(i){for(let e=0;e<i.length;e++)this.writeUint8(i.charCodeAt(e));return this}writeUtf8(i){return this.writeBytes(Re(i))}toArray(){return new Uint8Array(this.buffer,this.byteOffset,this.lastWrittenByte)}getWrittenByteLength(){return this.lastWrittenByte-this.byteOffset}_updateLastWrittenByte(){this.offset>this.lastWrittenByte&&(this.lastWrittenByte=this.offset)}}const Ne=4,Pt=0,Wt=1,Ce=2;function Y(t){let i=t.length;for(;--i>=0;)t[i]=0}const Ze=0,ie=1,Fe=2,Me=3,$e=258,Ot=29,lt=256,et=lt+1+Ot,P=30,Bt=19,ne=2*et+1,B=15,yt=16,He=7,Nt=256,ae=16,re=17,le=18,Tt=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),_t=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Pe=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),oe=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),We=512,S=new Array((et+2)*2);Y(S);const Q=new Array(P*2);Y(Q);const it=new Array(We);Y(it);const nt=new Array($e-Me+1);Y(nt);const Ct=new Array(Ot);Y(Ct);const ft=new Array(P);Y(ft);function xt(t,i,e,n,a){this.static_tree=t,this.extra_bits=i,this.extra_base=e,this.elems=n,this.max_length=a,this.has_stree=t&&t.length}let he,_e,se;function Et(t,i){this.dyn_tree=t,this.max_code=0,this.stat_desc=i}const fe=t=>t<256?it[t]:it[256+(t>>>7)],at=(t,i)=>{t.pending_buf[t.pending++]=i&255,t.pending_buf[t.pending++]=i>>>8&255},w=(t,i,e)=>{t.bi_valid>yt-e?(t.bi_buf|=i<<t.bi_valid&65535,at(t,t.bi_buf),t.bi_buf=i>>yt-t.bi_valid,t.bi_valid+=e-yt):(t.bi_buf|=i<<t.bi_valid&65535,t.bi_valid+=e)},A=(t,i,e)=>{w(t,e[i*2],e[i*2+1])},de=(t,i)=>{let e=0;do e|=t&1,t>>>=1,e<<=1;while(--i>0);return e>>>1},Ke=t=>{t.bi_valid===16?(at(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)},Ye=(t,i)=>{const e=i.dyn_tree,n=i.max_code,a=i.stat_desc.static_tree,r=i.stat_desc.has_stree,l=i.stat_desc.extra_bits,h=i.stat_desc.extra_base,o=i.stat_desc.max_length;let _,u,c,d,E,k,z=0;for(d=0;d<=B;d++)t.bl_count[d]=0;for(e[t.heap[t.heap_max]*2+1]=0,_=t.heap_max+1;_<ne;_++)u=t.heap[_],d=e[e[u*2+1]*2+1]+1,d>o&&(d=o,z++),e[u*2+1]=d,!(u>n)&&(t.bl_count[d]++,E=0,u>=h&&(E=l[u-h]),k=e[u*2],t.opt_len+=k*(d+E),r&&(t.static_len+=k*(a[u*2+1]+E)));if(z!==0){do{for(d=o-1;t.bl_count[d]===0;)d--;t.bl_count[d]--,t.bl_count[d+1]+=2,t.bl_count[o]--,z-=2}while(z>0);for(d=o;d!==0;d--)for(u=t.bl_count[d];u!==0;)c=t.heap[--_],!(c>n)&&(e[c*2+1]!==d&&(t.opt_len+=(d-e[c*2+1])*e[c*2],e[c*2+1]=d),u--)}},ce=(t,i,e)=>{const n=new Array(B+1);let a=0,r,l;for(r=1;r<=B;r++)a=a+e[r-1]<<1,n[r]=a;for(l=0;l<=i;l++){let h=t[l*2+1];h!==0&&(t[l*2]=de(n[h]++,h))}},Xe=()=>{let t,i,e,n,a;const r=new Array(B+1);for(e=0,n=0;n<Ot-1;n++)for(Ct[n]=e,t=0;t<1<<Tt[n];t++)nt[e++]=n;for(nt[e-1]=n,a=0,n=0;n<16;n++)for(ft[n]=a,t=0;t<1<<_t[n];t++)it[a++]=n;for(a>>=7;n<P;n++)for(ft[n]=a<<7,t=0;t<1<<_t[n]-7;t++)it[256+a++]=n;for(i=0;i<=B;i++)r[i]=0;for(t=0;t<=143;)S[t*2+1]=8,t++,r[8]++;for(;t<=255;)S[t*2+1]=9,t++,r[9]++;for(;t<=279;)S[t*2+1]=7,t++,r[7]++;for(;t<=287;)S[t*2+1]=8,t++,r[8]++;for(ce(S,et+1,r),t=0;t<P;t++)Q[t*2+1]=5,Q[t*2]=de(t,5);he=new xt(S,Tt,lt+1,et,B),_e=new xt(Q,_t,0,P,B),se=new xt(new Array(0),Pe,0,Bt,He)},ue=t=>{let i;for(i=0;i<et;i++)t.dyn_ltree[i*2]=0;for(i=0;i<P;i++)t.dyn_dtree[i*2]=0;for(i=0;i<Bt;i++)t.bl_tree[i*2]=0;t.dyn_ltree[Nt*2]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},ge=t=>{t.bi_valid>8?at(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},Kt=(t,i,e,n)=>{const a=i*2,r=e*2;return t[a]<t[r]||t[a]===t[r]&&n[i]<=n[e]},vt=(t,i,e)=>{const n=t.heap[e];let a=e<<1;for(;a<=t.heap_len&&(a<t.heap_len&&Kt(i,t.heap[a+1],t.heap[a],t.depth)&&a++,!Kt(i,n,t.heap[a],t.depth));)t.heap[e]=t.heap[a],e=a,a<<=1;t.heap[e]=n},Yt=(t,i,e)=>{let n,a,r=0,l,h;if(t.sym_next!==0)do n=t.pending_buf[t.sym_buf+r++]&255,n+=(t.pending_buf[t.sym_buf+r++]&255)<<8,a=t.pending_buf[t.sym_buf+r++],n===0?A(t,a,i):(l=nt[a],A(t,l+lt+1,i),h=Tt[l],h!==0&&(a-=Ct[l],w(t,a,h)),n--,l=fe(n),A(t,l,e),h=_t[l],h!==0&&(n-=ft[l],w(t,n,h)));while(r<t.sym_next);A(t,Nt,i)},kt=(t,i)=>{const e=i.dyn_tree,n=i.stat_desc.static_tree,a=i.stat_desc.has_stree,r=i.stat_desc.elems;let l,h,o=-1,_;for(t.heap_len=0,t.heap_max=ne,l=0;l<r;l++)e[l*2]!==0?(t.heap[++t.heap_len]=o=l,t.depth[l]=0):e[l*2+1]=0;for(;t.heap_len<2;)_=t.heap[++t.heap_len]=o<2?++o:0,e[_*2]=1,t.depth[_]=0,t.opt_len--,a&&(t.static_len-=n[_*2+1]);for(i.max_code=o,l=t.heap_len>>1;l>=1;l--)vt(t,e,l);_=r;do l=t.heap[1],t.heap[1]=t.heap[t.heap_len--],vt(t,e,1),h=t.heap[1],t.heap[--t.heap_max]=l,t.heap[--t.heap_max]=h,e[_*2]=e[l*2]+e[h*2],t.depth[_]=(t.depth[l]>=t.depth[h]?t.depth[l]:t.depth[h])+1,e[l*2+1]=e[h*2+1]=_,t.heap[1]=_++,vt(t,e,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],Ye(t,i),ce(e,o,t.bl_count)},Xt=(t,i,e)=>{let n,a=-1,r,l=i[1],h=0,o=7,_=4;for(l===0&&(o=138,_=3),i[(e+1)*2+1]=65535,n=0;n<=e;n++)r=l,l=i[(n+1)*2+1],!(++h<o&&r===l)&&(h<_?t.bl_tree[r*2]+=h:r!==0?(r!==a&&t.bl_tree[r*2]++,t.bl_tree[ae*2]++):h<=10?t.bl_tree[re*2]++:t.bl_tree[le*2]++,h=0,a=r,l===0?(o=138,_=3):r===l?(o=6,_=3):(o=7,_=4))},Gt=(t,i,e)=>{let n,a=-1,r,l=i[1],h=0,o=7,_=4;for(l===0&&(o=138,_=3),n=0;n<=e;n++)if(r=l,l=i[(n+1)*2+1],!(++h<o&&r===l)){if(h<_)do A(t,r,t.bl_tree);while(--h!==0);else r!==0?(r!==a&&(A(t,r,t.bl_tree),h--),A(t,ae,t.bl_tree),w(t,h-3,2)):h<=10?(A(t,re,t.bl_tree),w(t,h-3,3)):(A(t,le,t.bl_tree),w(t,h-11,7));h=0,a=r,l===0?(o=138,_=3):r===l?(o=6,_=3):(o=7,_=4)}},Ge=t=>{let i;for(Xt(t,t.dyn_ltree,t.l_desc.max_code),Xt(t,t.dyn_dtree,t.d_desc.max_code),kt(t,t.bl_desc),i=Bt-1;i>=3&&t.bl_tree[oe[i]*2+1]===0;i--);return t.opt_len+=3*(i+1)+5+5+4,i},je=(t,i,e,n)=>{let a;for(w(t,i-257,5),w(t,e-1,5),w(t,n-4,4),a=0;a<n;a++)w(t,t.bl_tree[oe[a]*2+1],3);Gt(t,t.dyn_ltree,i-1),Gt(t,t.dyn_dtree,e-1)},Ve=t=>{let i=4093624447,e;for(e=0;e<=31;e++,i>>>=1)if(i&1&&t.dyn_ltree[e*2]!==0)return Pt;if(t.dyn_ltree[18]!==0||t.dyn_ltree[20]!==0||t.dyn_ltree[26]!==0)return Wt;for(e=32;e<lt;e++)if(t.dyn_ltree[e*2]!==0)return Wt;return Pt};let jt=!1;const qe=t=>{jt||(Xe(),jt=!0),t.l_desc=new Et(t.dyn_ltree,he),t.d_desc=new Et(t.dyn_dtree,_e),t.bl_desc=new Et(t.bl_tree,se),t.bi_buf=0,t.bi_valid=0,ue(t)},pe=(t,i,e,n)=>{w(t,(Ze<<1)+(n?1:0),3),ge(t),at(t,e),at(t,~e),e&&t.pending_buf.set(t.window.subarray(i,i+e),t.pending),t.pending+=e},Je=t=>{w(t,ie<<1,3),A(t,Nt,S),Ke(t)},Qe=(t,i,e,n)=>{let a,r,l=0;t.level>0?(t.strm.data_type===Ce&&(t.strm.data_type=Ve(t)),kt(t,t.l_desc),kt(t,t.d_desc),l=Ge(t),a=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=a&&(a=r)):a=r=e+5,e+4<=a&&i!==-1?pe(t,i,e,n):t.strategy===Ne||r===a?(w(t,(ie<<1)+(n?1:0),3),Yt(t,S,Q)):(w(t,(Fe<<1)+(n?1:0),3),je(t,t.l_desc.max_code+1,t.d_desc.max_code+1,l+1),Yt(t,t.dyn_ltree,t.dyn_dtree)),ue(t),n&&ge(t)},ti=(t,i,e)=>(t.pending_buf[t.sym_buf+t.sym_next++]=i,t.pending_buf[t.sym_buf+t.sym_next++]=i>>8,t.pending_buf[t.sym_buf+t.sym_next++]=e,i===0?t.dyn_ltree[e*2]++:(t.matches++,i--,t.dyn_ltree[(nt[e]+lt+1)*2]++,t.dyn_dtree[fe(i)*2]++),t.sym_next===t.sym_end);var ei=qe,ii=pe,ni=Qe,ai=ti,ri=Je,li={_tr_init:ei,_tr_stored_block:ii,_tr_flush_block:ni,_tr_tally:ai,_tr_align:ri};const oi=(t,i,e,n)=>{let a=t&65535|0,r=t>>>16&65535|0,l=0;for(;e!==0;){l=e>2e3?2e3:e,e-=l;do a=a+i[n++]|0,r=r+a|0;while(--l);a%=65521,r%=65521}return a|r<<16|0};var we=oi;const hi=()=>{let t,i=[];for(var e=0;e<256;e++){t=e;for(var n=0;n<8;n++)t=t&1?3988292384^t>>>1:t>>>1;i[e]=t}return i},_i=new Uint32Array(hi()),si=(t,i,e,n)=>{const a=_i,r=n+e;t^=-1;for(let l=n;l<r;l++)t=t>>>8^a[(t^i[l])&255];return t^-1};var U=si,dt={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},be={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:fi,_tr_stored_block:St,_tr_flush_block:di,_tr_tally:I,_tr_align:ci}=li,{Z_NO_FLUSH:R,Z_PARTIAL_FLUSH:ui,Z_FULL_FLUSH:gi,Z_FINISH:x,Z_BLOCK:Vt,Z_OK:g,Z_STREAM_END:qt,Z_STREAM_ERROR:m,Z_DATA_ERROR:pi,Z_BUF_ERROR:At,Z_DEFAULT_COMPRESSION:wi,Z_FILTERED:bi,Z_HUFFMAN_ONLY:ht,Z_RLE:yi,Z_FIXED:xi,Z_DEFAULT_STRATEGY:Ei,Z_UNKNOWN:vi,Z_DEFLATED:ut}=be,Ai=9,mi=15,Ti=8,ki=29,Si=256,zt=Si+1+ki,zi=30,Ui=19,Li=2*zt+1,Di=15,s=3,D=258,T=D+s+1,Ii=32,W=42,Zt=57,Ut=69,Lt=73,Dt=91,It=103,N=113,q=666,p=1,X=2,Z=3,G=4,Ri=3,C=(t,i)=>(t.msg=dt[i],i),Jt=t=>t*2-(t>4?9:0),L=t=>{let i=t.length;for(;--i>=0;)t[i]=0},Oi=t=>{let i,e,n,a=t.w_size;i=t.hash_size,n=i;do e=t.head[--n],t.head[n]=e>=a?e-a:0;while(--i);i=a,n=i;do e=t.prev[--n],t.prev[n]=e>=a?e-a:0;while(--i)};let Ft=(t,i,e)=>(i<<t.hash_shift^e)&t.hash_mask;const F=(t,i)=>{let e;if(t.legacy_hash)e=t.ins_h=Ft(t,t.ins_h,t.window[i+s-1]);else{const a=t.window,r=a[i]|a[i+1]<<8|a[i+2]<<16|a[i+3]<<24;e=t.ins_h=Math.imul(r,66521)+66521>>>16&t.hash_mask}const n=t.prev[i&t.w_mask]=t.head[e];return t.head[e]=i,n},b=t=>{const i=t.state;let e=i.pending;e>t.avail_out&&(e=t.avail_out),e!==0&&(t.output.set(i.pending_buf.subarray(i.pending_out,i.pending_out+e),t.next_out),t.next_out+=e,i.pending_out+=e,t.total_out+=e,t.avail_out-=e,i.pending-=e,i.pending===0&&(i.pending_out=0))},y=(t,i)=>{di(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,i),t.block_start=t.strstart,b(t.strm)},f=(t,i)=>{t.pending_buf[t.pending++]=i},j=(t,i)=>{t.pending_buf[t.pending++]=i>>>8&255,t.pending_buf[t.pending++]=i&255},Rt=(t,i,e,n)=>{let a=t.avail_in;return a>n&&(a=n),a===0?0:(t.avail_in-=a,i.set(t.input.subarray(t.next_in,t.next_in+a),e),t.state.wrap===1?t.adler=we(t.adler,i,a,e):t.state.wrap===2&&(t.adler=U(t.adler,i,a,e)),t.next_in+=a,t.total_in+=a,a)},ye=(t,i)=>{let e=t.max_chain_length,n=t.strstart,a,r,l=t.prev_length,h=t.nice_match;const o=t.strstart>t.w_size-T?t.strstart-(t.w_size-T):0,_=t.window,u=t.w_mask,c=t.prev,d=t.strstart+D;let E=_[n+l-1],k=_[n+l];t.prev_length>=t.good_match&&(e>>=2),h>t.lookahead&&(h=t.lookahead);do if(a=i,!(_[a+l]!==k||_[a+l-1]!==E||_[a]!==_[n]||_[++a]!==_[n+1])){n+=2,a++;do;while(_[++n]===_[++a]&&_[++n]===_[++a]&&_[++n]===_[++a]&&_[++n]===_[++a]&&_[++n]===_[++a]&&_[++n]===_[++a]&&_[++n]===_[++a]&&_[++n]===_[++a]&&n<d);if(r=D-(d-n),n=d-D,r>l){if(t.match_start=i,l=r,r>=h)break;E=_[n+l-1],k=_[n+l]}}while((i=c[i&u])>o&&--e!==0);return l<=t.lookahead?l:t.lookahead},K=t=>{const i=t.w_size;let e,n,a;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=i+(i-T)&&(t.window.set(t.window.subarray(i,i+i-n),0),t.match_start-=i,t.strstart-=i,t.block_start-=i,t.insert>t.strstart&&(t.insert=t.strstart),Oi(t),n+=i),t.strm.avail_in===0)break;if(e=Rt(t.strm,t.window,t.strstart+t.lookahead,n),t.lookahead+=e,t.legacy_hash){if(t.lookahead+t.insert>=s)for(a=t.strstart-t.insert,t.ins_h=t.window[a],t.ins_h=Ft(t,t.ins_h,t.window[a+1]);t.insert&&(F(t,a),a++,t.insert--,!(t.lookahead+t.insert<s)););}else if(t.lookahead+t.insert>s)for(a=t.strstart-t.insert;t.insert&&(F(t,a),a++,t.insert--,!(t.lookahead+t.insert<=s)););}while(t.lookahead<T&&t.strm.avail_in!==0)},xe=(t,i)=>{let e=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,n,a,r,l=0,h=t.strm.avail_in;do{if(n=65535,r=t.bi_valid+42>>3,t.strm.avail_out<r||(r=t.strm.avail_out-r,a=t.strstart-t.block_start,n>a+t.strm.avail_in&&(n=a+t.strm.avail_in),n>r&&(n=r),n<e&&(n===0&&i!==x||i===R||n!==a+t.strm.avail_in)))break;l=i===x&&n===a+t.strm.avail_in?1:0,St(t,0,0,l),t.pending_buf[t.pending-4]=n,t.pending_buf[t.pending-3]=n>>8,t.pending_buf[t.pending-2]=~n,t.pending_buf[t.pending-1]=~n>>8,b(t.strm),a&&(a>n&&(a=n),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+a),t.strm.next_out),t.strm.next_out+=a,t.strm.avail_out-=a,t.strm.total_out+=a,t.block_start+=a,n-=a),n&&(Rt(t.strm,t.strm.output,t.strm.next_out,n),t.strm.next_out+=n,t.strm.avail_out-=n,t.strm.total_out+=n)}while(l===0);return h-=t.strm.avail_in,h&&(h>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=h&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-h,t.strm.next_in),t.strstart),t.strstart+=h,t.insert+=h>t.w_size-t.insert?t.w_size-t.insert:h),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),l?G:i!==R&&i!==x&&t.strm.avail_in===0&&t.strstart===t.block_start?X:(r=t.window_size-t.strstart,t.strm.avail_in>r&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,r+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),r>t.strm.avail_in&&(r=t.strm.avail_in),r&&(Rt(t.strm,t.window,t.strstart,r),t.strstart+=r,t.insert+=r>t.w_size-t.insert?t.w_size-t.insert:r),t.high_water<t.strstart&&(t.high_water=t.strstart),r=t.bi_valid+42>>3,r=t.pending_buf_size-r>65535?65535:t.pending_buf_size-r,e=r>t.w_size?t.w_size:r,a=t.strstart-t.block_start,(a>=e||(a||i===x)&&i!==R&&t.strm.avail_in===0&&a<=r)&&(n=a>r?r:a,l=i===x&&t.strm.avail_in===0&&n===a?1:0,St(t,t.block_start,n,l),t.block_start+=n,b(t.strm)),l?Z:p)},mt=(t,i)=>{let e,n;for(;;){if(t.lookahead<T){if(K(t),t.lookahead<T&&i===R)return p;if(t.lookahead===0)break}if(e=0,t.lookahead>=s&&(e=F(t,t.strstart)),e!==0&&t.strstart-e<=t.w_size-T&&(t.match_length=ye(t,e)),t.match_length>=s)if(n=I(t,t.strstart-t.match_start,t.match_length-s),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=s){t.match_length--;do t.strstart++,e=F(t,t.strstart);while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.legacy_hash&&(t.ins_h=t.window[t.strstart],t.ins_h=Ft(t,t.ins_h,t.window[t.strstart+1]));else n=I(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(n&&(y(t,!1),t.strm.avail_out===0))return p}return t.insert=t.strstart<s-1?t.strstart:s-1,i===x?(y(t,!0),t.strm.avail_out===0?Z:G):t.sym_next&&(y(t,!1),t.strm.avail_out===0)?p:X},$=(t,i)=>{let e,n,a;for(;;){if(t.lookahead<T){if(K(t),t.lookahead<T&&i===R)return p;if(t.lookahead===0)break}if(e=0,t.lookahead>=s&&(e=F(t,t.strstart)),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=s-1,e!==0&&t.prev_length<t.max_lazy_match&&t.strstart-e<=t.w_size-T&&(t.match_length=ye(t,e),t.match_length<=5&&(t.strategy===bi||t.match_length===s&&t.strstart-t.match_start>4096)&&(t.match_length=s-1)),t.prev_length>=s&&t.match_length<=t.prev_length){a=t.strstart+t.lookahead-s,n=I(t,t.strstart-1-t.prev_match,t.prev_length-s),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=a&&(e=F(t,t.strstart));while(--t.prev_length!==0);if(t.match_available=0,t.match_length=s-1,t.strstart++,n&&(y(t,!1),t.strm.avail_out===0))return p}else if(t.match_available){if(n=I(t,0,t.window[t.strstart-1]),n&&y(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return p}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(n=I(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<s-1?t.strstart:s-1,i===x?(y(t,!0),t.strm.avail_out===0?Z:G):t.sym_next&&(y(t,!1),t.strm.avail_out===0)?p:X},Bi=(t,i)=>{let e,n,a,r;const l=t.window;for(;;){if(t.lookahead<=D){if(K(t),t.lookahead<=D&&i===R)return p;if(t.lookahead===0)break}if(t.match_length=0,t.lookahead>=s&&t.strstart>0&&(a=t.strstart-1,n=l[a],n===l[++a]&&n===l[++a]&&n===l[++a])){r=t.strstart+D;do;while(n===l[++a]&&n===l[++a]&&n===l[++a]&&n===l[++a]&&n===l[++a]&&n===l[++a]&&n===l[++a]&&n===l[++a]&&a<r);t.match_length=D-(r-a),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=s?(e=I(t,1,t.match_length-s),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(e=I(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),e&&(y(t,!1),t.strm.avail_out===0))return p}return t.insert=0,i===x?(y(t,!0),t.strm.avail_out===0?Z:G):t.sym_next&&(y(t,!1),t.strm.avail_out===0)?p:X},Ni=(t,i)=>{let e;for(;;){if(t.lookahead===0&&(K(t),t.lookahead===0)){if(i===R)return p;break}if(t.match_length=0,e=I(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,e&&(y(t,!1),t.strm.avail_out===0))return p}return t.insert=0,i===x?(y(t,!0),t.strm.avail_out===0?Z:G):t.sym_next&&(y(t,!1),t.strm.avail_out===0)?p:X};function v(t,i,e,n,a){this.good_length=t,this.max_lazy=i,this.nice_length=e,this.max_chain=n,this.func=a}const J=[new v(0,0,0,0,xe),new v(4,4,8,4,mt),new v(4,5,16,8,mt),new v(4,6,32,32,mt),new v(4,4,16,16,$),new v(8,16,32,32,$),new v(8,16,128,128,$),new v(8,32,128,256,$),new v(32,128,258,1024,$),new v(32,258,258,4096,$)],Ci=t=>{t.window_size=2*t.w_size,L(t.head),t.max_lazy_match=J[t.level].max_lazy,t.good_match=J[t.level].good_length,t.nice_match=J[t.level].nice_length,t.max_chain_length=J[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=s-1,t.match_available=0,t.ins_h=0};function Zi(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ut,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.legacy_hash=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Li*2),this.dyn_dtree=new Uint16Array((2*zi+1)*2),this.bl_tree=new Uint16Array((2*Ui+1)*2),L(this.dyn_ltree),L(this.dyn_dtree),L(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Di+1),this.heap=new Uint16Array(2*zt+1),L(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*zt+1),L(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const ot=t=>{if(!t)return 1;const i=t.state;return!i||i.strm!==t||i.status!==W&&i.status!==Zt&&i.status!==Ut&&i.status!==Lt&&i.status!==Dt&&i.status!==It&&i.status!==N&&i.status!==q?1:0},Ee=t=>{if(ot(t))return C(t,m);t.total_in=t.total_out=0,t.data_type=vi;const i=t.state;return i.pending=0,i.pending_out=0,i.wrap<0&&(i.wrap=-i.wrap),i.status=i.wrap===2?Zt:i.wrap?W:N,t.adler=i.wrap===2?0:1,i.last_flush=-2,fi(i),g},ve=t=>{const i=Ee(t);return i===g&&Ci(t.state),i},Fi=(t,i)=>ot(t)||t.state.wrap!==2?m:(t.state.gzhead=i,g),Ae=(t,i,e,n,a,r,l)=>{if(!t)return m;let h=1;if(i===wi&&(i=6),n<0?(h=0,n=-n):n>15&&(h=2,n-=16),a<1||a>Ai||e!==ut||n<8||n>15||i<0||i>9||r<0||r>xi||n===8&&h!==1)return C(t,m);n===8&&(n=9);const o=new Zi;return t.state=o,o.strm=t,o.status=W,o.wrap=h,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.legacy_hash=l?1:0,o.hash_bits=a+7,!o.legacy_hash&&o.hash_bits<15&&(o.hash_bits=15),o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+s-1)/s),o.window=new Uint8Array(o.w_size*2),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<a+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=(o.lit_bufsize-1)*3,o.level=i,o.strategy=r,o.method=e,ve(t)},Mi=(t,i)=>Ae(t,i,ut,mi,Ti,Ei),$i=(t,i)=>{if(ot(t)||i>Vt||i<0)return t?C(t,m):m;const e=t.state;if(!t.output||t.avail_in!==0&&!t.input||e.status===q&&i!==x)return C(t,t.avail_out===0?At:m);const n=e.last_flush;if(e.last_flush=i,e.pending!==0){if(b(t),t.avail_out===0)return e.last_flush=-1,g}else if(t.avail_in===0&&Jt(i)<=Jt(n)&&i!==x)return C(t,At);if(e.status===q&&t.avail_in!==0)return C(t,At);if(e.status===W&&e.wrap===0&&(e.status=N),e.status===W){let a=ut+(e.w_bits-8<<4)<<8,r=-1;if(e.strategy>=ht||e.level<2?r=0:e.level<6?r=1:e.level===6?r=2:r=3,a|=r<<6,e.strstart!==0&&(a|=Ii),a+=31-a%31,j(e,a),e.strstart!==0&&(j(e,t.adler>>>16),j(e,t.adler&65535)),t.adler=1,e.status=N,b(t),e.pending!==0)return e.last_flush=-1,g}if(e.status===Zt){if(t.adler=0,f(e,31),f(e,139),f(e,8),e.gzhead)f(e,(e.gzhead.text?1:0)+(e.gzhead.hcrc?2:0)+(e.gzhead.extra?4:0)+(e.gzhead.name?8:0)+(e.gzhead.comment?16:0)),f(e,e.gzhead.time&255),f(e,e.gzhead.time>>8&255),f(e,e.gzhead.time>>16&255),f(e,e.gzhead.time>>24&255),f(e,e.level===9?2:e.strategy>=ht||e.level<2?4:0),f(e,e.gzhead.os&255),e.gzhead.extra&&e.gzhead.extra.length&&(f(e,e.gzhead.extra.length&255),f(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(t.adler=U(t.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=Ut;else if(f(e,0),f(e,0),f(e,0),f(e,0),f(e,0),f(e,e.level===9?2:e.strategy>=ht||e.level<2?4:0),f(e,Ri),e.status=N,b(t),e.pending!==0)return e.last_flush=-1,g}if(e.status===Ut){if(e.gzhead.extra){let a=e.pending,r=(e.gzhead.extra.length&65535)-e.gzindex;for(;e.pending+r>e.pending_buf_size;){let h=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+h),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>a&&(t.adler=U(t.adler,e.pending_buf,e.pending-a,a)),e.gzindex+=h,b(t),e.pending!==0)return e.last_flush=-1,g;a=0,r-=h}let l=new Uint8Array(e.gzhead.extra);e.pending_buf.set(l.subarray(e.gzindex,e.gzindex+r),e.pending),e.pending+=r,e.gzhead.hcrc&&e.pending>a&&(t.adler=U(t.adler,e.pending_buf,e.pending-a,a)),e.gzindex=0}e.status=Lt}if(e.status===Lt){if(e.gzhead.name){let a=e.pending,r;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>a&&(t.adler=U(t.adler,e.pending_buf,e.pending-a,a)),b(t),e.pending!==0)return e.last_flush=-1,g;a=0}e.gzindex<e.gzhead.name.length?r=e.gzhead.name.charCodeAt(e.gzindex++)&255:r=0,f(e,r)}while(r!==0);e.gzhead.hcrc&&e.pending>a&&(t.adler=U(t.adler,e.pending_buf,e.pending-a,a)),e.gzindex=0}e.status=Dt}if(e.status===Dt){if(e.gzhead.comment){let a=e.pending,r;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>a&&(t.adler=U(t.adler,e.pending_buf,e.pending-a,a)),b(t),e.pending!==0)return e.last_flush=-1,g;a=0}e.gzindex<e.gzhead.comment.length?r=e.gzhead.comment.charCodeAt(e.gzindex++)&255:r=0,f(e,r)}while(r!==0);e.gzhead.hcrc&&e.pending>a&&(t.adler=U(t.adler,e.pending_buf,e.pending-a,a))}e.status=It}if(e.status===It){if(e.gzhead.hcrc){if(e.pending+2>e.pending_buf_size&&(b(t),e.pending!==0))return e.last_flush=-1,g;f(e,t.adler&255),f(e,t.adler>>8&255),t.adler=0}if(e.status=N,b(t),e.pending!==0)return e.last_flush=-1,g}if(t.avail_in!==0||e.lookahead!==0||i!==R&&e.status!==q){let a=e.level===0?xe(e,i):e.strategy===ht?Ni(e,i):e.strategy===yi?Bi(e,i):J[e.level].func(e,i);if((a===Z||a===G)&&(e.status=q),a===p||a===Z)return t.avail_out===0&&(e.last_flush=-1),g;if(a===X&&(i===ui?ci(e):i!==Vt&&(St(e,0,0,!1),i===gi&&(L(e.head),e.lookahead===0&&(e.strstart=0,e.block_start=0,e.insert=0))),b(t),t.avail_out===0))return e.last_flush=-1,g}return i!==x?g:e.wrap<=0?qt:(e.wrap===2?(f(e,t.adler&255),f(e,t.adler>>8&255),f(e,t.adler>>16&255),f(e,t.adler>>24&255),f(e,t.total_in&255),f(e,t.total_in>>8&255),f(e,t.total_in>>16&255),f(e,t.total_in>>24&255)):(j(e,t.adler>>>16),j(e,t.adler&65535)),b(t),e.wrap>0&&(e.wrap=-e.wrap),e.pending!==0?g:qt)},Hi=t=>{if(ot(t))return m;const i=t.state.status;return t.state=null,i===N?C(t,pi):g},Pi=(t,i)=>{let e=i.length;if(ot(t))return m;const n=t.state,a=n.wrap;if(a===2||a===1&&n.status!==W||n.lookahead)return m;if(a===1&&(t.adler=we(t.adler,i,e,0)),n.wrap=0,e>=n.w_size){a===0&&(L(n.head),n.strstart=0,n.block_start=0,n.insert=0);let o=new Uint8Array(n.w_size);o.set(i.subarray(e-n.w_size,e),0),i=o,e=n.w_size}const r=t.avail_in,l=t.next_in,h=t.input;for(t.avail_in=e,t.next_in=0,t.input=i,K(n);n.lookahead>=s;){let o=n.strstart,_=n.lookahead-(s-1);do F(n,o),o++;while(--_);n.strstart=o,n.lookahead=s-1,K(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=s-1,n.match_available=0,t.next_in=l,t.input=h,t.avail_in=r,n.wrap=a,g};var Wi=Mi,Ki=Ae,Yi=ve,Xi=Ee,Gi=Fi,ji=$i,Vi=Hi,qi=Pi,Ji="pako deflate (from Nodeca project)",tt={deflateInit:Wi,deflateInit2:Ki,deflateReset:Yi,deflateResetKeep:Xi,deflateSetHeader:Gi,deflate:ji,deflateEnd:Vi,deflateSetDictionary:qi,deflateInfo:Ji};const Qi=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);var tn=function(t){const i=Array.prototype.slice.call(arguments,1);for(;i.length;){const e=i.shift();if(e){if(typeof e!="object")throw new TypeError(e+"must be non-object");for(const n in e)Qi(e,n)&&(t[n]=e[n])}}return t},en=t=>{let i=0;for(let n=0,a=t.length;n<a;n++)i+=t[n].length;const e=new Uint8Array(i);for(let n=0,a=0,r=t.length;n<r;n++){let l=t[n];e.set(l,a),a+=l.length}return e},me={assign:tn,flattenChunks:en};let Te=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Te=!1}const rt=new Uint8Array(256);for(let t=0;t<256;t++)rt[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;rt[254]=rt[255]=1;var nn=t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let i,e,n,a,r,l=t.length,h=0;for(a=0;a<l;a++)e=t.charCodeAt(a),(e&64512)===55296&&a+1<l&&(n=t.charCodeAt(a+1),(n&64512)===56320&&(e=65536+(e-55296<<10)+(n-56320),a++)),h+=e<128?1:e<2048?2:e<65536?3:4;for(i=new Uint8Array(h),r=0,a=0;r<h;a++)e=t.charCodeAt(a),(e&64512)===55296&&a+1<l&&(n=t.charCodeAt(a+1),(n&64512)===56320&&(e=65536+(e-55296<<10)+(n-56320),a++)),e<128?i[r++]=e:e<2048?(i[r++]=192|e>>>6,i[r++]=128|e&63):e<65536?(i[r++]=224|e>>>12,i[r++]=128|e>>>6&63,i[r++]=128|e&63):(i[r++]=240|e>>>18,i[r++]=128|e>>>12&63,i[r++]=128|e>>>6&63,i[r++]=128|e&63);return i};const an=(t,i)=>{if(i<65534&&t.subarray&&Te)return String.fromCharCode.apply(null,t.length===i?t:t.subarray(0,i));let e="";for(let n=0;n<i;n++)e+=String.fromCharCode(t[n]);return e};var rn=(t,i)=>{const e=i||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,i));let n,a;const r=new Array(e*2);for(a=0,n=0;n<e;){let l=t[n++];if(l<128){r[a++]=l;continue}let h=rt[l];if(h>4){r[a++]=65533,n+=h-1;continue}for(l&=h===2?31:h===3?15:7;h>1&&n<e;)l=l<<6|t[n++]&63,h--;if(h>1){r[a++]=65533;continue}l<65536?r[a++]=l:(l-=65536,r[a++]=55296|l>>10&1023,r[a++]=56320|l&1023)}return an(r,a)},ln=(t,i)=>{i=i||t.length,i>t.length&&(i=t.length);let e=i-1;for(;e>=0&&(t[e]&192)===128;)e--;return e<0||e===0?i:e+rt[t[e]]>i?e:i},ke={string2buf:nn,buf2string:rn,utf8border:ln};function on(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var hn=on;const Se=Object.prototype.toString,{Z_NO_FLUSH:_n,Z_SYNC_FLUSH:sn,Z_FULL_FLUSH:fn,Z_FINISH:dn,Z_OK:ct,Z_STREAM_END:cn,Z_DEFAULT_COMPRESSION:un,Z_DEFAULT_STRATEGY:gn,Z_DEFLATED:pn}=be,wn={level:un,method:pn,chunkSize:16384,windowBits:15,memLevel:8,strategy:gn,legacyHash:!0};function gt(t){this.options=me.assign({},wn,t||{});let i=this.options;i.raw&&i.windowBits>0?i.windowBits=-i.windowBits:i.gzip&&i.windowBits>0&&i.windowBits<16&&(i.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new hn,this.strm.avail_out=0;let e=tt.deflateInit2(this.strm,i.level,i.method,i.windowBits,i.memLevel,i.strategy,i.legacyHash);if(e!==ct)throw new Error(dt[e]);if(i.header&&tt.deflateSetHeader(this.strm,i.header),i.dictionary){let n;if(typeof i.dictionary=="string"?n=ke.string2buf(i.dictionary):Se.call(i.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(i.dictionary):n=i.dictionary,e=tt.deflateSetDictionary(this.strm,n),e!==ct)throw new Error(dt[e]);this._dict_set=!0}}gt.prototype.push=function(t,i){const e=this.strm,n=this.options.chunkSize;let a,r;if(this.ended)return!1;for(i===~~i?r=i:r=i===!0?dn:_n,typeof t=="string"?e.input=ke.string2buf(t):Se.call(t)==="[object ArrayBuffer]"?e.input=new Uint8Array(t):e.input=t,e.next_in=0,e.avail_in=e.input.length;;){if(e.avail_out===0&&(e.output=new Uint8Array(n),e.next_out=0,e.avail_out=n),(r===sn||r===fn)&&e.avail_out<=6){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(a=tt.deflate(e,r),a===cn)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),a=tt.deflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===ct;if(e.avail_out===0){this.onData(e.output);continue}if(r>0&&e.next_out>0){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(e.avail_in===0)break}return!0};gt.prototype.onData=function(t){this.chunks.push(t)};gt.prototype.onEnd=function(t){t===ct&&(this.result=me.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function bn(t,i){const e=new gt(i);if(e.push(t,!0),e.err)throw e.msg||dt[e.err];return e.result}var yn=bn,xn={deflate:yn};const{deflate:En}=xn;var vn=En;const ze=[];for(let t=0;t<256;t++){let i=t;for(let e=0;e<8;e++)i&1?i=3988292384^i>>>1:i=i>>>1;ze[t]=i}const Qt=4294967295;function An(t,i,e){let n=t;for(let a=0;a<e;a++)n=ze[(n^i[a])&255]^n>>>8;return n}function mn(t,i){return(An(Qt,t,i)^Qt)>>>0}function H(t,i){t.writeUint32(mn(new Uint8Array(t.buffer,t.byteOffset+t.offset-i,i),i))}const Tn=new Uint16Array([255]),kn=new Uint8Array(Tn.buffer);kn[0];const Sn=new Uint16Array([255]),zn=new Uint8Array(Sn.buffer);zn[0];const Un=Uint8Array.of(137,80,78,71,13,10,26,10);function Ln(t){t.writeBytes(Un)}const Dn="tEXt",In=0;new TextDecoder("latin1");function Rn(t){if(Ue(t),t.length===0||t.length>79)throw new Error("keyword length must be between 1 and 79")}const On=/^[\u0000-\u00FF]*$/;function Ue(t){if(!On.test(t))throw new Error("invalid latin1 text")}function Bn(t,i,e){Rn(i),Ue(e);const n=i.length+1+e.length;t.writeUint32(n),t.writeChars(Dn),t.writeChars(i),t.writeByte(In),t.writeChars(e),H(t,n+4)}const O={UNKNOWN:-1,GREYSCALE:0,TRUECOLOUR:2,INDEXED_COLOUR:3,GREYSCALE_ALPHA:4,TRUECOLOUR_ALPHA:6},Nn={DEFLATE:0},Cn={ADAPTIVE:0},V={NO_INTERLACE:0,ADAM7:1},Zn={level:3};class Fn extends st{_png;_zlibOptions;_colorType;_interlaceMethod;constructor(i,e={}){super(),this._colorType=O.UNKNOWN,this._zlibOptions={...Zn,...e.zlib},this._png=this._checkData(i),this._interlaceMethod=(e.interlace==="Adam7"?V.ADAM7:V.NO_INTERLACE)??V.NO_INTERLACE,this.setBigEndian()}encode(){if(Ln(this),this.encodeIHDR(),this._png.palette&&(this.encodePLTE(),this._png.palette[0].length===4&&this.encodeTRNS()),this.encodeData(),this._png.text)for(const[i,e]of Object.entries(this._png.text))Bn(this,i,e);return this.encodeIEND(),this.toArray()}encodeIHDR(){this.writeUint32(13),this.writeChars("IHDR"),this.writeUint32(this._png.width),this.writeUint32(this._png.height),this.writeByte(this._png.depth),this.writeByte(this._colorType),this.writeByte(Nn.DEFLATE),this.writeByte(Cn.ADAPTIVE),this.writeByte(this._interlaceMethod),H(this,17)}encodeIEND(){this.writeUint32(0),this.writeChars("IEND"),H(this,4)}encodePLTE(){const i=this._png.palette?.length*3;this.writeUint32(i),this.writeChars("PLTE");for(const e of this._png.palette)this.writeByte(e[0]),this.writeByte(e[1]),this.writeByte(e[2]);H(this,4+i)}encodeTRNS(){const i=this._png.palette.filter(e=>e.at(-1)!==255);this.writeUint32(i.length),this.writeChars("tRNS");for(const e of i)this.writeByte(e.at(-1));H(this,4+i.length)}encodeIDAT(i){this.writeUint32(i.length),this.writeChars("IDAT"),this.writeBytes(i),H(this,i.length+4)}encodeData(){const{width:i,height:e,channels:n,depth:a,data:r}=this._png,l=a<=8?Math.ceil(i*a/8)*n:Math.ceil(i*a/8*n/2),h=new st().setBigEndian();let o=0;if(this._interlaceMethod===V.NO_INTERLACE)for(let c=0;c<e;c++)h.writeByte(0),a===16?o=Pn(r,h,l,o):o=$n(r,h,l,o);else this._interlaceMethod===V.ADAM7&&(o=Hn(this._png,r,h,o));const _=h.toArray(),u=vn(_,this._zlibOptions);this.encodeIDAT(u)}_checkData(i){const{colorType:e,channels:n,depth:a}=Mn(i,i.palette),r={width:te(i.width,"width"),height:te(i.height,"height"),channels:n,data:i.data,depth:a,text:i.text,palette:i.palette};this._colorType=e;const l=a<8?Math.ceil(r.width*a/8)*r.height*n:r.width*r.height*n;if(r.data.length!==l)throw new RangeError(`wrong data size. Found ${r.data.length}, expected ${l}`);return r}}function te(t,i){if(Number.isInteger(t)&&t>0)return t;throw new TypeError(`${i} must be a positive integer`)}function Mn(t,i){const{channels:e=4,depth:n=8}=t;if(e!==4&&e!==3&&e!==2&&e!==1)throw new RangeError(`unsupported number of channels: ${e}`);const a={channels:e,depth:n,colorType:O.UNKNOWN};switch(e){case 4:a.colorType=O.TRUECOLOUR_ALPHA;break;case 3:a.colorType=O.TRUECOLOUR;break;case 1:i?a.colorType=O.INDEXED_COLOUR:a.colorType=O.GREYSCALE;break;case 2:a.colorType=O.GREYSCALE_ALPHA;break;default:throw new Error("unsupported number of channels")}return a}function $n(t,i,e,n){for(let a=0;a<e;a++)i.writeByte(t[n++]);return n}function Hn(t,i,e,n){const a=[{x:0,y:0,xStep:8,yStep:8},{x:4,y:0,xStep:8,yStep:8},{x:0,y:4,xStep:4,yStep:8},{x:2,y:0,xStep:4,yStep:4},{x:0,y:2,xStep:2,yStep:4},{x:1,y:0,xStep:2,yStep:2},{x:0,y:1,xStep:1,yStep:2}],{width:r,height:l,channels:h,depth:o}=t;let _=0;o===16?_=h*o/8/2:_=h*o/8;for(let u=0;u<7;u++){const c=a[u],d=Math.floor((r-c.x+c.xStep-1)/c.xStep),E=Math.floor((l-c.y+c.yStep-1)/c.yStep);if(d<=0||E<=0)continue;const k=d*_;for(let z=0;z<E;z++){const Mt=c.y+z*c.yStep,pt=o<=8?new Uint8Array(k):new Uint16Array(k);let Le=0;for(let M=0;M<d;M++){const $t=c.x+M*c.xStep;if($t<r&&Mt<l){const De=(Mt*r+$t)*_;for(let wt=0;wt<_;wt++)pt[Le++]=i[De+wt]}}if(e.writeByte(0),o===8)e.writeBytes(pt);else if(o===16)for(const M of pt)e.writeByte(M>>8&255),e.writeByte(M&255)}}return n}function Pn(t,i,e,n){for(let a=0;a<e;a++)i.writeUint16(t[n++]);return n}var ee;(function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.METRE=1]="METRE"})(ee||(ee={}));function Wn(t,i){return new Fn(t,i).encode()}exports.encodePng=Wn;
package/dist/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("./style-C22Pbv3T.cjs"),G=require("./record-bindings-DUX1VMlR.cjs"),q=require("./component-tree-DkGLEfZC.cjs"),y=require("./template-registry-C62vpv4a.cjs"),me=require("./dataset-BkRmwgeJ.cjs"),O=require("./textwrap-BI-yJ6Wt.cjs"),f=require("./json-snapshot-DknkjvxP.cjs"),he=require("./grid-geometry-CZ_cYB6O.cjs"),ge=require("./rich-text-layout-ALlMoYOG.cjs"),W=require("./capabilities-DNLyZdNw.cjs"),Qe=require("./progress-B0ctFpKf.cjs"),Ie=require("./diagnostic-notification-B9K9We3h.cjs"),J=require("./assets-e4YSke8n.cjs"),K=require("./drill-CsdjgkRM.cjs"),z=require("./param-validation-C3HlcLLO.cjs"),Z=require("./template-catalog-C2NLdrwB.cjs"),ue=require("./template-outline-BwRV_eRo.cjs"),oe=require("./template-fragments-BVsbxs4a.cjs"),pe=require("./tree-BX380Rr7.cjs"),et={root:"mr-root",page:"mr-page",comp:"mr-comp",text:"mr-text",lines:"mr-lines",line:"mr-line",rich:"mr-rich",paragraph:"mr-paragraph",segment:"mr-segment",image:"mr-image",shape:"mr-shape",grid:"mr-grid",row:"mr-row",cell:"mr-cell",unknown:"mr-unknown"};function C(e,t){return t?.classNames?.[e]??et[e]}class tt{constructor(){this.props=[]}add(t,n){return n==null||n===!1||n===""?this:(this.props.push([t,String(n)]),this)}mm(t,n,r,i=2){return this.add(t,`${g.round(g.mmToPx(n,r),i)}px`)}toString(){let t="";for(const[n,r]of this.props)t+=`${n}:${r};`;return t}applyTo(t){const n=this.toString();n&&(t.style.cssText=n)}}function E(e,t="unset"){return new tt().add("all",t).add("display",e).add("box-sizing","border-box")}function De(e,t,n){e.add("color",t.color).add("font-family",t.fontFamily).add("font-weight",t.bold!=null?t.bold?"700":"400":void 0).add("font-style",t.italic!=null?t.italic?"italic":"normal":void 0).add("text-decoration",t.underline!=null?t.underline?"underline":"none":void 0).add("letter-spacing",t.letterSpacing!=null?`${t.letterSpacing}pt`:void 0).add("line-height",String(g.resolveLineHeight(t))).add("text-align",t.align);const r=g.resolveFontSize(t,n);e.add("font-size",`${g.round(r.fontSizePx,2)}px`)}function nt(e,t,n){const r=t.style??{};De(e,r,n),e.add("background-color",r.backgroundColor).add("opacity",r.opacity!=null?String(r.opacity):void 0).add("transform",r.rotateDeg?`rotate(${r.rotateDeg}deg)`:void 0)}function rt(e,t,n,r,i,a){const l=e.cell,o=a.createElement("td");o.className=C("cell",i),o.dataset.mrRowIndex=String(e.ri),o.dataset.mrColumnIndex=String(e.ci),o.setAttribute("role",t.table?.role==="header"?"columnheader":"cell"),l.colSpan&&(o.colSpan=l.colSpan),l.rowSpan&&(o.rowSpan=l.rowSpan);const s=g.mergeComponentStyles(t.style,l.style),c=E("block").add("position","absolute").mm("left",e.xMm,r).mm("top",e.yMm,r).mm("width",e.widthMm,r).mm("height",e.heightMm,r).add("background-color",s.backgroundColor).add("vertical-align",s.verticalAlign??"middle");De(c,s,r),c.applyTo(o);const d=a.createElement("div");d.className="mr-cell-content",E("flex").add("position","absolute").mm("left",n+(l.indentMm??0),r).mm("right",n,r).mm("top",n,r).mm("bottom",n,r).add("flex-direction","column").add("justify-content",s.verticalAlign==="top"?"flex-start":s.verticalAlign==="bottom"?"flex-end":"center").add("overflow-wrap","anywhere").add("overflow","hidden").applyTo(d),l.richParagraphs?.length?d.appendChild(Fe({...t,kind:"text",richParagraphs:l.richParagraphs},r,i,a)):l.text!=null&&d.append(l.text);for(const h of l.children??[])d.appendChild(fe(h,r,i,a));return o.appendChild(d),o}function it(e,t,n,r){return ge.resolveGridStrokes(e,t).map(i=>{const a=`${g.round(i.widthPt*n/72,2)}px solid ${i.color}`,l=r.createElement("div");l.className="mr-grid-edge",l.setAttribute("aria-hidden","true");const o=i.kind==="h";return E("block").add("position","absolute").add("pointer-events","none").mm("left",o?i.from:i.pos,n).mm("top",o?i.pos:i.from,n).mm("width",o?i.to-i.from:0,n).mm("height",o?0:i.to-i.from,n).add(o?"border-top":"border-left",a).applyTo(l),l})}function ot(e,t,n,r,i){const a=i.createElement("table");a.className=C("grid",r),a.setAttribute("role","table"),E("block").add("position","relative").add("width","100%").add("height","100%").applyTo(a);const l=he.resolveGridLayout(e,t.widthMm,t.heightMm),o=i.createElement("tbody");E("contents").applyTo(o),a.appendChild(o);const s=e.cells.map(()=>{const d=i.createElement("tr");return d.className=C("row",r),d.setAttribute("role","row"),E("contents").applyTo(d),o.appendChild(d),d});for(const d of l.cells)s[d.ri].appendChild(rt(d,t,e.paddingMm??.5,n,r,i));const c=i.createElement("div");return E("block").add("position","relative").add("width","100%").add("height","100%").applyTo(c),c.append(a,...it(l,t,n,i)),c}function at(e,t,n,r){const i=r.createElement("div");i.className=C("paragraph",n),E("block").add("text-align",e.align).add("line-height",e.lineHeight!=null?String(e.lineHeight):void 0).mm("margin-top",e.spaceBeforeMm??0,t).mm("margin-bottom",e.spaceAfterMm??0,t).mm("text-indent",e.indentMm??0,t).applyTo(i);for(const a of e.segments||[]){const l=r.createElement("span");l.className=C("segment",n),l.textContent=a.kind==="field"?a.field??"":a.text??"";const o=E("inline");if(a.style){const s=a.style;o.add("color",s.color).add("background-color",s.backgroundColor).add("font-family",s.fontFamily).add("line-height",s.lineHeight).add("letter-spacing",s.letterSpacing==null?void 0:`${s.letterSpacing*t/72}px`).add("font-weight",s.bold!=null?s.bold?"700":"400":void 0).add("font-style",s.italic!=null?s.italic?"italic":"normal":void 0).add("text-decoration",s.underline!=null?s.underline?"underline":"none":void 0),(s.fontSize!=null||s.fontSizePx!=null)&&o.add("font-size",`${g.round(g.resolveFontSize(s,t).fontSizePx,2)}px`)}o.applyTo(l),i.appendChild(l)}return i}function Fe(e,t,n,r){if(q.isRichText(e)){const i=r.createElement("div");i.className=C("rich",n),E("block").applyTo(i);for(const a of e.richParagraphs)i.appendChild(at(a,t,n,r));return i}if(Array.isArray(e.lines)&&e.lines.length>0){const i=r.createElement("div");i.className=C("lines",n),E("block").applyTo(i);for(const a of e.lines){const l=r.createElement("div");l.className=C("line",n),l.textContent=a,E("block").add("white-space","pre").add("min-height","1lh").applyTo(l),i.appendChild(l)}return i}return e.text??""}function st(e,t,n,r){const i=r.createElement("div");i.className=C("text",n);const a=e.style||{};return E("flex").add("width","100%").add("height","100%").add("flex-direction","column").add("justify-content",a.verticalAlign==="middle"?"center":a.verticalAlign==="bottom"?"flex-end":"flex-start").add("overflow-wrap","anywhere").add("overflow","hidden").applyTo(i),i.append(Fe(e,t,n,r)),i}function lt(e,t,n){const r=n.createElement("img");return r.className=C("image",t),r.src=e.imageData,E("block").add("width","100%").add("height","100%").add("object-fit","contain").applyTo(r),r.alt=e.kind,r}function Re(e,t,n,r){const i=r.createElement("div");i.className=C("shape",n);const a=e.style||{},l=g.resolveStroke(a),o=g.resolveBoxBorders(a),s=`${g.round(l.widthPt*t/72,2)}px solid ${l.color}`,c=E("block");return e.grid?c.add("position","relative"):e.kind==="rect"?(o.top&&c.add("border-top",s),o.right&&c.add("border-right",s),o.bottom&&c.add("border-bottom",s),o.left&&c.add("border-left",s)):e.kind==="ellipse"?(o.inner&&c.add("border",s).add("border-radius","50%"),a.backgroundColor&&c.add("background-color",a.backgroundColor)):e.kind==="line"&&c.add("height","0").add("border-top",s),c.add("box-sizing","border-box").add("width","100%").add("height","100%"),c.applyTo(i),i}function ct(e,t,n){const r=n.createElementNS("http://www.w3.org/2000/svg","svg"),i=g.mmToPx(e.widthMm,t),a=g.mmToPx(e.heightMm,t);r.setAttribute("width",String(Math.max(1,i))),r.setAttribute("height",String(Math.max(1,a))),r.setAttribute("aria-hidden","true"),r.style.overflow="visible",r.style.display="block";const l=n.createElementNS("http://www.w3.org/2000/svg","line");l.setAttribute("x1","0"),l.setAttribute("x2",String(i)),l.setAttribute("y1",e.lineDirection==="up"?String(a):"0"),l.setAttribute("y2",e.lineDirection==="up"?"0":String(a));const o=g.resolveStroke({...e.style,borderColor:e.style?.lineColor??e.style?.borderColor});return l.setAttribute("stroke",o.color),l.setAttribute("stroke-width",String(o.widthPt*t/72)),r.appendChild(l),r}function fe(e,t,n,r){const i=r.createElement("div");i.className=`${C("comp",n)} mr-kind-${e.kind}`;const a=E("block").add("position","absolute").mm("left",e.leftMm,t).mm("top",e.topMm,t).mm("width",e.widthMm,t).mm("height",e.heightMm,t).add("box-sizing","border-box");if(nt(a,e,t),a.applyTo(i),q.isImageBackedComponent(e))return i.appendChild(lt(e,n,r)),i;if(e.kind==="text")return i.appendChild(st(e,t,n,r)),i;if(e.grid){const o=Re(e,t,n,r);return o.appendChild(ot(e.grid,e,t,n,r)),i.appendChild(o),i}if(e.kind==="line"&&e.lineDirection)return i.appendChild(ct(e,t,r)),i;if(e.kind==="line"||e.kind==="rect"||e.kind==="ellipse")return i.appendChild(Re(e,t,n,r)),i;const l=r.createElement("div");return l.className=C("unknown",n),E("block").applyTo(l),l.textContent=e.fallbackText??`[${e.kind}]`,l.dataset.mrUnsupported=e.kind,l.setAttribute("role","note"),i.appendChild(l),i}function Ne(e,t,n,r){const i=r.createElement("div");return i.className=C("page",n),E("block","initial").add("position","relative").add("font-family",g.DEFAULT_FONT_FAMILY).add("font-size",`${g.round(g.resolveFontSize(void 0,t).fontSizePx,2)}px`).add("line-height",String(g.resolveLineHeight(void 0))).add("white-space","pre-wrap").add("direction","ltr").mm("width",e.pageWidthMm,t).mm("height",e.pageHeightMm,t).add("background-color","#fff").add("color",g.DEFAULT_TEXT_COLOR).add("overflow","hidden").add("box-sizing","border-box").applyTo(i),e.components.forEach((a,l)=>{const o=fe(a,t,n,r);o.dataset.mrComponentIndex=String(l),i.appendChild(o)}),i}function dt(e,t,n={}){const r=n.dpi??96;W.reportOutputDiagnostics(e,"dom",n);const i=t.createElement("div");return i.className=C("root",n),E("block").applyTo(i),i.dataset.schemaVersion=e.schemaVersion,e.pages.forEach(a=>{i.appendChild(Ne(a,r,n,t))}),i}function we(e,t,n,r,i,a,l,o="top"){e.font=`${t.italic?"italic ":""}${t.bold?"bold ":""}${t.fontSizePx}px ${l}`,"letterSpacing"in e&&(e.letterSpacing="0px"),e.fillStyle=t.color,e.textBaseline="alphabetic";const s=t.fontSizePx*t.lineHeight,c=t.text===""?[""]:t.text.split(`
2
- `),d=c.length*s;let h=r;o==="middle"?h=r+(a-d)/2:o==="bottom"&&(h=r+a-d),c.forEach((m,u)=>{const p=h+u*s+t.fontSizePx*.8;mt(e,m,t,n,p,i),t.underline&&m&&ht(e,m,t,n,p,i)}),e.textAlign="left"}function mt(e,t,n,r,i,a){const l=Array.from(t),o=n.letterSpacingPx??0;if(!o){e.textAlign=n.align==="center"?"center":n.align==="right"?"right":"left";const h=n.align==="center"?r+a/2:n.align==="right"?r+a:r;e.fillText(t,h,i);return}const s=e.measureText(t).width+Math.max(0,l.length-1)*o,c=n.align==="center"?r+(a-s)/2:n.align==="right"?r+a-s:r;e.textAlign="left";let d="";l.forEach((h,m)=>{e.fillText(h,c+e.measureText(d).width+m*o,i),d+=h})}function ht(e,t,n,r,i,a){const l=e.measureText(t).width+Math.max(0,Array.from(t).length-1)*(n.letterSpacingPx??0),o=n.align==="center"?r+(a-l)/2:n.align==="right"?r+a-l:r;e.strokeStyle=n.color,e.lineWidth=Math.max(.5,n.fontSizePx/20),e.beginPath(),e.moveTo(o,i+1),e.lineTo(o+l,i+1),e.stroke()}function $e(e,t,n,r,i){const a=r/72,l=o=>{e.font=`${o.italic?"italic ":""}${o.bold?"bold ":""}${g.resolveFontSize(o,r).fontSizePx}px ${o.fontFamily??i}`,"letterSpacing"in e&&(e.letterSpacing="0px")};ge.drawRichText(t,{x:n.x/a,yTop:-n.y/a,width:n.width/a,height:n.height/a},{measure(o,s){return l(s),e.measureText(o).width/a+(s.letterSpacing??0)},draw(o,s,c,d,h){const m=g.resolveFontSize(s,r).fontSizePx,u=-d*a-m*.8;s.backgroundColor&&(e.fillStyle=s.backgroundColor,e.fillRect(c*a,u,h*a,m*g.resolveLineHeight(s))),we(e,{text:o,fontSizePx:m,bold:!!s.bold,italic:s.italic,underline:s.underline,color:g.resolveTextColor(s),align:"left",lineHeight:g.resolveLineHeight(s),letterSpacingPx:(s.letterSpacing??0)*a},c*a,u,h*a,m,s.fontFamily??i)}})}function D(e){if(e?.aborted)throw e.reason??new DOMException("The operation was aborted.","AbortError")}const gt=(e,t)=>(D(t),/^data:image\/(?:png|jpe?g|webp|gif|svg\+xml)[;,]/i.test(e)?new Promise((n,r)=>{const i=new Image,a=()=>{i.onload=null,i.onerror=null,t?.removeEventListener("abort",l)},l=()=>{a(),i.src="",r(t?.reason??new DOMException("The operation was aborted.","AbortError"))};i.onload=()=>{a(),n(i)},i.onerror=()=>{a(),r(new Error("Image could not be decoded for Canvas output."))},t?.addEventListener("abort",l,{once:!0}),i.src=e}):Promise.reject(new TypeError("Canvas imageData must be an image data URL; provide imageLoader for other sources.")));function ut(e,t,n){return D(n),n?new Promise((r,i)=>{const a=()=>i(n.reason??new DOMException("The operation was aborted.","AbortError"));n.addEventListener("abort",a,{once:!0}),Promise.resolve().then(()=>e(t,n)).then(r,i).finally(()=>n.removeEventListener("abort",a))}):e(t)}function*ve(e){function*t(n,r,i,a){if(a.has(n))throw new TypeError("Cyclic grid children cannot be rendered.");q.isImageBackedComponent(n)&&(yield{component:n,componentIndex:r,componentPath:i});const l=new Set(a).add(n);for(const[o,s]of(n.grid?.cells??[]).entries())for(const[c,d]of s.entries())for(const[h,m]of(d?.children??[]).entries())yield*t(m,r,[...i,o,c,h],l)}for(const[n,r]of e.components.entries())yield*t(r,n,[],new Set)}async function pt(e,t,n){const r=new Map;for(const{component:i}of ve(e))!q.isImageBackedComponent(i)||r.has(i.imageData)||r.set(i.imageData,await ut(t,i.imageData,n));return D(n),r}function ft(e,t,n,r,i,a){const l=t,o=l.naturalWidth??l.width??i,s=l.naturalHeight??l.height??a;if(o<=0||s<=0)throw new RangeError("Decoded Canvas image dimensions must be positive.");const c=Math.min(i/o,a/s),d=o*c,h=s*c;e.drawImage(t,n+(i-d)/2,r+(a-h)/2,d,h)}function Oe(e){return K.createPageWindowIndex(e.pageHeightsPx,e.gapPx).window(e.viewportHeightPx,e.scrollTopPx,e.overscan)}const Me=96/25.4;function ae(e,t=96){const n=t/96*Me;return{widthPx:Math.max(1,Math.round(e.pageWidthMm*n)),heightPx:Math.max(1,Math.round(e.pageHeightMm*n))}}function _e(e,t,n,r=64e6){if(!Number.isFinite(t)||t<=0||!Number.isFinite(n)||n<=0)throw new RangeError("Canvas dpr and dpi must be positive finite numbers.");if(!Number.isFinite(r)||r<=0)throw new RangeError("maxCanvasPixels must be positive and finite.");const i=ae(e,n),a=Math.round(i.widthPx*t),l=Math.round(i.heightPx*t);if(!Number.isSafeInteger(a)||!Number.isSafeInteger(l)||a*l>r)throw new RangeError("Canvas page exceeds maxCanvasPixels; reduce resolution or split the report.");return{width:a,height:l}}function He(e,t,n,r){const i=document.createElement("canvas"),{widthPx:a,heightPx:l}=ae(e,n),o=_e(e,t,n,r);i.width=o.width,i.height=o.height,i.style.width=`${a}px`,i.style.height=`${l}px`;const s=i.getContext("2d");if(!s)throw new Error("当前环境不支持 Canvas 2D(测试需真浏览器,见 e2e/canvas.spec.ts)");return s.scale(t,t),s.fillStyle="#ffffff",s.fillRect(0,0,a,l),{canvas:i,ctx:s}}function wt(e,t=96){return g.resolveFontSize(e,t).fontSizePx}function vt(e,t,n,r,i,a,l){for(const o of ge.resolveGridStrokes(t,n))e.strokeStyle=o.color,e.lineWidth=g.ptToPx(o.widthPt,l),e.beginPath(),o.kind==="v"?(e.moveTo(r+o.pos*a,i+o.from*a),e.lineTo(r+o.pos*a,i+o.to*a)):(e.moveTo(r+o.from*a,i+o.pos*a),e.lineTo(r+o.to*a,i+o.pos*a)),e.stroke()}function Mt(e,t,n,r,i,a){e.beginPath(),t.top&&(e.moveTo(n,r),e.lineTo(n+i,r)),t.right&&(e.moveTo(n+i,r),e.lineTo(n+i,r+a)),t.bottom&&(e.moveTo(n+i,r+a),e.lineTo(n,r+a)),t.left&&(e.moveTo(n,r+a),e.lineTo(n,r)),e.stroke()}function yt(e,t,n,r,i,a,l,o,s,c,d,h){const m=he.resolveGridLayout(t,a/o,l/o);for(const u of m.cells){const p=u.cell.style?.backgroundColor??n.style?.backgroundColor;p&&(e.fillStyle=p,e.fillRect(r+u.xMm*o,i+u.yMm*o,u.widthMm*o,u.heightMm*o))}vt(e,m,n,r,i,o,s);for(const u of m.cells)bt(e,u,n,r,i,o,s,c,d,h)}function bt(e,t,n,r,i,a,l,o,s,c){const d=n.grid?.paddingMm??.5,h=t.cell.text??"",m=g.mergeComponentStyles(n.style,t.cell.style),u=g.resolveFontSize(m,l),p=t.cell.indentMm??0,P=Math.max(0,t.widthMm-2*d-p),L=O.wrapText(h,P,{fontSizePt:u.fontSizePt,bold:m.bold,italic:m.italic,fontFamily:m.fontFamily??o,letterSpacingPt:m.letterSpacing},s).join(`
3
- `),b={x:r+(t.xMm+d+p)*a,y:i+(t.yMm+d)*a,width:P*a,height:Math.max(0,t.heightMm-2*d)*a};e.save(),e.beginPath(),e.rect(b.x,b.y,b.width,b.height),e.clip(),t.cell.richParagraphs?.length?$e(e,{...n,richParagraphs:t.cell.richParagraphs,style:{verticalAlign:"middle",...m}},b,l,o):we(e,{text:L,fontSizePx:u.fontSizePx,bold:m.bold??!1,italic:m.italic,underline:m.underline,color:g.resolveTextColor(m,g.DEFAULT_TEXT_COLOR),align:m.align??"left",lineHeight:g.resolveLineHeight(m),letterSpacingPx:g.ptToPx(m.letterSpacing??0,l)},r+(t.xMm+d+p)*a,i+(t.yMm+d)*a,P*a,Math.max(0,t.heightMm-2*d)*a,m.fontFamily??o,m.verticalAlign??"middle");for(const S of t.cell.children??[])se(e,{...S,leftMm:S.leftMm+b.x/a,topMm:S.topMm+b.y/a},a,l,o,s,c);e.restore()}function Tt(e,t,n,r,i,a,l,o,s){const c=t.style??{},d=g.resolveFontSize(c,l);if(q.isRichText(t)){$e(e,t,{x:n,y:r,width:i,height:a},l,o);return}const h=t.lines?.length?t.lines.join(`
4
- `):O.wrapText(t.text??"",t.widthMm,{fontSizePt:d.fontSizePt,bold:c.bold,italic:c.italic,fontFamily:c.fontFamily??o,letterSpacingPt:c.letterSpacing},s).join(`
5
- `);we(e,{text:h,fontSizePx:d.fontSizePx,bold:c.bold??!1,italic:c.italic,underline:c.underline,color:g.resolveTextColor(c),align:c.align??"left",lineHeight:g.resolveLineHeight(c),letterSpacingPx:g.ptToPx(c.letterSpacing??0,l)},n,r,i,a,c.fontFamily??o,c.verticalAlign)}function se(e,t,n,r,i,a,l){const o=t.leftMm*n,s=t.topMm*n,c=t.widthMm*n,d=t.heightMm*n,h=t.style??{};if(q.isImageBackedComponent(t)){const m=l?.get(t.imageData);m?ft(e,m,o,s,c,d):xe(e,t,o,s,c,d);return}if(t.grid){yt(e,t.grid,t,o,s,c,d,n,r,i,a,l);return}switch(t.kind){case"text":{Tt(e,t,o,s,c,d,r,i,a);break}case"rect":{const m=g.resolveStroke(h),u=g.resolveBoxBorders(h);h.backgroundColor&&(e.fillStyle=h.backgroundColor,e.fillRect(o,s,c,d)),u.inner&&(e.strokeStyle=m.color,e.lineWidth=g.ptToPx(m.widthPt,r),Mt(e,u,o,s,c,d));break}case"line":{const m=g.resolveStroke({...h,borderColor:h.lineColor??h.borderColor});e.strokeStyle=m.color,e.lineWidth=g.ptToPx(m.widthPt,r),e.beginPath();const u=t.lineDirection==="up"?s+d:t.lineDirection==="down"?s:s+d/2,p=t.lineDirection==="up"?s:t.lineDirection==="down"?s+d:s+d/2;e.moveTo(o,u),e.lineTo(o+c,p),e.stroke();break}case"ellipse":{const m=g.resolveStroke(h);e.strokeStyle=m.color,e.lineWidth=g.ptToPx(m.widthPt,r),h.backgroundColor&&(e.fillStyle=h.backgroundColor,e.beginPath(),e.ellipse(o+c/2,s+d/2,c/2,d/2,0,0,Math.PI*2),e.fill()),e.beginPath(),e.ellipse(o+c/2,s+d/2,c/2,d/2,0,0,Math.PI*2),e.stroke();break}default:xe(e,t,o,s,c,d);break}}function xe(e,t,n,r,i,a){e.save(),e.strokeStyle="#94a3b8",e.strokeRect(n,r,i,a),e.fillStyle="#64748b",e.font="12px sans-serif",e.fillText(t.fallbackText??`[${t.kind}]`,n+3,r+14),e.restore()}async function Et(e,t={}){if(typeof document>"u")throw new Error("renderPlanToImages 需要浏览器环境(SSR/Node 请在客户端钩子中调用)");const{format:n="png",quality:r=.92,...i}=t;if(n!=="png"&&n!=="jpeg")throw new TypeError("Image format must be png or jpeg.");if(!Number.isFinite(r)||r<0||r>1)throw new RangeError("Image quality must be between 0 and 1.");D(t.signal);const a=await J.resolvePlanAssets(e,{...t,format:"canvas"});e=a.plan;const l=[...a.diagnostics,...W.reportOutputDiagnostics(e,"canvas",t)],o=n==="jpeg"?"image/jpeg":"image/png",s=[],c=Math.min(e.pages.length-1,t.end??e.pages.length-1);for(let d=Math.max(0,t.start??0);d<=c;d++){D(t.signal);const h=await ze(e.pages[d],d,i,l);try{s.push(await St(h,o,r,t.signal))}finally{h.width=0,h.height=0}await Qe.outputCheckpoint(t,s.length,c-Math.max(0,t.start??0)+1)}return D(t.signal),{blobs:s,diagnostics:l}}function St(e,t,n,r){return D(r),new Promise((i,a)=>{const l=()=>a(r?.reason??new DOMException("The operation was aborted.","AbortError"));r?.addEventListener("abort",l,{once:!0});try{e.toBlob(o=>{r?.removeEventListener("abort",l),o?i(o):a(new Error("Canvas encoding failed; no empty image was emitted."))},t,n)}catch(o){r?.removeEventListener("abort",l),a(o)}})}function Rt(e,t={}){if(D(t.signal),typeof document>"u")throw new Error("renderPlanToCanvas 需要浏览器环境(SSR 请在客户端钩子中调用)");const n=t.dpr??(typeof devicePixelRatio=="number"?devicePixelRatio:1),r=t.dpi??96,i=r/96*Me,a=t.fontFamily??g.DEFAULT_FONT_FAMILY,l=t.measurer??O.heuristicMeasurer,o=Math.max(0,t.start??0),s=Math.min(e.pages.length-1,t.end??e.pages.length-1),c=[],d=W.reportOutputDiagnostics(e,"canvas",t),h=xt(e,o,s);for(const m of h)Ie.notifyOutputDiagnostic(m,t),d.push(m);if(t.fidelity==="strict"&&h.length)throw new W.OutputFidelityError(d);for(let m=o;m<=s;m++){D(t.signal);const u=e.pages[m],{canvas:p,ctx:P}=He(u,n,r,t.maxCanvasPixels);for(const L of u.components)se(P,L,i,r,a,l);c.push(p)}return{canvases:c,diagnostics:d}}function xt(e,t,n){return n<t?[]:e.pages.slice(t,n+1).flatMap((r,i)=>[...ve(r)].map(({component:a,componentIndex:l,componentPath:o})=>({code:"async-image-required",severity:"warning",format:"canvas",pageIndex:t+i,componentIndex:l,componentPath:o,kind:a.kind,nid:a.nid,message:"Use renderPlanToCanvasAsync or renderPlanToImages to decode and include images."})))}async function Ct(e,t={}){if(typeof document>"u")throw new Error("renderPlanToCanvasAsync 需要浏览器环境(Node 请使用 PDF 或 XLSX 输出)");D(t.signal);const n=await J.resolvePlanAssets(e,{...t,format:"canvas"});e=n.plan;const r=[...n.diagnostics,...W.reportOutputDiagnostics(e,"canvas",t)],i=[],a=Math.min(e.pages.length-1,t.end??e.pages.length-1);for(let l=Math.max(0,t.start??0);l<=a;l++)i.push(await ze(e.pages[l],l,t,r));return{canvases:i,diagnostics:r}}async function ze(e,t,n,r){const i=n.dpr??(typeof devicePixelRatio=="number"?devicePixelRatio:1),a=n.dpi??96,l=n.fontFamily??g.DEFAULT_FONT_FAMILY,o=await Be(e,t,n,r);D(n.signal);const{canvas:s,ctx:c}=He(e,i,a,n.maxCanvasPixels);for(const d of e.components)se(c,d,a/25.4,a,l,n.measurer??O.heuristicMeasurer,o);return s}async function Be(e,t,n,r){const i=n.imageLoader??gt;return pt(e,async(a,l)=>{try{return await i(a,l)}catch(o){if(l?.aborted)throw o;const s=[...ve(e)].find(({component:u})=>u.imageData===a),{component:c,componentIndex:d,componentPath:h}=s,m={code:"image-decode-failed",severity:"warning",format:"canvas",pageIndex:t,componentIndex:d,componentPath:h,kind:c.kind,nid:c.nid,message:"Image decoding failed; raster output was cancelled instead of omitting the image."};throw r.push(m),Ie.notifyOutputDiagnostic(m,n),o}},n.signal)}function Pt(e,t={}){const n=t.dpr??(typeof devicePixelRatio=="number"?devicePixelRatio:1),r=t.dpi??96,i=r/96*Me,a=t.fontFamily??g.DEFAULT_FONT_FAMILY,l=t.measurer??O.heuristicMeasurer,o=t.overscan??1,s=t.gapPx??18,c=t.pagesPerFrame??1,d=e.pages.map(w=>w.pageHeightMm*i),h=Math.max(1,...e.pages.map(w=>w.pageWidthMm*i)),m={start:0,end:-1};let u=null,p=null,P=null,L=null,b=[],S=0,I=[],j=0,_=new AbortController;const Te=[];function Ke(){const w=u;w.innerHTML="",p=document.createElement("div"),p.style.cssText=`width:${h}px;margin:0 auto;`,P=document.createElement("div"),L=document.createElement("div"),p.appendChild(P),b=[];const R=Math.min(e.pages.length,3+o*2);for(let B=0;B<R;B++){const T=document.createElement("div");T.style.cssText=`margin:0 auto ${s}px;box-shadow:0 2px 8px rgba(0,0,0,.35);background:#fff;`,p.appendChild(T),b.push(T)}p.appendChild(L),w.appendChild(p)}async function Xe(w,R){const B=j,T=await J.resolvePlanAssets(e,{...t,signal:_.signal,format:"canvas",start:R,end:R});Te.push(...T.diagnostics);const A=T.plan.pages[R],te=await Be(A,R,{...t,signal:_.signal},Te);if(B!==j||!u)return;const{widthPx:ce,heightPx:de}=ae(A,r);let H=w.firstElementChild;(!H||H.tagName!=="CANVAS")&&(H=document.createElement("canvas"),w.innerHTML="",w.appendChild(H));const Se=_e(A,n,r,t.maxCanvasPixels);H.width=Se.width,H.height=Se.height,H.style.width=`${ce}px`,H.style.height=`${de}px`;const V=H.getContext("2d");if(V){V.setTransform(1,0,0,1,0,0),V.scale(n,n),V.fillStyle="#ffffff",V.fillRect(0,0,ce,de);for(const Ze of A.components)se(V,Ze,i,r,a,l,te);H.dataset.canvasPage=String(R),w.style.height=`${de}px`,w.style.width=`${ce}px`}}function Je(w){j++,m.start=w.start,m.end=w.end,P.style.height=`${w.start*s+d.slice(0,w.start).reduce((T,A)=>T+A,0)}px`;const R=e.pages.length-1-w.end;L.style.height=`${R*s+d.slice(w.end+1).reduce((T,A)=>T+A,0)}px`;const B=w.end-w.start+1;b.forEach((T,A)=>{if(A<B){T.style.display="";const te=w.start+A;T.style.height=`${d[te]??0}px`}else T.style.display="none"}),I=[];for(let T=w.start;T<=w.end;T++){const A=b[T-w.start];if(!A)continue;A.firstElementChild?.dataset?.canvasPage!==String(T)&&I.push(T)}le()}function le(){S||I.length===0||(S=requestAnimationFrame(()=>{S=0;let w=Math.max(1,c);for(;I.length>0&&w-- >0;){const R=I.shift(),B=b[R-m.start];B&&Xe(B,R).catch(()=>{})}I.length>0&&le()}))}function Q(){S||(S=requestAnimationFrame(()=>{S=0;const w=u,R=Oe({pageHeightsPx:d,viewportHeightPx:w.clientHeight,scrollTopPx:w.scrollTop,overscan:o,gapPx:s});R.start!==m.start||R.end!==m.end?Je(R):le()}))}let ee=null;return{attach(w){if(typeof document>"u")throw new Error("createCanvasPager 需要浏览器环境(SSR 请在客户端钩子中调用 attach)");D(t.signal),_=new AbortController,t.signal?.addEventListener("abort",Ee,{once:!0}),W.reportOutputDiagnostics(e,"canvas",t),u=w,Ke(),w.addEventListener("scroll",Q,{passive:!0}),typeof ResizeObserver<"u"&&(ee=new ResizeObserver(()=>Q()),ee.observe(w)),Q()},destroy(){j++,_.abort(),t.signal?.removeEventListener("abort",Ee),S&&cancelAnimationFrame(S),S=0,ee?.disconnect(),ee=null,u?.removeEventListener("scroll",Q),I=[],p?.remove(),u=null},window(){return{...m}}};function Ee(){_.abort(t.signal?.reason)}}function ye(e,t,n){let r,i;if(typeof e=="string"){const a=g.PAPER_SIZES[e];if(!a)throw new Error(`未知纸张预设 "${e}"(可用:${Object.keys(g.PAPER_SIZES).join("/")})`);r=a.widthMm,i=a.heightMm}else typeof e=="number"?(r=e,i=t??297):(r=e.widthMm,i=e.heightMm);return n?{widthMm:i,heightMm:r}:{widthMm:r,heightMm:i}}class We{constructor(){this.pages=[],this.pending=null,this.templateParams=void 0}repeat(t){return this.templateRepeat=t,this}params(t){return this.templateParams=t,this}page(t="a4",n={},r){this.collect();const a=r!=null&&!("margins"in r)&&!("landscape"in r)&&("marginTopMm"in r||"marginBottomMm"in r||"marginLeftMm"in r||"marginRightMm"in r)?{margins:r}:typeof n=="number"?r??{}:n,{widthMm:l,heightMm:o}=ye(t,typeof n=="number"?n:void 0,a.landscape),s=a.margins??{};return this.pending=new qe(this,{widthMm:l,heightMm:o,marginTopMm:s.marginTopMm??10,marginBottomMm:s.marginBottomMm??10,marginLeftMm:s.marginLeftMm??10,marginRightMm:s.marginRightMm??10}),this.pending}collect(){this.pending&&(this.pages.push(this.pending.buildPage()),this.pending=null)}build(){if(this.collect(),this.pages.length===0)throw new Error("模板至少需要一页:先调用 .page() 添加内容");return{...this.templateParams?{params:this.templateParams}:{},...this.templateRepeat?{repeat:this.templateRepeat}:{},pages:this.pages}}}class qe{constructor(t,n){this.parent=t,this.page=n,this.components=[]}text(t,n={},r={}){return this.components.push({kind:"text",leftMm:n.leftMm??0,topMm:n.topMm??0,widthMm:n.widthMm??60,heightMm:n.heightMm??8,text:t,style:r}),this}list(t,n,r,i={}){return this.components.push({kind:"list",leftMm:n.leftMm??10,topMm:n.topMm??30,widthMm:n.widthMm??180,dataset:t,columns:r,...i}),this}rect(t,n={}){return this.components.push({kind:"rect",...t,style:n}),this}line(t,n,r,i={}){return this.components.push({kind:"line",leftMm:t,topMm:n,widthMm:r,heightMm:.5,style:i}),this}barcode(t,n){return this.components.push({kind:"barcode",leftMm:n.leftMm??0,topMm:n.topMm??0,widthMm:n.widthMm??40,heightMm:n.heightMm??12,fallbackText:t}),this}qrcode(t,n,r,i){return this.components.push({kind:"qrcode",leftMm:r,topMm:i,widthMm:n,heightMm:n,fallbackText:t}),this}buildPage(){return{...this.page,components:this.components}}done(){return this.parent}build(){return this.done().build()}}function At(){return new We}function Lt(e,t={}){return me.validateDatasetRows([],e),e.fields.map(n=>({field:n.field,header:`${n.label??n.field}${n.unit?` (${n.unit})`:""}`,semanticRole:n.semanticRole??(n.type==="number"||n.type==="decimal"?"measure":n.type==="date"?"date":n.enum?"dimension":"text"),...t[n.field]}))}function F(e,t,n=!1){if(!Number.isFinite(e)||(n?e<0:e<=0))throw new Error(`${t} 必须是有限${n?"非负":"正"}数`)}function re(e,t,n){if(e!==void 0&&!["left","center","right","justify",...n?["auto"]:[]].includes(e))throw new Error(`${t} 必须是 left/center/right/justify${n?"/auto":""}`)}function kt(e){const t=e.layout??"page";if(t!=="page"&&t!=="wide")throw new Error("layout 必须是 page 或 wide");if(t==="wide"&&(e.paper!==void 0||e.landscape!==void 0))throw new Error('宽表布局不能同时指定 paper 或 landscape;标准纸型请使用 layout: "page"');if(t!=="wide"&&e.columnWidthMm!==void 0)throw new Error('columnWidthMm 仅适用于 layout: "wide"');const n=e.columnWidthMm??30;return F(n,"columnWidthMm"),{layout:t,columnWidthMm:n}}function It(e){const t=e.paper===void 0?"a4":e.paper;if(typeof t!="string"&&(typeof t!="object"||t===null)||e.landscape!==void 0&&typeof e.landscape!="boolean")throw new Error("paper 必须是纸张预设名或 { widthMm, heightMm } 对象,landscape 必须是布尔值");if(typeof t=="string"&&!Object.prototype.hasOwnProperty.call(g.PAPER_SIZES,t))throw new Error(`未知纸张预设 "${t}"(可用:${Object.keys(g.PAPER_SIZES).join("/")})`);const n=ye(t,void 0,e.landscape),r=n.widthMm,i=n.heightMm;return F(r,"纸张 widthMm"),F(i,"纸张 heightMm"),{widthMm:r,heightMm:i}}function Dt(e){if(e.margins!==void 0&&(!e.margins||typeof e.margins!="object"||Array.isArray(e.margins)))throw new Error("margins 必须是页边距对象");const t=e.margins??{},n={marginTopMm:t.marginTopMm===void 0?10:t.marginTopMm,marginBottomMm:t.marginBottomMm===void 0?10:t.marginBottomMm,marginLeftMm:t.marginLeftMm===void 0?10:t.marginLeftMm,marginRightMm:t.marginRightMm===void 0?10:t.marginRightMm};for(const[r,i]of Object.entries(n))F(i,r,!0);return n}function Ft(e,t){const n=e.dataset===void 0?"detail":e.dataset;if(typeof n!="string"||!n.trim())throw new Error("dataset 必须是非空字符串");if(e.title!==void 0&&typeof e.title!="string")throw new Error("title 必须是字符串");const r=e.titleHeightMm===void 0?10:e.titleHeightMm,i=e.titleGapMm===void 0?4:e.titleGapMm;F(r,"titleHeightMm"),F(i,"titleGapMm",!0);const a=e.title!==void 0&&e.title.length>0,l=a?r+i:0;if(l>=t)throw new Error("标题高度与间距占满页面,必须为表格保留可用高度");return{dataset:n,titleHeightMm:r,hasTitle:a,titleSpaceMm:l}}function Nt(e){if(e.listOptions!==void 0&&(!e.listOptions||typeof e.listOptions!="object"||Array.isArray(e.listOptions)))throw new Error("listOptions 必须是列表配置对象");const t=e.listOptions??{};re(t.align,"listOptions.align",!0),re(t.headerAlign,"listOptions.headerAlign",!1);for(const n of["fontSizePt","rowHeightMm","paddingMm"]){const r=t[n];r!==void 0&&F(r,`listOptions.${n}`,n==="paddingMm")}return t}function $t(e){let t=0,n=0;for(const[r,i]of e.entries()){if(!i||typeof i.header!="string"||typeof i.field!="string"||!i.field.trim())throw new Error(`columns[${r}] 需要字符串 header 与非空 field`);re(i.align,`columns[${r}].align`,!0),re(i.headerAlign,`columns[${r}].headerAlign`,!1),i.flex!==void 0&&F(i.flex,`columns[${r}].flex`),i.widthMm!==void 0?(F(i.widthMm,`columns[${r}].widthMm`),t+=i.widthMm):n=Math.max(n,i.flex??1)}return{fixedWidthMm:t,maxFlex:n}}function Ot(e,t,n,r){const{fixedWidthMm:i,maxFlex:a}=$t(e.columns);if(t==="page"&&i>r)throw new Error(`固定列宽 ${i}mm 超出页面可用宽度 ${r}mm`);const l=r-i;if(t==="page"&&a>0&&l<=0)throw new Error("固定列占满页面可用宽度,自动列需要正的剩余宽度");const o=a>0?e.columns.reduce((c,d)=>c+(d.widthMm===void 0?(d.flex??1)/a:0),0):0;return{columns:e.columns.map(({widthMm:c,flex:d,...h},m)=>{const u=c??(t==="wide"?n*(d??1):l*((d??1)/a)/o);return F(u,`columns[${m}] 分配后的 widthMm`),{...h,widthMm:u}}),fixedWidthMm:i,maxFlex:a}}function _t(e){if(!e||typeof e!="object")throw new Error("标准明细模板需要 options 对象");if(!Array.isArray(e.columns)||e.columns.length===0)throw new Error("columns 至少需要一列");const{layout:t,columnWidthMm:n}=kt(e),r=It(e);let i=r.widthMm;const a=r.heightMm,l=Dt(e);let o=i-l.marginLeftMm-l.marginRightMm;const s=a-l.marginTopMm-l.marginBottomMm;if(t==="page"&&o<=0||s<=0)throw new Error("页边距占满纸张,必须保留正的可用宽度和高度");const{dataset:c,titleHeightMm:d,hasTitle:h,titleSpaceMm:m}=Ft(e,s),u=Nt(e),{columns:p,fixedWidthMm:P,maxFlex:L}=Ot(e,t,n,o);t==="wide"&&(o=p.reduce((S,I)=>S+I.widthMm,0),F(o,"宽表总列宽"),i=o+l.marginLeftMm+l.marginRightMm,F(i,"宽表总宽度"));const b={widthMm:i,heightMm:a,...l,components:[],...t==="wide"?{layout:t}:{}};return h&&b.components.push({kind:"text",text:e.title,leftMm:l.marginLeftMm,topMm:l.marginTopMm,widthMm:o,heightMm:d,style:{fontSize:16,bold:!0,align:"center",verticalAlign:"middle",...e.titleStyle}}),b.components.push({align:"auto",headerAlign:"center",...u,kind:"list",...t==="wide"?{layout:t}:{},...h?{title:e.title}:{},dataset:c,columns:p,leftMm:l.marginLeftMm,topMm:l.marginTopMm+m,widthMm:t==="wide"||L>0?o:P}),e.params===void 0?{pages:[b]}:{params:e.params,pages:[b]}}function Ht(e){if(e.components!==void 0&&e.pages!==void 0)throw new TypeError("标签 components 与 pages 只能选择一种");const{dataset:t,rowKey:n,copies:r,params:i}=e,a=e.pages??[{components:e.components??[]}],l={repeat:{dataset:t,...n===void 0?{}:{rowKey:n},...r===void 0?{}:{copies:r}},...i===void 0?{}:{params:i},pages:a.map(s=>({widthMm:s.widthMm??e.widthMm??80,heightMm:s.heightMm??e.heightMm??55,marginTopMm:0,marginRightMm:0,marginBottomMm:0,marginLeftMm:0,components:s.components,...s.meta===void 0?{}:{meta:s.meta}}))},o=y.validateReportTemplate(l);if(!o.ok)throw new y.ReportTemplateError(o.errors);return JSON.parse(JSON.stringify(l))}function zt(e){if(!e||typeof e!="object"||!e.repeat)throw new f.ReportSourceError("config","defineLabelReport 需要带 repeat 的固定标签模板");const t=y.validateReportTemplate(e);if(!t.ok)throw new y.ReportTemplateError(t.errors);return e.repeat.dataset}function Ce(e,t){if(!Array.isArray(e))throw new f.ReportSourceError("validate","标签数据应为对象数组;请从业务响应中提取行数组");return{[t]:e}}function Bt(e){const{template:t,rows:n,load:r,dataSchema:i,params:a,pagination:l,dataValidation:o}=e,s=zt(t);if(n!==void 0==(r!==void 0)||r!==void 0&&typeof r!="function")throw new f.ReportSourceError("config","标签报表应且只能配置 rows 或 load 其中一种数据来源");const c={template:t,params:a,pagination:l,dataValidation:o,...i===void 0?{}:{dataSchema:{[s]:i}}};return r?f.defineReport({...c,load:r,mapData:d=>Ce(d,s)}):{...c,datasets:Ce(n,s)}}function Wt(e){return e}class N extends Error{constructor(t,n){super(n),this.code=t,this.name="ReportTemplateStoreError"}}function $(e){return JSON.parse(JSON.stringify(e))}function x(e){if(!e?.aborted)return;const t=new Error("模板操作已取消");throw t.name="AbortError",t}function Pe(e){const t=e?Number(e.revision):0;if(!Number.isSafeInteger(t)||t<0||t>=Number.MAX_SAFE_INTEGER)throw new N("history","修订号无效或已达上限");return String(t+1)}function qt(e,t={}){const n=async(l,o)=>{x(o);const s=await e.read(l,o);return x(o),s?$(s):void 0},r=async(l,o)=>{const s=await n(l,o.signal);if((s?.revision??null)!==o.expectedRevision)throw new N("conflict","模板已变化,请重新读取后提交");return s},i=async(l,o,s)=>{if(x(o.signal),!await e.compareAndSwap(l.id,o.expectedRevision,$(l),{signal:o.signal,...s?{publication:$(s)}:{}}))throw new N("conflict","模板已被其他请求更新");return $(l)},a=async(l,o,s,c)=>{if(t.beforePublish){x(s.signal);const u=await t.beforePublish({document:y.parseReportTemplate(o),previous:l.published?y.parseReportTemplate(l.published):void 0,signal:s.signal});if(!u||u.ok!==!0)throw new N("review",u?.issues?.find(p=>p.severity==="error")?.message??"模板发布检查未通过");x(s.signal)}const d=Pe(l),h=y.parseReportTemplate({...o,revision:d}),m={revision:d,document:h,publishedAt:(t.now?.()??new Date).toISOString()};return c!==void 0&&(m.restoredFrom=c),i({id:l.id,revision:d,publishedRevision:d,published:h},s,m)};return{list:async l=>{x(l);const o=await e.list(l);return x(l),$(o)},get:async(l,o={})=>{const s=await n(l,o.signal),c=o.draft?s?.draft:s?.published;return c?y.parseReportTemplate(c):void 0},history:async(l,o)=>{x(o);const s=await e.history(l,o);return x(o),$(s)},saveDraft:async(l,o)=>{o={...o},x(o.signal);const s=y.parseReportTemplate(t.migrate?await t.migrate(l):l),c=await r(s.id,o),d=Pe(c);return i({id:s.id,revision:d,draft:{...s,revision:d},...c?.publishedRevision?{publishedRevision:c.publishedRevision,published:c.published}:{}},o)},publish:async(l,o)=>{o={...o};const s=await r(l,o);if(!s)throw new N("missing","模板不存在");if(!s.draft)throw new N("draft","没有可发布的草稿");return a(s,s.draft,o)},rollback:async(l,o,s)=>{s={...s};const c=await r(l,s);if(!c)throw new N("missing","模板不存在");x(s.signal);const d=await e.getVersion(l,o,s.signal);if(!d)throw new N("history","历史修订不存在");return a(c,d.document,s,o)}}}function Ut(){const e=new Map,t=new Map;return{read:async(n,r)=>{x(r);const i=e.get(n);return i?$(i):void 0},list:async n=>(x(n),Array.from(e.values(),({id:r,revision:i,publishedRevision:a})=>({id:r,revision:i,...a?{publishedRevision:a}:{}}))),history:async(n,r)=>(x(r),Array.from(t.get(n)?.values()??[],i=>$(i))),getVersion:async(n,r,i)=>{x(i);const a=t.get(n)?.get(r);return a?$(a):void 0},compareAndSwap:async(n,r,i,a)=>{if(x(a.signal),(e.get(n)?.revision??null)!==r)return!1;if(i.id!==n)throw new N("history","状态 ID 与存储 ID 不一致");const l=$(i),o=a.publication;if(o){const s=t.get(n)??new Map;if(s.has(o.revision)||o.revision!==i.revision||o.document.id!==n)throw new N("history","发布修订不可覆盖,且必须与状态修订和模板 ID 一致");s.set(o.revision,$(o)),t.set(n,s)}return e.set(n,l),!0}}}function jt(e){return e.map(t=>t.map(n=>/[\t\r\n"]/.test(n)?`"${n.replace(/"/g,'""')}"`:n).join(" ")).join(`\r
6
- `)}function Gt(e,t){const n=e[e.length-1];e.length>1&&n?.length===1&&n[0]===""&&/[\r\n]$/.test(t)&&e.pop()}function Vt(e,t=1e4){if(e.length>4*1024*1024)throw new Error("Clipboard text limit exceeded");const n=[[]];let r="",i=!1,a=!1,l=0;function o(){if(++l>t)throw new Error("Clipboard cell limit exceeded");n[n.length-1].push(r),r="",a=!1}for(let s=0;s<e.length;s++){const c=e[s];if(i){if(c!=='"'){r+=c;continue}if(e[s+1]==='"'){r+='"',s++;continue}i=!1,a=!0;continue}if(c==='"'&&!r&&!a){i=!0;continue}if(c===" "){o();continue}if(c==="\r"||c===`
7
- `){o(),n.push([]),c==="\r"&&e[s+1]===`
8
- `&&s++;continue}if(a)throw new Error("Invalid quoted clipboard value");r+=c}if(i)throw new Error("Unclosed clipboard quote");return o(),Gt(n,e),n}class Ue extends Error{constructor(t,n,r){const i=typeof n.label=="string"?n.label:"单元格",a={definition:`${i}的编辑器配置无效`,type:`${i}的编辑器与数据类型不一致`,required:`${i}不能为空`,min:`${i}不能小于 ${r}`,max:`${i}不能大于 ${r}`,precision:`${i}最多保留 ${r} 位小数`,length:`${i}最多允许 ${r} 个字符`,choice:`${i}请选择有效选项`,date:`${i}请输入有效日期(YYYY-MM-DD)`};super(a[t]),this.code=t,this.field=n,this.expected=r,this.name="ReportCellFieldError"}}function v(e,t,n){throw new Ue(t,e,n)}function je(e){if(typeof e!="string"||!/^\d{4}-\d{2}-\d{2}$/.test(e)||e.startsWith("0000-"))return!1;const t=new Date(`${e}T00:00:00.000Z`);return Number.isFinite(t.getTime())&&t.toISOString().slice(0,10)===e}function Yt(e){const[t="",n="0"]=String(e).toLowerCase().split("e");return Math.max(0,(t.split(".")[1]?.length??0)-Number(n))}function Kt(e,t){e.min!==void 0&&t<e.min&&v(e,"min",e.min),e.max!==void 0&&t>e.max&&v(e,"max",e.max),e.precision!==void 0&&Yt(t)>e.precision&&v(e,"precision",e.precision)}function Xt(e,t){je(t)||v(e,"date"),e.min!==void 0&&t<e.min&&v(e,"min",e.min),e.max!==void 0&&t>e.max&&v(e,"max",e.max)}function Jt(e){[e.min,e.max].some(t=>t!==void 0&&!Number.isFinite(t))&&v(e,"definition"),e.min!==void 0&&e.max!==void 0&&e.min>e.max&&v(e,"definition"),e.precision!==void 0&&(!Number.isInteger(e.precision)||e.precision<0||e.precision>15)&&v(e,"definition")}function Zt(e){[e.min,e.max].some(t=>t!==void 0&&!je(t))&&v(e,"definition"),e.min!==void 0&&e.max!==void 0&&e.min>e.max&&v(e,"definition")}function Qt(e,t){(!Array.isArray(t.options)||!t.options.length)&&v(t,"definition");const n=e.valueType==="text"?"string":e.valueType,r=new Set;for(const i of t.options)(!i||typeof i.value!==n||typeof i.value=="number"&&!Number.isFinite(i.value))&&v(t,"definition"),i.label!==void 0&&typeof i.label!="string"&&v(t,"definition"),r.has(i.value)&&v(t,"definition"),r.add(i.value)}function en(e){e.required!==void 0&&typeof e.required!="boolean"&&v(e,"definition"),[e.label,e.hint,e.unit].some(t=>t!==void 0&&typeof t!="string")&&v(e,"definition"),e.type==="boolean"&&[e.trueLabel,e.falseLabel].some(t=>t!==void 0&&typeof t!="string")&&v(e,"definition")}function Ge(e,t){(!t||typeof t!="object"||Array.isArray(t)||!["text","number","boolean","enum","date"].includes(t.type))&&v(t??{type:"text"},"definition"),en(t),(t.type==="number"||t.type==="boolean")&&e.valueType!==t.type&&v(t,"type"),(t.type==="text"||t.type==="date")&&e.valueType!=="text"&&v(t,"type"),t.type==="number"&&Jt(t),t.type==="text"&&t.maxLength!==void 0&&(!Number.isInteger(t.maxLength)||t.maxLength<0)&&v(t,"definition"),t.type==="date"&&Zt(t),t.type==="enum"&&Qt(e,t)}function tn(e,t,n){if(!e.editable)throw new f.ReportCellEditError("readonly");n&&Ge(e,n);const r=f.parseReportCellInput(e,t);return n?(n.required&&typeof r=="string"&&!r.trim()&&v(n,"required"),r===null||r===""?(n.required&&v(n,"required"),r):(n.type==="number"&&Kt(n,r),n.type==="date"&&Xt(n,r),n.type==="text"&&n.maxLength!==void 0&&[...String(r)].length>n.maxLength&&v(n,"length",n.maxLength),n.type==="enum"&&!n.options.some(i=>Object.is(i.value,r))&&v(n,"choice"),r)):r}class M extends Error{constructor(t){super(`Report calculation: ${t}`),this.code=t,this.name="ReportCalculationError"}}function Y(e){if(!e?.aborted)return;const t=new Error("Calculation cancelled");throw t.name="AbortError",t}async function ie(e,t=1){const n=Math.floor(e.scanned/2048);if(e.scanned+=t,e.scanned>e.maxScanned)throw new M("limit");Y(e.signal),Math.floor(e.scanned/2048)>n&&(await e.yieldToHost(),Y(e.signal))}function be(e){return e.table?.role==="header"?-Math.max(1,e.grid?.cells.length??1):e.table?.rowIndex??0}function Ae(e,t,n){if(![t.pageIndex,t.componentIndex,t.rowIndex,t.columnIndex].every(o=>Number.isSafeInteger(o)&&o>=0))throw new M("selection");const r=e.pages[t.pageIndex]?.components[t.componentIndex];if(!r?.grid||t.rowIndex>=r.grid.cells.length)throw new M("selection");const i=r.grid.colWidthsMm?.length??r.grid.cells.reduce((o,s)=>Math.max(o,s.length),1);if(t.columnIndex>=i)throw new M("selection");const a=r.table,l=e.pages[n.pageIndex]?.components[n.componentIndex]?.table;if(a&&l&&a.id===l.id){const o=l.columnKeys.indexOf(a.columnKeys[t.columnIndex]??"");if(o<0)throw new M("selection");return{grid:a.id,row:be(r)+t.rowIndex,column:o}}return{grid:`${t.pageIndex}:${t.componentIndex}`,row:t.rowIndex,column:t.columnIndex}}function nn(e,t,n){const r=Ae(e,t.anchor,t.anchor),i=Ae(e,t.focus,t.anchor);if(r.grid!==i.grid)throw new M("selection");const a=(Math.abs(r.row-i.row)+1)*(Math.abs(r.column-i.column)+1);if(!Number.isSafeInteger(a)||a>n)throw new M("limit");return{grid:r.grid,rowStart:Math.min(r.row,i.row),rowEnd:Math.max(r.row,i.row),columnStart:Math.min(r.column,i.column),columnEnd:Math.max(r.column,i.column),origin:e.pages[t.anchor.pageIndex].components[t.anchor.componentIndex].table}}function rn(e){if(!e)return!1;const t=e.replace(/"[^"]*"|\\.|\[(?![hms]+\])[^\]]*\]/gi,"");return/[ymdhs]/i.test(t)}function on(e){if(e.valueType==="text"||e.valueType==="boolean"||rn(e.numberFormat))return null;const t=e.value;if(typeof t!="number"||!Number.isFinite(t))return null;if(Number.isInteger(t)&&!Number.isSafeInteger(t))throw new M("precision");return t}function an(e,t,n){if(e.seen.has(n))return;e.seen.add(n),e.selected++;const r=t?on(t):null;r===null?e.excluded++:e.values.push(r)}function sn(e,t,n,r){return r.origin?e.table?.id===r.origin.id:`${t}:${n}`===r.grid}function ln(e,t,n){return n.origin?n.origin.columnKeys.indexOf(e.table.columnKeys[t]??""):t}function cn(e,t,n,r){const i=r.origin?be(e)+t:t,a=ln(e,n,r);return i<r.rowStart||i>r.rowEnd||a<r.columnStart||a>r.columnEnd?null:`${r.grid}:${i}:${a}`}function dn(e,t){const n=t.origin?be(e):0,r=Math.max(0,t.rowStart-n),i=Math.min(e.grid.cells.length,t.rowEnd-n+1);return i>r?i:0}async function mn(e,t,n,r,i){const a=e.grid;if(t>r.maxScanned)throw new M("limit");const l=a.colWidthsMm?.length??a.cells.reduce((s,c)=>Math.max(s,c.length),1);if(l>r.maxScanned)throw new M("limit");const o=new Map;for(let s=0;s<t;s++){s>0&&s%2048===0&&(await r.yieldToHost(),Y(r.signal));let c=0;for(const d of a.cells[s]){for(await ie(r);c<l&&(o.get(c)??0)>s;)c++;if(c>=l)break;const h=Math.max(1,Math.min(d?.colSpan??1,l-c)),m=Math.min(a.cells.length,s+Math.max(1,d?.rowSpan??1));h>1&&await ie(r,h-1);for(let p=c;p<c+h;p++)o.set(p,m);const u=cn(e,s,c,n);u&&an(i,d,u),c+=h}}}async function hn(e,t,n){const r={values:[],seen:new Set,excluded:0,selected:0};for(let i=0;i<e.pages.length;i++){await ie(n);const a=e.pages[i];for(let l=0;l<a.components.length;l++){await ie(n);const o=a.components[l];if(!o.grid||!sn(o,i,l,t)||o.table&&o.table.role!=="body")continue;const s=dn(o,t);s&&await mn(o,s,t,n,r)}}return r}function X(e){if(!Number.isFinite(e))throw new M("overflow");return e}function gn(e){let t=0,n=0;for(const r of e){const i=r-n,a=X(t+i);n=a-t-i,t=a}return t}async function Le(e,t){let n=[...e],r=new Array(e.length);for(let a=1;a<e.length;a*=2){for(let l=0;l<e.length;l+=a*2){const o=Math.min(l+a,e.length),s=Math.min(l+a*2,e.length);let c=l,d=o;for(let h=l;h<s;h++)r[h]=d>=s||c<o&&n[c]<=n[d]?n[c++]:n[d++],h%2048===0&&(await t.yieldToHost(),Y(t.signal))}[n,r]=[r,n]}const i=Math.floor(n.length/2);return n.length%2?n[i]:X(n[i-1]/2+n[i]/2)}function un(e){const t=gn(e);let n=1/0,r=-1/0;for(const i of e)n=Math.min(n,i),r=Math.max(r,i);return{SUM:t,AVERAGE:t/e.length,AVG:t/e.length,MIN:n,MAX:r,COUNT:e.length}}function Ve(e,t){if(typeof e!="string"||e.length>256)throw new M("expression");const n=e.toUpperCase().match(/(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?|[A-Z_]+|[()+\-*/]|\S/g)??[];if(!n.length||n.length>64)throw new M("expression");let r=0;function i(o){if(o>16)throw new M("expression");const s=n[r++];if(s==="+"||s==="-")return(s==="-"?-1:1)*i(o+1);if(s==="("){const c=a(0,o+1);if(n[r++]!==")")throw new M("expression");return c}if(s&&/^(?:SUM|AVERAGE|AVG|MIN|MAX|COUNT|MEDIAN)$/.test(s)&&Object.prototype.hasOwnProperty.call(t,s))return X(t[s]);if(s&&/^(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?$/.test(s))return X(Number(s));throw new M("expression")}function a(o,s){let c=i(s);for(;r<n.length;){const d=n[r],h=d==="+"||d==="-"?1:d==="*"||d==="/"?2:0;if(!h||h<o)break;r++;const m=a(h+1,s+1);if(d==="/"&&m===0)throw new M("division");c=X(d==="+"?c+m:d==="-"?c-m:d==="*"?c*m:c/m)}return c}const l=a(1,0);if(r!==n.length)throw new M("expression");return l}function pn(e){const t=e.maxCells??1e5,n=e.maxScannedCells??2e5,r=e.precision??2;if(![t,n].every(i=>Number.isSafeInteger(i)&&i>=1&&i<=2e6))throw new M("limit");if(!Number.isInteger(r)||r<0||r>12)throw new M("precision");return{maxCells:t,maxScanned:n,precision:r}}async function fn(e,t,n={}){const r=pn(n),i={scanned:0,maxScanned:r.maxScanned,signal:n.signal,yieldToHost:n.yieldToHost??(()=>new Promise(s=>setTimeout(s,0)))};Y(i.signal);const a=await hn(e,nn(e,t,r.maxCells),i),l=n.operation??"sum";if(!["sum","average","min","max","count","median","expression"].includes(l))throw new M("expression");let o=null;if(l==="count")o=a.values.length;else if(a.values.length)if(l==="median")o=await Le(a.values,i);else{const s=un(a.values);l==="expression"?(/\bMEDIAN\b/i.test(n.expression??"")&&(s.MEDIAN=await Le(a.values,i)),o=Ve(n.expression??"",s)):o=s[l.toUpperCase()]}if(Y(i.signal),o!==null&&Number.isInteger(o)&&!Number.isSafeInteger(o))throw new M("precision");return{value:o,formatted:o===null?"—":o.toFixed(r.precision),numericCells:a.values.length,excludedCells:a.excluded,selectedCells:a.selected,precision:r.precision}}class k extends Error{constructor(t,n){super(t),this.path=n,this.code="label-sheet",this.name="LabelSheetError"}}function ne(e){if(e?.aborted){const t=new Error("标签拼版已取消");throw t.name="AbortError",t}}function U(e,t,n=!1){if(!Number.isFinite(e)||e<=0||n&&!Number.isSafeInteger(e))throw new k("应为正有限数字,数量应为安全整数",t);return e}function ke(e,t){if(!Number.isFinite(e)||e<0)throw new k("应为非负有限数字",t);return e}function wn(e){const t=typeof e.marginMm=="object"?e.marginMm:{top:e.marginMm??0,left:e.marginMm??0,bottom:e.marginMm??0,right:e.marginMm??0},n=typeof e.gapMm=="object"?e.gapMm:{horizontal:e.gapMm??0,vertical:e.gapMm??0};for(const r of["top","left","bottom","right"])ke(t?.[r],`$.marginMm.${r}`);for(const r of["horizontal","vertical"])ke(n?.[r],`$.gapMm.${r}`);return{margin:t,gap:n}}function vn(e){const t=e.paper===void 0||e.paper==="a4"?{widthMm:210,heightMm:297}:e.paper;U(t.widthMm,"$.paper.widthMm"),U(t.heightMm,"$.paper.heightMm");const n=U(e.columns,"$.columns",!0),r=U(e.rows,"$.rows",!0),i=n*r;if(i>1e3)throw new k("每张纸不能超过 1000 个位置","$.columns");const{margin:a,gap:l}=wn(e),o=e.startSlot??0,s=e.offsetMm??{x:0,y:0};if(!Number.isSafeInteger(o)||o<0||o>=i)throw new k("起始位置应在首张纸的有效位置内","$.startSlot");if(!Number.isFinite(s.x)||!Number.isFinite(s.y))throw new k("校准偏移应为有限毫米值","$.offsetMm");return{paper:t,columns:n,rows:r,capacity:i,margin:a,gap:l,startSlot:o,offset:s}}function Ye(e){return 1+(e.grid?.cells.reduce((t,n)=>t+n.length+1+n.reduce((r,i)=>r+(i?.children?.reduce((a,l)=>a+Ye(l),0)??0),0),0)??0)}function Mn(e,t,n){if(!y.validateRenderPlan(e).ok)throw new k("标签计划无效","$.plan");const r=e.pages[0];if(!r)return;const{paper:i,columns:a,rows:l,margin:o,gap:s,offset:c}=n;if(o.left+c.x<0||o.top+c.y<0||o.left+c.x+a*r.pageWidthMm+(a-1)*s.horizontal+o.right>i.widthMm+1e-6||o.top+c.y+l*r.pageHeightMm+(l-1)*s.vertical+o.bottom>i.heightMm+1e-6)throw new k("标签、间距、边距及校准偏移超过纸张尺寸;不会自动缩小标签","$.paper");let d=0;for(const[h,m]of e.pages.entries()){if(ne(t.signal),m.layout==="wide"||m.pageWidthMm!==r.pageWidthMm||m.pageHeightMm!==r.pageHeightMm)throw new k("拼版需要尺寸相同的固定标签页面",`$.pages.${h}`);if(d+=m.components.reduce((u,p)=>u+Ye(p),0),d>U(t.maxComponents??25e4,"$.maxComponents",!0))throw new k("拼版组件总量超过预算","$.maxComponents");for(const u of m.components)if(u.leftMm<0||u.topMm<0||u.leftMm+u.widthMm>m.pageWidthMm+1e-6||u.topMm+u.heightMm>m.pageHeightMm+1e-6)throw new k("标签内容超出标签边界",`$.pages.${h}.components`)}}function yn(e,t){ne(t.signal);const n=vn(t),{paper:r,columns:i,capacity:a,margin:l,gap:o,startSlot:s,offset:c}=n,d=e.pages.length?Math.ceil((s+e.pages.length)/a):0;if(d>U(t.maxSheets??1e4,"$.maxSheets",!0))throw new k("拼版纸张数量超过预算","$.maxSheets");U(t.maxComponents??25e4,"$.maxComponents",!0),Mn(e,t,n);const h=f.snapshotReportJson(e,{maxBytes:U(t.maxSnapshotBytes??64e6,"$.maxSnapshotBytes",!0),check:()=>ne(t.signal),error:(u,p)=>new k(p,"$.maxSnapshotBytes")}),m=Array.from({length:d},()=>({pageWidthMm:r.widthMm,pageHeightMm:r.heightMm,components:[],meta:{labelSheet:{columns:i,rows:n.rows,slots:[]}}}));for(const[u,p]of h.pages.entries()){ne(t.signal);const P=s+u,L=P%a,b=m[Math.floor(P/a)],S=l.left+c.x+L%i*(p.pageWidthMm+o.horizontal),I=l.top+c.y+Math.floor(L/i)*(p.pageHeightMm+o.vertical),j={sourcePageIndex:u,slotIndex:L,xMm:S,yMm:I,widthMm:p.pageWidthMm,heightMm:p.pageHeightMm,...p.meta?{sourceMeta:p.meta}:{}};b.meta.labelSheet.slots.push(j),b.components.push(...p.components.map(_=>({..._,leftMm:_.leftMm+S,topMm:_.topMm+I,meta:{..._.meta,labelSheet:j}})))}return{...h,pages:m}}exports.CSS_DPI=g.CSS_DPI;exports.DEFAULT_BORDER_PT=g.DEFAULT_BORDER_PT;exports.DEFAULT_FONT_FAMILY=g.DEFAULT_FONT_FAMILY;exports.DEFAULT_FONT_PT=g.DEFAULT_FONT_PT;exports.DEFAULT_STROKE_COLOR=g.DEFAULT_STROKE_COLOR;exports.DEFAULT_TEXT_COLOR=g.DEFAULT_TEXT_COLOR;exports.LINE_HEIGHT=g.LINE_HEIGHT;exports.MM_PER_INCH=g.MM_PER_INCH;exports.PAPER_SIZES=g.PAPER_SIZES;exports.SCHEMA_VERSION_MACH=g.SCHEMA_VERSION_MACH;exports.mergeComponentStyles=g.mergeComponentStyles;exports.mmToPx=g.mmToPx;exports.mmToPxFactor=g.mmToPxFactor;exports.ptToPx=g.ptToPx;exports.pxToMm=g.pxToMm;exports.resolveBoxBorders=g.resolveBoxBorders;exports.resolveFontSize=g.resolveFontSize;exports.resolveLineHeight=g.resolveLineHeight;exports.resolveStroke=g.resolveStroke;exports.resolveTextColor=g.resolveTextColor;exports.round=g.round;exports.ReportBindingError=G.ReportBindingError;exports.evalStyleRule=G.evalStyleRule;exports.formatValue=G.formatValue;exports.parseDateLocal=G.parseDateLocal;exports.resolveComponentBinding=G.resolveComponentBinding;exports.toExcelNumberFormat=G.toExcelNumberFormat;exports.toNumber=G.toNumber;exports.RENDER_PLAN_SCHEMA_VERSION=q.RENDER_PLAN_SCHEMA_VERSION;exports.isImageBackedComponent=q.isImageBackedComponent;exports.isRichText=q.isRichText;exports.REPORT_TEMPLATE_DOCUMENT_VERSION=y.REPORT_TEMPLATE_DOCUMENT_VERSION;exports.ReportTemplateError=y.ReportTemplateError;exports.assertRenderPlan=y.assertRenderPlan;exports.createTemplateRegistry=y.createTemplateRegistry;exports.defineReportTemplate=y.defineReportTemplate;exports.parseReportTemplate=y.parseReportTemplate;exports.serializeReportTemplate=y.serializeReportTemplate;exports.validateComponent=y.validateComponent;exports.validatePage=y.validatePage;exports.validateRenderPlan=y.validateRenderPlan;exports.validateReportTemplate=y.validateReportTemplate;exports.validateReportTemplateDocument=y.validateReportTemplateDocument;exports.datasetJsonSchema=me.datasetJsonSchema;exports.validateDatasetRows=me.validateDatasetRows;exports.charWidthEm=O.charWidthEm;exports.createCanvasMeasurer=O.createCanvasMeasurer;exports.createHeuristicMeasurer=O.createHeuristicMeasurer;exports.heuristicMeasurer=O.heuristicMeasurer;exports.measureTextMm=O.measureTextMm;exports.wrapText=O.wrapText;exports.DEFAULT_LABEL_PAGE_LIMIT=f.DEFAULT_LABEL_PAGE_LIMIT;exports.PaginateCellLimitError=f.PaginateCellLimitError;exports.PaginatePageLimitError=f.PaginatePageLimitError;exports.ReportCellEditError=f.ReportCellEditError;exports.ReportSourceError=f.ReportSourceError;exports.applyReportCellEdit=f.applyReportCellEdit;exports.applyReportCellEditBatch=f.applyReportCellEditBatch;exports.applyReportEditResult=f.applyReportEditResult;exports.applyReportSourceMetadata=f.applyReportSourceMetadata;exports.countTemplatePages=f.countTemplatePages;exports.createReportCellEdit=f.createReportCellEdit;exports.createReportCellEditBatch=f.createReportCellEditBatch;exports.createReportCellResolver=f.createReportCellResolver;exports.createReportEditSession=f.createReportEditSession;exports.createReportSource=f.createReportSource;exports.defineReport=f.defineReport;exports.estimateListLayoutCells=f.estimateListLayoutCells;exports.formatReportCellEdit=f.formatReportCellEdit;exports.getReportCellContext=f.getReportCellContext;exports.getReportEditSession=f.getReportEditSession;exports.hasValidDataExplanation=f.hasValidDataExplanation;exports.isReportDataTarget=f.isReportDataTarget;exports.isReportValueState=f.isReportValueState;exports.paginateTemplate=f.paginateTemplate;exports.paginateTemplatePages=f.paginateTemplatePages;exports.parseReportCellInput=f.parseReportCellInput;exports.projectListColumns=f.projectListColumns;exports.registerReportEditSession=f.registerReportEditSession;exports.relocateReportCellEdits=f.relocateReportCellEdits;exports.reportCellEditKey=f.reportCellEditKey;exports.summarizeReportCellEdits=f.summarizeReportCellEdits;exports.resolveGridLayout=he.resolveGridLayout;exports.OutputFidelityError=W.OutputFidelityError;exports.inspectOutputCapabilities=W.inspectOutputCapabilities;exports.reportOutputDiagnostics=W.reportOutputDiagnostics;exports.OutputAssetError=J.OutputAssetError;exports.resolvePlanAssets=J.resolvePlanAssets;exports.ReportDrillError=K.ReportDrillError;exports.createReportDrillRequest=K.createReportDrillRequest;exports.matchReportDrillActions=K.matchReportDrillActions;exports.resolveReportDrillReturn=K.resolveReportDrillReturn;exports.validateReportDrillActions=K.validateReportDrillActions;exports.ReportParamValidationError=z.ReportParamValidationError;exports.assertReportParams=z.assertReportParams;exports.formatReportDateRange=z.formatReportDateRange;exports.isReportDate=z.isReportDate;exports.isReportMonth=z.isReportMonth;exports.isReportYear=z.isReportYear;exports.parseReportDateRange=z.parseReportDateRange;exports.reportParamsJsonSchema=z.reportParamsJsonSchema;exports.validateReportParamDefinitions=z.validateReportParamDefinitions;exports.validateReportParams=z.validateReportParams;exports.cloneReportTemplate=Z.cloneReportTemplate;exports.createLocalTemplateCatalog=Z.createLocalTemplateCatalog;exports.diffReportTemplates=Z.diffReportTemplates;exports.reviewReportTemplate=Z.reviewReportTemplate;exports.reviewReportTemplateAsync=Z.reviewReportTemplateAsync;exports.collectTemplateOutline=ue.collectTemplateOutline;exports.inspectTemplateFieldUsage=ue.inspectTemplateFieldUsage;exports.templatePathLocation=ue.templatePathLocation;exports.applyReportDocumentStyle=oe.applyReportDocumentStyle;exports.captureTemplateFragment=oe.captureTemplateFragment;exports.insertTemplateFragment=oe.insertTemplateFragment;exports.inspectTemplateFragmentBindings=oe.inspectTemplateFragmentBindings;exports.TreeRowLimitError=pe.TreeRowLimitError;exports.createTreeTable=pe.createTreeTable;exports.validateTreeOptions=pe.validateTreeOptions;exports.LabelSheetError=k;exports.PageBuilder=qe;exports.ReportCalculationError=M;exports.ReportCellFieldError=Ue;exports.ReportTemplateStoreError=N;exports.TemplateBuilder=We;exports.calculateReportSelection=fn;exports.classOf=C;exports.columnsFromContract=Lt;exports.computePageWindow=Oe;exports.createCanvasPager=Pt;exports.createLabelTemplate=Ht;exports.createMemoryTemplateStore=Ut;exports.createProviderReport=Wt;exports.createTableTemplate=_t;exports.createTemplate=At;exports.createTemplateManager=qt;exports.defineLabelReport=Bt;exports.evaluateReportAggregateExpression=Ve;exports.formatReportClipboard=jt;exports.imposeLabelSheets=yn;exports.measurePageSizePx=ae;exports.parseReportCellFieldInput=tn;exports.parseReportClipboard=Vt;exports.planFontSizePx=wt;exports.renderComponent=fe;exports.renderPage=Ne;exports.renderPlan=dt;exports.renderPlanToCanvas=Rt;exports.renderPlanToCanvasAsync=Ct;exports.renderPlanToImages=Et;exports.resolvePaper=ye;exports.validateReportCellFieldDefinition=Ge;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./style-C22Pbv3T.cjs"),K=require("./record-bindings-ehjnCDHt.cjs"),G=require("./component-tree-6TV7W6Yj.cjs"),R=require("./template-registry-DzWswQI5.cjs"),Ee=require("./dataset-IrlXbUvh.cjs"),B=require("./textwrap-BI-yJ6Wt.cjs"),f=require("./json-snapshot-jiXff4lc.cjs"),de=require("./grid-geometry-CZ_cYB6O.cjs"),Ye=require("./data-bar-Ce38juRZ.cjs"),me=require("./rich-text-layout-ALlMoYOG.cjs"),D=require("./assets-B0Hxn4l6.cjs"),ye=require("./progress-B0ctFpKf.cjs"),H=require("./prefill-D7EswyTI.cjs"),k=require("./param-validation-C-8sRJLq.cjs"),Ke=require("./matrix-0hywp0-F.cjs"),Re=require("./computed-4TnxzgIh.cjs"),ne=require("./template-catalog-Utu4GP09.cjs"),Te=require("./template-outline-DWkzZXVC.cjs"),he=require("./template-fragments-C_zSHJAa.cjs"),xe=require("./column-visual-CtYxnBCP.cjs");function Me(e,t,n){let r=0,o=e.length;for(;r<o;){const i=r+o>>>1;n(e[i])<t?r=i+1:o=i}return r}function Xe(e){if(![e.leftMm,e.topMm,e.widthMm,e.heightMm].every(Number.isFinite)||e.widthMm<0||e.heightMm<0)throw new RangeError("Preview viewport must have finite coordinates and nonnegative dimensions.");return e}function Et(e){const t=e.rows.map(()=>[]);for(const n of e.cells){const r=Math.min(t.length,n.ri+(n.cell.rowSpan??1));for(let o=n.ri;o<r;o++)t[o].push(n)}for(const n of t)n.sort((r,o)=>r.xMm-o.xMm);return{cells(n){Xe(n);const r=new Set,o=n.topMm+n.heightMm,i=n.leftMm+n.widthMm;let l=Me(e.rows,n.topMm,s=>s.pos+s.size);for(;l<t.length&&e.rows[l].pos<=o;){const s=t[l++];let a=Me(s,n.leftMm,c=>c.xMm+c.widthMm);for(;a<s.length&&s[a].xMm<=i;)r.add(s[a++])}return[...r].sort((s,a)=>s.ri-a.ri||s.ci-a.ci)}}}function Rt(e){const t=["h","v"].map(n=>e.filter(r=>r.kind===n).sort((r,o)=>r.pos-o.pos));return n=>{const r=[];return t.forEach((o,i)=>{const l=i===0?n.topMm:n.leftMm,s=l+(i===0?n.heightMm:n.widthMm),a=i===0?n.leftMm:n.topMm,c=a+(i===0?n.widthMm:n.heightMm);let d=Me(o,l,m=>m.pos);for(;d<o.length&&o[d].pos<=s;){const m=o[d++];m.to>=a&&m.from<=c&&r.push(m)}}),r}}function Tt(){const e=[];return{mount(t){e.push(Pt(t))},update(t,n,r){Xe(t);let o=!1;for(const i of e)o=i.update(t,i.component===n?r:void 0)||o;return o}}}function xt(e,t){const n=Math.max(8,e.widthMm/4),r=Math.max(8,e.heightMm/4);return{leftMm:e.leftMm-t.leftMm-n,topMm:e.topMm-t.topMm-r,widthMm:e.widthMm+2*n,heightMm:e.heightMm+2*r}}function St(e,t,n){let r=t.get(n);return r||(r=e.table.ownerDocument.createElement("tr"),r.className=e.rowClass,r.setAttribute("role","row"),r.setAttribute("aria-rowindex",String(n+1)),r.style.cssText="all:unset;display:contents;box-sizing:border-box",t.set(n,r)),r}function Ct(e,t,n,r){const o=new Set(t),i=new Set(t.map(s=>s.ri));for(const[s,a]of n)o.has(s)||(a.remove(),n.delete(s));for(const[s,a]of r)i.has(s)||(a.remove(),r.delete(s));for(const s of t){let a=n.get(s);a||(a=e.drawCell(s),a.setAttribute("aria-colindex",String(s.ci+1)),n.set(s,a));const c=St(e,r,s.ri);a.parentElement!==c&&c.appendChild(a)}const l=new Map;for(const s of t){const a=l.get(s.ri)??[];a.push(n.get(s)),l.set(s.ri,a)}for(const[s,a]of l)_e(r.get(s),a);_e(e.body,[...i].sort((s,a)=>s-a).map(s=>r.get(s)))}function _e(e,t){let n=e.firstElementChild;for(const r of t)r===n?n=n.nextElementSibling:e.insertBefore(r,n)}function Pt(e){const t=de.resolveGridLayout(e.grid,e.component.widthMm,e.component.heightMm),n=new Map(t.cells.map(c=>[`${c.ri}:${c.ci}`,c])),r=Et(t),o=new Map,i=new Map,l=Rt(me.resolveGridStrokes(t,e.component));e.table.setAttribute("aria-rowcount",String(t.rows.length)),e.table.setAttribute("aria-colcount",String(t.columns.length));let s="",a="";return{component:e.component,update(c,d){const m=xt(c,e.component),h=r.cells(m),g=d&&n.get(`${d.rowIndex}:${d.columnIndex}`);g&&!h.includes(g)&&h.push(g),h.sort((y,U)=>y.ri-U.ri||y.ci-U.ci);const u=h.map(y=>`${y.ri}:${y.ci}`).join(";"),P=l(m),S=P.map(y=>`${y.kind}:${y.pos}:${y.from}:${y.to}`).join(";"),M=u!==s,E=S!==a;return M&&(s=u,Ct(e,h,o,i)),E&&(a=S,e.edgeHost.replaceChildren(...e.drawEdges(P))),M||E}}}const Ze=new WeakMap,At={root:"mr-root",page:"mr-page",comp:"mr-comp",text:"mr-text",lines:"mr-lines",line:"mr-line",rich:"mr-rich",paragraph:"mr-paragraph",segment:"mr-segment",image:"mr-image",shape:"mr-shape",grid:"mr-grid",row:"mr-row",cell:"mr-cell",unknown:"mr-unknown"};function $(e,t){return t?.classNames?.[e]??At[e]}class $t{constructor(){this.props=[]}add(t,n){return n==null||n===!1||n===""?this:(this.props.push([t,String(n)]),this)}mm(t,n,r,o=2){return this.add(t,`${p.round(p.mmToPx(n,r),o)}px`)}toString(){let t="";for(const[n,r]of this.props)t+=`${n}:${r};`;return t}applyTo(t){const n=this.toString();n&&(t.style.cssText=n)}}function x(e,t="unset"){return new $t().add("all",t).add("display",e).add("box-sizing","border-box")}function Qe(e,t,n){e.add("color",t.color).add("font-family",t.fontFamily).add("font-weight",t.bold!=null?t.bold?"700":"400":void 0).add("font-style",t.italic!=null?t.italic?"italic":"normal":void 0).add("text-decoration",t.underline!=null?t.underline?"underline":"none":void 0).add("letter-spacing",t.letterSpacing!=null?`${t.letterSpacing}pt`:void 0).add("line-height",String(p.resolveLineHeight(t))).add("text-align",t.align);const r=p.resolveFontSize(t,n);e.add("font-size",`${p.round(r.fontSizePx,2)}px`)}function Ot(e,t,n){const r=t.style??{};Qe(e,r,n),e.add("background-color",r.backgroundColor).add("opacity",r.opacity!=null?String(r.opacity):void 0).add("transform",r.rotateDeg?`rotate(${r.rotateDeg}deg)`:void 0)}function je(e,t,n,r,o,i){const l=e.cell,s=i.createElement("td");s.className=$("cell",o),s.dataset.mrRowIndex=String(e.ri),s.dataset.mrColumnIndex=String(e.ci),s.setAttribute("role",t.table?.role==="header"?"columnheader":"cell"),l.colSpan&&(s.colSpan=l.colSpan),l.rowSpan&&(s.rowSpan=l.rowSpan);const a=p.mergeComponentStyles(t.style,l.style),c=x("block").add("position","absolute").mm("left",e.xMm,r).mm("top",e.yMm,r).mm("width",e.widthMm,r).mm("height",e.heightMm,r).add("background-color",a.backgroundColor).add("vertical-align",a.verticalAlign??"middle");Qe(c,a,r),c.applyTo(s);const d=Ye.dataBarBox(l.dataBar,e.widthMm,e.heightMm,n);if(d){const h=i.createElement("div");h.className="mr-cell-data-bar",h.setAttribute("aria-hidden","true"),x("block").add("position","absolute").mm("left",d.x,r).mm("top",d.y,r).mm("width",d.width,r).mm("height",d.height,r).add("background-color",d.color).add("opacity","0.35").add("pointer-events","none").applyTo(h),s.appendChild(h)}const m=i.createElement("div");m.className="mr-cell-content",x("flex").add("position","absolute").mm("left",n+(l.indentMm??0),r).mm("right",n,r).mm("top",n,r).mm("bottom",n,r).add("flex-direction","column").add("justify-content",a.verticalAlign==="top"?"flex-start":a.verticalAlign==="bottom"?"flex-end":"center").add("overflow-wrap","anywhere").add("overflow","hidden").applyTo(m),l.richParagraphs?.length?m.appendChild(tt({...t,kind:"text",richParagraphs:l.richParagraphs},r,o,i)):l.text!=null&&m.append(l.text);for(const h of l.children??[])m.appendChild(Se(h,r,o,i));return s.insertBefore(m,s.firstChild),s}function Dt(e,t,n,r){return et(me.resolveGridStrokes(e,t),n,r)}function et(e,t,n){return e.map(r=>{const o=`${p.round(r.widthPt*t/72,2)}px solid ${r.color}`,i=n.createElement("div");i.className="mr-grid-edge",i.setAttribute("aria-hidden","true");const l=r.kind==="h";return x("block").add("position","absolute").add("pointer-events","none").mm("left",l?r.from:r.pos,t).mm("top",l?r.pos:r.from,t).mm("width",l?r.to-r.from:0,t).mm("height",l?0:r.to-r.from,t).add(l?"border-top":"border-left",o).applyTo(i),i})}function kt(e,t,n,r,o){const i=o.createElement("table");i.className=$("grid",r),i.setAttribute("role","table"),x("block").add("position","relative").add("width","100%").add("height","100%").applyTo(i);const l=o.createElement("tbody");x("contents").applyTo(l),i.appendChild(l);const s=t.style?.rotateDeg?void 0:Ze.get(r);if(s){const m=o.createElement("div");x("block").add("position","relative").add("width","100%").add("height","100%").applyTo(m);const h=o.createElement("div");return x("contents").applyTo(h),h.setAttribute("aria-hidden","true"),s.mount({grid:e,component:t,table:i,rowClass:$("row",r),body:l,edgeHost:h,drawCell:g=>je(g,t,e.paddingMm??.5,n,{...r},o),drawEdges:g=>et(g,n,o)}),m.append(i,h),m}const a=de.resolveGridLayout(e,t.widthMm,t.heightMm),c=e.cells.map(()=>{const m=o.createElement("tr");return m.className=$("row",r),m.setAttribute("role","row"),x("contents").applyTo(m),l.appendChild(m),m});for(const m of a.cells)c[m.ri].appendChild(je(m,t,e.paddingMm??.5,n,r,o));const d=o.createElement("div");return x("block").add("position","relative").add("width","100%").add("height","100%").applyTo(d),d.append(i,...Dt(a,t,n,o)),d}function Lt(e,t,n,r){const o=r.createElement("div");o.className=$("paragraph",n),x("block").add("text-align",e.align).add("line-height",e.lineHeight!=null?String(e.lineHeight):void 0).mm("margin-top",e.spaceBeforeMm??0,t).mm("margin-bottom",e.spaceAfterMm??0,t).mm("text-indent",e.indentMm??0,t).applyTo(o);for(const i of e.segments||[]){const l=r.createElement("span");l.className=$("segment",n),l.textContent=i.kind==="field"?i.field??"":i.text??"";const s=x("inline");if(i.style){const a=i.style;s.add("color",a.color).add("background-color",a.backgroundColor).add("font-family",a.fontFamily).add("line-height",a.lineHeight).add("letter-spacing",a.letterSpacing==null?void 0:`${a.letterSpacing*t/72}px`).add("font-weight",a.bold!=null?a.bold?"700":"400":void 0).add("font-style",a.italic!=null?a.italic?"italic":"normal":void 0).add("text-decoration",a.underline!=null?a.underline?"underline":"none":void 0),(a.fontSize!=null||a.fontSizePx!=null)&&s.add("font-size",`${p.round(p.resolveFontSize(a,t).fontSizePx,2)}px`)}s.applyTo(l),o.appendChild(l)}return o}function tt(e,t,n,r){if(G.isRichText(e)){const o=r.createElement("div");o.className=$("rich",n),x("block").applyTo(o);for(const i of e.richParagraphs)o.appendChild(Lt(i,t,n,r));return o}if(Array.isArray(e.lines)&&e.lines.length>0){const o=r.createElement("div");o.className=$("lines",n),x("block").applyTo(o);for(const i of e.lines){const l=r.createElement("div");l.className=$("line",n),l.textContent=i,x("block").add("white-space","pre").add("min-height","1lh").applyTo(l),o.appendChild(l)}return o}return e.text??""}function It(e,t,n,r){const o=r.createElement("div");o.className=$("text",n);const i=e.style||{};return x("flex").add("width","100%").add("height","100%").add("flex-direction","column").add("justify-content",i.verticalAlign==="middle"?"center":i.verticalAlign==="bottom"?"flex-end":"flex-start").add("overflow-wrap","anywhere").add("overflow","hidden").applyTo(o),o.append(tt(e,t,n,r)),o}function Nt(e,t,n){const r=n.createElement("img");return r.className=$("image",t),r.src=e.imageData,x("block").add("width","100%").add("height","100%").add("object-fit","contain").applyTo(r),r.alt=e.kind,r}function ze(e,t,n,r){const o=r.createElement("div");o.className=$("shape",n);const i=e.style||{},l=p.resolveStroke(i),s=p.resolveBoxBorders(i),a=`${p.round(l.widthPt*t/72,2)}px solid ${l.color}`,c=x("block");return e.grid?c.add("position","relative"):e.kind==="rect"?(s.top&&c.add("border-top",a),s.right&&c.add("border-right",a),s.bottom&&c.add("border-bottom",a),s.left&&c.add("border-left",a)):e.kind==="ellipse"?(s.inner&&c.add("border",a).add("border-radius","50%"),i.backgroundColor&&c.add("background-color",i.backgroundColor)):e.kind==="line"&&c.add("height","0").add("border-top",a),c.add("box-sizing","border-box").add("width","100%").add("height","100%"),c.applyTo(o),o}function Ft(e,t,n){const r=n.createElementNS("http://www.w3.org/2000/svg","svg"),o=p.mmToPx(e.widthMm,t),i=p.mmToPx(e.heightMm,t);r.setAttribute("width",String(Math.max(1,o))),r.setAttribute("height",String(Math.max(1,i))),r.setAttribute("aria-hidden","true"),r.style.overflow="visible",r.style.display="block";const l=n.createElementNS("http://www.w3.org/2000/svg","line");l.setAttribute("x1","0"),l.setAttribute("x2",String(o)),l.setAttribute("y1",e.lineDirection==="up"?String(i):"0"),l.setAttribute("y2",e.lineDirection==="up"?"0":String(i));const s=p.resolveStroke({...e.style,borderColor:e.style?.lineColor??e.style?.borderColor});return l.setAttribute("stroke",s.color),l.setAttribute("stroke-width",String(s.widthPt*t/72)),r.appendChild(l),r}function Se(e,t,n,r){const o=r.createElement("div");o.className=`${$("comp",n)} mr-kind-${e.kind}`;const i=x("block").add("position","absolute").mm("left",e.leftMm,t).mm("top",e.topMm,t).mm("width",e.widthMm,t).mm("height",e.heightMm,t).add("box-sizing","border-box");if(Ot(i,e,t),i.applyTo(o),G.isImageBackedComponent(e))return o.appendChild(Nt(e,n,r)),o;if(e.kind==="text")return o.appendChild(It(e,t,n,r)),o;if(e.grid){const s=ze(e,t,n,r);return s.appendChild(kt(e.grid,e,t,n,r)),o.appendChild(s),o}if(e.kind==="line"&&e.lineDirection)return o.appendChild(Ft(e,t,r)),o;if(e.kind==="line"||e.kind==="rect"||e.kind==="ellipse")return o.appendChild(ze(e,t,n,r)),o;const l=r.createElement("div");return l.className=$("unknown",n),x("block").applyTo(l),l.textContent=e.fallbackText??`[${e.kind}]`,l.dataset.mrUnsupported=e.kind,l.setAttribute("role","note"),o.appendChild(l),o}function Ce(e,t,n,r){const o=r.createElement("div");return o.className=$("page",n),x("block","initial").add("position","relative").add("font-family",p.DEFAULT_FONT_FAMILY).add("font-size",`${p.round(p.resolveFontSize(void 0,t).fontSizePx,2)}px`).add("line-height",String(p.resolveLineHeight(void 0))).add("white-space","pre-wrap").add("direction","ltr").mm("width",e.pageWidthMm,t).mm("height",e.pageHeightMm,t).add("background-color","#fff").add("color",p.DEFAULT_TEXT_COLOR).add("overflow","hidden").add("box-sizing","border-box").applyTo(o),e.components.forEach((i,l)=>{const s=Se(i,t,n,r);s.dataset.mrComponentIndex=String(l),o.appendChild(s)}),o}function _t(e,t,n={}){const r=n.dpi??96;D.reportOutputDiagnostics(e,"dom",n);const o=t.createElement("div");return o.className=$("root",n),x("block").applyTo(o),o.dataset.schemaVersion=e.schemaVersion,e.pages.forEach(i=>{o.appendChild(Ce(i,r,n,t))}),o}function jt(e,t,n,r){const o={...n},i=Tt();return Ze.set(o,i),{element:Ce(e,t,o,r),update(s,a){return i.update(s,a&&e.components[a.componentIndex],a)}}}function Pe(e,t,n,r,o,i,l,s="top"){e.font=`${t.italic?"italic ":""}${t.bold?"bold ":""}${t.fontSizePx}px ${l}`,"letterSpacing"in e&&(e.letterSpacing="0px"),e.fillStyle=t.color,e.textBaseline="alphabetic";const a=t.fontSizePx*t.lineHeight,c=t.text===""?[""]:t.text.split(`
2
+ `),d=c.length*a;let m=r;s==="middle"?m=r+(i-d)/2:s==="bottom"&&(m=r+i-d),c.forEach((h,g)=>{const u=m+g*a+t.fontSizePx*.8;zt(e,h,t,n,u,o),t.underline&&h&&Bt(e,h,t,n,u,o)}),e.textAlign="left"}function zt(e,t,n,r,o,i){const l=Array.from(t),s=n.letterSpacingPx??0;if(!s){e.textAlign=n.align==="center"?"center":n.align==="right"?"right":"left";const m=n.align==="center"?r+i/2:n.align==="right"?r+i:r;e.fillText(t,m,o);return}const a=e.measureText(t).width+Math.max(0,l.length-1)*s,c=n.align==="center"?r+(i-a)/2:n.align==="right"?r+i-a:r;e.textAlign="left";let d="";l.forEach((m,h)=>{e.fillText(m,c+e.measureText(d).width+h*s,o),d+=m})}function Bt(e,t,n,r,o,i){const l=e.measureText(t).width+Math.max(0,Array.from(t).length-1)*(n.letterSpacingPx??0),s=n.align==="center"?r+(i-l)/2:n.align==="right"?r+i-l:r;e.strokeStyle=n.color,e.lineWidth=Math.max(.5,n.fontSizePx/20),e.beginPath(),e.moveTo(s,o+1),e.lineTo(s+l,o+1),e.stroke()}function nt(e,t,n,r,o){const i=r/72,l=s=>{e.font=`${s.italic?"italic ":""}${s.bold?"bold ":""}${p.resolveFontSize(s,r).fontSizePx}px ${s.fontFamily??o}`,"letterSpacing"in e&&(e.letterSpacing="0px")};me.drawRichText(t,{x:n.x/i,yTop:-n.y/i,width:n.width/i,height:n.height/i},{measure(s,a){return l(a),e.measureText(s).width/i+(a.letterSpacing??0)},draw(s,a,c,d,m){const h=p.resolveFontSize(a,r).fontSizePx,g=-d*i-h*.8;a.backgroundColor&&(e.fillStyle=a.backgroundColor,e.fillRect(c*i,g,m*i,h*p.resolveLineHeight(a))),Pe(e,{text:s,fontSizePx:h,bold:!!a.bold,italic:a.italic,underline:a.underline,color:p.resolveTextColor(a),align:"left",lineHeight:p.resolveLineHeight(a),letterSpacingPx:(a.letterSpacing??0)*i},c*i,g,m*i,h,a.fontFamily??o)}})}function N(e){if(e?.aborted)throw e.reason??new DOMException("The operation was aborted.","AbortError")}const Ht=(e,t)=>(N(t),/^data:image\/(?:png|jpe?g|webp|gif|svg\+xml)[;,]/i.test(e)?new Promise((n,r)=>{const o=new Image,i=()=>{o.onload=null,o.onerror=null,t?.removeEventListener("abort",l)},l=()=>{i(),o.src="",r(t?.reason??new DOMException("The operation was aborted.","AbortError"))};o.onload=()=>{i(),n(o)},o.onerror=()=>{i(),r(new Error("Image could not be decoded for Canvas output."))},t?.addEventListener("abort",l,{once:!0}),o.src=e}):Promise.reject(new TypeError("Canvas imageData must be an image data URL; provide imageLoader for other sources.")));function Ut(e,t,n){return N(n),n?new Promise((r,o)=>{const i=()=>o(n.reason??new DOMException("The operation was aborted.","AbortError"));n.addEventListener("abort",i,{once:!0}),Promise.resolve().then(()=>e(t,n)).then(r,o).finally(()=>n.removeEventListener("abort",i))}):e(t)}function*Ae(e){function*t(n,r,o,i){if(i.has(n))throw new TypeError("Cyclic grid children cannot be rendered.");G.isImageBackedComponent(n)&&(yield{component:n,componentIndex:r,componentPath:o});const l=new Set(i).add(n);for(const[s,a]of(n.grid?.cells??[]).entries())for(const[c,d]of a.entries())for(const[m,h]of(d?.children??[]).entries())yield*t(h,r,[...o,s,c,m],l)}for(const[n,r]of e.components.entries())yield*t(r,n,[],new Set)}async function Vt(e,t,n){const r=new Map;for(const{component:o}of Ae(e))!G.isImageBackedComponent(o)||r.has(o.imageData)||r.set(o.imageData,await Ut(t,o.imageData,n));return N(n),r}function qt(e,t,n,r,o,i){const l=t,s=l.naturalWidth??l.width??o,a=l.naturalHeight??l.height??i;if(s<=0||a<=0)throw new RangeError("Decoded Canvas image dimensions must be positive.");const c=Math.min(o/s,i/a),d=s*c,m=a*c;e.drawImage(t,n+(o-d)/2,r+(i-m)/2,d,m)}function rt(e){return H.createPageWindowIndex(e.pageHeightsPx,e.gapPx).window(e.viewportHeightPx,e.scrollTopPx,e.overscan)}const $e=96/25.4;function pe(e,t=96){const n=t/96*$e;return{widthPx:Math.max(1,Math.round(e.pageWidthMm*n)),heightPx:Math.max(1,Math.round(e.pageHeightMm*n))}}function ot(e,t,n,r=64e6){if(!Number.isFinite(t)||t<=0||!Number.isFinite(n)||n<=0)throw new RangeError("Canvas dpr and dpi must be positive finite numbers.");if(!Number.isFinite(r)||r<=0)throw new RangeError("maxCanvasPixels must be positive and finite.");const o=pe(e,n),i=Math.round(o.widthPx*t),l=Math.round(o.heightPx*t);if(!Number.isSafeInteger(i)||!Number.isSafeInteger(l)||i*l>r)throw new RangeError("Canvas page exceeds maxCanvasPixels; reduce resolution or split the report.");return{width:i,height:l}}function it(e,t,n,r){const o=document.createElement("canvas"),{widthPx:i,heightPx:l}=pe(e,n),s=ot(e,t,n,r);o.width=s.width,o.height=s.height,o.style.width=`${i}px`,o.style.height=`${l}px`;const a=o.getContext("2d");if(!a)throw new Error("当前环境不支持 Canvas 2D(测试需真浏览器,见 e2e/canvas.spec.ts)");return a.scale(t,t),a.fillStyle="#ffffff",a.fillRect(0,0,i,l),{canvas:o,ctx:a}}function Wt(e,t=96){return p.resolveFontSize(e,t).fontSizePx}function Gt(e,t,n,r,o,i,l){for(const s of me.resolveGridStrokes(t,n))e.strokeStyle=s.color,e.lineWidth=p.ptToPx(s.widthPt,l),e.beginPath(),s.kind==="v"?(e.moveTo(r+s.pos*i,o+s.from*i),e.lineTo(r+s.pos*i,o+s.to*i)):(e.moveTo(r+s.from*i,o+s.pos*i),e.lineTo(r+s.to*i,o+s.pos*i)),e.stroke()}function Jt(e,t,n,r,o,i){e.beginPath(),t.top&&(e.moveTo(n,r),e.lineTo(n+o,r)),t.right&&(e.moveTo(n+o,r),e.lineTo(n+o,r+i)),t.bottom&&(e.moveTo(n+o,r+i),e.lineTo(n,r+i)),t.left&&(e.moveTo(n,r+i),e.lineTo(n,r)),e.stroke()}function Yt(e,t,n,r,o,i,l,s,a,c,d,m){const h=de.resolveGridLayout(t,i/s,l/s);for(const g of h.cells){const u=g.cell.style?.backgroundColor??n.style?.backgroundColor;u&&(e.fillStyle=u,e.fillRect(r+g.xMm*s,o+g.yMm*s,g.widthMm*s,g.heightMm*s))}Gt(e,h,n,r,o,s,a);for(const g of h.cells)Kt(e,g,n,r,o,s,a,c,d,m)}function Kt(e,t,n,r,o,i,l,s,a,c){const d=n.grid?.paddingMm??.5,m=t.cell.text??"",h=p.mergeComponentStyles(n.style,t.cell.style),g=p.resolveFontSize(h,l),u=t.cell.indentMm??0,P=Math.max(0,t.widthMm-2*d-u),S=B.wrapText(m,P,{fontSizePt:g.fontSizePt,bold:h.bold,italic:h.italic,fontFamily:h.fontFamily??s,letterSpacingPt:h.letterSpacing},a).join(`
3
+ `),M={x:r+(t.xMm+d+u)*i,y:o+(t.yMm+d)*i,width:P*i,height:Math.max(0,t.heightMm-2*d)*i};e.save(),e.beginPath(),e.rect(M.x,M.y,M.width,M.height),e.clip(),t.cell.richParagraphs?.length?nt(e,{...n,richParagraphs:t.cell.richParagraphs,style:{verticalAlign:"middle",...h}},M,l,s):Pe(e,{text:S,fontSizePx:g.fontSizePx,bold:h.bold??!1,italic:h.italic,underline:h.underline,color:p.resolveTextColor(h,p.DEFAULT_TEXT_COLOR),align:h.align??"left",lineHeight:p.resolveLineHeight(h),letterSpacingPx:p.ptToPx(h.letterSpacing??0,l)},r+(t.xMm+d+u)*i,o+(t.yMm+d)*i,P*i,Math.max(0,t.heightMm-2*d)*i,h.fontFamily??s,h.verticalAlign??"middle");for(const y of t.cell.children??[])ge(e,{...y,leftMm:y.leftMm+M.x/i,topMm:y.topMm+M.y/i},i,l,s,a,c);e.restore();const E=Ye.dataBarBox(t.cell.dataBar,t.widthMm,t.heightMm,d);E&&(e.save(),e.globalAlpha*=.35,e.fillStyle=E.color,e.fillRect(r+(t.xMm+E.x)*i,o+(t.yMm+E.y)*i,E.width*i,E.height*i),e.restore())}function Xt(e,t,n,r,o,i,l,s,a){const c=t.style??{},d=p.resolveFontSize(c,l);if(G.isRichText(t)){nt(e,t,{x:n,y:r,width:o,height:i},l,s);return}const m=t.lines?.length?t.lines.join(`
4
+ `):B.wrapText(t.text??"",t.widthMm,{fontSizePt:d.fontSizePt,bold:c.bold,italic:c.italic,fontFamily:c.fontFamily??s,letterSpacingPt:c.letterSpacing},a).join(`
5
+ `);Pe(e,{text:m,fontSizePx:d.fontSizePx,bold:c.bold??!1,italic:c.italic,underline:c.underline,color:p.resolveTextColor(c),align:c.align??"left",lineHeight:p.resolveLineHeight(c),letterSpacingPx:p.ptToPx(c.letterSpacing??0,l)},n,r,o,i,c.fontFamily??s,c.verticalAlign)}function ge(e,t,n,r,o,i,l){const s=t.leftMm*n,a=t.topMm*n,c=t.widthMm*n,d=t.heightMm*n,m=t.style??{};if(G.isImageBackedComponent(t)){const h=l?.get(t.imageData);h?qt(e,h,s,a,c,d):Be(e,t,s,a,c,d);return}if(t.grid){Yt(e,t.grid,t,s,a,c,d,n,r,o,i,l);return}switch(t.kind){case"text":{Xt(e,t,s,a,c,d,r,o,i);break}case"rect":{const h=p.resolveStroke(m),g=p.resolveBoxBorders(m);m.backgroundColor&&(e.fillStyle=m.backgroundColor,e.fillRect(s,a,c,d)),g.inner&&(e.strokeStyle=h.color,e.lineWidth=p.ptToPx(h.widthPt,r),Jt(e,g,s,a,c,d));break}case"line":{const h=p.resolveStroke({...m,borderColor:m.lineColor??m.borderColor});e.strokeStyle=h.color,e.lineWidth=p.ptToPx(h.widthPt,r),e.beginPath();const g=t.lineDirection==="up"?a+d:t.lineDirection==="down"?a:a+d/2,u=t.lineDirection==="up"?a:t.lineDirection==="down"?a+d:a+d/2;e.moveTo(s,g),e.lineTo(s+c,u),e.stroke();break}case"ellipse":{const h=p.resolveStroke(m);e.strokeStyle=h.color,e.lineWidth=p.ptToPx(h.widthPt,r),m.backgroundColor&&(e.fillStyle=m.backgroundColor,e.beginPath(),e.ellipse(s+c/2,a+d/2,c/2,d/2,0,0,Math.PI*2),e.fill()),e.beginPath(),e.ellipse(s+c/2,a+d/2,c/2,d/2,0,0,Math.PI*2),e.stroke();break}default:Be(e,t,s,a,c,d);break}}function Be(e,t,n,r,o,i){e.save(),e.strokeStyle="#94a3b8",e.strokeRect(n,r,o,i),e.fillStyle="#64748b",e.font="12px sans-serif",e.fillText(t.fallbackText??`[${t.kind}]`,n+3,r+14),e.restore()}async function Zt(e,t={}){if(typeof document>"u")throw new Error("renderPlanToImages 需要浏览器环境(SSR/Node 请在客户端钩子中调用)");const{format:n="png",quality:r=.92,...o}=t;if(n!=="png"&&n!=="jpeg")throw new TypeError("Image format must be png or jpeg.");if(!Number.isFinite(r)||r<0||r>1)throw new RangeError("Image quality must be between 0 and 1.");N(t.signal);const i=await D.resolvePlanAssets(e,{...t,format:"canvas"});e=i.plan;const l=[...i.diagnostics,...D.reportOutputDiagnostics(e,"canvas",t)],s=n==="jpeg"?"image/jpeg":"image/png",a=[],c=Math.min(e.pages.length-1,t.end??e.pages.length-1);for(let d=Math.max(0,t.start??0);d<=c;d++){N(t.signal);const m=await at(e.pages[d],d,o,l);try{a.push(await Qt(m,s,r,t.signal))}finally{m.width=0,m.height=0}await ye.outputCheckpoint(t,a.length,c-Math.max(0,t.start??0)+1)}return N(t.signal),{blobs:a,diagnostics:l}}function Qt(e,t,n,r){return N(r),new Promise((o,i)=>{const l=()=>i(r?.reason??new DOMException("The operation was aborted.","AbortError"));r?.addEventListener("abort",l,{once:!0});try{e.toBlob(s=>{r?.removeEventListener("abort",l),s?o(s):i(new Error("Canvas encoding failed; no empty image was emitted."))},t,n)}catch(s){r?.removeEventListener("abort",l),i(s)}})}function en(e,t={}){if(N(t.signal),typeof document>"u")throw new Error("renderPlanToCanvas 需要浏览器环境(SSR 请在客户端钩子中调用)");const n=t.dpr??(typeof devicePixelRatio=="number"?devicePixelRatio:1),r=t.dpi??96,o=r/96*$e,i=t.fontFamily??p.DEFAULT_FONT_FAMILY,l=t.measurer??B.heuristicMeasurer,s=Math.max(0,t.start??0),a=Math.min(e.pages.length-1,t.end??e.pages.length-1),c=[],d=D.reportOutputDiagnostics(e,"canvas",t),m=tn(e,s,a);for(const h of m)D.notifyOutputDiagnostic(h,t),d.push(h);if(t.fidelity==="strict"&&m.length)throw new D.OutputFidelityError(d);for(let h=s;h<=a;h++){N(t.signal);const g=e.pages[h],{canvas:u,ctx:P}=it(g,n,r,t.maxCanvasPixels);for(const S of g.components)ge(P,S,o,r,i,l);c.push(u)}return{canvases:c,diagnostics:d}}function tn(e,t,n){return n<t?[]:e.pages.slice(t,n+1).flatMap((r,o)=>[...Ae(r)].map(({component:i,componentIndex:l,componentPath:s})=>({code:"async-image-required",severity:"warning",format:"canvas",pageIndex:t+o,componentIndex:l,componentPath:s,kind:i.kind,nid:i.nid,message:"Use renderPlanToCanvasAsync or renderPlanToImages to decode and include images."})))}async function nn(e,t={}){if(typeof document>"u")throw new Error("renderPlanToCanvasAsync 需要浏览器环境(Node 请使用 PDF 或 XLSX 输出)");N(t.signal);const n=await D.resolvePlanAssets(e,{...t,format:"canvas"});e=n.plan;const r=[...n.diagnostics,...D.reportOutputDiagnostics(e,"canvas",t)],o=[],i=Math.min(e.pages.length-1,t.end??e.pages.length-1);for(let l=Math.max(0,t.start??0);l<=i;l++)o.push(await at(e.pages[l],l,t,r));return{canvases:o,diagnostics:r}}async function at(e,t,n,r){const o=n.dpr??(typeof devicePixelRatio=="number"?devicePixelRatio:1),i=n.dpi??96,l=n.fontFamily??p.DEFAULT_FONT_FAMILY,s=await st(e,t,n,r);N(n.signal);const{canvas:a,ctx:c}=it(e,o,i,n.maxCanvasPixels);for(const d of e.components)ge(c,d,i/25.4,i,l,n.measurer??B.heuristicMeasurer,s);return a}async function st(e,t,n,r){const o=n.imageLoader??Ht;return Vt(e,async(i,l)=>{try{return await o(i,l)}catch(s){if(l?.aborted)throw s;const a=[...Ae(e)].find(({component:g})=>g.imageData===i),{component:c,componentIndex:d,componentPath:m}=a,h={code:"image-decode-failed",severity:"warning",format:"canvas",pageIndex:t,componentIndex:d,componentPath:m,kind:c.kind,nid:c.nid,message:"Image decoding failed; raster output was cancelled instead of omitting the image."};throw r.push(h),D.notifyOutputDiagnostic(h,n),s}},n.signal)}function rn(e,t={}){const n=t.dpr??(typeof devicePixelRatio=="number"?devicePixelRatio:1),r=t.dpi??96,o=r/96*$e,i=t.fontFamily??p.DEFAULT_FONT_FAMILY,l=t.measurer??B.heuristicMeasurer,s=t.overscan??1,a=t.gapPx??18,c=t.pagesPerFrame??1,d=e.pages.map(b=>b.pageHeightMm*o),m=Math.max(1,...e.pages.map(b=>b.pageWidthMm*o)),h={start:0,end:-1};let g=null,u=null,P=null,S=null,M=[],E=0,y=[],U=0,V=new AbortController;const Ie=[];function bt(){const b=g;b.innerHTML="",u=document.createElement("div"),u.style.cssText=`width:${m}px;margin:0 auto;`,P=document.createElement("div"),S=document.createElement("div"),u.appendChild(P),M=[];const O=Math.min(e.pages.length,3+s*2);for(let W=0;W<O;W++){const C=document.createElement("div");C.style.cssText=`margin:0 auto ${a}px;box-shadow:0 2px 8px rgba(0,0,0,.35);background:#fff;`,u.appendChild(C),M.push(C)}u.appendChild(S),b.appendChild(u)}async function yt(b,O){const W=U,C=await D.resolvePlanAssets(e,{...t,signal:V.signal,format:"canvas",start:O,end:O});Ie.push(...C.diagnostics);const L=C.plan.pages[O],ae=await st(L,O,{...t,signal:V.signal},Ie);if(W!==U||!g)return;const{widthPx:we,heightPx:be}=pe(L,r);let q=b.firstElementChild;(!q||q.tagName!=="CANVAS")&&(q=document.createElement("canvas"),b.innerHTML="",b.appendChild(q));const Fe=ot(L,n,r,t.maxCanvasPixels);q.width=Fe.width,q.height=Fe.height,q.style.width=`${we}px`,q.style.height=`${be}px`;const X=q.getContext("2d");if(X){X.setTransform(1,0,0,1,0,0),X.scale(n,n),X.fillStyle="#ffffff",X.fillRect(0,0,we,be);for(const vt of L.components)ge(X,vt,o,r,i,l,ae);q.dataset.canvasPage=String(O),b.style.height=`${be}px`,b.style.width=`${we}px`}}function Mt(b){U++,h.start=b.start,h.end=b.end,P.style.height=`${b.start*a+d.slice(0,b.start).reduce((C,L)=>C+L,0)}px`;const O=e.pages.length-1-b.end;S.style.height=`${O*a+d.slice(b.end+1).reduce((C,L)=>C+L,0)}px`;const W=b.end-b.start+1;M.forEach((C,L)=>{if(L<W){C.style.display="";const ae=b.start+L;C.style.height=`${d[ae]??0}px`}else C.style.display="none"}),y=[];for(let C=b.start;C<=b.end;C++){const L=M[C-b.start];if(!L)continue;L.firstElementChild?.dataset?.canvasPage!==String(C)&&y.push(C)}fe()}function fe(){E||y.length===0||(E=requestAnimationFrame(()=>{E=0;let b=Math.max(1,c);for(;y.length>0&&b-- >0;){const O=y.shift(),W=M[O-h.start];W&&yt(W,O).catch(()=>{})}y.length>0&&fe()}))}function oe(){E||(E=requestAnimationFrame(()=>{E=0;const b=g,O=rt({pageHeightsPx:d,viewportHeightPx:b.clientHeight,scrollTopPx:b.scrollTop,overscan:s,gapPx:a});O.start!==h.start||O.end!==h.end?Mt(O):fe()}))}let ie=null;return{attach(b){if(typeof document>"u")throw new Error("createCanvasPager 需要浏览器环境(SSR 请在客户端钩子中调用 attach)");N(t.signal),V=new AbortController,t.signal?.addEventListener("abort",Ne,{once:!0}),D.reportOutputDiagnostics(e,"canvas",t),g=b,bt(),b.addEventListener("scroll",oe,{passive:!0}),typeof ResizeObserver<"u"&&(ie=new ResizeObserver(()=>oe()),ie.observe(b)),oe()},destroy(){U++,V.abort(),t.signal?.removeEventListener("abort",Ne),E&&cancelAnimationFrame(E),E=0,ie?.disconnect(),ie=null,g?.removeEventListener("scroll",oe),y=[],u?.remove(),g=null},window(){return{...h}}};function Ne(){V.abort(t.signal?.reason)}}function Oe(e,t,n){let r,o;if(typeof e=="string"){const i=p.PAPER_SIZES[e];if(!i)throw new Error(`未知纸张预设 "${e}"(可用:${Object.keys(p.PAPER_SIZES).join("/")})`);r=i.widthMm,o=i.heightMm}else typeof e=="number"?(r=e,o=t??297):(r=e.widthMm,o=e.heightMm);return n?{widthMm:o,heightMm:r}:{widthMm:r,heightMm:o}}class lt{constructor(){this.pages=[],this.pending=null,this.templateParams=void 0}repeat(t){return this.templateRepeat=t,this}params(t){return this.templateParams=t,this}page(t="a4",n={},r){this.collect();const i=r!=null&&!("margins"in r)&&!("landscape"in r)&&("marginTopMm"in r||"marginBottomMm"in r||"marginLeftMm"in r||"marginRightMm"in r)?{margins:r}:typeof n=="number"?r??{}:n,{widthMm:l,heightMm:s}=Oe(t,typeof n=="number"?n:void 0,i.landscape),a=i.margins??{};return this.pending=new ct(this,{widthMm:l,heightMm:s,marginTopMm:a.marginTopMm??10,marginBottomMm:a.marginBottomMm??10,marginLeftMm:a.marginLeftMm??10,marginRightMm:a.marginRightMm??10}),this.pending}collect(){this.pending&&(this.pages.push(this.pending.buildPage()),this.pending=null)}build(){if(this.collect(),this.pages.length===0)throw new Error("模板至少需要一页:先调用 .page() 添加内容");return{...this.templateParams?{params:this.templateParams}:{},...this.templateRepeat?{repeat:this.templateRepeat}:{},pages:this.pages}}}class ct{constructor(t,n){this.parent=t,this.page=n,this.components=[]}text(t,n={},r={}){return this.components.push({kind:"text",leftMm:n.leftMm??0,topMm:n.topMm??0,widthMm:n.widthMm??60,heightMm:n.heightMm??8,text:t,style:r}),this}list(t,n,r,o={}){return this.components.push({kind:"list",leftMm:n.leftMm??10,topMm:n.topMm??30,widthMm:n.widthMm??180,dataset:t,columns:r,...o}),this}rect(t,n={}){return this.components.push({kind:"rect",...t,style:n}),this}line(t,n,r,o={}){return this.components.push({kind:"line",leftMm:t,topMm:n,widthMm:r,heightMm:.5,style:o}),this}barcode(t,n){return this.components.push({kind:"barcode",leftMm:n.leftMm??0,topMm:n.topMm??0,widthMm:n.widthMm??40,heightMm:n.heightMm??12,fallbackText:t}),this}qrcode(t,n,r,o){return this.components.push({kind:"qrcode",leftMm:r,topMm:o,widthMm:n,heightMm:n,fallbackText:t}),this}buildPage(){return{...this.page,components:this.components}}done(){return this.parent}build(){return this.done().build()}}function on(){return new lt}function an(e,t={}){return Ee.validateDatasetRows([],e),e.fields.map(n=>({field:n.field,header:`${n.label??n.field}${n.unit?` (${n.unit})`:""}`,semanticRole:n.semanticRole??(n.type==="number"||n.type==="decimal"?"measure":n.type==="date"?"date":n.enum?"dimension":"text"),...n.format?{format:{...n.format}}:{},...t[n.field]}))}function F(e,t,n=!1){if(!Number.isFinite(e)||(n?e<0:e<=0))throw new Error(`${t} 必须是有限${n?"非负":"正"}数`)}function le(e,t,n){if(e!==void 0&&!["left","center","right","justify",...n?["auto"]:[]].includes(e))throw new Error(`${t} 必须是 left/center/right/justify${n?"/auto":""}`)}function sn(e){const t=e.layout??"page";if(t!=="page"&&t!=="wide")throw new Error("layout 必须是 page 或 wide");if(t==="wide"&&(e.paper!==void 0||e.landscape!==void 0))throw new Error('宽表布局不能同时指定 paper 或 landscape;标准纸型请使用 layout: "page"');if(t!=="wide"&&e.columnWidthMm!==void 0)throw new Error('columnWidthMm 仅适用于 layout: "wide"');const n=e.columnWidthMm??30;return F(n,"columnWidthMm"),{layout:t,columnWidthMm:n}}function ln(e){const t=e.paper===void 0?"a4":e.paper;if(typeof t!="string"&&(typeof t!="object"||t===null)||e.landscape!==void 0&&typeof e.landscape!="boolean")throw new Error("paper 必须是纸张预设名或 { widthMm, heightMm } 对象,landscape 必须是布尔值");if(typeof t=="string"&&!Object.prototype.hasOwnProperty.call(p.PAPER_SIZES,t))throw new Error(`未知纸张预设 "${t}"(可用:${Object.keys(p.PAPER_SIZES).join("/")})`);const n=Oe(t,void 0,e.landscape),r=n.widthMm,o=n.heightMm;return F(r,"纸张 widthMm"),F(o,"纸张 heightMm"),{widthMm:r,heightMm:o}}function cn(e){if(e.margins!==void 0&&(!e.margins||typeof e.margins!="object"||Array.isArray(e.margins)))throw new Error("margins 必须是页边距对象");const t=e.margins??{},n={marginTopMm:t.marginTopMm===void 0?10:t.marginTopMm,marginBottomMm:t.marginBottomMm===void 0?10:t.marginBottomMm,marginLeftMm:t.marginLeftMm===void 0?10:t.marginLeftMm,marginRightMm:t.marginRightMm===void 0?10:t.marginRightMm};for(const[r,o]of Object.entries(n))F(o,r,!0);return n}function dn(e,t){const n=e.dataset===void 0?"detail":e.dataset;if(typeof n!="string"||!n.trim())throw new Error("dataset 必须是非空字符串");if(e.title!==void 0&&typeof e.title!="string")throw new Error("title 必须是字符串");const r=e.titleHeightMm===void 0?10:e.titleHeightMm,o=e.titleGapMm===void 0?4:e.titleGapMm;F(r,"titleHeightMm"),F(o,"titleGapMm",!0);const i=e.title!==void 0&&e.title.length>0,l=i?r+o:0;if(l>=t)throw new Error("标题高度与间距占满页面,必须为表格保留可用高度");return{dataset:n,titleHeightMm:r,hasTitle:i,titleSpaceMm:l}}function mn(e){if(e.listOptions!==void 0&&(!e.listOptions||typeof e.listOptions!="object"||Array.isArray(e.listOptions)))throw new Error("listOptions 必须是列表配置对象");const t=e.listOptions??{};le(t.align,"listOptions.align",!0),le(t.headerAlign,"listOptions.headerAlign",!1);for(const n of["fontSizePt","rowHeightMm","paddingMm"]){const r=t[n];r!==void 0&&F(r,`listOptions.${n}`,n==="paddingMm")}return t}function hn(e){let t=0,n=0;for(const[r,o]of e.entries()){if(!o||typeof o.header!="string"||typeof o.field!="string"||!o.field.trim())throw new Error(`columns[${r}] 需要字符串 header 与非空 field`);le(o.align,`columns[${r}].align`,!0),le(o.headerAlign,`columns[${r}].headerAlign`,!1),o.flex!==void 0&&F(o.flex,`columns[${r}].flex`),o.widthMm!==void 0?(F(o.widthMm,`columns[${r}].widthMm`),t+=o.widthMm):n=Math.max(n,o.flex??1)}return{fixedWidthMm:t,maxFlex:n}}function pn(e,t,n,r){const{fixedWidthMm:o,maxFlex:i}=hn(e.columns);if(t==="page"&&o>r)throw new Error(`固定列宽 ${o}mm 超出页面可用宽度 ${r}mm`);const l=r-o;if(t==="page"&&i>0&&l<=0)throw new Error("固定列占满页面可用宽度,自动列需要正的剩余宽度");const s=i>0?e.columns.reduce((c,d)=>c+(d.widthMm===void 0?(d.flex??1)/i:0),0):0;return{columns:e.columns.map(({widthMm:c,flex:d,...m},h)=>{const g=c??(t==="wide"?n*(d??1):l*((d??1)/i)/s);return F(g,`columns[${h}] 分配后的 widthMm`),{...m,widthMm:g}}),fixedWidthMm:o,maxFlex:i}}function gn(e){if(!e||typeof e!="object")throw new Error("标准明细模板需要 options 对象");if(!Array.isArray(e.columns)||e.columns.length===0)throw new Error("columns 至少需要一列");const{layout:t,columnWidthMm:n}=sn(e),r=ln(e);let o=r.widthMm;const i=r.heightMm,l=cn(e);let s=o-l.marginLeftMm-l.marginRightMm;const a=i-l.marginTopMm-l.marginBottomMm;if(t==="page"&&s<=0||a<=0)throw new Error("页边距占满纸张,必须保留正的可用宽度和高度");const{dataset:c,titleHeightMm:d,hasTitle:m,titleSpaceMm:h}=dn(e,a),g=mn(e),{columns:u,fixedWidthMm:P,maxFlex:S}=pn(e,t,n,s);t==="wide"&&(s=u.reduce((E,y)=>E+y.widthMm,0),F(s,"宽表总列宽"),o=s+l.marginLeftMm+l.marginRightMm,F(o,"宽表总宽度"));const M={widthMm:o,heightMm:i,...l,components:[],...t==="wide"?{layout:t}:{}};return m&&M.components.push({kind:"text",text:e.title,leftMm:l.marginLeftMm,topMm:l.marginTopMm,widthMm:s,heightMm:d,style:{fontSize:16,bold:!0,align:"center",verticalAlign:"middle",...e.titleStyle}}),M.components.push({align:"auto",headerAlign:"center",...g,kind:"list",...t==="wide"?{layout:t}:{},...m?{title:e.title}:{},dataset:c,columns:u,leftMm:l.marginLeftMm,topMm:l.marginTopMm+h,widthMm:t==="wide"||S>0?s:P}),e.params===void 0?{pages:[M]}:{params:e.params,pages:[M]}}function un(e){if(e.components!==void 0&&e.pages!==void 0)throw new TypeError("标签 components 与 pages 只能选择一种");const{dataset:t,rowKey:n,copies:r,params:o}=e,i=e.pages??[{components:e.components??[]}],l={repeat:{dataset:t,...n===void 0?{}:{rowKey:n},...r===void 0?{}:{copies:r}},...o===void 0?{}:{params:o},pages:i.map(a=>({widthMm:a.widthMm??e.widthMm??80,heightMm:a.heightMm??e.heightMm??55,marginTopMm:0,marginRightMm:0,marginBottomMm:0,marginLeftMm:0,components:a.components,...a.meta===void 0?{}:{meta:a.meta}}))},s=R.validateReportTemplate(l);if(!s.ok)throw new R.ReportTemplateError(s.errors);return JSON.parse(JSON.stringify(l))}function fn(e){if(!e||typeof e!="object"||!e.repeat)throw new f.ReportSourceError("config","defineLabelReport 需要带 repeat 的固定标签模板");const t=R.validateReportTemplate(e);if(!t.ok)throw new R.ReportTemplateError(t.errors);return e.repeat.dataset}function He(e,t){if(!Array.isArray(e))throw new f.ReportSourceError("validate","标签数据应为对象数组;请从业务响应中提取行数组");return{[t]:e}}function wn(e){const{template:t,rows:n,load:r,dataSchema:o,params:i,pagination:l,dataValidation:s}=e,a=fn(t);if(n!==void 0==(r!==void 0)||r!==void 0&&typeof r!="function")throw new f.ReportSourceError("config","标签报表应且只能配置 rows 或 load 其中一种数据来源");const c={template:t,params:i,pagination:l,dataValidation:s,...o===void 0?{}:{dataSchema:{[a]:o}}};return r?f.defineReport({...c,load:r,mapData:d=>He(d,a)}):{...c,datasets:He(n,a)}}function bn(e){return e}class z extends Error{constructor(t,n){super(n),this.code=t,this.name="ReportTemplateMigrationError"}}function Ue(e){let t=e;if(typeof t=="string"){if(t.length>1e7)throw new z("result","模板迁移输入超过预算");try{t=JSON.parse(t)}catch{throw new z("result","模板 JSON 语法无效")}}const n=f.snapshotReportJson(t,{maxBytes:1e7,error:(r,o)=>new z("result",o)});if(!n||typeof n!="object"||Array.isArray(n))throw new z("result","模板迁移应返回文档对象");return n}function yn(e){if(!Array.isArray(e)||e.length>32)throw new z("definition","模板迁移最多声明 32 步");const t=new Map;for(const n of e){if(!n||![n.from,n.to].every(r=>typeof r=="string"&&r.trim()&&r.length<=64)||n.from===n.to||t.has(n.from)||typeof n.migrate!="function"||n.from===R.REPORT_TEMPLATE_DOCUMENT_VERSION)throw new z("definition","迁移起点应唯一,不得从当前版本降级");t.set(n.from,{...n})}for(const n of t.keys()){const r=new Set;let o=n;for(;t.has(o);){if(r.has(o))throw new z("definition","模板迁移链存在循环");r.add(o),o=t.get(o).to}if(o!==R.REPORT_TEMPLATE_DOCUMENT_VERSION)throw new z("definition","每条迁移链应到达当前模板版本")}return t}function dt(e=[]){const t=yn(e);return async n=>{let r=Ue(n);const o=[];for(;r.schemaVersion!==R.REPORT_TEMPLATE_DOCUMENT_VERSION;){const i=typeof r.schemaVersion=="string"?t.get(r.schemaVersion):void 0;if(!i)throw new z("unsupported","未声明此模板版本的迁移路径");const l=r.id,s=Ue(await i.migrate(r));if(s.schemaVersion!==i.to||typeof l=="string"&&s.id!==l)throw new z("result","迁移结果版本不匹配或改变了模板身份");o.push({from:i.from,to:i.to}),r=s}return{document:R.parseReportTemplate(r),steps:o}}}class _ extends Error{constructor(t,n){super(n),this.code=t,this.name="ReportTemplateStoreError"}}function j(e){return JSON.parse(JSON.stringify(e))}function A(e){if(!e?.aborted)return;const t=new Error("模板操作已取消");throw t.name="AbortError",t}function Ve(e){const t=e?Number(e.revision):0;if(!Number.isSafeInteger(t)||t<0||t>=Number.MAX_SAFE_INTEGER)throw new _("history","修订号无效或已达上限");return String(t+1)}function Mn(e,t={}){const n=t.migrations?dt(t.migrations):void 0,r=async a=>n?(await n(a)).document:R.parseReportTemplate(a),o=async(a,c)=>{A(c);const d=await e.read(a,c);return A(c),d?j(d):void 0},i=async(a,c)=>{const d=await o(a,c.signal);if((d?.revision??null)!==c.expectedRevision)throw new _("conflict","模板已变化,请重新读取后提交");return d},l=async(a,c,d)=>{if(A(c.signal),!await e.compareAndSwap(a.id,c.expectedRevision,j(a),{signal:c.signal,...d?{publication:j(d)}:{}}))throw new _("conflict","模板已被其他请求更新");return j(a)},s=async(a,c,d,m)=>{if(t.beforePublish){A(d.signal);const P=a.published?await r(a.published):void 0;A(d.signal);const S=await t.beforePublish({document:R.parseReportTemplate(c),previous:P,signal:d.signal});if(!S||S.ok!==!0)throw new _("review",S?.issues?.find(M=>M.severity==="error")?.message??"模板发布检查未通过");A(d.signal)}const h=Ve(a),g=R.parseReportTemplate({...c,revision:h}),u={revision:h,document:g,publishedAt:(t.now?.()??new Date).toISOString()};return m!==void 0&&(u.restoredFrom=m),l({id:a.id,revision:h,publishedRevision:h,published:g},d,u)};return{list:async a=>{A(a);const c=await e.list(a);return A(a),j(c)},get:async(a,c={})=>{const d=await o(a,c.signal),m=c.draft?d?.draft:d?.published,h=m?await r(m):void 0;return A(c.signal),h},history:async(a,c)=>{A(c);const d=await e.history(a,c);return A(c),j(d)},saveDraft:async(a,c)=>{c={...c},A(c.signal);const d=await r(t.migrate?await t.migrate(a):a),m=await i(d.id,c),h=Ve(m);return l({id:d.id,revision:h,draft:{...d,revision:h},...m?.publishedRevision?{publishedRevision:m.publishedRevision,published:m.published}:{}},c)},publish:async(a,c)=>{c={...c};const d=await i(a,c);if(!d)throw new _("missing","模板不存在");if(!d.draft)throw new _("draft","没有可发布的草稿");return s(d,await r(d.draft),c)},rollback:async(a,c,d)=>{d={...d};const m=await i(a,d);if(!m)throw new _("missing","模板不存在");A(d.signal);const h=await e.getVersion(a,c,d.signal);if(!h)throw new _("history","历史修订不存在");return s(m,await r(h.document),d,c)}}}function vn(){const e=new Map,t=new Map;return{read:async(n,r)=>{A(r);const o=e.get(n);return o?j(o):void 0},list:async n=>(A(n),Array.from(e.values(),({id:r,revision:o,publishedRevision:i})=>({id:r,revision:o,...i?{publishedRevision:i}:{}}))),history:async(n,r)=>(A(r),Array.from(t.get(n)?.values()??[],o=>j(o))),getVersion:async(n,r,o)=>{A(o);const i=t.get(n)?.get(r);return i?j(i):void 0},compareAndSwap:async(n,r,o,i)=>{if(A(i.signal),(e.get(n)?.revision??null)!==r)return!1;if(o.id!==n)throw new _("history","状态 ID 与存储 ID 不一致");const l=j(o),s=i.publication;if(s){const a=t.get(n)??new Map;if(a.has(s.revision)||s.revision!==o.revision||s.document.id!==n)throw new _("history","发布修订不可覆盖,且必须与状态修订和模板 ID 一致");a.set(s.revision,j(s)),t.set(n,a)}return e.set(n,l),!0}}}class w extends Error{constructor(t,n,r="$",o){super(n),this.code=t,this.path=r,this.extensionId=o,this.name="ReportComponentExtensionError"}}const En=new Set(["__proto__","constructor","prototype"]);function ee(e,t="$",n={nodes:0,units:0},r=0){if(++n.nodes>2048||r>16)throw new w("binding","Component extension JSON exceeds its depth/node budget.",t);if(n.units>64*1024)throw new w("binding","Component extension JSON exceeds 64 Ki UTF-16 units.",t);if(e===null||typeof e=="boolean"||typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){if(n.units+=e.length,n.units>64*1024)throw new w("binding","Component extension JSON exceeds 64 Ki UTF-16 units.",t);return e}if(!e||typeof e!="object")throw new w("binding","Component extension values must be finite JSON data.",t);const o=Object.getPrototypeOf(e);if(Array.isArray(e))return Rn(e,t,n,r);if(o!==Object.prototype&&o!==null)throw new w("binding","Component extension values must be plain JSON objects.",t);return Tn(e,t,n,r)}function De(e,t,n){const r=Object.getOwnPropertyDescriptor(e,t);if(typeof t!="string"||En.has(t)||!r?.enumerable||r.get||r.set)throw new w("binding","Component extension JSON contains an unsafe key or accessor.",n);return r.value}function Rn(e,t,n,r){if(Object.getPrototypeOf(e)!==Array.prototype||e.length>2048||Reflect.ownKeys(e).length!==e.length+1)throw new w("binding","Component extension arrays must be plain dense JSON arrays.",t);return Object.freeze(Array.from({length:e.length},(o,i)=>ee(De(e,String(i),`${t}[${i}]`),`${t}[${i}]`,n,r+1)))}function Tn(e,t,n,r){const o=Reflect.ownKeys(e);if(o.length>2048)throw new w("binding","Component extension JSON exceeds its node budget.",t);const i=o.map(l=>{const s=`${t}.${String(l)}`,a=De(e,l,s);return n.units+=String(l).length,[l,ee(a,s,n,r+1)]});return Object.freeze(Object.fromEntries(i))}function re(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new w("binding","Expected a component extension object.",t);return e}function ue(e,t,n){for(const r of Object.keys(e))if(!t.includes(r))throw new w("binding","Unknown component extension property.",`${n}.${r}`)}function ve(e,t,n=160){if(typeof e!="string"||!e.trim()||e.length>n)throw new w("definition","Component extension labels must be bounded nonempty strings.",t)}function mt(e,t){if(typeof e!="string"||!/^[a-z][a-z\d_.-]{0,127}$/i.test(e))throw new w("definition","Invalid component extension id.","$.id");if(typeof t!="string"||t.length>64||!/^\d+\.\d+\.\d+(?:-[\da-z.-]+)?(?:\+[\da-z.-]+)?$/i.test(t))throw new w("definition","Component extension version must be explicit semantic version text.","$.version",e)}function ke(e,t,n){if(!(e===null&&!t.required)){if(typeof e!==t.type||typeof e=="number"&&!Number.isFinite(e))throw new w("binding",`Expected ${t.type} component property.`,n);if(t.options&&!t.options.some(r=>Object.is(r,e)))throw new w("binding","Component property is outside its declared options.",n);if(typeof e=="number"&&(e<(t.min??-1/0)||e>(t.max??1/0)))throw new w("binding","Component property is outside its declared range.",n);if(typeof e=="string"&&e.length>(t.maxLength??64*1024))throw new w("binding","Component property exceeds maxLength.",n)}}function xn(e,t){const n=re(e,t);ue(n,["label","type","required","default","options","min","max","maxLength"],t);const r=n;if(ve(r.label,`${t}.label`),!["string","number","boolean"].includes(r.type))throw new w("definition","Unknown component property type.",t);if(r.required!==void 0&&typeof r.required!="boolean")throw new w("definition","Component property required must be boolean.",t);Sn(r,t),r.default!==void 0&&ke(r.default,r,`${t}.default`)}function Sn(e,t){for(const n of["min","max"])if(e[n]!==void 0&&(e.type!=="number"||!Number.isFinite(e[n])))throw new w("definition","Numeric property bounds must be finite numbers.",t);if((e.min??-1/0)>(e.max??1/0))throw new w("definition","Component property min exceeds max.",t);if(e.maxLength!==void 0&&(e.type!=="string"||!Number.isSafeInteger(e.maxLength)||e.maxLength<0||e.maxLength>64*1024))throw new w("definition","Invalid component property maxLength.",t);if(e.options!==void 0){if(!Array.isArray(e.options)||!e.options.length||e.options.length>64)throw new w("definition","Component property options must contain 1 to 64 values.",t);for(const n of e.options)ke(n,{...e,options:void 0},`${t}.options`)}}function Cn(e){const t=Object.getPrototypeOf(e);if(t!==Object.prototype&&t!==null)throw new w("definition","Component extension metadata must be a plain object.");const n=Reflect.ownKeys(e).filter(o=>o!=="load").map(o=>[o,De(e,o,`$.${String(o)}`)]),r=ee(Object.fromEntries(n));if(ue(r,["id","version","kind","label","description","properties"],"$"),mt(r.id,r.version),ve(r.label,"$.label"),!["image","chart","barcode","qrcode"].includes(r.kind))throw new w("definition","Extension kind must use the existing image-backed output pipeline.","$.kind");if(r.description!==void 0&&ve(r.description,"$.description",2048),r.properties!==void 0){const o=re(r.properties,"$.properties");if(Object.keys(o).length>64)throw new w("definition","Component extension supports at most 64 properties.","$.properties");for(const[i,l]of Object.entries(o))xn(l,`$.properties.${i}`)}return r}function ht(e,t){const n=re(ee(t??{}),"$.props"),r={};for(const o of Object.keys(n))if(!Object.prototype.hasOwnProperty.call(e.properties??{},o))throw new w("binding","Unknown component property.",`$.props.${o}`,e.id);for(const[o,i]of Object.entries(e.properties??{})){const l=Object.prototype.hasOwnProperty.call(n,o)?n[o]:i.default;if(l===void 0){if(i.required)throw new w("binding","Required component property is missing.",`$.props.${o}`,e.id);continue}ke(l,i,`$.props.${o}`),r[o]=l}return Object.freeze(r)}const J="componentExtension";function Pn(e){const t=Object.getOwnPropertyDescriptor(e,"meta")?.value,n=t&&Object.getOwnPropertyDescriptor(t,J);if(n){if(n.get||n.set)throw new w("binding","Component extension binding cannot be an accessor.",`$.meta.${J}`);return n.value}}function An(e,t){const n=re(ee(Pn(t)),`$.meta.${J}`);ue(n,["id","version","props","binding"],`$.meta.${J}`),mt(n.id,n.version);const r=e.get(n.id);if(!r)throw new w("binding","Component extension is not registered in this runtime.",`$.meta.${J}.id`,n.id);if(r.metadata.version!==n.version||r.metadata.kind!==t.kind)throw new w("binding","Component extension version or image kind does not match its registration.",`$.meta.${J}`,r.metadata.id);const o=Object.freeze({id:r.metadata.id,version:r.metadata.version,props:ht(r.metadata,n.props),...n.binding===void 0?{}:{binding:n.binding}});return{entry:r,extension:o}}function qe(e){return e.released??=Promise.resolve().then(()=>e.renderer?.dispose?.())}function Z(e){if(e)throw new w("disposed","Component registry has been disposed.")}function $n(e){if(!e||typeof e!="object")throw new w("definition","Component extension definition must be an object.");if(Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)throw new w("definition","Component extension definition must be a plain object.");const t=Object.getOwnPropertyDescriptor(e,"load");if(!t||t.get||t.set||typeof t.value!="function")throw new w("definition","Component extension needs a trusted runtime loader.","$.load");return{metadata:Cn(e),load:t.value}}function On(e,t){if(!(e&&typeof e.render=="function"&&(e.dispose===void 0||typeof e.dispose=="function"))){if(e&&typeof e.dispose=="function")try{Promise.resolve(e.dispose()).catch(()=>{})}catch{}throw new w("load","Component loader must return render and optional dispose methods.","$.load",t)}}function Dn(e,t){const n=new AbortController,r=()=>n.abort(e.reason),o=()=>n.abort(t.reason);return e.aborted?r():e.addEventListener("abort",r,{once:!0}),t.aborted?o():t.addEventListener("abort",o,{once:!0}),{signal:n.signal,dispose(){e.removeEventListener("abort",r),t.removeEventListener("abort",o)}}}function kn(e){if(!Array.isArray(e)||e.length>128)throw new w("definition","Register at most 128 component extensions.");const t=new Map,n=new AbortController;let r=!1,o;for(const a of e){const c=$n(a),d=c.metadata.id;if(t.has(d))throw new w("definition","Component extension id is already registered.","$.id",d);t.set(d,c)}function i(a){return Z(r),a.pending||(a.pending=Promise.resolve().then(()=>(Z(r),a.load(n.signal))).then(async c=>(On(c,a.metadata.id),a.renderer=c,r&&(await qe(a),Z(r)),c)).catch(c=>{throw a.pending=void 0,c instanceof w?c:Object.assign(new w("load","Component extension loader failed.","$.load",a.metadata.id),{cause:c})})),a.pending}const l=async a=>{Z(r);const{entry:c,extension:d}=An(t,a.component),m=Dn(a.signal,n.signal);try{const h=await ye.waitForOutput(i(c),m.signal);return await ye.waitForOutput(h.render({...a,signal:m.signal,extension:d}),m.signal)}finally{m.dispose()}},s={assets:Object.freeze({get assetRegistry(){return s}}),describe(a){return Z(r),Object.freeze([...t.values()].map(c=>c.metadata).filter(c=>!a||c.kind===a))},hasExtension(a,c,d){const m=t.get(a)?.metadata;return!r&&m?.version===c&&m.kind===d},rendererFor(a){const c=Object.getOwnPropertyDescriptor(a,"meta")?.value;return c&&Object.prototype.hasOwnProperty.call(c,J)?l:void 0},createComponent(a,c={}){Z(r);const d=t.get(a);if(!d)throw new w("binding","Component extension is not registered in this runtime.","$.id",a);const m=re(ee(c),"$");ue(m,["props","binding"],"$");const h={id:a,version:d.metadata.version,props:ht(d.metadata,m.props),...m.binding===void 0?{}:{binding:m.binding}};return{kind:d.metadata.kind,meta:{[J]:Object.freeze(h)}}},dispose(){return o||(r=!0,n.abort(new w("disposed","Component registry has been disposed.")),o=Promise.allSettled([...t.values()].filter(a=>a.renderer).map(qe)).then(a=>{const c=a.find(d=>d.status==="rejected");if(c?.status==="rejected")throw c.reason}),o)}};return s}function Ln(e){return e.map(t=>t.map(n=>/[\t\r\n"]/.test(n)?`"${n.replace(/"/g,'""')}"`:n).join(" ")).join(`\r
6
+ `)}function In(e,t){const n=e[e.length-1];e.length>1&&n?.length===1&&n[0]===""&&/[\r\n]$/.test(t)&&e.pop()}function Nn(e,t=1e4){if(e.length>4*1024*1024)throw new Error("Clipboard text limit exceeded");const n=[[]];let r="",o=!1,i=!1,l=0;function s(){if(++l>t)throw new Error("Clipboard cell limit exceeded");n[n.length-1].push(r),r="",i=!1}for(let a=0;a<e.length;a++){const c=e[a];if(o){if(c!=='"'){r+=c;continue}if(e[a+1]==='"'){r+='"',a++;continue}o=!1,i=!0;continue}if(c==='"'&&!r&&!i){o=!0;continue}if(c===" "){s();continue}if(c==="\r"||c===`
7
+ `){s(),n.push([]),c==="\r"&&e[a+1]===`
8
+ `&&a++;continue}if(i)throw new Error("Invalid quoted clipboard value");r+=c}if(o)throw new Error("Unclosed clipboard quote");return s(),In(n,e),n}class pt extends Error{constructor(t,n,r){const o=typeof n.label=="string"?n.label:"单元格",i={definition:`${o}的编辑器配置无效`,type:`${o}的编辑器与数据类型不一致`,required:`${o}不能为空`,min:`${o}不能小于 ${r}`,max:`${o}不能大于 ${r}`,precision:`${o}最多保留 ${r} 位小数`,length:`${o}最多允许 ${r} 个字符`,choice:`${o}请选择有效选项`,date:`${o}请输入有效日期(YYYY-MM-DD)`};super(i[t]),this.code=t,this.field=n,this.expected=r,this.name="ReportCellFieldError"}}function v(e,t,n){throw new pt(t,e,n)}function gt(e){if(typeof e!="string"||!/^\d{4}-\d{2}-\d{2}$/.test(e)||e.startsWith("0000-"))return!1;const t=new Date(`${e}T00:00:00.000Z`);return Number.isFinite(t.getTime())&&t.toISOString().slice(0,10)===e}function Fn(e){const[t="",n="0"]=String(e).toLowerCase().split("e");return Math.max(0,(t.split(".")[1]?.length??0)-Number(n))}function _n(e,t){e.min!==void 0&&t<e.min&&v(e,"min",e.min),e.max!==void 0&&t>e.max&&v(e,"max",e.max),e.precision!==void 0&&Fn(t)>e.precision&&v(e,"precision",e.precision)}function jn(e,t){gt(t)||v(e,"date"),e.min!==void 0&&t<e.min&&v(e,"min",e.min),e.max!==void 0&&t>e.max&&v(e,"max",e.max)}function zn(e){[e.min,e.max].some(t=>t!==void 0&&!Number.isFinite(t))&&v(e,"definition"),e.min!==void 0&&e.max!==void 0&&e.min>e.max&&v(e,"definition"),e.precision!==void 0&&(!Number.isInteger(e.precision)||e.precision<0||e.precision>15)&&v(e,"definition")}function Bn(e){[e.min,e.max].some(t=>t!==void 0&&!gt(t))&&v(e,"definition"),e.min!==void 0&&e.max!==void 0&&e.min>e.max&&v(e,"definition")}function Hn(e,t){(!Array.isArray(t.options)||!t.options.length)&&v(t,"definition");const n=e.valueType==="text"?"string":e.valueType,r=new Set;for(const o of t.options)(!o||typeof o.value!==n||typeof o.value=="number"&&!Number.isFinite(o.value))&&v(t,"definition"),o.label!==void 0&&typeof o.label!="string"&&v(t,"definition"),r.has(o.value)&&v(t,"definition"),r.add(o.value)}function Un(e){e.required!==void 0&&typeof e.required!="boolean"&&v(e,"definition"),[e.label,e.hint,e.unit].some(t=>t!==void 0&&typeof t!="string")&&v(e,"definition"),e.type==="boolean"&&[e.trueLabel,e.falseLabel].some(t=>t!==void 0&&typeof t!="string")&&v(e,"definition")}function ut(e,t){(!t||typeof t!="object"||Array.isArray(t)||!["text","number","boolean","enum","date"].includes(t.type))&&v(t??{type:"text"},"definition"),Un(t),(t.type==="number"||t.type==="boolean")&&e.valueType!==t.type&&v(t,"type"),(t.type==="text"||t.type==="date")&&e.valueType!=="text"&&v(t,"type"),t.type==="number"&&zn(t),t.type==="text"&&t.maxLength!==void 0&&(!Number.isInteger(t.maxLength)||t.maxLength<0)&&v(t,"definition"),t.type==="date"&&Bn(t),t.type==="enum"&&Hn(e,t)}function Vn(e,t,n){if(!e.editable)throw new f.ReportCellEditError("readonly");n&&ut(e,n);const r=f.parseReportCellInput(e,t);return n?(n.required&&typeof r=="string"&&!r.trim()&&v(n,"required"),r===null||r===""?(n.required&&v(n,"required"),r):(n.type==="number"&&_n(n,r),n.type==="date"&&jn(n,r),n.type==="text"&&n.maxLength!==void 0&&[...String(r)].length>n.maxLength&&v(n,"length",n.maxLength),n.type==="enum"&&!n.options.some(o=>Object.is(o.value,r))&&v(n,"choice"),r)):r}class T extends Error{constructor(t){super(`Report calculation: ${t}`),this.code=t,this.name="ReportCalculationError"}}function Q(e){if(!e?.aborted)return;const t=new Error("Calculation cancelled");throw t.name="AbortError",t}async function ce(e,t=1){const n=Math.floor(e.scanned/2048);if(e.scanned+=t,e.scanned>e.maxScanned)throw new T("limit");Q(e.signal),Math.floor(e.scanned/2048)>n&&(await e.yieldToHost(),Q(e.signal))}function Le(e){return e.table?.role==="header"?-Math.max(1,e.grid?.cells.length??1):e.table?.rowIndex??0}function We(e,t,n){if(![t.pageIndex,t.componentIndex,t.rowIndex,t.columnIndex].every(s=>Number.isSafeInteger(s)&&s>=0))throw new T("selection");const r=e.pages[t.pageIndex]?.components[t.componentIndex];if(!r?.grid||t.rowIndex>=r.grid.cells.length)throw new T("selection");const o=r.grid.colWidthsMm?.length??r.grid.cells.reduce((s,a)=>Math.max(s,a.length),1);if(t.columnIndex>=o)throw new T("selection");const i=r.table,l=e.pages[n.pageIndex]?.components[n.componentIndex]?.table;if(i&&l&&i.id===l.id){const s=l.columnKeys.indexOf(i.columnKeys[t.columnIndex]??"");if(s<0)throw new T("selection");return{grid:i.id,row:Le(r)+t.rowIndex,column:s}}return{grid:`${t.pageIndex}:${t.componentIndex}`,row:t.rowIndex,column:t.columnIndex}}function qn(e,t,n){const r=We(e,t.anchor,t.anchor),o=We(e,t.focus,t.anchor);if(r.grid!==o.grid)throw new T("selection");const i=(Math.abs(r.row-o.row)+1)*(Math.abs(r.column-o.column)+1);if(!Number.isSafeInteger(i)||i>n)throw new T("limit");return{grid:r.grid,rowStart:Math.min(r.row,o.row),rowEnd:Math.max(r.row,o.row),columnStart:Math.min(r.column,o.column),columnEnd:Math.max(r.column,o.column),origin:e.pages[t.anchor.pageIndex].components[t.anchor.componentIndex].table}}function Wn(e){if(!e)return!1;const t=e.replace(/"[^"]*"|\\.|\[(?![hms]+\])[^\]]*\]/gi,"");return/[ymdhs]/i.test(t)}function Gn(e){if(e.valueType==="text"||e.valueType==="boolean"||Wn(e.numberFormat))return null;const t=e.value;if(typeof t!="number"||!Number.isFinite(t))return null;if(Number.isInteger(t)&&!Number.isSafeInteger(t))throw new T("precision");return t}function Jn(e,t,n){if(e.seen.has(n))return;e.seen.add(n),e.selected++;const r=t?Gn(t):null;r===null?e.excluded++:e.values.push(r)}function Yn(e,t,n,r){return r.origin?e.table?.id===r.origin.id:`${t}:${n}`===r.grid}function Kn(e,t,n){return n.origin?n.origin.columnKeys.indexOf(e.table.columnKeys[t]??""):t}function Xn(e,t,n,r){const o=r.origin?Le(e)+t:t,i=Kn(e,n,r);return o<r.rowStart||o>r.rowEnd||i<r.columnStart||i>r.columnEnd?null:`${r.grid}:${o}:${i}`}function Zn(e,t){const n=t.origin?Le(e):0,r=Math.max(0,t.rowStart-n),o=Math.min(e.grid.cells.length,t.rowEnd-n+1);return o>r?o:0}async function Qn(e,t,n,r,o){const i=e.grid;if(t>r.maxScanned)throw new T("limit");const l=i.colWidthsMm?.length??i.cells.reduce((a,c)=>Math.max(a,c.length),1);if(l>r.maxScanned)throw new T("limit");const s=new Map;for(let a=0;a<t;a++){a>0&&a%2048===0&&(await r.yieldToHost(),Q(r.signal));let c=0;for(const d of i.cells[a]){for(await ce(r);c<l&&(s.get(c)??0)>a;)c++;if(c>=l)break;const m=Math.max(1,Math.min(d?.colSpan??1,l-c)),h=Math.min(i.cells.length,a+Math.max(1,d?.rowSpan??1));m>1&&await ce(r,m-1);for(let u=c;u<c+m;u++)s.set(u,h);const g=Xn(e,a,c,n);g&&Jn(o,d,g),c+=m}}}async function er(e,t,n){const r={values:[],seen:new Set,excluded:0,selected:0};for(let o=0;o<e.pages.length;o++){await ce(n);const i=e.pages[o];for(let l=0;l<i.components.length;l++){await ce(n);const s=i.components[l];if(!s.grid||!Yn(s,o,l,t)||s.table&&s.table.role!=="body")continue;const a=Zn(s,t);a&&await Qn(s,a,t,n,r)}}return r}function te(e){if(!Number.isFinite(e))throw new T("overflow");return e}function tr(e){let t=0,n=0;for(const r of e){const o=r-n,i=te(t+o);n=i-t-o,t=i}return t}async function Ge(e,t){let n=[...e],r=new Array(e.length);for(let i=1;i<e.length;i*=2){for(let l=0;l<e.length;l+=i*2){const s=Math.min(l+i,e.length),a=Math.min(l+i*2,e.length);let c=l,d=s;for(let m=l;m<a;m++)r[m]=d>=a||c<s&&n[c]<=n[d]?n[c++]:n[d++],m%2048===0&&(await t.yieldToHost(),Q(t.signal))}[n,r]=[r,n]}const o=Math.floor(n.length/2);return n.length%2?n[o]:te(n[o-1]/2+n[o]/2)}function nr(e){const t=tr(e);let n=1/0,r=-1/0;for(const o of e)n=Math.min(n,o),r=Math.max(r,o);return{SUM:t,AVERAGE:t/e.length,AVG:t/e.length,MIN:n,MAX:r,COUNT:e.length}}function ft(e,t){if(typeof e!="string"||e.length>256)throw new T("expression");const n=e.toUpperCase().match(/(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?|[A-Z_]+|[()+\-*/]|\S/g)??[];if(!n.length||n.length>64)throw new T("expression");let r=0;function o(s){if(s>16)throw new T("expression");const a=n[r++];if(a==="+"||a==="-")return(a==="-"?-1:1)*o(s+1);if(a==="("){const c=i(0,s+1);if(n[r++]!==")")throw new T("expression");return c}if(a&&/^(?:SUM|AVERAGE|AVG|MIN|MAX|COUNT|MEDIAN)$/.test(a)&&Object.prototype.hasOwnProperty.call(t,a))return te(t[a]);if(a&&/^(?:\d+(?:\.\d*)?|\.\d+)(?:E[+-]?\d+)?$/.test(a))return te(Number(a));throw new T("expression")}function i(s,a){let c=o(a);for(;r<n.length;){const d=n[r],m=d==="+"||d==="-"?1:d==="*"||d==="/"?2:0;if(!m||m<s)break;r++;const h=i(m+1,a+1);if(d==="/"&&h===0)throw new T("division");c=te(d==="+"?c+h:d==="-"?c-h:d==="*"?c*h:c/h)}return c}const l=i(1,0);if(r!==n.length)throw new T("expression");return l}function rr(e){const t=e.maxCells??1e5,n=e.maxScannedCells??2e5,r=e.precision??2;if(![t,n].every(o=>Number.isSafeInteger(o)&&o>=1&&o<=2e6))throw new T("limit");if(!Number.isInteger(r)||r<0||r>12)throw new T("precision");return{maxCells:t,maxScanned:n,precision:r}}async function or(e,t,n={}){const r=rr(n),o={scanned:0,maxScanned:r.maxScanned,signal:n.signal,yieldToHost:n.yieldToHost??(()=>new Promise(a=>setTimeout(a,0)))};Q(o.signal);const i=await er(e,qn(e,t,r.maxCells),o),l=n.operation??"sum";if(!["sum","average","min","max","count","median","expression"].includes(l))throw new T("expression");let s=null;if(l==="count")s=i.values.length;else if(i.values.length)if(l==="median")s=await Ge(i.values,o);else{const a=nr(i.values);l==="expression"?(/\bMEDIAN\b/i.test(n.expression??"")&&(a.MEDIAN=await Ge(i.values,o)),s=ft(n.expression??"",a)):s=a[l.toUpperCase()]}if(Q(o.signal),s!==null&&Number.isInteger(s)&&!Number.isSafeInteger(s))throw new T("precision");return{value:s,formatted:s===null?"—":s.toFixed(r.precision),numericCells:i.values.length,excludedCells:i.excluded,selectedCells:i.selected,precision:r.precision}}class I extends Error{constructor(t,n){super(t),this.path=n,this.code="label-sheet",this.name="LabelSheetError"}}function se(e){if(e?.aborted){const t=new Error("标签拼版已取消");throw t.name="AbortError",t}}function Y(e,t,n=!1){if(!Number.isFinite(e)||e<=0||n&&!Number.isSafeInteger(e))throw new I("应为正有限数字,数量应为安全整数",t);return e}function Je(e,t){if(!Number.isFinite(e)||e<0)throw new I("应为非负有限数字",t);return e}function ir(e){const t=typeof e.marginMm=="object"?e.marginMm:{top:e.marginMm??0,left:e.marginMm??0,bottom:e.marginMm??0,right:e.marginMm??0},n=typeof e.gapMm=="object"?e.gapMm:{horizontal:e.gapMm??0,vertical:e.gapMm??0};for(const r of["top","left","bottom","right"])Je(t?.[r],`$.marginMm.${r}`);for(const r of["horizontal","vertical"])Je(n?.[r],`$.gapMm.${r}`);return{margin:t,gap:n}}function ar(e){const t=e.paper===void 0||e.paper==="a4"?{widthMm:210,heightMm:297}:e.paper;Y(t.widthMm,"$.paper.widthMm"),Y(t.heightMm,"$.paper.heightMm");const n=Y(e.columns,"$.columns",!0),r=Y(e.rows,"$.rows",!0),o=n*r;if(o>1e3)throw new I("每张纸不能超过 1000 个位置","$.columns");const{margin:i,gap:l}=ir(e),s=e.startSlot??0,a=e.offsetMm??{x:0,y:0};if(!Number.isSafeInteger(s)||s<0||s>=o)throw new I("起始位置应在首张纸的有效位置内","$.startSlot");if(!Number.isFinite(a.x)||!Number.isFinite(a.y))throw new I("校准偏移应为有限毫米值","$.offsetMm");return{paper:t,columns:n,rows:r,capacity:o,margin:i,gap:l,startSlot:s,offset:a}}function wt(e){return 1+(e.grid?.cells.reduce((t,n)=>t+n.length+1+n.reduce((r,o)=>r+(o?.children?.reduce((i,l)=>i+wt(l),0)??0),0),0)??0)}function sr(e,t,n){if(!R.validateRenderPlan(e).ok)throw new I("标签计划无效","$.plan");const r=e.pages[0];if(!r)return;const{paper:o,columns:i,rows:l,margin:s,gap:a,offset:c}=n;if(s.left+c.x<0||s.top+c.y<0||s.left+c.x+i*r.pageWidthMm+(i-1)*a.horizontal+s.right>o.widthMm+1e-6||s.top+c.y+l*r.pageHeightMm+(l-1)*a.vertical+s.bottom>o.heightMm+1e-6)throw new I("标签、间距、边距及校准偏移超过纸张尺寸;不会自动缩小标签","$.paper");let d=0;for(const[m,h]of e.pages.entries()){if(se(t.signal),h.layout==="wide"||h.pageWidthMm!==r.pageWidthMm||h.pageHeightMm!==r.pageHeightMm)throw new I("拼版需要尺寸相同的固定标签页面",`$.pages.${m}`);if(d+=h.components.reduce((g,u)=>g+wt(u),0),d>Y(t.maxComponents??25e4,"$.maxComponents",!0))throw new I("拼版组件总量超过预算","$.maxComponents");for(const g of h.components)if(g.leftMm<0||g.topMm<0||g.leftMm+g.widthMm>h.pageWidthMm+1e-6||g.topMm+g.heightMm>h.pageHeightMm+1e-6)throw new I("标签内容超出标签边界",`$.pages.${m}.components`)}}function lr(e,t){se(t.signal);const n=ar(t),{paper:r,columns:o,capacity:i,margin:l,gap:s,startSlot:a,offset:c}=n,d=e.pages.length?Math.ceil((a+e.pages.length)/i):0;if(d>Y(t.maxSheets??1e4,"$.maxSheets",!0))throw new I("拼版纸张数量超过预算","$.maxSheets");Y(t.maxComponents??25e4,"$.maxComponents",!0),sr(e,t,n);const m=f.snapshotReportJson(e,{maxBytes:Y(t.maxSnapshotBytes??64e6,"$.maxSnapshotBytes",!0),check:()=>se(t.signal),error:(g,u)=>new I(u,"$.maxSnapshotBytes")}),h=Array.from({length:d},()=>({pageWidthMm:r.widthMm,pageHeightMm:r.heightMm,components:[],meta:{labelSheet:{columns:o,rows:n.rows,slots:[]}}}));for(const[g,u]of m.pages.entries()){se(t.signal);const P=a+g,S=P%i,M=h[Math.floor(P/i)],E=l.left+c.x+S%o*(u.pageWidthMm+s.horizontal),y=l.top+c.y+Math.floor(S/o)*(u.pageHeightMm+s.vertical),U={sourcePageIndex:g,slotIndex:S,xMm:E,yMm:y,widthMm:u.pageWidthMm,heightMm:u.pageHeightMm,...u.meta?{sourceMeta:u.meta}:{}};M.meta.labelSheet.slots.push(U),M.components.push(...u.components.map(V=>({...V,leftMm:V.leftMm+E,topMm:V.topMm+y,meta:{...V.meta,labelSheet:U}})))}return{...m,pages:h}}function cr(e){if(!e||!["today","yesterday","month-start","month-end"].includes(e.preset))throw new TypeError("未知日期默认值");const t=e.now instanceof Date?e.now.getTime():e.now;if(typeof t!="number"||!Number.isFinite(t)||!Number.isFinite(new Date(t).getTime()))throw new TypeError("日期默认值需要有效的业务时钟");if(typeof e.timeZone!="string"||!e.timeZone.trim())throw new TypeError("日期默认值需要显式业务时区");if(e.offsetDays!==void 0&&(!Number.isSafeInteger(e.offsetDays)||Math.abs(e.offsetDays)>3660))throw new RangeError("日期偏移应为 -3660 到 3660 的整数");const n=new Intl.DateTimeFormat("en-CA",{timeZone:e.timeZone,year:"numeric",month:"2-digit",day:"2-digit",calendar:"iso8601",numberingSystem:"latn"}).formatToParts(t),r=i=>Number(n.find(l=>l.type===i)?.value),o=new Date(0);if(o.setUTCFullYear(r("year"),r("month")-1,r("day")),o.setUTCHours(0,0,0,0),e.preset==="yesterday"&&o.setUTCDate(o.getUTCDate()-1),e.preset==="month-start"&&o.setUTCDate(1),e.preset==="month-end"&&o.setUTCMonth(o.getUTCMonth()+1,0),o.setUTCDate(o.getUTCDate()+(e.offsetDays??0)),o.getUTCFullYear()<1||o.getUTCFullYear()>9999)throw new RangeError("业务日期超出 0001–9999 范围");return o.toISOString().slice(0,10)}exports.CSS_DPI=p.CSS_DPI;exports.DEFAULT_BORDER_PT=p.DEFAULT_BORDER_PT;exports.DEFAULT_FONT_FAMILY=p.DEFAULT_FONT_FAMILY;exports.DEFAULT_FONT_PT=p.DEFAULT_FONT_PT;exports.DEFAULT_STROKE_COLOR=p.DEFAULT_STROKE_COLOR;exports.DEFAULT_TEXT_COLOR=p.DEFAULT_TEXT_COLOR;exports.LINE_HEIGHT=p.LINE_HEIGHT;exports.MM_PER_INCH=p.MM_PER_INCH;exports.PAPER_SIZES=p.PAPER_SIZES;exports.SCHEMA_VERSION_MACH=p.SCHEMA_VERSION_MACH;exports.mergeComponentStyles=p.mergeComponentStyles;exports.mmToPx=p.mmToPx;exports.mmToPxFactor=p.mmToPxFactor;exports.ptToPx=p.ptToPx;exports.pxToMm=p.pxToMm;exports.resolveBoxBorders=p.resolveBoxBorders;exports.resolveFontSize=p.resolveFontSize;exports.resolveLineHeight=p.resolveLineHeight;exports.resolveStroke=p.resolveStroke;exports.resolveTextColor=p.resolveTextColor;exports.round=p.round;exports.ReportBindingError=K.ReportBindingError;exports.evalStyleRule=K.evalStyleRule;exports.formatValue=K.formatValue;exports.parseDateLocal=K.parseDateLocal;exports.resolveComponentBinding=K.resolveComponentBinding;exports.toExcelNumberFormat=K.toExcelNumberFormat;exports.toNumber=K.toNumber;exports.RENDER_PLAN_SCHEMA_VERSION=G.RENDER_PLAN_SCHEMA_VERSION;exports.isImageBackedComponent=G.isImageBackedComponent;exports.isRichText=G.isRichText;exports.REPORT_TEMPLATE_DOCUMENT_VERSION=R.REPORT_TEMPLATE_DOCUMENT_VERSION;exports.ReportTemplateError=R.ReportTemplateError;exports.assertRenderPlan=R.assertRenderPlan;exports.createTemplateRegistry=R.createTemplateRegistry;exports.defineReportTemplate=R.defineReportTemplate;exports.parseReportTemplate=R.parseReportTemplate;exports.serializeReportTemplate=R.serializeReportTemplate;exports.validateComponent=R.validateComponent;exports.validatePage=R.validatePage;exports.validateRenderPlan=R.validateRenderPlan;exports.validateReportTemplate=R.validateReportTemplate;exports.validateReportTemplateDocument=R.validateReportTemplateDocument;exports.datasetJsonSchema=Ee.datasetJsonSchema;exports.validateDatasetRows=Ee.validateDatasetRows;exports.charWidthEm=B.charWidthEm;exports.createCanvasMeasurer=B.createCanvasMeasurer;exports.createHeuristicMeasurer=B.createHeuristicMeasurer;exports.heuristicMeasurer=B.heuristicMeasurer;exports.measureTextMm=B.measureTextMm;exports.wrapText=B.wrapText;exports.DEFAULT_LABEL_PAGE_LIMIT=f.DEFAULT_LABEL_PAGE_LIMIT;exports.PaginateCellLimitError=f.PaginateCellLimitError;exports.PaginateChartComponentLimitError=f.PaginateChartComponentLimitError;exports.PaginatePageLimitError=f.PaginatePageLimitError;exports.ReportCellEditError=f.ReportCellEditError;exports.ReportSourceError=f.ReportSourceError;exports.ReportValidationError=f.ReportValidationError;exports.applyReportCellEdit=f.applyReportCellEdit;exports.applyReportCellEditBatch=f.applyReportCellEditBatch;exports.applyReportEditResult=f.applyReportEditResult;exports.applyReportSourceMetadata=f.applyReportSourceMetadata;exports.assertReportValidation=f.assertReportValidation;exports.countTemplatePages=f.countTemplatePages;exports.createReportCellEdit=f.createReportCellEdit;exports.createReportCellEditBatch=f.createReportCellEditBatch;exports.createReportCellResolver=f.createReportCellResolver;exports.createReportEditSession=f.createReportEditSession;exports.createReportSource=f.createReportSource;exports.defineReport=f.defineReport;exports.estimateListLayoutCells=f.estimateListLayoutCells;exports.explainDatasetField=f.explainDatasetField;exports.formatReportCellEdit=f.formatReportCellEdit;exports.getReportCellContext=f.getReportCellContext;exports.getReportEditSession=f.getReportEditSession;exports.hasValidDataExplanation=f.hasValidDataExplanation;exports.isReportDataTarget=f.isReportDataTarget;exports.isReportValueState=f.isReportValueState;exports.paginateTemplate=f.paginateTemplate;exports.paginateTemplatePages=f.paginateTemplatePages;exports.parseReportCellInput=f.parseReportCellInput;exports.projectListColumns=f.projectListColumns;exports.registerReportEditSession=f.registerReportEditSession;exports.relocateReportCellEdits=f.relocateReportCellEdits;exports.reportCellEditKey=f.reportCellEditKey;exports.summarizeReportCellEdits=f.summarizeReportCellEdits;exports.validateReportDataset=f.validateReportDataset;exports.resolveGridLayout=de.resolveGridLayout;exports.OutputAssetError=D.OutputAssetError;exports.OutputFidelityError=D.OutputFidelityError;exports.inspectOutputCapabilities=D.inspectOutputCapabilities;exports.reportOutputDiagnostics=D.reportOutputDiagnostics;exports.resolvePlanAssets=D.resolvePlanAssets;exports.ReportDataError=H.ReportDataError;exports.ReportDrillError=H.ReportDrillError;exports.compareReportData=H.compareReportData;exports.createReportDrillRequest=H.createReportDrillRequest;exports.createReportPrefill=H.createReportPrefill;exports.matchReportDrillActions=H.matchReportDrillActions;exports.reportDataSnapshotFromPlan=H.reportDataSnapshotFromPlan;exports.reportPrefillInputs=H.reportPrefillInputs;exports.resolveReportDrillReturn=H.resolveReportDrillReturn;exports.validateReportDrillActions=H.validateReportDrillActions;exports.ReportParamValidationError=k.ReportParamValidationError;exports.assertReportParams=k.assertReportParams;exports.formatReportCascaderPath=k.formatReportCascaderPath;exports.formatReportDateRange=k.formatReportDateRange;exports.formatReportNumberRange=k.formatReportNumberRange;exports.formatReportParamSelection=k.formatReportParamSelection;exports.isReportDate=k.isReportDate;exports.isReportMonth=k.isReportMonth;exports.isReportYear=k.isReportYear;exports.parseReportCascaderPath=k.parseReportCascaderPath;exports.parseReportDateRange=k.parseReportDateRange;exports.parseReportNumberRange=k.parseReportNumberRange;exports.parseReportParamSelection=k.parseReportParamSelection;exports.reportParamsJsonSchema=k.reportParamsJsonSchema;exports.validateReportParamDefinitions=k.validateReportParamDefinitions;exports.validateReportParams=k.validateReportParams;exports.createReportChartData=Ke.createReportChartData;exports.validateReportChartBinding=Ke.validateReportChartBinding;exports.compileReportPredicate=Re.compileReportPredicate;exports.evaluateReportPredicate=Re.evaluateReportPredicate;exports.reportPredicateFields=Re.reportPredicateFields;exports.cloneReportTemplate=ne.cloneReportTemplate;exports.createLocalTemplateCatalog=ne.createLocalTemplateCatalog;exports.diffReportTemplates=ne.diffReportTemplates;exports.reviewReportTemplate=ne.reviewReportTemplate;exports.reviewReportTemplateAsync=ne.reviewReportTemplateAsync;exports.collectTemplateOutline=Te.collectTemplateOutline;exports.inspectTemplateFieldUsage=Te.inspectTemplateFieldUsage;exports.templatePathLocation=Te.templatePathLocation;exports.applyReportDocumentStyle=he.applyReportDocumentStyle;exports.captureTemplateFragment=he.captureTemplateFragment;exports.insertTemplateFragment=he.insertTemplateFragment;exports.inspectTemplateFragmentBindings=he.inspectTemplateFragmentBindings;exports.TreeRowLimitError=xe.TreeRowLimitError;exports.createTreeTable=xe.createTreeTable;exports.validateTreeOptions=xe.validateTreeOptions;exports.LabelSheetError=I;exports.PageBuilder=ct;exports.ReportCalculationError=T;exports.ReportCellFieldError=pt;exports.ReportComponentExtensionError=w;exports.ReportTemplateMigrationError=z;exports.ReportTemplateStoreError=_;exports.TemplateBuilder=lt;exports.calculateReportSelection=or;exports.classOf=$;exports.columnsFromContract=an;exports.computePageWindow=rt;exports.createCanvasPager=rn;exports.createLabelTemplate=un;exports.createMemoryTemplateStore=vn;exports.createPageViewportRenderer=jt;exports.createProviderReport=bn;exports.createReportComponentRegistry=kn;exports.createTableTemplate=gn;exports.createTemplate=on;exports.createTemplateManager=Mn;exports.createTemplateMigrator=dt;exports.defineLabelReport=wn;exports.evaluateReportAggregateExpression=ft;exports.formatReportClipboard=Ln;exports.imposeLabelSheets=lr;exports.measurePageSizePx=pe;exports.parseReportCellFieldInput=Vn;exports.parseReportClipboard=Nn;exports.planFontSizePx=Wt;exports.renderComponent=Se;exports.renderPage=Ce;exports.renderPlan=_t;exports.renderPlanToCanvas=en;exports.renderPlanToCanvasAsync=nn;exports.renderPlanToImages=Zt;exports.reportDateDefault=cr;exports.resolvePaper=Oe;exports.validateReportCellFieldDefinition=ut;