agentworkshop 0.8.5 → 0.8.6

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 (349) hide show
  1. package/.AgentWorkShop/prompts/host-tools.en.json +3 -3
  2. package/.AgentWorkShop/prompts/host-tools.json +14 -4
  3. package/.output/.AgentWorkShop/prompts/host-tools.en.json +3 -3
  4. package/.output/.AgentWorkShop/prompts/host-tools.json +14 -4
  5. package/.output/nitro.json +1 -1
  6. package/.output/public/_nuxt/{U_n8pryv2.js → 7op-BMk82.js} +1 -1
  7. package/.output/public/_nuxt/{zWZ26UWi.js → B1SIgyrl.js} +1 -1
  8. package/.output/public/_nuxt/{C4tXwpSt.js → BA2lmfW4.js} +1 -1
  9. package/.output/public/_nuxt/{EJkmXP432.js → BDXQqSkl2.js} +1 -1
  10. package/.output/public/_nuxt/{CY_7u1ST2.js → BI9jj13f2.js} +1 -1
  11. package/.output/public/_nuxt/{CGf9neEK2.js → BiXqyYNw2.js} +1 -1
  12. package/.output/public/_nuxt/{D9GoOkyP2.js → BlOm8JIs2.js} +1 -1
  13. package/.output/public/_nuxt/{CQ31GiJU2.js → BoXKUOiN2.js} +1 -1
  14. package/.output/public/_nuxt/{DZzbCFY2.js → BuLoPmcf.js} +1 -1
  15. package/.output/public/_nuxt/{D9ppMCbw.js → BwOK42JQ.js} +1 -1
  16. package/.output/public/_nuxt/{CZJ5cw6r2.js → C1RMfPoB2.js} +1 -1
  17. package/.output/public/_nuxt/{CGviZq4E.js → COfo_Bg3.js} +1 -1
  18. package/.output/public/_nuxt/CTGJHZ8X2.js +1 -0
  19. package/.output/public/_nuxt/{SgsmmrsZ.js → CY2NkFvI.js} +1 -1
  20. package/.output/public/_nuxt/{B4GOTVfN.js → C_4mzQ5X.js} +1 -1
  21. package/.output/public/_nuxt/{DGmFHb7m.js → CdvMP3lv.js} +1 -1
  22. package/.output/public/_nuxt/{iqxZGXsY.js → CooauJ7D.js} +1 -1
  23. package/.output/public/_nuxt/{C3vxePED.js → D1eVi1zr.js} +1 -1
  24. package/.output/public/_nuxt/{DnuJ66Jy.js → D6PUmBb0.js} +1 -1
  25. package/.output/public/_nuxt/{BBhroEeN.js → DC8sMA36.js} +1 -1
  26. package/.output/public/_nuxt/{DOUuGOQR2.js → DDHh85c42.js} +1 -1
  27. package/.output/public/_nuxt/{Cy_HDgSl.js → DDXOfmo2.js} +2 -2
  28. package/.output/public/_nuxt/{Cr2xJ_CY.js → DMFwLxfu.js} +1 -1
  29. package/.output/public/_nuxt/{BZg_MIK42.js → DoprKJ5a2.js} +1 -1
  30. package/.output/public/_nuxt/{BzBBEE-o2.js → Dr1FVeQG2.js} +1 -1
  31. package/.output/public/_nuxt/{W0sNnJQh.js → DtnsTW7e.js} +1 -1
  32. package/.output/public/_nuxt/{gUYi1hLJ2.js → DxDqd6T42.js} +1 -1
  33. package/.output/public/_nuxt/{B0UUODeh.js → DzU3zEKX.js} +1 -1
  34. package/.output/public/_nuxt/{BkO5WdX5.js → EgO70wrE.js} +1 -1
  35. package/.output/public/_nuxt/{7OZQiw002.js → HJKu4eEV2.js} +1 -1
  36. package/.output/public/_nuxt/{ChF6qLpY2.js → K5Xen0wZ2.js} +1 -1
  37. package/.output/public/_nuxt/{CNrRZmSx2.js → Rb4o4o-82.js} +1 -1
  38. package/.output/public/_nuxt/{BqBTlfiz.js → Tf6SJSDj.js} +1 -1
  39. package/.output/public/_nuxt/{DJaGVY4v2.js → ZzOyoXex2.js} +1 -1
  40. package/.output/public/_nuxt/{PbzVdCTA2.js → azOGy_tU2.js} +1 -1
  41. package/.output/public/_nuxt/{D1thFC3z.js → be-4wyTo.js} +1 -1
  42. package/.output/public/_nuxt/builds/latest.json +1 -1
  43. package/.output/public/_nuxt/builds/meta/593b65bd-cf1d-4b7f-a993-57e939c38f36.json +1 -0
  44. package/.output/public/_nuxt/{8b9CKi6F.js → dcjPjLPI.js} +1 -1
  45. package/.output/public/_nuxt/{ae2-5ZPt.js → h-Fn7pRD.js} +1 -1
  46. package/.output/public/_nuxt/{-gy9k_TE2.js → hyLdZsOd2.js} +1 -1
  47. package/.output/public/_nuxt/{BHxG41IQ2.js → o8sYG6xx2.js} +1 -1
  48. package/.output/server/chunks/_/access.mjs +1 -1
  49. package/.output/server/chunks/_/agent-dto.mjs +26 -0
  50. package/.output/server/chunks/_/agent-dto.mjs.map +1 -0
  51. package/.output/server/chunks/_/data-export.mjs +6 -6
  52. package/.output/server/chunks/_/data-query.mjs +3 -3
  53. package/.output/server/chunks/_/eda-run.repo.mjs +2 -2
  54. package/.output/server/chunks/_/features.mjs +5 -5
  55. package/.output/server/chunks/_/golden.mjs +3 -3
  56. package/.output/server/chunks/_/harness-spawn-policy.mjs +77 -0
  57. package/.output/server/chunks/_/harness-spawn-policy.mjs.map +1 -0
  58. package/.output/server/chunks/_/index.mjs +1 -1
  59. package/.output/server/chunks/_/line-scope.mjs +32 -0
  60. package/.output/server/chunks/_/line-scope.mjs.map +1 -0
  61. package/.output/server/chunks/_/mes-console.mjs +1 -1
  62. package/.output/server/chunks/_/nitro.mjs +2429 -1726
  63. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  64. package/.output/server/chunks/_/ocap.mjs +1 -1
  65. package/.output/server/chunks/_/rest-auth.mjs +1 -1
  66. package/.output/server/chunks/_/spc.mjs +1 -1
  67. package/.output/server/chunks/build/TownView-BWMDbosY.mjs +1 -1
  68. package/.output/server/chunks/build/daq-CdxcfY_G.mjs +1 -1
  69. package/.output/server/chunks/build/dcw-BlDQtS4q.mjs +1 -1
  70. package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
  71. package/.output/server/chunks/build/useDaqAddNode-D_Rkju0f.mjs +1 -1
  72. package/.output/server/chunks/build/useDaqDetailNode-DeOsDxK5.mjs +1 -1
  73. package/.output/server/chunks/build/useDaqDetailParams-Cm9a9r5G.mjs +1 -1
  74. package/.output/server/chunks/build/useDaqFilters-CctmO03p.mjs +1 -1
  75. package/.output/server/chunks/build/useDaqStream-B9ZBVQrI.mjs +1 -1
  76. package/.output/server/chunks/build/useDaqTemplates-CK37sMfi.mjs +1 -1
  77. package/.output/server/chunks/build/useDcwAddNode-DACVcEHs.mjs +1 -1
  78. package/.output/server/chunks/build/useDcwStream-Dir5ufAU.mjs +1 -1
  79. package/.output/server/chunks/routes/api/mcp/workshop.mjs +1 -1
  80. package/.output/server/chunks/routes/api/system/backup/run.post.mjs +2 -2
  81. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +17 -9
  82. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
  83. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +3 -0
  84. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -1
  85. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
  86. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +6 -0
  87. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
  88. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +5 -0
  89. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
  90. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +5 -2
  91. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
  92. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +7 -1
  93. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
  94. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +3 -1
  95. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
  96. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +8 -6
  97. package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
  98. package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs +29 -49
  99. package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs.map +1 -1
  100. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +1 -1
  101. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +6 -1
  102. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
  103. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +4 -2
  104. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
  105. package/.output/server/chunks/routes/api/workshop/daq/index2.post.mjs +1 -1
  106. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +14 -5
  107. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
  108. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +1 -1
  109. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +1 -1
  110. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +1 -1
  111. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +7 -4
  112. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
  113. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
  114. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +1 -1
  115. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +6 -2
  116. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
  117. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +6 -2
  118. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +1 -1
  119. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +1 -1
  120. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +1 -1
  121. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +1 -1
  122. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +6 -1
  123. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
  124. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +1 -1
  125. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +7 -4
  126. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
  127. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -1
  128. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +1 -1
  129. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +1 -1
  130. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +6 -2
  131. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
  132. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +1 -1
  133. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +7 -4
  134. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
  135. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +1 -1
  136. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +1 -1
  137. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +1 -1
  138. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +6 -2
  139. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +1 -1
  140. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +1 -1
  141. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +1 -1
  142. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -1
  143. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -1
  144. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -1
  145. package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs +6 -2
  146. package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs.map +1 -1
  147. package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs +1 -1
  148. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs +1 -1
  149. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +1 -1
  150. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +1 -1
  151. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +6 -2
  152. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
  153. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +4 -2
  154. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
  155. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +5 -2
  156. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -1
  157. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +1 -1
  158. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +1 -1
  159. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +1 -1
  160. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +1 -1
  161. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -1
  162. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -1
  163. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -1
  164. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +7 -3
  165. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs.map +1 -1
  166. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +8 -1
  167. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
  168. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +6 -2
  169. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
  170. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +1 -1
  171. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +1 -1
  172. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
  173. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
  174. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +7 -4
  175. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
  176. package/.output/server/chunks/routes/api/workshop/eda/commonality.get.mjs +1 -1
  177. package/.output/server/chunks/routes/api/workshop/eda/vm/predict.post.mjs +1 -1
  178. package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs +1 -1
  179. package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs +1 -1
  180. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +1 -1
  181. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
  182. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
  183. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
  184. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
  185. package/.output/server/chunks/routes/api/workshop/index.mjs +1 -1
  186. package/.output/server/chunks/routes/api/workshop/index.post.mjs +2 -0
  187. package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
  188. package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
  189. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +8 -3
  190. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  191. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +1 -1
  192. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -1
  193. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +1 -1
  194. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +1 -1
  195. package/.output/server/chunks/routes/api/workshop/mes/datasets.get.mjs +1 -1
  196. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/autofix.mjs +1 -1
  197. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/compile.mjs +1 -1
  198. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/evidence.mjs +1 -1
  199. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/publish.mjs +1 -1
  200. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval-decision.mjs +1 -1
  201. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval.mjs +1 -1
  202. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/transition.mjs +1 -1
  203. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/subgraph.mjs +1 -1
  204. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/validate.mjs +1 -1
  205. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId_.mjs +1 -1
  206. package/.output/server/chunks/routes/api/workshop/ontology/export/_ontologyId_.mjs +1 -1
  207. package/.output/server/chunks/routes/api/workshop/ontology/index.mjs +1 -1
  208. package/.output/server/chunks/routes/api/workshop/ontology/scene.mjs +1 -1
  209. package/.output/server/chunks/routes/api/workshop/ontology/traces/_ontologyId_.mjs +1 -1
  210. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId/compare.mjs +1 -1
  211. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId_.mjs +1 -1
  212. package/.output/server/chunks/routes/api/workshop/optimization/capabilities.get.mjs +1 -1
  213. package/.output/server/chunks/routes/api/workshop/optimization/index.get.mjs +1 -1
  214. package/.output/server/chunks/routes/api/workshop/optimization/index.mjs +1 -1
  215. package/.output/server/chunks/routes/api/workshop/optimization/index2.mjs +1 -1
  216. package/.output/server/chunks/routes/api/workshop/optimization/profiles/_id/publish.post.mjs +1 -1
  217. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/crosscheck.post.mjs +1 -1
  218. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/dispatch.post.mjs +1 -1
  219. package/.output/server/chunks/routes/api/workshop/optimization/solve.post.mjs +1 -1
  220. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
  221. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
  222. package/.output/server/chunks/routes/api/workshop/process-model/datasets.post.mjs +1 -1
  223. package/.output/server/chunks/routes/api/workshop/process-model/eligibility.mjs +1 -1
  224. package/.output/server/chunks/routes/api/workshop/process-model/index.mjs +1 -1
  225. package/.output/server/chunks/routes/api/workshop/process-model/specs/_id/publish.post.mjs +1 -1
  226. package/.output/server/chunks/routes/api/workshop/process-model/train.post.mjs +1 -1
  227. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  228. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  229. package/.output/server/chunks/routes/api/workshop/tools/sync.post.mjs +1 -1
  230. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
  231. package/.output/server/chunks/routes/renderer.mjs +2 -2
  232. package/.output/server/chunks/virtual/entry.mjs +1 -1
  233. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  234. package/.output/server/package.json +1 -1
  235. package/README-zh.md +4 -2
  236. package/README.md +9 -2
  237. package/config.yml +1 -1
  238. package/docker-compose.yml +4 -2
  239. package/docs/cli.en.md +2 -2
  240. package/docs/cli.md +2 -2
  241. package/docs/plugins.en.md +1 -1
  242. package/docs/plugins.md +1 -1
  243. package/docs/sdk.en.md +1 -1
  244. package/docs/sdk.md +1 -1
  245. package/package.json +1 -1
  246. package/scripts/_audit/_live-mqtt-e2e-20261028.mjs +219 -0
  247. package/scripts/_audit/prompt-injection-probe.mts +76 -0
  248. package/scripts/api-live-e2e.mjs +9 -3
  249. package/scripts/e2e-multiexpert-remediation-real.mjs +453 -0
  250. package/scripts/e2e-node-binding-3mode-real.mjs +697 -0
  251. package/scripts/e2e-node-binding-authz.mjs +332 -0
  252. package/scripts/security-acceptance.mjs +218 -0
  253. package/server/api/workshop/agent-tools/bindings/index.post.ts +33 -17
  254. package/server/api/workshop/agents/[id].patch.ts +3 -0
  255. package/server/api/workshop/agents/index.post.ts +3 -0
  256. package/server/api/workshop/channel-templates/[id].patch.ts +5 -0
  257. package/server/api/workshop/channel-templates/index.post.ts +6 -0
  258. package/server/api/workshop/channels/[id]/agents/[agentId].patch.ts +5 -0
  259. package/server/api/workshop/channels/[id]/agents/index.get.ts +8 -2
  260. package/server/api/workshop/channels/[id]/agents/index.post.ts +7 -0
  261. package/server/api/workshop/channels/[id]/index.get.ts +10 -4
  262. package/server/api/workshop/channels.post.ts +3 -0
  263. package/server/api/workshop/daq/[id]/ingest.post.ts +26 -22
  264. package/server/api/workshop/daq/[id].patch.ts +8 -0
  265. package/server/api/workshop/daq/alarms.get.ts +18 -16
  266. package/server/api/workshop/daq/infra/reconnect.post.ts +21 -5
  267. package/server/api/workshop/daq/test-driver.post.ts +10 -3
  268. package/server/api/workshop/dcw/[id]/param-ledger.get.ts +7 -1
  269. package/server/api/workshop/dcw/[id]/read.post.ts +6 -1
  270. package/server/api/workshop/dcw/[id].patch.ts +49 -40
  271. package/server/api/workshop/dcw/journal/index.get.ts +7 -3
  272. package/server/api/workshop/dcw/mes-artifacts/file.get.ts +7 -1
  273. package/server/api/workshop/dcw/mes-artifacts/index.get.ts +7 -1
  274. package/server/api/workshop/dcw/optimizations/[id]/series.get.ts +6 -1
  275. package/server/api/workshop/dcw/optimizations/[id].get.ts +3 -1
  276. package/server/api/workshop/dcw/optimizations/index.get.ts +6 -3
  277. package/server/api/workshop/dcw/params/[id]/read.post.ts +22 -17
  278. package/server/api/workshop/dcw/recipes/[id]/versions.get.ts +20 -14
  279. package/server/api/workshop/dcw/recipes/[id].delete.ts +33 -25
  280. package/server/api/workshop/dcw/recipes/index.get.ts +17 -12
  281. package/server/api/workshop/dcw/runs/[id]/close.post.ts +21 -15
  282. package/server/api/workshop/dcw/test-driver.post.ts +21 -16
  283. package/server/api/workshop/ws/hub.ts +2 -1
  284. package/server/plugins/01-instance-guard.ts +82 -0
  285. package/server/plugins/daq.ts +40 -8
  286. package/server/plugins/workshop.ts +12 -0
  287. package/server/services/workshop/agents/adapters/line-spawn.ts +24 -1
  288. package/server/services/workshop/agents/agent-dto.ts +54 -0
  289. package/server/services/workshop/agents/harness-spawn-policy.ts +114 -0
  290. package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +22 -0
  291. package/server/services/workshop/agents/host-tool-bridge/index.ts +1 -1
  292. package/server/services/workshop/agents/host-tool-bridge/per-agent.ts +17 -3
  293. package/server/services/workshop/agents/host-tool-bridge/tools/tasks.ts +1 -1
  294. package/server/services/workshop/agents/host-tool-bridge/tools/team-delegation.ts +5 -1
  295. package/server/services/workshop/agents/industrial/dcw-tools.ts +6 -2
  296. package/server/services/workshop/agents/industrial/ops-tools.ts +54 -12
  297. package/server/services/workshop/agents/industrial/recipe-gate.ts +68 -15
  298. package/server/services/workshop/agents/industrial/tool-verify-legacy-specs.ts +2 -2
  299. package/server/services/workshop/agents/industrial/tool-verify.ts +31 -2
  300. package/server/services/workshop/agents/node-bindings.repo.ts +4 -3
  301. package/server/services/workshop/agents/node-delegation.ts +49 -4
  302. package/server/services/workshop/agents/tool-approvals.ts +23 -0
  303. package/server/services/workshop/agents/tool-reference-spec.ts +3 -0
  304. package/server/services/workshop/daq/bus/mqtt.adapter.ts +12 -0
  305. package/server/services/workshop/daq/daq-controller/crud.ts +5 -3
  306. package/server/services/workshop/daq/daq-controller/ingest.ts +23 -0
  307. package/server/services/workshop/daq/daq-controller/push.ts +24 -3
  308. package/server/services/workshop/daq/daq-controller/runtime-control.ts +6 -0
  309. package/server/services/workshop/daq/daq-controller/sweep-alarms.ts +3 -1
  310. package/server/services/workshop/daq/daq-controller/tsdb-twin.ts +21 -1
  311. package/server/services/workshop/daq/daq-node.repo.ts +10 -7
  312. package/server/services/workshop/daq/daq-node.ts +2 -0
  313. package/server/services/workshop/daq/daq-runtime.ts +10 -2
  314. package/server/services/workshop/daq/drivers/modbus-tcp.ts +8 -5
  315. package/server/services/workshop/daq/drivers/registry.ts +5 -4
  316. package/server/services/workshop/daq/infra.ts +13 -0
  317. package/server/services/workshop/daq/ingest-policy.ts +24 -1
  318. package/server/services/workshop/daq/storage/timescale.adapter.ts +42 -3
  319. package/server/services/workshop/db/database/migrations.ts +83 -68
  320. package/server/services/workshop/dcw/dcw-controller/crud.ts +27 -2
  321. package/server/services/workshop/dcw/dcw-controller/lines.ts +14 -3
  322. package/server/services/workshop/dcw/dcw-controller/recipes.ts +63 -5
  323. package/server/services/workshop/dcw/dcw-recipe.repo.ts +10 -1
  324. package/server/services/workshop/dcw/dcw-runtime.ts +37 -14
  325. package/server/services/workshop/dcw/drivers/shared.ts +62 -6
  326. package/server/services/workshop/dcw/recipe-op-anchor.ts +28 -0
  327. package/server/services/workshop/dcw/recipe-rollback-manager/rollback.ts +204 -190
  328. package/server/services/workshop/dcw/recipe-rollback-manager/sweep.ts +97 -77
  329. package/server/services/workshop/line-scope.ts +80 -0
  330. package/server/services/workshop/optimization/dispatch.service.ts +18 -2
  331. package/server/services/workshop/permissions.ts +2 -0
  332. package/server/services/workshop/runtime/agent-runtime/message.ts +17 -0
  333. package/server/services/workshop/runtime/agent-runtime/state.ts +9 -3
  334. package/server/services/workshop/runtime/agent-runtime/types.ts +2 -1
  335. package/server/services/workshop/runtime/channel-runtime.ts +3 -1
  336. package/server/services/workshop/runtime/mailbox.ts +6 -3
  337. package/server/services/workshop/runtime/manager/a2a.ts +4 -2
  338. package/server/services/workshop/runtime/manager/admin-channel.ts +1 -1
  339. package/server/services/workshop/runtime/manager/chat.ts +3 -1
  340. package/server/services/workshop/runtime/manager/host-tools.ts +1 -1
  341. package/server/services/workshop/runtime/manager/runtime-wiring.ts +31 -19
  342. package/server/services/workshop/runtime/manager/state.ts +43 -1
  343. package/server/services/workshop/runtime/permission-scope.ts +21 -0
  344. package/server/services/workshop/runtime/scheduler-loop/tick.ts +16 -4
  345. package/server/services/workshop/scene-events.ts +19 -0
  346. package/shared/daq-protocol.ts +24 -5
  347. package/shared/dcw-protocol/catalog.ts +4 -4
  348. package/.output/public/_nuxt/CCI-fwcS2.js +0 -1
  349. package/.output/public/_nuxt/builds/meta/5cd11284-05bf-4fcd-9a69-56a01c9f56dd.json +0 -1
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r,tt as i}from"./C6lssmvl.js";import{n as a}from"./D1MkndMZ.js";import{a as o,n as s,t as c}from"./CCI-fwcS2.js";import{t as l}from"./gUYi1hLJ2.js";import{t as u}from"./R1g64DNi2.js";import{r as d}from"./Du9v6qGB2.js";var f=e({useDaqControllerForm:()=>h,useDaqDriverCatalog:()=>m,useDaqFilters:()=>p});function p(){let e=c(),n=l(),s=u(),{t:f}=a(),p=t({lineId:``,deviceId:``,template:``,driver:``,lineRun:``,state:``,time:``,search:``}),m=r(()=>!!(p.lineId||p.deviceId||p.template||p.driver||p.lineRun||p.state||p.time||p.search.trim()));function h(){p.lineId=``,p.deviceId=``,p.template=``,p.driver=``,p.lineRun=``,p.state=``,p.time=``,p.search=``}let g=r(()=>{let t=new Map;for(let n of e.nodes)t.set(n.templateRef,(t.get(n.templateRef)??0)+1);return[...t.entries()].map(([e,t])=>({ref:e,count:t,label:k(e)}))}),_=r(()=>{let t=new Map;for(let n of e.nodes)t.set(n.driver,(t.get(n.driver)??0)+1);return[...t.entries()].map(([t,n])=>({kind:t,count:n,label:e.meta.drivers.find(e=>e.kind===t)?.label??t}))});function v(e){if(!e.lastAt)return`never`;let t=Date.now()-Date.parse(e.lastAt);return t<=3e5?`live`:t<=36e5?`hour`:t<=864e5?`day`:`old`}function y(e){return!p.time||v(e)===p.time}function b(e){let t=p.search.trim().toLowerCase();return!t||e.name.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)}function x(t){if(!t.lastAt)return!0;let n=t.intervalMs??e.controller.defaultIntervalMs;return Date.now()-Date.parse(t.lastAt)>Math.max(n*4,12e3)}function S(t){return t.enabled?t.lineId?n.lineStateOf(t.lineId).active?!e.controller.running||x(t)?`offline`:t.state:`idle`:`unassigned`:`disabled`}function C(e){if(!p.lineRun)return!0;let t=!!e.lineId&&n.lineStateOf(e.lineId).active;return p.lineRun===`on`?t:!t}let w=new Map;i(()=>s.twins,e=>{for(let t of e)w.set(t.id,t.name)},{immediate:!0,deep:!0});let T=r(()=>{let t=new Map;for(let n of e.nodes)for(let e of n.deviceIds??(n.deviceBindingId?[n.deviceBindingId]:[]))t.set(e,(t.get(e)??0)+1);return s.twins.filter(e=>t.has(e.id)).map(e=>({id:e.id,name:w.get(e.id)??e.name,count:t.get(e.id)}))}),E=r(()=>e.nodes.filter(e=>{if(p.lineId&&(p.lineId===`none`?e.lineId:(e.lineId??``)!==p.lineId))return!1;let t=e.deviceIds??(e.deviceBindingId?[e.deviceBindingId]:[]);return!(p.deviceId&&(p.deviceId===`none`?t.length>0:!t.includes(p.deviceId))||p.template&&e.templateRef!==p.template||p.driver&&e.driver!==p.driver||!C(e)||p.state&&S(e)!==p.state||!y(e)||!b(e))})),D=r(()=>n.lines.find(e=>e.id===p.lineId)??null),O=r(()=>D.value?n.lineStateOf(D.value.id):null);function k(t){let n=e.templates.find(e=>e.key===o(t));return n?`${d(f,n)} · ${n.ch}`:t||`-`}return{filters:p,hasFilters:m,clearFilters:h,templateOptions:g,driverOptions:_,boundDevices:T,filteredNodes:E,filteredLine:D,filteredLineState:O,timeBucketOf:v,rowStateOf:S,lineRunMatch:C,staleOf:x,daqTemplateRefCh:k}}function m(){let e=c();return{driverCatalog:r(()=>e.meta.drivers.length?e.meta.drivers:s.map(e=>({...e}))),driverReady:t=>e.meta.drivers.find(e=>e.kind===t)?.status!==`planned`&&e.meta.driverAvailable?.[t]!==!1}}function h(){let e=c(),t=n(!1);async function r(){t.value=!0;try{await e.reconnectInfra()}catch{}finally{t.value=!1}}return{reconnecting:t,doReconnect:r}}export{f as i,m as n,p as r,h as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r,tt as i}from"./C6lssmvl.js";import{n as a}from"./D1MkndMZ.js";import{a as o,n as s,t as c}from"./CTGJHZ8X2.js";import{t as l}from"./DxDqd6T42.js";import{t as u}from"./R1g64DNi2.js";import{r as d}from"./Du9v6qGB2.js";var f=e({useDaqControllerForm:()=>h,useDaqDriverCatalog:()=>m,useDaqFilters:()=>p});function p(){let e=c(),n=l(),s=u(),{t:f}=a(),p=t({lineId:``,deviceId:``,template:``,driver:``,lineRun:``,state:``,time:``,search:``}),m=r(()=>!!(p.lineId||p.deviceId||p.template||p.driver||p.lineRun||p.state||p.time||p.search.trim()));function h(){p.lineId=``,p.deviceId=``,p.template=``,p.driver=``,p.lineRun=``,p.state=``,p.time=``,p.search=``}let g=r(()=>{let t=new Map;for(let n of e.nodes)t.set(n.templateRef,(t.get(n.templateRef)??0)+1);return[...t.entries()].map(([e,t])=>({ref:e,count:t,label:k(e)}))}),_=r(()=>{let t=new Map;for(let n of e.nodes)t.set(n.driver,(t.get(n.driver)??0)+1);return[...t.entries()].map(([t,n])=>({kind:t,count:n,label:e.meta.drivers.find(e=>e.kind===t)?.label??t}))});function v(e){if(!e.lastAt)return`never`;let t=Date.now()-Date.parse(e.lastAt);return t<=3e5?`live`:t<=36e5?`hour`:t<=864e5?`day`:`old`}function y(e){return!p.time||v(e)===p.time}function b(e){let t=p.search.trim().toLowerCase();return!t||e.name.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)}function x(t){if(!t.lastAt)return!0;let n=t.intervalMs??e.controller.defaultIntervalMs;return Date.now()-Date.parse(t.lastAt)>Math.max(n*4,12e3)}function S(t){return t.enabled?t.lineId?n.lineStateOf(t.lineId).active?!e.controller.running||x(t)?`offline`:t.state:`idle`:`unassigned`:`disabled`}function C(e){if(!p.lineRun)return!0;let t=!!e.lineId&&n.lineStateOf(e.lineId).active;return p.lineRun===`on`?t:!t}let w=new Map;i(()=>s.twins,e=>{for(let t of e)w.set(t.id,t.name)},{immediate:!0,deep:!0});let T=r(()=>{let t=new Map;for(let n of e.nodes)for(let e of n.deviceIds??(n.deviceBindingId?[n.deviceBindingId]:[]))t.set(e,(t.get(e)??0)+1);return s.twins.filter(e=>t.has(e.id)).map(e=>({id:e.id,name:w.get(e.id)??e.name,count:t.get(e.id)}))}),E=r(()=>e.nodes.filter(e=>{if(p.lineId&&(p.lineId===`none`?e.lineId:(e.lineId??``)!==p.lineId))return!1;let t=e.deviceIds??(e.deviceBindingId?[e.deviceBindingId]:[]);return!(p.deviceId&&(p.deviceId===`none`?t.length>0:!t.includes(p.deviceId))||p.template&&e.templateRef!==p.template||p.driver&&e.driver!==p.driver||!C(e)||p.state&&S(e)!==p.state||!y(e)||!b(e))})),D=r(()=>n.lines.find(e=>e.id===p.lineId)??null),O=r(()=>D.value?n.lineStateOf(D.value.id):null);function k(t){let n=e.templates.find(e=>e.key===o(t));return n?`${d(f,n)} · ${n.ch}`:t||`-`}return{filters:p,hasFilters:m,clearFilters:h,templateOptions:g,driverOptions:_,boundDevices:T,filteredNodes:E,filteredLine:D,filteredLineState:O,timeBucketOf:v,rowStateOf:S,lineRunMatch:C,staleOf:x,daqTemplateRefCh:k}}function m(){let e=c();return{driverCatalog:r(()=>e.meta.drivers.length?e.meta.drivers:s.map(e=>({...e}))),driverReady:t=>e.meta.drivers.find(e=>e.kind===t)?.status!==`planned`&&e.meta.driverAvailable?.[t]!==!1}}function h(){let e=c(),t=n(!1);async function r(){t.value=!0;try{await e.reconnectInfra()}catch{}finally{t.value=!1}}return{reconnecting:t,doReconnect:r}}export{f as i,m as n,p as r,h as t};
@@ -1 +1 @@
1
- import{N as e,mt as t,v as n}from"./CavpkQb0.js";import{P as r,R as i,S as a,V as o,d as s,f as c,h as l,p as u,tt as d,y as f}from"./C6lssmvl.js";import{d as p}from"./CDYLasP8.js";import{t as m}from"./BoyuIoSm.js";import{t as h}from"./Cv-Mv7_h2.js";import{t as g}from"./BDNMzG2s.js";import{a as _,t as v}from"./DoL9u6wu.js";import{t as y}from"./NfvZ5Lzv.js";import{t as b}from"./CNs_Ozdc.js";import{t as x}from"./CY_7u1ST2.js";var S={class:`town-page`},C={key:0,"data-hud":`town-empty`,class:`pane-empty`},w={class:`pe-title`},T={class:`pe-sub`},E={key:2,"data-hud":`town-loading`,class:`pane-loading`},D=g(a({__name:`town`,setup(a){b({layout:`town`,title:`Digital Twin`});let g=h(),D=_(),O=y(),{subscribe:k,unsubscribe:A}=v(),j=m(`token`),M=n(!1);d(()=>g.isLoggedIn,async e=>{if(!e){M.value=!1;return}if(await g.refresh(),g.isLoggedIn)try{await O.load(),M.value=!0}catch{}},{immediate:!0}),i(()=>{!g.isLoggedIn&&!j.value&&p(`/workshop`)}),d(j,e=>{!e&&!g.isLoggedIn&&p(`/workshop`)});let N=s(()=>{let e=[];for(let t of O.workspaces)for(let n of t.channelIds??[])e.includes(n)||e.push(n);return e});d(()=>N.value.join(`,`),()=>{for(let e of N.value)k(e)},{immediate:!0}),r(()=>{for(let e of N.value)A(e)});let P=s(()=>{let e=N.value[0];if(e&&D.channels[e])return e;for(let e of O.workspaces)for(let t of e.channelIds??[])if(D.channels[t])return t;return N.value[0]??void 0}),F=s(()=>N.value.length>0);return(n,r)=>{let i=x;return o(),l(`div`,S,[e(M)&&!e(F)?(o(),l(`div`,C,[r[0]||=c(`span`,{class:`pe-icon i-tabler-map-2`},null,-1),c(`div`,w,t(n.$t(`town.k1wm8wtr001`)),1),c(`div`,T,[f(t(n.$t(`town.k47e4s002`))+` `,1),c(`b`,null,`Agent `+t(n.$t(`town.k3n4mae005`)),1),f(` `+t(n.$t(`town.k17rerba003`)),1)])])):e(P)?(o(),u(i,{key:1,"channel-id":e(P),"all-channels":!0},null,8,[`channel-id`])):(o(),l(`div`,E,t(n.$t(`town.k1uc5mup004`)),1))])}}}),[[`__scopeId`,`data-v-83876687`]]);export{D as default};
1
+ import{N as e,mt as t,v as n}from"./CavpkQb0.js";import{P as r,R as i,S as a,V as o,d as s,f as c,h as l,p as u,tt as d,y as f}from"./C6lssmvl.js";import{d as p}from"./CDYLasP8.js";import{t as m}from"./BoyuIoSm.js";import{t as h}from"./Cv-Mv7_h2.js";import{t as g}from"./BDNMzG2s.js";import{a as _,t as v}from"./DoL9u6wu.js";import{t as y}from"./NfvZ5Lzv.js";import{t as b}from"./CNs_Ozdc.js";import{t as x}from"./BI9jj13f2.js";var S={class:`town-page`},C={key:0,"data-hud":`town-empty`,class:`pane-empty`},w={class:`pe-title`},T={class:`pe-sub`},E={key:2,"data-hud":`town-loading`,class:`pane-loading`},D=g(a({__name:`town`,setup(a){b({layout:`town`,title:`Digital Twin`});let g=h(),D=_(),O=y(),{subscribe:k,unsubscribe:A}=v(),j=m(`token`),M=n(!1);d(()=>g.isLoggedIn,async e=>{if(!e){M.value=!1;return}if(await g.refresh(),g.isLoggedIn)try{await O.load(),M.value=!0}catch{}},{immediate:!0}),i(()=>{!g.isLoggedIn&&!j.value&&p(`/workshop`)}),d(j,e=>{!e&&!g.isLoggedIn&&p(`/workshop`)});let N=s(()=>{let e=[];for(let t of O.workspaces)for(let n of t.channelIds??[])e.includes(n)||e.push(n);return e});d(()=>N.value.join(`,`),()=>{for(let e of N.value)k(e)},{immediate:!0}),r(()=>{for(let e of N.value)A(e)});let P=s(()=>{let e=N.value[0];if(e&&D.channels[e])return e;for(let e of O.workspaces)for(let t of e.channelIds??[])if(D.channels[t])return t;return N.value[0]??void 0}),F=s(()=>N.value.length>0);return(n,r)=>{let i=x;return o(),l(`div`,S,[e(M)&&!e(F)?(o(),l(`div`,C,[r[0]||=c(`span`,{class:`pe-icon i-tabler-map-2`},null,-1),c(`div`,w,t(n.$t(`town.k1wm8wtr001`)),1),c(`div`,T,[f(t(n.$t(`town.k47e4s002`))+` `,1),c(`b`,null,`Agent `+t(n.$t(`town.k3n4mae005`)),1),f(` `+t(n.$t(`town.k17rerba003`)),1)])])):e(P)?(o(),u(i,{key:1,"channel-id":e(P),"all-channels":!0},null,8,[`channel-id`])):(o(),l(`div`,E,t(n.$t(`town.k1uc5mup004`)),1))])}}}),[[`__scopeId`,`data-v-83876687`]]);export{D as default};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r,tt as i}from"./C6lssmvl.js";import{t as a}from"./R5Pz7BqB.js";import{n as o,t as s}from"./CCI-fwcS2.js";var c=e({useDaqDetailParams:()=>l});function l(e,c){let l=s(),u=t({enabled:!0,driver:`mock`,lineId:``,followGlobal:!0,intervalMs:5e3,calKind:`none`,calScale:1,calOffset:0,publishFollow:!0,publishEveryFrame:!1,publishMs:1e3,unit:``,decimals:1,min:0,max:100,warnLow:null,warnHigh:null});i(c,e=>{e&&(u.enabled=e.enabled,u.lineId=e.lineId??``,u.driver=e.driver,u.followGlobal=e.intervalMs==null,u.intervalMs=e.intervalMs??l.controller.defaultIntervalMs,u.publishFollow=e.publishIntervalMs==null,u.publishEveryFrame=e.publishIntervalMs===0,u.publishMs=e.publishIntervalMs==null?l.controller.defaultPublishIntervalMs:e.publishIntervalMs,u.unit=e.unit,u.decimals=e.decimals,u.min=e.min,u.max=e.max,u.warnLow=e.warnLow,u.warnHigh=e.warnHigh)},{immediate:!0});let d=r(()=>l.meta.drivers.length?l.meta.drivers:o.map(e=>({...e}))),f=n({}),p=r(()=>d.value.find(e=>e.kind===u.driver)?.configFields??[]);i(c,e=>{e&&(f.value={...e.driverConfig})},{immediate:!0}),i(()=>u.driver,()=>{if(p.value.length&&Object.keys(f.value).length===0){let e={};for(let t of p.value)t.default!==void 0&&(e[t.key]=t.default);f.value=e}},{immediate:!0});let m=n(!1),h=n(null);async function g(){m.value=!0,h.value=null;try{await l.patchNode(e.value,{driver:u.driver,driverConfig:{...f.value}}),h.value=await l.testNode(e.value)}catch(e){h.value={ok:!1,message:a(e)}}finally{m.value=!1}}let _=n(!1);async function v(){let e=c.value;if(!(!e||_.value)){_.value=!0;try{await l.patchNode(e.id,{enabled:u.enabled,driver:u.driver,lineId:u.lineId,driverConfig:{...f.value},intervalMs:u.followGlobal?null:Math.max(1e3,Math.min(6e4,Math.round(u.intervalMs))),publishIntervalMs:u.publishFollow?null:u.publishEveryFrame?0:Math.max(0,Math.min(6e4,Math.round(u.publishMs))),unit:u.unit,decimals:Math.max(0,Math.min(6,Math.round(u.decimals))),min:u.min,max:u.max,warnLow:u.warnLow,warnHigh:u.warnHigh})}finally{_.value=!1}}}return{form:u,driverCatalog:d,driverCfg:f,driverFields:p,testing:m,testResult:h,saving:_,doTest:g,saveParams:v}}export{c as n,l as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r,tt as i}from"./C6lssmvl.js";import{t as a}from"./R5Pz7BqB.js";import{n as o,t as s}from"./CTGJHZ8X2.js";var c=e({useDaqDetailParams:()=>l});function l(e,c){let l=s(),u=t({enabled:!0,driver:`mock`,lineId:``,followGlobal:!0,intervalMs:5e3,calKind:`none`,calScale:1,calOffset:0,publishFollow:!0,publishEveryFrame:!1,publishMs:1e3,unit:``,decimals:1,min:0,max:100,warnLow:null,warnHigh:null});i(c,e=>{e&&(u.enabled=e.enabled,u.lineId=e.lineId??``,u.driver=e.driver,u.followGlobal=e.intervalMs==null,u.intervalMs=e.intervalMs??l.controller.defaultIntervalMs,u.publishFollow=e.publishIntervalMs==null,u.publishEveryFrame=e.publishIntervalMs===0,u.publishMs=e.publishIntervalMs==null?l.controller.defaultPublishIntervalMs:e.publishIntervalMs,u.unit=e.unit,u.decimals=e.decimals,u.min=e.min,u.max=e.max,u.warnLow=e.warnLow,u.warnHigh=e.warnHigh)},{immediate:!0});let d=r(()=>l.meta.drivers.length?l.meta.drivers:o.map(e=>({...e}))),f=n({}),p=r(()=>d.value.find(e=>e.kind===u.driver)?.configFields??[]);i(c,e=>{e&&(f.value={...e.driverConfig})},{immediate:!0}),i(()=>u.driver,()=>{if(p.value.length&&Object.keys(f.value).length===0){let e={};for(let t of p.value)t.default!==void 0&&(e[t.key]=t.default);f.value=e}},{immediate:!0});let m=n(!1),h=n(null);async function g(){m.value=!0,h.value=null;try{await l.patchNode(e.value,{driver:u.driver,driverConfig:{...f.value}}),h.value=await l.testNode(e.value)}catch(e){h.value={ok:!1,message:a(e)}}finally{m.value=!1}}let _=n(!1);async function v(){let e=c.value;if(!(!e||_.value)){_.value=!0;try{await l.patchNode(e.id,{enabled:u.enabled,driver:u.driver,lineId:u.lineId,driverConfig:{...f.value},intervalMs:u.followGlobal?null:Math.max(1e3,Math.min(6e4,Math.round(u.intervalMs))),publishIntervalMs:u.publishFollow?null:u.publishEveryFrame?0:Math.max(0,Math.min(6e4,Math.round(u.publishMs))),unit:u.unit,decimals:Math.max(0,Math.min(6,Math.round(u.decimals))),min:u.min,max:u.max,warnLow:u.warnLow,warnHigh:u.warnHigh})}finally{_.value=!1}}}return{form:u,driverCatalog:d,driverCfg:f,driverFields:p,testing:m,testResult:h,saving:_,doTest:g,saveParams:v}}export{c as n,l as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{t as r}from"./R5Pz7BqB.js";import{t as i}from"./gUYi1hLJ2.js";var a=e({useDcwQuickActions:()=>o});function o(e){let a=i(),o=n(``),s=n(``),c=t({});async function l(t){o.value=t.line.id,s.value=``;try{let n=c[t.line.id]??``;if(!n)throw Error(e(`dcw.k188cswn039`));await a.startLine(t.line.id,n)}catch(e){s.value=r(e)}finally{o.value=``}}async function u(e){o.value=e.line.id,s.value=``;try{await a.stopLine(e.line.id)}catch(e){s.value=r(e)}finally{o.value=``}}return{quickBusy:o,quickErr:s,quickPick:c,quickStart:l,quickStop:u}}export{a as n,o as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{t as r}from"./R5Pz7BqB.js";import{t as i}from"./DxDqd6T42.js";var a=e({useDcwQuickActions:()=>o});function o(e){let a=i(),o=n(``),s=n(``),c=t({});async function l(t){o.value=t.line.id,s.value=``;try{let n=c[t.line.id]??``;if(!n)throw Error(e(`dcw.k188cswn039`));await a.startLine(t.line.id,n)}catch(e){s.value=r(e)}finally{o.value=``}}async function u(e){o.value=e.line.id,s.value=``;try{await a.stopLine(e.line.id)}catch(e){s.value=r(e)}finally{o.value=``}}return{quickBusy:o,quickErr:s,quickPick:c,quickStart:l,quickStop:u}}export{a as n,o as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{t as n}from"./gUYi1hLJ2.js";var r=e({useDcwLedger:()=>i});function i(){let e=n(),r=t(``),i=t(null),a=t(!1);async function o(){if(r.value){a.value=!0;try{i.value=await e.fetchLedger(r.value)}finally{a.value=!1}}}async function s(){r.value&&(await e.rollbackNode(r.value),await o())}return{ledgerNodeId:r,ledger:i,ledgerLoading:a,loadLedger:o,rollbackLedgerNode:s}}export{r as n,i as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{t as n}from"./DxDqd6T42.js";var r=e({useDcwLedger:()=>i});function i(){let e=n(),r=t(``),i=t(null),a=t(!1);async function o(){if(r.value){a.value=!0;try{i.value=await e.fetchLedger(r.value)}finally{a.value=!1}}}async function s(){r.value&&(await e.rollbackNode(r.value),await o())}return{ledgerNodeId:r,ledger:i,ledgerLoading:a,loadLedger:o,rollbackLedgerNode:s}}export{r as n,i as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./C6lssmvl.js";import{t as r}from"./gUYi1hLJ2.js";var i=e({useDaqOptimizations:()=>a});function a(){let e=r(),i=t(!1),a=t(!1),o=t(``),s=t(``),c=t({}),l=t(``),u=n(()=>e.recipes.filter(e=>!o.value||e.lineId===o.value));function d(e){return{open:`daq.k1optst001`,judged:`daq.k1optst008`,"judged-keep":`daq.k1optst002`,"rolled-back":`daq.k1optst003`,superseded:`daq.k1optst004`,"superseded-manual":`daq.k1optst005`,"closed-line-stop":`daq.k1optst006`,failed:`daq.k1optst007`}[e]??`daq.k1optst001`}async function f(){i.value=!i.value,i.value&&(a.value=!0,await p())}async function p(){await e.loadOptimizations({lineId:o.value||void 0,recipeId:s.value||void 0})}function m(){s.value&&!u.value.some(e=>e.id===s.value)&&(s.value=``),p()}async function h(t){l.value=t;try{let n=await e.optimizationSeries(t);c.value={...c.value,[t]:n}}finally{l.value=``}}function g(e,t=240,n=36){let r=e.map(e=>e.value??e.avg??0).filter(Number.isFinite);if(r.length<2)return``;let i=Math.min(...r),a=Math.max(...r)-i||1;return r.map((e,o)=>`${o/(r.length-1)*t},${n-(e-i)/a*n}`).join(` `)}async function _(t){await e.rollbackOptimization(t),await p()}function v(e){return e==null?`--`:String(Number(e.toFixed(2)))}return{optOpen:i,optMounted:a,optFilterLine:o,optFilterRecipe:s,optSeriesOf:c,optSeriesLoading:l,optRecipeOptions:u,optStatusKey:d,toggleOptPanel:f,filterOpts:p,onOptLineChange:m,showOptSeries:h,seriesPath:g,rollbackRecord:_,fmtPoint:v}}export{i as n,a as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./C6lssmvl.js";import{t as r}from"./DxDqd6T42.js";var i=e({useDaqOptimizations:()=>a});function a(){let e=r(),i=t(!1),a=t(!1),o=t(``),s=t(``),c=t({}),l=t(``),u=n(()=>e.recipes.filter(e=>!o.value||e.lineId===o.value));function d(e){return{open:`daq.k1optst001`,judged:`daq.k1optst008`,"judged-keep":`daq.k1optst002`,"rolled-back":`daq.k1optst003`,superseded:`daq.k1optst004`,"superseded-manual":`daq.k1optst005`,"closed-line-stop":`daq.k1optst006`,failed:`daq.k1optst007`}[e]??`daq.k1optst001`}async function f(){i.value=!i.value,i.value&&(a.value=!0,await p())}async function p(){await e.loadOptimizations({lineId:o.value||void 0,recipeId:s.value||void 0})}function m(){s.value&&!u.value.some(e=>e.id===s.value)&&(s.value=``),p()}async function h(t){l.value=t;try{let n=await e.optimizationSeries(t);c.value={...c.value,[t]:n}}finally{l.value=``}}function g(e,t=240,n=36){let r=e.map(e=>e.value??e.avg??0).filter(Number.isFinite);if(r.length<2)return``;let i=Math.min(...r),a=Math.max(...r)-i||1;return r.map((e,o)=>`${o/(r.length-1)*t},${n-(e-i)/a*n}`).join(` `)}async function _(t){await e.rollbackOptimization(t),await p()}function v(e){return e==null?`--`:String(Number(e.toFixed(2)))}return{optOpen:i,optMounted:a,optFilterLine:o,optFilterRecipe:s,optSeriesOf:c,optSeriesLoading:l,optRecipeOptions:u,optStatusKey:d,toggleOptPanel:f,filterOpts:p,onOptLineChange:m,showOptSeries:h,seriesPath:g,rollbackRecord:_,fmtPoint:v}}export{i as n,a as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r}from"./C6lssmvl.js";import{t as i}from"./R5Pz7BqB.js";import{t as a}from"./gUYi1hLJ2.js";var o=e({useDcwProducts:()=>s});function s(e,o){let s=a(),{lineId:c,lineRecipesAll:l}=e,{lineProductId:u}=o,d=n(!1),f=n(!1),p=n(``),m=t({name:``,description:``}),h=n(``);async function g(){f.value=!0,p.value=``;try{let e=await s.createProduct({name:m.name.trim(),description:m.description.trim(),lineId:c.value});u.value=e.id,h.value=e.id,d.value=!1,m.name=``,m.description=``}catch(e){p.value=i(e)}finally{f.value=!1}}return{productOpen:d,productSaving:f,productError:p,productForm:m,filterProductId:h,visibleRecipes:r(()=>h.value?l.value.filter(e=>e.productId===h.value):l.value),doCreateProduct:g}}export{o as n,s as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r}from"./C6lssmvl.js";import{t as i}from"./R5Pz7BqB.js";import{t as a}from"./DxDqd6T42.js";var o=e({useDcwProducts:()=>s});function s(e,o){let s=a(),{lineId:c,lineRecipesAll:l}=e,{lineProductId:u}=o,d=n(!1),f=n(!1),p=n(``),m=t({name:``,description:``}),h=n(``);async function g(){f.value=!0,p.value=``;try{let e=await s.createProduct({name:m.name.trim(),description:m.description.trim(),lineId:c.value});u.value=e.id,h.value=e.id,d.value=!1,m.name=``,m.description=``}catch(e){p.value=i(e)}finally{f.value=!1}}return{productOpen:d,productSaving:f,productError:p,productForm:m,filterProductId:h,visibleRecipes:r(()=>h.value?l.value.filter(e=>e.productId===h.value):l.value),doCreateProduct:g}}export{o as n,s as t};
@@ -0,0 +1 @@
1
+ import{g as e}from"./CavpkQb0.js";import{t}from"./36oeS8_R.js";import{t as n}from"./R5Pz7BqB.js";import{n as r}from"./B6C4WofF.js";var i=[`thermo`,`pressure`,`tension`,`encoder`,`camera`,`gateway`],a=[{key:`temp-tc`,name:`温度传感器`,code:`TEMP · TC`,ch:`熔体/箱体温度`,unit:`℃`,base:168,amp:3.2,min:150,max:185,decimals:1,icon:`thermo`,telemetryKey:`temperature`,semantics:`熔体/箱体温度:热工艺核心被控量,热惯性大(变化平缓)。判读:与设定值偏差 ±2℃ 内为稳态;持续单边漂移 = 加热/散热失衡;骤升骤降多为扰动或传感器异常。`},{key:`pressure-tx`,name:`压力变送器`,code:`PRESSURE · TX`,ch:`熔体压力`,unit:`MPa`,base:.82,amp:.05,min:.6,max:1.2,decimals:2,icon:`pressure`,telemetryKey:`pressure`,semantics:`熔体压力:挤出负荷的「血压计」。判读:与温度负相关(温度升→熔体黏度降→压力降);压力突升常见于滤网堵塞或出料受阻。`},{key:`tension-cell`,name:`张力传感器`,code:`TENSION · CELL`,ch:`膜张力`,unit:`kN`,base:21.4,amp:.9,min:18,max:26,decimals:1,icon:`tension`,semantics:`膜张力:成膜质量直接指标。判读:张力波动与速度/温度设定强耦合,评估张力前先确认速度稳定。`},{key:`line-encoder`,name:`速度编码器`,code:`LINE · ENCODER`,ch:`产线速度`,unit:`m/min`,base:318,amp:7,min:280,max:360,decimals:0,icon:`encoder`,semantics:`产线速度:产能直接观测量。判读:实际速度对设定值的跟随滞后反映传动惯量;速度波动会传导至张力与厚度。`},{key:`vision-cam`,name:`视觉检测相机`,code:`VISION · CAM`,ch:`表面缺陷率`,unit:`‰`,base:.42,amp:.09,min:.1,max:.9,decimals:2,icon:`camera`,semantics:`工业相机表检帧:图像暗斑/异物/边缘缺损对应表面缺陷;判读结合检测算法伴随字段(缺陷数/位置);误报常源于光照抖动与反光,连续多帧同位置暗斑才可判真缺陷。`},{key:`power-meter`,name:`电参采集器`,code:`POWER · METER`,ch:`运行功率`,unit:`kW`,base:45.2,amp:2.6,min:38,max:55,decimals:1,icon:`gateway`,semantics:`功率计:整机/关键设备有功功率,反映负载率与能耗;缓升=磨损或工艺漂移,突跳=启停或卡阻;与产量联用可得单位能耗,是能效优化的直接观测量。`},{key:`thickness-scan`,name:`测厚扫描仪`,code:`THK · SCAN`,ch:`厚度轮廓`,unit:`mm`,base:.52,amp:.018,min:.4,max:.65,decimals:3,icon:`tension`,signalKind:`vector`,vector:{points:64,min:.4,max:.65,axis:`模头横向位置(操作侧→传动侧)`,pointUnit:`点`,pointLabelPrefix:`模头点`,pointIndexBase:1},sink:{processors:[{name:`resample`,args:{n:64}},{name:`derive-metric`,args:{name:`avg`,op:`avg`}},{name:`derive-metric`,args:{name:`max`,op:`max`}}]},metrics:[{key:`max`,label:`最大厚度`,unit:`mm`,alarmHigh:.62},{key:`avg`,label:`平均厚度`,unit:`mm`,warnLow:.47,warnHigh:.57}],semantics:`测厚仪横向扫描轮廓:多点厚度分布。判读:平均值漂移=工艺整体偏移;单点尖峰=局部缺陷(夹杂/气泡);max 越硬限=超差,须联动分切剔除。`},{key:`ccd-image`,name:`CCD 视觉相机`,code:`CCD · IMG`,ch:`表面图像`,unit:`灰度`,base:128,amp:0,min:0,max:255,decimals:0,icon:`camera`,signalKind:`image`,sink:{processors:[{name:`thumbnail`,args:{width:256}},{name:`quality-gate`}]},metrics:[{key:`brightness`,label:`平均亮度`,unit:`gray`,alarmLow:30,alarmHigh:230}],semantics:`CCD 图像帧:像素数据入对象存储,Timescale 仅存元数据与派生指标。判读:brightness 过低=曝光不足/镜头遮挡,过高=过曝;缺陷识别算法经插件处理器扩展。`}],o=e=>e.startsWith(`daq-`)?e.slice(4):e,s=[{kind:`mock`,label:`Mock 模拟源`,status:`builtin`,configFields:[]},{kind:`modbus-tcp`,label:`Modbus TCP(PLC/网关)`,status:`real`,configFields:[{key:`host`,label:`设备地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.10`,hint:`PLC 或 Modbus 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`Modbus TCP 标准端口 502`},{key:`unitId`,label:`单元号(unitId)`,type:`number`,default:1,hint:`从站地址,常见 1`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(DC BA / 全字节反转)`},{value:`wordSwap`,label:`字交换(CD AB / 仅换字序)`}]}]},{kind:`opcua`,label:`OPC UA(PLC/MES)`,status:`real`,configFields:[{key:`endpoint`,label:`端点(endpoint)`,type:`string`,required:!0,placeholder:`opc.tcp://192.168.1.10:4840`,hint:`OPC UA 服务器地址`},{key:`nodeId`,label:`节点 ID(NodeId)`,type:`string`,required:!0,placeholder:`ns=2;s=Channel1.Device1.Tag1`,hint:`要采集的变量节点`},{key:`securityMode`,label:`安全策略`,type:`select`,default:`None`,options:[{value:`None`,label:`None(无加密,内网常用)`},{value:`Sign`,label:`Sign(签名)`},{value:`SignAndEncrypt`,label:`SignAndEncrypt(签名+加密)`}]},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`},{key:`certificateFile`,label:`客户端证书路径(可选)`,type:`string`,placeholder:`certs/client_cert.pem`,hint:`Sign/SignAndEncrypt 时的 PEM 证书;留空自动生成自签`},{key:`privateKeyFile`,label:`私钥路径(可选)`,type:`string`,placeholder:`certs/client_key.pem`,hint:`与证书配对的 PEM 私钥`}]},{kind:`modbus-rtu`,label:`Modbus RTU over TCP(串口网关)`,status:`real`,configFields:[{key:`host`,label:`网关地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.50`,hint:`串口服务器/RTU 转 TCP 网关 IP(设备本身走 RS-485)`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`网关透传端口(常见 502 / 8899 / 26)`},{key:`unitId`,label:`从站地址(unitId)`,type:`number`,default:1,hint:`RS-485 总线上的从站地址`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(DC BA / 全字节反转)`},{value:`wordSwap`,label:`字交换(CD AB / 仅换字序)`}]}]},{kind:`mqtt`,label:`MQTT(网关/边缘采集)`,status:`real`,configFields:[{key:`host`,label:`Broker 地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.20 或 mqtt.example.com`,hint:`MQTT Broker(EMQX/Mosquitto/Aliyun IoT)地址`},{key:`port`,label:`端口`,type:`number`,default:1883,hint:`MQTT TCP 标准端口 1883(TLS 8883)`},{key:`topic`,label:`主题(topic)`,type:`string`,required:!0,placeholder:`factory/line1/temp`,hint:`设备上报数值的主题;支持 +/# 通配`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.temperature`,hint:`payload 为 JSON 时按路径取数值,如 data.temp;纯数字报文留空`},{key:`pointsPath`,label:`数组路径(vector 模板)`,type:`string`,placeholder:`data.points`,hint:`数组/轮廓模板:JSON 数值数组的路径(缺省 points);1~4096 个有限数`},{key:`metricsPath`,label:`指标路径(可选)`,type:`string`,placeholder:`data.metrics`,hint:`随载荷携带的指标对象(avg/min/max...),并入帧指标`},{key:`imageFormat`,label:`图像载荷格式`,type:`select`,options:[{value:`json`,label:`JSON 内 base64`},{value:`binary`,label:`报文字节(binary)`}],default:`json`,hint:`图像模板专用:JSON 字段 base64 或 MQTT 原始字节`},{key:`imagePath`,label:`图像字段路径(image 模板)`,type:`string`,placeholder:`data.png`,hint:`base64 图像字段(缺省 png;兼容 image/base64/blob;支持 data:image/... 前缀)`},{key:`imageMime`,label:`图像 MIME(可选)`,type:`string`,default:`image/png`,hint:`缺省 image/png;JSON 内也可用 mimePath 指定字段`},{key:`mimePath`,label:`MIME 字段路径(可选)`,type:`string`,placeholder:`data.mime`,hint:`载荷内携带 MIME 的字段路径(优先于 imageMime)`},{key:`imageWidthPath`,label:`图像宽路径(可选)`,type:`string`,placeholder:`data.width`,hint:`非 PNG 且无内嵌尺寸时用;PNG 自动读 IHDR`},{key:`imageHeightPath`,label:`图像高路径(可选)`,type:`string`,placeholder:`data.height`,hint:`非 PNG 且无内嵌尺寸时用;PNG 自动读 IHDR`},{key:`width`,label:`图像宽(可选,固定值)`,type:`number`,hint:`非 PNG 二进制图像等无尺寸时显式给出;JSON 宽路径优先`},{key:`height`,label:`图像高(可选,固定值)`,type:`number`,hint:`非 PNG 二进制图像等无尺寸时显式给出;JSON 高路径优先`},{key:`decoder`,label:`自定义解码器(可选)`,type:`string`,placeholder:`my-json-sink`,hint:`插件 ctx.daq.registerDecoder 注册的名称;优先于上面声明式路径,返回 scalar/vector/image`},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`http`,label:`HTTP/REST(轮询)`,status:`real`,configFields:[{key:`url`,label:`接口地址(URL)`,type:`string`,required:!0,placeholder:`http://192.168.1.30/api/sensor`,hint:`返回数值或 JSON 的 HTTP 接口;仅 http/https,内网地址需同时开启 allowPrivateHost`},{key:`method`,label:`请求方法`,type:`select`,default:`GET`,options:[{value:`GET`,label:`GET(缺省)`},{value:`POST`,label:`POST(需 bodyTemplate)`}],hint:`部分数据源要求 POST 查询;缺省 GET 保持旧配置行为`},{key:`bodyTemplate`,label:`请求体模板(POST)`,type:`text`,placeholder:`{"query":"temperature","site":"line1"}`,hint:`静态 JSON 模板;值支持 {{SECRET:REF}} 引用凭据(不落明文);GET 忽略`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.value`,hint:`响应为 JSON 时按路径取数值,如 data.value;纯文本留空`},{key:`headersJSON`,label:`请求头(可选)`,type:`string`,placeholder:`{"X-API-Token":"{{SECRET:SENSOR_KEY}}"}`,hint:`JSON 对象形式的 HTTP 头;值支持 {{SECRET:REF}}(未解析整头省略)`},{key:`timeoutMs`,label:`超时(ms)`,type:`number`,default:5e3,hint:`单次请求超时,钳 1000–60000ms,缺省 5000`},{key:`authType`,label:`认证方式`,type:`select`,default:`none`,options:[{value:`none`,label:`无认证(缺省)`},{value:`bearer`,label:`Bearer(Authorization 头)`},{value:`header`,label:`自定义头(authHeaderName)`}],hint:`与 secretRef 配合;缺省 none 保持旧配置行为`},{key:`authHeaderName`,label:`自定义认证头名(可选)`,type:`string`,placeholder:`X-Api-Token`,hint:`authType=header 时的头名`},{key:`secretRef`,label:`凭据引用(secretRef)`,type:`string`,placeholder:`sensor-line1`,hint:`凭据引用名;token 从 env AW_SECRET_<REF大写> 或管理端运行时凭据仓读取,不落明文`},{key:`allowPrivateHost`,label:`内网地址白名单`,type:`select`,default:`false`,options:[{value:`false`,label:`拒绝(默认,SSRF 防护)`},{value:`true`,label:`允许(内网数据源显式开启)`}],hint:`内网/环回地址显式白名单开关(生产数据源通常在内网)`}]},{kind:`s7`,label:`S7(西门子 PLC)`,status:`planned`,configFields:[]}],c=60,l=30,u=(e,t)=>r({base:`/api/workshop/daq`,path:e,init:t,retries:(t?.method??`GET`).toUpperCase()===`GET`?2:0}),d=()=>{let r=e([]),i=new Map,o=e([]),d=e({running:!0,defaultIntervalMs:1e3,defaultPublishIntervalMs:0,queryDisplayIntervalMs:5e3,nodesTotal:0,nodesOnline:0}),f=e({tsdb:`…`,queue:`…`,drivers:s.map(e=>({kind:e.kind,label:e.label,status:e.status,configFields:e.configFields})),driverAvailable:{},infra:void 0,produced:0,consumed:0,dropped:0,samplesStored:0}),p=e(a.map(e=>({...e}))),m=e({});function h(){i.clear();for(let e of r)i.set(e.id,e)}function g(e){let t=r.findIndex(t=>t.id===e.id);t>=0?r[t]=Object.assign(r[t],e):(r.push({...e,hist:[]}),i.set(e.id,r[r.length-1]))}let _=[],v=null;function y(){v=null;let e=_;if(_=[],!e.length)return;let t=new Map;for(let n of e){t.set(n.nodeId,n);let e=i.get(n.nodeId);e&&(e.hist.push(n.value),e.hist.length>c&&e.hist.splice(0,e.hist.length-c))}for(let e of t.values()){let t=i.get(e.nodeId);t&&(t.value=e.value,t.state=e.state,t.lastAt=e.at)}}function b(e){_.push(e),v||=setTimeout(y,500)}function x(e){if(e.node){if(e.op===`removed`){let t=r.findIndex(t=>t.id===e.node.id);t>=0&&r.splice(t,1),i.delete(e.node.id),Reflect.deleteProperty(m,e.node.id);return}g(e.node)}}function S(e){p.splice(0,p.length,...e.map(e=>({...e})))}function C(e){if(!e.template)return;let t=p.findIndex(t=>t.key===e.template.key);if(e.op===`removed`){t>=0&&p.splice(t,1);return}t>=0?p[t]={...e.template}:p.push({...e.template})}function w(e){let t=Date.parse(e.at),n=m[e.nodeId]??(m[e.nodeId]=[]);n.some(e=>e.at===t)||(n.unshift({at:t,kind:e.kind,points:e.preview,metrics:e.metrics??{},thumbUrl:e.thumbUrl,contentUrl:e.thumbUrl?e.thumbUrl.replace(`thumb=1`,`thumb=0`):void 0}),n.length>l&&n.splice(l));let r=i.get(e.nodeId);r&&(r.value=e.metrics?.avg??r.value,e.state&&(r.state=e.state),r.lastAt=e.at)}let T=0,E=null;function D(){T++,T===1&&(E=t().subscribe(O));let e=!1;return()=>{e||(e=!0,--T===0&&(E?.(),E=null))}}function O(e){if(e.type===`daq.reading`)b(e.payload);else if(e.type===`daq.frame`)w(e.payload);else if(e.type===`daq.node.changed`)x(e.payload);else if(e.type===`daq.controller`)Object.assign(d,e.payload);else if(e.type===`daq.template.changed`)C(e.payload);else if(e.type===`daq.alarm`){let t=e.payload;o.some(e=>e.id===t.id)||o.unshift(t)}else if(e.type===`daq.alarm.changed`){let t=e.payload;if(t.ackedAt){let e=o.findIndex(e=>e.id===t.id);e>=0&&o.splice(e,1)}}}async function k(){try{let e=await u(``),t=new Map(r.map(e=>[e.id,e])),n=[];for(let r of e.nodes){let e=t.get(r.id);e?(Object.assign(e,r),n.push(e),t.delete(r.id)):n.push({...r,hist:[]})}r.splice(0,r.length,...n),h();for(let e of Object.keys(m))i.has(e)||Reflect.deleteProperty(m,e);Object.assign(d,e.controller),Object.assign(f,e.meta??{}),f.driverAvailable=e.driverAvailable??{},e.drivers?.length&&(f.drivers=e.drivers),f.infra=e.infra,e.templates?.length&&S(e.templates),q.loaded=!0,q.error=``}catch(e){q.error=n(e)}}async function A(e,t){let n=await u(``,{method:`POST`,body:JSON.stringify({templateRef:e,...t})});return g(n.node),n.node}async function j(e,t){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify(t)})}async function M(e,t,n){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify({posX:t,posZ:n})})}async function N(e){await u(`/${e}`,{method:`DELETE`});let t=r.findIndex(t=>t.id===e);t>=0&&r.splice(t,1),i.delete(e),Reflect.deleteProperty(m,e)}async function P(e,t){g((await u(`/${e}/bind`,{method:`POST`,body:JSON.stringify({deviceId:t})})).node)}async function F(e,t){g((await u(`/${e}/bindings`,{method:`PUT`,body:JSON.stringify({deviceIds:t})})).node)}async function I(e,t){return(await u(`/test-driver`,{method:`POST`,body:JSON.stringify({driver:e,driverConfig:t})})).test}async function L(e){return(await u(`/${e}/test`,{method:`POST`})).test}async function R(){try{let e=await u(`/alarms?scope=open&limit=50`);o.splice(0,o.length,...e.alarms??[])}catch{}}async function z(e){await u(`/alarms/${e}/ack`,{method:`POST`}),await R()}async function B(){let e=await u(`/infra/reconnect`,{method:`POST`});return f.infra=e.infra,await k(),e.infra}async function V(e,t,n){let r=await u(`/controller`,{method:`POST`,body:JSON.stringify({action:e,defaultIntervalMs:t,defaultPublishIntervalMs:n})});Object.assign(d,r.controller)}async function H(e,t={}){let n=new URLSearchParams;return t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.bucketMs!=null&&n.set(`bucketMs`,String(t.bucketMs)),t.limit!=null&&n.set(`limit`,String(t.limit)),(await u(`/${e}/samples?${n.toString()}`)).points??[]}async function U(e,t={}){let n=new URLSearchParams;t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.kind&&n.set(`kind`,t.kind),t.limit!=null&&n.set(`limit`,String(t.limit));let r=await u(`/${e}/frames?${n.toString()}`);return m[e]=r.frames??[],m[e]}async function W(e){let t=await u(`/templates`,{method:`POST`,body:JSON.stringify(e)});return C({op:`added`,template:t.template}),t.template}async function G(e,t){let n=await u(`/templates/${e}`,{method:`PATCH`,body:JSON.stringify(t)});return C({op:`updated`,template:n.template}),n.template}async function K(e){await u(`/templates/${e}`,{method:`DELETE`}),C({op:`removed`,template:{key:e}})}let q=e({nodes:r,controller:d,meta:f,templates:p,loaded:!1,error:``,ensureWsFeed:D,load:k,createFromTemplate:A,createTemplate:W,updateTemplate:G,removeTemplate:K,testDriver:I,testNode:L,reconnectInfra:B,patchNode:j,saveTransform:M,removeNode:N,bindNode:P,setNodeBindings:F,controllerAction:V,alarms:o,fetchAlarms:R,ackAlarm:z,nodeById:e=>i.get(e)??r.find(t=>t.id===e),samplesOf:H,fetchFrames:U,frames:m,framesOf:e=>m[e]??[],templateOf:e=>p.find(t=>t.key===e||`daq-${t.key}`===e),ofDevice:e=>e?r.filter(t=>t.deviceBindingId===e):[]});return q},f=`__daqStream`;function p(){let e=globalThis;return e[f]||(e[f]=d()),e[f]}export{o as a,i,s as n,a as r,p as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{d as t}from"./C6lssmvl.js";import{t as n}from"./gUYi1hLJ2.js";var r=e({useDcwCards:()=>i});function i(){let e=n(),r=t(()=>e.lines.map(t=>({line:t,nodes:e.nodes.filter(e=>e.lineId===t.id).length,products:e.products.filter(e=>e.lineId===t.id).length,recipes:e.recipes.filter(e=>e.lineId===t.id).length}))),i=t(()=>e.nodes.filter(e=>!e.lineId).length+e.products.filter(e=>!e.lineId).length);function a(t){return e.recipes.filter(e=>e.lineId===t)}return{cards:r,unassignedCount:i,recipesOf:a}}export{r as n,i as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{d as t}from"./C6lssmvl.js";import{t as n}from"./DxDqd6T42.js";var r=e({useDcwCards:()=>i});function i(){let e=n(),r=t(()=>e.lines.map(t=>({line:t,nodes:e.nodes.filter(e=>e.lineId===t.id).length,products:e.products.filter(e=>e.lineId===t.id).length,recipes:e.recipes.filter(e=>e.lineId===t.id).length}))),i=t(()=>e.nodes.filter(e=>!e.lineId).length+e.products.filter(e=>!e.lineId).length);function a(t){return e.recipes.filter(e=>e.lineId===t)}return{cards:r,unassignedCount:i,recipesOf:a}}export{r as n,i as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r}from"./C6lssmvl.js";import{n as i}from"./D1MkndMZ.js";import{t as a}from"./R5Pz7BqB.js";import{t as o}from"./B6C4WofF.js";import{n as s,t as c}from"./gUYi1hLJ2.js";var l=e({useDcwAddNode:()=>u});function u(e){let{t:l}=i(),u=c(),{lineId:d}=e,f=n(!1),p=n(`mock`),m=n(u.templates[0]?.key??``),h=n(`mock`),g=n(``),_=n(null),v=n(null),y=n(60),b=n(null),x=n({}),S=t({kind:`none`,scale:1,offset:0}),C=n(``),w=n(!1),T=n(null),E=n(!1),D=n(null),O=n(!1),k=n(null),A=n(!1),j=n(``),M=r(()=>u.driverCatalog.length?u.driverCatalog:s.map(e=>({...e}))),N=r(()=>M.value.find(e=>e.kind===h.value)),P=r(()=>N.value?.configFields??[]);function F(){let e={};for(let t of P.value)t.default!==void 0&&(e[t.key]=t.default);x.value=e,T.value=null,D.value=null}F();async function I(){w.value=!0,T.value=null;try{T.value=await u.testDriver(h.value,x.value)}catch(e){T.value={ok:!1,message:a(e)}}finally{w.value=!1}}async function L(){E.value=!0,D.value=null;try{let e=await u.mesTestRead({...x.value});D.value={ok:!!e.ok,eng:e.eng??null,ts:e.ts??null,latencyMs:e.latencyMs??null,message:``}}catch(e){let t=e instanceof o&&e.status===404;D.value={ok:!1,eng:null,ts:null,latencyMs:null,message:t?l(`dcwDetail.mesNotReady`):a(e)}}finally{E.value=!1}}async function R(){O.value=!0,k.value=null;try{let e=await u.mesHookTest({...x.value}),t=e.hook??null,n=t?t.ok?`${t.summary??``}${t.context?` | `+t.context:``}${(t.artifacts??[]).length>0?` | 产物 `+(t.artifacts??[]).map(e=>e.name).join(`,`):``}`:`钩子失败: ${t.error??`?`} `:`${e.message??``}`;k.value={ok:e.ok&&(!t||t.ok),format:e.format,rows:e.rows,message:e.message??``,summary:n}}catch(e){let t=e instanceof o&&e.status===404;k.value={ok:!1,format:`-`,rows:0,message:t?l(`dcwDetail.mesHookNotReady`):a(e),summary:``}}finally{O.value=!1}}async function z(){A.value=!0,j.value=``;try{for(let e of P.value)if(e.required&&(x.value[e.key]===void 0||x.value[e.key]===``))throw Error(l(`dcwDetail.k8x1un1184`,{p0:e.label}));let e=S.kind===`linear`?{kind:`linear`,scale:Number(S.scale),offset:Number(S.offset)}:void 0;await u.createFromTemplate(`dcw-${m.value}`,{name:g.value.trim()||void 0,driver:h.value,driverConfig:{...x.value},transform:e,holdIntervalMs:_.value,readIntervalMs:v.value,writeLockSeconds:y.value,...b.value==null?{}:{stepLimit:b.value},lineId:d.value,semantics:C.value.trim()||void 0}),f.value=!1,g.value=``,C.value=``}catch(e){j.value=a(e)}finally{A.value=!1}}return{addOpen:f,addScenario:p,addTemplate:m,addDriver:h,addName:g,addHold:_,addRead:v,addWriteLock:y,addStepLimit:b,addCfg:x,addTransform:S,addSemantics:C,addTesting:w,addTest:T,addMesTesting:E,addMesResult:D,addSaving:A,addError:j,driverCatalog:M,addFields:P,doTestConnection:I,doMesTestRead:L,addMesHookTesting:O,addMesHookResult:k,doMesHookTest:R,doAddNode:z}}export{l as n,u as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r}from"./C6lssmvl.js";import{n as i}from"./D1MkndMZ.js";import{t as a}from"./R5Pz7BqB.js";import{t as o}from"./B6C4WofF.js";import{n as s,t as c}from"./DxDqd6T42.js";var l=e({useDcwAddNode:()=>u});function u(e){let{t:l}=i(),u=c(),{lineId:d}=e,f=n(!1),p=n(`mock`),m=n(u.templates[0]?.key??``),h=n(`mock`),g=n(``),_=n(null),v=n(null),y=n(60),b=n(null),x=n({}),S=t({kind:`none`,scale:1,offset:0}),C=n(``),w=n(!1),T=n(null),E=n(!1),D=n(null),O=n(!1),k=n(null),A=n(!1),j=n(``),M=r(()=>u.driverCatalog.length?u.driverCatalog:s.map(e=>({...e}))),N=r(()=>M.value.find(e=>e.kind===h.value)),P=r(()=>N.value?.configFields??[]);function F(){let e={};for(let t of P.value)t.default!==void 0&&(e[t.key]=t.default);x.value=e,T.value=null,D.value=null}F();async function I(){w.value=!0,T.value=null;try{T.value=await u.testDriver(h.value,x.value)}catch(e){T.value={ok:!1,message:a(e)}}finally{w.value=!1}}async function L(){E.value=!0,D.value=null;try{let e=await u.mesTestRead({...x.value});D.value={ok:!!e.ok,eng:e.eng??null,ts:e.ts??null,latencyMs:e.latencyMs??null,message:``}}catch(e){let t=e instanceof o&&e.status===404;D.value={ok:!1,eng:null,ts:null,latencyMs:null,message:t?l(`dcwDetail.mesNotReady`):a(e)}}finally{E.value=!1}}async function R(){O.value=!0,k.value=null;try{let e=await u.mesHookTest({...x.value}),t=e.hook??null,n=t?t.ok?`${t.summary??``}${t.context?` | `+t.context:``}${(t.artifacts??[]).length>0?` | 产物 `+(t.artifacts??[]).map(e=>e.name).join(`,`):``}`:`钩子失败: ${t.error??`?`} `:`${e.message??``}`;k.value={ok:e.ok&&(!t||t.ok),format:e.format,rows:e.rows,message:e.message??``,summary:n}}catch(e){let t=e instanceof o&&e.status===404;k.value={ok:!1,format:`-`,rows:0,message:t?l(`dcwDetail.mesHookNotReady`):a(e),summary:``}}finally{O.value=!1}}async function z(){A.value=!0,j.value=``;try{for(let e of P.value)if(e.required&&(x.value[e.key]===void 0||x.value[e.key]===``))throw Error(l(`dcwDetail.k8x1un1184`,{p0:e.label}));let e=S.kind===`linear`?{kind:`linear`,scale:Number(S.scale),offset:Number(S.offset)}:void 0;await u.createFromTemplate(`dcw-${m.value}`,{name:g.value.trim()||void 0,driver:h.value,driverConfig:{...x.value},transform:e,holdIntervalMs:_.value,readIntervalMs:v.value,writeLockSeconds:y.value,...b.value==null?{}:{stepLimit:b.value},lineId:d.value,semantics:C.value.trim()||void 0}),f.value=!1,g.value=``,C.value=``}catch(e){j.value=a(e)}finally{A.value=!1}}return{addOpen:f,addScenario:p,addTemplate:m,addDriver:h,addName:g,addHold:_,addRead:v,addWriteLock:y,addStepLimit:b,addCfg:x,addTransform:S,addSemantics:C,addTesting:w,addTest:T,addMesTesting:E,addMesResult:D,addSaving:A,addError:j,driverCatalog:M,addFields:P,doTestConnection:I,doMesTestRead:L,addMesHookTesting:O,addMesHookResult:k,doMesHookTest:R,doAddNode:z}}export{l as n,u as t};
@@ -1 +1 @@
1
- import{N as e,dt as t,ft as n,g as r,mt as i,u as a,v as o}from"./CavpkQb0.js";import{$ as s,S as c,V as l,W as u,b as d,d as f,f as p,h as m,i as h,it as g,k as _,m as v,p as y,rt as b,tt as x,y as S}from"./C6lssmvl.js";import{c as C,f as w,l as T,t as E}from"./ri9UF8rk.js";import{t as D}from"./DPPC9Teq.js";import{n as O}from"./D1MkndMZ.js";import{t as k}from"./BDNMzG2s.js";import{t as A}from"./gUYi1hLJ2.js";import{r as ee}from"./Du9v6qGB2.js";import{t as j}from"./C14pM5G4.js";import{t as M}from"./SgsmmrsZ.js";import{t as N}from"./BqBTlfiz.js";import{t as P}from"./DnuJ66Jy.js";import{t as F}from"./DZzbCFY2.js";import{t as I}from"./ae2-5ZPt.js";var L=[`#3aa0ff`,`#f4c542`,`#35e0a0`,`#41c8f4`,`#b58cff`,`#ff8a5c`],R={class:`lc-head`},z={class:`lc-name`},B=[`title`],V=[`title`],H=[`title`],U=[`title`],W={key:0,class:`lc-run mono`},G={class:`lc-stats mono`},K={class:`lc-ctl`},q=[`disabled`,`title`],J={value:``},Y=[`value`,`disabled`],X=[`disabled`,`title`],te=[`disabled`],ne=Object.assign(c({__name:`DcwLineCard`,props:_({card:{},state:{},recipes:{},quickBusy:{},pendingExp:{}},{pick:{},pickModifiers:{}}),emits:_([`edit`,`remove`,`start`,`stop`],[`update:pick`]),setup(e,{emit:r}){let a=r,o=s(e,`pick`);return(r,s)=>{let c=D;return l(),m(`div`,{class:t([`line-card aw-liftable`,{idle:!e.state.active}]),style:n({"--lc":e.card.line.color})},[p(`div`,R,[s[7]||=p(`span`,{class:`lc-dot`},null,-1),p(`b`,z,i(e.card.line.name),1),p(`span`,{class:t([`lc-mode`,{auto:e.card.line.controlMode===`auto`}]),title:e.card.line.controlMode===`auto`?`自动模式:按各绑定模式执行(auto 免批)`:`手动模式:本线全部配方写动作强制人工批准(缺省)`},i(e.card.line.controlMode===`auto`?`自动`:`手动`),11,B),p(`span`,{class:t([`lc-state`,{on:e.state.active}])},i(e.state.active?r.$t(`dcw.k1eox1el055`):r.$t(`dcw.k149r6y7059`)),3),e.pendingExp?(l(),m(`span`,{key:0,class:`badge warn-badge`,title:r.$t(`expConfirm.badgeTip`,{p0:e.pendingExp})},i(e.pendingExp),9,V)):v(``,!0),p(`button`,{class:`lc-act`,title:r.$t(`common.edit`),onClick:s[0]||=t=>a(`edit`,e.card)},[...s[5]||=[p(`span`,{class:`i-tabler-pencil`},null,-1)]],8,H),p(`button`,{class:`lc-act danger`,title:r.$t(`dcw.k3xakp026`),onClick:s[1]||=t=>a(`remove`,e.card)},[...s[6]||=[p(`span`,{class:`i-tabler-trash`},null,-1)]],8,U)]),e.state.active?(l(),m(`small`,W,i(e.state.productName)+` · `+i(e.state.recipeName)+` · `+i(r.$t(`dcw.k3zz0f052`))+` `+i(e.state.taggedSamples),1)):(l(),m(`small`,{key:1,class:t([`lc-run dim`,{ph:!e.card.line.description}])},i(e.card.line.description||r.$t(`dcw.k18moyq1056`)),3)),p(`div`,G,[p(`span`,null,[S(i(r.$t(`dcw.k45uio011`))+` `,1),p(`b`,null,i(e.card.nodes),1)]),p(`span`,null,[S(i(r.$t(`dcw.k3waz1012`))+` `,1),p(`b`,null,i(e.card.products),1)]),p(`span`,null,[S(i(r.$t(`dcw.k48grv013`))+` `,1),p(`b`,null,i(e.card.recipes),1)])]),p(`div`,K,[e.state.active?(l(),m(`button`,{key:1,class:`pill-btn stop`,disabled:e.quickBusy===e.card.line.id,onClick:s[4]||=t=>a(`stop`,e.card)},i(r.$t(`dcw.k148rclf015`)),9,te)):(l(),m(h,{key:0},[g(p(`select`,{"onUpdate:modelValue":s[2]||=e=>o.value=e,class:`inp`,disabled:e.recipes.length===0,title:r.$t(`dcw.k1dhaby4003`)},[p(`option`,J,i(e.recipes.length?r.$t(`dcw.kutxzsz057`):r.$t(`dcw.k1elczt9060`)),1),(l(!0),m(h,null,u(e.recipes,e=>(l(),m(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},i(e.name)+`(`+i(e.params.length)+`) `,9,Y))),128))],8,q),[[C,o.value]]),p(`button`,{class:`pill-btn`,disabled:e.quickBusy===e.card.line.id||!o.value,title:o.value?void 0:r.$t(`dcw.k1dhaby4003`),onClick:s[3]||=t=>a(`start`,e.card)},i(r.$t(`dcw.k149b4vg014`)),9,X)],64))]),d(c,{class:`lc-manage`,to:`/dcw/${e.card.line.id}`},{default:b(()=>[S(i(r.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6)}}}),{__name:`DcwLineCard`}),re={class:`modal`},ie={class:`m-title`},Z={class:`f`},Q=[`placeholder`],ae={class:`f`},oe=[`placeholder`],se={class:`f`},ce={class:`color-row`},$=[`onClick`],le={class:`dim`},ue={key:0,class:`m-err`},de={class:`m-actions`},fe=[`disabled`],pe=Object.assign(c({__name:`DcwCreateLineModal`,props:_({saving:{type:Boolean},error:{},nextColor:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`submit`,`close`],[`update:open`]),setup(a,{emit:o}){let c=o,d=s(a,`open`),f=r({name:``,description:``,color:``});x(d,e=>{e&&(f.name=``,f.description=``,f.color=``)});function _(){c(`submit`,{name:f.name.trim(),description:f.description.trim(),color:f.color||void 0})}return(r,o)=>(l(),y(E,{name:`modal`},{default:b(()=>[d.value?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:o[3]||=w(e=>c(`close`),[`self`])},[p(`div`,re,[p(`h3`,ie,i(r.$t(`dcw.k1efe391017`)),1),p(`label`,Z,[p(`span`,null,[S(i(r.$t(`dcw.k1b2ioko019`)),1),o[4]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":o[0]||=e=>f.name=e,class:`inp`,placeholder:r.$t(`dcw.kru37i3004`)},null,8,Q),[[T,f.name]])]),p(`label`,ae,[p(`span`,null,i(r.$t(`dcw.k24dxcd020`)),1),g(p(`input`,{"onUpdate:modelValue":o[1]||=e=>f.description=e,class:`inp`,placeholder:r.$t(`dcw.k1f2nwsp005`)},null,8,oe),[[T,f.description]])]),p(`div`,se,[p(`span`,null,i(r.$t(`dcw.k1x7nubr021`)),1),p(`div`,ce,[(l(!0),m(h,null,u(e(L),e=>(l(),m(`button`,{key:e,class:t([`color-dot`,{on:f.color===e}]),style:n({background:e}),onClick:t=>f.color=f.color===e?``:e},null,14,$))),128)),p(`small`,le,i(f.color||r.$t(`dcw.k1qidbpy061`,{p0:a.nextColor})),1)])]),a.error?(l(),m(`p`,ue,i(a.error),1)):v(``,!0),p(`div`,de,[p(`button`,{class:`mini-btn`,onClick:o[2]||=e=>c(`close`)},i(r.$t(`dcw.k3xdnn022`)),1),p(`button`,{class:`pill-btn`,disabled:a.saving||!f.name.trim(),onClick:_},i(r.$t(`dcw.k3wzi2023`)),9,fe)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwCreateLineModal`}),me={class:`modal`},he={class:`m-title`},ge={class:`f`},_e=[`placeholder`],ve={class:`f`},ye=[`placeholder`],be={class:`f`},xe={class:`color-row`},Se=[`onClick`],Ce={class:`dim`},we={class:`f`},Te={class:`mode-row`},Ee={key:0,class:`confirm-strip`},De={key:0,class:`m-err`},Oe={class:`m-actions`},ke=[`disabled`],Ae=Object.assign(k(c({__name:`DcwEditLineModal`,props:_({card:{},saving:{type:Boolean},error:{},nextColor:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`submit`,`close`],[`update:open`]),setup(a,{emit:c}){let d=a,f=c,_=s(a,`open`),C=r({name:``,description:``,color:``,controlMode:`manual`}),D=o(!1);x(()=>d.card,e=>{e&&(C.name=e.line.name,C.description=e.line.description,C.color=e.line.color,C.controlMode=e.line.controlMode===`auto`?`auto`:`manual`,D.value=!1)});function O(e){if(e!==C.controlMode){if(e===`auto`){D.value=!0;return}C.controlMode=`manual`,D.value=!1}}function k(){C.controlMode=`auto`,D.value=!1}function A(){d.card&&f(`submit`,d.card.line.id,{name:C.name.trim(),description:C.description.trim(),color:C.color||void 0,...C.controlMode===(d.card.line.controlMode===`auto`?`auto`:`manual`)?{}:{controlMode:C.controlMode,...C.controlMode===`auto`?{confirm:!0}:{}}})}return(r,o)=>(l(),y(E,{name:`modal`},{default:b(()=>[_.value?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:o[6]||=w(e=>f(`close`),[`self`])},[p(`div`,me,[p(`h3`,he,i(r.$t(`dcw.k5tq8wc071`)),1),p(`label`,ge,[p(`span`,null,[S(i(r.$t(`dcw.k1b2ioko019`)),1),o[7]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":o[0]||=e=>C.name=e,class:`inp`,placeholder:r.$t(`dcw.kru37i3004`)},null,8,_e),[[T,C.name]])]),p(`label`,ve,[p(`span`,null,i(r.$t(`dcw.k24dxcd020`)),1),g(p(`input`,{"onUpdate:modelValue":o[1]||=e=>C.description=e,class:`inp`,placeholder:r.$t(`dcw.k1f2nwsp005`)},null,8,ye),[[T,C.description]])]),p(`div`,be,[p(`span`,null,i(r.$t(`dcw.k1x7nubr021`)),1),p(`div`,xe,[(l(!0),m(h,null,u(e(L),e=>(l(),m(`button`,{key:e,class:t([`color-dot`,{on:C.color===e}]),style:n({background:e}),onClick:t=>C.color=C.color===e?``:e},null,14,Se))),128)),p(`small`,Ce,i(C.color||r.$t(`dcw.k1qidbpy061`,{p0:a.nextColor})),1)])]),p(`div`,we,[o[9]||=p(`span`,null,`控制模式`,-1),p(`div`,Te,[p(`button`,{class:t([`mode-opt`,{on:C.controlMode===`manual`}]),type:`button`,onClick:o[2]||=e=>O(`manual`)},` 手动(人工审批) `,2),p(`button`,{class:t([`mode-opt`,{on:C.controlMode===`auto`,danger:C.controlMode===`auto`}]),type:`button`,onClick:o[3]||=e=>O(`auto`)},` 自动(按绑定模式) `,2)]),o[10]||=p(`small`,{class:`dim`},`手动:本线全部配方写动作强制人工批准(缺省);自动:按各节点/配方绑定的模式执行(auto 免批)。`,-1),D.value?(l(),m(`div`,Ee,[o[8]||=p(`span`,null,`切换为「自动」将摘除本线人工审批总闸(auto 绑定不再逐次审批)。确定?`,-1),p(`button`,{class:`mini-btn`,type:`button`,onClick:o[4]||=e=>D.value=!1},` 取消 `),p(`button`,{class:`pill-btn danger-btn`,type:`button`,onClick:k},` 仍要切换(需显式确认) `)])):v(``,!0)]),a.error?(l(),m(`p`,De,i(a.error),1)):v(``,!0),p(`div`,Oe,[p(`button`,{class:`mini-btn`,onClick:o[5]||=e=>f(`close`)},i(r.$t(`dcw.k3xdnn022`)),1),p(`button`,{class:`pill-btn`,disabled:a.saving||!C.name.trim(),onClick:A},i(r.$t(`common.save`)),9,ke)])])])):v(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-8f000e20`]]),{__name:`DcwEditLineModal`}),je={class:`modal`},Me={class:`m-title danger-title`},Ne={class:`del-summary`},Pe={class:`del-purge`},Fe=[`checked`],Ie={key:0,class:`m-err`},Le={class:`m-actions`},Re=[`disabled`],ze=Object.assign(c({__name:`DcwDeleteLineModal`,props:_({card:{},purge:{type:Boolean},busy:{type:Boolean},error:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`update:purge`,`close`,`confirm`],[`update:open`]),setup(e,{emit:t}){let n=t,r=s(e,`open`);return(t,a)=>(l(),y(E,{name:`modal`},{default:b(()=>[r.value&&e.card?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:a[3]||=w(e=>n(`close`),[`self`])},[p(`div`,je,[p(`h3`,Me,[a[4]||=p(`span`,{class:`i-tabler-alert-triangle`},null,-1),S(` `+i(t.$t(`dcw.k7xq2mfd063`,{p0:e.card.line.name})),1)]),p(`p`,Ne,i(e.purge?t.$t(`dcw.k4r7nbd073`,{p0:e.card.line.name,p1:e.card.nodes,p2:e.card.products,p3:e.card.recipes}):t.$t(`dcw.k1gp649b062`,{p0:e.card.line.name,p1:e.card.nodes,p2:e.card.products,p3:e.card.recipes})),1),p(`label`,Pe,[p(`input`,{checked:e.purge,type:`checkbox`,onChange:a[0]||=e=>n(`update:purge`,e.target.checked)},null,40,Fe),p(`span`,null,i(t.$t(`dcw.k9m2vxa072`)),1)]),e.error?(l(),m(`p`,Ie,i(e.error),1)):v(``,!0),p(`div`,Le,[p(`button`,{class:`mini-btn`,onClick:a[1]||=e=>n(`close`)},i(t.$t(`dcw.k3xdnn022`)),1),p(`button`,{class:`pill-btn danger`,disabled:e.busy,onClick:a[2]||=e=>n(`confirm`)},i(t.$t(`dcw.k3xakp026`)),9,Re)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwDeleteLineModal`}),Be={class:`modal wide`},Ve={class:`m-title`},He={class:`dim mono`},Ue={class:`dim tpl-hint`},We={class:`tpl-list`},Ge=[`title`],Ke={class:`mono dim`},qe={key:0,class:`tpl-sem`},Je=[`onClick`],Ye={class:`sec-label`},Xe={class:`tpl-form`},Ze={class:`f`},Qe=[`placeholder`],$e={class:`f`},et=[`placeholder`],tt={class:`f`},nt=[`placeholder`],rt={class:`f`},it=[`placeholder`],at={class:`f`},ot={class:`f`},st={class:`f`},ct={class:`f`},lt=[`value`],ut={class:`f`},dt=[`placeholder`],ft={key:0,class:`m-err`},pt={class:`m-actions`},mt=[`disabled`],ht=Object.assign(c({__name:`DcwTemplateModal`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:[`update:open`],setup(n){let a=A(),{t:o}=O(),{tplError:c,clearTplError:d,doCreateTemplate:_,doRemoveTemplate:D,builtinCount:k}=I(),j=s(n,`open`),M=r({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),N=[{key:`thermo`,label:o(`dcw.k422b8040`)},{key:`pressure`,label:o(`dcw.k3x6ff041`)},{key:`tension`,label:o(`dcw.k3z9xc042`)},{key:`encoder`,label:o(`dcw.kjb3vhs043`)},{key:`camera`,label:o(`dcw.k47atw044`)},{key:`gateway`,label:o(`dcw.k48c07045`)}],P=e=>ee(o,e);async function F(){if(!M.name.trim()){c.value=o(`dcw.k6ugbw2046`);return}if(M.min===``||M.max===``){c.value=o(`dcw.k13awowo047`);return}await _({name:M.name.trim(),ch:M.ch.trim()||M.name.trim(),code:M.code.trim()||`CUSTOM`,unit:M.unit.trim()||`-`,min:Number(M.min),max:Number(M.max),decimals:Number(M.decimals)||0,icon:M.icon,semantics:M.semantics.trim()||void 0}),!c.value&&(M.name=``,M.ch=``,M.code=``,M.unit=``,M.min=``,M.max=``)}let L=f(()=>a.templates.length-k.value);return x(j,e=>{e&&d()}),(n,r)=>(l(),y(E,{name:`modal`},{default:b(()=>[j.value?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:r[10]||=w(e=>j.value=!1,[`self`])},[p(`div`,Be,[p(`h3`,Ve,[S(i(n.$t(`dcw.k11oadmx024`))+` `,1),p(`small`,He,i(n.$t(`dcw.k3x23c054`))+` `+i(e(k))+` · `+i(n.$t(`dcw.k3t616a058`))+` `+i(L.value),1)]),p(`p`,Ue,i(n.$t(`dcw.k2hlav5025`)),1),p(`div`,We,[(l(!0),m(h,null,u(e(a).templates,r=>(l(),m(`div`,{key:r.key,class:`tpl-row`,title:r.semantics??``},[p(`b`,null,i(P(r)),1),p(`small`,Ke,i(r.code)+` · `+i(r.min)+`~`+i(r.max)+` `+i(r.unit),1),r.semantics?(l(),m(`small`,qe,i(r.semantics.slice(0,40))+i(r.semantics.length>40?`…`:``),1)):v(``,!0),p(`span`,{class:t([`tpl-tag`,{builtin:r.builtin}])},i(r.builtin?n.$t(`dcw.k3x23c054`):n.$t(`dcw.k3t616a058`)),3),r.builtin?v(``,!0):(l(),m(`button`,{key:1,class:`mini-btn danger`,onClick:t=>e(D)(r.key)},i(n.$t(`dcw.k3xakp026`)),9,Je))],8,Ge))),128))]),p(`p`,Ye,i(n.$t(`dcw.k169eb4s027`)),1),p(`div`,Xe,[p(`label`,Ze,[p(`span`,null,[S(i(n.$t(`dcw.k3xhia028`)),1),r[11]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":r[0]||=e=>M.name=e,class:`inp`,placeholder:n.$t(`dcw.k1tooi3o006`)},null,8,Qe),[[T,M.name]])]),p(`label`,$e,[p(`span`,null,i(n.$t(`dcw.k1bqk219029`)),1),g(p(`input`,{"onUpdate:modelValue":r[1]||=e=>M.ch=e,class:`inp`,placeholder:n.$t(`dcw.k698qz0007`)},null,8,et),[[T,M.ch]])]),p(`label`,tt,[p(`span`,null,i(n.$t(`dcw.k1ayxrqb030`)),1),g(p(`input`,{"onUpdate:modelValue":r[2]||=e=>M.code=e,class:`inp`,placeholder:n.$t(`dcw.codePh`)},null,8,nt),[[T,M.code]])]),p(`label`,rt,[p(`span`,null,i(n.$t(`dcw.k3x4ef031`)),1),g(p(`input`,{"onUpdate:modelValue":r[3]||=e=>M.unit=e,class:`inp`,placeholder:n.$t(`dcw.unitPh`)},null,8,it),[[T,M.unit]])]),p(`label`,at,[p(`span`,null,[S(i(n.$t(`dcw.k1l9jv5m032`)),1),r[12]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":r[4]||=e=>M.min=e,type:`number`,class:`inp`},null,512),[[T,M.min,void 0,{number:!0}]])]),p(`label`,ot,[p(`span`,null,[S(i(n.$t(`dcw.k1l9jv4p033`)),1),r[13]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":r[5]||=e=>M.max=e,type:`number`,class:`inp`},null,512),[[T,M.max,void 0,{number:!0}]])]),p(`label`,st,[p(`span`,null,i(n.$t(`dcw.k3mxmcx034`)),1),g(p(`input`,{"onUpdate:modelValue":r[6]||=e=>M.decimals=e,type:`number`,class:`inp`},null,512),[[T,M.decimals,void 0,{number:!0}]])]),p(`label`,ct,[p(`span`,null,i(n.$t(`dcw.k3xx56035`)),1),g(p(`select`,{"onUpdate:modelValue":r[7]||=e=>M.icon=e,class:`inp`},[(l(),m(h,null,u(N,e=>p(`option`,{key:e.key,value:e.key},i(e.label),9,lt)),64))],512),[[C,M.icon]])])]),p(`label`,ut,[p(`span`,null,i(n.$t(`dcw.k1b6qorg036`)),1),g(p(`textarea`,{"onUpdate:modelValue":r[8]||=e=>M.semantics=e,class:`inp`,rows:`3`,placeholder:n.$t(`dcw.k1qdnfzc008`)},null,8,dt),[[T,M.semantics]])]),e(c)?(l(),m(`p`,ft,i(e(c)),1)):v(``,!0),p(`div`,pt,[p(`button`,{class:`mini-btn`,onClick:r[9]||=e=>j.value=!1},i(n.$t(`dcw.k3x62t037`)),1),p(`button`,{class:`pill-btn`,disabled:!M.name.trim()||M.min===``||M.max===``,onClick:F},i(n.$t(`dcw.k1bg9nga038`)),9,mt)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwTemplateModal`}),gt={class:`page`},_t={class:`aw-page-head`},vt={class:`sub`},yt={class:`badges mono`},bt=[`title`],xt={class:`badge`},St={key:0,class:`banner bad`},Ct={class:`fleet-filter`},wt={class:`aw-seg`},Tt=[`placeholder`],Et={class:`line-grid aw-stagger`},Dt={key:1,class:`banner`},Ot={key:2,class:`banner`},kt={key:3,class:`banner bad`},At=c({__name:`index`,setup(n){let{t:r}=O(),s=A();s.load();let{cards:c,unassignedCount:_,recipesOf:b}=M(),{filterState:x,searchText:C,runningCount:w,shownCards:E}=N(c),D=f(()=>L[s.lines.length%L.length]??`#3aa0ff`),{createOpen:k,createSaving:ee,createError:I,openCreate:R,doCreateLine:z,editOpen:B,editSaving:V,editError:H,editTarget:U,openEdit:W,doEditLine:G,delOpen:K,delBusy:q,delErr:J,delPurge:Y,delCard:X,openDelete:te,doDeleteLine:re}=P(),{quickBusy:ie,quickErr:Z,quickPick:Q,quickStart:ae,quickStop:oe}=F(r),{items:se}=j({intervalMs:6e4}),ce=f(()=>{let e={};for(let t of se.value)e[t.lineId]=(e[t.lineId]??0)+1;return e}),$=o(!1);return(n,r)=>{let o=ne,f=pe,O=Ae,A=ze,j=ht;return l(),m(`div`,gt,[p(`div`,_t,[p(`div`,null,[r[14]||=p(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),p(`h1`,null,i(n.$t(`dcw.k1b2tk5c009`)),1),p(`p`,vt,i(n.$t(`dcw.k5q0aqi010`)),1)]),p(`div`,yt,[e(_)?(l(),m(`span`,{key:0,class:`badge warn-badge`,title:n.$t(`dcw.k1i5a9vw001`)},i(n.$t(`dcw.k3ootr6049`))+` `+i(e(_)),9,bt)):v(``,!0),p(`span`,xt,i(n.$t(`dcw.k3wj9n050`))+` `+i(e(s).lines.length),1),p(`button`,{class:`badge tpl-btn`,onClick:r[0]||=e=>$.value=!0},i(n.$t(`dcw.k11nndsp051`))+` `+i(e(s).templates.length),1)])]),e(Z)?(l(),m(`p`,St,i(e(Z)),1)):v(``,!0),p(`div`,Ct,[p(`div`,wt,[p(`button`,{class:t({on:e(x)===`all`}),onClick:r[1]||=e=>x.value=`all`},i(n.$t(`common.all`))+` `+i(e(c).length),3),p(`button`,{class:t({on:e(x)===`running`}),onClick:r[2]||=e=>x.value=`running`},i(n.$t(`dcw.k1eox1el055`))+` `+i(e(w)),3),p(`button`,{class:t({on:e(x)===`idle`}),onClick:r[3]||=e=>x.value=`idle`},i(n.$t(`dcw.k149r6y7059`))+` `+i(e(c).length-e(w)),3)]),g(p(`input`,{"onUpdate:modelValue":r[4]||=e=>a(C)?C.value=e:null,class:`inp fleet-search`,type:`search`,placeholder:n.$t(`dcw.filterSearchPh`)},null,8,Tt),[[T,e(C)]])]),p(`div`,Et,[(l(!0),m(h,null,u(e(E),t=>(l(),y(o,{key:t.line.id,pick:e(Q)[t.line.id],"onUpdate:pick":n=>e(Q)[t.line.id]=n,card:t,state:e(s).lineStateOf(t.line.id),recipes:e(b)(t.line.id),"quick-busy":e(ie),"pending-exp":ce.value[t.line.id]??0,onEdit:e(W),onRemove:e(te),onStart:e(ae),onStop:e(oe)},null,8,[`pick`,`onUpdate:pick`,`card`,`state`,`recipes`,`quick-busy`,`pending-exp`,`onEdit`,`onRemove`,`onStart`,`onStop`]))),128)),p(`button`,{class:`line-card new-card`,onClick:r[5]||=(...t)=>e(R)&&e(R)(...t)},[r[15]||=p(`span`,{class:`i-tabler-plus`},null,-1),S(` `+i(n.$t(`dcw.k1efe391017`))+` `,1),p(`small`,null,i(n.$t(`dcw.k19dlbli053`)),1)])]),e(s).loaded&&e(s).lines.length===0?(l(),m(`p`,Dt,i(n.$t(`dcw.k1sk85vs018`)),1)):e(s).loaded&&e(E).length===0?(l(),m(`p`,Ot,i(n.$t(`dcw.filterEmpty`)),1)):v(``,!0),d(f,{open:e(k),"onUpdate:open":r[6]||=e=>a(k)?k.value=e:null,saving:e(ee),error:e(I),"next-color":D.value,onSubmit:e(z),onClose:r[7]||=e=>k.value=!1},null,8,[`open`,`saving`,`error`,`next-color`,`onSubmit`]),d(O,{open:e(B),"onUpdate:open":r[8]||=e=>a(B)?B.value=e:null,card:e(U),saving:e(V),error:e(H),"next-color":D.value,onSubmit:e(G),onClose:r[9]||=e=>B.value=!1},null,8,[`open`,`card`,`saving`,`error`,`next-color`,`onSubmit`]),d(A,{open:e(K),"onUpdate:open":r[10]||=e=>a(K)?K.value=e:null,purge:e(Y),"onUpdate:purge":r[11]||=e=>a(Y)?Y.value=e:null,card:e(X),busy:e(q),error:e(J),onConfirm:e(re),onClose:r[12]||=e=>K.value=!1},null,8,[`open`,`purge`,`card`,`busy`,`error`,`onConfirm`]),d(j,{open:$.value,"onUpdate:open":r[13]||=e=>$.value=e},null,8,[`open`]),e(s).error?(l(),m(`p`,kt,i(e(s).error),1)):v(``,!0)])}}});export{At as default};
1
+ import{N as e,dt as t,ft as n,g as r,mt as i,u as a,v as o}from"./CavpkQb0.js";import{$ as s,S as c,V as l,W as u,b as d,d as f,f as p,h as m,i as h,it as g,k as _,m as v,p as y,rt as b,tt as x,y as S}from"./C6lssmvl.js";import{c as C,f as w,l as T,t as E}from"./ri9UF8rk.js";import{t as D}from"./DPPC9Teq.js";import{n as O}from"./D1MkndMZ.js";import{t as k}from"./BDNMzG2s.js";import{t as A}from"./DxDqd6T42.js";import{r as ee}from"./Du9v6qGB2.js";import{t as j}from"./C14pM5G4.js";import{t as M}from"./CY2NkFvI.js";import{t as N}from"./Tf6SJSDj.js";import{t as P}from"./D6PUmBb0.js";import{t as F}from"./BuLoPmcf.js";import{t as I}from"./h-Fn7pRD.js";var L=[`#3aa0ff`,`#f4c542`,`#35e0a0`,`#41c8f4`,`#b58cff`,`#ff8a5c`],R={class:`lc-head`},z={class:`lc-name`},B=[`title`],V=[`title`],H=[`title`],U=[`title`],W={key:0,class:`lc-run mono`},G={class:`lc-stats mono`},K={class:`lc-ctl`},q=[`disabled`,`title`],J={value:``},Y=[`value`,`disabled`],X=[`disabled`,`title`],te=[`disabled`],ne=Object.assign(c({__name:`DcwLineCard`,props:_({card:{},state:{},recipes:{},quickBusy:{},pendingExp:{}},{pick:{},pickModifiers:{}}),emits:_([`edit`,`remove`,`start`,`stop`],[`update:pick`]),setup(e,{emit:r}){let a=r,o=s(e,`pick`);return(r,s)=>{let c=D;return l(),m(`div`,{class:t([`line-card aw-liftable`,{idle:!e.state.active}]),style:n({"--lc":e.card.line.color})},[p(`div`,R,[s[7]||=p(`span`,{class:`lc-dot`},null,-1),p(`b`,z,i(e.card.line.name),1),p(`span`,{class:t([`lc-mode`,{auto:e.card.line.controlMode===`auto`}]),title:e.card.line.controlMode===`auto`?`自动模式:按各绑定模式执行(auto 免批)`:`手动模式:本线全部配方写动作强制人工批准(缺省)`},i(e.card.line.controlMode===`auto`?`自动`:`手动`),11,B),p(`span`,{class:t([`lc-state`,{on:e.state.active}])},i(e.state.active?r.$t(`dcw.k1eox1el055`):r.$t(`dcw.k149r6y7059`)),3),e.pendingExp?(l(),m(`span`,{key:0,class:`badge warn-badge`,title:r.$t(`expConfirm.badgeTip`,{p0:e.pendingExp})},i(e.pendingExp),9,V)):v(``,!0),p(`button`,{class:`lc-act`,title:r.$t(`common.edit`),onClick:s[0]||=t=>a(`edit`,e.card)},[...s[5]||=[p(`span`,{class:`i-tabler-pencil`},null,-1)]],8,H),p(`button`,{class:`lc-act danger`,title:r.$t(`dcw.k3xakp026`),onClick:s[1]||=t=>a(`remove`,e.card)},[...s[6]||=[p(`span`,{class:`i-tabler-trash`},null,-1)]],8,U)]),e.state.active?(l(),m(`small`,W,i(e.state.productName)+` · `+i(e.state.recipeName)+` · `+i(r.$t(`dcw.k3zz0f052`))+` `+i(e.state.taggedSamples),1)):(l(),m(`small`,{key:1,class:t([`lc-run dim`,{ph:!e.card.line.description}])},i(e.card.line.description||r.$t(`dcw.k18moyq1056`)),3)),p(`div`,G,[p(`span`,null,[S(i(r.$t(`dcw.k45uio011`))+` `,1),p(`b`,null,i(e.card.nodes),1)]),p(`span`,null,[S(i(r.$t(`dcw.k3waz1012`))+` `,1),p(`b`,null,i(e.card.products),1)]),p(`span`,null,[S(i(r.$t(`dcw.k48grv013`))+` `,1),p(`b`,null,i(e.card.recipes),1)])]),p(`div`,K,[e.state.active?(l(),m(`button`,{key:1,class:`pill-btn stop`,disabled:e.quickBusy===e.card.line.id,onClick:s[4]||=t=>a(`stop`,e.card)},i(r.$t(`dcw.k148rclf015`)),9,te)):(l(),m(h,{key:0},[g(p(`select`,{"onUpdate:modelValue":s[2]||=e=>o.value=e,class:`inp`,disabled:e.recipes.length===0,title:r.$t(`dcw.k1dhaby4003`)},[p(`option`,J,i(e.recipes.length?r.$t(`dcw.kutxzsz057`):r.$t(`dcw.k1elczt9060`)),1),(l(!0),m(h,null,u(e.recipes,e=>(l(),m(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},i(e.name)+`(`+i(e.params.length)+`) `,9,Y))),128))],8,q),[[C,o.value]]),p(`button`,{class:`pill-btn`,disabled:e.quickBusy===e.card.line.id||!o.value,title:o.value?void 0:r.$t(`dcw.k1dhaby4003`),onClick:s[3]||=t=>a(`start`,e.card)},i(r.$t(`dcw.k149b4vg014`)),9,X)],64))]),d(c,{class:`lc-manage`,to:`/dcw/${e.card.line.id}`},{default:b(()=>[S(i(r.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6)}}}),{__name:`DcwLineCard`}),re={class:`modal`},ie={class:`m-title`},Z={class:`f`},Q=[`placeholder`],ae={class:`f`},oe=[`placeholder`],se={class:`f`},ce={class:`color-row`},$=[`onClick`],le={class:`dim`},ue={key:0,class:`m-err`},de={class:`m-actions`},fe=[`disabled`],pe=Object.assign(c({__name:`DcwCreateLineModal`,props:_({saving:{type:Boolean},error:{},nextColor:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`submit`,`close`],[`update:open`]),setup(a,{emit:o}){let c=o,d=s(a,`open`),f=r({name:``,description:``,color:``});x(d,e=>{e&&(f.name=``,f.description=``,f.color=``)});function _(){c(`submit`,{name:f.name.trim(),description:f.description.trim(),color:f.color||void 0})}return(r,o)=>(l(),y(E,{name:`modal`},{default:b(()=>[d.value?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:o[3]||=w(e=>c(`close`),[`self`])},[p(`div`,re,[p(`h3`,ie,i(r.$t(`dcw.k1efe391017`)),1),p(`label`,Z,[p(`span`,null,[S(i(r.$t(`dcw.k1b2ioko019`)),1),o[4]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":o[0]||=e=>f.name=e,class:`inp`,placeholder:r.$t(`dcw.kru37i3004`)},null,8,Q),[[T,f.name]])]),p(`label`,ae,[p(`span`,null,i(r.$t(`dcw.k24dxcd020`)),1),g(p(`input`,{"onUpdate:modelValue":o[1]||=e=>f.description=e,class:`inp`,placeholder:r.$t(`dcw.k1f2nwsp005`)},null,8,oe),[[T,f.description]])]),p(`div`,se,[p(`span`,null,i(r.$t(`dcw.k1x7nubr021`)),1),p(`div`,ce,[(l(!0),m(h,null,u(e(L),e=>(l(),m(`button`,{key:e,class:t([`color-dot`,{on:f.color===e}]),style:n({background:e}),onClick:t=>f.color=f.color===e?``:e},null,14,$))),128)),p(`small`,le,i(f.color||r.$t(`dcw.k1qidbpy061`,{p0:a.nextColor})),1)])]),a.error?(l(),m(`p`,ue,i(a.error),1)):v(``,!0),p(`div`,de,[p(`button`,{class:`mini-btn`,onClick:o[2]||=e=>c(`close`)},i(r.$t(`dcw.k3xdnn022`)),1),p(`button`,{class:`pill-btn`,disabled:a.saving||!f.name.trim(),onClick:_},i(r.$t(`dcw.k3wzi2023`)),9,fe)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwCreateLineModal`}),me={class:`modal`},he={class:`m-title`},ge={class:`f`},_e=[`placeholder`],ve={class:`f`},ye=[`placeholder`],be={class:`f`},xe={class:`color-row`},Se=[`onClick`],Ce={class:`dim`},we={class:`f`},Te={class:`mode-row`},Ee={key:0,class:`confirm-strip`},De={key:0,class:`m-err`},Oe={class:`m-actions`},ke=[`disabled`],Ae=Object.assign(k(c({__name:`DcwEditLineModal`,props:_({card:{},saving:{type:Boolean},error:{},nextColor:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`submit`,`close`],[`update:open`]),setup(a,{emit:c}){let d=a,f=c,_=s(a,`open`),C=r({name:``,description:``,color:``,controlMode:`manual`}),D=o(!1);x(()=>d.card,e=>{e&&(C.name=e.line.name,C.description=e.line.description,C.color=e.line.color,C.controlMode=e.line.controlMode===`auto`?`auto`:`manual`,D.value=!1)});function O(e){if(e!==C.controlMode){if(e===`auto`){D.value=!0;return}C.controlMode=`manual`,D.value=!1}}function k(){C.controlMode=`auto`,D.value=!1}function A(){d.card&&f(`submit`,d.card.line.id,{name:C.name.trim(),description:C.description.trim(),color:C.color||void 0,...C.controlMode===(d.card.line.controlMode===`auto`?`auto`:`manual`)?{}:{controlMode:C.controlMode,...C.controlMode===`auto`?{confirm:!0}:{}}})}return(r,o)=>(l(),y(E,{name:`modal`},{default:b(()=>[_.value?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:o[6]||=w(e=>f(`close`),[`self`])},[p(`div`,me,[p(`h3`,he,i(r.$t(`dcw.k5tq8wc071`)),1),p(`label`,ge,[p(`span`,null,[S(i(r.$t(`dcw.k1b2ioko019`)),1),o[7]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":o[0]||=e=>C.name=e,class:`inp`,placeholder:r.$t(`dcw.kru37i3004`)},null,8,_e),[[T,C.name]])]),p(`label`,ve,[p(`span`,null,i(r.$t(`dcw.k24dxcd020`)),1),g(p(`input`,{"onUpdate:modelValue":o[1]||=e=>C.description=e,class:`inp`,placeholder:r.$t(`dcw.k1f2nwsp005`)},null,8,ye),[[T,C.description]])]),p(`div`,be,[p(`span`,null,i(r.$t(`dcw.k1x7nubr021`)),1),p(`div`,xe,[(l(!0),m(h,null,u(e(L),e=>(l(),m(`button`,{key:e,class:t([`color-dot`,{on:C.color===e}]),style:n({background:e}),onClick:t=>C.color=C.color===e?``:e},null,14,Se))),128)),p(`small`,Ce,i(C.color||r.$t(`dcw.k1qidbpy061`,{p0:a.nextColor})),1)])]),p(`div`,we,[o[9]||=p(`span`,null,`控制模式`,-1),p(`div`,Te,[p(`button`,{class:t([`mode-opt`,{on:C.controlMode===`manual`}]),type:`button`,onClick:o[2]||=e=>O(`manual`)},` 手动(人工审批) `,2),p(`button`,{class:t([`mode-opt`,{on:C.controlMode===`auto`,danger:C.controlMode===`auto`}]),type:`button`,onClick:o[3]||=e=>O(`auto`)},` 自动(按绑定模式) `,2)]),o[10]||=p(`small`,{class:`dim`},`手动:本线全部配方写动作强制人工批准(缺省);自动:按各节点/配方绑定的模式执行(auto 免批)。`,-1),D.value?(l(),m(`div`,Ee,[o[8]||=p(`span`,null,`切换为「自动」将摘除本线人工审批总闸(auto 绑定不再逐次审批)。确定?`,-1),p(`button`,{class:`mini-btn`,type:`button`,onClick:o[4]||=e=>D.value=!1},` 取消 `),p(`button`,{class:`pill-btn danger-btn`,type:`button`,onClick:k},` 仍要切换(需显式确认) `)])):v(``,!0)]),a.error?(l(),m(`p`,De,i(a.error),1)):v(``,!0),p(`div`,Oe,[p(`button`,{class:`mini-btn`,onClick:o[5]||=e=>f(`close`)},i(r.$t(`dcw.k3xdnn022`)),1),p(`button`,{class:`pill-btn`,disabled:a.saving||!C.name.trim(),onClick:A},i(r.$t(`common.save`)),9,ke)])])])):v(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-8f000e20`]]),{__name:`DcwEditLineModal`}),je={class:`modal`},Me={class:`m-title danger-title`},Ne={class:`del-summary`},Pe={class:`del-purge`},Fe=[`checked`],Ie={key:0,class:`m-err`},Le={class:`m-actions`},Re=[`disabled`],ze=Object.assign(c({__name:`DcwDeleteLineModal`,props:_({card:{},purge:{type:Boolean},busy:{type:Boolean},error:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`update:purge`,`close`,`confirm`],[`update:open`]),setup(e,{emit:t}){let n=t,r=s(e,`open`);return(t,a)=>(l(),y(E,{name:`modal`},{default:b(()=>[r.value&&e.card?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:a[3]||=w(e=>n(`close`),[`self`])},[p(`div`,je,[p(`h3`,Me,[a[4]||=p(`span`,{class:`i-tabler-alert-triangle`},null,-1),S(` `+i(t.$t(`dcw.k7xq2mfd063`,{p0:e.card.line.name})),1)]),p(`p`,Ne,i(e.purge?t.$t(`dcw.k4r7nbd073`,{p0:e.card.line.name,p1:e.card.nodes,p2:e.card.products,p3:e.card.recipes}):t.$t(`dcw.k1gp649b062`,{p0:e.card.line.name,p1:e.card.nodes,p2:e.card.products,p3:e.card.recipes})),1),p(`label`,Pe,[p(`input`,{checked:e.purge,type:`checkbox`,onChange:a[0]||=e=>n(`update:purge`,e.target.checked)},null,40,Fe),p(`span`,null,i(t.$t(`dcw.k9m2vxa072`)),1)]),e.error?(l(),m(`p`,Ie,i(e.error),1)):v(``,!0),p(`div`,Le,[p(`button`,{class:`mini-btn`,onClick:a[1]||=e=>n(`close`)},i(t.$t(`dcw.k3xdnn022`)),1),p(`button`,{class:`pill-btn danger`,disabled:e.busy,onClick:a[2]||=e=>n(`confirm`)},i(t.$t(`dcw.k3xakp026`)),9,Re)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwDeleteLineModal`}),Be={class:`modal wide`},Ve={class:`m-title`},He={class:`dim mono`},Ue={class:`dim tpl-hint`},We={class:`tpl-list`},Ge=[`title`],Ke={class:`mono dim`},qe={key:0,class:`tpl-sem`},Je=[`onClick`],Ye={class:`sec-label`},Xe={class:`tpl-form`},Ze={class:`f`},Qe=[`placeholder`],$e={class:`f`},et=[`placeholder`],tt={class:`f`},nt=[`placeholder`],rt={class:`f`},it=[`placeholder`],at={class:`f`},ot={class:`f`},st={class:`f`},ct={class:`f`},lt=[`value`],ut={class:`f`},dt=[`placeholder`],ft={key:0,class:`m-err`},pt={class:`m-actions`},mt=[`disabled`],ht=Object.assign(c({__name:`DcwTemplateModal`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:[`update:open`],setup(n){let a=A(),{t:o}=O(),{tplError:c,clearTplError:d,doCreateTemplate:_,doRemoveTemplate:D,builtinCount:k}=I(),j=s(n,`open`),M=r({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),N=[{key:`thermo`,label:o(`dcw.k422b8040`)},{key:`pressure`,label:o(`dcw.k3x6ff041`)},{key:`tension`,label:o(`dcw.k3z9xc042`)},{key:`encoder`,label:o(`dcw.kjb3vhs043`)},{key:`camera`,label:o(`dcw.k47atw044`)},{key:`gateway`,label:o(`dcw.k48c07045`)}],P=e=>ee(o,e);async function F(){if(!M.name.trim()){c.value=o(`dcw.k6ugbw2046`);return}if(M.min===``||M.max===``){c.value=o(`dcw.k13awowo047`);return}await _({name:M.name.trim(),ch:M.ch.trim()||M.name.trim(),code:M.code.trim()||`CUSTOM`,unit:M.unit.trim()||`-`,min:Number(M.min),max:Number(M.max),decimals:Number(M.decimals)||0,icon:M.icon,semantics:M.semantics.trim()||void 0}),!c.value&&(M.name=``,M.ch=``,M.code=``,M.unit=``,M.min=``,M.max=``)}let L=f(()=>a.templates.length-k.value);return x(j,e=>{e&&d()}),(n,r)=>(l(),y(E,{name:`modal`},{default:b(()=>[j.value?(l(),m(`div`,{key:0,class:`modal-mask`,onClick:r[10]||=w(e=>j.value=!1,[`self`])},[p(`div`,Be,[p(`h3`,Ve,[S(i(n.$t(`dcw.k11oadmx024`))+` `,1),p(`small`,He,i(n.$t(`dcw.k3x23c054`))+` `+i(e(k))+` · `+i(n.$t(`dcw.k3t616a058`))+` `+i(L.value),1)]),p(`p`,Ue,i(n.$t(`dcw.k2hlav5025`)),1),p(`div`,We,[(l(!0),m(h,null,u(e(a).templates,r=>(l(),m(`div`,{key:r.key,class:`tpl-row`,title:r.semantics??``},[p(`b`,null,i(P(r)),1),p(`small`,Ke,i(r.code)+` · `+i(r.min)+`~`+i(r.max)+` `+i(r.unit),1),r.semantics?(l(),m(`small`,qe,i(r.semantics.slice(0,40))+i(r.semantics.length>40?`…`:``),1)):v(``,!0),p(`span`,{class:t([`tpl-tag`,{builtin:r.builtin}])},i(r.builtin?n.$t(`dcw.k3x23c054`):n.$t(`dcw.k3t616a058`)),3),r.builtin?v(``,!0):(l(),m(`button`,{key:1,class:`mini-btn danger`,onClick:t=>e(D)(r.key)},i(n.$t(`dcw.k3xakp026`)),9,Je))],8,Ge))),128))]),p(`p`,Ye,i(n.$t(`dcw.k169eb4s027`)),1),p(`div`,Xe,[p(`label`,Ze,[p(`span`,null,[S(i(n.$t(`dcw.k3xhia028`)),1),r[11]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":r[0]||=e=>M.name=e,class:`inp`,placeholder:n.$t(`dcw.k1tooi3o006`)},null,8,Qe),[[T,M.name]])]),p(`label`,$e,[p(`span`,null,i(n.$t(`dcw.k1bqk219029`)),1),g(p(`input`,{"onUpdate:modelValue":r[1]||=e=>M.ch=e,class:`inp`,placeholder:n.$t(`dcw.k698qz0007`)},null,8,et),[[T,M.ch]])]),p(`label`,tt,[p(`span`,null,i(n.$t(`dcw.k1ayxrqb030`)),1),g(p(`input`,{"onUpdate:modelValue":r[2]||=e=>M.code=e,class:`inp`,placeholder:n.$t(`dcw.codePh`)},null,8,nt),[[T,M.code]])]),p(`label`,rt,[p(`span`,null,i(n.$t(`dcw.k3x4ef031`)),1),g(p(`input`,{"onUpdate:modelValue":r[3]||=e=>M.unit=e,class:`inp`,placeholder:n.$t(`dcw.unitPh`)},null,8,it),[[T,M.unit]])]),p(`label`,at,[p(`span`,null,[S(i(n.$t(`dcw.k1l9jv5m032`)),1),r[12]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":r[4]||=e=>M.min=e,type:`number`,class:`inp`},null,512),[[T,M.min,void 0,{number:!0}]])]),p(`label`,ot,[p(`span`,null,[S(i(n.$t(`dcw.k1l9jv4p033`)),1),r[13]||=p(`em`,null,`*`,-1)]),g(p(`input`,{"onUpdate:modelValue":r[5]||=e=>M.max=e,type:`number`,class:`inp`},null,512),[[T,M.max,void 0,{number:!0}]])]),p(`label`,st,[p(`span`,null,i(n.$t(`dcw.k3mxmcx034`)),1),g(p(`input`,{"onUpdate:modelValue":r[6]||=e=>M.decimals=e,type:`number`,class:`inp`},null,512),[[T,M.decimals,void 0,{number:!0}]])]),p(`label`,ct,[p(`span`,null,i(n.$t(`dcw.k3xx56035`)),1),g(p(`select`,{"onUpdate:modelValue":r[7]||=e=>M.icon=e,class:`inp`},[(l(),m(h,null,u(N,e=>p(`option`,{key:e.key,value:e.key},i(e.label),9,lt)),64))],512),[[C,M.icon]])])]),p(`label`,ut,[p(`span`,null,i(n.$t(`dcw.k1b6qorg036`)),1),g(p(`textarea`,{"onUpdate:modelValue":r[8]||=e=>M.semantics=e,class:`inp`,rows:`3`,placeholder:n.$t(`dcw.k1qdnfzc008`)},null,8,dt),[[T,M.semantics]])]),e(c)?(l(),m(`p`,ft,i(e(c)),1)):v(``,!0),p(`div`,pt,[p(`button`,{class:`mini-btn`,onClick:r[9]||=e=>j.value=!1},i(n.$t(`dcw.k3x62t037`)),1),p(`button`,{class:`pill-btn`,disabled:!M.name.trim()||M.min===``||M.max===``,onClick:F},i(n.$t(`dcw.k1bg9nga038`)),9,mt)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwTemplateModal`}),gt={class:`page`},_t={class:`aw-page-head`},vt={class:`sub`},yt={class:`badges mono`},bt=[`title`],xt={class:`badge`},St={key:0,class:`banner bad`},Ct={class:`fleet-filter`},wt={class:`aw-seg`},Tt=[`placeholder`],Et={class:`line-grid aw-stagger`},Dt={key:1,class:`banner`},Ot={key:2,class:`banner`},kt={key:3,class:`banner bad`},At=c({__name:`index`,setup(n){let{t:r}=O(),s=A();s.load();let{cards:c,unassignedCount:_,recipesOf:b}=M(),{filterState:x,searchText:C,runningCount:w,shownCards:E}=N(c),D=f(()=>L[s.lines.length%L.length]??`#3aa0ff`),{createOpen:k,createSaving:ee,createError:I,openCreate:R,doCreateLine:z,editOpen:B,editSaving:V,editError:H,editTarget:U,openEdit:W,doEditLine:G,delOpen:K,delBusy:q,delErr:J,delPurge:Y,delCard:X,openDelete:te,doDeleteLine:re}=P(),{quickBusy:ie,quickErr:Z,quickPick:Q,quickStart:ae,quickStop:oe}=F(r),{items:se}=j({intervalMs:6e4}),ce=f(()=>{let e={};for(let t of se.value)e[t.lineId]=(e[t.lineId]??0)+1;return e}),$=o(!1);return(n,r)=>{let o=ne,f=pe,O=Ae,A=ze,j=ht;return l(),m(`div`,gt,[p(`div`,_t,[p(`div`,null,[r[14]||=p(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),p(`h1`,null,i(n.$t(`dcw.k1b2tk5c009`)),1),p(`p`,vt,i(n.$t(`dcw.k5q0aqi010`)),1)]),p(`div`,yt,[e(_)?(l(),m(`span`,{key:0,class:`badge warn-badge`,title:n.$t(`dcw.k1i5a9vw001`)},i(n.$t(`dcw.k3ootr6049`))+` `+i(e(_)),9,bt)):v(``,!0),p(`span`,xt,i(n.$t(`dcw.k3wj9n050`))+` `+i(e(s).lines.length),1),p(`button`,{class:`badge tpl-btn`,onClick:r[0]||=e=>$.value=!0},i(n.$t(`dcw.k11nndsp051`))+` `+i(e(s).templates.length),1)])]),e(Z)?(l(),m(`p`,St,i(e(Z)),1)):v(``,!0),p(`div`,Ct,[p(`div`,wt,[p(`button`,{class:t({on:e(x)===`all`}),onClick:r[1]||=e=>x.value=`all`},i(n.$t(`common.all`))+` `+i(e(c).length),3),p(`button`,{class:t({on:e(x)===`running`}),onClick:r[2]||=e=>x.value=`running`},i(n.$t(`dcw.k1eox1el055`))+` `+i(e(w)),3),p(`button`,{class:t({on:e(x)===`idle`}),onClick:r[3]||=e=>x.value=`idle`},i(n.$t(`dcw.k149r6y7059`))+` `+i(e(c).length-e(w)),3)]),g(p(`input`,{"onUpdate:modelValue":r[4]||=e=>a(C)?C.value=e:null,class:`inp fleet-search`,type:`search`,placeholder:n.$t(`dcw.filterSearchPh`)},null,8,Tt),[[T,e(C)]])]),p(`div`,Et,[(l(!0),m(h,null,u(e(E),t=>(l(),y(o,{key:t.line.id,pick:e(Q)[t.line.id],"onUpdate:pick":n=>e(Q)[t.line.id]=n,card:t,state:e(s).lineStateOf(t.line.id),recipes:e(b)(t.line.id),"quick-busy":e(ie),"pending-exp":ce.value[t.line.id]??0,onEdit:e(W),onRemove:e(te),onStart:e(ae),onStop:e(oe)},null,8,[`pick`,`onUpdate:pick`,`card`,`state`,`recipes`,`quick-busy`,`pending-exp`,`onEdit`,`onRemove`,`onStart`,`onStop`]))),128)),p(`button`,{class:`line-card new-card`,onClick:r[5]||=(...t)=>e(R)&&e(R)(...t)},[r[15]||=p(`span`,{class:`i-tabler-plus`},null,-1),S(` `+i(n.$t(`dcw.k1efe391017`))+` `,1),p(`small`,null,i(n.$t(`dcw.k19dlbli053`)),1)])]),e(s).loaded&&e(s).lines.length===0?(l(),m(`p`,Dt,i(n.$t(`dcw.k1sk85vs018`)),1)):e(s).loaded&&e(E).length===0?(l(),m(`p`,Ot,i(n.$t(`dcw.filterEmpty`)),1)):v(``,!0),d(f,{open:e(k),"onUpdate:open":r[6]||=e=>a(k)?k.value=e:null,saving:e(ee),error:e(I),"next-color":D.value,onSubmit:e(z),onClose:r[7]||=e=>k.value=!1},null,8,[`open`,`saving`,`error`,`next-color`,`onSubmit`]),d(O,{open:e(B),"onUpdate:open":r[8]||=e=>a(B)?B.value=e:null,card:e(U),saving:e(V),error:e(H),"next-color":D.value,onSubmit:e(G),onClose:r[9]||=e=>B.value=!1},null,8,[`open`,`card`,`saving`,`error`,`next-color`,`onSubmit`]),d(A,{open:e(K),"onUpdate:open":r[10]||=e=>a(K)?K.value=e:null,purge:e(Y),"onUpdate:purge":r[11]||=e=>a(Y)?Y.value=e:null,card:e(X),busy:e(q),error:e(J),onConfirm:e(re),onClose:r[12]||=e=>K.value=!1},null,8,[`open`,`purge`,`card`,`busy`,`error`,`onConfirm`]),d(j,{open:$.value,"onUpdate:open":r[13]||=e=>$.value=e},null,8,[`open`]),e(s).error?(l(),m(`p`,kt,i(e(s).error),1)):v(``,!0)])}}});export{At as default};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./C6lssmvl.js";import{n as r}from"./D1MkndMZ.js";import{t as i}from"./R5Pz7BqB.js";import{t as a}from"./gUYi1hLJ2.js";var o=e({useDcwLineRun:()=>s});function s(e){let{t:o}=r(),s=a(),{lineId:c,ls:l,lineRecipesAll:u}=e,d=t(``),f=t(``),p=t(!1),m=t(``),h=t(``),g=n(()=>u.value.filter(e=>e.productId===d.value));async function _(){p.value=!0,m.value=``,h.value=``;try{if(!f.value)throw Error(o(`dcwDetail.k1b6qe0r135`));await s.startLine(c.value,f.value),m.value=o(`dcwDetail.k17jteb9186`,{p0:l.value.productName,p1:l.value.recipeName,p2:l.value.runId})}catch(e){h.value=i(e)}finally{p.value=!1}}async function v(){p.value=!0,m.value=``,h.value=``;try{let e=`${l.value.productName??``} · ${l.value.recipeName??``}`;await s.stopLine(c.value),m.value=o(`dcwDetail.kzl49pd187`,{p0:e})}catch(e){h.value=i(e)}finally{p.value=!1}}return{lineProductId:d,lineRecipeId:f,lineBusy:p,lineMsg:m,lineErr:h,lineRecipes:g,doLineStart:_,doLineStop:v}}export{o as n,s as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./C6lssmvl.js";import{n as r}from"./D1MkndMZ.js";import{t as i}from"./R5Pz7BqB.js";import{t as a}from"./DxDqd6T42.js";var o=e({useDcwLineRun:()=>s});function s(e){let{t:o}=r(),s=a(),{lineId:c,ls:l,lineRecipesAll:u}=e,d=t(``),f=t(``),p=t(!1),m=t(``),h=t(``),g=n(()=>u.value.filter(e=>e.productId===d.value));async function _(){p.value=!0,m.value=``,h.value=``;try{if(!f.value)throw Error(o(`dcwDetail.k1b6qe0r135`));await s.startLine(c.value,f.value),m.value=o(`dcwDetail.k17jteb9186`,{p0:l.value.productName,p1:l.value.recipeName,p2:l.value.runId})}catch(e){h.value=i(e)}finally{p.value=!1}}async function v(){p.value=!0,m.value=``,h.value=``;try{let e=`${l.value.productName??``} · ${l.value.recipeName??``}`;await s.stopLine(c.value),m.value=o(`dcwDetail.kzl49pd187`,{p0:e})}catch(e){h.value=i(e)}finally{p.value=!1}}return{lineProductId:d,lineRecipeId:f,lineBusy:p,lineMsg:m,lineErr:h,lineRecipes:g,doLineStart:_,doLineStop:v}}export{o as n,s as t};
@@ -1,4 +1,4 @@
1
- import{a as e}from"./BqFaZ4kS.js";import{E as t,N as n,O as r,S as i,dt as a,ft as o,g as s,mt as c,p as l,u,v as d}from"./CavpkQb0.js";import{$ as f,B as p,D as m,J as h,K as g,P as _,R as v,S as y,V as b,W as x,b as S,d as C,f as w,h as T,i as E,it as D,j as O,k,m as A,p as j,rt as M,s as N,tt as P,u as F,v as I,y as L,z as R}from"./C6lssmvl.js";import{d as z,f as B,l as V,t as H,u as U}from"./ri9UF8rk.js";import{d as W}from"./CDYLasP8.js";import{n as G}from"./Bko5adbu.js";import{n as K}from"./D1MkndMZ.js";import{t as ee}from"./Bmvt9ydE.js";import{t as te}from"./CElzwyXQ.js";import{$ as ne,Ct as re,E as ie,Mt as q,O as ae,Q as oe,Tt as se,Y as ce,Z as le,at as ue,d as de,et as fe,h as pe,j as me,jt as J,lt as he,m as ge,mt as _e,n as ve,nt as ye,ot as be,t as xe,tt as Se,u as Ce}from"./CznnUTZx.js";import{C as we,G as Te,c as Ee,l as De}from"./CUCFFL9m.js";import{a as Oe,l as ke,t as Ae}from"./CC-GEjfN.js";import{n as je,t as Me}from"./D7tEwf-o.js";import{b as Ne,i as Y,p as Pe,s as Fe,t as Ie}from"./DXgw1dVL.js";import{a as Le,i as Re,t as ze}from"./CHk9XxNi.js";import{a as Be,i as Ve,n as He,r as Ue,t as We}from"./hZG5MLjK.js";import{i as Ge,n as Ke,r as qe,t as Je}from"./D9lL3fJM2.js";import{t as Ye}from"./BklGqEto2.js";import{n as Xe,r as Ze,t as Qe}from"./vkQoYNQR2.js";import{t as $e}from"./-FhgRqJl2.js";import{t as et}from"./CzlZrfq82.js";import{t as tt}from"./lO5tpDZ52.js";import{t as nt}from"./eymRov9Y2.js";import{t as rt}from"./gh-WMxV_2.js";import{t as it}from"./rF7mggl72.js";import{n as at,t as ot}from"./C4e6_nom2.js";import{t as st}from"./vp3LtnTz2.js";import{t as ct}from"./YLYSczSq2.js";import{t as lt}from"./BBB_j2LU2.js";import{t as ut}from"./CFQRFctQ2.js";import{t as dt}from"./8M7wFbEN2.js";import{t as ft}from"./Cv-Mv7_h2.js";import{t as X}from"./BDNMzG2s.js";import{t as pt}from"./Cjo1t2IF.js";import{t as Z}from"./R5Pz7BqB.js";import{t as mt}from"./DOT-XQyi.js";import{a as Q,c as ht,i as gt,l as _t,n as vt,o as yt,r as bt,s as xt,t as St}from"./DoL9u6wu.js";import{t as Ct}from"./NfvZ5Lzv.js";import{t as wt}from"./CNs_Ozdc.js";import{t as $}from"./Aoz9xMB92.js";import{t as Tt}from"./rDvMijKA.js";import{t as Et}from"./CY_7u1ST2.js";import{t as Dt}from"./DC-2eKo62.js";import{t as Ot}from"./DiloA8vK.js";import{t as kt}from"./Du7gS8RU.js";import{t as At}from"./BRci9D_l.js";import{t as jt}from"./BfgTar9L.js";function Mt(e){let{prefixCls:t,value:n,current:r,offset:i=0}=e,a;return i&&(a={position:`absolute`,top:`${i}00%`,left:0}),S(`p`,{style:a,class:se(`${t}-only-unit`,{current:r})},[n])}function Nt(e,t,n){let r=e,i=0;for(;(r+10)%10!==t;)r+=n,i+=n;return i}var Pt=y({compatConfig:{MODE:3},name:`SingleNumber`,props:{prefixCls:String,value:String,count:Number},setup(e){let t=C(()=>Number(e.value)),n=C(()=>Math.abs(e.count)),r=s({prevValue:t.value,prevCount:n.value}),i=()=>{r.prevValue=t.value,r.prevCount=n.value},a=d();return P(t,()=>{clearTimeout(a.value),a.value=setTimeout(()=>{i()},1e3)},{flush:`post`}),R(()=>{clearTimeout(a.value)}),()=>{let a,o={},s=t.value;if(r.prevValue===s||Number.isNaN(s)||Number.isNaN(r.prevValue))a=[Mt(J(J({},e),{current:!0}))],o={transition:`none`};else{a=[];let t=s+10,i=[];for(let e=s;e<=t;e+=1)i.push(e);let c=i.findIndex(e=>e%10===r.prevValue);a=i.map((t,n)=>{let r=t%10;return Mt(J(J({},e),{value:r,offset:n-c,current:n===c}))});let l=r.prevCount<n.value?1:-1;o={transform:`translateY(${-Nt(r.prevValue,s,l)}00%)`}}return S(`span`,{class:`${e.prefixCls}-only`,style:o,onTransitionend:()=>i()},[a])}}}),Ft=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},It={prefixCls:String,count:xe.any,component:String,title:xe.any,show:Boolean},Lt=y({compatConfig:{MODE:3},name:`ScrollNumber`,inheritAttrs:!1,props:It,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i}=ve(`scroll-number`,e);return()=>{let t=J(J({},e),n),{prefixCls:a,count:o,title:s,show:c,component:l=`sup`,class:u,style:d}=t,f=Ft(t,[`prefixCls`,`count`,`title`,`show`,`component`,`class`,`style`]),p=J(J({},f),{style:d,"data-show":e.show,class:se(i.value,u),title:s}),m=o;if(o&&Number(o)%1==0){let e=String(o).split(``);m=e.map((t,n)=>S(Pt,{prefixCls:i.value,count:Number(o),value:t,key:e.length-n},null))}d&&d.borderColor&&(p.style=J(J({},d),{boxShadow:`0 0 0 1px ${d.borderColor} inset`}));let h=be(r.default?.call(r));return h&&h.length?Te(h,{class:se(`${i.value}-custom-component`)},!1):S(l,p,{default:()=>[m]})}}}),Rt=new ae(`antStatusProcessing`,{"0%":{transform:`scale(0.8)`,opacity:.5},"100%":{transform:`scale(2.4)`,opacity:0}}),zt=new ae(`antZoomBadgeIn`,{"0%":{transform:`scale(0) translate(50%, -50%)`,opacity:0},"100%":{transform:`scale(1) translate(50%, -50%)`}}),Bt=new ae(`antZoomBadgeOut`,{"0%":{transform:`scale(1) translate(50%, -50%)`},"100%":{transform:`scale(0) translate(50%, -50%)`,opacity:0}}),Vt=new ae(`antNoWrapperZoomBadgeIn`,{"0%":{transform:`scale(0)`,opacity:0},"100%":{transform:`scale(1)`}}),Ht=new ae(`antNoWrapperZoomBadgeOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0)`,opacity:0}}),Ut=new ae(`antBadgeLoadingCircle`,{"0%":{transformOrigin:`50%`},"100%":{transform:`translate(50%, -50%) rotate(360deg)`,transformOrigin:`50%`}}),Wt=e=>{let{componentCls:t,iconCls:n,antCls:r,badgeFontHeight:i,badgeShadowSize:a,badgeHeightSm:o,motionDurationSlow:s,badgeStatusSize:c,marginXS:l,badgeRibbonOffset:u}=e,d=`${r}-scroll-number`,f=`${r}-ribbon`,p=`${r}-ribbon-wrapper`,m=ke(e,(e,n)=>{let{darkColor:r}=n;return{[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r}}}}),h=ke(e,(e,t)=>{let{darkColor:n}=t;return{[`&${f}-color-${e}`]:{background:n,color:n}}});return{[t]:J(J(J(J({},pe(e)),{position:`relative`,display:`inline-block`,width:`fit-content`,lineHeight:1,[`${t}-count`]:{zIndex:e.badgeZIndex,minWidth:e.badgeHeight,height:e.badgeHeight,color:e.badgeTextColor,fontWeight:e.badgeFontWeight,fontSize:e.badgeFontSize,lineHeight:`${e.badgeHeight}px`,whiteSpace:`nowrap`,textAlign:`center`,background:e.badgeColor,borderRadius:e.badgeHeight/2,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:o,height:o,fontSize:e.badgeFontSizeSm,lineHeight:`${o}px`,borderRadius:o/2},[`${t}-multiple-words`]:{padding:`0 ${e.paddingXS}px`},[`${t}-dot`]:{zIndex:e.badgeZIndex,width:e.badgeDotSize,minWidth:e.badgeDotSize,height:e.badgeDotSize,background:e.badgeColor,borderRadius:`100%`,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`},[`${t}-dot${d}`]:{transition:`background ${s}`},[`${t}-count, ${t}-dot, ${d}-custom-component`]:{position:`absolute`,top:0,insetInlineEnd:0,transform:`translate(50%, -50%)`,transformOrigin:`100% 0%`,[`&${n}-spin`]:{animationName:Ut,animationDuration:`1s`,animationIterationCount:`infinite`,animationTimingFunction:`linear`}},[`&${t}-status`]:{lineHeight:`inherit`,verticalAlign:`baseline`,[`${t}-status-dot`]:{position:`relative`,top:-1,display:`inline-block`,width:c,height:c,verticalAlign:`middle`,borderRadius:`50%`},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:`visible`,color:e.colorPrimary,backgroundColor:e.colorPrimary,"&::after":{position:`absolute`,top:0,insetInlineStart:0,width:`100%`,height:`100%`,borderWidth:a,borderStyle:`solid`,borderColor:`inherit`,borderRadius:`50%`,animationName:Rt,animationDuration:e.badgeProcessingDuration,animationIterationCount:`infinite`,animationTimingFunction:`ease-in-out`,content:`""`}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:l,color:e.colorText,fontSize:e.fontSize}}}),m),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:zt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`${t}-zoom-leave`]:{animationName:Bt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:Vt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:Ht,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:`middle`},[`${d}-custom-component, ${t}-count`]:{transform:`none`},[`${d}-custom-component, ${d}`]:{position:`relative`,top:`auto`,display:`block`,transformOrigin:`50% 50%`}},[`${d}`]:{overflow:`hidden`,[`${d}-only`]:{position:`relative`,display:`inline-block`,height:e.badgeHeight,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`,[`> p${d}-only-unit`]:{height:e.badgeHeight,margin:0,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`}},[`${d}-symbol`]:{verticalAlign:`top`}},"&-rtl":{direction:`rtl`,[`${t}-count, ${t}-dot, ${d}-custom-component`]:{transform:`translate(-50%, -50%)`}}}),[`${p}`]:{position:`relative`},[`${f}`]:J(J(J(J({},pe(e)),{position:`absolute`,top:l,padding:`0 ${e.paddingXS}px`,color:e.colorPrimary,lineHeight:`${i}px`,whiteSpace:`nowrap`,backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${f}-text`]:{color:e.colorTextLightSolid},[`${f}-corner`]:{position:`absolute`,top:`100%`,width:u,height:u,color:`currentcolor`,border:`${u/2}px solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:`top`,filter:e.badgeRibbonCornerFilter}}),h),{[`&${f}-placement-end`]:{insetInlineEnd:-u,borderEndEndRadius:0,[`${f}-corner`]:{insetInlineEnd:0,borderInlineEndColor:`transparent`,borderBlockEndColor:`transparent`}},[`&${f}-placement-start`]:{insetInlineStart:-u,borderEndStartRadius:0,[`${f}-corner`]:{insetInlineStart:0,borderBlockEndColor:`transparent`,borderInlineStartColor:`transparent`}},"&-rtl":{direction:`rtl`}})}},Gt=de(`Badge`,e=>{let{fontSize:t,lineHeight:n,fontSizeSM:r,lineWidth:i,marginXS:a,colorBorderBg:o}=e,s=Math.round(t*n),c=i,l=s-2*c,u=e.colorBgContainer,d=r,f=e.colorError,p=e.colorErrorHover,m=t,h=r/2,g=r,_=r/2;return[Wt(Ce(e,{badgeFontHeight:s,badgeShadowSize:c,badgeZIndex:`auto`,badgeHeight:l,badgeTextColor:u,badgeFontWeight:`normal`,badgeFontSize:d,badgeColor:f,badgeColorHover:p,badgeShadowColor:o,badgeHeightSm:m,badgeDotSize:h,badgeFontSizeSm:g,badgeStatusSize:_,badgeProcessingDuration:`1.2s`,badgeRibbonOffset:a,badgeRibbonCornerTransform:`scaleY(0.75)`,badgeRibbonCornerFilter:`brightness(75%)`}))]}),Kt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},qt=y({compatConfig:{MODE:3},name:`ABadgeRibbon`,inheritAttrs:!1,props:{prefix:String,color:{type:String},text:xe.any,placement:{type:String,default:`end`}},slots:Object,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i,direction:a}=ve(`ribbon`,e),[o,s]=Gt(i),c=C(()=>Oe(e.color,!1)),l=C(()=>[i.value,`${i.value}-placement-${e.placement}`,{[`${i.value}-rtl`]:a.value===`rtl`,[`${i.value}-color-${e.color}`]:c.value}]);return()=>{let{class:t,style:a}=n,u=Kt(n,[`class`,`style`]),d={},f={};return e.color&&!c.value&&(d.background=e.color,f.color=e.color),o(S(`div`,q({class:`${i.value}-wrapper ${s.value}`},u),[r.default?.call(r),S(`div`,{class:[l.value,t,s.value],style:J(J({},d),a)},[S(`span`,{class:`${i.value}-text`},[e.text||r.text?.call(r)]),S(`div`,{class:`${i.value}-corner`,style:f},null)])]))}}}),Jt=y({compatConfig:{MODE:3},name:`ABadge`,Ribbon:qt,inheritAttrs:!1,props:{count:xe.any.def(null),showZero:{type:Boolean,default:void 0},overflowCount:{type:Number,default:99},dot:{type:Boolean,default:void 0},prefixCls:String,scrollNumberPrefixCls:String,status:{type:String},size:{type:String,default:`default`},color:String,text:xe.any,offset:Array,numberStyle:{type:Object,default:void 0},title:String},slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=ve(`badge`,e),[o,s]=Gt(i),c=C(()=>e.count>e.overflowCount?`${e.overflowCount}+`:e.count),l=C(()=>c.value===`0`||c.value===0),u=C(()=>e.count===null||l.value&&!e.showZero),f=C(()=>(e.status!==null&&e.status!==void 0||e.color!==null&&e.color!==void 0)&&u.value),p=C(()=>e.dot&&!l.value),m=C(()=>p.value?``:c.value),h=C(()=>(m.value===null||m.value===void 0||m.value===``||l.value&&!e.showZero)&&!p.value),g=d(e.count),_=d(m.value),v=d(p.value);P([()=>e.count,m,p],()=>{h.value||(g.value=e.count,_.value=m.value,v.value=p.value)},{immediate:!0});let y=C(()=>Oe(e.color,!1)),b=C(()=>({[`${i.value}-status-dot`]:f.value,[`${i.value}-status-${e.status}`]:!!e.status,[`${i.value}-color-${e.color}`]:y.value})),x=C(()=>e.color&&!y.value?{background:e.color,color:e.color}:{}),w=C(()=>({[`${i.value}-dot`]:v.value,[`${i.value}-count`]:!v.value,[`${i.value}-count-sm`]:e.size===`small`,[`${i.value}-multiple-words`]:!v.value&&_.value&&_.value.toString().length>1,[`${i.value}-status-${e.status}`]:!!e.status,[`${i.value}-color-${e.color}`]:y.value}));return()=>{let{offset:t,title:c,color:l}=e,u=r.style,d=_e(n,e,`text`),p=i.value,m=g.value,v=he(n.default?.call(n));v=v.length?v:null;let C=!!(!h.value||n.count),T=(()=>{if(!t)return J({},u);let e={marginTop:tt(t[1])?`${t[1]}px`:t[1]};return a.value===`rtl`?e.left=`${parseInt(t[0],10)}px`:e.right=`${-parseInt(t[0],10)}px`,J(J({},e),u)})(),E=c??(typeof m==`string`||typeof m==`number`?m:void 0),O=C||!d?null:S(`span`,{class:`${p}-status-text`},[d]),k=typeof m==`object`||m===void 0&&n.count?Te(m??n.count?.call(n),{style:T},!1):null,A=se(p,{[`${p}-status`]:f.value,[`${p}-not-a-wrapper`]:!v,[`${p}-rtl`]:a.value===`rtl`},r.class,s.value);if(!v&&f.value){let e=T.color;return o(S(`span`,q(q({},r),{},{class:A,style:T}),[S(`span`,{class:b.value,style:x.value},null),S(`span`,{style:{color:e},class:`${p}-status-text`},[d])]))}let j=we(v?`${p}-zoom`:``,{appear:!1}),M=J(J({},T),e.numberStyle);return l&&!y.value&&(M||={},M.background=l),o(S(`span`,q(q({},r),{},{class:A}),[v,S(H,j,{default:()=>[D(S(Lt,{prefixCls:e.scrollNumberPrefixCls,show:C,class:w.value,count:_.value,title:E,style:M,key:`scrollNumber`},{default:()=>[k]}),[[U,C]])]}),O]))}}});Jt.install=function(e){return e.component(Jt.name,Jt),e.component(qt.name,qt),e};var Yt=Jt,Xt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Zt=y({compatConfig:{MODE:3},name:`ABreadcrumbItem`,inheritAttrs:!1,__ANT_BREADCRUMB_ITEM:!0,props:{prefixCls:String,href:String,separator:xe.any,dropdownProps:fe(),overlay:xe.any,onClick:oe()},slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i}=t,{prefixCls:a}=ve(`breadcrumb`,e),o=(t,r)=>{let i=_e(n,e,`overlay`);return i?S(nt,q(q({},e.dropdownProps),{},{overlay:i,placement:`bottom`}),{default:()=>[S(`span`,{class:`${r}-overlay-link`},[t,S(Le,null,null)])]}):t},s=e=>{i(`click`,e)};return()=>{let t=_e(n,e,`separator`)??`/`,i=_e(n,e),{class:c,style:l}=r,u=Xt(r,[`class`,`style`]),d;return d=e.href===void 0?S(`span`,q({class:`${a.value}-link`,onClick:s},u),[i]):S(`a`,q({class:`${a.value}-link`,onClick:s},u),[i]),d=o(d,a.value),i==null?null:S(`li`,{class:c,style:l},[d,t&&S(`span`,{class:`${a.value}-separator`},[t])])}}}),Qt=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:J(J({},pe(e)),{color:e.breadcrumbBaseColor,fontSize:e.breadcrumbFontSize,[n]:{fontSize:e.breadcrumbIconFontSize},ol:{display:`flex`,flexWrap:`wrap`,margin:0,padding:0,listStyle:`none`},a:J({color:e.breadcrumbLinkColor,transition:`color ${e.motionDurationMid}`,padding:`0 ${e.paddingXXS}px`,borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,marginInline:-e.marginXXS,"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover}},ge(e)),"li:last-child":{color:e.breadcrumbLastItemColor,[`& > ${t}-separator`]:{display:`none`}},[`${t}-separator`]:{marginInline:e.breadcrumbSeparatorMargin,color:e.breadcrumbSeparatorColor},[`${t}-link`]:{[`
1
+ import{a as e}from"./BqFaZ4kS.js";import{E as t,N as n,O as r,S as i,dt as a,ft as o,g as s,mt as c,p as l,u,v as d}from"./CavpkQb0.js";import{$ as f,B as p,D as m,J as h,K as g,P as _,R as v,S as y,V as b,W as x,b as S,d as C,f as w,h as T,i as E,it as D,j as O,k,m as A,p as j,rt as M,s as N,tt as P,u as F,v as I,y as L,z as R}from"./C6lssmvl.js";import{d as z,f as B,l as V,t as H,u as U}from"./ri9UF8rk.js";import{d as W}from"./CDYLasP8.js";import{n as G}from"./Bko5adbu.js";import{n as K}from"./D1MkndMZ.js";import{t as ee}from"./Bmvt9ydE.js";import{t as te}from"./CElzwyXQ.js";import{$ as ne,Ct as re,E as ie,Mt as q,O as ae,Q as oe,Tt as se,Y as ce,Z as le,at as ue,d as de,et as fe,h as pe,j as me,jt as J,lt as he,m as ge,mt as _e,n as ve,nt as ye,ot as be,t as xe,tt as Se,u as Ce}from"./CznnUTZx.js";import{C as we,G as Te,c as Ee,l as De}from"./CUCFFL9m.js";import{a as Oe,l as ke,t as Ae}from"./CC-GEjfN.js";import{n as je,t as Me}from"./D7tEwf-o.js";import{b as Ne,i as Y,p as Pe,s as Fe,t as Ie}from"./DXgw1dVL.js";import{a as Le,i as Re,t as ze}from"./CHk9XxNi.js";import{a as Be,i as Ve,n as He,r as Ue,t as We}from"./hZG5MLjK.js";import{i as Ge,n as Ke,r as qe,t as Je}from"./D9lL3fJM2.js";import{t as Ye}from"./BklGqEto2.js";import{n as Xe,r as Ze,t as Qe}from"./vkQoYNQR2.js";import{t as $e}from"./-FhgRqJl2.js";import{t as et}from"./CzlZrfq82.js";import{t as tt}from"./lO5tpDZ52.js";import{t as nt}from"./eymRov9Y2.js";import{t as rt}from"./gh-WMxV_2.js";import{t as it}from"./rF7mggl72.js";import{n as at,t as ot}from"./C4e6_nom2.js";import{t as st}from"./vp3LtnTz2.js";import{t as ct}from"./YLYSczSq2.js";import{t as lt}from"./BBB_j2LU2.js";import{t as ut}from"./CFQRFctQ2.js";import{t as dt}from"./8M7wFbEN2.js";import{t as ft}from"./Cv-Mv7_h2.js";import{t as X}from"./BDNMzG2s.js";import{t as pt}from"./Cjo1t2IF.js";import{t as Z}from"./R5Pz7BqB.js";import{t as mt}from"./DOT-XQyi.js";import{a as Q,c as ht,i as gt,l as _t,n as vt,o as yt,r as bt,s as xt,t as St}from"./DoL9u6wu.js";import{t as Ct}from"./NfvZ5Lzv.js";import{t as wt}from"./CNs_Ozdc.js";import{t as $}from"./Aoz9xMB92.js";import{t as Tt}from"./rDvMijKA.js";import{t as Et}from"./BI9jj13f2.js";import{t as Dt}from"./DC-2eKo62.js";import{t as Ot}from"./DiloA8vK.js";import{t as kt}from"./Du7gS8RU.js";import{t as At}from"./BRci9D_l.js";import{t as jt}from"./BfgTar9L.js";function Mt(e){let{prefixCls:t,value:n,current:r,offset:i=0}=e,a;return i&&(a={position:`absolute`,top:`${i}00%`,left:0}),S(`p`,{style:a,class:se(`${t}-only-unit`,{current:r})},[n])}function Nt(e,t,n){let r=e,i=0;for(;(r+10)%10!==t;)r+=n,i+=n;return i}var Pt=y({compatConfig:{MODE:3},name:`SingleNumber`,props:{prefixCls:String,value:String,count:Number},setup(e){let t=C(()=>Number(e.value)),n=C(()=>Math.abs(e.count)),r=s({prevValue:t.value,prevCount:n.value}),i=()=>{r.prevValue=t.value,r.prevCount=n.value},a=d();return P(t,()=>{clearTimeout(a.value),a.value=setTimeout(()=>{i()},1e3)},{flush:`post`}),R(()=>{clearTimeout(a.value)}),()=>{let a,o={},s=t.value;if(r.prevValue===s||Number.isNaN(s)||Number.isNaN(r.prevValue))a=[Mt(J(J({},e),{current:!0}))],o={transition:`none`};else{a=[];let t=s+10,i=[];for(let e=s;e<=t;e+=1)i.push(e);let c=i.findIndex(e=>e%10===r.prevValue);a=i.map((t,n)=>{let r=t%10;return Mt(J(J({},e),{value:r,offset:n-c,current:n===c}))});let l=r.prevCount<n.value?1:-1;o={transform:`translateY(${-Nt(r.prevValue,s,l)}00%)`}}return S(`span`,{class:`${e.prefixCls}-only`,style:o,onTransitionend:()=>i()},[a])}}}),Ft=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},It={prefixCls:String,count:xe.any,component:String,title:xe.any,show:Boolean},Lt=y({compatConfig:{MODE:3},name:`ScrollNumber`,inheritAttrs:!1,props:It,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i}=ve(`scroll-number`,e);return()=>{let t=J(J({},e),n),{prefixCls:a,count:o,title:s,show:c,component:l=`sup`,class:u,style:d}=t,f=Ft(t,[`prefixCls`,`count`,`title`,`show`,`component`,`class`,`style`]),p=J(J({},f),{style:d,"data-show":e.show,class:se(i.value,u),title:s}),m=o;if(o&&Number(o)%1==0){let e=String(o).split(``);m=e.map((t,n)=>S(Pt,{prefixCls:i.value,count:Number(o),value:t,key:e.length-n},null))}d&&d.borderColor&&(p.style=J(J({},d),{boxShadow:`0 0 0 1px ${d.borderColor} inset`}));let h=be(r.default?.call(r));return h&&h.length?Te(h,{class:se(`${i.value}-custom-component`)},!1):S(l,p,{default:()=>[m]})}}}),Rt=new ae(`antStatusProcessing`,{"0%":{transform:`scale(0.8)`,opacity:.5},"100%":{transform:`scale(2.4)`,opacity:0}}),zt=new ae(`antZoomBadgeIn`,{"0%":{transform:`scale(0) translate(50%, -50%)`,opacity:0},"100%":{transform:`scale(1) translate(50%, -50%)`}}),Bt=new ae(`antZoomBadgeOut`,{"0%":{transform:`scale(1) translate(50%, -50%)`},"100%":{transform:`scale(0) translate(50%, -50%)`,opacity:0}}),Vt=new ae(`antNoWrapperZoomBadgeIn`,{"0%":{transform:`scale(0)`,opacity:0},"100%":{transform:`scale(1)`}}),Ht=new ae(`antNoWrapperZoomBadgeOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0)`,opacity:0}}),Ut=new ae(`antBadgeLoadingCircle`,{"0%":{transformOrigin:`50%`},"100%":{transform:`translate(50%, -50%) rotate(360deg)`,transformOrigin:`50%`}}),Wt=e=>{let{componentCls:t,iconCls:n,antCls:r,badgeFontHeight:i,badgeShadowSize:a,badgeHeightSm:o,motionDurationSlow:s,badgeStatusSize:c,marginXS:l,badgeRibbonOffset:u}=e,d=`${r}-scroll-number`,f=`${r}-ribbon`,p=`${r}-ribbon-wrapper`,m=ke(e,(e,n)=>{let{darkColor:r}=n;return{[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r}}}}),h=ke(e,(e,t)=>{let{darkColor:n}=t;return{[`&${f}-color-${e}`]:{background:n,color:n}}});return{[t]:J(J(J(J({},pe(e)),{position:`relative`,display:`inline-block`,width:`fit-content`,lineHeight:1,[`${t}-count`]:{zIndex:e.badgeZIndex,minWidth:e.badgeHeight,height:e.badgeHeight,color:e.badgeTextColor,fontWeight:e.badgeFontWeight,fontSize:e.badgeFontSize,lineHeight:`${e.badgeHeight}px`,whiteSpace:`nowrap`,textAlign:`center`,background:e.badgeColor,borderRadius:e.badgeHeight/2,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:o,height:o,fontSize:e.badgeFontSizeSm,lineHeight:`${o}px`,borderRadius:o/2},[`${t}-multiple-words`]:{padding:`0 ${e.paddingXS}px`},[`${t}-dot`]:{zIndex:e.badgeZIndex,width:e.badgeDotSize,minWidth:e.badgeDotSize,height:e.badgeDotSize,background:e.badgeColor,borderRadius:`100%`,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`},[`${t}-dot${d}`]:{transition:`background ${s}`},[`${t}-count, ${t}-dot, ${d}-custom-component`]:{position:`absolute`,top:0,insetInlineEnd:0,transform:`translate(50%, -50%)`,transformOrigin:`100% 0%`,[`&${n}-spin`]:{animationName:Ut,animationDuration:`1s`,animationIterationCount:`infinite`,animationTimingFunction:`linear`}},[`&${t}-status`]:{lineHeight:`inherit`,verticalAlign:`baseline`,[`${t}-status-dot`]:{position:`relative`,top:-1,display:`inline-block`,width:c,height:c,verticalAlign:`middle`,borderRadius:`50%`},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:`visible`,color:e.colorPrimary,backgroundColor:e.colorPrimary,"&::after":{position:`absolute`,top:0,insetInlineStart:0,width:`100%`,height:`100%`,borderWidth:a,borderStyle:`solid`,borderColor:`inherit`,borderRadius:`50%`,animationName:Rt,animationDuration:e.badgeProcessingDuration,animationIterationCount:`infinite`,animationTimingFunction:`ease-in-out`,content:`""`}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:l,color:e.colorText,fontSize:e.fontSize}}}),m),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:zt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`${t}-zoom-leave`]:{animationName:Bt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:Vt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:Ht,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:`middle`},[`${d}-custom-component, ${t}-count`]:{transform:`none`},[`${d}-custom-component, ${d}`]:{position:`relative`,top:`auto`,display:`block`,transformOrigin:`50% 50%`}},[`${d}`]:{overflow:`hidden`,[`${d}-only`]:{position:`relative`,display:`inline-block`,height:e.badgeHeight,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`,[`> p${d}-only-unit`]:{height:e.badgeHeight,margin:0,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`}},[`${d}-symbol`]:{verticalAlign:`top`}},"&-rtl":{direction:`rtl`,[`${t}-count, ${t}-dot, ${d}-custom-component`]:{transform:`translate(-50%, -50%)`}}}),[`${p}`]:{position:`relative`},[`${f}`]:J(J(J(J({},pe(e)),{position:`absolute`,top:l,padding:`0 ${e.paddingXS}px`,color:e.colorPrimary,lineHeight:`${i}px`,whiteSpace:`nowrap`,backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${f}-text`]:{color:e.colorTextLightSolid},[`${f}-corner`]:{position:`absolute`,top:`100%`,width:u,height:u,color:`currentcolor`,border:`${u/2}px solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:`top`,filter:e.badgeRibbonCornerFilter}}),h),{[`&${f}-placement-end`]:{insetInlineEnd:-u,borderEndEndRadius:0,[`${f}-corner`]:{insetInlineEnd:0,borderInlineEndColor:`transparent`,borderBlockEndColor:`transparent`}},[`&${f}-placement-start`]:{insetInlineStart:-u,borderEndStartRadius:0,[`${f}-corner`]:{insetInlineStart:0,borderBlockEndColor:`transparent`,borderInlineStartColor:`transparent`}},"&-rtl":{direction:`rtl`}})}},Gt=de(`Badge`,e=>{let{fontSize:t,lineHeight:n,fontSizeSM:r,lineWidth:i,marginXS:a,colorBorderBg:o}=e,s=Math.round(t*n),c=i,l=s-2*c,u=e.colorBgContainer,d=r,f=e.colorError,p=e.colorErrorHover,m=t,h=r/2,g=r,_=r/2;return[Wt(Ce(e,{badgeFontHeight:s,badgeShadowSize:c,badgeZIndex:`auto`,badgeHeight:l,badgeTextColor:u,badgeFontWeight:`normal`,badgeFontSize:d,badgeColor:f,badgeColorHover:p,badgeShadowColor:o,badgeHeightSm:m,badgeDotSize:h,badgeFontSizeSm:g,badgeStatusSize:_,badgeProcessingDuration:`1.2s`,badgeRibbonOffset:a,badgeRibbonCornerTransform:`scaleY(0.75)`,badgeRibbonCornerFilter:`brightness(75%)`}))]}),Kt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},qt=y({compatConfig:{MODE:3},name:`ABadgeRibbon`,inheritAttrs:!1,props:{prefix:String,color:{type:String},text:xe.any,placement:{type:String,default:`end`}},slots:Object,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i,direction:a}=ve(`ribbon`,e),[o,s]=Gt(i),c=C(()=>Oe(e.color,!1)),l=C(()=>[i.value,`${i.value}-placement-${e.placement}`,{[`${i.value}-rtl`]:a.value===`rtl`,[`${i.value}-color-${e.color}`]:c.value}]);return()=>{let{class:t,style:a}=n,u=Kt(n,[`class`,`style`]),d={},f={};return e.color&&!c.value&&(d.background=e.color,f.color=e.color),o(S(`div`,q({class:`${i.value}-wrapper ${s.value}`},u),[r.default?.call(r),S(`div`,{class:[l.value,t,s.value],style:J(J({},d),a)},[S(`span`,{class:`${i.value}-text`},[e.text||r.text?.call(r)]),S(`div`,{class:`${i.value}-corner`,style:f},null)])]))}}}),Jt=y({compatConfig:{MODE:3},name:`ABadge`,Ribbon:qt,inheritAttrs:!1,props:{count:xe.any.def(null),showZero:{type:Boolean,default:void 0},overflowCount:{type:Number,default:99},dot:{type:Boolean,default:void 0},prefixCls:String,scrollNumberPrefixCls:String,status:{type:String},size:{type:String,default:`default`},color:String,text:xe.any,offset:Array,numberStyle:{type:Object,default:void 0},title:String},slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=ve(`badge`,e),[o,s]=Gt(i),c=C(()=>e.count>e.overflowCount?`${e.overflowCount}+`:e.count),l=C(()=>c.value===`0`||c.value===0),u=C(()=>e.count===null||l.value&&!e.showZero),f=C(()=>(e.status!==null&&e.status!==void 0||e.color!==null&&e.color!==void 0)&&u.value),p=C(()=>e.dot&&!l.value),m=C(()=>p.value?``:c.value),h=C(()=>(m.value===null||m.value===void 0||m.value===``||l.value&&!e.showZero)&&!p.value),g=d(e.count),_=d(m.value),v=d(p.value);P([()=>e.count,m,p],()=>{h.value||(g.value=e.count,_.value=m.value,v.value=p.value)},{immediate:!0});let y=C(()=>Oe(e.color,!1)),b=C(()=>({[`${i.value}-status-dot`]:f.value,[`${i.value}-status-${e.status}`]:!!e.status,[`${i.value}-color-${e.color}`]:y.value})),x=C(()=>e.color&&!y.value?{background:e.color,color:e.color}:{}),w=C(()=>({[`${i.value}-dot`]:v.value,[`${i.value}-count`]:!v.value,[`${i.value}-count-sm`]:e.size===`small`,[`${i.value}-multiple-words`]:!v.value&&_.value&&_.value.toString().length>1,[`${i.value}-status-${e.status}`]:!!e.status,[`${i.value}-color-${e.color}`]:y.value}));return()=>{let{offset:t,title:c,color:l}=e,u=r.style,d=_e(n,e,`text`),p=i.value,m=g.value,v=he(n.default?.call(n));v=v.length?v:null;let C=!!(!h.value||n.count),T=(()=>{if(!t)return J({},u);let e={marginTop:tt(t[1])?`${t[1]}px`:t[1]};return a.value===`rtl`?e.left=`${parseInt(t[0],10)}px`:e.right=`${-parseInt(t[0],10)}px`,J(J({},e),u)})(),E=c??(typeof m==`string`||typeof m==`number`?m:void 0),O=C||!d?null:S(`span`,{class:`${p}-status-text`},[d]),k=typeof m==`object`||m===void 0&&n.count?Te(m??n.count?.call(n),{style:T},!1):null,A=se(p,{[`${p}-status`]:f.value,[`${p}-not-a-wrapper`]:!v,[`${p}-rtl`]:a.value===`rtl`},r.class,s.value);if(!v&&f.value){let e=T.color;return o(S(`span`,q(q({},r),{},{class:A,style:T}),[S(`span`,{class:b.value,style:x.value},null),S(`span`,{style:{color:e},class:`${p}-status-text`},[d])]))}let j=we(v?`${p}-zoom`:``,{appear:!1}),M=J(J({},T),e.numberStyle);return l&&!y.value&&(M||={},M.background=l),o(S(`span`,q(q({},r),{},{class:A}),[v,S(H,j,{default:()=>[D(S(Lt,{prefixCls:e.scrollNumberPrefixCls,show:C,class:w.value,count:_.value,title:E,style:M,key:`scrollNumber`},{default:()=>[k]}),[[U,C]])]}),O]))}}});Jt.install=function(e){return e.component(Jt.name,Jt),e.component(qt.name,qt),e};var Yt=Jt,Xt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Zt=y({compatConfig:{MODE:3},name:`ABreadcrumbItem`,inheritAttrs:!1,__ANT_BREADCRUMB_ITEM:!0,props:{prefixCls:String,href:String,separator:xe.any,dropdownProps:fe(),overlay:xe.any,onClick:oe()},slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i}=t,{prefixCls:a}=ve(`breadcrumb`,e),o=(t,r)=>{let i=_e(n,e,`overlay`);return i?S(nt,q(q({},e.dropdownProps),{},{overlay:i,placement:`bottom`}),{default:()=>[S(`span`,{class:`${r}-overlay-link`},[t,S(Le,null,null)])]}):t},s=e=>{i(`click`,e)};return()=>{let t=_e(n,e,`separator`)??`/`,i=_e(n,e),{class:c,style:l}=r,u=Xt(r,[`class`,`style`]),d;return d=e.href===void 0?S(`span`,q({class:`${a.value}-link`,onClick:s},u),[i]):S(`a`,q({class:`${a.value}-link`,onClick:s},u),[i]),d=o(d,a.value),i==null?null:S(`li`,{class:c,style:l},[d,t&&S(`span`,{class:`${a.value}-separator`},[t])])}}}),Qt=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:J(J({},pe(e)),{color:e.breadcrumbBaseColor,fontSize:e.breadcrumbFontSize,[n]:{fontSize:e.breadcrumbIconFontSize},ol:{display:`flex`,flexWrap:`wrap`,margin:0,padding:0,listStyle:`none`},a:J({color:e.breadcrumbLinkColor,transition:`color ${e.motionDurationMid}`,padding:`0 ${e.paddingXXS}px`,borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,marginInline:-e.marginXXS,"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover}},ge(e)),"li:last-child":{color:e.breadcrumbLastItemColor,[`& > ${t}-separator`]:{display:`none`}},[`${t}-separator`]:{marginInline:e.breadcrumbSeparatorMargin,color:e.breadcrumbSeparatorColor},[`${t}-link`]:{[`
2
2
  > ${n} + span,
3
3
  > ${n} + a
4
4
  `]:{marginInlineStart:e.marginXXS}},[`${t}-overlay-link`]:{borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,padding:`0 ${e.paddingXXS}px`,marginInline:-e.marginXXS,[`> ${n}`]:{marginInlineStart:e.marginXXS,fontSize:e.fontSizeIcon},"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover,a:{color:e.breadcrumbLinkColorHover}},a:{"&:hover":{backgroundColor:`transparent`}}},[`&${e.componentCls}-rtl`]:{direction:`rtl`}})}},$t=de(`Breadcrumb`,e=>[Qt(Ce(e,{breadcrumbBaseColor:e.colorTextDescription,breadcrumbFontSize:e.fontSize,breadcrumbIconFontSize:e.fontSize,breadcrumbLinkColor:e.colorTextDescription,breadcrumbLinkColorHover:e.colorText,breadcrumbLastItemColor:e.colorText,breadcrumbSeparatorMargin:e.marginXS,breadcrumbSeparatorColor:e.colorTextDescription}))]),en=()=>({prefixCls:String,routes:{type:Array},params:xe.any,separator:xe.any,itemRender:{type:Function}});function tn(e,t){if(!e.breadcrumbName)return null;let n=Object.keys(t).join(`|`);return e.breadcrumbName.replace(RegExp(`:(${n})`,`g`),(e,n)=>t[n]||e)}function nn(e){let{route:t,params:n,routes:r,paths:i}=e,a=r.indexOf(t)===r.length-1,o=tn(t,n);return a?S(`span`,null,[o]):S(`a`,{href:`#/${i.join(`/`)}`},[o])}var rn=y({compatConfig:{MODE:3},name:`ABreadcrumb`,inheritAttrs:!1,props:en(),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=ve(`breadcrumb`,e),[o,s]=$t(i),c=(e,t)=>(e=(e||``).replace(/^\//,``),Object.keys(t).forEach(n=>{e=e.replace(`:${n}`,t[n])}),e),l=(e,t,n)=>{let r=[...e],i=c(t||``,n);return i&&r.push(i),r},u=e=>{let{routes:t=[],params:n={},separator:r,itemRender:i=nn}=e,a=[];return t.map(e=>{let o=c(e.path,n);o&&a.push(o);let s=[...a],u=null;e.children&&e.children.length&&(u=S(Ye,{items:e.children.map(e=>({key:e.path||e.breadcrumbName,label:i({route:e,params:n,routes:t,paths:l(s,e.path,n)})}))},null));let d={separator:r};return u&&(d.overlay=u),S(Zt,q(q({},d),{},{key:o||e.breadcrumbName}),{default:()=>[i({route:e,params:n,routes:t,paths:s})]})})};return()=>{let t,{routes:c,params:l={}}=e,d=he(_e(n,e)),f=_e(n,e,`separator`)??`/`,p=e.itemRender||n.itemRender||nn;c&&c.length>0?t=u({routes:c,params:l,separator:f,itemRender:p}):d.length&&(t=d.map((e,t)=>(me(typeof e.type==`object`&&(e.type.__ANT_BREADCRUMB_ITEM||e.type.__ANT_BREADCRUMB_SEPARATOR),`Breadcrumb`,`Only accepts Breadcrumb.Item and Breadcrumb.Separator as it's children`),F(e,{separator:f,key:t}))));let m={[i.value]:!0,[`${i.value}-rtl`]:a.value===`rtl`,[`${r.class}`]:!!r.class,[s.value]:!0};return o(S(`nav`,q(q({},r),{},{class:m}),[S(`ol`,null,[t])]))}}}),an=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},on=y({compatConfig:{MODE:3},name:`ABreadcrumbSeparator`,__ANT_BREADCRUMB_SEPARATOR:!0,inheritAttrs:!1,props:{prefixCls:String},setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i}=ve(`breadcrumb`,e);return()=>{let{separator:e,class:t}=r,a=an(r,[`separator`,`class`]),o=he(n.default?.call(n));return S(`span`,q({class:[`${i.value}-separator`,t]},a),[o.length>0?o:`/`])}}});rn.Item=Zt,rn.Separator=on,rn.install=function(e){return e.component(rn.name,rn),e.component(Zt.name,Zt),e.component(on.name,on),e};var sn=rn,cn=[`normal`,`exception`,`active`,`success`],ln=()=>({prefixCls:String,type:ye(),percent:Number,format:ne(),status:ye(),showInfo:le(),strokeWidth:Number,strokeLinecap:ye(),strokeColor:ce(),trailColor:String,width:Number,success:fe(),gapDegree:Number,gapPosition:ye(),size:Se([String,Number,Array]),steps:Number,successPercent:Number,title:String,progressStatus:ye()});function un(e){return!e||e<0?0:e>100?100:e}function dn(e){let{success:t,successPercent:n}=e,r=n;return t&&`progress`in t&&(Ne(!1,`Progress`,"`success.progress` is deprecated. Please use `success.percent` instead."),r=t.progress),t&&`percent`in t&&(r=t.percent),r}function fn(e){let{percent:t,success:n,successPercent:r}=e,i=un(dn({success:n,successPercent:r}));return[i,un(un(t)-i)]}function pn(e){let{success:t={},strokeColor:n}=e,{strokeColor:r}=t;return[r||ie.green,n||null]}var mn=(e,t,n)=>{let r=-1,i=-1;if(t===`step`){let t=n.steps,a=n.strokeWidth;typeof e==`string`||e===void 0?(r=e===`small`?2:14,i=a??8):typeof e==`number`?[r,i]=[e,e]:[r=14,i=8]=e,r*=t}else if(t===`line`){let t=n?.strokeWidth;typeof e==`string`||e===void 0?i=t||(e===`small`?6:8):typeof e==`number`?[r,i]=[e,e]:[r=-1,i=8]=e}else(t===`circle`||t===`dashboard`)&&(typeof e==`string`||e===void 0?[r,i]=e===`small`?[60,60]:[120,120]:typeof e==`number`?[r,i]=[e,e]:(r=e[0]??e[1]??120,i=e[0]??e[1]??120));return{width:r,height:i}},hn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},gn=()=>J(J({},ln()),{strokeColor:ce(),direction:ye()}),_n=e=>{let t=[];return Object.keys(e).forEach(n=>{let r=parseFloat(n.replace(/%/g,``));isNaN(r)||t.push({key:r,value:e[n]})}),t=t.sort((e,t)=>e.key-t.key),t.map(e=>{let{key:t,value:n}=e;return`${n} ${t}%`}).join(`, `)},vn=(e,t)=>{let{from:n=ie.blue,to:r=ie.blue,direction:i=t===`rtl`?`to left`:`to right`}=e,a=hn(e,[`from`,`to`,`direction`]);return Object.keys(a).length===0?{backgroundImage:`linear-gradient(${i}, ${n}, ${r})`}:{backgroundImage:`linear-gradient(${i}, ${_n(a)})`}},yn=y({compatConfig:{MODE:3},name:`ProgressLine`,inheritAttrs:!1,props:gn(),setup(e,t){let{slots:n,attrs:r}=t,i=C(()=>{let{strokeColor:t,direction:n}=e;return t&&typeof t!=`string`?vn(t,n):{backgroundColor:t}}),a=C(()=>e.strokeLinecap===`square`||e.strokeLinecap===`butt`?0:void 0),o=C(()=>e.trailColor?{backgroundColor:e.trailColor}:void 0),s=C(()=>e.size??[-1,e.strokeWidth||(e.size===`small`?6:8)]),c=C(()=>mn(s.value,`line`,{strokeWidth:e.strokeWidth})),l=C(()=>{let{percent:t}=e;return J({width:`${un(t)}%`,height:`${c.value.height}px`,borderRadius:a.value},i.value)}),u=C(()=>dn(e)),d=C(()=>{let{success:t}=e;return{width:`${un(u.value)}%`,height:`${c.value.height}px`,borderRadius:a.value,backgroundColor:t?.strokeColor}}),f={width:c.value.width<0?`100%`:c.value.width,height:`${c.value.height}px`};return()=>S(E,null,[S(`div`,q(q({},r),{},{class:[`${e.prefixCls}-outer`,r.class],style:[r.style,f]}),[S(`div`,{class:`${e.prefixCls}-inner`,style:o.value},[S(`div`,{class:`${e.prefixCls}-bg`,style:l.value},null),u.value===void 0?null:S(`div`,{class:`${e.prefixCls}-success-bg`,style:d.value},null)])]),n.default?.call(n)])}}),bn={percent:0,prefixCls:`vc-progress`,strokeColor:`#2db7f5`,strokeLinecap:`round`,strokeWidth:1,trailColor:`#D9D9D9`,trailWidth:1},xn=e=>{let t=d(null);return p(()=>{let n=Date.now(),r=!1;e.value.forEach(e=>{let i=e?.$el||e;if(!i)return;r=!0;let a=i.style;a.transitionDuration=`.3s, .3s, .3s, .06s`,t.value&&n-t.value<100&&(a.transitionDuration=`0s, 0s`)}),r&&(t.value=Date.now())}),e},Sn={gapDegree:Number,gapPosition:{type:String},percent:{type:[Array,Number]},prefixCls:String,strokeColor:{type:[Object,String,Array]},strokeLinecap:{type:String},strokeWidth:Number,trailColor:String,trailWidth:Number,transition:String},Cn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},wn=0;function Tn(e){return+e.replace(`%`,``)}function En(e){return Array.isArray(e)?e:[e]}function Dn(e,t,n,r){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a=arguments.length>5?arguments[5]:void 0,o=50-r/2,s=0,c=-o,l=0,u=-2*o;switch(a){case`left`:s=-o,c=0,l=2*o,u=0;break;case`right`:s=o,c=0,l=-2*o,u=0;break;case`bottom`:c=o,u=2*o}let d=`M 50,50 m ${s},${c}
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{t as n}from"./R5Pz7BqB.js";import{t as r}from"./gUYi1hLJ2.js";var i=e({useDcwLineMutations:()=>a});function a(){let e=r(),i=t(!1),a=t(!1),o=t(``);function s(){o.value=``,i.value=!0}async function c(t){a.value=!0,o.value=``;try{await e.createLine(t),i.value=!1}catch(e){o.value=n(e)}finally{a.value=!1}}let l=t(!1),u=t(!1),d=t(``),f=t(null);function p(e){f.value=e,d.value=``,l.value=!0}async function m(t,r){u.value=!0,d.value=``;try{await e.updateLine(t,r),l.value=!1}catch(e){d.value=n(e)}finally{u.value=!1}}let h=t(!1),g=t(!1),_=t(``),v=t(!0),y=t(null);function b(e){y.value=e,v.value=!0,_.value=``,h.value=!0}async function x(){if(y.value){g.value=!0,_.value=``;try{await e.removeLine(y.value.line.id,v.value),h.value=!1}catch(e){_.value=n(e)}finally{g.value=!1}}}return{createOpen:i,createSaving:a,createError:o,openCreate:s,doCreateLine:c,editOpen:l,editSaving:u,editError:d,editTarget:f,openEdit:p,doEditLine:m,delOpen:h,delBusy:g,delErr:_,delPurge:v,delCard:y,openDelete:b,doDeleteLine:x}}export{i as n,a as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{t as n}from"./R5Pz7BqB.js";import{t as r}from"./DxDqd6T42.js";var i=e({useDcwLineMutations:()=>a});function a(){let e=r(),i=t(!1),a=t(!1),o=t(``);function s(){o.value=``,i.value=!0}async function c(t){a.value=!0,o.value=``;try{await e.createLine(t),i.value=!1}catch(e){o.value=n(e)}finally{a.value=!1}}let l=t(!1),u=t(!1),d=t(``),f=t(null);function p(e){f.value=e,d.value=``,l.value=!0}async function m(t,r){u.value=!0,d.value=``;try{await e.updateLine(t,r),l.value=!1}catch(e){d.value=n(e)}finally{u.value=!1}}let h=t(!1),g=t(!1),_=t(``),v=t(!0),y=t(null);function b(e){y.value=e,v.value=!0,_.value=``,h.value=!0}async function x(){if(y.value){g.value=!0,_.value=``;try{await e.removeLine(y.value.line.id,v.value),h.value=!1}catch(e){_.value=n(e)}finally{g.value=!1}}}return{createOpen:i,createSaving:a,createError:o,openCreate:s,doCreateLine:c,editOpen:l,editSaving:u,editError:d,editTarget:f,openEdit:p,doEditLine:m,delOpen:h,delBusy:g,delErr:_,delPurge:v,delCard:y,openDelete:b,doDeleteLine:x}}export{i as n,a as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n,z as r}from"./C6lssmvl.js";import{t as i}from"./CElzwyXQ.js";import{n as a}from"./B6C4WofF.js";import{t as o}from"./IXR1BWP5.js";import{t as s}from"./gUYi1hLJ2.js";var c=e({useDcwParamApprovals:()=>l});function l(e){let c=s(),l=o(),{lineNodes:u}=e,d=t([]),f=t({}),p=t(``),m=t(Date.now()),h=n(()=>{let e=new Set(u.value.map(e=>e.id));return d.value.filter(t=>t.kind===`dcw`&&e.has(t.nodeId)&&t.status===`pending`)});function g(e){return l.items.find(t=>t.kind===`dcw-approval`&&t.id===e.id)?.agentName??e.agentId}function _(e){return c.nodeById(e.nodeId)?.name??e.nodeId.slice(0,8)}function v(e){let t=Date.parse(e.expiresAt);return Number.isFinite(t)?Math.max(0,Math.ceil((t-m.value)/1e3)):1/0}async function y(){try{let e=await a({base:`/api/workshop/agent-tools/approvals`,path:`?scope=pending`});d.value=e.approvals??[]}catch{}}async function b(e,t){p.value=e;try{await a({base:`/api/workshop/agent-tools/approvals`,path:`/${encodeURIComponent(e)}/decide`,init:{method:`POST`,body:JSON.stringify({approved:t,comment:f.value[e]??``})}}),d.value=d.value.filter(t=>t.id!==e)}catch{}finally{Reflect.deleteProperty(f.value,e),p.value=``,await y()}}{let e=0,t=i(()=>{m.value=Date.now(),e++,e%30==0&&y()},1e3);r(()=>clearInterval(t))}return y(),l.loadSnapshot(),{approvalItems:h,approvalComments:f,approvalDecidingId:p,approvalRemainingSec:v,approvalAgentName:g,approvalNodeName:_,decideApproval:b}}export{c as n,l as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n,z as r}from"./C6lssmvl.js";import{t as i}from"./CElzwyXQ.js";import{n as a}from"./B6C4WofF.js";import{t as o}from"./IXR1BWP5.js";import{t as s}from"./DxDqd6T42.js";var c=e({useDcwParamApprovals:()=>l});function l(e){let c=s(),l=o(),{lineNodes:u}=e,d=t([]),f=t({}),p=t(``),m=t(Date.now()),h=n(()=>{let e=new Set(u.value.map(e=>e.id));return d.value.filter(t=>t.kind===`dcw`&&e.has(t.nodeId)&&t.status===`pending`)});function g(e){return l.items.find(t=>t.kind===`dcw-approval`&&t.id===e.id)?.agentName??e.agentId}function _(e){return c.nodeById(e.nodeId)?.name??e.nodeId.slice(0,8)}function v(e){let t=Date.parse(e.expiresAt);return Number.isFinite(t)?Math.max(0,Math.ceil((t-m.value)/1e3)):1/0}async function y(){try{let e=await a({base:`/api/workshop/agent-tools/approvals`,path:`?scope=pending`});d.value=e.approvals??[]}catch{}}async function b(e,t){p.value=e;try{await a({base:`/api/workshop/agent-tools/approvals`,path:`/${encodeURIComponent(e)}/decide`,init:{method:`POST`,body:JSON.stringify({approved:t,comment:f.value[e]??``})}}),d.value=d.value.filter(t=>t.id!==e)}catch{}finally{Reflect.deleteProperty(f.value,e),p.value=``,await y()}}{let e=0,t=i(()=>{m.value=Date.now(),e++,e%30==0&&y()},1e3);r(()=>clearInterval(t))}return y(),l.loadSnapshot(),{approvalItems:h,approvalComments:f,approvalDecidingId:p,approvalRemainingSec:v,approvalAgentName:g,approvalNodeName:_,decideApproval:b}}export{c as n,l as t};
@@ -1,2 +1,2 @@
1
- import{N as e,dt as t,g as n,mt as r,v as i}from"./CavpkQb0.js";import{$ as a,R as o,S as s,V as c,W as l,b as u,f as d,h as f,i as p,it as m,k as h,m as g,p as _,rt as v,tt as y,y as b}from"./C6lssmvl.js";import{c as x,d as S,l as C}from"./ri9UF8rk.js";import{n as w}from"./D1MkndMZ.js";import{t as T}from"./DXgw1dVL.js";import{t as E}from"./CzlZrfq82.js";import{t as D}from"./Cv-Mv7_h2.js";import{t as O}from"./BDNMzG2s.js";import{t as k}from"./R5Pz7BqB.js";import{n as A}from"./B6C4WofF.js";import{t as ee}from"./DOT-XQyi.js";import{t as te}from"./DoL9u6wu.js";import{n as j,t as M}from"./9j2J4k4w.js";import{t as N}from"./BtZKe9ZV2.js";import{t as P}from"./PbzVdCTA2.js";var F={class:`aw-page-head`},I={class:`sub`},L={class:`head-actions`},R=[`title`],z={class:`live-txt mono`},B=Object.assign(O(s({__name:`AnalysisPageHead`,props:{liveCount:{}},setup(e){return(t,n)=>(c(),f(`header`,F,[d(`div`,null,[n[0]||=d(`p`,{class:`aw-kicker`},` agentworkshop / data analysis `,-1),d(`h1`,null,r(t.$t(`analysis.title`)),1),d(`p`,I,r(t.$t(`analysis.sub`)),1)]),d(`div`,L,[d(`span`,{class:`live-dot`,title:t.$t(`analysis.liveHint`)},null,8,R),d(`span`,z,r(t.$t(`analysis.live`))+` `+r(e.liveCount),1)])]))}}),[[`__scopeId`,`data-v-10941480`]]),{__name:`AnalysisPageHead`}),V={class:`filter-card`},H={class:`flt`},U={value:``},W=[`value`],G={class:`flt`},K={value:``},q=[`value`],J={class:`flt`},Y=[`value`],X={class:`flt flt-grow`},Z=[`placeholder`],Q=[`disabled`],ne=Object.assign(O(s({__name:`AnalysisFilterCard`,props:h({hasFilter:{type:Boolean},loading:{type:Boolean}},{lineId:{required:!0},lineIdModifiers:{},category:{required:!0},categoryModifiers:{},preset:{required:!0},presetModifiers:{},text:{required:!0},textModifiers:{}}),emits:h([`query`,`reset`],[`update:lineId`,`update:category`,`update:preset`,`update:text`]),setup(t){let n=a(t,`lineId`),i=a(t,`category`),o=a(t,`preset`),s=a(t,`text`),{lines:u}=P();return(a,h)=>(c(),f(`section`,V,[d(`label`,H,[d(`span`,null,r(a.$t(`analysis.fLine`)),1),m(d(`select`,{"onUpdate:modelValue":h[0]||=e=>n.value=e,class:`inp-sel`},[d(`option`,U,r(a.$t(`analysis.all`)),1),(c(!0),f(p,null,l(e(u),e=>(c(),f(`option`,{key:e.id,value:e.id},r(e.name),9,W))),128))],512),[[x,n.value]])]),d(`label`,G,[d(`span`,null,r(a.$t(`analysis.fCat`)),1),m(d(`select`,{"onUpdate:modelValue":h[1]||=e=>i.value=e,class:`inp-sel`},[d(`option`,K,r(a.$t(`analysis.all`)),1),(c(!0),f(p,null,l(e(M),e=>(c(),f(`option`,{key:e,value:e},r(a.$t(`analysis.cat.${e}`)),9,q))),128))],512),[[x,i.value]])]),d(`label`,J,[d(`span`,null,r(a.$t(`analysis.fWindow`)),1),m(d(`select`,{"onUpdate:modelValue":h[2]||=e=>o.value=e,class:`inp-sel`},[(c(!0),f(p,null,l(e(j),e=>(c(),f(`option`,{key:e.key,value:e.key},r(a.$t(`analysis.win.${e.key}`)),9,Y))),128))],512),[[x,o.value]])]),d(`label`,X,[d(`span`,null,r(a.$t(`analysis.fKeyword`)),1),m(d(`input`,{"onUpdate:modelValue":h[3]||=e=>s.value=e,class:`inp-sel`,type:`search`,placeholder:a.$t(`analysis.fKeywordPh`),onKeydown:h[4]||=S(e=>a.$emit(`query`),[`enter`])},null,40,Z),[[C,s.value]])]),d(`button`,{class:`pill-btn`,disabled:t.loading,onClick:h[5]||=e=>a.$emit(`query`)},[h[7]||=d(`span`,{class:`i-tabler-search`},null,-1),b(` `+r(a.$t(`analysis.query`)),1)],8,Q),t.hasFilter?(c(),f(`button`,{key:0,class:`mini-btn`,onClick:h[6]||=e=>a.$emit(`reset`)},r(a.$t(`analysis.reset`)),1)):g(``,!0)]))}}),[[`__scopeId`,`data-v-295d5291`]]),{__name:`AnalysisFilterCard`}),re={class:`table-card`},ie={class:`card-meta`},ae={class:`count`},oe={class:`hint`},se={key:0,class:`err`},ce={class:`ar-table`},le={class:`th-time`},ue={class:`th-line`},de={class:`th-recipe`},fe={class:`th-summary`},pe={class:`th-src`},me={class:`th-detail`},he={key:0},ge={colspan:`7`,class:`empty`},_e={key:1},ve={colspan:`7`,class:`empty`},ye={class:`report-row`},be={class:`td-time mono dim`},xe={class:`td-line`},Se={class:`scope-chip`},Ce={class:`title-cell`},we={class:`td-recipe mono dim`},Te={class:`summary`},Ee={class:`src`},De={key:0,class:`dim`},Oe={class:`detail-cell`},ke=[`onClick`],Ae={key:1,class:`dim`},je=[`title`,`onClick`],Me=[`title`],Ne={key:0,class:`ar-detail-row`},Pe={colspan:`7`},Fe={class:`detail-grid`},Ie={key:0,class:`kv kv-full revised`},Le={class:`k`},Re={class:`kv`},ze={class:`k`},Be={class:`mono`},Ve={class:`kv`},He={class:`k`},Ue={class:`mono`},We={key:1,class:`kv kv-full`},Ge={class:`k`},Ke={class:`sec-title`},qe={class:`conclusions`},Je={class:`sec-title`},Ye={class:`report-body`},Xe={class:`sec-title`},Ze={class:`json-body`},Qe={class:`sec-title`},$e={class:`json-body`},et=Object.assign(O(s({__name:`AnalysisTable`,props:h({rows:{},loading:{type:Boolean},error:{},admin:{type:Boolean}},{expandedId:{default:``},expandedIdModifiers:{}}),emits:h([`toggle`,`remove`,`edit`],[`update:expandedId`]),setup(n,{emit:i}){let o=i,s=a(n,`expandedId`),{lineName:u}=P(),{t:m}=w(),h=e=>ee(e),y=e=>[`quality`,`oee`,`alarm`,`trend`,`optimization`,`general`].includes(e)?m(`analysis.cat.${e}`):e,x=e=>e.recipeId?`${e.recipeId}${e.recipeVersion?` v${e.recipeVersion}`:``}`:`—`,S=e=>!!(e.conclusions.length||e.report||Object.keys(e.metrics??{}).length||e.dataSources),C=e=>{try{return JSON.stringify(e.metrics??{},null,1)}catch{return``}},T=e=>{try{return JSON.stringify(e.context??{},null,1)}catch{return``}};return(i,a)=>{let m=E;return c(),f(`section`,re,[d(`div`,ie,[d(`span`,ae,r(i.$t(`analysis.count`,{p0:n.rows.length})),1),d(`span`,oe,r(i.$t(`analysis.ledgerHint`)),1)]),n.error?(c(),f(`p`,se,r(n.error),1)):g(``,!0),d(`table`,ce,[d(`thead`,null,[d(`tr`,null,[d(`th`,le,r(i.$t(`analysis.thTime`)),1),d(`th`,ue,r(i.$t(`analysis.thLine`)),1),d(`th`,null,r(i.$t(`analysis.thTitle`)),1),d(`th`,de,r(i.$t(`analysis.thRecipe`)),1),d(`th`,fe,r(i.$t(`analysis.thSummary`)),1),d(`th`,pe,r(i.$t(`analysis.thSource`)),1),d(`th`,me,r(i.$t(`analysis.thDetail`)),1)])]),d(`tbody`,null,[n.loading&&n.rows.length===0?(c(),f(`tr`,he,[d(`td`,ge,r(i.$t(`analysis.loading`)),1)])):n.rows.length===0?(c(),f(`tr`,_e,[d(`td`,ve,r(i.$t(`analysis.empty`)),1)])):g(``,!0),(c(!0),f(p,null,l(n.rows,w=>(c(),f(p,{key:w.id},[d(`tr`,ye,[d(`td`,be,r(h(w.createdAt)),1),d(`td`,xe,[d(`span`,Se,r(w.lineName||e(u)(w.lineId)||w.lineId||`—`),1)]),d(`td`,Ce,[b(r(w.title)+` `,1),d(`small`,{class:t([`cat-chip`,w.category])},r(y(w.category)),3)]),d(`td`,we,r(x(w)),1),d(`td`,Te,r(w.summary||`—`),1),d(`td`,Ee,[b(r(w.actorName||w.actor||`—`)+` `,1),w.channelName?(c(),f(`small`,De,`@`+r(w.channelName),1)):g(``,!0)]),d(`td`,Oe,[S(w)?(c(),f(`button`,{key:0,class:`mini-btn`,onClick:e=>o(`toggle`,w)},r(s.value===w.id?i.$t(`analysis.fold`):i.$t(`analysis.expand`)),9,ke)):(c(),f(`span`,Ae,r(i.$t(`analysis.noDetail`)),1)),w.canEdit?(c(),f(`button`,{key:2,class:`mini-btn`,title:i.$t(`analysis.editTitle`),onClick:e=>o(`edit`,w)},[...a[0]||=[d(`span`,{class:`i-tabler-pencil`},null,-1)]],8,je)):g(``,!0),n.admin?(c(),_(m,{key:3,title:i.$t(`analysis.removeConfirm`,{p0:w.title}),"ok-text":i.$t(`analysis.remove`),"cancel-text":i.$t(`analysis.cancel`),placement:`left`,onConfirm:e=>o(`remove`,w)},{default:v(()=>[d(`button`,{class:`mini-btn danger`,title:i.$t(`analysis.remove`)},[...a[1]||=[d(`span`,{class:`i-tabler-trash`},null,-1)]],8,Me)]),_:1},8,[`title`,`ok-text`,`cancel-text`,`onConfirm`])):g(``,!0)])]),s.value===w.id?(c(),f(`tr`,Ne,[d(`td`,Pe,[d(`div`,Fe,[w.updatedAt?(c(),f(`div`,Ie,[d(`span`,Le,r(i.$t(`analysis.kRevised`)),1),d(`span`,null,r(h(w.updatedAt))+` · `+r(w.updatedByName||w.updatedBy),1)])):g(``,!0),d(`div`,Re,[d(`span`,ze,r(i.$t(`analysis.kId`)),1),d(`span`,Be,r(w.id),1)]),d(`div`,Ve,[d(`span`,He,r(i.$t(`analysis.kWindow`)),1),d(`span`,Ue,r(w.windowFrom?h(w.windowFrom):`—`)+` ~ `+r(w.windowTo?h(w.windowTo):`—`),1)]),w.dataSources?(c(),f(`div`,We,[d(`span`,Ge,r(i.$t(`analysis.kSources`)),1),d(`span`,null,r(w.dataSources),1)])):g(``,!0),w.conclusions.length?(c(),f(p,{key:2},[d(`div`,Ke,r(i.$t(`analysis.kConclusions`)),1),d(`ol`,qe,[(c(!0),f(p,null,l(w.conclusions,(e,t)=>(c(),f(`li`,{key:t},r(e),1))),128))])],64)):g(``,!0),w.report?(c(),f(p,{key:3},[d(`div`,Je,r(i.$t(`analysis.kReport`)),1),d(`pre`,Ye,r(w.report),1)],64)):g(``,!0),Object.keys(w.metrics??{}).length?(c(),f(p,{key:4},[d(`div`,Xe,r(i.$t(`analysis.kMetrics`)),1),d(`pre`,Ze,r(C(w)),1)],64)):g(``,!0),Object.keys(w.context??{}).length?(c(),f(p,{key:5},[d(`div`,Qe,r(i.$t(`analysis.kContext`)),1),d(`pre`,$e,r(T(w)),1)],64)):g(``,!0)])])])):g(``,!0)],64))),128))])])])}}}),[[`__scopeId`,`data-v-ca85b606`]]),{__name:`AnalysisTable`}),tt={class:`edit-form`},$={class:`fld`},nt={class:`fld`},rt={class:`fld-row`},it={class:`fld`},at=[`value`],ot={class:`fld`},st={class:`fld`},ct={class:`fld-row`},lt={class:`fld`},ut={class:`fld`},dt={class:`fld`},ft={class:`fld`},pt={class:`fld`},mt={class:`fld`},ht=Object.assign(O(s({__name:`AnalysisEditModal`,props:{report:{},saving:{type:Boolean}},emits:[`close`,`save`],setup(t,{emit:i}){let a=t,o=i,s=n({title:``,summary:``,category:``,recipeId:``,recipeVersion:``,windowFrom:``,windowTo:``,dataSources:``,conclusions:``,report:``,metrics:``});y(()=>a.report,e=>{e&&(s.title=e.title,s.summary=e.summary,s.category=e.category,s.recipeId=e.recipeId,s.recipeVersion=e.recipeVersion,s.windowFrom=e.windowFrom??``,s.windowTo=e.windowTo??``,s.dataSources=e.dataSources,s.conclusions=(e.conclusions??[]).join(`
1
+ import{N as e,dt as t,g as n,mt as r,v as i}from"./CavpkQb0.js";import{$ as a,R as o,S as s,V as c,W as l,b as u,f as d,h as f,i as p,it as m,k as h,m as g,p as _,rt as v,tt as y,y as b}from"./C6lssmvl.js";import{c as x,d as S,l as C}from"./ri9UF8rk.js";import{n as w}from"./D1MkndMZ.js";import{t as T}from"./DXgw1dVL.js";import{t as E}from"./CzlZrfq82.js";import{t as D}from"./Cv-Mv7_h2.js";import{t as O}from"./BDNMzG2s.js";import{t as k}from"./R5Pz7BqB.js";import{n as A}from"./B6C4WofF.js";import{t as ee}from"./DOT-XQyi.js";import{t as te}from"./DoL9u6wu.js";import{n as j,t as M}from"./9j2J4k4w.js";import{t as N}from"./BtZKe9ZV2.js";import{t as P}from"./azOGy_tU2.js";var F={class:`aw-page-head`},I={class:`sub`},L={class:`head-actions`},R=[`title`],z={class:`live-txt mono`},B=Object.assign(O(s({__name:`AnalysisPageHead`,props:{liveCount:{}},setup(e){return(t,n)=>(c(),f(`header`,F,[d(`div`,null,[n[0]||=d(`p`,{class:`aw-kicker`},` agentworkshop / data analysis `,-1),d(`h1`,null,r(t.$t(`analysis.title`)),1),d(`p`,I,r(t.$t(`analysis.sub`)),1)]),d(`div`,L,[d(`span`,{class:`live-dot`,title:t.$t(`analysis.liveHint`)},null,8,R),d(`span`,z,r(t.$t(`analysis.live`))+` `+r(e.liveCount),1)])]))}}),[[`__scopeId`,`data-v-10941480`]]),{__name:`AnalysisPageHead`}),V={class:`filter-card`},H={class:`flt`},U={value:``},W=[`value`],G={class:`flt`},K={value:``},q=[`value`],J={class:`flt`},Y=[`value`],X={class:`flt flt-grow`},Z=[`placeholder`],Q=[`disabled`],ne=Object.assign(O(s({__name:`AnalysisFilterCard`,props:h({hasFilter:{type:Boolean},loading:{type:Boolean}},{lineId:{required:!0},lineIdModifiers:{},category:{required:!0},categoryModifiers:{},preset:{required:!0},presetModifiers:{},text:{required:!0},textModifiers:{}}),emits:h([`query`,`reset`],[`update:lineId`,`update:category`,`update:preset`,`update:text`]),setup(t){let n=a(t,`lineId`),i=a(t,`category`),o=a(t,`preset`),s=a(t,`text`),{lines:u}=P();return(a,h)=>(c(),f(`section`,V,[d(`label`,H,[d(`span`,null,r(a.$t(`analysis.fLine`)),1),m(d(`select`,{"onUpdate:modelValue":h[0]||=e=>n.value=e,class:`inp-sel`},[d(`option`,U,r(a.$t(`analysis.all`)),1),(c(!0),f(p,null,l(e(u),e=>(c(),f(`option`,{key:e.id,value:e.id},r(e.name),9,W))),128))],512),[[x,n.value]])]),d(`label`,G,[d(`span`,null,r(a.$t(`analysis.fCat`)),1),m(d(`select`,{"onUpdate:modelValue":h[1]||=e=>i.value=e,class:`inp-sel`},[d(`option`,K,r(a.$t(`analysis.all`)),1),(c(!0),f(p,null,l(e(M),e=>(c(),f(`option`,{key:e,value:e},r(a.$t(`analysis.cat.${e}`)),9,q))),128))],512),[[x,i.value]])]),d(`label`,J,[d(`span`,null,r(a.$t(`analysis.fWindow`)),1),m(d(`select`,{"onUpdate:modelValue":h[2]||=e=>o.value=e,class:`inp-sel`},[(c(!0),f(p,null,l(e(j),e=>(c(),f(`option`,{key:e.key,value:e.key},r(a.$t(`analysis.win.${e.key}`)),9,Y))),128))],512),[[x,o.value]])]),d(`label`,X,[d(`span`,null,r(a.$t(`analysis.fKeyword`)),1),m(d(`input`,{"onUpdate:modelValue":h[3]||=e=>s.value=e,class:`inp-sel`,type:`search`,placeholder:a.$t(`analysis.fKeywordPh`),onKeydown:h[4]||=S(e=>a.$emit(`query`),[`enter`])},null,40,Z),[[C,s.value]])]),d(`button`,{class:`pill-btn`,disabled:t.loading,onClick:h[5]||=e=>a.$emit(`query`)},[h[7]||=d(`span`,{class:`i-tabler-search`},null,-1),b(` `+r(a.$t(`analysis.query`)),1)],8,Q),t.hasFilter?(c(),f(`button`,{key:0,class:`mini-btn`,onClick:h[6]||=e=>a.$emit(`reset`)},r(a.$t(`analysis.reset`)),1)):g(``,!0)]))}}),[[`__scopeId`,`data-v-295d5291`]]),{__name:`AnalysisFilterCard`}),re={class:`table-card`},ie={class:`card-meta`},ae={class:`count`},oe={class:`hint`},se={key:0,class:`err`},ce={class:`ar-table`},le={class:`th-time`},ue={class:`th-line`},de={class:`th-recipe`},fe={class:`th-summary`},pe={class:`th-src`},me={class:`th-detail`},he={key:0},ge={colspan:`7`,class:`empty`},_e={key:1},ve={colspan:`7`,class:`empty`},ye={class:`report-row`},be={class:`td-time mono dim`},xe={class:`td-line`},Se={class:`scope-chip`},Ce={class:`title-cell`},we={class:`td-recipe mono dim`},Te={class:`summary`},Ee={class:`src`},De={key:0,class:`dim`},Oe={class:`detail-cell`},ke=[`onClick`],Ae={key:1,class:`dim`},je=[`title`,`onClick`],Me=[`title`],Ne={key:0,class:`ar-detail-row`},Pe={colspan:`7`},Fe={class:`detail-grid`},Ie={key:0,class:`kv kv-full revised`},Le={class:`k`},Re={class:`kv`},ze={class:`k`},Be={class:`mono`},Ve={class:`kv`},He={class:`k`},Ue={class:`mono`},We={key:1,class:`kv kv-full`},Ge={class:`k`},Ke={class:`sec-title`},qe={class:`conclusions`},Je={class:`sec-title`},Ye={class:`report-body`},Xe={class:`sec-title`},Ze={class:`json-body`},Qe={class:`sec-title`},$e={class:`json-body`},et=Object.assign(O(s({__name:`AnalysisTable`,props:h({rows:{},loading:{type:Boolean},error:{},admin:{type:Boolean}},{expandedId:{default:``},expandedIdModifiers:{}}),emits:h([`toggle`,`remove`,`edit`],[`update:expandedId`]),setup(n,{emit:i}){let o=i,s=a(n,`expandedId`),{lineName:u}=P(),{t:m}=w(),h=e=>ee(e),y=e=>[`quality`,`oee`,`alarm`,`trend`,`optimization`,`general`].includes(e)?m(`analysis.cat.${e}`):e,x=e=>e.recipeId?`${e.recipeId}${e.recipeVersion?` v${e.recipeVersion}`:``}`:`—`,S=e=>!!(e.conclusions.length||e.report||Object.keys(e.metrics??{}).length||e.dataSources),C=e=>{try{return JSON.stringify(e.metrics??{},null,1)}catch{return``}},T=e=>{try{return JSON.stringify(e.context??{},null,1)}catch{return``}};return(i,a)=>{let m=E;return c(),f(`section`,re,[d(`div`,ie,[d(`span`,ae,r(i.$t(`analysis.count`,{p0:n.rows.length})),1),d(`span`,oe,r(i.$t(`analysis.ledgerHint`)),1)]),n.error?(c(),f(`p`,se,r(n.error),1)):g(``,!0),d(`table`,ce,[d(`thead`,null,[d(`tr`,null,[d(`th`,le,r(i.$t(`analysis.thTime`)),1),d(`th`,ue,r(i.$t(`analysis.thLine`)),1),d(`th`,null,r(i.$t(`analysis.thTitle`)),1),d(`th`,de,r(i.$t(`analysis.thRecipe`)),1),d(`th`,fe,r(i.$t(`analysis.thSummary`)),1),d(`th`,pe,r(i.$t(`analysis.thSource`)),1),d(`th`,me,r(i.$t(`analysis.thDetail`)),1)])]),d(`tbody`,null,[n.loading&&n.rows.length===0?(c(),f(`tr`,he,[d(`td`,ge,r(i.$t(`analysis.loading`)),1)])):n.rows.length===0?(c(),f(`tr`,_e,[d(`td`,ve,r(i.$t(`analysis.empty`)),1)])):g(``,!0),(c(!0),f(p,null,l(n.rows,w=>(c(),f(p,{key:w.id},[d(`tr`,ye,[d(`td`,be,r(h(w.createdAt)),1),d(`td`,xe,[d(`span`,Se,r(w.lineName||e(u)(w.lineId)||w.lineId||`—`),1)]),d(`td`,Ce,[b(r(w.title)+` `,1),d(`small`,{class:t([`cat-chip`,w.category])},r(y(w.category)),3)]),d(`td`,we,r(x(w)),1),d(`td`,Te,r(w.summary||`—`),1),d(`td`,Ee,[b(r(w.actorName||w.actor||`—`)+` `,1),w.channelName?(c(),f(`small`,De,`@`+r(w.channelName),1)):g(``,!0)]),d(`td`,Oe,[S(w)?(c(),f(`button`,{key:0,class:`mini-btn`,onClick:e=>o(`toggle`,w)},r(s.value===w.id?i.$t(`analysis.fold`):i.$t(`analysis.expand`)),9,ke)):(c(),f(`span`,Ae,r(i.$t(`analysis.noDetail`)),1)),w.canEdit?(c(),f(`button`,{key:2,class:`mini-btn`,title:i.$t(`analysis.editTitle`),onClick:e=>o(`edit`,w)},[...a[0]||=[d(`span`,{class:`i-tabler-pencil`},null,-1)]],8,je)):g(``,!0),n.admin?(c(),_(m,{key:3,title:i.$t(`analysis.removeConfirm`,{p0:w.title}),"ok-text":i.$t(`analysis.remove`),"cancel-text":i.$t(`analysis.cancel`),placement:`left`,onConfirm:e=>o(`remove`,w)},{default:v(()=>[d(`button`,{class:`mini-btn danger`,title:i.$t(`analysis.remove`)},[...a[1]||=[d(`span`,{class:`i-tabler-trash`},null,-1)]],8,Me)]),_:1},8,[`title`,`ok-text`,`cancel-text`,`onConfirm`])):g(``,!0)])]),s.value===w.id?(c(),f(`tr`,Ne,[d(`td`,Pe,[d(`div`,Fe,[w.updatedAt?(c(),f(`div`,Ie,[d(`span`,Le,r(i.$t(`analysis.kRevised`)),1),d(`span`,null,r(h(w.updatedAt))+` · `+r(w.updatedByName||w.updatedBy),1)])):g(``,!0),d(`div`,Re,[d(`span`,ze,r(i.$t(`analysis.kId`)),1),d(`span`,Be,r(w.id),1)]),d(`div`,Ve,[d(`span`,He,r(i.$t(`analysis.kWindow`)),1),d(`span`,Ue,r(w.windowFrom?h(w.windowFrom):`—`)+` ~ `+r(w.windowTo?h(w.windowTo):`—`),1)]),w.dataSources?(c(),f(`div`,We,[d(`span`,Ge,r(i.$t(`analysis.kSources`)),1),d(`span`,null,r(w.dataSources),1)])):g(``,!0),w.conclusions.length?(c(),f(p,{key:2},[d(`div`,Ke,r(i.$t(`analysis.kConclusions`)),1),d(`ol`,qe,[(c(!0),f(p,null,l(w.conclusions,(e,t)=>(c(),f(`li`,{key:t},r(e),1))),128))])],64)):g(``,!0),w.report?(c(),f(p,{key:3},[d(`div`,Je,r(i.$t(`analysis.kReport`)),1),d(`pre`,Ye,r(w.report),1)],64)):g(``,!0),Object.keys(w.metrics??{}).length?(c(),f(p,{key:4},[d(`div`,Xe,r(i.$t(`analysis.kMetrics`)),1),d(`pre`,Ze,r(C(w)),1)],64)):g(``,!0),Object.keys(w.context??{}).length?(c(),f(p,{key:5},[d(`div`,Qe,r(i.$t(`analysis.kContext`)),1),d(`pre`,$e,r(T(w)),1)],64)):g(``,!0)])])])):g(``,!0)],64))),128))])])])}}}),[[`__scopeId`,`data-v-ca85b606`]]),{__name:`AnalysisTable`}),tt={class:`edit-form`},$={class:`fld`},nt={class:`fld`},rt={class:`fld-row`},it={class:`fld`},at=[`value`],ot={class:`fld`},st={class:`fld`},ct={class:`fld-row`},lt={class:`fld`},ut={class:`fld`},dt={class:`fld`},ft={class:`fld`},pt={class:`fld`},mt={class:`fld`},ht=Object.assign(O(s({__name:`AnalysisEditModal`,props:{report:{},saving:{type:Boolean}},emits:[`close`,`save`],setup(t,{emit:i}){let a=t,o=i,s=n({title:``,summary:``,category:``,recipeId:``,recipeVersion:``,windowFrom:``,windowTo:``,dataSources:``,conclusions:``,report:``,metrics:``});y(()=>a.report,e=>{e&&(s.title=e.title,s.summary=e.summary,s.category=e.category,s.recipeId=e.recipeId,s.recipeVersion=e.recipeVersion,s.windowFrom=e.windowFrom??``,s.windowTo=e.windowTo??``,s.dataSources=e.dataSources,s.conclusions=(e.conclusions??[]).join(`
2
2
  `),s.report=e.report??``,s.metrics=Object.keys(e.metrics??{}).length?JSON.stringify(e.metrics,null,1):``)},{immediate:!0});function u(){let e;if(s.metrics.trim())try{e=JSON.parse(s.metrics)}catch{e=s.metrics}o(`save`,{title:s.title,summary:s.summary,category:s.category||`general`,recipe_id:s.recipeId.trim(),recipe_version:s.recipeVersion.trim(),window_from:s.windowFrom.trim(),window_to:s.windowTo.trim(),data_sources:s.dataSources,conclusions:s.conclusions,report:s.report,...e===void 0?{}:{metrics:e}})}return(n,i)=>{let a=T;return c(),_(a,{open:!!t.report,title:n.$t(`analysis.editTitle`),"confirm-loading":t.saving,"ok-text":n.$t(`analysis.save`),"cancel-text":n.$t(`analysis.cancel`),width:`720px`,onOk:u,onCancel:i[11]||=e=>o(`close`)},{default:v(()=>[d(`div`,tt,[d(`label`,$,[d(`span`,null,r(n.$t(`analysis.thTitle`)),1),m(d(`input`,{"onUpdate:modelValue":i[0]||=e=>s.title=e,class:`inp-sel`},null,512),[[C,s.title]])]),d(`label`,nt,[d(`span`,null,r(n.$t(`analysis.thSummary`)),1),m(d(`input`,{"onUpdate:modelValue":i[1]||=e=>s.summary=e,class:`inp-sel`},null,512),[[C,s.summary]])]),d(`div`,rt,[d(`label`,it,[d(`span`,null,r(n.$t(`analysis.fCat`)),1),m(d(`select`,{"onUpdate:modelValue":i[2]||=e=>s.category=e,class:`inp-sel`},[(c(!0),f(p,null,l(e(M),e=>(c(),f(`option`,{key:e,value:e},r(n.$t(`analysis.cat.${e}`)),9,at))),128))],512),[[x,s.category]])]),d(`label`,ot,[d(`span`,null,r(n.$t(`analysis.kRecipe`)),1),m(d(`input`,{"onUpdate:modelValue":i[3]||=e=>s.recipeId=e,class:`inp-sel`,placeholder:`rcp-…`},null,512),[[C,s.recipeId]])]),d(`label`,st,[d(`span`,null,r(n.$t(`analysis.kVersion`)),1),m(d(`input`,{"onUpdate:modelValue":i[4]||=e=>s.recipeVersion=e,class:`inp-sel`},null,512),[[C,s.recipeVersion]])])]),d(`div`,ct,[d(`label`,lt,[d(`span`,null,r(n.$t(`analysis.kWindowFrom`)),1),m(d(`input`,{"onUpdate:modelValue":i[5]||=e=>s.windowFrom=e,class:`inp-sel`,placeholder:`ISO 8601`},null,512),[[C,s.windowFrom]])]),d(`label`,ut,[d(`span`,null,r(n.$t(`analysis.kWindowTo`)),1),m(d(`input`,{"onUpdate:modelValue":i[6]||=e=>s.windowTo=e,class:`inp-sel`,placeholder:`ISO 8601`},null,512),[[C,s.windowTo]])])]),d(`label`,dt,[d(`span`,null,r(n.$t(`analysis.kSources`)),1),m(d(`input`,{"onUpdate:modelValue":i[7]||=e=>s.dataSources=e,class:`inp-sel`},null,512),[[C,s.dataSources]])]),d(`label`,ft,[d(`span`,null,r(n.$t(`analysis.kConclusions`))+`(`+r(n.$t(`analysis.conclusionsHint`))+`)`,1),m(d(`textarea`,{"onUpdate:modelValue":i[8]||=e=>s.conclusions=e,class:`inp-sel`,rows:`4`},null,512),[[C,s.conclusions]])]),d(`label`,pt,[d(`span`,null,r(n.$t(`analysis.kReport`)),1),m(d(`textarea`,{"onUpdate:modelValue":i[9]||=e=>s.report=e,class:`inp-sel mono`,rows:`6`},null,512),[[C,s.report]])]),d(`label`,mt,[d(`span`,null,r(n.$t(`analysis.kMetrics`))+`(JSON)`,1),m(d(`textarea`,{"onUpdate:modelValue":i[10]||=e=>s.metrics=e,class:`inp-sel mono`,rows:`4`},null,512),[[C,s.metrics]])])])]),_:1},8,[`open`,`title`,`confirm-loading`,`ok-text`,`cancel-text`])}}}),[[`__scopeId`,`data-v-1814e2fc`]]),{__name:`AnalysisEditModal`}),gt={class:`page`},_t=O(s({name:`AnalysisPage`,setup(t){let n=te(),r=N(),a=D(),s=i(``);function l(e){s.value=s.value===e.id?``:e.id}let d=i(!1);async function p(e){if(!d.value){d.value=!0;try{await A({base:`/api/workshop/analysis`,path:`/${e.id}`,init:{method:`DELETE`}}),s.value===e.id&&(s.value=``),await r.doQuery()}catch(e){r.error.value=k(e)}finally{d.value=!1}}}let m=i(null),h=i(!1);function g(e){m.value=e}async function _(e){if(!(!m.value||h.value)){h.value=!0;try{await A({base:`/api/workshop/analysis`,path:`/${m.value.id}`,init:{method:`PATCH`,body:JSON.stringify(e)}}),m.value=null,await r.doQuery()}catch(e){r.error.value=k(e)}finally{h.value=!1}}}return o(()=>{n.ensureConnected(),r.doQuery()}),(t,n)=>(c(),f(`div`,gt,[u(B,{"live-count":e(r).liveCount.value},null,8,[`live-count`]),u(ne,{"line-id":e(r).q.lineId,"onUpdate:lineId":n[0]||=t=>e(r).q.lineId=t,category:e(r).q.category,"onUpdate:category":n[1]||=t=>e(r).q.category=t,preset:e(r).q.preset,"onUpdate:preset":n[2]||=t=>e(r).q.preset=t,text:e(r).q.text,"onUpdate:text":n[3]||=t=>e(r).q.text=t,"has-filter":e(r).hasFilter.value,loading:e(r).loading.value,onQuery:e(r).doQuery,onReset:e(r).resetFilters},null,8,[`line-id`,`category`,`preset`,`text`,`has-filter`,`loading`,`onQuery`,`onReset`]),u(et,{"expanded-id":s.value,"onUpdate:expandedId":n[4]||=e=>s.value=e,rows:e(r).rows.value,loading:e(r).loading.value,error:e(r).error.value,admin:e(a).isAdmin,onToggle:l,onRemove:p,onEdit:g},null,8,[`expanded-id`,`rows`,`loading`,`error`,`admin`]),u(ht,{report:m.value,saving:h.value,onClose:n[5]||=e=>m.value=null,onSave:_},null,8,[`report`,`saving`])]))}}),[[`__scopeId`,`data-v-5c9a507c`]]);export{_t as default};