@agile-team/mach-report 2.14.0 → 2.15.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 (256) hide show
  1. package/README.md +16 -11
  2. package/THIRD_PARTY_NOTICES.md +3 -1
  3. package/dist/{ExcelBindingWizard-CvsWR8Ga.js → ExcelBindingWizard-BKH1nGNS.js} +3 -3
  4. package/dist/{ExcelBindingWizard-CLT2p7P3.cjs → ExcelBindingWizard-Bs43BGNp.cjs} +1 -1
  5. package/dist/ParamEditor-Da4akw6V.cjs +1 -0
  6. package/dist/ParamEditor-DoAhzJsm.js +594 -0
  7. package/dist/{ReportBatchPanel-LqVgiqp7.js → ReportBatchPanel-BMf6boMA.js} +39 -39
  8. package/dist/{ReportBatchPanel-DkxTzBkD.cjs → ReportBatchPanel-wP9m9Pj1.cjs} +1 -1
  9. package/dist/ReportPreview-ChV19HBp.js +4619 -0
  10. package/dist/ReportPreview-DbLvvOUT.cjs +6 -0
  11. package/dist/{ReportTemplateLibrary-MjWEtc7X.js → ReportTemplateLibrary-C9wutIiT.js} +1 -1
  12. package/dist/{ReportTemplateLibrary-cQ1sqNYo.cjs → ReportTemplateLibrary-Sxr3eD0J.cjs} +1 -1
  13. package/dist/{RuleEditor-ChuXMlei.js → RuleEditor-C_Clasvd.js} +5 -5
  14. package/dist/{RuleEditor-BaR6xUiI.cjs → RuleEditor-XhGHK8DE.cjs} +1 -1
  15. package/dist/{TemplateOutlinePanel-Dci6aRn1.js → TemplateOutlinePanel-D6Bkny59.js} +2 -2
  16. package/dist/{TemplateOutlinePanel-BHKP89Xz.cjs → TemplateOutlinePanel-JTSR53vJ.cjs} +1 -1
  17. package/dist/{TemplateReusePanel-CY5eO2Sh.cjs → TemplateReusePanel-Kx35S0Ql.cjs} +1 -1
  18. package/dist/{TemplateReusePanel-B7Gmyc1z.js → TemplateReusePanel-rVuK1kTz.js} +2 -2
  19. package/dist/{TemplateReviewPanel-DjlX3xpt.js → TemplateReviewPanel-B0ar9_zf.js} +2 -2
  20. package/dist/{TemplateReviewPanel-JvZe9_4G.cjs → TemplateReviewPanel-Dn6X9UmY.cjs} +1 -1
  21. package/dist/analytics.cjs +1 -1
  22. package/dist/analytics.d.cts +3 -1
  23. package/dist/analytics.d.ts +3 -1
  24. package/dist/analytics.js +154 -60
  25. package/dist/artifact-integrity.json +135 -0
  26. package/dist/assets-B9ImAi6_.cjs +1 -0
  27. package/dist/assets-DEaz4qsp.js +124 -0
  28. package/dist/batch-BaP6pWDE.cjs +1 -0
  29. package/dist/batch-BfZHN1do.js +220 -0
  30. package/dist/batch-CGyt-b2W.js +273 -0
  31. package/dist/batch-CLpELXBl.cjs +1 -0
  32. package/dist/capabilities-CAh2Nrue.cjs +1 -0
  33. package/dist/capabilities-DskCHs3V.js +69 -0
  34. package/dist/codes.d.cts +2 -0
  35. package/dist/codes.d.ts +2 -0
  36. package/dist/{computed-Bvk0W15F.js → computed-C-4C2S5h.js} +3 -3
  37. package/dist/config-BVsJXSqS.js +842 -0
  38. package/dist/config-D10us76d.cjs +1 -0
  39. package/dist/data-explanation-B8MZRYVS.js +16 -0
  40. package/dist/data-explanation-DE55G30w.cjs +1 -0
  41. package/dist/designer-2bDlcNXQ.js +5136 -0
  42. package/dist/designer-BT7XCdbW.cjs +2 -0
  43. package/dist/designer.cjs +1 -1
  44. package/dist/designer.d.cts +144 -16
  45. package/dist/designer.d.ts +144 -16
  46. package/dist/designer.js +1 -1
  47. package/dist/drill-ByJviLXS.js +145 -0
  48. package/dist/drill-DYTxuL3A.cjs +1 -0
  49. package/dist/{font-loader-vhCT8znW.cjs → font-loader-B_UkxpzC.cjs} +1 -1
  50. package/dist/{font-loader-DHto6Lra.js → font-loader-Q3bQjmrI.js} +1 -1
  51. package/dist/index.cjs +8 -8
  52. package/dist/index.d.cts +82 -4
  53. package/dist/index.d.ts +82 -4
  54. package/dist/index.js +785 -820
  55. package/dist/json-snapshot-DFb2eWkf.js +1416 -0
  56. package/dist/json-snapshot-WWSGlaHG.cjs +2 -0
  57. package/dist/licenses/_bwip-js_generic-4.11.4.txt +24 -0
  58. package/dist/licenses/_fast-csv_format-4.3.5.txt +22 -0
  59. package/dist/licenses/_fast-csv_parse-4.3.6.txt +22 -0
  60. package/dist/licenses/_pdf-lib_fontkit-1.1.1.txt +326 -0
  61. package/dist/licenses/_pdf-lib_standard-fonts-1.0.0.txt +22 -0
  62. package/dist/licenses/_pdf-lib_upng-1.0.1.txt +22 -0
  63. package/dist/licenses/_types_node-14.18.63.txt +22 -0
  64. package/dist/licenses/_types_pako-2.0.3.txt +22 -0
  65. package/dist/licenses/_types_pegjs-0.10.6.txt +22 -0
  66. package/dist/licenses/archiver-5.3.2.txt +23 -0
  67. package/dist/licenses/archiver-utils-2.1.0.txt +23 -0
  68. package/dist/licenses/archiver-utils-3.0.4.txt +23 -0
  69. package/dist/licenses/async-3.2.6.txt +20 -0
  70. package/dist/licenses/balanced-match-1.0.2.txt +22 -0
  71. package/dist/licenses/base64-js-1.5.1.txt +22 -0
  72. package/dist/licenses/big-integer-1.6.52.txt +25 -0
  73. package/dist/licenses/binary-0.3.0.txt +178 -0
  74. package/dist/licenses/bl-4.1.0.txt +14 -0
  75. package/dist/licenses/bluebird-3.4.7.txt +22 -0
  76. package/dist/licenses/brace-expansion-1.1.21.txt +22 -0
  77. package/dist/licenses/brace-expansion-2.1.7.txt +22 -0
  78. package/dist/licenses/buffer-5.7.1.txt +22 -0
  79. package/dist/licenses/buffer-crc32-0.2.13.txt +20 -0
  80. package/dist/licenses/buffer-indexof-polyfill-1.0.2.txt +23 -0
  81. package/dist/licenses/buffers-0.1.1.txt +140 -0
  82. package/dist/licenses/chainsaw-0.1.0.txt +184 -0
  83. package/dist/licenses/compress-commons-4.1.2.txt +23 -0
  84. package/dist/licenses/concat-map-0.0.1.txt +19 -0
  85. package/dist/licenses/core-util-is-1.0.3.txt +20 -0
  86. package/dist/licenses/crc-32-1.2.2.txt +202 -0
  87. package/dist/licenses/crc32-stream-4.0.3.txt +23 -0
  88. package/dist/licenses/dayjs-1.11.23.txt +22 -0
  89. package/dist/licenses/duplexer2-0.1.4.txt +27 -0
  90. package/dist/licenses/end-of-stream-1.4.5.txt +22 -0
  91. package/dist/licenses/exceljs-4.4.0.txt +23 -0
  92. package/dist/licenses/fast-csv-4.3.6.txt +22 -0
  93. package/dist/licenses/fast-png-6.4.0.txt +22 -0
  94. package/dist/licenses/fs-constants-1.0.0.txt +22 -0
  95. package/dist/licenses/fs.realpath-1.0.0.txt +44 -0
  96. package/dist/licenses/fstream-1.0.12.txt +16 -0
  97. package/dist/licenses/glob-7.2.3.txt +22 -0
  98. package/dist/licenses/graceful-fs-4.2.11.txt +16 -0
  99. package/dist/licenses/ieee754-1.2.1.txt +12 -0
  100. package/dist/licenses/immediate-3.0.6.txt +21 -0
  101. package/dist/licenses/inflight-1.0.6.txt +16 -0
  102. package/dist/licenses/inherits-2.0.4.txt +17 -0
  103. package/dist/licenses/iobuffer-5.4.0.txt +23 -0
  104. package/dist/licenses/isarray-1.0.0.txt +61 -0
  105. package/dist/licenses/jszip-3.10.2.txt +652 -0
  106. package/dist/licenses/lazystream-1.0.1.txt +24 -0
  107. package/dist/licenses/lie-3.3.0.txt +8 -0
  108. package/dist/licenses/listenercount-1.0.1.txt +6 -0
  109. package/dist/licenses/lodash.defaults-4.2.0.txt +48 -0
  110. package/dist/licenses/lodash.difference-4.5.0.txt +48 -0
  111. package/dist/licenses/lodash.escaperegexp-4.1.2.txt +48 -0
  112. package/dist/licenses/lodash.flatten-4.4.0.txt +48 -0
  113. package/dist/licenses/lodash.groupby-4.6.0.txt +48 -0
  114. package/dist/licenses/lodash.isboolean-3.0.3.txt +23 -0
  115. package/dist/licenses/lodash.isequal-4.5.0.txt +48 -0
  116. package/dist/licenses/lodash.isfunction-3.0.9.txt +48 -0
  117. package/dist/licenses/lodash.isnil-4.0.0.txt +23 -0
  118. package/dist/licenses/lodash.isplainobject-4.0.6.txt +48 -0
  119. package/dist/licenses/lodash.isundefined-3.0.1.txt +23 -0
  120. package/dist/licenses/lodash.union-4.6.0.txt +48 -0
  121. package/dist/licenses/lodash.uniq-4.5.0.txt +48 -0
  122. package/dist/licenses/minimatch-3.1.5.txt +16 -0
  123. package/dist/licenses/minimatch-5.1.9.txt +16 -0
  124. package/dist/licenses/minimist-1.2.8.txt +19 -0
  125. package/dist/licenses/mkdirp-0.5.6.txt +22 -0
  126. package/dist/licenses/node-sql-parser-5.4.0.txt +202 -0
  127. package/dist/licenses/normalize-path-3.0.0.txt +22 -0
  128. package/dist/licenses/once-1.4.0.txt +16 -0
  129. package/dist/licenses/pako-1.0.11.txt +22 -0
  130. package/dist/licenses/pako-2.2.0.txt +22 -0
  131. package/dist/licenses/path-is-absolute-1.0.1.txt +22 -0
  132. package/dist/licenses/pdf-lib-1.17.1.txt +22 -0
  133. package/dist/licenses/process-nextick-args-2.0.1.txt +20 -0
  134. package/dist/licenses/readable-stream-2.3.8.txt +48 -0
  135. package/dist/licenses/readable-stream-3.6.2.txt +48 -0
  136. package/dist/licenses/readdir-glob-1.1.3.txt +202 -0
  137. package/dist/licenses/rimraf-2.7.1.txt +16 -0
  138. package/dist/licenses/safe-buffer-5.1.2.txt +22 -0
  139. package/dist/licenses/safe-buffer-5.2.1.txt +22 -0
  140. package/dist/licenses/saxes-5.0.1.txt +397 -0
  141. package/dist/licenses/setimmediate-1.0.5.txt +21 -0
  142. package/dist/licenses/string_decoder-1.1.1.txt +49 -0
  143. package/dist/licenses/string_decoder-1.3.0.txt +49 -0
  144. package/dist/licenses/tar-stream-2.2.0.txt +22 -0
  145. package/dist/licenses/tmp-0.2.7.txt +22 -0
  146. package/dist/licenses/traverse-0.3.9.txt +25 -0
  147. package/dist/licenses/tslib-1.14.1.txt +13 -0
  148. package/dist/licenses/unzipper-0.10.14.txt +26 -0
  149. package/dist/licenses/util-deprecate-1.0.2.txt +25 -0
  150. package/dist/licenses/uuid-11.1.1.txt +10 -0
  151. package/dist/licenses/wrappy-1.0.2.txt +16 -0
  152. package/dist/licenses/xmlchars-2.2.0.txt +19 -0
  153. package/dist/licenses/zip-stream-4.1.1.txt +23 -0
  154. package/dist/matrix-CGRGkn5s.js +112 -0
  155. package/dist/matrix-gEO7ZM_u.cjs +1 -0
  156. package/dist/media-B7vnpD8k.cjs +1 -0
  157. package/dist/media-Y90dHK9z.js +70 -0
  158. package/dist/param-validation-C3HlcLLO.cjs +1 -0
  159. package/dist/param-validation-Do7Eg8Zv.js +181 -0
  160. package/dist/{pdf-8UPQebOE.js → pdf-BwNyeGpt.js} +4385 -4321
  161. package/dist/{pdf-AyJGb22z.cjs → pdf-CvvrjPQg.cjs} +51 -49
  162. package/dist/pdf.cjs +1 -1
  163. package/dist/pdf.d.cts +18 -3
  164. package/dist/pdf.d.ts +18 -3
  165. package/dist/pdf.js +2 -2
  166. package/dist/{plugin-BGKf-Tqg.js → plugin-Ca_XZG3l.js} +2 -2
  167. package/dist/{plugin-CktLH_Iy.cjs → plugin-DHO7X8z2.cjs} +1 -1
  168. package/dist/prepared-CFy9B75C.cjs +1 -0
  169. package/dist/prepared-ajM-H-9B.js +69 -0
  170. package/dist/progress-B0ctFpKf.cjs +1 -0
  171. package/dist/progress-D-OTpEav.js +52 -0
  172. package/dist/record-bindings-By_UKZ2g.cjs +1 -0
  173. package/dist/record-bindings-Do_b3h4V.js +196 -0
  174. package/dist/{region-binding-workflow-DEJbhpCv.js → region-binding-workflow-BMhK_TjP.js} +1 -1
  175. package/dist/{region-binding-workflow-BzfbxRiR.cjs → region-binding-workflow-DIYJdCUr.cjs} +1 -1
  176. package/dist/{report-params-B44imUd4.js → report-params-B1RzkhJj.js} +1 -1
  177. package/dist/{report-params-SJfhKgaX.cjs → report-params-WDGrA4oP.cjs} +1 -1
  178. package/dist/sbom.cdx.json +3982 -0
  179. package/dist/server/node.d.cts +20 -1
  180. package/dist/server/node.d.ts +20 -1
  181. package/dist/server-node.cjs +1 -1
  182. package/dist/server-node.js +247 -237
  183. package/dist/server.cjs +1 -1
  184. package/dist/server.d.cts +772 -4
  185. package/dist/server.d.ts +772 -4
  186. package/dist/server.js +885 -645
  187. package/dist/sha256-ArEYjaTI.cjs +1 -0
  188. package/dist/sha256-DPEuJ3nh.js +155 -0
  189. package/dist/style.css +1 -1
  190. package/dist/template-bindings-C2SpvsMU.js +58 -0
  191. package/dist/template-bindings-CEtWyiLX.cjs +1 -0
  192. package/dist/template-catalog-FJE_c9Qe.cjs +1 -0
  193. package/dist/template-catalog-j2B1MJlL.js +414 -0
  194. package/dist/{template-fragments-CLkGo6To.js → template-fragments-BGbQLGlV.js} +21 -21
  195. package/dist/{template-fragments-DFUpq5QM.cjs → template-fragments-DcKeiylI.cjs} +1 -1
  196. package/dist/{template-outline-B3xVkzSv.cjs → template-outline-BwRV_eRo.cjs} +1 -1
  197. package/dist/{template-outline-CFenM1PV.js → template-outline-cnWfT_LK.js} +3 -3
  198. package/dist/{template-registry-COXDEJEM.js → template-registry-BtaKPELV.js} +364 -201
  199. package/dist/template-registry-Co1zPq5e.cjs +1 -0
  200. package/dist/textwrap-CWHyzkBH.cjs +4 -0
  201. package/dist/textwrap-DE1kgcJB.js +110 -0
  202. package/dist/{tree-CqcQ99NM.js → tree-CjVZLRw7.js} +1 -1
  203. package/dist/vue/async.d.cts +123 -14
  204. package/dist/vue/async.d.ts +123 -14
  205. package/dist/vue/index.d.cts +158 -22
  206. package/dist/vue/index.d.ts +158 -22
  207. package/dist/vue-async.cjs +1 -1
  208. package/dist/vue-async.js +3 -3
  209. package/dist/vue.cjs +1 -1
  210. package/dist/vue.js +80 -78
  211. package/dist/{workbook-session-DNa2RHNG.cjs → workbook-session-Bjv1YCRK.cjs} +18 -18
  212. package/dist/{workbook-session-BfK1yHOO.js → workbook-session-BvToI-Fd.js} +5440 -5288
  213. package/dist/worker.cjs +1 -1
  214. package/dist/worker.d.cts +20 -1
  215. package/dist/worker.d.ts +20 -1
  216. package/dist/worker.js +33 -32
  217. package/dist/xlsx-node.cjs +34 -34
  218. package/dist/xlsx-node.js +878 -870
  219. package/dist/xlsx.cjs +3 -4
  220. package/dist/xlsx.d.cts +22 -10
  221. package/dist/xlsx.d.ts +22 -10
  222. package/dist/xlsx.js +261 -253
  223. package/package.json +2 -2
  224. package/dist/ParamEditor-CflQV3eQ.js +0 -526
  225. package/dist/ParamEditor-vIDzvpPV.cjs +0 -1
  226. package/dist/ReportPreview-CvbqLUzM.cjs +0 -6
  227. package/dist/ReportPreview-D_ywJ_-H.js +0 -4533
  228. package/dist/assets-C2U-e-Sz.cjs +0 -4
  229. package/dist/assets-Q0wUwNrV.js +0 -217
  230. package/dist/batch-DzaTNLWI.js +0 -371
  231. package/dist/batch-xMkqYiTr.cjs +0 -1
  232. package/dist/capabilities-CK_7hizc.js +0 -63
  233. package/dist/capabilities-CsZ-pNHR.cjs +0 -1
  234. package/dist/config-0UIohTS7.cjs +0 -1
  235. package/dist/config-Dt9NtCPl.js +0 -566
  236. package/dist/data-explanation-BktvER5B.cjs +0 -1
  237. package/dist/data-explanation-C_J6jYNi.js +0 -16
  238. package/dist/designer-Ci1LizA9.js +0 -5020
  239. package/dist/designer-rtmVIIdN.cjs +0 -2
  240. package/dist/json-snapshot-BeFT3Tso.js +0 -1952
  241. package/dist/json-snapshot-D1NTP2oI.cjs +0 -2
  242. package/dist/matrix-DVyWiYsd.cjs +0 -1
  243. package/dist/matrix-yZsGnldA.js +0 -227
  244. package/dist/page-window-index-CIuT4BAv.js +0 -43
  245. package/dist/page-window-index-DEjnM6IB.cjs +0 -1
  246. package/dist/param-validation-BlHHXs6u.js +0 -153
  247. package/dist/param-validation-DCK039V1.cjs +0 -1
  248. package/dist/progress-7OSZbFok.js +0 -39
  249. package/dist/progress-BnLiS5eH.cjs +0 -1
  250. package/dist/task-events-DQ276fn2.cjs +0 -1
  251. package/dist/task-events-Dpsvf_t2.js +0 -47
  252. package/dist/template-bindings-BJR4k7qZ.cjs +0 -1
  253. package/dist/template-bindings-Daui7hLF.js +0 -252
  254. package/dist/template-registry-D3SjENi6.cjs +0 -1
  255. package/dist/validate-BJ5HIWY8.cjs +0 -1
  256. package/dist/validate-CkQBWCeg.js +0 -163
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
  </p>
9
9
 
10
10
  <p align="center">
11
- <img src="https://img.shields.io/badge/source-2.14.0-2563eb" alt="Source version 2.14.0" />
11
+ <img src="https://img.shields.io/badge/source-2.15.0-2563eb" alt="Source version 2.15.0" />
12
12
  <a href="https://www.npmjs.com/package/@agile-team/mach-report"><img src="https://img.shields.io/npm/v/@agile-team/mach-report?label=npm&color=3178c6" alt="npm version" /></a>
13
13
  <a href="https://github.com/ChenyCHENYU/MachReport/actions/workflows/ci.yml"><img src="https://github.com/ChenyCHENYU/MachReport/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
14
14
  <a href="https://github.com/ChenyCHENYU/MachReport/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-authorization%20required-dc2626" alt="Authorization required" /></a>
@@ -44,9 +44,9 @@ MachReport 把模板、数据和输出分开:用 TypeScript DSL 或 JSON 定
44
44
  | 完整宽表 | 自然列宽、横向滚动、默认 100% 预览;纵向分段窗口化,Excel 自动合并连续 Sheet |
45
45
  | 明细与汇总 | 自动分页、多级分组与加权小计、业务键主从明细、动态矩阵、重复页眉页脚 |
46
46
  | 数据呈现 | 表头与内容独立对齐、类型自动对齐、数值 / 百分比 / 日期格式化、条件格式 |
47
- | 预览交互 | 右下分页、分组导出菜单、内容搜索与字段目录、跨页选区、冻结窗格、Sheet 导航 |
47
+ | 预览交互 | 远程级联参数、受控关联详情、右下分页、分组导出菜单、内容搜索与字段目录、跨页选区、冻结窗格、Sheet 导航 |
48
48
  | 内容编辑 | 默认只读;双击与批量粘贴、原子保存、编辑后重算、撤销 / 重做、恢复与变更清单 |
49
- | Excel 导入 | 多 Sheet 会话复用、可取消预检、完整宽表、合并样式与缓存公式值转换为模板 |
49
+ | Excel 导入 | PNG/JPEG Logo、完整索引色、多 Sheet 会话复用、可取消预检、完整宽表、合并样式与缓存公式值转换为模板 |
50
50
  | 模板配置 | 可视化画布、Excel 业务绑定向导、计算与规则、变更对比与发布验收、CAS 历史 / 回滚 |
51
51
  | 工业标签 | 模板 + 行数组直接接入、逐记录字段绑定、多版相邻与份数、真实 QR / 条码、可视化设计 |
52
52
  | 输出 | 浏览器打印、HTML、PDF、真正的 `.xlsx`、逐页 PNG、Word 兼容 HTML `.doc` |
