@agile-team/mach-report 2.15.0 → 2.16.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 (155) hide show
  1. package/README.md +14 -9
  2. package/dist/{ExcelBindingWizard-Bs43BGNp.cjs → ExcelBindingWizard-CP6h2x1f.cjs} +1 -1
  3. package/dist/{ExcelBindingWizard-BKH1nGNS.js → ExcelBindingWizard-HhB3hAJE.js} +3 -3
  4. package/dist/{ParamEditor-Da4akw6V.cjs → ParamEditor-CUQLgoxa.cjs} +1 -1
  5. package/dist/{ParamEditor-DoAhzJsm.js → ParamEditor-OKesP_nO.js} +1 -1
  6. package/dist/{ReportBatchPanel-wP9m9Pj1.cjs → ReportBatchPanel-cZCAMAwH.cjs} +1 -1
  7. package/dist/{ReportBatchPanel-BMf6boMA.js → ReportBatchPanel-ruxcbfY6.js} +3 -3
  8. package/dist/ReportPreview-BcDKCLiK.js +4834 -0
  9. package/dist/ReportPreview-Bk9nLfO9.cjs +6 -0
  10. package/dist/{ReportTemplateLibrary-Sxr3eD0J.cjs → ReportTemplateLibrary-BDlNT8JN.cjs} +1 -1
  11. package/dist/{ReportTemplateLibrary-C9wutIiT.js → ReportTemplateLibrary-DcwrH-63.js} +1 -1
  12. package/dist/{RuleEditor-XhGHK8DE.cjs → RuleEditor-BX5S8RSF.cjs} +1 -1
  13. package/dist/{RuleEditor-C_Clasvd.js → RuleEditor-CGl9XY2s.js} +2 -2
  14. package/dist/{TemplateOutlinePanel-JTSR53vJ.cjs → TemplateOutlinePanel-CGrT5DFN.cjs} +1 -1
  15. package/dist/{TemplateOutlinePanel-D6Bkny59.js → TemplateOutlinePanel-SXCjaPKR.js} +1 -1
  16. package/dist/{TemplateReusePanel-Kx35S0Ql.cjs → TemplateReusePanel-6Z3wRFz8.cjs} +1 -1
  17. package/dist/{TemplateReusePanel-rVuK1kTz.js → TemplateReusePanel-lHLOS9Wn.js} +2 -2
  18. package/dist/{TemplateReviewPanel-B0ar9_zf.js → TemplateReviewPanel-CJ9PLc48.js} +1 -1
  19. package/dist/{TemplateReviewPanel-Dn6X9UmY.cjs → TemplateReviewPanel-Dpk7sLcF.cjs} +1 -1
  20. package/dist/analytics.d.cts +2 -0
  21. package/dist/analytics.d.ts +2 -0
  22. package/dist/artifact-integrity.json +99 -91
  23. package/dist/{assets-DEaz4qsp.js → assets-CqIbfbTr.js} +24 -22
  24. package/dist/assets-e4YSke8n.cjs +1 -0
  25. package/dist/auto-YR7a4BtF.js +240 -0
  26. package/dist/auto-uVBjX1j5.cjs +1 -0
  27. package/dist/{batch-BfZHN1do.js → batch-WzDIXJAt.js} +1 -1
  28. package/dist/{batch-CLpELXBl.cjs → batch-z6Aw5GEY.cjs} +1 -1
  29. package/dist/capabilities-DDwXr_cA.js +103 -0
  30. package/dist/capabilities-DNLyZdNw.cjs +1 -0
  31. package/dist/codes.d.cts +2 -0
  32. package/dist/codes.d.ts +2 -0
  33. package/dist/component-tree-Ca6YYfHq.js +61 -0
  34. package/dist/component-tree-DkGLEfZC.cjs +1 -0
  35. package/dist/config-Dg_o8e7m.cjs +1 -0
  36. package/dist/{config-BVsJXSqS.js → config-XQ4qrQ7Q.js} +66 -64
  37. package/dist/designer-BfQSahxq.js +5163 -0
  38. package/dist/designer-CPPdeM5_.cjs +2 -0
  39. package/dist/designer.cjs +1 -1
  40. package/dist/designer.d.cts +53 -0
  41. package/dist/designer.d.ts +53 -0
  42. package/dist/designer.js +1 -1
  43. package/dist/diagnostic-notification-B9K9We3h.cjs +1 -0
  44. package/dist/diagnostic-notification-qGAYZdkB.js +7 -0
  45. package/dist/drill-CsdjgkRM.cjs +1 -0
  46. package/dist/{drill-ByJviLXS.js → drill-DIGsZfyB.js} +11 -11
  47. package/dist/encoding-BOGq4qYL.js +21 -0
  48. package/dist/encoding-BYF9ZTl9.cjs +1 -0
  49. package/dist/{font-loader-Q3bQjmrI.js → font-loader-CzI1GuBc.js} +1 -1
  50. package/dist/{font-loader-B_UkxpzC.cjs → font-loader-EKLzOJxf.cjs} +1 -1
  51. package/dist/index.cjs +7 -8
  52. package/dist/index.d.cts +2 -0
  53. package/dist/index.d.ts +2 -0
  54. package/dist/index.js +865 -834
  55. package/dist/json-snapshot-D6ioHth9.js +1702 -0
  56. package/dist/json-snapshot-DknkjvxP.cjs +2 -0
  57. package/dist/{pdf-CvvrjPQg.cjs → pdf-ByVCb1i6.cjs} +48 -50
  58. package/dist/{pdf-BwNyeGpt.js → pdf-DJ5S6ukC.js} +2737 -2749
  59. package/dist/pdf.cjs +1 -1
  60. package/dist/pdf.d.cts +2 -0
  61. package/dist/pdf.d.ts +2 -0
  62. package/dist/pdf.js +2 -2
  63. package/dist/{plugin-Ca_XZG3l.js → plugin-C2j5_mhx.js} +1 -1
  64. package/dist/{plugin-DHO7X8z2.cjs → plugin-Dr39GBRG.cjs} +1 -1
  65. package/dist/prepared-DdrjLC7L.cjs +1 -0
  66. package/dist/prepared-DqtpvRTn.js +87 -0
  67. package/dist/progress-BXzlVbIp.js +29 -0
  68. package/dist/progress-DJBd9Rb9.cjs +1 -0
  69. package/dist/{progress-D-OTpEav.js → progress-Hc2vxoCs.js} +2 -2
  70. package/dist/protocol-BzwMP4Vw.cjs +1 -0
  71. package/dist/protocol-kt4Iy6-3.js +90 -0
  72. package/dist/{record-bindings-Do_b3h4V.js → record-bindings-CZWBJ1fU.js} +9 -10
  73. package/dist/record-bindings-DUX1VMlR.cjs +1 -0
  74. package/dist/{region-binding-workflow-BMhK_TjP.js → region-binding-workflow-CWNvIjkV.js} +1 -1
  75. package/dist/{region-binding-workflow-DIYJdCUr.cjs → region-binding-workflow-CqSMxQ4p.cjs} +1 -1
  76. package/dist/report-encoding-worker.cjs +1 -0
  77. package/dist/report-encoding-worker.d.ts +1 -0
  78. package/dist/report-encoding-worker.js +2 -0
  79. package/dist/rich-text-layout-ALlMoYOG.cjs +3 -0
  80. package/dist/rich-text-layout-Ct5WrY1g.js +102 -0
  81. package/dist/runtime-BjKBI530.js +168 -0
  82. package/dist/runtime-CBFEPKEs.cjs +1 -0
  83. package/dist/sbom.cdx.json +2 -2
  84. package/dist/server/node.d.cts +86 -1
  85. package/dist/server/node.d.ts +86 -1
  86. package/dist/server-node.cjs +5 -1
  87. package/dist/server-node.js +4558 -473
  88. package/dist/server.cjs +1 -1
  89. package/dist/server.d.cts +8 -1
  90. package/dist/server.d.ts +8 -1
  91. package/dist/server.js +634 -792
  92. package/dist/sha256-BshdOkCC.cjs +1 -0
  93. package/dist/sha256-DTG-Gq8i.js +157 -0
  94. package/dist/style-67OqfNed.js +73 -0
  95. package/dist/style-C22Pbv3T.cjs +1 -0
  96. package/dist/style.css +1 -1
  97. package/dist/{template-catalog-j2B1MJlL.js → template-catalog-BtR2JmCL.js} +9 -9
  98. package/dist/{template-catalog-FJE_c9Qe.cjs → template-catalog-C2NLdrwB.cjs} +1 -1
  99. package/dist/{template-fragments-DcKeiylI.cjs → template-fragments-BVsbxs4a.cjs} +1 -1
  100. package/dist/{template-fragments-BGbQLGlV.js → template-fragments-By0aZC1D.js} +2 -2
  101. package/dist/template-registry-C62vpv4a.cjs +1 -0
  102. package/dist/{template-registry-BtaKPELV.js → template-registry-Cw3vRTX2.js} +389 -321
  103. package/dist/{textwrap-DE1kgcJB.js → textwrap-BEIg2w8y.js} +1 -1
  104. package/dist/textwrap-BI-yJ6Wt.cjs +4 -0
  105. package/dist/vue/async.d.cts +66 -0
  106. package/dist/vue/async.d.ts +66 -0
  107. package/dist/vue/index.d.cts +89 -1
  108. package/dist/vue/index.d.ts +89 -1
  109. package/dist/vue-async.cjs +1 -1
  110. package/dist/vue-async.js +3 -3
  111. package/dist/vue.cjs +1 -1
  112. package/dist/vue.js +7 -7
  113. package/dist/{workbook-session-BvToI-Fd.js → workbook-session-BeSO8PFB.js} +153 -140
  114. package/dist/{workbook-session-Bjv1YCRK.cjs → workbook-session-Cbts-22R.cjs} +12 -12
  115. package/dist/worker.cjs +1 -1
  116. package/dist/worker.d.cts +84 -1
  117. package/dist/worker.d.ts +84 -1
  118. package/dist/worker.js +12 -157
  119. package/dist/xlsx-node.cjs +33 -33
  120. package/dist/xlsx-node.js +1282 -1289
  121. package/dist/xlsx.cjs +4 -3
  122. package/dist/xlsx.d.cts +2 -0
  123. package/dist/xlsx.d.ts +2 -0
  124. package/dist/xlsx.js +297 -279
  125. package/package.json +6 -3
  126. package/dist/ReportPreview-ChV19HBp.js +0 -4619
  127. package/dist/ReportPreview-DbLvvOUT.cjs +0 -6
  128. package/dist/assets-B9ImAi6_.cjs +0 -1
  129. package/dist/batch-BaP6pWDE.cjs +0 -1
  130. package/dist/batch-CGyt-b2W.js +0 -273
  131. package/dist/capabilities-CAh2Nrue.cjs +0 -1
  132. package/dist/capabilities-DskCHs3V.js +0 -69
  133. package/dist/config-D10us76d.cjs +0 -1
  134. package/dist/data-explanation-B8MZRYVS.js +0 -16
  135. package/dist/data-explanation-DE55G30w.cjs +0 -1
  136. package/dist/defaults-DXhiM1ZD.js +0 -10
  137. package/dist/defaults-xhmcLLrf.cjs +0 -1
  138. package/dist/designer-2bDlcNXQ.js +0 -5136
  139. package/dist/designer-BT7XCdbW.cjs +0 -2
  140. package/dist/drill-DYTxuL3A.cjs +0 -1
  141. package/dist/grid-strokes-Cr7DwUux.cjs +0 -1
  142. package/dist/grid-strokes-DyyG1q_o.js +0 -53
  143. package/dist/json-snapshot-DFb2eWkf.js +0 -1416
  144. package/dist/json-snapshot-WWSGlaHG.cjs +0 -2
  145. package/dist/prepared-CFy9B75C.cjs +0 -1
  146. package/dist/prepared-ajM-H-9B.js +0 -69
  147. package/dist/record-bindings-By_UKZ2g.cjs +0 -1
  148. package/dist/render-plan-7xpGrCEl.cjs +0 -1
  149. package/dist/render-plan-Ck6koX9L.js +0 -13
  150. package/dist/sha256-ArEYjaTI.cjs +0 -1
  151. package/dist/sha256-DPEuJ3nh.js +0 -155
  152. package/dist/style-CQ1PK8ZB.js +0 -67
  153. package/dist/style-UgIJSA1F.cjs +0 -1
  154. package/dist/template-registry-Co1zPq5e.cjs +0 -1
  155. package/dist/textwrap-CWHyzkBH.cjs +0 -4
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.15.0-2563eb" alt="Source version 2.15.0" />
11
+ <img src="https://img.shields.io/badge/source-2.16.0-2563eb" alt="Source version 2.16.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>
@@ -43,15 +43,15 @@ MachReport 把模板、数据和输出分开:用 TypeScript DSL 或 JSON 定
43
43
  | 页面模型 | 毫米单位、纸张预设与自定义尺寸、页边距、横纵向、文本与表格几何 |