@@ -66,17 +66,22 @@ MachReport 把模板、数据和输出分开:用 TypeScript DSL 或 JSON 定
66
66
  | 发布验收 | 变更分类、字段依赖检查、显式样例、服务端真实PDF/XLSX编码 | 验收样例、字体、原子CAS存储 |
67
67
  | 大任务 | 逐页生成、增量编辑历史、租约 / 幂等 / 取消 / 失败重试、有界终态归档 | 调度、文件归档;多实例数据库CAS适配 |
68
68
 
69
- 复杂模板继续使用同一个编辑器:工具区提供跨页结构大纲、字段引用影响、片段与内容样式、命名验收样例和基线并排对照;可选草稿存储恢复未应用配置,版本冲突保留本地内容并显式核对。设计器示例 `/designer.html` 已接入这些能力,普通预览页无需引入设计器。
69
+ 常规预览只需模板、数据和 ID。复杂能力按需接入,下面的入口沿用同一份模板与业务契约:
70
70
 
71
- 已准备结果可通过 `runtime.exportPrepared()` 原样交付 PDF / XLSX,无需再次取数或分页;已归档实例使用 `generation.exportInstance()`。工业标签可按原尺寸拼入 A4,自定义起始空位、间距与偏移;异步来源按块处理,等待导出归档回执后再消费下一块。打印等待独立文档的字体与图片,校准入口收在设置中。业务声明的来源空值原因默认折叠,真实零值保持显示。
72
-
73
- 接入与边界见[交付与批量标签](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/DELIVERY.md)、[草稿恢复](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/DRAFT_RECOVERY.md)、[结构与复用](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/DESIGNER_PRODUCTIVITY.md)、[打印及数据说明](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/PRINT_AND_DATA.md)。
71
+ | 需要做什么 | 接入与示例 |
72
+ | --- | --- |
73
+ | 可视化设计、结构大纲、片段、草稿恢复 | [设计器](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/DESIGNER.md) · [结构与复用](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/DESIGNER_PRODUCTIVITY.md) · `/designer.html` |
74
+ | Excel 区域绑定、主从/树形/矩阵 | [Excel绑定](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/EXCEL_BINDING.md) · [复杂报表](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/COMPLEX_REPORTS.md) |
75
+ | 模板库 → 发布 → 批次 → 可追溯实例 | [最小工作流](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/WORKFLOW.md) · [发布验收](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/PUBLICATION_REVIEW.md) · `/platform.html` |
76
+ | 跨项目搬运模板、资源、字段契约与脱敏样例 | [可搬运模板包](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/TEMPLATE_PACKAGE.md) |
77
+ | 字典搜索、厂别/产线级联、查看关联详情 | [参数](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/PARAMETERS.md) · [关联动作与隔离](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/RELIABILITY.md) · `/parameters.html`、`/product.html` |
78
+ | 大批量标签、标准纸张拼版、持久任务 | [交付](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/DELIVERY.md) · [持久任务](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/DURABLE_JOBS.md) · [打印校准](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/PRINT_AND_DATA.md) |
74
79
 
75
- 常规预览页面的接入保持不变。稳定业务键的数据源自动维护编辑重算会话;派生列只读,保存前准备重算,成功后更新公式、条件样式与汇总,导出等待在途编辑。工作簿公式继续仅显示缓存结果。设计工具只在打开时加载;画布拖动在松手时提交一次模板事务,样例计算与验收按按钮执行。逐页生成不保留全部输出页,输入数据和分组索引仍受预算管理。
80
+ 稳定业务键的数据源自动维护编辑重算会话,独立报表默认隔离;镜像来源显式声明共享。保存前准备重算,成功后更新派生结果与修订,导出等待在途编辑。工作簿公式继续只显示缓存结果。严格输出拒绝已知缺字或损坏图片,宽松策略返回明确诊断。
76
81
 
77
- 操作与边界见[设计器](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/DESIGNER.md)、[Excel绑定](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/EXCEL_BINDING.md)、[复杂报表](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/COMPLEX_REPORTS.md)、[发布验收](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/PUBLICATION_REVIEW.md)、[持久任务](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/DURABLE_JOBS.md)。
82
+ 设计工具按需加载;画布拖动只在松手时提交事务,修改模板名称不重复排版。大列目录窗口化,连续 Excel 按工作量让出执行并响应取消。已准备结果可通过 `runtime.exportPrepared()` 原样导出,无需再次取数。
78
83
 
79
- 业务参数、设计器和服务端执行共用一套声明:查询参数支持月份、年份与日期区间;Excel 单 Sheet 可绑定多个数据集,静态邻格与后续区域随明细行数保持位置;树形节点按稳定身份排版,父级来源值与叶子汇总显式区分。可选模板库提供分类、搜索、草稿编辑、发布版查看和复制;失败可重试原操作。批量面板提供逐组校验、状态筛选、进度、取消、继续未完成及显式失败重试,保留成功回执。参数与 Excel 绑定支持就地错误反馈、问题定位和待应用提示。实例通过独立 CAS 契约保存参数、模板/数据修订与渲染快照,预览不自动保存。运行示例访问 `/platform.html`,产品分层、接入示例及暂缓的连接/IAM/调度/渠道路线见[产品能力](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/PRODUCT_PLATFORM.md)。
84
+ 产品分层和暂缓的数据库连接、企业权限、调度与渠道见[产品能力](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/PRODUCT_PLATFORM.md);还原边界、验证方式和上游依赖证据见[质量说明](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/QUALITY.md)、[可靠性与升级](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/RELIABILITY.md)、[依赖清单](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/DEPENDENCIES.md)。
80
85
 
81
86
 
82
87
  ## 安装:一个包,按需入口
@@ -660,7 +665,7 @@ CI 使用同一套校验命令,并在构建后检查实际发布产物。协
660
665
 
661
666
  ## 版本与授权
662
667
 