44
44
  | 完整宽表 | 自然列宽、横向滚动、默认 100% 预览;纵向分段窗口化,Excel 自动合并连续 Sheet |
45
45
  | 明细与汇总 | 自动分页、多级分组与加权小计、业务键主从明细、动态矩阵、重复页眉页脚 |
46
- | 数据呈现 | 表头与内容独立对齐、类型自动对齐、数值 / 百分比 / 日期格式化、条件格式 |
46
+ | 数据呈现 | 表头与内容独立对齐、类型自动对齐、数值 / 百分比 / 日期格式化、条件格式、富文本与格内子组件 |
47
47
  | 预览交互 | 远程级联参数、受控关联详情、右下分页、分组导出菜单、内容搜索与字段目录、跨页选区、冻结窗格、Sheet 导航 |
48
48
  | 内容编辑 | 默认只读;双击与批量粘贴、原子保存、编辑后重算、撤销 / 重做、恢复与变更清单 |
49
- | Excel 导入 | PNG/JPEG Logo、完整索引色、多 Sheet 会话复用、可取消预检、完整宽表、合并样式与缓存公式值转换为模板 |
49
+ | Excel 导入 | 混合字体与只读富文本、PNG/JPEG Logo、完整索引色、多 Sheet 会话复用、可取消预检、合并样式与缓存公式值转换为模板 |
50
50
  | 模板配置 | 可视化画布、Excel 业务绑定向导、计算与规则、变更对比与发布验收、CAS 历史 / 回滚 |