663
- 当前源码版本为 `2.14.0`,以 [`packages/mach-report/package.json`](https://github.com/ChenyCHENYU/MachReport/blob/main/packages/mach-report/package.json) 为准;npm 已发布版本由顶部 npm 标识展示。
668
+ 当前源码版本为 `2.15.0`,以 [`packages/mach-report/package.json`](https://github.com/ChenyCHENYU/MachReport/blob/main/packages/mach-report/package.json) 为准;npm 已发布版本由顶部 npm 标识展示。
664
669
 
665
670
  Copyright © 2026 ChenyCHENYU (Agile Team). All rights reserved.
666
671
 
@@ -1,4 +1,6 @@
1
- # Third-party notices for the optional codes entry
1
+ # Third-party notices
2
+
3
+ The published package also includes `dist/sbom.cdx.json`, `dist/licenses/` and `dist/artifact-integrity.json` for the resolved optional PDF, Excel, SQL and code-generation dependency closure. Missing upstream notice texts are explicitly marked in the inventory. The notices below additionally preserve embedded code/font asset attribution.
2
4
 
3
5
  The optional `@agile-team/mach-report/codes` build includes the following third-party software. Their original licenses remain applicable to their respective components and embedded font assets. These notices do not change the MachReport license. The encoding and raster libraries are absent from the core entry.
4
6
 
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as ze, ref as K, computed as S, watch as re, nextTick as Be, openBlock as c, createElementBlock as v, createElementVNode as n, createTextVNode as A, toDisplayString as l, createVNode as W, Fragment as V, renderList as U, normalizeClass as Re, createCommentVNode as D, unref as e, withDirectives as Ne, vModelText as tt, shallowRef as nt, onBeforeUnmount as at, normalizeStyle as lt, createBlock as ot, vShow as it } from "vue";
2
- import { o as pe, q as Ee, f as st, n as rt, m as ut, h as dt, k as ct, v as vt, i as gt, p as ft, d as bt, c as mt, e as ht, a as yt, g as pt } from "./region-binding-workflow-DEJbhpCv.js";
2
+ import { o as pe, q as Ee, f as st, n as rt, m as ut, h as dt, k as ct, v as vt, i as gt, p as ft, d as bt, c as mt, e as ht, a as yt, g as pt } from "./region-binding-workflow-BMhK_TjP.js";
3
3
  import { a as _ } from "./_plugin-vue_export-helper-8SL1F89S.js";
4
- import { E as wt, u as kt } from "./designer-Ci1LizA9.js";
4
+ import { E as wt, u as kt } from "./designer-2bDlcNXQ.js";
5
5
  import { u as $t } from "./useLocalDraft-BnhcxXk_.js";
6
6
  function Ae(t, x) {
7
7
  const f = /^\$\.datasets\[(\d+)\]/.exec(t.path)?.[1];
@@ -625,7 +625,7 @@ function In(t, x) {
625
625
  se = new AbortController(), J.value = !0, I.value = "";
626
626
  let F;
627
627
  try {
628
- const { openExcelWorkbook: q } = await import("./workbook-session-BfK1yHOO.js").then((ce) => ce.w);
628
+ const { openExcelWorkbook: q } = await import("./workbook-session-BvToI-Fd.js").then((ce) => ce.w);
629
629
  if (d !== ae || t.readonly || (F = await q(i, { ...t.importOptions, signal: se.signal }), d !== ae || t.readonly)) return;
630
630
  const ge = F.inspect().sheets.filter((ce) => ce.visible);
631
631
  if (!ge.length) throw new Error("Excel 中没有可导入的可见工作表");
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),I=require("./region-binding-workflow-BzfbxRiR.cjs"),_=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),he=require("./designer-rtmVIIdN.cjs"),ze=require("./useLocalDraft-CioIfDb6.cjs");function Ee(t,h){const c=/^\$\.datasets\[(\d+)\]/.exec(t.path)?.[1];return c!==void 0?h[Number(c)]?.id:h.find(g=>t.path.startsWith(`$.datasets.${g.id}.samples`))?.id}function Ne(t,h){const c=/\.fields\[(\d+)\]/.exec(t)?.[1];return c!==void 0?{control:"field",fieldIndex:Number(c)}:{control:t.split(".").at(-1)||h}}function Ve(t,h,c){const g=/^\$\.recipe\.regions\[(\d+)\]/.exec(t.path)?.[1],v=Ee(t,c),a=g===void 0?h.regions.find(E=>E.dataset===v):h.regions[Number(g)];if(!a)return{control:t.path.endsWith("footerRange")?"footer":"regions",...h.footerRange?{range:h.footerRange}:{}};if(t.path.startsWith("$.datasets"))return{regionId:a.id,range:a.range,control:t.code==="row-key"?"rowKey":"contract"};const w=Ne(t.path,"range"),k=t.code==="row-key"?"rowKey":w.control.startsWith("regions[")?"range":w.control;return{...w,control:k,regionId:a.id,range:a.range}}function Ae(t,h,c){if(t.path.startsWith("$.datasets")){const v=Ee(t,c);return v===void 0?[]:h.regions.filter(a=>a.dataset===v).map(a=>a.id)}const g=Ve(t,h,c).regionId;return g?[g]:[]}function Pe(t,h){const c=/^\$\.recipe\.regions\.(title|header|detail|footer)$/.exec(t.path)?.[1];return c?{control:c,range:h.regions[c]}:t.path.startsWith("$.datasets")?{control:t.code==="row-key"?"rowKey":"contract",range:h.regions.detail}:{...Ne(t.path,"detail"),range:h.regions.detail}}function ie(t){if(t.range)try{const h=I.parseImportRange(t.range);return t.fieldIndex!==void 0&&(h.left=h.right=h.left+t.fieldIndex),h}catch{return}}function We(t,h,c){return h.control==="dataset"?!c.dataset:h.control==="rowKey"?!c.rowKey:h.control==="field"&&h.fieldIndex!==void 0?!c.fields[h.fieldIndex]:!1}const He=["aria-label"],qe={class:"mr-binding-group"},Oe={class:"mr-binding-note"},Je=["title","disabled"],je={class:"mr-binding-region-list",role:"list",tabindex:"-1","data-binding-control":"regions"},Ue=["data-state"],Ge=["aria-pressed","onClick"],Xe=["title"],Qe={class:"mr-binding-region-state"},Ye={key:0},Ze=["aria-label","disabled","onClick"],et=["disabled"],tt={key:0,class:"mr-binding-group"},nt={class:"mr-binding-label",tabindex:"-1"},at=["value","aria-label"],ot={class:"mr-binding-label"},lt=["value","aria-label"],rt={value:"record"},it={value:"repeat"},st={class:"mr-binding-note"},ut={class:"mr-binding-label",tabindex:"-1"},ct=["value","aria-label"],dt={value:""},gt=["value"],mt={key:0,class:"mr-binding-label",tabindex:"-1"},ft=["value","aria-label"],vt={value:""},bt=["value"],pt={class:"mr-binding-region-tools"},yt=["disabled"],ht=["aria-label"],kt={key:1,class:"mr-binding-mappings"},Et={class:"mr-binding-field-search"},Nt=["placeholder","aria-label"],Vt={key:0,class:"mr-binding-note"},wt=["data-binding-control","value","onChange","aria-label"],St={value:""},Bt=["value"],xt={key:0},Dt={key:2,class:"mr-binding-map-pages"},$t=["disabled","aria-label"],Ct=["disabled","aria-label"],Rt={key:3,class:"mr-binding-concurrency"},It=["data-binding-control","value","onChange"],_t={value:""},Mt=["value"],Ft={class:"mr-binding-group",tabindex:"-1","data-binding-control":"footer"},Tt={class:"mr-binding-note"},Kt={class:"mr-binding-region-tools"},Lt=["disabled"],zt=["aria-label"],At=e.defineComponent({__name:"ExcelRegionBindingPanel",props:{controller:{},datasets:{},disabled:{type:Boolean},messages:{}},setup(t){const h=t,c=e.ref(0),g=e.ref(),v=e.ref(""),a=h.controller.active,w=e.computed(()=>h.datasets.find(f=>f.id===a.value?.dataset)),k=e.computed(()=>{if(!a.value)return[];let f=1;try{f=I.parseImportRange(a.value.range).left}catch{}return a.value.fields.slice(c.value*12,c.value*12+12).map((y,r)=>({field:y,index:c.value*12+r,physical:I.columnName(f+c.value*12+r)}))}),E=e.computed(()=>Math.max(1,Math.ceil((a.value?.fields.length??0)/12))),D=e.computed(()=>{const f=v.value.trim().toLocaleLowerCase(),y=w.value?.fields??[],r=y.filter(B=>[B.field,B.label,B.unit].some(H=>H?.toLocaleLowerCase().includes(f))).slice(0,64),V=new Set(k.value.map(B=>B.field));return[...r,...y.filter(B=>V.has(B.field)&&!r.includes(B))]});function L(f){return f.target.value}function U(f){h.controller.setActive(f),c.value=0,v.value=""}e.watch(()=>h.controller.focusTarget.value,async f=>{if(!f)return;c.value=Math.floor((f.target.fieldIndex??0)/12),v.value="",await e.nextTick();const y=f.target.control==="field"?`field-${f.target.fieldIndex}`:f.target.control==="contract"?"dataset":f.target.control,r=g.value?.querySelector(`[data-binding-control="${y}"]`),V=r?.closest("details");V&&(V.open=!0);const B=h.disabled&&r?.matches("input,select,textarea,button")?r.closest("label"):r;B?.focus(),B?.scrollIntoView?.({block:"nearest"})});function G(f){if(!(!a.value||h.disabled)){a.value.range=L(f);try{const y=I.parseImportRange(a.value.range),r=y.right-y.left+1;r<=2048&&(a.value.fields=Array.from({length:r},(V,B)=>a.value.fields[B]??""))}catch{}}}return(f,y)=>(e.openBlock(),e.createElementBlock("section",{ref_key:"panel",ref:g,class:"mr-binding-multi","aria-label":t.messages.multiRegions},[e.createElementVNode("div",qe,[e.createElementVNode("h3",null,[e.createTextVNode(e.toDisplayString(t.messages.multiRegions),1),e.createElementVNode("span",null,e.toDisplayString(t.controller.recipe.value.regions.length)+"/128",1)]),e.createElementVNode("p",Oe,e.toDisplayString(t.messages.multiHint),1),e.createElementVNode("button",{type:"button",class:"mr-binding-add-region",title:t.controller.recipe.value.regions.length>=128?t.messages.limitRegions:t.controller.selection.value?t.messages.addRegion:t.messages.noCellSelection,disabled:t.disabled||!t.controller.selection.value||t.controller.recipe.value.regions.length>=128,onClick:y[0]||(y[0]=(...r)=>t.controller.add&&t.controller.add(...r))},[e.createVNode(_._sfc_main,{name:"grid",size:13}),e.createTextVNode(e.toDisplayString(t.messages.addRegion),1),e.createElementVNode("code",null,e.toDisplayString(t.controller.selection.value||"—"),1)],8,Je),e.createElementVNode("div",je,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.controller.directory.value,r=>(e.openBlock(),e.createElementBlock("div",{key:r.region.id,class:e.normalizeClass(["mr-binding-region-entry",{"is-active":r.region.id===t.controller.activeId.value}]),"data-state":r.state},[e.createElementVNode("button",{type:"button","aria-pressed":r.region.id===t.controller.activeId.value,onClick:V=>U(r.region.id)},[e.createElementVNode("strong",{title:r.region.id},e.toDisplayString(r.region.id),9,Xe),e.createElementVNode("code",null,e.toDisplayString(r.region.range),1),e.createElementVNode("small",null,e.toDisplayString(r.region.mode==="record"?t.messages.recordMode:t.messages.repeatMode)+" · "+e.toDisplayString(r.region.dataset||t.messages.chooseDataset),1),e.createElementVNode("span",Qe,[e.createTextVNode(e.toDisplayString(r.state==="ready"?t.messages.regionReady:r.state==="pending"?t.messages.regionPending:t.messages.regionError),1),r.issues.length?(e.openBlock(),e.createElementBlock("span",Ye," · "+e.toDisplayString(r.issues.length),1)):e.createCommentVNode("",!0)])],8,Ge),e.createElementVNode("button",{type:"button","aria-label":`${t.messages.removeRegion} ${r.region.id}`,disabled:t.disabled,onClick:V=>t.controller.remove(r.region.id)},[e.createVNode(_._sfc_main,{name:"close",size:12})],8,Ze)],10,Ue))),128))])]),e.createElementVNode("fieldset",{disabled:t.disabled,class:"mr-binding-region-editor"},[e.unref(a)?(e.openBlock(),e.createElementBlock("section",tt,[e.createElementVNode("h3",null,[e.createTextVNode(e.toDisplayString(t.messages.regionProperties),1),e.createElementVNode("code",null,e.toDisplayString(e.unref(a).id),1)]),e.createElementVNode("label",nt,[e.createTextVNode(e.toDisplayString(t.messages.regionCoordinates),1),e.createElementVNode("input",{"data-binding-control":"range",value:e.unref(a).range,"aria-label":t.messages.regionCoordinates,onChange:G},null,40,at)]),e.createElementVNode("label",ot,[e.createTextVNode(e.toDisplayString(t.messages.regionMode),1),e.createElementVNode("select",{value:e.unref(a).mode,"aria-label":t.messages.regionMode,onChange:y[1]||(y[1]=r=>t.controller.property("mode",L(r)))},[e.createElementVNode("option",rt,e.toDisplayString(t.messages.recordMode),1),e.createElementVNode("option",it,e.toDisplayString(t.messages.repeatMode),1)],40,lt)]),e.createElementVNode("p",st,e.toDisplayString(e.unref(a).mode==="record"?t.messages.recordHint:t.messages.repeatHint),1),e.createElementVNode("label",ut,[e.createTextVNode(e.toDisplayString(t.messages.dataset),1),e.createElementVNode("select",{"data-binding-control":"dataset",value:e.unref(a).dataset,"aria-label":t.messages.dataset,onChange:y[2]||(y[2]=r=>t.controller.dataset(L(r)))},[e.createElementVNode("option",dt,e.toDisplayString(t.messages.chooseDataset),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.datasets,r=>(e.openBlock(),e.createElementBlock("option",{key:r.id,value:r.id},e.toDisplayString(r.label||r.id),9,gt))),128))],40,ct)]),w.value?(e.openBlock(),e.createElementBlock("label",mt,[e.createTextVNode(e.toDisplayString(t.messages.rowKey),1),e.createElementVNode("select",{"data-binding-control":"rowKey",value:e.unref(a).rowKey,"aria-label":t.messages.rowKey,onChange:y[3]||(y[3]=r=>t.controller.property("rowKey",L(r)))},[e.createElementVNode("option",vt,e.toDisplayString(t.messages.chooseRowKey),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value.fields.filter(r=>r.type!=="boolean"),r=>(e.openBlock(),e.createElementBlock("option",{key:r.field,value:r.field},e.toDisplayString(r.label||r.field),9,bt))),128))],40,ft)])):e.createCommentVNode("",!0),e.createElementVNode("div",pt,[e.createElementVNode("button",{type:"button",disabled:!t.controller.selection.value,onClick:y[4]||(y[4]=(...r)=>t.controller.header&&t.controller.header(...r))},e.toDisplayString(t.messages.bindRegionHeader),9,yt),e.createElementVNode("code",null,e.toDisplayString(e.unref(a).headerRange||t.messages.noRegionHeader),1),e.unref(a).headerRange?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","aria-label":t.messages.clearHeader,onClick:y[5]||(y[5]=(...r)=>t.controller.clearHeader&&t.controller.clearHeader(...r))},[e.createVNode(_._sfc_main,{name:"close",size:11})],8,ht)):e.createCommentVNode("",!0)]),w.value?(e.openBlock(),e.createElementBlock("div",kt,[e.createElementVNode("label",Et,[e.createVNode(_._sfc_main,{name:"search",size:13}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[6]||(y[6]=r=>v.value=r),type:"search",placeholder:t.messages.searchFields,"aria-label":t.messages.searchFields},null,8,Nt),[[e.vModelText,v.value]])]),w.value.fields.length>64?(e.openBlock(),e.createElementBlock("small",Vt,e.toDisplayString(t.messages.fieldLimit),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,r=>(e.openBlock(),e.createElementBlock("label",{key:r.index,class:"mr-binding-map",tabindex:"-1"},[e.createElementVNode("span",null,e.toDisplayString(r.physical),1),e.createElementVNode("div",null,[e.createElementVNode("select",{"data-binding-control":`field-${r.index}`,value:e.unref(a).fields[r.index],onChange:V=>t.controller.mapping(r.index,L(V)),"aria-label":`${t.messages.physical} ${r.physical} · ${t.messages.business}`},[e.createElementVNode("option",St,e.toDisplayString(t.messages.chooseField),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(D.value,V=>(e.openBlock(),e.createElementBlock("option",{key:V.field,value:V.field},e.toDisplayString(V.label||V.field)+" · "+e.toDisplayString(V.field),9,Bt))),128))],40,wt),r.field?(e.openBlock(),e.createElementBlock("small",xt,e.toDisplayString(w.value.fields.find(V=>V.field===r.field)?.type)+" · "+e.toDisplayString(w.value.fields.find(V=>V.field===r.field)?.unit||"—"),1)):e.createCommentVNode("",!0)])]))),128))])):e.createCommentVNode("",!0),E.value>1?(e.openBlock(),e.createElementBlock("div",Dt,[e.createElementVNode("button",{type:"button",disabled:c.value<=0,"aria-label":t.messages.previousColumns,onClick:y[7]||(y[7]=r=>c.value--)},[e.createVNode(_._sfc_main,{name:"chevron-left",size:13})],8,$t),e.createElementVNode("span",null,e.toDisplayString(c.value+1)+"/"+e.toDisplayString(E.value),1),e.createElementVNode("button",{type:"button",disabled:c.value+1>=E.value,"aria-label":t.messages.nextColumns,onClick:y[8]||(y[8]=r=>c.value++)},[e.createVNode(_._sfc_main,{name:"chevron-right",size:13})],8,Ct)])):e.createCommentVNode("",!0),w.value?(e.openBlock(),e.createElementBlock("details",Rt,[e.createElementVNode("summary",null,e.toDisplayString(t.messages.concurrency),1),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["revisionField","sourceTokenField"],r=>e.createElementVNode("label",{key:r,class:"mr-binding-label",tabindex:"-1"},[e.createTextVNode(e.toDisplayString(r==="revisionField"?t.messages.revisionField:t.messages.sourceTokenField),1),e.createElementVNode("select",{"data-binding-control":r,value:e.unref(a)[r]||"",onChange:V=>t.controller.property(r,L(V))},[e.createElementVNode("option",_t,e.toDisplayString(t.messages.optional),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value.fields,V=>(e.openBlock(),e.createElementBlock("option",{key:V.field,value:V.field},e.toDisplayString(V.label||V.field),9,Mt))),128))],40,It)])),64))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("section",Ft,[e.createElementVNode("h3",null,e.toDisplayString(t.messages.flowFooter),1),e.createElementVNode("p",Tt,e.toDisplayString(t.messages.flowFooterHint),1),e.createElementVNode("div",Kt,[e.createElementVNode("button",{type:"button",disabled:!t.controller.selection.value,onClick:y[9]||(y[9]=(...r)=>t.controller.footer&&t.controller.footer(...r))},e.toDisplayString(t.messages.bindFooter),9,Lt),e.createElementVNode("code",null,e.toDisplayString(t.controller.recipe.value.footerRange||"—"),1),t.controller.recipe.value.footerRange?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","aria-label":t.messages.clearFooter,onClick:y[10]||(y[10]=(...r)=>t.controller.clearFooter&&t.controller.clearFooter(...r))},[e.createVNode(_._sfc_main,{name:"close",size:11})],8,zt)):e.createCommentVNode("",!0)])])],8,et)],8,He))}});function ke(t=""){return{version:"2.0",sheet:t,regions:[]}}function Pt(t,h,c,g){const v=e.ref(ke()),a=e.ref(""),w=e.ref(),k=e.ref(),E=e.ref(),D=e.computed(()=>!t.value||!k.value||!E.value?"":I.excelBindingCellRange(t.value,h.value,k.value,E.value)),L=e.computed(()=>({...v.value,regions:v.value.regions.map(u=>({...u,fields:[]}))})),U=e.computed(()=>t.value?I.validateExcelRegionGeometry(t.value,L.value):[]),G=e.computed(()=>{const u=I.validateExcelRegionFields(v.value,g()),b=[...U.value,...u.issues];return{...u,ok:!b.length,issues:b}}),f=e.computed(()=>v.value.regions.find(u=>u.id===a.value));function y(u){return Ve(u,v.value,g())}const r=e.computed(()=>{const u=new Map;for(const b of G.value.issues){const R=y(b);for(const d of Ae(b,v.value,g())){const M=u.get(d)??[];M.push({issue:b,target:{...R,regionId:d}}),u.set(d,M)}}return v.value.regions.map(b=>{const R=u.get(b.id)??[],d=R.length?R.every(M=>We(M.issue,M.target,b))?"pending":"error":"ready";return{region:b,state:d,issues:R}})});function V(u=ke(h.value)){v.value=JSON.parse(JSON.stringify(u)),a.value=v.value.regions[0]?.id??"",k.value=void 0,E.value=void 0,w.value=void 0}function B(u){u.regionId&&(a.value=u.regionId);const b=ie(u);b&&(k.value={row:b.top,column:b.left},E.value={row:b.bottom,column:b.right}),w.value={target:u,sequence:(w.value?.sequence??0)+1}}function H(u){B(y(u))}function i(u,b,R){c.value||((!R||!k.value)&&(k.value={row:u,column:b}),E.value={row:u,column:b})}function $(){if(c.value||!D.value||v.value.regions.length>=128)return;let u=1;for(;v.value.regions.some(d=>d.id===`region-${u}`);)u++;const b=`region-${u}`,R=Math.abs(E.value.column-k.value.column)+1;v.value.regions.push({id:b,range:D.value,mode:"repeat",dataset:"",fields:Array.from({length:R},()=>""),rowKey:""}),a.value=b}function J(u){c.value||(v.value.regions=v.value.regions.filter(b=>b.id!==u),a.value===u&&(a.value=v.value.regions[0]?.id??""))}function C(u){!c.value&&f.value&&(f.value.dataset=u,f.value.rowKey="",f.value.fields.fill(""),delete f.value.revisionField,delete f.value.sourceTokenField)}function P(u,b){if(!(c.value||!f.value)){if(u==="mode"){(b==="record"||b==="repeat")&&(f.value.mode=b);return}b||u==="rowKey"?f.value[u]=b:delete f.value[u]}}function N(u,b){!c.value&&f.value&&u>=0&&u<f.value.fields.length&&(f.value.fields[u]=b)}function K(){!c.value&&f.value&&delete f.value.headerRange}function z(){!c.value&&f.value&&D.value&&(f.value.headerRange=D.value)}function A(){!c.value&&D.value&&(v.value.footerRange=D.value)}function T(){c.value||delete v.value.footerRange}function q(u){const b=v.value.regions.find(R=>R.id===u);b&&B({regionId:u,control:"range",range:b.range})}function O(u,b){return!!k.value&&!!E.value&&u>=Math.min(k.value.row,E.value.row)&&u<=Math.max(k.value.row,E.value.row)&&b>=Math.min(k.value.column,E.value.column)&&b<=Math.max(k.value.column,E.value.column)}return{recipe:v,activeId:a,active:f,selection:D,validation:G,directory:r,focusTarget:w,target:y,locate:H,reset:V,select:i,add:$,remove:J,dataset:C,property:P,mapping:N,header:z,clearHeader:K,footer:A,clearFooter:T,setActive:q,selected:O}}function re(t="",h=0){return{version:"1.0",sheet:t,dataset:"",regions:{header:"",detail:""},fields:Array.from({length:h},()=>""),rowKey:""}}function ge(t){return t instanceof Error?t.message:String(t)}function Wt(t,h){const c=e.shallowRef(),g=e.ref(re()),v=e.ref("table"),a=Pt(c,e.computed(()=>g.value.sheet),e.computed(()=>M.value),()=>t.datasets),w=new Map,k=new Map,E=e.ref({table:[],regions:[]});function D(){w.clear(),k.clear(),E.value={table:[],regions:[]}}function L(){g.value.sheet&&(w.set(g.value.sheet,U(g.value)),k.set(g.value.sheet,JSON.parse(JSON.stringify(a.recipe.value))),E.value={table:[...w.values()],regions:[...k.values()]})}const U=o=>JSON.parse(JSON.stringify(o));function G(o,s){return U(w.get(o)??re(o,s))}const f=e.ref({id:t.identity?.id??"excel-template",name:t.identity?.name??"Excel 业务模板"}),y=e.ref(""),r=e.ref(!1),V=()=>({recipe:g.value,regions:a.recipe.value,mode:v.value,cached:E.value,identity:f.value});let B;function H(o){g.value=U(o.recipe),a.reset(o.regions),v.value=o.mode,f.value={...o.identity,...t.lockId&&t.identity?{id:t.identity.id}:{}},D();for(const s of o.cached.table)w.set(s.sheet,s);for(const s of o.cached.regions)k.set(s.sheet,s);E.value=o.cached}const i=e.ref(0),$=ze.useLocalDraft(()=>({source:i.value,recipe:g.value,mode:v.value,regions:a.recipe.value,cached:E.value,identity:f.value})),J=e.ref([]);let C;function P(){C?.dispose(),C=void 0}const N=e.ref(""),K=e.ref(!1),z=e.ref(!1),A=e.ref(!1),T=e.ref(!1),q=e.ref(1),O=e.ref(1),u=e.ref(),b=e.ref(),R=e.ref(0),d=e.computed(()=>({...he.EXCEL_BINDING_MESSAGES,...t.messages})),M=e.computed(()=>!!t.readonly||K.value||T.value),te=e.computed(()=>!K.value&&!T.value),X=e.computed(()=>c.value?.sheets.find(o=>o.name===g.value.sheet)),x=e.computed(()=>X.value?I.parseImportRange(X.value.range):void 0),se=e.computed(()=>t.datasets.find(o=>o.id===g.value.dataset)),me=e.computed(()=>c.value&&X.value?I.getExcelSheetWindow(c.value,X.value.name,{row:q.value,column:O.value}):void 0),fe=e.computed(()=>c.value?I.validateExcelBindingRegions(c.value,g.value):[]),ve=e.computed(()=>{if(!c.value)return{ok:!1,issues:[],mapped:0,total:0};const o=I.validateExcelBindingFields(c.value,g.value,t.datasets),s=[...fe.value,...o.issues];return{...o,ok:s.length===0,issues:s}}),Y=e.computed(()=>v.value==="regions"?a.validation.value:ve.value),ae=e.ref(),oe=e.computed(()=>v.value==="regions"?a.focusTarget.value:ae.value);function m(o){return v.value==="regions"?a.target(o):Pe(o,g.value)}function l(o){const s={dataset:d.value.dataset,contract:d.value.dataContract,rowKey:d.value.rowKey,range:d.value.regionCoordinates,field:d.value.mapping,fields:d.value.mapping,footer:d.value.flowFooter,header:d.value.headerRegion,detail:d.value.detailRegion,title:d.value.titleRegion,sheet:d.value.sheet,regions:v.value==="regions"?d.value.multiRegions:d.value.regionLegend,revisionField:d.value.revisionField,sourceTokenField:d.value.sourceTokenField},S=ie(o),F=o.fieldIndex===void 0?"":` ${I.columnName(S?.left??o.fieldIndex+1)}`;return`${o.regionId?`${o.regionId} · `:""}${s[o.control]??d.value.regionCoordinates}${F}`}const n=e.computed(()=>Y.value.issues.map(o=>({issue:o,label:l(m(o)),message:o.message.replace(/\$\.recipe\.regions\[(\d+)\]/g,(s,S)=>a.recipe.value.regions[Number(S)]?.id??d.value.regionProperties)})));function p(o){return o?{dataset:d.value.nextDataset,rowKey:d.value.nextRowKey,field:d.value.nextField,fields:d.value.nextField,range:d.value.nextRange,regions:d.value.nextRegion,footer:d.value.nextFooter,header:d.value.nextHeader,detail:d.value.nextHeader,title:d.value.nextHeader}[o.control]??d.value.nextContract:v.value==="regions"?d.value.nextRegion:d.value.nextHeader}const W=e.computed(()=>t.readonly?d.value.readonly:K.value?d.value.loading:T.value?d.value.applying:A.value?d.value.applied:Y.value.ok?d.value.ready:p(Y.value.issues[0]?m(Y.value.issues[0]):void 0));e.watch(oe,o=>{const s=o&&ie(o.target);!s||!x.value||(q.value=Math.max(x.value.top,Math.min(x.value.bottom,s.top)),O.value=Math.max(x.value.left,Math.min(x.value.right,s.left)))});function ue(o){if(v.value==="regions"){a.locate(o);return}const s=m(o),S=ie(s);S&&(u.value=S.top,b.value=S.bottom),s.fieldIndex!==void 0&&(R.value=Math.floor(s.fieldIndex/12)),ae.value={target:s,sequence:(ae.value?.sequence??0)+1}}const ce=e.computed(()=>g.value.fields.slice(R.value*12,(R.value+1)*12).map((o,s)=>({index:R.value*12+s,field:o,physical:I.columnName((x.value?.left??1)+R.value*12+s)}))),we=e.computed(()=>se.value?.fields.filter(o=>o.type!=="boolean")??[]),de=e.computed(()=>u.value!==void 0&&b.value!==void 0?{top:Math.min(u.value,b.value),bottom:Math.max(u.value,b.value)}:void 0);let Q,j=0;function Z(){j++,Q?.abort(),Q=void 0,K.value=!1}function le(){q.value=x.value?.top??1,O.value=x.value?.left??1,u.value=void 0,b.value=void 0,R.value=0,z.value=!1,A.value=!1}function pe(o){Z();try{const s=o.version==="2.0"?I.parseExcelRegionBindingSession(o):I.parseExcelBindingSession(o);Z(),P(),J.value=s.source.sheets.map(S=>({name:S.name,index:S.index})),c.value=s.source,D(),s.version==="2.0"?(g.value=re(s.recipe.sheet,s.source.sheets.find(S=>S.name===s.recipe.sheet).columnCount),a.reset(s.recipe),v.value="regions"):(g.value=s.recipe,a.reset(),v.value="table"),f.value={...s.identity,...t.lockId&&t.identity?{id:t.identity.id}:{}},y.value=s.recipe.sheet,N.value="",le(),i.value++,$.accept()}catch(s){N.value=ge(s)}}e.watch(()=>t.session,o=>{o&&pe(o)},{immediate:!0}),e.watch(()=>t.readonly,o=>{o&&(Z(),P())}),e.watch([g,f,v,a.recipe],()=>{z.value=!1,A.value=!1},{deep:!0,flush:"sync"}),e.watch(()=>t.datasets,()=>{z.value=!1,A.value=!1}),e.onBeforeUnmount(()=>{Z(),P()});async function Se(o){if(t.readonly)return;if(Z(),!/\.xlsx$/i.test(o.name)){N.value=d.value.invalidFile;return}const s=++j;Q=new AbortController,K.value=!0,N.value="";let S;try{const{openExcelWorkbook:F}=await Promise.resolve().then(()=>require("./workbook-session-DNa2RHNG.cjs")).then(ee=>ee.workbookSession);if(s!==j||t.readonly||(S=await F(o,{...t.importOptions,signal:Q.signal}),s!==j||t.readonly))return;const ne=S.inspect().sheets.filter(ee=>ee.visible);if(!ne.length)throw new Error("Excel 中没有可导入的可见工作表");const ye=B?.recipe.sheet||ne[0].name;if(!ne.some(ee=>ee.name===ye))throw new Error(d.value.recoveredSheetMissing);const be=await S.importTemplate({sheets:[ye],signal:Q.signal});if(s!==j||t.readonly)return;P(),C=S,S=void 0,c.value=be,i.value++,y.value=o.name,J.value=ne.map(ee=>({name:ee.name,index:ee.index})),D(),g.value=re(be.sheets[0].name,be.sheets[0].columnCount),a.reset(),B&&(H(B),B=void 0,r.value=!1),le()}catch(F){s===j&&(N.value=ge(F))}finally{S?.dispose(),s===j&&(K.value=!1,Q=void 0)}}async function Be(o){if(M.value||!J.value.some(F=>F.name===o)||g.value.sheet===o)return;L();const s=c.value?.sheets.find(F=>F.name===o);if(s){g.value=G(o,s.columnCount),a.reset(k.get(o)),N.value="",le();return}if(!C||C.disposed)return;Z();const S=++j;Q=new AbortController,K.value=!0,N.value="";try{const F=await C.importTemplate({sheets:[o],signal:Q.signal});if(S!==j||t.readonly)return;c.value=F,g.value=G(o,F.sheets[0].columnCount),a.reset(k.get(o)),le()}catch(F){S===j&&(N.value=ge(F))}finally{S===j&&(K.value=!1,Q=void 0)}}function xe(o){M.value||(g.value.dataset=o,g.value.rowKey="",g.value.fields.fill(""),z.value=!1,A.value=!1)}function De(o,s){M.value||!x.value||o<x.value.top||o>x.value.bottom||((!s||u.value===void 0)&&(u.value=o),b.value=o)}function $e(o){if(M.value||!c.value||!de.value){M.value||(N.value=d.value.emptySelection);return}g.value.regions[o]=I.excelBindingRowRange(c.value,g.value.sheet,de.value.top,de.value.bottom),z.value=!1,A.value=!1,N.value=""}function Ce(o){M.value||(delete g.value.regions[o],z.value=!1,A.value=!1)}function Re(o,s){!M.value&&o>=0&&o<g.value.fields.length&&(g.value.fields[o]=s,z.value=!1,A.value=!1)}function Ie(o){M.value||(g.value.rowKey=o)}function _e(o,s){!M.value&&!(o==="id"&&t.lockId)&&(f.value[o]=s)}function Me(o){for(const s of["title","header","detail","footer"]){const S=g.value.regions[s];if(!S)continue;const F=I.parseImportRange(S);if(o>=F.top&&o<=F.bottom)return s}}function Fe(o,s){x.value&&(o==="row"?q.value=Math.max(x.value.top,Math.min(x.value.bottom,q.value+s)):O.value=Math.max(x.value.left,Math.min(x.value.right,O.value+s)))}function Te(){if(!t.readonly){if(t.session){pe(t.session);return}B=void 0,r.value=!1,Z(),P(),c.value=void 0,J.value=[],y.value="",D(),g.value=re(),f.value={id:t.identity?.id??"excel-template",name:t.identity?.name??"Excel 业务模板"},a.reset(),v.value="table",le(),i.value++,$.accept(),N.value=""}}function Ke(){te.value&&(z.value=!0,N.value="")}async function Le(){if(!(M.value||!c.value||r.value)&&(z.value=!0,N.value="",!!Y.value.ok)){T.value=!0;try{const o={...f.value,...t.lockId&&t.identity?{id:t.identity.id}:{}},s=v.value==="regions"?I.createExcelRegionBindingDocument(c.value,a.recipe.value,t.datasets,o):I.createExcelBindingDocument(c.value,g.value,t.datasets,o),S=v.value==="regions"?I.createExcelRegionBindingSession(c.value,a.recipe.value,o):I.createExcelBindingSession(c.value,g.value,o),F={...s,session:S},ne=$.snapshot();if(t.accept&&!await t.accept(F)||t.readonly||ne!==$.snapshot()&&$.pending.value)return;t.accept||h(F),D(),$.accept(),A.value=!0}catch(o){N.value=ge(o)}finally{T.value=!1}}}return he.useTemplateToolDraft({key:()=>"excel",baseline:()=>"declarations-only",pending:()=>$.pending.value||r.value,snapshot:()=>JSON.stringify(V()),restore(o){const s=JSON.parse(o);if(!s.recipe||!s.regions||!Array.isArray(s.cached?.table)||!Array.isArray(s.cached?.regions))throw new Error("Invalid Excel mapping draft");H(s),B=s,r.value=!0}}),{recoveredMapping:r,imported:c,mode:v,regionBindings:a,pendingLocalChanges:e.computed(()=>$.pending.value||r.value),recipe:g,identity:f,sourceName:y,sheetChoices:J,error:N,loading:K,checked:z,applied:A,row:q,column:O,mappingPage:R,m:d,disabled:M,canCheck:te,sheet:X,sourceRange:x,dataset:se,window:me,validation:Y,focusTarget:oe,issueEntries:n,guidance:W,locateIssue:ue,mappings:ce,rowKeys:we,selection:de,cancel:Z,importFile:Se,chooseSheet:Be,chooseDataset:xe,chooseRow:De,markRegion:$e,clearRegion:Ce,setMapping:Re,setRowKey:Ie,setIdentity:_e,regionAt:Me,moveWindow:Fe,check:Ke,restoreDraft:Te,apply:Le}}const Ht=["aria-label","aria-busy"],qt={key:0,role:"status",class:"mr-binding-recovery"},Ot={class:"mr-binding-bar"},Jt={class:"mr-binding-heading"},jt=["aria-label","disabled"],Ut=["disabled"],Gt={key:1,class:"mr-binding-error",role:"alert"},Xt={key:2,class:"mr-binding-placeholder",role:"status"},Qt={key:3,class:"mr-binding-placeholder"},Yt=["disabled"],Zt={class:"mr-binding-sourcebar"},en=["value","aria-label","disabled"],tn=["value"],nn=["aria-label"],an=["aria-pressed","disabled"],on=["aria-pressed","disabled"],ln={class:"mr-binding-range"},rn={class:"mr-binding-sample-note"},sn={class:"mr-binding-layout"},un={class:"mr-binding-source"},cn={class:"mr-binding-grid-heading"},dn=["aria-label"],gn={class:"mr-binding-grid"},mn=["data-region"],fn={scope:"row"},vn=["data-source-row","aria-label","aria-pressed","disabled","onPointerdown","onPointerenter","onKeydown"],bn=["rowspan","colspan","title","data-source-cell","tabindex","aria-label","aria-selected","onPointerdown","onPointerenter","onKeydown"],pn={key:1,class:"mr-binding-grid-footer"},yn={class:"mr-binding-window"},hn=["aria-label","disabled"],kn=["min","max","value","aria-label"],En=["aria-label","disabled"],Nn={class:"mr-binding-window"},Vn=["aria-label","disabled"],wn=["min","max","value","aria-label"],Sn=["aria-label","disabled"],Bn={class:"mr-binding-inspector"},xn=["disabled"],Dn={class:"mr-binding-group"},$n=["data-role"],Cn={key:0},Rn=["aria-label","data-binding-control","title","disabled","onClick"],In=["aria-label","onClick"],_n={key:0,class:"mr-binding-note"},Mn={class:"mr-binding-group"},Fn={class:"mr-binding-label",tabindex:"-1"},Tn=["value","aria-label"],Kn={value:""},Ln=["value"],zn={key:0,class:"mr-binding-note"},An={key:1,class:"mr-binding-label",tabindex:"-1"},Pn=["value","aria-label"],Wn={value:""},Hn=["value"],qn={key:2,class:"mr-binding-mappings"},On=["data-binding-control","aria-label","value","onChange"],Jn={value:""},jn=["value"],Un={key:0},Gn={key:3,class:"mr-binding-map-pages"},Xn=["disabled","aria-label"],Qn=["disabled","aria-label"],Yn=["disabled"],Zn={class:"mr-binding-group"},ea={class:"mr-binding-label"},ta=["value","readonly"],na={class:"mr-binding-label"},aa=["value"],oa={key:0,class:"mr-binding-issues",open:""},la=["aria-label","onClick"],ra={key:0,class:"mr-binding-issue-pages"},ia=["disabled","aria-label"],sa=["disabled","aria-label"],ua={key:1,class:"mr-binding-warnings"},ca={class:"mr-binding-actions"},da=["title"],ga=["disabled"],ma=["disabled"],fa=["disabled","title"],va=e.defineComponent({__name:"ExcelBindingWizard",props:{datasets:{},accept:{type:Function},session:{},identity:{},lockId:{type:Boolean},readonly:{type:Boolean},importOptions:{},messages:{}},emits:["apply","dirty"],setup(t,{expose:h,emit:c}){const g=t,v=c,a=Wt(g,m=>v("apply",m)),{imported:w,mode:k,regionBindings:E,recipe:D,identity:L,sourceName:U,sheetChoices:G,error:f,loading:y,checked:r,row:V,column:B,mappingPage:H,m:i,disabled:$,sheet:J,sourceRange:C,dataset:P,window:N,validation:K,mappings:z,rowKeys:A,selection:T}=a;e.watch([a.pendingLocalChanges,D,L],()=>v("dirty",a.pendingLocalChanges.value),{immediate:!0,deep:!0,flush:"sync"});const q=e.ref(),O=e.ref(),u=e.ref(0),b=e.computed(()=>Math.max(1,Math.ceil(a.issueEntries.value.length/12))),R=e.computed(()=>a.issueEntries.value.slice(u.value*12,(u.value+1)*12));e.watch(b,m=>{u.value=Math.min(u.value,m-1)}),e.watch(a.focusTarget,async m=>{if(!m)return;await e.nextTick();const l=ie(m.target);if(l&&O.value?.querySelector(`td[data-source-cell="${l.top}:${l.left}"]`)?.scrollIntoView?.({block:"nearest",inline:"nearest"}),k.value==="regions")return;const n=m.target.control==="field"?`field-${m.target.fieldIndex}`:m.target.control==="contract"?"dataset":m.target.control,p=O.value?.querySelector(`.mr-binding-table-editor [data-binding-control="${n}"]`),W=$.value?p?.closest("label"):p;W?.focus(),W?.scrollIntoView?.({block:"nearest"})});const d=e.ref(!1),M=["title","header","detail","footer"],te=e.computed(()=>({title:i.value.titleRegion,header:i.value.headerRegion,detail:i.value.detailRegion,footer:i.value.footerRegion})),X=e.computed(()=>Math.max(1,Math.ceil(D.value.fields.length/12)));function x(m){return m.target.value}function se(m){const l=m.target,n=l.files?.[0];n&&a.importFile(n),l.value=""}function me(m,l){m.button!==0||$.value||(m.preventDefault(),d.value=!0,a.chooseRow(l,m.shiftKey),k.value==="regions"&&C.value&&(E.select(l,C.value.left,!1),E.select(l,C.value.right,!0)),m.currentTarget.focus())}function fe(m,l,n){k.value!=="regions"||m.button!==0||$.value||(m.preventDefault(),d.value=!0,E.select(l,n,m.shiftKey),m.currentTarget.focus())}function ve(m,l,n){if(k.value!=="regions")return;(m.key===" "||m.key==="Enter")&&(m.preventDefault(),E.select(l,n,m.shiftKey));const W={ArrowUp:[-1,0],ArrowDown:[1,0],ArrowLeft:[0,-1],ArrowRight:[0,1]}[m.key];if(!W||!C.value)return;m.preventDefault();const ue=Math.max(C.value.top,Math.min(C.value.bottom,l+W[0])),ce=Math.max(C.value.left,Math.min(C.value.right,n+W[1]));m.shiftKey&&E.select(ue,ce,!0),m.currentTarget.closest("table")?.querySelector(`td[data-source-cell="${ue}:${ce}"]`)?.focus()}function Y(m,l){if((m.key===" "||m.key==="Enter")&&(m.preventDefault(),a.chooseRow(l,m.shiftKey)),m.key==="ArrowDown"||m.key==="ArrowUp"){m.preventDefault();const n=l+(m.key==="ArrowDown"?1:-1);m.shiftKey&&a.chooseRow(n,!0),m.currentTarget.closest("table")?.querySelector(`button[data-source-row="${n}"]`)?.focus()}}function ae(m){const l=P.value?.fields.find(n=>n.field===m);return l?[l.type,l.unit,l.digits===void 0?void 0:`${l.digits}${i.value.precision}`,l.sample===void 0?void 0:`${i.value.sample}: ${String(l.sample)}`].filter(n=>n!==void 0&&n!=="").join(" · "):""}function oe(m,l){const n=Number(x(m));!Number.isInteger(n)||!C.value||(l==="row"?V.value=Math.max(C.value.top,Math.min(C.value.bottom,n)):B.value=Math.max(C.value.left,Math.min(C.value.right,n)))}return h({get pendingLocalChanges(){return a.pendingLocalChanges.value},importFile:a.importFile,apply:a.apply,cancel:a.cancel}),(m,l)=>(e.openBlock(),e.createElementBlock("section",{ref_key:"element",ref:O,class:"mr-binding","aria-label":e.unref(i).title,"aria-busy":e.unref(y),onPointerup:l[23]||(l[23]=n=>d.value=!1),onPointercancel:l[24]||(l[24]=n=>d.value=!1),onPointerleave:l[25]||(l[25]=n=>d.value=!1)},[e.unref(a).recoveredMapping.value?(e.openBlock(),e.createElementBlock("p",qt,e.toDisplayString(e.unref(i).recoveredMapping),1)):e.createCommentVNode("",!0),e.createElementVNode("header",Ot,[e.createElementVNode("div",Jt,[e.createVNode(_._sfc_main,{name:"file",size:17}),e.createElementVNode("strong",null,e.toDisplayString(e.unref(i).title),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(U)||e.unref(i).intro),1)]),e.createElementVNode("input",{ref_key:"input",ref:q,type:"file",accept:".xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","aria-label":e.unref(i).upload,class:"mr-binding-file",disabled:t.readonly,onChange:se},null,40,jt),e.unref(y)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:l[0]||(l[0]=(...n)=>e.unref(a).cancel&&e.unref(a).cancel(...n))},e.toDisplayString(e.unref(i).cancel),1)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:t.readonly,onClick:l[1]||(l[1]=n=>q.value?.click())},[e.createVNode(_._sfc_main,{name:"upload",size:14}),e.createTextVNode(e.toDisplayString(e.unref(w)?e.unref(i).replace:e.unref(i).upload),1)],8,Ut))]),e.unref(f)?(e.openBlock(),e.createElementBlock("div",Gt,e.toDisplayString(e.unref(f)),1)):e.createCommentVNode("",!0),e.unref(y)?(e.openBlock(),e.createElementBlock("div",Xt,[l[26]||(l[26]=e.createElementVNode("span",{class:"mr-binding-loader"},null,-1)),e.createTextVNode(e.toDisplayString(e.unref(i).loading),1)])):e.unref(w)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createElementVNode("div",Zt,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(i).sheet),1),e.createElementVNode("select",{value:e.unref(D).sheet,"aria-label":e.unref(i).sheet,disabled:e.unref($),onChange:l[3]||(l[3]=n=>e.unref(a).chooseSheet(x(n)))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(G),n=>(e.openBlock(),e.createElementBlock("option",{key:n.name,value:n.name},e.toDisplayString(n.name),9,tn))),128))],40,en)]),e.createElementVNode("div",{class:"mr-binding-mode",role:"group","aria-label":e.unref(i).regionMode},[e.createElementVNode("button",{type:"button","aria-pressed":e.unref(k)==="table",disabled:e.unref($),onClick:l[4]||(l[4]=n=>k.value="table")},e.toDisplayString(e.unref(i).tableMode),9,an),e.createElementVNode("button",{type:"button","aria-pressed":e.unref(k)==="regions",disabled:e.unref($),onClick:l[5]||(l[5]=n=>k.value="regions")},[e.createVNode(_._sfc_main,{name:"grid",size:12}),e.createTextVNode(e.toDisplayString(e.unref(i).multiRegions),1)],8,on)],8,nn),e.createElementVNode("span",ln,e.toDisplayString(e.unref(J)?.range)+" · "+e.toDisplayString(e.unref(J)?.rowCount)+" × "+e.toDisplayString(e.unref(J)?.columnCount),1),e.createElementVNode("span",rn,e.toDisplayString(e.unref(i).sourceOnly),1)]),e.createElementVNode("div",sn,[e.createElementVNode("div",un,[e.createElementVNode("div",cn,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(i).source),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(k)==="regions"?e.unref(i).multiHint:e.unref(i).sourceHint),1)]),e.unref(N)?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mr-binding-grid-scroll","aria-label":e.unref(i).source},[e.createElementVNode("table",gn,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[l[28]||(l[28]=e.createElementVNode("th",{class:"mr-binding-corner","aria-label":"#"},"#",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N).columns,n=>(e.openBlock(),e.createElementBlock("th",{key:n.column,scope:"col"},e.toDisplayString(n.name),1))),128))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N).rows,n=>(e.openBlock(),e.createElementBlock("tr",{key:n.row,"data-region":e.unref(a).regionAt(n.row),class:e.normalizeClass({"is-selected":e.unref(T)&&n.row>=e.unref(T).top&&n.row<=e.unref(T).bottom})},[e.createElementVNode("th",fn,[e.createElementVNode("button",{type:"button","data-source-row":n.row,"aria-label":`${e.unref(i).selectionLabel} ${n.row}`,"aria-pressed":!!e.unref(T)&&n.row>=e.unref(T).top&&n.row<=e.unref(T).bottom,disabled:e.unref($),onPointerdown:p=>me(p,n.row),onPointerenter:p=>d.value&&e.unref(a).chooseRow(n.row,!0),onKeydown:p=>Y(p,n.row)},e.toDisplayString(n.row),41,vn)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.cells,p=>(e.openBlock(),e.createElementBlock("td",{key:p.column,rowspan:p.rowSpan,colspan:p.colSpan,title:`${p.address} · ${p.text}`,"data-source-cell":`${p.row}:${p.column}`,tabindex:e.unref(k)==="regions"?0:void 0,"aria-label":e.unref(k)==="regions"?`${e.unref(i).selectionCellLabel} ${p.address}`:void 0,"aria-selected":e.unref(k)==="regions"?e.unref(E).selected(p.row,p.column):void 0,class:e.normalizeClass({"is-continued":p.continued,"is-cell-selected":e.unref(k)==="regions"&&e.unref(E).selected(p.row,p.column)}),onPointerdown:W=>fe(W,p.row,p.column),onPointerenter:W=>e.unref(k)==="regions"&&d.value&&e.unref(E).select(p.row,p.column,!0),onKeydown:W=>ve(W,p.row,p.column),style:e.normalizeStyle({textAlign:p.style?.align,fontWeight:p.style?.bold?"600":void 0})},[e.createElementVNode("span",null,e.toDisplayString(p.text),1)],46,bn))),128))],10,mn))),128))])])],8,dn)):e.createCommentVNode("",!0),e.unref(N)?(e.openBlock(),e.createElementBlock("footer",pn,[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref(i).selected)+" ",1),e.createElementVNode("strong",null,e.toDisplayString(e.unref(k)==="regions"?e.unref(E).selection.value||"—":e.unref(T)?`${e.unref(T).top}–${e.unref(T).bottom}`:"—"),1)]),e.createElementVNode("div",yn,[e.createElementVNode("button",{type:"button","aria-label":e.unref(i).previousRows,disabled:e.unref(N).top<=e.unref(N).source.top,onClick:l[6]||(l[6]=n=>e.unref(a).moveWindow("row",-24))},[e.createVNode(_._sfc_main,{name:"chevron-left",size:13})],8,hn),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(i).rowStart),1),e.createElementVNode("input",{type:"number",min:e.unref(N).source.top,max:e.unref(N).source.bottom,value:e.unref(V),"aria-label":e.unref(i).rowStart,onChange:l[7]||(l[7]=n=>oe(n,"row"))},null,40,kn)]),e.createElementVNode("button",{type:"button","aria-label":e.unref(i).nextRows,disabled:e.unref(N).bottom>=e.unref(N).source.bottom,onClick:l[8]||(l[8]=n=>e.unref(a).moveWindow("row",24))},[e.createVNode(_._sfc_main,{name:"chevron-right",size:13})],8,En)]),e.createElementVNode("div",Nn,[e.createElementVNode("button",{type:"button","aria-label":e.unref(i).previousColumns,disabled:e.unref(N).left<=e.unref(N).source.left,onClick:l[9]||(l[9]=n=>e.unref(a).moveWindow("column",-12))},[e.createVNode(_._sfc_main,{name:"chevron-left",size:13})],8,Vn),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(i).columnStart),1),e.createElementVNode("input",{type:"number",min:e.unref(N).source.left,max:e.unref(N).source.right,value:e.unref(B),"aria-label":e.unref(i).columnStart,onChange:l[10]||(l[10]=n=>oe(n,"column"))},null,40,wn)]),e.createElementVNode("button",{type:"button","aria-label":e.unref(i).nextColumns,disabled:e.unref(N).right>=e.unref(N).source.right,onClick:l[11]||(l[11]=n=>e.unref(a).moveWindow("column",12))},[e.createVNode(_._sfc_main,{name:"chevron-right",size:13})],8,Sn)])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Bn,[e.unref(k)==="regions"?(e.openBlock(),e.createBlock(At,{key:0,controller:e.unref(E),datasets:t.datasets,disabled:e.unref($),messages:e.unref(i)},null,8,["controller","datasets","disabled","messages"])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("fieldset",{disabled:e.unref($),class:"mr-binding-table-editor"},[e.createElementVNode("section",Dn,[e.createElementVNode("h3",null,[l[29]||(l[29]=e.createElementVNode("b",null,"1",-1)),e.createTextVNode(e.toDisplayString(e.unref(i).regionLegend),1)]),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(M,n=>e.createElementVNode("div",{key:n,class:"mr-binding-region","data-role":n},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,[e.createTextVNode(e.toDisplayString(te.value[n]),1),n==="title"||n==="footer"?(e.openBlock(),e.createElementBlock("small",Cn,e.toDisplayString(e.unref(i).optional),1)):e.createCommentVNode("",!0)]),e.createElementVNode("code",null,e.toDisplayString(e.unref(D).regions[n]||e.unref(i).unnamed),1)]),e.createElementVNode("button",{type:"button","aria-label":`${e.unref(i).selectRegion} · ${te.value[n]}`,"data-binding-control":n,title:e.unref(T)?`${e.unref(i).selectRegion} · ${te.value[n]}`:e.unref(i).emptySelection,disabled:!e.unref(T),onClick:p=>e.unref(a).markRegion(n)},[e.createVNode(_._sfc_main,{name:"arrow-right",size:13})],8,Rn),(n==="title"||n==="footer")&&e.unref(D).regions[n]?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","aria-label":`${e.unref(i).clear} · ${te.value[n]}`,onClick:p=>e.unref(a).clearRegion(n)},[e.createVNode(_._sfc_main,{name:"close",size:13})],8,In)):e.createCommentVNode("",!0)],8,$n)),64)),e.unref(D).regions.footer?(e.openBlock(),e.createElementBlock("p",_n,e.toDisplayString(e.unref(i).footerHint),1)):e.createCommentVNode("",!0)]),e.createElementVNode("section",Mn,[e.createElementVNode("h3",null,[l[30]||(l[30]=e.createElementVNode("b",null,"2",-1)),e.createTextVNode(e.toDisplayString(e.unref(i).mapping),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(K).mapped)+"/"+e.toDisplayString(e.unref(K).total),1)]),e.createElementVNode("label",Fn,[e.createTextVNode(e.toDisplayString(e.unref(i).dataset),1),e.createElementVNode("select",{"data-binding-control":"dataset",value:e.unref(D).dataset,"aria-label":e.unref(i).dataset,onChange:l[12]||(l[12]=n=>e.unref(a).chooseDataset(x(n)))},[e.createElementVNode("option",Kn,e.toDisplayString(e.unref(i).chooseDataset),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.datasets,n=>(e.openBlock(),e.createElementBlock("option",{key:n.id,value:n.id},e.toDisplayString(n.label||n.id),9,Ln))),128))],40,Tn)]),t.datasets.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",zn,e.toDisplayString(e.unref(i).noContract),1)),e.unref(P)?(e.openBlock(),e.createElementBlock("label",An,[e.createTextVNode(e.toDisplayString(e.unref(i).rowKey),1),e.createElementVNode("select",{"data-binding-control":"rowKey",value:e.unref(D).rowKey,"aria-label":e.unref(i).rowKey,onChange:l[13]||(l[13]=n=>e.unref(a).setRowKey(x(n)))},[e.createElementVNode("option",Wn,e.toDisplayString(e.unref(i).chooseRowKey),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(A),n=>(e.openBlock(),e.createElementBlock("option",{key:n.field,value:n.field},e.toDisplayString(n.label||n.field)+" · "+e.toDisplayString(n.field),9,Hn))),128))],40,Pn)])):e.createCommentVNode("",!0),e.unref(P)?(e.openBlock(),e.createElementBlock("div",qn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(z),n=>(e.openBlock(),e.createElementBlock("label",{key:n.index,class:"mr-binding-map",tabindex:"-1"},[e.createElementVNode("span",null,e.toDisplayString(n.physical),1),e.createElementVNode("div",null,[e.createElementVNode("select",{"data-binding-control":`field-${n.index}`,"aria-label":`${e.unref(i).physical} ${n.physical} · ${e.unref(i).business}`,value:n.field,onChange:p=>e.unref(a).setMapping(n.index,x(p))},[e.createElementVNode("option",Jn,e.toDisplayString(e.unref(i).chooseField),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(P).fields,p=>(e.openBlock(),e.createElementBlock("option",{key:p.field,value:p.field},e.toDisplayString(p.label||p.field)+" · "+e.toDisplayString(p.field),9,jn))),128))],40,On),n.field?(e.openBlock(),e.createElementBlock("small",Un,e.toDisplayString(ae(n.field)),1)):e.createCommentVNode("",!0)])]))),128))])):e.createCommentVNode("",!0),e.unref(P)&&X.value>1?(e.openBlock(),e.createElementBlock("div",Gn,[e.createElementVNode("button",{type:"button",disabled:e.unref(H)<=0,"aria-label":e.unref(i).previousColumns,onClick:l[14]||(l[14]=n=>H.value--)},[e.createVNode(_._sfc_main,{name:"chevron-left",size:13})],8,Xn),e.createElementVNode("span",null,e.toDisplayString(e.unref(H)+1)+" / "+e.toDisplayString(X.value),1),e.createElementVNode("button",{type:"button",disabled:e.unref(H)+1>=X.value,"aria-label":e.unref(i).nextColumns,onClick:l[15]||(l[15]=n=>H.value++)},[e.createVNode(_._sfc_main,{name:"chevron-right",size:13})],8,Qn)])):e.createCommentVNode("",!0)])],8,xn),[[e.vShow,e.unref(k)==="table"]]),e.createElementVNode("fieldset",{disabled:e.unref($)},[e.createElementVNode("section",Zn,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(i).identity),1),e.createElementVNode("label",ea,[e.createTextVNode(e.toDisplayString(e.unref(i).templateId),1),e.createElementVNode("input",{value:t.lockId?g.identity?.id??e.unref(L).id:e.unref(L).id,autocomplete:"off",readonly:t.lockId,onInput:l[16]||(l[16]=n=>e.unref(a).setIdentity("id",x(n)))},null,40,ta)]),e.createElementVNode("label",na,[e.createTextVNode(e.toDisplayString(e.unref(i).templateName),1),e.createElementVNode("input",{value:e.unref(L).name,autocomplete:"off",onInput:l[17]||(l[17]=n=>e.unref(a).setIdentity("name",x(n)))},null,40,aa)])])],8,Yn)])]),e.unref(r)&&e.unref(K).issues.length?(e.openBlock(),e.createElementBlock("details",oa,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(i).issues)+" · "+e.toDisplayString(e.unref(K).issues.length)+" "+e.toDisplayString(e.unref(i).errors),1),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(R.value,n=>(e.openBlock(),e.createElementBlock("li",{key:`${n.issue.path}:${n.issue.message}`},[e.createElementVNode("button",{type:"button",class:"mr-binding-issue-link","aria-label":`${e.unref(i).locateIssue} · ${n.label}`,onClick:p=>e.unref(a).locateIssue(n.issue)},[e.createElementVNode("strong",null,e.toDisplayString(n.label),1),e.createElementVNode("span",null,e.toDisplayString(n.message),1),e.createVNode(_._sfc_main,{name:"arrow-right",size:12})],8,la)]))),128))]),b.value>1?(e.openBlock(),e.createElementBlock("div",ra,[e.createElementVNode("button",{type:"button",disabled:u.value===0,"aria-label":e.unref(i).previousIssues,onClick:l[18]||(l[18]=n=>u.value--)},[e.createVNode(_._sfc_main,{name:"chevron-left",size:12})],8,ia),e.createElementVNode("span",null,e.toDisplayString(u.value+1)+"/"+e.toDisplayString(b.value),1),e.createElementVNode("button",{type:"button",disabled:u.value+1>=b.value,"aria-label":e.unref(i).nextIssues,onClick:l[19]||(l[19]=n=>u.value++)},[e.createVNode(_._sfc_main,{name:"chevron-right",size:12})],8,sa)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.unref(w).warnings.length?(e.openBlock(),e.createElementBlock("details",ua,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(i).inspectWarning)+" · "+e.toDisplayString(e.unref(w).warnings.length),1),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(w).warnings,(n,p)=>(e.openBlock(),e.createElementBlock("li",{key:p},e.toDisplayString(n),1))),128))])])):e.createCommentVNode("",!0),e.createElementVNode("footer",ca,[e.createElementVNode("span",{class:e.normalizeClass({"is-ready":e.unref(K).ok}),role:"status",title:e.unref(a).guidance.value},e.toDisplayString(e.unref(a).guidance.value),11,da),e.unref(a).pendingLocalChanges.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:e.unref($),onClick:l[20]||(l[20]=(...n)=>e.unref(a).restoreDraft&&e.unref(a).restoreDraft(...n))},e.toDisplayString(e.unref(i).restoreDraft),9,ga)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",disabled:!e.unref(a).canCheck.value,onClick:l[21]||(l[21]=(...n)=>e.unref(a).check&&e.unref(a).check(...n))},e.toDisplayString(e.unref(i).check),9,ma),e.createElementVNode("button",{type:"button",class:"mr-binding-primary",disabled:e.unref($)||!e.unref(K).ok,title:e.unref(a).guidance.value,onClick:l[22]||(l[22]=(...n)=>e.unref(a).apply&&e.unref(a).apply(...n))},e.toDisplayString(e.unref(i).apply),9,fa)])],64)):(e.openBlock(),e.createElementBlock("div",Qt,[l[27]||(l[27]=e.createElementVNode("svg",{viewBox:"0 0 80 80",fill:"none","aria-hidden":"true"},[e.createElementVNode("rect",{x:"15",y:"10",width:"50",height:"60",rx:"8",fill:"#eff6ff",stroke:"#bfdbfe"}),e.createElementVNode("path",{d:"M25 25h30M25 35h30M25 45h30M35 25v30M45 25v30M25 55h30",stroke:"#93c5fd","stroke-width":"1.5"})],-1)),e.createElementVNode("strong",null,e.toDisplayString(e.unref(i).noSource),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(i).sourceOnly),1),e.createElementVNode("button",{type:"button",class:"mr-binding-primary",disabled:t.readonly,onClick:l[2]||(l[2]=n=>q.value?.click())},e.toDisplayString(e.unref(i).upload),9,Yt)]))],40,Ht))}});exports.default=va;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),I=require("./region-binding-workflow-DIYJdCUr.cjs"),_=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),he=require("./designer-BT7XCdbW.cjs"),ze=require("./useLocalDraft-CioIfDb6.cjs");function Ee(t,h){const c=/^\$\.datasets\[(\d+)\]/.exec(t.path)?.[1];return c!==void 0?h[Number(c)]?.id:h.find(g=>t.path.startsWith(`$.datasets.${g.id}.samples`))?.id}function Ne(t,h){const c=/\.fields\[(\d+)\]/.exec(t)?.[1];return c!==void 0?{control:"field",fieldIndex:Number(c)}:{control:t.split(".").at(-1)||h}}function Ve(t,h,c){const g=/^\$\.recipe\.regions\[(\d+)\]/.exec(t.path)?.[1],v=Ee(t,c),a=g===void 0?h.regions.find(E=>E.dataset===v):h.regions[Number(g)];if(!a)return{control:t.path.endsWith("footerRange")?"footer":"regions",...h.footerRange?{range:h.footerRange}:{}};if(t.path.startsWith("$.datasets"))return{regionId:a.id,range:a.range,control:t.code==="row-key"?"rowKey":"contract"};const w=Ne(t.path,"range"),k=t.code==="row-key"?"rowKey":w.control.startsWith("regions[")?"range":w.control;return{...w,control:k,regionId:a.id,range:a.range}}function Ae(t,h,c){if(t.path.startsWith("$.datasets")){const v=Ee(t,c);return v===void 0?[]:h.regions.filter(a=>a.dataset===v).map(a=>a.id)}const g=Ve(t,h,c).regionId;return g?[g]:[]}function Pe(t,h){const c=/^\$\.recipe\.regions\.(title|header|detail|footer)$/.exec(t.path)?.[1];return c?{control:c,range:h.regions[c]}:t.path.startsWith("$.datasets")?{control:t.code==="row-key"?"rowKey":"contract",range:h.regions.detail}:{...Ne(t.path,"detail"),range:h.regions.detail}}function ie(t){if(t.range)try{const h=I.parseImportRange(t.range);return t.fieldIndex!==void 0&&(h.left=h.right=h.left+t.fieldIndex),h}catch{return}}function We(t,h,c){return h.control==="dataset"?!c.dataset:h.control==="rowKey"?!c.rowKey:h.control==="field"&&h.fieldIndex!==void 0?!c.fields[h.fieldIndex]:!1}const He=["aria-label"],qe={class:"mr-binding-group"},Oe={class:"mr-binding-note"},Je=["title","disabled"],je={class:"mr-binding-region-list",role:"list",tabindex:"-1","data-binding-control":"regions"},Ue=["data-state"],Ge=["aria-pressed","onClick"],Xe=["title"],Qe={class:"mr-binding-region-state"},Ye={key:0},Ze=["aria-label","disabled","onClick"],et=["disabled"],tt={key:0,class:"mr-binding-group"},nt={class:"mr-binding-label",tabindex:"-1"},at=["value","aria-label"],ot={class:"mr-binding-label"},lt=["value","aria-label"],rt={value:"record"},it={value:"repeat"},st={class:"mr-binding-note"},ut={class:"mr-binding-label",tabindex:"-1"},ct=["value","aria-label"],dt={value:""},gt=["value"],mt={key:0,class:"mr-binding-label",tabindex:"-1"},ft=["value","aria-label"],vt={value:""},bt=["value"],pt={class:"mr-binding-region-tools"},yt=["disabled"],ht=["aria-label"],kt={key:1,class:"mr-binding-mappings"},Et={class:"mr-binding-field-search"},Nt=["placeholder","aria-label"],Vt={key:0,class:"mr-binding-note"},wt=["data-binding-control","value","onChange","aria-label"],St={value:""},Bt=["value"],xt={key:0},Dt={key:2,class:"mr-binding-map-pages"},$t=["disabled","aria-label"],Ct=["disabled","aria-label"],Rt={key:3,class:"mr-binding-concurrency"},It=["data-binding-control","value","onChange"],_t={value:""},Mt=["value"],Ft={class:"mr-binding-group",tabindex:"-1","data-binding-control":"footer"},Tt={class:"mr-binding-note"},Kt={class:"mr-binding-region-tools"},Lt=["disabled"],zt=["aria-label"],At=e.defineComponent({__name:"ExcelRegionBindingPanel",props:{controller:{},datasets:{},disabled:{type:Boolean},messages:{}},setup(t){const h=t,c=e.ref(0),g=e.ref(),v=e.ref(""),a=h.controller.active,w=e.computed(()=>h.datasets.find(f=>f.id===a.value?.dataset)),k=e.computed(()=>{if(!a.value)return[];let f=1;try{f=I.parseImportRange(a.value.range).left}catch{}return a.value.fields.slice(c.value*12,c.value*12+12).map((y,r)=>({field:y,index:c.value*12+r,physical:I.columnName(f+c.value*12+r)}))}),E=e.computed(()=>Math.max(1,Math.ceil((a.value?.fields.length??0)/12))),D=e.computed(()=>{const f=v.value.trim().toLocaleLowerCase(),y=w.value?.fields??[],r=y.filter(B=>[B.field,B.label,B.unit].some(H=>H?.toLocaleLowerCase().includes(f))).slice(0,64),V=new Set(k.value.map(B=>B.field));return[...r,...y.filter(B=>V.has(B.field)&&!r.includes(B))]});function L(f){return f.target.value}function U(f){h.controller.setActive(f),c.value=0,v.value=""}e.watch(()=>h.controller.focusTarget.value,async f=>{if(!f)return;c.value=Math.floor((f.target.fieldIndex??0)/12),v.value="",await e.nextTick();const y=f.target.control==="field"?`field-${f.target.fieldIndex}`:f.target.control==="contract"?"dataset":f.target.control,r=g.value?.querySelector(`[data-binding-control="${y}"]`),V=r?.closest("details");V&&(V.open=!0);const B=h.disabled&&r?.matches("input,select,textarea,button")?r.closest("label"):r;B?.focus(),B?.scrollIntoView?.({block:"nearest"})});function G(f){if(!(!a.value||h.disabled)){a.value.range=L(f);try{const y=I.parseImportRange(a.value.range),r=y.right-y.left+1;r<=2048&&(a.value.fields=Array.from({length:r},(V,B)=>a.value.fields[B]??""))}catch{}}}return(f,y)=>(e.openBlock(),e.createElementBlock("section",{ref_key:"panel",ref:g,class:"mr-binding-multi","aria-label":t.messages.multiRegions},[e.createElementVNode("div",qe,[e.createElementVNode("h3",null,[e.createTextVNode(e.toDisplayString(t.messages.multiRegions),1),e.createElementVNode("span",null,e.toDisplayString(t.controller.recipe.value.regions.length)+"/128",1)]),e.createElementVNode("p",Oe,e.toDisplayString(t.messages.multiHint),1),e.createElementVNode("button",{type:"button",class:"mr-binding-add-region",title:t.controller.recipe.value.regions.length>=128?t.messages.limitRegions:t.controller.selection.value?t.messages.addRegion:t.messages.noCellSelection,disabled:t.disabled||!t.controller.selection.value||t.controller.recipe.value.regions.length>=128,onClick:y[0]||(y[0]=(...r)=>t.controller.add&&t.controller.add(...r))},[e.createVNode(_._sfc_main,{name:"grid",size:13}),e.createTextVNode(e.toDisplayString(t.messages.addRegion),1),e.createElementVNode("code",null,e.toDisplayString(t.controller.selection.value||"—"),1)],8,Je),e.createElementVNode("div",je,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.controller.directory.value,r=>(e.openBlock(),e.createElementBlock("div",{key:r.region.id,class:e.normalizeClass(["mr-binding-region-entry",{"is-active":r.region.id===t.controller.activeId.value}]),"data-state":r.state},[e.createElementVNode("button",{type:"button","aria-pressed":r.region.id===t.controller.activeId.value,onClick:V=>U(r.region.id)},[e.createElementVNode("strong",{title:r.region.id},e.toDisplayString(r.region.id),9,Xe),e.createElementVNode("code",null,e.toDisplayString(r.region.range),1),e.createElementVNode("small",null,e.toDisplayString(r.region.mode==="record"?t.messages.recordMode:t.messages.repeatMode)+" · "+e.toDisplayString(r.region.dataset||t.messages.chooseDataset),1),e.createElementVNode("span",Qe,[e.createTextVNode(e.toDisplayString(r.state==="ready"?t.messages.regionReady:r.state==="pending"?t.messages.regionPending:t.messages.regionError),1),r.issues.length?(e.openBlock(),e.createElementBlock("span",Ye," · "+e.toDisplayString(r.issues.length),1)):e.createCommentVNode("",!0)])],8,Ge),e.createElementVNode("button",{type:"button","aria-label":`${t.messages.removeRegion} ${r.region.id}`,disabled:t.disabled,onClick:V=>t.controller.remove(r.region.id)},[e.createVNode(_._sfc_main,{name:"close",size:12})],8,Ze)],10,Ue))),128))])]),e.createElementVNode("fieldset",{disabled:t.disabled,class:"mr-binding-region-editor"},[e.unref(a)?(e.openBlock(),e.createElementBlock("section",tt,[e.createElementVNode("h3",null,[e.createTextVNode(e.toDisplayString(t.messages.regionProperties),1),e.createElementVNode("code",null,e.toDisplayString(e.unref(a).id),1)]),e.createElementVNode("label",nt,[e.createTextVNode(e.toDisplayString(t.messages.regionCoordinates),1),e.createElementVNode("input",{"data-binding-control":"range",value:e.unref(a).range,"aria-label":t.messages.regionCoordinates,onChange:G},null,40,at)]),e.createElementVNode("label",ot,[e.createTextVNode(e.toDisplayString(t.messages.regionMode),1),e.createElementVNode("select",{value:e.unref(a).mode,"aria-label":t.messages.regionMode,onChange:y[1]||(y[1]=r=>t.controller.property("mode",L(r)))},[e.createElementVNode("option",rt,e.toDisplayString(t.messages.recordMode),1),e.createElementVNode("option",it,e.toDisplayString(t.messages.repeatMode),1)],40,lt)]),e.createElementVNode("p",st,e.toDisplayString(e.unref(a).mode==="record"?t.messages.recordHint:t.messages.repeatHint),1),e.createElementVNode("label",ut,[e.createTextVNode(e.toDisplayString(t.messages.dataset),1),e.createElementVNode("select",{"data-binding-control":"dataset",value:e.unref(a).dataset,"aria-label":t.messages.dataset,onChange:y[2]||(y[2]=r=>t.controller.dataset(L(r)))},[e.createElementVNode("option",dt,e.toDisplayString(t.messages.chooseDataset),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.datasets,r=>(e.openBlock(),e.createElementBlock("option",{key:r.id,value:r.id},e.toDisplayString(r.label||r.id),9,gt))),128))],40,ct)]),w.value?(e.openBlock(),e.createElementBlock("label",mt,[e.createTextVNode(e.toDisplayString(t.messages.rowKey),1),e.createElementVNode("select",{"data-binding-control":"rowKey",value:e.unref(a).rowKey,"aria-label":t.messages.rowKey,onChange:y[3]||(y[3]=r=>t.controller.property("rowKey",L(r)))},[e.createElementVNode("option",vt,e.toDisplayString(t.messages.chooseRowKey),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value.fields.filter(r=>r.type!=="boolean"),r=>(e.openBlock(),e.createElementBlock("option",{key:r.field,value:r.field},e.toDisplayString(r.label||r.field),9,bt))),128))],40,ft)])):e.createCommentVNode("",!0),e.createElementVNode("div",pt,[e.createElementVNode("button",{type:"button",disabled:!t.controller.selection.value,onClick:y[4]||(y[4]=(...r)=>t.controller.header&&t.controller.header(...r))},e.toDisplayString(t.messages.bindRegionHeader),9,yt),e.createElementVNode("code",null,e.toDisplayString(e.unref(a).headerRange||t.messages.noRegionHeader),1),e.unref(a).headerRange?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","aria-label":t.messages.clearHeader,onClick:y[5]||(y[5]=(...r)=>t.controller.clearHeader&&t.controller.clearHeader(...r))},[e.createVNode(_._sfc_main,{name:"close",size:11})],8,ht)):e.createCommentVNode("",!0)]),w.value?(e.openBlock(),e.createElementBlock("div",kt,[e.createElementVNode("label",Et,[e.createVNode(_._sfc_main,{name:"search",size:13}),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[6]||(y[6]=r=>v.value=r),type:"search",placeholder:t.messages.searchFields,"aria-label":t.messages.searchFields},null,8,Nt),[[e.vModelText,v.value]])]),w.value.fields.length>64?(e.openBlock(),e.createElementBlock("small",Vt,e.toDisplayString(t.messages.fieldLimit),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,r=>(e.openBlock(),e.createElementBlock("label",{key:r.index,class:"mr-binding-map",tabindex:"-1"},[e.createElementVNode("span",null,e.toDisplayString(r.physical),1),e.createElementVNode("div",null,[e.createElementVNode("select",{"data-binding-control":`field-${r.index}`,value:e.unref(a).fields[r.index],onChange:V=>t.controller.mapping(r.index,L(V)),"aria-label":`${t.messages.physical} ${r.physical} · ${t.messages.business}`},[e.createElementVNode("option",St,e.toDisplayString(t.messages.chooseField),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(D.value,V=>(e.openBlock(),e.createElementBlock("option",{key:V.field,value:V.field},e.toDisplayString(V.label||V.field)+" · "+e.toDisplayString(V.field),9,Bt))),128))],40,wt),r.field?(e.openBlock(),e.createElementBlock("small",xt,e.toDisplayString(w.value.fields.find(V=>V.field===r.field)?.type)+" · "+e.toDisplayString(w.value.fields.find(V=>V.field===r.field)?.unit||"—"),1)):e.createCommentVNode("",!0)])]))),128))])):e.createCommentVNode("",!0),E.value>1?(e.openBlock(),e.createElementBlock("div",Dt,[e.createElementVNode("button",{type:"button",disabled:c.value<=0,"aria-label":t.messages.previousColumns,onClick:y[7]||(y[7]=r=>c.value--)},[e.createVNode(_._sfc_main,{name:"chevron-left",size:13})],8,$t),e.createElementVNode("span",null,e.toDisplayString(c.value+1)+"/"+e.toDisplayString(E.value),1),e.createElementVNode("button",{type:"button",disabled:c.value+1>=E.value,"aria-label":t.messages.nextColumns,onClick:y[8]||(y[8]=r=>c.value++)},[e.createVNode(_._sfc_main,{name:"chevron-right",size:13})],8,Ct)])):e.createCommentVNode("",!0),w.value?(e.openBlock(),e.createElementBlock("details",Rt,[e.createElementVNode("summary",null,e.toDisplayString(t.messages.concurrency),1),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["revisionField","sourceTokenField"],r=>e.createElementVNode("label",{key:r,class:"mr-binding-label",tabindex:"-1"},[e.createTextVNode(e.toDisplayString(r==="revisionField"?t.messages.revisionField:t.messages.sourceTokenField),1),e.createElementVNode("select",{"data-binding-control":r,value:e.unref(a)[r]||"",onChange:V=>t.controller.property(r,L(V))},[e.createElementVNode("option",_t,e.toDisplayString(t.messages.optional),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value.fields,V=>(e.openBlock(),e.createElementBlock("option",{key:V.field,value:V.field},e.toDisplayString(V.label||V.field),9,Mt))),128))],40,It)])),64))])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("section",Ft,[e.createElementVNode("h3",null,e.toDisplayString(t.messages.flowFooter),1),e.createElementVNode("p",Tt,e.toDisplayString(t.messages.flowFooterHint),1),e.createElementVNode("div",Kt,[e.createElementVNode("button",{type:"button",disabled:!t.controller.selection.value,onClick:y[9]||(y[9]=(...r)=>t.controller.footer&&t.controller.footer(...r))},e.toDisplayString(t.messages.bindFooter),9,Lt),e.createElementVNode("code",null,e.toDisplayString(t.controller.recipe.value.footerRange||"—"),1),t.controller.recipe.value.footerRange?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","aria-label":t.messages.clearFooter,onClick:y[10]||(y[10]=(...r)=>t.controller.clearFooter&&t.controller.clearFooter(...r))},[e.createVNode(_._sfc_main,{name:"close",size:11})],8,zt)):e.createCommentVNode("",!0)])])],8,et)],8,He))}});function ke(t=""){return{version:"2.0",sheet:t,regions:[]}}function Pt(t,h,c,g){const v=e.ref(ke()),a=e.ref(""),w=e.ref(),k=e.ref(),E=e.ref(),D=e.computed(()=>!t.value||!k.value||!E.value?"":I.excelBindingCellRange(t.value,h.value,k.value,E.value)),L=e.computed(()=>({...v.value,regions:v.value.regions.map(u=>({...u,fields:[]}))})),U=e.computed(()=>t.value?I.validateExcelRegionGeometry(t.value,L.value):[]),G=e.computed(()=>{const u=I.validateExcelRegionFields(v.value,g()),b=[...U.value,...u.issues];return{...u,ok:!b.length,issues:b}}),f=e.computed(()=>v.value.regions.find(u=>u.id===a.value));function y(u){return Ve(u,v.value,g())}const r=e.computed(()=>{const u=new Map;for(const b of G.value.issues){const R=y(b);for(const d of Ae(b,v.value,g())){const M=u.get(d)??[];M.push({issue:b,target:{...R,regionId:d}}),u.set(d,M)}}return v.value.regions.map(b=>{const R=u.get(b.id)??[],d=R.length?R.every(M=>We(M.issue,M.target,b))?"pending":"error":"ready";return{region:b,state:d,issues:R}})});function V(u=ke(h.value)){v.value=JSON.parse(JSON.stringify(u)),a.value=v.value.regions[0]?.id??"",k.value=void 0,E.value=void 0,w.value=void 0}function B(u){u.regionId&&(a.value=u.regionId);const b=ie(u);b&&(k.value={row:b.top,column:b.left},E.value={row:b.bottom,column:b.right}),w.value={target:u,sequence:(w.value?.sequence??0)+1}}function H(u){B(y(u))}function i(u,b,R){c.value||((!R||!k.value)&&(k.value={row:u,column:b}),E.value={row:u,column:b})}function $(){if(c.value||!D.value||v.value.regions.length>=128)return;let u=1;for(;v.value.regions.some(d=>d.id===`region-${u}`);)u++;const b=`region-${u}`,R=Math.abs(E.value.column-k.value.column)+1;v.value.regions.push({id:b,range:D.value,mode:"repeat",dataset:"",fields:Array.from({length:R},()=>""),rowKey:""}),a.value=b}function J(u){c.value||(v.value.regions=v.value.regions.filter(b=>b.id!==u),a.value===u&&(a.value=v.value.regions[0]?.id??""))}function C(u){!c.value&&f.value&&(f.value.dataset=u,f.value.rowKey="",f.value.fields.fill(""),delete f.value.revisionField,delete f.value.sourceTokenField)}function P(u,b){if(!(c.value||!f.value)){if(u==="mode"){(b==="record"||b==="repeat")&&(f.value.mode=b);return}b||u==="rowKey"?f.value[u]=b:delete f.value[u]}}function N(u,b){!c.value&&f.value&&u>=0&&u<f.value.fields.length&&(f.value.fields[u]=b)}function K(){!c.value&&f.value&&delete f.value.headerRange}function z(){!c.value&&f.value&&D.value&&(f.value.headerRange=D.value)}function A(){!c.value&&D.value&&(v.value.footerRange=D.value)}function T(){c.value||delete v.value.footerRange}function q(u){const b=v.value.regions.find(R=>R.id===u);b&&B({regionId:u,control:"range",range:b.range})}function O(u,b){return!!k.value&&!!E.value&&u>=Math.min(k.value.row,E.value.row)&&u<=Math.max(k.value.row,E.value.row)&&b>=Math.min(k.value.column,E.value.column)&&b<=Math.max(k.value.column,E.value.column)}return{recipe:v,activeId:a,active:f,selection:D,validation:G,directory:r,focusTarget:w,target:y,locate:H,reset:V,select:i,add:$,remove:J,dataset:C,property:P,mapping:N,header:z,clearHeader:K,footer:A,clearFooter:T,setActive:q,selected:O}}function re(t="",h=0){return{version:"1.0",sheet:t,dataset:"",regions:{header:"",detail:""},fields:Array.from({length:h},()=>""),rowKey:""}}function ge(t){return t instanceof Error?t.message:String(t)}function Wt(t,h){const c=e.shallowRef(),g=e.ref(re()),v=e.ref("table"),a=Pt(c,e.computed(()=>g.value.sheet),e.computed(()=>M.value),()=>t.datasets),w=new Map,k=new Map,E=e.ref({table:[],regions:[]});function D(){w.clear(),k.clear(),E.value={table:[],regions:[]}}function L(){g.value.sheet&&(w.set(g.value.sheet,U(g.value)),k.set(g.value.sheet,JSON.parse(JSON.stringify(a.recipe.value))),E.value={table:[...w.values()],regions:[...k.values()]})}const U=o=>JSON.parse(JSON.stringify(o));function G(o,s){return U(w.get(o)??re(o,s))}const f=e.ref({id:t.identity?.id??"excel-template",name:t.identity?.name??"Excel 业务模板"}),y=e.ref(""),r=e.ref(!1),V=()=>({recipe:g.value,regions:a.recipe.value,mode:v.value,cached:E.value,identity:f.value});let B;function H(o){g.value=U(o.recipe),a.reset(o.regions),v.value=o.mode,f.value={...o.identity,...t.lockId&&t.identity?{id:t.identity.id}:{}},D();for(const s of o.cached.table)w.set(s.sheet,s);for(const s of o.cached.regions)k.set(s.sheet,s);E.value=o.cached}const i=e.ref(0),$=ze.useLocalDraft(()=>({source:i.value,recipe:g.value,mode:v.value,regions:a.recipe.value,cached:E.value,identity:f.value})),J=e.ref([]);let C;function P(){C?.dispose(),C=void 0}const N=e.ref(""),K=e.ref(!1),z=e.ref(!1),A=e.ref(!1),T=e.ref(!1),q=e.ref(1),O=e.ref(1),u=e.ref(),b=e.ref(),R=e.ref(0),d=e.computed(()=>({...he.EXCEL_BINDING_MESSAGES,...t.messages})),M=e.computed(()=>!!t.readonly||K.value||T.value),te=e.computed(()=>!K.value&&!T.value),X=e.computed(()=>c.value?.sheets.find(o=>o.name===g.value.sheet)),x=e.computed(()=>X.value?I.parseImportRange(X.value.range):void 0),se=e.computed(()=>t.datasets.find(o=>o.id===g.value.dataset)),me=e.computed(()=>c.value&&X.value?I.getExcelSheetWindow(c.value,X.value.name,{row:q.value,column:O.value}):void 0),fe=e.computed(()=>c.value?I.validateExcelBindingRegions(c.value,g.value):[]),ve=e.computed(()=>{if(!c.value)return{ok:!1,issues:[],mapped:0,total:0};const o=I.validateExcelBindingFields(c.value,g.value,t.datasets),s=[...fe.value,...o.issues];return{...o,ok:s.length===0,issues:s}}),Y=e.computed(()=>v.value==="regions"?a.validation.value:ve.value),ae=e.ref(),oe=e.computed(()=>v.value==="regions"?a.focusTarget.value:ae.value);function m(o){return v.value==="regions"?a.target(o):Pe(o,g.value)}function l(o){const s={dataset:d.value.dataset,contract:d.value.dataContract,rowKey:d.value.rowKey,range:d.value.regionCoordinates,field:d.value.mapping,fields:d.value.mapping,footer:d.value.flowFooter,header:d.value.headerRegion,detail:d.value.detailRegion,title:d.value.titleRegion,sheet:d.value.sheet,regions:v.value==="regions"?d.value.multiRegions:d.value.regionLegend,revisionField:d.value.revisionField,sourceTokenField:d.value.sourceTokenField},S=ie(o),F=o.fieldIndex===void 0?"":` ${I.columnName(S?.left??o.fieldIndex+1)}`;return`${o.regionId?`${o.regionId} · `:""}${s[o.control]??d.value.regionCoordinates}${F}`}const n=e.computed(()=>Y.value.issues.map(o=>({issue:o,label:l(m(o)),message:o.message.replace(/\$\.recipe\.regions\[(\d+)\]/g,(s,S)=>a.recipe.value.regions[Number(S)]?.id??d.value.regionProperties)})));function p(o){return o?{dataset:d.value.nextDataset,rowKey:d.value.nextRowKey,field:d.value.nextField,fields:d.value.nextField,range:d.value.nextRange,regions:d.value.nextRegion,footer:d.value.nextFooter,header:d.value.nextHeader,detail:d.value.nextHeader,title:d.value.nextHeader}[o.control]??d.value.nextContract:v.value==="regions"?d.value.nextRegion:d.value.nextHeader}const W=e.computed(()=>t.readonly?d.value.readonly:K.value?d.value.loading:T.value?d.value.applying:A.value?d.value.applied:Y.value.ok?d.value.ready:p(Y.value.issues[0]?m(Y.value.issues[0]):void 0));e.watch(oe,o=>{const s=o&&ie(o.target);!s||!x.value||(q.value=Math.max(x.value.top,Math.min(x.value.bottom,s.top)),O.value=Math.max(x.value.left,Math.min(x.value.right,s.left)))});function ue(o){if(v.value==="regions"){a.locate(o);return}const s=m(o),S=ie(s);S&&(u.value=S.top,b.value=S.bottom),s.fieldIndex!==void 0&&(R.value=Math.floor(s.fieldIndex/12)),ae.value={target:s,sequence:(ae.value?.sequence??0)+1}}const ce=e.computed(()=>g.value.fields.slice(R.value*12,(R.value+1)*12).map((o,s)=>({index:R.value*12+s,field:o,physical:I.columnName((x.value?.left??1)+R.value*12+s)}))),we=e.computed(()=>se.value?.fields.filter(o=>o.type!=="boolean")??[]),de=e.computed(()=>u.value!==void 0&&b.value!==void 0?{top:Math.min(u.value,b.value),bottom:Math.max(u.value,b.value)}:void 0);let Q,j=0;function Z(){j++,Q?.abort(),Q=void 0,K.value=!1}function le(){q.value=x.value?.top??1,O.value=x.value?.left??1,u.value=void 0,b.value=void 0,R.value=0,z.value=!1,A.value=!1}function pe(o){Z();try{const s=o.version==="2.0"?I.parseExcelRegionBindingSession(o):I.parseExcelBindingSession(o);Z(),P(),J.value=s.source.sheets.map(S=>({name:S.name,index:S.index})),c.value=s.source,D(),s.version==="2.0"?(g.value=re(s.recipe.sheet,s.source.sheets.find(S=>S.name===s.recipe.sheet).columnCount),a.reset(s.recipe),v.value="regions"):(g.value=s.recipe,a.reset(),v.value="table"),f.value={...s.identity,...t.lockId&&t.identity?{id:t.identity.id}:{}},y.value=s.recipe.sheet,N.value="",le(),i.value++,$.accept()}catch(s){N.value=ge(s)}}e.watch(()=>t.session,o=>{o&&pe(o)},{immediate:!0}),e.watch(()=>t.readonly,o=>{o&&(Z(),P())}),e.watch([g,f,v,a.recipe],()=>{z.value=!1,A.value=!1},{deep:!0,flush:"sync"}),e.watch(()=>t.datasets,()=>{z.value=!1,A.value=!1}),e.onBeforeUnmount(()=>{Z(),P()});async function Se(o){if(t.readonly)return;if(Z(),!/\.xlsx$/i.test(o.name)){N.value=d.value.invalidFile;return}const s=++j;Q=new AbortController,K.value=!0,N.value="";let S;try{const{openExcelWorkbook:F}=await Promise.resolve().then(()=>require("./workbook-session-Bjv1YCRK.cjs")).then(ee=>ee.workbookSession);if(s!==j||t.readonly||(S=await F(o,{...t.importOptions,signal:Q.signal}),s!==j||t.readonly))return;const ne=S.inspect().sheets.filter(ee=>ee.visible);if(!ne.length)throw new Error("Excel 中没有可导入的可见工作表");const ye=B?.recipe.sheet||ne[0].name;if(!ne.some(ee=>ee.name===ye))throw new Error(d.value.recoveredSheetMissing);const be=await S.importTemplate({sheets:[ye],signal:Q.signal});if(s!==j||t.readonly)return;P(),C=S,S=void 0,c.value=be,i.value++,y.value=o.name,J.value=ne.map(ee=>({name:ee.name,index:ee.index})),D(),g.value=re(be.sheets[0].name,be.sheets[0].columnCount),a.reset(),B&&(H(B),B=void 0,r.value=!1),le()}catch(F){s===j&&(N.value=ge(F))}finally{S?.dispose(),s===j&&(K.value=!1,Q=void 0)}}async function Be(o){if(M.value||!J.value.some(F=>F.name===o)||g.value.sheet===o)return;L();const s=c.value?.sheets.find(F=>F.name===o);if(s){g.value=G(o,s.columnCount),a.reset(k.get(o)),N.value="",le();return}if(!C||C.disposed)return;Z();const S=++j;Q=new AbortController,K.value=!0,N.value="";try{const F=await C.importTemplate({sheets:[o],signal:Q.signal});if(S!==j||t.readonly)return;c.value=F,g.value=G(o,F.sheets[0].columnCount),a.reset(k.get(o)),le()}catch(F){S===j&&(N.value=ge(F))}finally{S===j&&(K.value=!1,Q=void 0)}}function xe(o){M.value||(g.value.dataset=o,g.value.rowKey="",g.value.fields.fill(""),z.value=!1,A.value=!1)}function De(o,s){M.value||!x.value||o<x.value.top||o>x.value.bottom||((!s||u.value===void 0)&&(u.value=o),b.value=o)}function $e(o){if(M.value||!c.value||!de.value){M.value||(N.value=d.value.emptySelection);return}g.value.regions[o]=I.excelBindingRowRange(c.value,g.value.sheet,de.value.top,de.value.bottom),z.value=!1,A.value=!1,N.value=""}function Ce(o){M.value||(delete g.value.regions[o],z.value=!1,A.value=!1)}function Re(o,s){!M.value&&o>=0&&o<g.value.fields.length&&(g.value.fields[o]=s,z.value=!1,A.value=!1)}function Ie(o){M.value||(g.value.rowKey=o)}function _e(o,s){!M.value&&!(o==="id"&&t.lockId)&&(f.value[o]=s)}function Me(o){for(const s of["title","header","detail","footer"]){const S=g.value.regions[s];if(!S)continue;const F=I.parseImportRange(S);if(o>=F.top&&o<=F.bottom)return s}}function Fe(o,s){x.value&&(o==="row"?q.value=Math.max(x.value.top,Math.min(x.value.bottom,q.value+s)):O.value=Math.max(x.value.left,Math.min(x.value.right,O.value+s)))}function Te(){if(!t.readonly){if(t.session){pe(t.session);return}B=void 0,r.value=!1,Z(),P(),c.value=void 0,J.value=[],y.value="",D(),g.value=re(),f.value={id:t.identity?.id??"excel-template",name:t.identity?.name??"Excel 业务模板"},a.reset(),v.value="table",le(),i.value++,$.accept(),N.value=""}}function Ke(){te.value&&(z.value=!0,N.value="")}async function Le(){if(!(M.value||!c.value||r.value)&&(z.value=!0,N.value="",!!Y.value.ok)){T.value=!0;try{const o={...f.value,...t.lockId&&t.identity?{id:t.identity.id}:{}},s=v.value==="regions"?I.createExcelRegionBindingDocument(c.value,a.recipe.value,t.datasets,o):I.createExcelBindingDocument(c.value,g.value,t.datasets,o),S=v.value==="regions"?I.createExcelRegionBindingSession(c.value,a.recipe.value,o):I.createExcelBindingSession(c.value,g.value,o),F={...s,session:S},ne=$.snapshot();if(t.accept&&!await t.accept(F)||t.readonly||ne!==$.snapshot()&&$.pending.value)return;t.accept||h(F),D(),$.accept(),A.value=!0}catch(o){N.value=ge(o)}finally{T.value=!1}}}return he.useTemplateToolDraft({key:()=>"excel",baseline:()=>"declarations-only",pending:()=>$.pending.value||r.value,snapshot:()=>JSON.stringify(V()),restore(o){const s=JSON.parse(o);if(!s.recipe||!s.regions||!Array.isArray(s.cached?.table)||!Array.isArray(s.cached?.regions))throw new Error("Invalid Excel mapping draft");H(s),B=s,r.value=!0}}),{recoveredMapping:r,imported:c,mode:v,regionBindings:a,pendingLocalChanges:e.computed(()=>$.pending.value||r.value),recipe:g,identity:f,sourceName:y,sheetChoices:J,error:N,loading:K,checked:z,applied:A,row:q,column:O,mappingPage:R,m:d,disabled:M,canCheck:te,sheet:X,sourceRange:x,dataset:se,window:me,validation:Y,focusTarget:oe,issueEntries:n,guidance:W,locateIssue:ue,mappings:ce,rowKeys:we,selection:de,cancel:Z,importFile:Se,chooseSheet:Be,chooseDataset:xe,chooseRow:De,markRegion:$e,clearRegion:Ce,setMapping:Re,setRowKey:Ie,setIdentity:_e,regionAt:Me,moveWindow:Fe,check:Ke,restoreDraft:Te,apply:Le}}const Ht=["aria-label","aria-busy"],qt={key:0,role:"status",class:"mr-binding-recovery"},Ot={class:"mr-binding-bar"},Jt={class:"mr-binding-heading"},jt=["aria-label","disabled"],Ut=["disabled"],Gt={key:1,class:"mr-binding-error",role:"alert"},Xt={key:2,class:"mr-binding-placeholder",role:"status"},Qt={key:3,class:"mr-binding-placeholder"},Yt=["disabled"],Zt={class:"mr-binding-sourcebar"},en=["value","aria-label","disabled"],tn=["value"],nn=["aria-label"],an=["aria-pressed","disabled"],on=["aria-pressed","disabled"],ln={class:"mr-binding-range"},rn={class:"mr-binding-sample-note"},sn={class:"mr-binding-layout"},un={class:"mr-binding-source"},cn={class:"mr-binding-grid-heading"},dn=["aria-label"],gn={class:"mr-binding-grid"},mn=["data-region"],fn={scope:"row"},vn=["data-source-row","aria-label","aria-pressed","disabled","onPointerdown","onPointerenter","onKeydown"],bn=["rowspan","colspan","title","data-source-cell","tabindex","aria-label","aria-selected","onPointerdown","onPointerenter","onKeydown"],pn={key:1,class:"mr-binding-grid-footer"},yn={class:"mr-binding-window"},hn=["aria-label","disabled"],kn=["min","max","value","aria-label"],En=["aria-label","disabled"],Nn={class:"mr-binding-window"},Vn=["aria-label","disabled"],wn=["min","max","value","aria-label"],Sn=["aria-label","disabled"],Bn={class:"mr-binding-inspector"},xn=["disabled"],Dn={class:"mr-binding-group"},$n=["data-role"],Cn={key:0},Rn=["aria-label","data-binding-control","title","disabled","onClick"],In=["aria-label","onClick"],_n={key:0,class:"mr-binding-note"},Mn={class:"mr-binding-group"},Fn={class:"mr-binding-label",tabindex:"-1"},Tn=["value","aria-label"],Kn={value:""},Ln=["value"],zn={key:0,class:"mr-binding-note"},An={key:1,class:"mr-binding-label",tabindex:"-1"},Pn=["value","aria-label"],Wn={value:""},Hn=["value"],qn={key:2,class:"mr-binding-mappings"},On=["data-binding-control","aria-label","value","onChange"],Jn={value:""},jn=["value"],Un={key:0},Gn={key:3,class:"mr-binding-map-pages"},Xn=["disabled","aria-label"],Qn=["disabled","aria-label"],Yn=["disabled"],Zn={class:"mr-binding-group"},ea={class:"mr-binding-label"},ta=["value","readonly"],na={class:"mr-binding-label"},aa=["value"],oa={key:0,class:"mr-binding-issues",open:""},la=["aria-label","onClick"],ra={key:0,class:"mr-binding-issue-pages"},ia=["disabled","aria-label"],sa=["disabled","aria-label"],ua={key:1,class:"mr-binding-warnings"},ca={class:"mr-binding-actions"},da=["title"],ga=["disabled"],ma=["disabled"],fa=["disabled","title"],va=e.defineComponent({__name:"ExcelBindingWizard",props:{datasets:{},accept:{type:Function},session:{},identity:{},lockId:{type:Boolean},readonly:{type:Boolean},importOptions:{},messages:{}},emits:["apply","dirty"],setup(t,{expose:h,emit:c}){const g=t,v=c,a=Wt(g,m=>v("apply",m)),{imported:w,mode:k,regionBindings:E,recipe:D,identity:L,sourceName:U,sheetChoices:G,error:f,loading:y,checked:r,row:V,column:B,mappingPage:H,m:i,disabled:$,sheet:J,sourceRange:C,dataset:P,window:N,validation:K,mappings:z,rowKeys:A,selection:T}=a;e.watch([a.pendingLocalChanges,D,L],()=>v("dirty",a.pendingLocalChanges.value),{immediate:!0,deep:!0,flush:"sync"});const q=e.ref(),O=e.ref(),u=e.ref(0),b=e.computed(()=>Math.max(1,Math.ceil(a.issueEntries.value.length/12))),R=e.computed(()=>a.issueEntries.value.slice(u.value*12,(u.value+1)*12));e.watch(b,m=>{u.value=Math.min(u.value,m-1)}),e.watch(a.focusTarget,async m=>{if(!m)return;await e.nextTick();const l=ie(m.target);if(l&&O.value?.querySelector(`td[data-source-cell="${l.top}:${l.left}"]`)?.scrollIntoView?.({block:"nearest",inline:"nearest"}),k.value==="regions")return;const n=m.target.control==="field"?`field-${m.target.fieldIndex}`:m.target.control==="contract"?"dataset":m.target.control,p=O.value?.querySelector(`.mr-binding-table-editor [data-binding-control="${n}"]`),W=$.value?p?.closest("label"):p;W?.focus(),W?.scrollIntoView?.({block:"nearest"})});const d=e.ref(!1),M=["title","header","detail","footer"],te=e.computed(()=>({title:i.value.titleRegion,header:i.value.headerRegion,detail:i.value.detailRegion,footer:i.value.footerRegion})),X=e.computed(()=>Math.max(1,Math.ceil(D.value.fields.length/12)));function x(m){return m.target.value}function se(m){const l=m.target,n=l.files?.[0];n&&a.importFile(n),l.value=""}function me(m,l){m.button!==0||$.value||(m.preventDefault(),d.value=!0,a.chooseRow(l,m.shiftKey),k.value==="regions"&&C.value&&(E.select(l,C.value.left,!1),E.select(l,C.value.right,!0)),m.currentTarget.focus())}function fe(m,l,n){k.value!=="regions"||m.button!==0||$.value||(m.preventDefault(),d.value=!0,E.select(l,n,m.shiftKey),m.currentTarget.focus())}function ve(m,l,n){if(k.value!=="regions")return;(m.key===" "||m.key==="Enter")&&(m.preventDefault(),E.select(l,n,m.shiftKey));const W={ArrowUp:[-1,0],ArrowDown:[1,0],ArrowLeft:[0,-1],ArrowRight:[0,1]}[m.key];if(!W||!C.value)return;m.preventDefault();const ue=Math.max(C.value.top,Math.min(C.value.bottom,l+W[0])),ce=Math.max(C.value.left,Math.min(C.value.right,n+W[1]));m.shiftKey&&E.select(ue,ce,!0),m.currentTarget.closest("table")?.querySelector(`td[data-source-cell="${ue}:${ce}"]`)?.focus()}function Y(m,l){if((m.key===" "||m.key==="Enter")&&(m.preventDefault(),a.chooseRow(l,m.shiftKey)),m.key==="ArrowDown"||m.key==="ArrowUp"){m.preventDefault();const n=l+(m.key==="ArrowDown"?1:-1);m.shiftKey&&a.chooseRow(n,!0),m.currentTarget.closest("table")?.querySelector(`button[data-source-row="${n}"]`)?.focus()}}function ae(m){const l=P.value?.fields.find(n=>n.field===m);return l?[l.type,l.unit,l.digits===void 0?void 0:`${l.digits}${i.value.precision}`,l.sample===void 0?void 0:`${i.value.sample}: ${String(l.sample)}`].filter(n=>n!==void 0&&n!=="").join(" · "):""}function oe(m,l){const n=Number(x(m));!Number.isInteger(n)||!C.value||(l==="row"?V.value=Math.max(C.value.top,Math.min(C.value.bottom,n)):B.value=Math.max(C.value.left,Math.min(C.value.right,n)))}return h({get pendingLocalChanges(){return a.pendingLocalChanges.value},importFile:a.importFile,apply:a.apply,cancel:a.cancel}),(m,l)=>(e.openBlock(),e.createElementBlock("section",{ref_key:"element",ref:O,class:"mr-binding","aria-label":e.unref(i).title,"aria-busy":e.unref(y),onPointerup:l[23]||(l[23]=n=>d.value=!1),onPointercancel:l[24]||(l[24]=n=>d.value=!1),onPointerleave:l[25]||(l[25]=n=>d.value=!1)},[e.unref(a).recoveredMapping.value?(e.openBlock(),e.createElementBlock("p",qt,e.toDisplayString(e.unref(i).recoveredMapping),1)):e.createCommentVNode("",!0),e.createElementVNode("header",Ot,[e.createElementVNode("div",Jt,[e.createVNode(_._sfc_main,{name:"file",size:17}),e.createElementVNode("strong",null,e.toDisplayString(e.unref(i).title),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(U)||e.unref(i).intro),1)]),e.createElementVNode("input",{ref_key:"input",ref:q,type:"file",accept:".xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","aria-label":e.unref(i).upload,class:"mr-binding-file",disabled:t.readonly,onChange:se},null,40,jt),e.unref(y)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",onClick:l[0]||(l[0]=(...n)=>e.unref(a).cancel&&e.unref(a).cancel(...n))},e.toDisplayString(e.unref(i).cancel),1)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:t.readonly,onClick:l[1]||(l[1]=n=>q.value?.click())},[e.createVNode(_._sfc_main,{name:"upload",size:14}),e.createTextVNode(e.toDisplayString(e.unref(w)?e.unref(i).replace:e.unref(i).upload),1)],8,Ut))]),e.unref(f)?(e.openBlock(),e.createElementBlock("div",Gt,e.toDisplayString(e.unref(f)),1)):e.createCommentVNode("",!0),e.unref(y)?(e.openBlock(),e.createElementBlock("div",Xt,[l[26]||(l[26]=e.createElementVNode("span",{class:"mr-binding-loader"},null,-1)),e.createTextVNode(e.toDisplayString(e.unref(i).loading),1)])):e.unref(w)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createElementVNode("div",Zt,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(i).sheet),1),e.createElementVNode("select",{value:e.unref(D).sheet,"aria-label":e.unref(i).sheet,disabled:e.unref($),onChange:l[3]||(l[3]=n=>e.unref(a).chooseSheet(x(n)))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(G),n=>(e.openBlock(),e.createElementBlock("option",{key:n.name,value:n.name},e.toDisplayString(n.name),9,tn))),128))],40,en)]),e.createElementVNode("div",{class:"mr-binding-mode",role:"group","aria-label":e.unref(i).regionMode},[e.createElementVNode("button",{type:"button","aria-pressed":e.unref(k)==="table",disabled:e.unref($),onClick:l[4]||(l[4]=n=>k.value="table")},e.toDisplayString(e.unref(i).tableMode),9,an),e.createElementVNode("button",{type:"button","aria-pressed":e.unref(k)==="regions",disabled:e.unref($),onClick:l[5]||(l[5]=n=>k.value="regions")},[e.createVNode(_._sfc_main,{name:"grid",size:12}),e.createTextVNode(e.toDisplayString(e.unref(i).multiRegions),1)],8,on)],8,nn),e.createElementVNode("span",ln,e.toDisplayString(e.unref(J)?.range)+" · "+e.toDisplayString(e.unref(J)?.rowCount)+" × "+e.toDisplayString(e.unref(J)?.columnCount),1),e.createElementVNode("span",rn,e.toDisplayString(e.unref(i).sourceOnly),1)]),e.createElementVNode("div",sn,[e.createElementVNode("div",un,[e.createElementVNode("div",cn,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(i).source),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(k)==="regions"?e.unref(i).multiHint:e.unref(i).sourceHint),1)]),e.unref(N)?(e.openBlock(),e.createElementBlock("div",{key:0,class:"mr-binding-grid-scroll","aria-label":e.unref(i).source},[e.createElementVNode("table",gn,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[l[28]||(l[28]=e.createElementVNode("th",{class:"mr-binding-corner","aria-label":"#"},"#",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N).columns,n=>(e.openBlock(),e.createElementBlock("th",{key:n.column,scope:"col"},e.toDisplayString(n.name),1))),128))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N).rows,n=>(e.openBlock(),e.createElementBlock("tr",{key:n.row,"data-region":e.unref(a).regionAt(n.row),class:e.normalizeClass({"is-selected":e.unref(T)&&n.row>=e.unref(T).top&&n.row<=e.unref(T).bottom})},[e.createElementVNode("th",fn,[e.createElementVNode("button",{type:"button","data-source-row":n.row,"aria-label":`${e.unref(i).selectionLabel} ${n.row}`,"aria-pressed":!!e.unref(T)&&n.row>=e.unref(T).top&&n.row<=e.unref(T).bottom,disabled:e.unref($),onPointerdown:p=>me(p,n.row),onPointerenter:p=>d.value&&e.unref(a).chooseRow(n.row,!0),onKeydown:p=>Y(p,n.row)},e.toDisplayString(n.row),41,vn)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.cells,p=>(e.openBlock(),e.createElementBlock("td",{key:p.column,rowspan:p.rowSpan,colspan:p.colSpan,title:`${p.address} · ${p.text}`,"data-source-cell":`${p.row}:${p.column}`,tabindex:e.unref(k)==="regions"?0:void 0,"aria-label":e.unref(k)==="regions"?`${e.unref(i).selectionCellLabel} ${p.address}`:void 0,"aria-selected":e.unref(k)==="regions"?e.unref(E).selected(p.row,p.column):void 0,class:e.normalizeClass({"is-continued":p.continued,"is-cell-selected":e.unref(k)==="regions"&&e.unref(E).selected(p.row,p.column)}),onPointerdown:W=>fe(W,p.row,p.column),onPointerenter:W=>e.unref(k)==="regions"&&d.value&&e.unref(E).select(p.row,p.column,!0),onKeydown:W=>ve(W,p.row,p.column),style:e.normalizeStyle({textAlign:p.style?.align,fontWeight:p.style?.bold?"600":void 0})},[e.createElementVNode("span",null,e.toDisplayString(p.text),1)],46,bn))),128))],10,mn))),128))])])],8,dn)):e.createCommentVNode("",!0),e.unref(N)?(e.openBlock(),e.createElementBlock("footer",pn,[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref(i).selected)+" ",1),e.createElementVNode("strong",null,e.toDisplayString(e.unref(k)==="regions"?e.unref(E).selection.value||"—":e.unref(T)?`${e.unref(T).top}–${e.unref(T).bottom}`:"—"),1)]),e.createElementVNode("div",yn,[e.createElementVNode("button",{type:"button","aria-label":e.unref(i).previousRows,disabled:e.unref(N).top<=e.unref(N).source.top,onClick:l[6]||(l[6]=n=>e.unref(a).moveWindow("row",-24))},[e.createVNode(_._sfc_main,{name:"chevron-left",size:13})],8,hn),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(i).rowStart),1),e.createElementVNode("input",{type:"number",min:e.unref(N).source.top,max:e.unref(N).source.bottom,value:e.unref(V),"aria-label":e.unref(i).rowStart,onChange:l[7]||(l[7]=n=>oe(n,"row"))},null,40,kn)]),e.createElementVNode("button",{type:"button","aria-label":e.unref(i).nextRows,disabled:e.unref(N).bottom>=e.unref(N).source.bottom,onClick:l[8]||(l[8]=n=>e.unref(a).moveWindow("row",24))},[e.createVNode(_._sfc_main,{name:"chevron-right",size:13})],8,En)]),e.createElementVNode("div",Nn,[e.createElementVNode("button",{type:"button","aria-label":e.unref(i).previousColumns,disabled:e.unref(N).left<=e.unref(N).source.left,onClick:l[9]||(l[9]=n=>e.unref(a).moveWindow("column",-12))},[e.createVNode(_._sfc_main,{name:"chevron-left",size:13})],8,Vn),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(i).columnStart),1),e.createElementVNode("input",{type:"number",min:e.unref(N).source.left,max:e.unref(N).source.right,value:e.unref(B),"aria-label":e.unref(i).columnStart,onChange:l[10]||(l[10]=n=>oe(n,"column"))},null,40,wn)]),e.createElementVNode("button",{type:"button","aria-label":e.unref(i).nextColumns,disabled:e.unref(N).right>=e.unref(N).source.right,onClick:l[11]||(l[11]=n=>e.unref(a).moveWindow("column",12))},[e.createVNode(_._sfc_main,{name:"chevron-right",size:13})],8,Sn)])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Bn,[e.unref(k)==="regions"?(e.openBlock(),e.createBlock(At,{key:0,controller:e.unref(E),datasets:t.datasets,disabled:e.unref($),messages:e.unref(i)},null,8,["controller","datasets","disabled","messages"])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("fieldset",{disabled:e.unref($),class:"mr-binding-table-editor"},[e.createElementVNode("section",Dn,[e.createElementVNode("h3",null,[l[29]||(l[29]=e.createElementVNode("b",null,"1",-1)),e.createTextVNode(e.toDisplayString(e.unref(i).regionLegend),1)]),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(M,n=>e.createElementVNode("div",{key:n,class:"mr-binding-region","data-role":n},[e.createElementVNode("div",null,[e.createElementVNode("strong",null,[e.createTextVNode(e.toDisplayString(te.value[n]),1),n==="title"||n==="footer"?(e.openBlock(),e.createElementBlock("small",Cn,e.toDisplayString(e.unref(i).optional),1)):e.createCommentVNode("",!0)]),e.createElementVNode("code",null,e.toDisplayString(e.unref(D).regions[n]||e.unref(i).unnamed),1)]),e.createElementVNode("button",{type:"button","aria-label":`${e.unref(i).selectRegion} · ${te.value[n]}`,"data-binding-control":n,title:e.unref(T)?`${e.unref(i).selectRegion} · ${te.value[n]}`:e.unref(i).emptySelection,disabled:!e.unref(T),onClick:p=>e.unref(a).markRegion(n)},[e.createVNode(_._sfc_main,{name:"arrow-right",size:13})],8,Rn),(n==="title"||n==="footer")&&e.unref(D).regions[n]?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button","aria-label":`${e.unref(i).clear} · ${te.value[n]}`,onClick:p=>e.unref(a).clearRegion(n)},[e.createVNode(_._sfc_main,{name:"close",size:13})],8,In)):e.createCommentVNode("",!0)],8,$n)),64)),e.unref(D).regions.footer?(e.openBlock(),e.createElementBlock("p",_n,e.toDisplayString(e.unref(i).footerHint),1)):e.createCommentVNode("",!0)]),e.createElementVNode("section",Mn,[e.createElementVNode("h3",null,[l[30]||(l[30]=e.createElementVNode("b",null,"2",-1)),e.createTextVNode(e.toDisplayString(e.unref(i).mapping),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(K).mapped)+"/"+e.toDisplayString(e.unref(K).total),1)]),e.createElementVNode("label",Fn,[e.createTextVNode(e.toDisplayString(e.unref(i).dataset),1),e.createElementVNode("select",{"data-binding-control":"dataset",value:e.unref(D).dataset,"aria-label":e.unref(i).dataset,onChange:l[12]||(l[12]=n=>e.unref(a).chooseDataset(x(n)))},[e.createElementVNode("option",Kn,e.toDisplayString(e.unref(i).chooseDataset),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.datasets,n=>(e.openBlock(),e.createElementBlock("option",{key:n.id,value:n.id},e.toDisplayString(n.label||n.id),9,Ln))),128))],40,Tn)]),t.datasets.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",zn,e.toDisplayString(e.unref(i).noContract),1)),e.unref(P)?(e.openBlock(),e.createElementBlock("label",An,[e.createTextVNode(e.toDisplayString(e.unref(i).rowKey),1),e.createElementVNode("select",{"data-binding-control":"rowKey",value:e.unref(D).rowKey,"aria-label":e.unref(i).rowKey,onChange:l[13]||(l[13]=n=>e.unref(a).setRowKey(x(n)))},[e.createElementVNode("option",Wn,e.toDisplayString(e.unref(i).chooseRowKey),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(A),n=>(e.openBlock(),e.createElementBlock("option",{key:n.field,value:n.field},e.toDisplayString(n.label||n.field)+" · "+e.toDisplayString(n.field),9,Hn))),128))],40,Pn)])):e.createCommentVNode("",!0),e.unref(P)?(e.openBlock(),e.createElementBlock("div",qn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(z),n=>(e.openBlock(),e.createElementBlock("label",{key:n.index,class:"mr-binding-map",tabindex:"-1"},[e.createElementVNode("span",null,e.toDisplayString(n.physical),1),e.createElementVNode("div",null,[e.createElementVNode("select",{"data-binding-control":`field-${n.index}`,"aria-label":`${e.unref(i).physical} ${n.physical} · ${e.unref(i).business}`,value:n.field,onChange:p=>e.unref(a).setMapping(n.index,x(p))},[e.createElementVNode("option",Jn,e.toDisplayString(e.unref(i).chooseField),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(P).fields,p=>(e.openBlock(),e.createElementBlock("option",{key:p.field,value:p.field},e.toDisplayString(p.label||p.field)+" · "+e.toDisplayString(p.field),9,jn))),128))],40,On),n.field?(e.openBlock(),e.createElementBlock("small",Un,e.toDisplayString(ae(n.field)),1)):e.createCommentVNode("",!0)])]))),128))])):e.createCommentVNode("",!0),e.unref(P)&&X.value>1?(e.openBlock(),e.createElementBlock("div",Gn,[e.createElementVNode("button",{type:"button",disabled:e.unref(H)<=0,"aria-label":e.unref(i).previousColumns,onClick:l[14]||(l[14]=n=>H.value--)},[e.createVNode(_._sfc_main,{name:"chevron-left",size:13})],8,Xn),e.createElementVNode("span",null,e.toDisplayString(e.unref(H)+1)+" / "+e.toDisplayString(X.value),1),e.createElementVNode("button",{type:"button",disabled:e.unref(H)+1>=X.value,"aria-label":e.unref(i).nextColumns,onClick:l[15]||(l[15]=n=>H.value++)},[e.createVNode(_._sfc_main,{name:"chevron-right",size:13})],8,Qn)])):e.createCommentVNode("",!0)])],8,xn),[[e.vShow,e.unref(k)==="table"]]),e.createElementVNode("fieldset",{disabled:e.unref($)},[e.createElementVNode("section",Zn,[e.createElementVNode("h3",null,e.toDisplayString(e.unref(i).identity),1),e.createElementVNode("label",ea,[e.createTextVNode(e.toDisplayString(e.unref(i).templateId),1),e.createElementVNode("input",{value:t.lockId?g.identity?.id??e.unref(L).id:e.unref(L).id,autocomplete:"off",readonly:t.lockId,onInput:l[16]||(l[16]=n=>e.unref(a).setIdentity("id",x(n)))},null,40,ta)]),e.createElementVNode("label",na,[e.createTextVNode(e.toDisplayString(e.unref(i).templateName),1),e.createElementVNode("input",{value:e.unref(L).name,autocomplete:"off",onInput:l[17]||(l[17]=n=>e.unref(a).setIdentity("name",x(n)))},null,40,aa)])])],8,Yn)])]),e.unref(r)&&e.unref(K).issues.length?(e.openBlock(),e.createElementBlock("details",oa,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(i).issues)+" · "+e.toDisplayString(e.unref(K).issues.length)+" "+e.toDisplayString(e.unref(i).errors),1),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(R.value,n=>(e.openBlock(),e.createElementBlock("li",{key:`${n.issue.path}:${n.issue.message}`},[e.createElementVNode("button",{type:"button",class:"mr-binding-issue-link","aria-label":`${e.unref(i).locateIssue} · ${n.label}`,onClick:p=>e.unref(a).locateIssue(n.issue)},[e.createElementVNode("strong",null,e.toDisplayString(n.label),1),e.createElementVNode("span",null,e.toDisplayString(n.message),1),e.createVNode(_._sfc_main,{name:"arrow-right",size:12})],8,la)]))),128))]),b.value>1?(e.openBlock(),e.createElementBlock("div",ra,[e.createElementVNode("button",{type:"button",disabled:u.value===0,"aria-label":e.unref(i).previousIssues,onClick:l[18]||(l[18]=n=>u.value--)},[e.createVNode(_._sfc_main,{name:"chevron-left",size:12})],8,ia),e.createElementVNode("span",null,e.toDisplayString(u.value+1)+"/"+e.toDisplayString(b.value),1),e.createElementVNode("button",{type:"button",disabled:u.value+1>=b.value,"aria-label":e.unref(i).nextIssues,onClick:l[19]||(l[19]=n=>u.value++)},[e.createVNode(_._sfc_main,{name:"chevron-right",size:12})],8,sa)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.unref(w).warnings.length?(e.openBlock(),e.createElementBlock("details",ua,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(i).inspectWarning)+" · "+e.toDisplayString(e.unref(w).warnings.length),1),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(w).warnings,(n,p)=>(e.openBlock(),e.createElementBlock("li",{key:p},e.toDisplayString(n),1))),128))])])):e.createCommentVNode("",!0),e.createElementVNode("footer",ca,[e.createElementVNode("span",{class:e.normalizeClass({"is-ready":e.unref(K).ok}),role:"status",title:e.unref(a).guidance.value},e.toDisplayString(e.unref(a).guidance.value),11,da),e.unref(a).pendingLocalChanges.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:e.unref($),onClick:l[20]||(l[20]=(...n)=>e.unref(a).restoreDraft&&e.unref(a).restoreDraft(...n))},e.toDisplayString(e.unref(i).restoreDraft),9,ga)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",disabled:!e.unref(a).canCheck.value,onClick:l[21]||(l[21]=(...n)=>e.unref(a).check&&e.unref(a).check(...n))},e.toDisplayString(e.unref(i).check),9,ma),e.createElementVNode("button",{type:"button",class:"mr-binding-primary",disabled:e.unref($)||!e.unref(K).ok,title:e.unref(a).guidance.value,onClick:l[22]||(l[22]=(...n)=>e.unref(a).apply&&e.unref(a).apply(...n))},e.toDisplayString(e.unref(i).apply),9,fa)])],64)):(e.openBlock(),e.createElementBlock("div",Qt,[l[27]||(l[27]=e.createElementVNode("svg",{viewBox:"0 0 80 80",fill:"none","aria-hidden":"true"},[e.createElementVNode("rect",{x:"15",y:"10",width:"50",height:"60",rx:"8",fill:"#eff6ff",stroke:"#bfdbfe"}),e.createElementVNode("path",{d:"M25 25h30M25 35h30M25 45h30M35 25v30M45 25v30M25 55h30",stroke:"#93c5fd","stroke-width":"1.5"})],-1)),e.createElementVNode("strong",null,e.toDisplayString(e.unref(i).noSource),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(i).sourceOnly),1),e.createElementVNode("button",{type:"button",class:"mr-binding-primary",disabled:t.readonly,onClick:l[2]||(l[2]=n=>q.value?.click())},e.toDisplayString(e.unref(i).upload),9,Yt)]))],40,Ht))}});exports.default=va;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),P=require("@agile-team/mach-report"),R=require("./designer-BT7XCdbW.cjs"),Y=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),w=["text","number","date","month","year","dateRange","select"],U={text:"string",number:"string → number",date:"YYYY-MM-DD",month:"YYYY-MM",year:"YYYY",dateRange:"YYYY-MM-DD/YYYY-MM-DD",select:"option.value"};function A(t){if(t.startsWith("远程选项"))return["optionsSource"];if(t.startsWith("联动依赖"))return["dependsOn"];if(/^(默认值|必填参数的默认值)/.test(t))return["defaultValue"];if(t.includes("参数名"))return["field"];if(t.includes("选项"))return["options"];if(t.startsWith("最小边界"))return["min","max"];if(t.startsWith("最小长度"))return["minLength","maxLength"];const c=/^(minLength|maxLength|min|max) /.exec(t)?.[1];return c?[c]:["type"]}function F(t){return JSON.parse(JSON.stringify(t))}function L(t){return{field:t.field,label:t.label??"",type:t.type??"text",required:t.required===!0,placeholder:t.placeholder??"",defaultEnabled:t.defaultValue!==void 0,defaultValue:t.defaultValue??"",min:t.min===void 0?"":String(t.min),max:t.max===void 0?"":String(t.max),minLength:t.minLength===void 0?"":String(t.minLength),maxLength:t.maxLength===void 0?"":String(t.maxLength),options:t.options?t.options.map(c=>({...c})):[],optionsMode:t.optionsSource===void 0?"static":"remote",optionsSource:t.optionsSource??"",dependsOn:[...t.dependsOn??[]]}}function q(t){const c={field:t.field,type:t.type};t.label&&(c.label=t.label),t.placeholder&&(c.placeholder=t.placeholder),t.required&&(c.required=!0),t.defaultEnabled&&(c.defaultValue=t.defaultValue);for(const y of["min","max"])t[y]!==""&&(c[y]=t.type==="number"?Number(t[y]):t[y]);for(const y of["minLength","maxLength"])t[y]!==""&&(c[y]=Number(t[y]));return t.type==="select"&&t.optionsMode==="remote"?(c.optionsSource=t.optionsSource.trim(),t.dependsOn.length&&(c.dependsOn=[...t.dependsOn])):t.type==="select"&&(c.options=t.options.map(y=>({...y}))),c}function j(t){const c=()=>JSON.stringify(t.document.template.params??[]),y=e.ref(c()),u=e.ref((t.document.template.params??[]).map(L)),g=e.ref(0),o=e.ref(""),a=e.computed(()=>({...R.PARAM_EDITOR_MESSAGES,...t.messages})),k=e.computed(()=>u.value.map(q)),f=e.ref(JSON.stringify(u.value)),l=e.computed(()=>JSON.stringify(u.value)!==f.value),N=e.computed(()=>c()!==y.value),h=e.computed(()=>P.validateReportParamDefinitions(k.value)),_=e.computed(()=>{const s=new Map;for(const m of h.value){const d=Number(m.path.split(".").at(-1)),E=s.get(d)??[];E.push({message:m.message,controls:A(m.message)}),s.set(d,E)}return s}),x=e.computed(()=>_.value.keys().next().value),v=e.computed(()=>u.value[g.value]),S=e.computed(()=>h.value.filter(s=>s.path===`$.paramDefs.${g.value}`));function O(s){return(_.value.get(g.value)??[]).filter(m=>m.controls.includes(s)).map(m=>m.message)}const M=e.computed(()=>{const s=JSON.parse(y.value).map(d=>d.field),m=k.value.map(d=>d.field);return{added:m.filter(d=>d&&!s.includes(d)),removed:s.filter(d=>!m.includes(d))}});function V(){y.value=c(),u.value=(t.document.template.params??[]).map(L),g.value=Math.min(g.value,Math.max(0,u.value.length-1)),f.value=JSON.stringify(u.value),o.value=""}e.watch(c,()=>{l.value||V()});function B(){if(t.readonly)return;let s=u.value.length+1;for(;u.value.some(m=>m.field===`param${s}`);)s++;u.value.push(L({field:`param${s}`,type:"text"})),g.value=u.value.length-1}function $(){t.readonly||!v.value||(u.value.splice(g.value,1),g.value=Math.min(g.value,Math.max(0,u.value.length-1)))}function I(s){const m=g.value+s;if(t.readonly||m<0||m>=u.value.length)return;const d=u.value.splice(g.value,1)[0];u.value.splice(m,0,d),g.value=m}function b(s){t.readonly||!v.value||(v.value.type=s,v.value.min="",v.value.max="",v.value.minLength="",v.value.maxLength="")}function C(){if(t.readonly||N.value||h.value.length)return!1;try{return t.accept(F(k.value))?(y.value=JSON.stringify(k.value),f.value=JSON.stringify(u.value),o.value="",!0):(o.value=a.value.paramApplyFailed,!1)}catch(s){return o.value=s instanceof Error?s.message:String(s),!1}}return R.useTemplateToolDraft({key:()=>"params",baseline:()=>y.value,pending:()=>l.value,snapshot:()=>JSON.stringify({rows:u.value,selected:g.value,initial:f.value}),restore(s,m){const d=JSON.parse(s);if(!Array.isArray(d.rows)||d.rows.length>1e3||typeof d.initial!="string")throw new Error("Invalid parameter draft");u.value=d.rows.map(E=>({...E,optionsMode:E.optionsMode??"static",optionsSource:E.optionsSource??"",dependsOn:E.dependsOn??[]})),g.value=Math.max(0,Math.min(d.selected,d.rows.length-1)),f.value=d.initial,y.value=m}}),{m:a,rows:u,selected:g,current:v,definitions:k,issues:h,issuesByRow:_,firstIssueIndex:x,controlIssues:O,currentIssues:S,changes:M,pending:l,conflicted:N,error:o,reset:V,add:B,remove:$,move:I,setType:b,apply:C}}const J=["aria-label"],W={class:"mr-param-editor__directory"},H=["aria-label"],z=["aria-pressed","aria-label","onClick"],G={class:"mr-param-editor__directory-title"},K={key:0,class:"mr-param-editor__error-count","aria-hidden":"true"},Q={key:0},X=["disabled"],Z={key:0,class:"mr-param-editor__validation",role:"status"},ee={class:"mr-param-editor__heading"},te={class:"mr-param-editor__grid"},ne=["aria-label","disabled"],ae=["id"],re=["aria-label","disabled"],le=["value","aria-label","disabled"],oe=["value"],ie=["id"],se=["aria-label","disabled"],ue={class:"mr-param-editor__checks"},de=["disabled"],me=["disabled"],ce={class:"mr-param-editor__default-label"},pe={class:"mr-param-editor__range"},fe=["value","aria-label","disabled"],ye=["value","aria-label","disabled"],ge={key:1},ve=["aria-label","disabled"],be=["value"],Ve=["value","aria-label","type","min","max","step","disabled"],he=["id"],ke=["value","aria-label","type","min","max","step","disabled","onInput"],Ee=["id"],Ne=["value","aria-label","disabled","onInput"],_e=["id"],Se={key:0,class:"mr-param-editor__hint"},De={key:1,class:"mr-param-editor__options"},Be=["aria-label","disabled"],xe={value:"static"},Me={value:"remote"},Ce=["aria-label","disabled"],Oe=["id"],$e=["value","disabled"],Ie=["id"],Le={class:"mr-param-editor__hint"},Te={key:2,class:"mr-param-editor__options"},Re={class:"mr-param-editor__option-head"},Pe=["onUpdate:modelValue","aria-label","disabled"],Ye=["onUpdate:modelValue","aria-label","disabled"],we=["aria-label","disabled","onClick"],Ue=["id"],Ae=["disabled"],Fe={class:"mr-param-editor__row-actions"},qe=["disabled"],je=["disabled"],Je=["disabled"],We={class:"mr-param-editor__technical"},He={key:2,class:"mr-param-editor__empty"},ze=["disabled"],Ge={key:3,class:"mr-param-editor__impact"},Ke={key:0},Qe={key:1},Xe={key:4,class:"mr-param-editor__errors",role:"alert"},Ze=["disabled"],et=["disabled"],tt=e.defineComponent({__name:"ParamEditor",props:{document:{},readonly:{type:Boolean},messages:{},accept:{type:Function}},emits:["dirty"],setup(t,{expose:c,emit:y}){const u=t,g=y,o=j(u),{m:a,rows:k,selected:f,current:l,changes:N,pending:h,conflicted:_,error:x,issues:v,issuesByRow:S}=o,O=e.computed(()=>{const i=k.value.filter((r,n)=>n!==f.value).map(r=>({field:r.field,label:r.label||r.field||a.value.paramUnnamed}));for(const r of l.value?.dependsOn??[])i.some(n=>n.field===r)||i.push({field:r,label:`${r} · ${a.value.paramDependencyUnavailable}`});return i}),M=e.ref(),V=`mr-param-${e.getCurrentInstance()?.uid??0}`;e.watch(h,i=>g("dirty",i),{immediate:!0});function B(i){return{text:a.value.paramText,number:a.value.paramNumber,date:a.value.paramDate,month:a.value.paramMonth,year:a.value.paramYear,dateRange:a.value.paramDateRange,select:a.value.paramSelect}[i]}function $(){l.value&&!u.readonly&&l.value.options.push({value:"",label:""})}function I(i){u.readonly||l.value?.options.splice(i,1)}function b(i){const r=o.controlIssues(i).length>0;return{"aria-invalid":r?"true":void 0,"aria-describedby":r?`${V}-${f.value}-${i}`:void 0}}function C(i){return i==="year"?"number":i==="dateRange"?"date":["date","month","number"].includes(i)?i:"text"}function s(i){return i.target.value}function m(i,r){l.value&&!u.readonly&&(l.value[i]=s(r))}function d(i){return l.value?.defaultValue.split("/")[i]??""}function E(i,r){if(!l.value||u.readonly)return;const n=[d(0),d(1)];n[i]=s(r),l.value.defaultValue=n.some(Boolean)?n.join("/"):""}async function T(){const i=o.firstIssueIndex.value;if(i===void 0)return;f.value=i,await e.nextTick();const r=M.value?.querySelector('[aria-invalid="true"]');r?.focus({preventScroll:!0}),r?.scrollIntoView?.({block:"nearest"})}return c({pending:h,reset:o.reset,apply:o.apply,locateIssue:T}),(i,r)=>(e.openBlock(),e.createElementBlock("section",{class:"mr-param-editor","aria-label":e.unref(a).paramsTool},[e.createElementVNode("aside",W,[e.createElementVNode("header",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(a).paramsDirectory),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(k).length),1)]),e.createElementVNode("nav",{"aria-label":e.unref(a).paramsDirectory},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(k),(n,p)=>(e.openBlock(),e.createElementBlock("button",{key:p,type:"button","aria-pressed":e.unref(f)===p,"aria-label":`${n.label||n.field||e.unref(a).paramUnnamed}${e.unref(S).get(p)?.length?` · ${e.unref(a).paramIssueCount} ${e.unref(S).get(p)?.length}`:""}`,class:e.normalizeClass({"has-errors":e.unref(S).has(p)}),onClick:D=>f.value=p},[e.createElementVNode("span",G,[e.createElementVNode("strong",null,e.toDisplayString(n.label||n.field||e.unref(a).paramUnnamed),1),e.unref(S).has(p)?(e.openBlock(),e.createElementBlock("span",K,e.toDisplayString(e.unref(S).get(p)?.length),1)):e.createCommentVNode("",!0)]),e.createElementVNode("small",null,[e.createTextVNode(e.toDisplayString(n.field)+" · "+e.toDisplayString(B(n.type)),1),n.required?(e.openBlock(),e.createElementBlock("span",Q," *")):e.createCommentVNode("",!0)])],10,z))),128))],8,H),e.createElementVNode("button",{type:"button",class:"mr-param-editor__add",disabled:t.readonly,onClick:r[0]||(r[0]=(...n)=>e.unref(o).add&&e.unref(o).add(...n))},"+ "+e.toDisplayString(e.unref(a).paramAdd),9,X),e.createElementVNode("p",null,e.toDisplayString(e.unref(a).paramsDescription),1)]),e.createElementVNode("div",{ref_key:"main",ref:M,class:"mr-param-editor__main"},[e.unref(v).length?(e.openBlock(),e.createElementBlock("div",Z,[e.createElementVNode("span",null,[e.createTextVNode(e.toDisplayString(e.unref(a).paramIssueCount)+" ",1),e.createElementVNode("strong",null,e.toDisplayString(e.unref(v).length),1)]),e.createElementVNode("button",{type:"button",onClick:T},e.toDisplayString(e.unref(a).paramLocateFirst),1)])):e.createCommentVNode("",!0),e.unref(l)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("header",ee,[e.createElementVNode("div",null,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(l).label||e.unref(l).field||e.unref(a).paramUnnamed),1),e.createElementVNode("small",null,e.toDisplayString(B(e.unref(l).type)),1)]),e.createElementVNode("span",{class:e.normalizeClass({"is-pending":e.unref(h)||e.unref(v).length>0})},e.toDisplayString(e.unref(v).length?e.unref(a).paramInvalid:e.unref(h)?e.unref(a).paramPending:e.unref(a).paramReady),3)]),e.createElementVNode("div",te,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(a).paramField),1),e.withDirectives(e.createElementVNode("input",e.mergeProps({"onUpdate:modelValue":r[1]||(r[1]=n=>e.unref(l).field=n),"aria-label":e.unref(a).paramField,disabled:t.readonly,autocomplete:"off"},b("field")),null,16,ne),[[e.vModelDynamic,e.unref(l).field]]),e.unref(o).controlIssues("field").length?(e.openBlock(),e.createElementBlock("small",{key:0,id:`${V}-${e.unref(f)}-field`,class:"mr-param-editor__field-error"},e.toDisplayString(e.unref(o).controlIssues("field").join(";")),9,ae)):e.createCommentVNode("",!0)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(a).paramLabel),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[2]||(r[2]=n=>e.unref(l).label=n),"aria-label":e.unref(a).paramLabel,disabled:t.readonly},null,8,re),[[e.vModelText,e.unref(l).label]])]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(a).paramType),1),e.createElementVNode("select",e.mergeProps({value:e.unref(l).type,"aria-label":e.unref(a).paramType,disabled:t.readonly},b("type"),{onChange:r[3]||(r[3]=n=>e.unref(o).setType(n.target.value))}),[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(w),n=>(e.openBlock(),e.createElementBlock("option",{key:n,value:n},e.toDisplayString(B(n)),9,oe))),128))],16,le),e.unref(o).controlIssues("type").length?(e.openBlock(),e.createElementBlock("small",{key:0,id:`${V}-${e.unref(f)}-type`,class:"mr-param-editor__field-error"},e.toDisplayString(e.unref(o).controlIssues("type").join(";")),9,ie)):e.createCommentVNode("",!0)]),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(a).paramPlaceholder),1),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[4]||(r[4]=n=>e.unref(l).placeholder=n),"aria-label":e.unref(a).paramPlaceholder,disabled:t.readonly},null,8,se),[[e.vModelText,e.unref(l).placeholder]])]),e.createElementVNode("div",ue,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[5]||(r[5]=n=>e.unref(l).required=n),type:"checkbox",disabled:t.readonly},null,8,de),[[e.vModelCheckbox,e.unref(l).required]]),e.createTextVNode(e.toDisplayString(e.unref(a).paramRequired),1)]),e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[6]||(r[6]=n=>e.unref(l).defaultEnabled=n),type:"checkbox",disabled:t.readonly},null,8,me),[[e.vModelCheckbox,e.unref(l).defaultEnabled]]),e.createTextVNode(e.toDisplayString(e.unref(a).paramDefaultEnabled),1)])]),e.unref(l).defaultEnabled?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["mr-param-editor__default",{"is-range":e.unref(l).type==="dateRange"}])},[e.unref(l).type==="dateRange"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("span",ce,e.toDisplayString(e.unref(a).paramDefault),1),e.createElementVNode("div",pe,[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(a).paramRangeStart),1),e.createElementVNode("input",e.mergeProps({value:d(0),type:"date","aria-label":e.unref(a).paramRangeStart,disabled:t.readonly},b("defaultValue"),{onInput:r[7]||(r[7]=n=>E(0,n))}),null,16,fe)]),r[20]||(r[20]=e.createElementVNode("span",{"aria-hidden":"true"},"—",-1)),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(a).paramRangeEnd),1),e.createElementVNode("input",e.mergeProps({value:d(1),type:"date","aria-label":e.unref(a).paramRangeEnd,disabled:t.readonly},b("defaultValue"),{onInput:r[8]||(r[8]=n=>E(1,n))}),null,16,ye)])])],64)):(e.openBlock(),e.createElementBlock("label",ge,[e.createTextVNode(e.toDisplayString(e.unref(a).paramDefault),1),e.unref(l).type==="select"&&e.unref(l).optionsMode!=="remote"?e.withDirectives((e.openBlock(),e.createElementBlock("select",e.mergeProps({key:0,"onUpdate:modelValue":r[9]||(r[9]=n=>e.unref(l).defaultValue=n),"aria-label":e.unref(a).paramDefault,disabled:t.readonly},b("defaultValue")),[r[21]||(r[21]=e.createElementVNode("option",{value:""},null,-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l).options,(n,p)=>(e.openBlock(),e.createElementBlock("option",{key:p,value:n.value},e.toDisplayString(n.label||n.value),9,be))),128))],16,ve)),[[e.vModelSelect,e.unref(l).defaultValue]]):(e.openBlock(),e.createElementBlock("input",e.mergeProps({key:1,value:e.unref(l).defaultValue,"aria-label":e.unref(a).paramDefault,type:C(e.unref(l).type),min:e.unref(l).type==="year"?1:void 0,max:e.unref(l).type==="year"?9999:void 0,step:e.unref(l).type==="year"?1:"any",disabled:t.readonly},b("defaultValue"),{onInput:r[10]||(r[10]=n=>m("defaultValue",n))}),null,16,Ve))])),e.unref(o).controlIssues("defaultValue").length?(e.openBlock(),e.createElementBlock("small",{key:2,id:`${V}-${e.unref(f)}-defaultValue`,class:"mr-param-editor__field-error mr-param-editor__errors",role:"alert"},e.toDisplayString(e.unref(o).controlIssues("defaultValue").join(";")),9,he)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),["number","date","month","year","dateRange"].includes(e.unref(l).type)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},e.renderList(["min","max"],n=>e.createElementVNode("label",{key:n},[e.createTextVNode(e.toDisplayString(n==="min"?e.unref(a).paramMinimum:e.unref(a).paramMaximum),1),e.createElementVNode("input",e.mergeProps({value:e.unref(l)[n],"aria-label":n==="min"?e.unref(a).paramMinimum:e.unref(a).paramMaximum,type:C(e.unref(l).type),min:e.unref(l).type==="year"?1:void 0,max:e.unref(l).type==="year"?9999:void 0,step:e.unref(l).type==="year"?1:"any",disabled:t.readonly},{ref_for:!0},b(n),{onInput:p=>m(n,p)}),null,16,ke),e.unref(o).controlIssues(n).length?(e.openBlock(),e.createElementBlock("small",{key:0,id:`${V}-${e.unref(f)}-${n}`,class:"mr-param-editor__field-error"},e.toDisplayString(e.unref(o).controlIssues(n).join(";")),9,Ee)):e.createCommentVNode("",!0)])),64)):e.createCommentVNode("",!0),e.unref(l).type==="text"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},e.renderList(["minLength","maxLength"],n=>e.createElementVNode("label",{key:n},[e.createTextVNode(e.toDisplayString(n==="minLength"?e.unref(a).paramMinLength:e.unref(a).paramMaxLength),1),e.createElementVNode("input",e.mergeProps({value:e.unref(l)[n],type:"number",min:"0",step:"1","aria-label":n==="minLength"?e.unref(a).paramMinLength:e.unref(a).paramMaxLength,disabled:t.readonly},{ref_for:!0},b(n),{onInput:p=>m(n,p)}),null,16,Ne),e.unref(o).controlIssues(n).length?(e.openBlock(),e.createElementBlock("small",{key:0,id:`${V}-${e.unref(f)}-${n}`,class:"mr-param-editor__field-error"},e.toDisplayString(e.unref(o).controlIssues(n).join(";")),9,_e)):e.createCommentVNode("",!0)])),64)):e.createCommentVNode("",!0)]),e.unref(l).type==="dateRange"?(e.openBlock(),e.createElementBlock("p",Se,e.toDisplayString(e.unref(a).paramRangeHint),1)):e.createCommentVNode("",!0),e.unref(l).type==="select"?(e.openBlock(),e.createElementBlock("fieldset",De,[e.createElementVNode("legend",null,e.toDisplayString(e.unref(a).paramOptionsMode),1),e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(a).paramOptionsMode),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":r[11]||(r[11]=n=>e.unref(l).optionsMode=n),"aria-label":e.unref(a).paramOptionsMode,disabled:t.readonly},[e.createElementVNode("option",xe,e.toDisplayString(e.unref(a).paramOptionsStatic),1),e.createElementVNode("option",Me,e.toDisplayString(e.unref(a).paramOptionsRemote),1)],8,Be),[[e.vModelSelect,e.unref(l).optionsMode]])]),e.unref(l).optionsMode==="remote"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("label",null,[e.createTextVNode(e.toDisplayString(e.unref(a).paramOptionsSource),1),e.withDirectives(e.createElementVNode("input",e.mergeProps({"onUpdate:modelValue":r[12]||(r[12]=n=>e.unref(l).optionsSource=n),"aria-label":e.unref(a).paramOptionsSource,disabled:t.readonly},b("optionsSource")),null,16,Ce),[[e.vModelDynamic,e.unref(l).optionsSource]])]),e.unref(o).controlIssues("optionsSource").length?(e.openBlock(),e.createElementBlock("small",{key:0,id:`${V}-${e.unref(f)}-optionsSource`,class:"mr-param-editor__field-error"},e.toDisplayString(e.unref(o).controlIssues("optionsSource").join(";")),9,Oe)):e.createCommentVNode("",!0),e.createElementVNode("fieldset",e.mergeProps({class:"mr-param-editor__dependencies",tabindex:"-1"},b("dependsOn")),[e.createElementVNode("legend",null,e.toDisplayString(e.unref(a).paramDependencies),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(O.value,(n,p)=>(e.openBlock(),e.createElementBlock("label",{key:p},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":r[13]||(r[13]=D=>e.unref(l).dependsOn=D),type:"checkbox",value:n.field,disabled:t.readonly},null,8,$e),[[e.vModelCheckbox,e.unref(l).dependsOn]]),e.createTextVNode(e.toDisplayString(n.label),1)]))),128))],16),e.unref(o).controlIssues("dependsOn").length?(e.openBlock(),e.createElementBlock("small",{key:1,id:`${V}-${e.unref(f)}-dependsOn`,class:"mr-param-editor__field-error"},e.toDisplayString(e.unref(o).controlIssues("dependsOn").join(";")),9,Ie)):e.createCommentVNode("",!0),e.createElementVNode("p",Le,e.toDisplayString(e.unref(a).paramRemoteHint),1)],64)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.unref(l).type==="select"&&e.unref(l).optionsMode==="static"?(e.openBlock(),e.createElementBlock("fieldset",Te,[e.createElementVNode("legend",null,e.toDisplayString(e.unref(a).paramOptions),1),e.createElementVNode("div",Re,[e.createElementVNode("span",null,e.toDisplayString(e.unref(a).paramOptionValue),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(a).paramOptionLabel),1)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l).options,(n,p)=>(e.openBlock(),e.createElementBlock("div",{key:p,class:"mr-param-editor__option"},[e.withDirectives(e.createElementVNode("input",e.mergeProps({"onUpdate:modelValue":D=>n.value=D,"aria-label":`${e.unref(a).paramOptionValue} ${p+1}`,disabled:t.readonly},{ref_for:!0},b("options")),null,16,Pe),[[e.vModelDynamic,n.value]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":D=>n.label=D,"aria-label":`${e.unref(a).paramOptionLabel} ${p+1}`,disabled:t.readonly},null,8,Ye),[[e.vModelText,n.label]]),e.createElementVNode("button",{type:"button","aria-label":`${e.unref(a).paramOptionRemove} ${p+1}`,disabled:t.readonly,onClick:D=>I(p)},"×",8,we)]))),128)),e.unref(o).controlIssues("options").length?(e.openBlock(),e.createElementBlock("small",{key:0,id:`${V}-${e.unref(f)}-options`,class:"mr-param-editor__field-error"},e.toDisplayString(e.unref(o).controlIssues("options").join(";")),9,Ue)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",disabled:t.readonly,onClick:$},"+ "+e.toDisplayString(e.unref(a).paramOptionAdd),9,Ae)])):e.createCommentVNode("",!0),e.createElementVNode("div",Fe,[e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(f)===0,onClick:r[14]||(r[14]=n=>e.unref(o).move(-1))},"↑ "+e.toDisplayString(e.unref(a).paramMoveUp),9,qe),e.createElementVNode("button",{type:"button",disabled:t.readonly||e.unref(f)===e.unref(k).length-1,onClick:r[15]||(r[15]=n=>e.unref(o).move(1))},"↓ "+e.toDisplayString(e.unref(a).paramMoveDown),9,je),e.createElementVNode("button",{type:"button",class:"is-danger",disabled:t.readonly,onClick:r[16]||(r[16]=(...n)=>e.unref(o).remove&&e.unref(o).remove(...n))},e.toDisplayString(e.unref(a).paramRemove),9,Je)]),e.createElementVNode("details",We,[e.createElementVNode("summary",null,e.toDisplayString(e.unref(a).paramWire),1),e.createElementVNode("code",null,e.toDisplayString(e.unref(U)[e.unref(l).type]),1)])],64)):(e.openBlock(),e.createElementBlock("div",He,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(a).paramEmpty),1),e.createElementVNode("p",null,e.toDisplayString(e.unref(a).paramEmptyHint),1),e.createElementVNode("button",{type:"button",disabled:t.readonly,onClick:r[17]||(r[17]=(...n)=>e.unref(o).add&&e.unref(o).add(...n))},"+ "+e.toDisplayString(e.unref(a).paramAdd),9,ze)])),e.unref(N).added.length||e.unref(N).removed.length?(e.openBlock(),e.createElementBlock("aside",Ge,[e.createElementVNode("strong",null,e.toDisplayString(e.unref(a).paramChanges),1),e.unref(N).added.length?(e.openBlock(),e.createElementBlock("p",Ke,[e.createTextVNode(e.toDisplayString(e.unref(a).paramAdded)+":",1),e.createElementVNode("code",null,e.toDisplayString(e.unref(N).added.join(", ")),1)])):e.createCommentVNode("",!0),e.unref(N).removed.length?(e.openBlock(),e.createElementBlock("p",Qe,[e.createTextVNode(e.toDisplayString(e.unref(a).paramRemoved)+":",1),e.createElementVNode("code",null,e.toDisplayString(e.unref(N).removed.join(", ")),1)])):e.createCommentVNode("",!0),e.createElementVNode("small",null,e.toDisplayString(e.unref(a).paramRenameHint),1)])):e.createCommentVNode("",!0),e.unref(_)||e.unref(x)?(e.openBlock(),e.createElementBlock("p",Xe,e.toDisplayString(e.unref(_)?e.unref(a).paramConflict:e.unref(x)),1)):e.createCommentVNode("",!0),e.createElementVNode("footer",null,[e.createElementVNode("button",{type:"button",disabled:!e.unref(h)&&!e.unref(_),onClick:r[18]||(r[18]=(...n)=>e.unref(o).reset&&e.unref(o).reset(...n))},e.toDisplayString(e.unref(a).paramRestore),9,Ze),e.createElementVNode("button",{type:"button",class:"is-primary",disabled:t.readonly||!e.unref(h)||e.unref(_)||!!e.unref(v).length,onClick:r[19]||(r[19]=(...n)=>e.unref(o).apply&&e.unref(o).apply(...n))},e.toDisplayString(e.unref(a).paramApply),9,et)])],512)],8,J))}}),nt=Y._export_sfc(tt,[["__scopeId","data-v-b005b287"]]);exports.default=nt;