51
51
  | 工业标签 | 模板 + 行数组直接接入、逐记录字段绑定、多版相邻与份数、真实 QR / 条码、可视化设计 |
52
52
  | 输出 | 浏览器打印、HTML、PDF、真正的 `.xlsx`、逐页 PNG、Word 兼容 HTML `.doc` |
53
53
  | 工程接入 | 局部组件、全局插件、异步入口、分层配置、结构化错误与导出告警 |
54
- | 引擎复用 | 共用契约与计算、逐页排版、Node Runtime / Worker、流式 Excel、可恢复持久任务 |
54
+ | 引擎复用 | 共用契约与计算、逐页排版、Node Runtime / 自动隔离编码、流式 Excel、可恢复持久任务 |
55
55
  | 分析扩展 | 可选只读选区计算、交叉汇总、声明式计算、柱图 / 折线图基础图元与资源适配 |
56
56
 
57
57
  数据接口、鉴权与业务规则由宿主应用决定。包内统一校验、分页、编辑事务、设计器和版本流程;宿主提供请求与存储适配器。审批和业务数据库部署按项目现有治理执行。
@@ -76,10 +76,12 @@ MachReport 把模板、数据和输出分开:用 TypeScript DSL 或 JSON 定
76
76
  | 跨项目搬运模板、资源、字段契约与脱敏样例 | [可搬运模板包](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/TEMPLATE_PACKAGE.md) |
77
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
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) |
79
+ | 大文件编码、压缩期硬取消 | [自动执行策略](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/guides/automatic-export.md):浏览器一个Worker工厂,Node自动定位线程入口 |
80
+ | 持续回归与设备交接 | [深层测试](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/DEEP_VALIDATION.md) · [Office与设备验收](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/EXTERNAL_ACCEPTANCE.md) · [迭代安排](https://github.com/ChenyCHENYU/MachReport/blob/main/docs/NEXT_ITERATION.md) |
79
81
 
80
82
  稳定业务键的数据源自动维护编辑重算会话,独立报表默认隔离;镜像来源显式声明共享。保存前准备重算,成功后更新派生结果与修订,导出等待在途编辑。工作簿公式继续只显示缓存结果。严格输出拒绝已知缺字或损坏图片,宽松策略返回明确诊断。
81
83
 
82
- 设计工具按需加载;画布拖动只在松手时提交事务,修改模板名称不重复排版。大列目录窗口化,连续 Excel 按工作量让出执行并响应取消。已准备结果可通过 `runtime.exportPrepared()` 原样导出,无需再次取数。
84
+ 设计工具按需加载;画布拖动只在松手时提交事务,修改模板名称不重复排版。大列目录窗口化,连续 Excel 按工作量让出执行并响应取消。可选自动执行按任务规模隔离编码,覆盖最终压缩期硬取消;已准备结果原样交付,无需再次取数。
83
85
 
84
86
  产品分层和暂缓的数据库连接、企业权限、调度与渠道见[产品能力](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)。
85
87
 
@@ -243,7 +245,7 @@ await writeFile("report.xlsx", new Uint8Array(buffer));
243
245
  | 标题文本 | 按组件顺序写入合并行;页面绝对坐标转换为工作表行流 |
244
246
  | 单元格类型 | 宽表默认 raw,普通页面默认 text;可显式覆盖,raw 保留数值、布尔、文本编号、空值和汇总数值 |
245
247
  | 数字格式 | `raw` 模式沿用小数位、千分位和百分比格式,不猜测文本编号的类型 |
246
- | 非表格内容 | 图片、条码、二维码、图表、嵌套组件和无文本回退的富文本等暂不导出,跳过时返回 `warnings` |
248
+ | 图片与富文本 | PNG/JPEG及图片型码图可嵌入;顶层/格内文字保留原生richText,格内图片保留锚点;未生成的图表/码图与不可表达的嵌套几何具名诊断 |
247
249
  | 版式与打印 | 普通页面自动识别 A3 / A4 / A5;宽表默认不强制纸型,可选 paperSize,工作表列宽保持完整 |
248
250
  | Excel 模板导入 | `.xlsx` 转普通模板,多 Sheet、合并、尺寸、基础样式与原始值;默认完整宽表 |
249
251
  | 内容修改 | 预览按需双击编辑;公式格只读且不重算,工作簿编辑器与透视表交互不在当前范围 |
@@ -330,7 +332,7 @@ const template = createTableTemplate({
330
332
  | 输出 | 验收重点与范围 |
331
333
  | --- | --- |
332
334
  | DOM / 浏览器打印 | 固定几何、合并格、字体继承、独立边框、普通宿主 CSS 隔离;自定义纸张保留毫米精度 |
333
- | Canvas / PNG | 文本、表格、基础形状、真实斜线;异步等待图片解码并逐页编码,完整富文本仍有限制 |
335
+ | Canvas / PNG | 基础富文本、混合字面、格内递归内容与裁切;异步等待图片解码并逐页编码,不支持样式具名诊断 |
334
336
  | PDF | 网格、内距、行高、垂直对齐、字体与图片输出;缺字、裁切及不支持样式提供诊断 |
335
337
  | Excel | 完整行列、原始值、合并、行高、连续表;按工作表语义输出,不复刻自由页面坐标 |
336
338
 
@@ -620,10 +622,13 @@ pnpm test:e2e
620
622
  | `pnpm lint` | ESLint 检查 |
621
623
  | `pnpm test` / `pnpm test:coverage` | Vitest 单元测试 / 覆盖率 |
622
624
  | `pnpm build` | 引擎、Vue、联邦与示例构建 |
623
- | `pnpm verify` | 类型、Lint、复杂度、构建、覆盖率、文档与打包消费端校验 |
625
+ | `pnpm verify` | 类型、Lint、复杂度、构建、API/依赖摘要、覆盖率、文档、打包消费与验收样例 |
624
626
  | `pnpm check:quality` | 生产 TS / Vue 函数圈复杂度上限 20,输出可复核统计 |
625
627
  | `pnpm check:consumer` | npm 产物在隔离目录的 ESM / CJS 运行与类型验证 |
626
628
  | `pnpm test:e2e` | Playwright 浏览器端到端验证 |
629
+ | `pnpm test:fuzz` | 有种子的模板、参数、媒体、ZIP、XLSX与HTML属性测试 |
630
+ | `pnpm test:a11y` | 真实浏览器axe与交互状态可访问性检查 |
631
+ | `pnpm check:acceptance` | 生成并回读Office、字体、标签及设备验收包,人工状态保持未执行 |
627
632
  | `pnpm check:compat` | 实际包的严格 ESM/CJS 类型、运行、SSR 与输出兼容检查 |
628
633
  | `pnpm check:server-example` | Java→Node 真实 HTTP、精度、错误、取消、下载与混合并发 |
629
634
  | `pnpm --filter @agile-team/example-minimal dev` | 启动本地报表示例 |
@@ -665,7 +670,7 @@ CI 使用同一套校验命令,并在构建后检查实际发布产物。协
665
670
 
666
671
  ## 版本与授权
667
672
 
668
- 当前源码版本为 `2.15.0`,以 [`packages/mach-report/package.json`](https://github.com/ChenyCHENYU/MachReport/blob/main/packages/mach-report/package.json) 为准;npm 已发布版本由顶部 npm 标识展示。
673
+ 当前源码版本为 `2.16.0`,以 [`packages/mach-report/package.json`](https://github.com/ChenyCHENYU/MachReport/blob/main/packages/mach-report/package.json) 为准;npm 已发布版本由顶部 npm 标识展示。
669
674
 
670
675
  Copyright © 2026 ChenyCHENYU (Agile Team). All rights reserved.
671
676
 
@@ -1 +1 @@
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;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),I=require("./region-binding-workflow-CqSMxQ4p.cjs"),_=require("./_plugin-vue_export-helper-BLmdZLlg.cjs"),he=require("./designer-CPPdeM5_.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-Cbts-22R.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,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-BMhK_TjP.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-CWNvIjkV.js";
3
3
  import { a as _ } from "./_plugin-vue_export-helper-8SL1F89S.js";
4
- import { E as wt, u as kt } from "./designer-2bDlcNXQ.js";
4
+ import { E as wt, u as kt } from "./designer-BfQSahxq.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-BvToI-Fd.js").then((ce) => ce.w);
628
+ const { openExcelWorkbook: q } = await import("./workbook-session-BeSO8PFB.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"),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;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),P=require("@agile-team/mach-report"),R=require("./designer-CPPdeM5_.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;
@@ -1,6 +1,6 @@
1
1
  import { ref as T, computed as R, watch as Z, defineComponent as ee, getCurrentInstance as ae, openBlock as d, createElementBlock as u, unref as e, createElementVNode as n, toDisplayString as o, Fragment as C, renderList as A, normalizeClass as W, createCommentVNode as h, createTextVNode as k, withDirectives as V, mergeProps as I, vModelDynamic as H, vModelText as z, vModelCheckbox as G, vModelSelect as X, nextTick as te } from "vue";
2
2
  import { validateReportParamDefinitions as le } from "@agile-team/mach-report";
3
- import { P as ne, u as oe } from "./designer-2bDlcNXQ.js";
3
+ import { P as ne, u as oe } from "./designer-BfQSahxq.js";
4
4
  import { _ as re } from "./_plugin-vue_export-helper-8SL1F89S.js";
5
5
  const ie = ["text", "number", "date", "month", "year", "dateRange", "select"], se = { text: "string", number: "string → number", date: "YYYY-MM-DD", month: "YYYY-MM", year: "YYYY", dateRange: "YYYY-MM-DD/YYYY-MM-DD", select: "option.value" };
6
6
  function de(a) {