agentworkshop 0.7.39 → 0.7.41

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 (405) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +55 -0
  2. package/.output/.AgentWorkShop/prompts/host-tools.json +55 -0
  3. package/.output/nitro.json +1 -1
  4. package/.output/public/_nuxt/88GOowgO2.js +1 -0
  5. package/.output/public/_nuxt/{BNT8gYU92.js → BC9wjTJK2.js} +2 -2
  6. package/.output/public/_nuxt/{CY9LbPCI.js → BN16aRdQ.js} +1 -1
  7. package/.output/public/_nuxt/BWVhZntO.js +1 -0
  8. package/.output/public/_nuxt/{HBLJ-wei.js → BXxH0UQE.js} +1 -1
  9. package/.output/public/_nuxt/{zIGh7R49.js → BneN7fbu.js} +1 -1
  10. package/.output/public/_nuxt/BsROmY89.js +1 -0
  11. package/.output/public/_nuxt/{DUrecWPx.js → C0ZrS1KL.js} +2 -2
  12. package/.output/public/_nuxt/{C_OLzD09.js → C4oW1HsE.js} +1 -1
  13. package/.output/public/_nuxt/{CUDwzgLV.js → C4s_niy-.js} +9 -9
  14. package/.output/public/_nuxt/CFxtLwjp.js +1 -0
  15. package/.output/public/_nuxt/{Cec0Ua3F.js → CS50LB_l.js} +1 -1
  16. package/.output/public/_nuxt/CssgYAAL2.js +1 -0
  17. package/.output/public/_nuxt/D6mbFA-a.js +1 -0
  18. package/.output/public/_nuxt/D98NH8kG.js +1 -0
  19. package/.output/public/_nuxt/DGIuvyRN2.js +1 -0
  20. package/.output/public/_nuxt/DGbd-UiG.js +1 -0
  21. package/.output/public/_nuxt/{CojCTLKD.js → DGj-WEBg.js} +1 -1
  22. package/.output/public/_nuxt/{DDShH71m.js → DS8qj8EL.js} +1 -1
  23. package/.output/public/_nuxt/DTFCy6h-.js +1 -0
  24. package/.output/public/_nuxt/{DrYV5i68.js → DUjW5Yq5.js} +1 -1
  25. package/.output/public/_nuxt/{45zuyAso.js → D_OTvQza.js} +1 -1
  26. package/.output/public/_nuxt/Dap5PmTL.js +2 -0
  27. package/.output/public/_nuxt/Dqw1lpr-.js +1 -0
  28. package/.output/public/_nuxt/DvLxILQP.js +1 -0
  29. package/.output/public/_nuxt/IREZ1eC2.js +1 -0
  30. package/.output/public/_nuxt/TownView.f-YOdXRs.css +1 -0
  31. package/.output/public/_nuxt/_id_.D9ymtHB5.css +1 -0
  32. package/.output/public/_nuxt/_id_.jf-_8E_c.css +1 -0
  33. package/.output/public/_nuxt/_wsId_.B4WiqkIS.css +1 -0
  34. package/.output/public/_nuxt/agents.ZD0rVdHE.css +1 -0
  35. package/.output/public/_nuxt/aml.BN8ZEW4h.css +1 -0
  36. package/.output/public/_nuxt/builds/latest.json +1 -1
  37. package/.output/public/_nuxt/builds/meta/78a295bb-2072-48a4-8b46-6d545fdae743.json +1 -0
  38. package/.output/public/_nuxt/ca4TJ3Op.js +1 -0
  39. package/.output/public/_nuxt/channel-templates.BOtahzPi.css +1 -0
  40. package/.output/public/_nuxt/daq.DjSgY94l.css +1 -0
  41. package/.output/public/_nuxt/dcw.8Y7FqCVN.css +1 -0
  42. package/.output/public/_nuxt/default.J32SgqFY.css +1 -0
  43. package/.output/public/_nuxt/entry.bdm0tv6M.css +1 -0
  44. package/.output/public/_nuxt/eqq3wWQF.js +18 -0
  45. package/.output/public/_nuxt/logs.BpKzmKsh.css +1 -0
  46. package/.output/public/_nuxt/monitor.D9pe7qN6.css +1 -0
  47. package/.output/public/_nuxt/pages.D7aSDlUI.css +1 -0
  48. package/.output/public/_nuxt/permissions.DwTVlFe6.css +1 -0
  49. package/.output/public/_nuxt/plugins.sb4nDGqr.css +1 -0
  50. package/.output/public/_nuxt/{Cbq-mryP.js → qr6R6Ha1.js} +1 -1
  51. package/.output/public/_nuxt/settings.BTgR-NiE.css +1 -0
  52. package/.output/public/_nuxt/teams.CxnxKVVs.css +1 -0
  53. package/.output/public/_nuxt/tokens.BFY7qv4f.css +1 -0
  54. package/.output/public/_nuxt/{town.DKIAhKnx.css → town.BBXZmeoP.css} +1 -1
  55. package/.output/public/_nuxt/users.DLgZ1D0h.css +1 -0
  56. package/.output/public/_nuxt/workshop.CR_QzeAN.css +1 -0
  57. package/.output/public/_nuxt/{BzHEilTt.js → xh3_vYcu.js} +1 -1
  58. package/.output/public/_nuxt/yF0aYMF1.js +4 -0
  59. package/.output/server/chunks/_/entity.mjs.map +1 -1
  60. package/.output/server/chunks/_/nitro.mjs +2355 -1362
  61. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  62. package/.output/server/chunks/build/{TownView-jVazYOjN.mjs → TownView--otsnr_7.mjs} +290 -208
  63. package/.output/server/chunks/build/TownView--otsnr_7.mjs.map +1 -0
  64. package/.output/server/chunks/build/{_id_-CfVosNg3.mjs → _id_-Brv-JSvr.mjs} +142 -141
  65. package/.output/server/chunks/build/_id_-Brv-JSvr.mjs.map +1 -0
  66. package/.output/server/chunks/build/{_id_-Hwr4rZpr.mjs → _id_-D9pl1OZy.mjs} +38 -36
  67. package/.output/server/chunks/build/_id_-D9pl1OZy.mjs.map +1 -0
  68. package/.output/server/chunks/build/{_wsId_-BVg3bB77.mjs → _wsId_-BASfDf0s.mjs} +295 -261
  69. package/.output/server/chunks/build/{_wsId_-BVg3bB77.mjs.map → _wsId_-BASfDf0s.mjs.map} +1 -1
  70. package/.output/server/chunks/build/{agents-Bvin73QY.mjs → agents-CLQqJF2y.mjs} +21 -27
  71. package/.output/server/chunks/build/agents-CLQqJF2y.mjs.map +1 -0
  72. package/.output/server/chunks/build/{aml-BCSJCdX7.mjs → aml-_7FdFL2p.mjs} +109 -109
  73. package/.output/server/chunks/build/{aml-BCSJCdX7.mjs.map → aml-_7FdFL2p.mjs.map} +1 -1
  74. package/.output/server/chunks/build/api-error-dul30BYQ.mjs.map +1 -1
  75. package/.output/server/chunks/build/{channel-templates-BTq8570n.mjs → channel-templates-p6SZNjlM.mjs} +19 -19
  76. package/.output/server/chunks/build/{channel-templates-BTq8570n.mjs.map → channel-templates-p6SZNjlM.mjs.map} +1 -1
  77. package/.output/server/chunks/build/{daq-C03Uu5UE.mjs → daq-DkMvD8sg.mjs} +193 -126
  78. package/.output/server/chunks/build/daq-DkMvD8sg.mjs.map +1 -0
  79. package/.output/server/chunks/build/{dcw-6vEYVeje.mjs → dcw-C1jgVJkO.mjs} +46 -46
  80. package/.output/server/chunks/build/{dcw-6vEYVeje.mjs.map → dcw-C1jgVJkO.mjs.map} +1 -1
  81. package/.output/server/chunks/build/{default-CZmZFpqH.mjs → default-BE4r0FZN.mjs} +152 -58
  82. package/.output/server/chunks/build/{default-CZmZFpqH.mjs.map → default-BE4r0FZN.mjs.map} +1 -1
  83. package/.output/server/chunks/build/{logs-B-xhuqln.mjs → logs--dByNyhw.mjs} +35 -35
  84. package/.output/server/chunks/build/{logs-B-xhuqln.mjs.map → logs--dByNyhw.mjs.map} +1 -1
  85. package/.output/server/chunks/build/{monitor-CyfDt4nR.mjs → monitor-C0okQaXz.mjs} +33 -33
  86. package/.output/server/chunks/build/{monitor-CyfDt4nR.mjs.map → monitor-C0okQaXz.mjs.map} +1 -1
  87. package/.output/server/chunks/build/{pages-BO7yZsXA.mjs → pages-B0bUWnC6.mjs} +35 -19
  88. package/.output/server/chunks/build/pages-B0bUWnC6.mjs.map +1 -0
  89. package/.output/server/chunks/build/{permissions-B52oOmaO.mjs → permissions-68SsNjex.mjs} +12 -12
  90. package/.output/server/chunks/build/{permissions-B52oOmaO.mjs.map → permissions-68SsNjex.mjs.map} +1 -1
  91. package/.output/server/chunks/build/{plugins-CUWmMdyt.mjs → plugins-lGlUr1lj.mjs} +17 -17
  92. package/.output/server/chunks/build/{plugins-CUWmMdyt.mjs.map → plugins-lGlUr1lj.mjs.map} +1 -1
  93. package/.output/server/chunks/build/{settings-DoQ2Oq3P.mjs → settings-Ddd1qx2Z.mjs} +50 -47
  94. package/.output/server/chunks/build/settings-Ddd1qx2Z.mjs.map +1 -0
  95. package/.output/server/chunks/build/{teams-2kz3CusY.mjs → teams-MEDLZdMn.mjs} +38 -34
  96. package/.output/server/chunks/build/teams-MEDLZdMn.mjs.map +1 -0
  97. package/.output/server/chunks/build/{tokens-BbWLqtVz.mjs → tokens-C7fTM5C2.mjs} +14 -14
  98. package/.output/server/chunks/build/{tokens-BbWLqtVz.mjs.map → tokens-C7fTM5C2.mjs.map} +1 -1
  99. package/.output/server/chunks/build/{town-BOl6hs9B.mjs → town-CoQdblbZ.mjs} +38 -12
  100. package/.output/server/chunks/build/town-CoQdblbZ.mjs.map +1 -0
  101. package/.output/server/chunks/build/{useDaqStream-CIBaiGAl.mjs → useDaqStream-DfCFpb3p.mjs} +9 -3
  102. package/.output/server/chunks/build/useDaqStream-DfCFpb3p.mjs.map +1 -0
  103. package/.output/server/chunks/build/{useDcwStream-CBbiYnWe.mjs → useDcwStream-UPiX-3iO.mjs} +11 -2
  104. package/.output/server/chunks/build/useDcwStream-UPiX-3iO.mjs.map +1 -0
  105. package/.output/server/chunks/build/useResponsive-BKDMGTHs.mjs +49 -0
  106. package/.output/server/chunks/build/useResponsive-BKDMGTHs.mjs.map +1 -0
  107. package/.output/server/chunks/build/{users-fohSmF-J.mjs → users-Cfd5-l2-.mjs} +6 -6
  108. package/.output/server/chunks/build/{users-fohSmF-J.mjs.map → users-Cfd5-l2-.mjs.map} +1 -1
  109. package/.output/server/chunks/build/{workshop-DX5-ldc4.mjs → workshop-BL5bhfs0.mjs} +15 -15
  110. package/.output/server/chunks/build/{workshop-DX5-ldc4.mjs.map → workshop-BL5bhfs0.mjs.map} +1 -1
  111. package/.output/server/chunks/build/{workspaces-BuydxM-3.mjs → workspaces-Bgz5Ekwp.mjs} +18 -3
  112. package/.output/server/chunks/build/workspaces-Bgz5Ekwp.mjs.map +1 -0
  113. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs.map +1 -1
  114. package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
  115. package/.output/server/chunks/routes/api/system/index.post.mjs.map +1 -1
  116. package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
  117. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +6 -2
  118. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  119. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +2 -1
  120. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +1 -1
  121. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
  122. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +3 -3
  123. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
  124. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
  125. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
  126. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +3 -2
  127. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
  128. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -1
  129. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
  130. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +8 -6
  131. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
  132. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +5 -5
  133. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
  134. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +14 -4
  135. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
  136. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +4 -4
  137. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
  138. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +4 -3
  139. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
  140. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +31 -0
  141. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs.map +1 -0
  142. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +28 -0
  143. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +1 -0
  144. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -1
  145. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -1
  146. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
  147. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +32 -0
  148. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -0
  149. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +34 -0
  150. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs.map +1 -0
  151. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +33 -0
  152. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs.map +1 -0
  153. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +34 -0
  154. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs.map +1 -0
  155. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
  156. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
  157. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
  158. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
  159. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
  160. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
  161. package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
  162. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +3 -1
  163. package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
  164. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +5 -1
  165. package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
  166. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +3 -1
  167. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  168. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
  169. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
  170. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  171. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  172. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
  173. package/.output/server/chunks/routes/renderer.mjs +3 -3
  174. package/.output/server/chunks/virtual/entry.mjs +51 -25
  175. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  176. package/.output/server/package.json +1 -1
  177. package/README-zh.md +203 -39
  178. package/README.md +739 -591
  179. package/app/app.vue +9 -3
  180. package/app/assets/css/main.css +517 -7
  181. package/app/components/AppHeader.vue +98 -7
  182. package/app/components/AppSidebar.vue +117 -11
  183. package/app/components/AwChart.vue +2 -1
  184. package/app/components/workshop/AgentInspectorDrawer.vue +6 -6
  185. package/app/components/workshop/AgentLanesView.vue +52 -1
  186. package/app/components/workshop/AssetLibrary.vue +4 -2
  187. package/app/components/workshop/ChannelSessionList.vue +4 -2
  188. package/app/components/workshop/Composer.vue +96 -0
  189. package/app/components/workshop/DaqNodeRow.vue +19 -0
  190. package/app/components/workshop/DaqTemplateIcon.vue +33 -0
  191. package/app/components/workshop/DeviceTwinPanel.vue +37 -35
  192. package/app/components/workshop/EventBlock.vue +3 -3
  193. package/app/components/workshop/InspectorPanel.vue +47 -11
  194. package/app/components/workshop/LiveAgentBar.vue +34 -0
  195. package/app/components/workshop/TaskBoardView.vue +83 -33
  196. package/app/components/workshop/TranscriptTimeline.vue +56 -0
  197. package/app/components/workshop/blocks/ClusterError.vue +1 -1
  198. package/app/components/workshop/blocks/ClusterRoute.vue +3 -1
  199. package/app/components/workshop/blocks/ClusterStatus.vue +2 -2
  200. package/app/components/workshop/blocks/ClusterStream.vue +8 -2
  201. package/app/components/workshop/town/ModelPreview3D.vue +1 -1
  202. package/app/components/workshop/town/TownView.vue +507 -82
  203. package/app/composables/useResponsive.ts +88 -0
  204. package/app/composables/useRouteMeta.ts +3 -0
  205. package/app/composables/workshop/useDaqStream.ts +7 -4
  206. package/app/composables/workshop/useDcwStream.ts +8 -2
  207. package/app/composables/workshop/useVisibleInterval.ts +2 -2
  208. package/app/composables/workshop/useWorkshopApi.ts +1 -1
  209. package/app/layouts/default.vue +46 -2
  210. package/app/pages/aml/index.vue +712 -616
  211. package/app/pages/daq/[id].vue +12 -7
  212. package/app/pages/daq/index.vue +216 -13
  213. package/app/pages/dcw/[id].vue +117 -32
  214. package/app/pages/dcw/index.vue +83 -23
  215. package/app/pages/index.vue +35 -1
  216. package/app/pages/logs/index.vue +147 -13
  217. package/app/pages/monitor.vue +56 -12
  218. package/app/pages/permissions/index.vue +34 -0
  219. package/app/pages/plugins/index.vue +35 -4
  220. package/app/pages/settings.vue +90 -21
  221. package/app/pages/tokens.vue +23 -0
  222. package/app/pages/town.vue +50 -5
  223. package/app/pages/users.vue +23 -0
  224. package/app/pages/workshop/agents.vue +92 -2
  225. package/app/pages/workshop/channel-templates.vue +53 -0
  226. package/app/pages/workshop/index.vue +14 -0
  227. package/app/pages/workshop/teams.vue +66 -6
  228. package/app/pages/workshop/w/[wsId].vue +202 -14
  229. package/app/plugins/aw-plugins.client.ts +13 -8
  230. package/app/stores/app.ts +33 -1
  231. package/app/stores/workshop/user.ts +1 -1
  232. package/app/stores/workshop/workspaces.ts +18 -2
  233. package/app/utils/api-error.ts +1 -1
  234. package/cli/commands/build.mjs +8 -1
  235. package/docker-compose.yml +6 -0
  236. package/docs/cli.en.md +2 -2
  237. package/docs/cli.md +2 -2
  238. package/docs/plugins.en.md +33 -1
  239. package/docs/plugins.md +29 -1
  240. package/docs/sdk.en.md +1 -1
  241. package/docs/sdk.md +1 -1
  242. package/i18n/locales/en.ts +2 -0
  243. package/i18n/locales/zh-CN.ts +2 -0
  244. package/nuxt.config.ts +31 -0
  245. package/package.json +11 -2
  246. package/scripts/_dbg-param-map-e2e.ts +242 -0
  247. package/scripts/_dbg-param-map-rest-smoke.mjs +73 -0
  248. package/scripts/_dbg-param-real-scenario.mjs +153 -0
  249. package/scripts/_loop-biax-campaign.mjs +124 -0
  250. package/scripts/api-live-e2e.mjs +40 -8
  251. package/scripts/capture-walkthrough.mjs +232 -0
  252. package/scripts/render-walkthrough-figure.mjs +46 -0
  253. package/scripts/seed-walkthrough-fixture.mjs +143 -0
  254. package/scripts/test-plugin-hardening.mjs +8 -0
  255. package/scripts/test-serial-bridge.mjs +418 -0
  256. package/scripts/ui/admin-shots.mjs +46 -0
  257. package/scripts/ui/audit-layout.mjs +301 -0
  258. package/scripts/ui/bump-microfont.mjs +39 -0
  259. package/scripts/ui/e2e-interactive.mjs +328 -0
  260. package/scripts/ui/lib.mjs +198 -0
  261. package/scripts/ui/linkcheck2.mjs +37 -0
  262. package/scripts/ui/live-render-check.mjs +72 -0
  263. package/scripts/ui/md-lint.mjs +80 -0
  264. package/scripts/ui/perf-audit.mjs +132 -0
  265. package/scripts/ui/readme-assets.mjs +30 -0
  266. package/scripts/ui/readme-shots.mjs +42 -0
  267. package/scripts/ui/record.mjs +225 -0
  268. package/scripts/ui/seed-admin.mjs +68 -0
  269. package/scripts/ui/seed-demo.mjs +83 -0
  270. package/scripts/ui/seed-industrial-demo.mjs +171 -0
  271. package/scripts/ui/shot-hero.mjs +25 -0
  272. package/scripts/ui/shots.mjs +75 -0
  273. package/scripts/ui/sim-ui-shot.mjs +16 -0
  274. package/scripts/ui/verify-nav.mjs +51 -0
  275. package/scripts/ui/verify-responsive.mjs +285 -0
  276. package/server/api/system/config-groups/[id].patch.ts +1 -1
  277. package/server/api/system/config-groups/index.post.ts +1 -1
  278. package/server/api/system/settings/events.get.ts +1 -1
  279. package/server/api/system/settings/index.patch.ts +1 -1
  280. package/server/api/workshop/agent-tools/invoke.post.ts +16 -2
  281. package/server/api/workshop/aml/datasets/[id].get.ts +8 -1
  282. package/server/api/workshop/daq/index.get.ts +3 -1
  283. package/server/api/workshop/daq/infra/reconnect.post.ts +1 -1
  284. package/server/api/workshop/daq/templates/[key].delete.ts +1 -0
  285. package/server/api/workshop/daq/templates/[key].patch.ts +1 -0
  286. package/server/api/workshop/daq/templates/index.post.ts +1 -0
  287. package/server/api/workshop/dcw/[id]/write.post.ts +10 -2
  288. package/server/api/workshop/dcw/[id].delete.ts +5 -2
  289. package/server/api/workshop/dcw/index.get.ts +5 -0
  290. package/server/api/workshop/dcw/lines/[id].patch.ts +1 -1
  291. package/server/api/workshop/dcw/params/[id]/read.post.ts +17 -0
  292. package/server/api/workshop/dcw/params/[id]/write.post.ts +21 -0
  293. package/server/api/workshop/dcw/params/[id].delete.ts +19 -0
  294. package/server/api/workshop/dcw/params/[id].patch.ts +23 -0
  295. package/server/api/workshop/dcw/params/index.get.ts +27 -0
  296. package/server/api/workshop/dcw/params/index.post.ts +25 -0
  297. package/server/api/workshop/permissions/index.get.ts +3 -1
  298. package/server/plugins/aw-plugins.ts +23 -10
  299. package/server/plugins/dev-stability-guard.ts +3 -1
  300. package/server/plugins/system-config.ts +6 -1
  301. package/server/plugins-builtin/serial-bridge/client.mjs +210 -0
  302. package/server/plugins-builtin/serial-bridge/drivers.mjs +409 -0
  303. package/server/plugins-builtin/serial-bridge/i18n.json +62 -0
  304. package/server/plugins-builtin/serial-bridge/index.mjs +247 -0
  305. package/server/plugins-builtin/serial-bridge/lib.mjs +208 -0
  306. package/server/plugins-builtin/serial-bridge/rtu.mjs +168 -0
  307. package/server/services/system-config.ts +28 -9
  308. package/server/services/workshop/agents/adapters/one-shot-cli-agent.ts +2 -1
  309. package/server/services/workshop/agents/agent-interface.ts +8 -6
  310. package/server/services/workshop/agents/base-agent.ts +18 -4
  311. package/server/services/workshop/agents/claude-agent.ts +7 -3
  312. package/server/services/workshop/agents/codex-agent.ts +3 -3
  313. package/server/services/workshop/agents/dsh-agent.ts +3 -3
  314. package/server/services/workshop/agents/goose-agent.ts +0 -1
  315. package/server/services/workshop/agents/harness-terminal.ts +14 -1
  316. package/server/services/workshop/agents/hermes-agent.ts +4 -2
  317. package/server/services/workshop/agents/host-tool-bridge.ts +5 -1
  318. package/server/services/workshop/agents/industrial-context.ts +4 -1
  319. package/server/services/workshop/agents/industrial-tools.ts +164 -6
  320. package/server/services/workshop/agents/omp-agent.ts +15 -9
  321. package/server/services/workshop/agents/opencode-agent.ts +47 -21
  322. package/server/services/workshop/agents/qwen-agent.ts +10 -5
  323. package/server/services/workshop/aml/entity.ts +3 -1
  324. package/server/services/workshop/aml/python-runtime.ts +3 -2
  325. package/server/services/workshop/daq/bus/mqtt.adapter.ts +8 -4
  326. package/server/services/workshop/daq/daq-controller.ts +25 -5
  327. package/server/services/workshop/daq/daq-runtime.ts +5 -3
  328. package/server/services/workshop/daq/drivers.ts +141 -11
  329. package/server/services/workshop/daq/host-ports.ts +3 -2
  330. package/server/services/workshop/daq/storage/timescale.adapter.ts +3 -1
  331. package/server/services/workshop/db/channel.repo.ts +4 -0
  332. package/server/services/workshop/db/ops.repo.ts +5 -2
  333. package/server/services/workshop/db/retention.ts +8 -3
  334. package/server/services/workshop/dcw/dcw-controller.ts +147 -16
  335. package/server/services/workshop/dcw/dcw-product.repo.ts +38 -1
  336. package/server/services/workshop/dcw/dcw-runtime.ts +3 -2
  337. package/server/services/workshop/dcw/drivers.ts +90 -4
  338. package/server/services/workshop/dcw/param-conversion.ts +78 -0
  339. package/server/services/workshop/dcw/param-limits.ts +142 -0
  340. package/server/services/workshop/dcw/param-map.repo.ts +305 -0
  341. package/server/services/workshop/dcw/plugin-bridge.ts +45 -0
  342. package/server/services/workshop/dcw/recipe-rollback-manager.ts +13 -7
  343. package/server/services/workshop/plugins/host.mjs +30 -0
  344. package/server/services/workshop/runtime/agent-runtime.ts +4 -0
  345. package/server/services/workshop/runtime/manager.ts +9 -2
  346. package/server/services/workshop/settings.ts +4 -2
  347. package/server/types/pg.d.ts +49 -0
  348. package/server/utils/stability-severity.ts +13 -2
  349. package/shared/config/groups.mjs +22 -1
  350. package/shared/config/home.d.mts +28 -0
  351. package/shared/daq-protocol.ts +15 -0
  352. package/shared/dcw-protocol.ts +136 -0
  353. package/uno.config.ts +12 -1
  354. package/.output/public/_nuxt/8NMOXZOV.js +0 -1
  355. package/.output/public/_nuxt/BFkgkW8u.js +0 -4
  356. package/.output/public/_nuxt/C5gUkRwn.js +0 -1
  357. package/.output/public/_nuxt/CM12FuB42.js +0 -1
  358. package/.output/public/_nuxt/CZiw7sEV.js +0 -1
  359. package/.output/public/_nuxt/Cc_9VzD42.js +0 -1
  360. package/.output/public/_nuxt/CdPzkOMV.js +0 -1
  361. package/.output/public/_nuxt/CmsOtOAA2.js +0 -1
  362. package/.output/public/_nuxt/D1YDxZpZ.js +0 -1
  363. package/.output/public/_nuxt/D20Yamr4.js +0 -1
  364. package/.output/public/_nuxt/DAe0h2MB.js +0 -1
  365. package/.output/public/_nuxt/DmqknNvV.js +0 -18
  366. package/.output/public/_nuxt/DnUuIR83.js +0 -1
  367. package/.output/public/_nuxt/S_fVQwJK.js +0 -1
  368. package/.output/public/_nuxt/TownView.0oLiQgTC.css +0 -1
  369. package/.output/public/_nuxt/_id_.D-SYuyZb.css +0 -1
  370. package/.output/public/_nuxt/_id_.hma_BU6T.css +0 -1
  371. package/.output/public/_nuxt/_wsId_.B12v3PhY.css +0 -1
  372. package/.output/public/_nuxt/agents.BV70ioCv.css +0 -1
  373. package/.output/public/_nuxt/ahgEJu2R.js +0 -1
  374. package/.output/public/_nuxt/aml.COEKNNqK.css +0 -1
  375. package/.output/public/_nuxt/builds/meta/4457d63f-0866-4cea-b320-04a321f24795.json +0 -1
  376. package/.output/public/_nuxt/channel-templates.C-M5nKcC.css +0 -1
  377. package/.output/public/_nuxt/daq.B3265ZDn.css +0 -1
  378. package/.output/public/_nuxt/dcw.DLYZqEhT.css +0 -1
  379. package/.output/public/_nuxt/default.BXI_fZUi.css +0 -1
  380. package/.output/public/_nuxt/entry.BB-Eeh-J.css +0 -1
  381. package/.output/public/_nuxt/logs.CqFyMrJw.css +0 -1
  382. package/.output/public/_nuxt/monitor.B--1dPzs.css +0 -1
  383. package/.output/public/_nuxt/pages.ooEzrMm9.css +0 -1
  384. package/.output/public/_nuxt/permissions.B1pjGChZ.css +0 -1
  385. package/.output/public/_nuxt/plugins.5e5chZ67.css +0 -1
  386. package/.output/public/_nuxt/pz2JDAM7.js +0 -2
  387. package/.output/public/_nuxt/settings.Dm3M0RLy.css +0 -1
  388. package/.output/public/_nuxt/teams.BC75EGnR.css +0 -1
  389. package/.output/public/_nuxt/tokens.xRb1fSPU.css +0 -1
  390. package/.output/public/_nuxt/users.CXnP2E08.css +0 -1
  391. package/.output/public/_nuxt/workshop.Jk5HxWPE.css +0 -1
  392. package/.output/server/chunks/build/TownView-jVazYOjN.mjs.map +0 -1
  393. package/.output/server/chunks/build/_id_-CfVosNg3.mjs.map +0 -1
  394. package/.output/server/chunks/build/_id_-Hwr4rZpr.mjs.map +0 -1
  395. package/.output/server/chunks/build/agents-Bvin73QY.mjs.map +0 -1
  396. package/.output/server/chunks/build/daq-C03Uu5UE.mjs.map +0 -1
  397. package/.output/server/chunks/build/pages-BO7yZsXA.mjs.map +0 -1
  398. package/.output/server/chunks/build/settings-DoQ2Oq3P.mjs.map +0 -1
  399. package/.output/server/chunks/build/teams-2kz3CusY.mjs.map +0 -1
  400. package/.output/server/chunks/build/town-BOl6hs9B.mjs.map +0 -1
  401. package/.output/server/chunks/build/useDaqStream-CIBaiGAl.mjs.map +0 -1
  402. package/.output/server/chunks/build/useDcwStream-CBbiYnWe.mjs.map +0 -1
  403. package/.output/server/chunks/build/workspaces-BuydxM-3.mjs.map +0 -1
  404. /package/.output/public/_nuxt/{36oeS8_R2.js → 36oeS8_R.js} +0 -0
  405. /package/.output/public/_nuxt/{CYWVXZTS.js → CYWVXZTS2.js} +0 -0
@@ -2,13 +2,13 @@ import { _ as _plugin_vue_export_helper_default, u as useI18n, c as useHead$1, a
2
2
  import { s as spin_default } from './spin-HVY81X_L.mjs';
3
3
  import { a as apiErrorMessage } from './api-error-dul30BYQ.mjs';
4
4
  import { a as useWorkshopWs } from './useWorkshopWs-C_I7q9As.mjs';
5
- import { u as useDcwStream } from './useDcwStream-CBbiYnWe.mjs';
6
- import { u as useDaqStream } from './useDaqStream-CIBaiGAl.mjs';
5
+ import { u as useDcwStream } from './useDcwStream-UPiX-3iO.mjs';
6
+ import { u as useDaqStream } from './useDaqStream-DfCFpb3p.mjs';
7
7
  import { u as useDeviceTwins } from './useDeviceTwins-Yko6nNPF.mjs';
8
8
  import { u as useOpsLog } from './useOpsLog-CO_VWh7t.mjs';
9
9
  import { defineComponent, computed, reactive, ref, watch, mergeProps, unref, withCtx, createTextVNode, toDisplayString, createVNode, openBlock, createBlock, withDirectives, Fragment, renderList, vModelSelect, vModelText, createCommentVNode, useSSRContext } from 'vue';
10
10
  import { ssrRenderAttrs, ssrInterpolate, ssrRenderAttr, ssrRenderClass, ssrRenderComponent, ssrIncludeBooleanAttr, ssrRenderList, ssrLooseContain, ssrLooseEqual, ssrRenderDynamicModel, ssrRenderStyle } from 'vue/server-renderer';
11
- import { bs as DAQ_TEMPLATES, bv as DAQ_DRIVERS, bu as daqKeyFromRef, bx as DAQ_TEMPLATE_ICONS } from '../_/nitro.mjs';
11
+ import { bu as DAQ_TEMPLATES, bx as DAQ_DRIVERS, by as daqKeyFromRef, bz as DAQ_TEMPLATE_ICONS } from '../_/nitro.mjs';
12
12
  import 'unhead/utils';
13
13
  import '../routes/renderer.mjs';
14
14
  import 'unhead/server';
@@ -216,41 +216,41 @@ var DaqNodeRow_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
216
216
  });
217
217
  return (_ctx, _push, _parent, _attrs) => {
218
218
  const _component_NuxtLink = NuxtLink;
219
- _push(`<tr${ssrRenderAttrs(mergeProps({ class: { "row-recipe-alarm": ctx.value.alarm } }, _attrs))} data-v-86569a81><td data-v-86569a81><span class="mono dim" data-v-86569a81>${ssrInterpolate(__props.n.id.slice(0, 8))}</span><b data-v-86569a81>${ssrInterpolate(__props.n.name)}</b><small class="mono ch" data-v-86569a81>${ssrInterpolate(ctx.value.tpl)}</small></td><td data-v-86569a81><span class="${ssrRenderClass([[ctx.value.pill.key], "st-pill"])}"${ssrRenderAttr("title", ctx.value.pill.tip)} data-v-86569a81>${ssrInterpolate(ctx.value.pill.label)}</span></td><td class="${ssrRenderClass([{
219
+ _push(`<tr${ssrRenderAttrs(mergeProps({ class: { "row-recipe-alarm": ctx.value.alarm } }, _attrs))} data-v-4b6f87e1><td data-v-4b6f87e1><span class="mono dim" data-v-4b6f87e1>${ssrInterpolate(__props.n.id.slice(0, 8))}</span><b data-v-4b6f87e1>${ssrInterpolate(__props.n.name)}</b><small class="mono ch" data-v-4b6f87e1>${ssrInterpolate(ctx.value.tpl)}</small></td><td data-v-4b6f87e1><span class="${ssrRenderClass([[ctx.value.pill.key], "st-pill"])}"${ssrRenderAttr("title", ctx.value.pill.tip)} data-v-4b6f87e1>${ssrInterpolate(ctx.value.pill.label)}</span></td><td class="${ssrRenderClass([{
220
220
  "stale": !ctx.value.live,
221
221
  "val-alarm": __props.n.state === "alarm" || ctx.value.alarm
222
- }, "mono val"])}"${ssrRenderAttr("title", ctx.value.live ? void 0 : ctx.value.pill.tip)} data-v-86569a81>${ssrInterpolate(__props.n.value != null ? __props.n.value.toFixed(__props.n.decimals) : "--")} <small data-v-86569a81>${ssrInterpolate(__props.n.unit)}</small></td><td class="trend-cell" data-v-86569a81><svg class="trend" viewBox="0 0 120 26" preserveAspectRatio="none"${ssrRenderAttr("title", _ctx.$t("daq.k1trnd002"))} data-v-86569a81>`);
223
- if (ctx.value.limMin != null) _push(`<line class="lim" x1="0"${ssrRenderAttr("y1", ctx.value.limMin)} x2="120"${ssrRenderAttr("y2", ctx.value.limMin)} data-v-86569a81></line>`);
222
+ }, "mono val"])}"${ssrRenderAttr("title", ctx.value.live ? void 0 : ctx.value.pill.tip)} data-v-4b6f87e1>${ssrInterpolate(__props.n.value != null ? __props.n.value.toFixed(__props.n.decimals) : "--")} <small data-v-4b6f87e1>${ssrInterpolate(__props.n.unit)}</small></td><td class="trend-cell" data-v-4b6f87e1><svg class="trend" viewBox="0 0 120 26" preserveAspectRatio="none"${ssrRenderAttr("title", _ctx.$t("daq.k1trnd002"))} data-v-4b6f87e1>`);
223
+ if (ctx.value.limMin != null) _push(`<line class="lim" x1="0"${ssrRenderAttr("y1", ctx.value.limMin)} x2="120"${ssrRenderAttr("y2", ctx.value.limMin)} data-v-4b6f87e1></line>`);
224
224
  else _push(`<!---->`);
225
- if (ctx.value.limMax != null) _push(`<line class="lim max" x1="0"${ssrRenderAttr("y1", ctx.value.limMax)} x2="120"${ssrRenderAttr("y2", ctx.value.limMax)} data-v-86569a81></line>`);
225
+ if (ctx.value.limMax != null) _push(`<line class="lim max" x1="0"${ssrRenderAttr("y1", ctx.value.limMax)} x2="120"${ssrRenderAttr("y2", ctx.value.limMax)} data-v-4b6f87e1></line>`);
226
226
  else _push(`<!---->`);
227
- if (ctx.value.trend) _push(`<polyline class="${ssrRenderClass([{ alarm: __props.n.state === "alarm" || ctx.value.alarm }, "trace"])}"${ssrRenderAttr("points", ctx.value.trend)} data-v-86569a81></polyline>`);
228
- else _push(`<line class="trace-idle" x1="0"${ssrRenderAttr("y1", TREND_H / 2)} x2="120"${ssrRenderAttr("y2", TREND_H / 2)} data-v-86569a81></line>`);
229
- _push(`</svg></td><td class="mono" data-v-86569a81>${ssrInterpolate(ctx.value.interval)}</td><td class="mono" data-v-86569a81>${ssrInterpolate(ctx.value.publish)}</td><td data-v-86569a81><span class="${ssrRenderClass([{ planned: driverPlanned(__props.n.driver) }, "drv-tag"])}"${ssrRenderAttr("title", driverPlanned(__props.n.driver) ? _ctx.$t("daq.k1plndrv138") : "")} data-v-86569a81>${ssrInterpolate(__props.n.driver)}</span></td><td data-v-86569a81><select class="line-sel"${ssrRenderAttr("value", __props.n.lineId)}${ssrRenderAttr("title", _ctx.$t("daq.k3q23v3010"))} data-v-86569a81><option value="" data-v-86569a81>${ssrInterpolate(_ctx.$t("daq.k3ootr6053"))}</option><!--[-->`);
227
+ if (ctx.value.trend) _push(`<polyline class="${ssrRenderClass([{ alarm: __props.n.state === "alarm" || ctx.value.alarm }, "trace"])}"${ssrRenderAttr("points", ctx.value.trend)} data-v-4b6f87e1></polyline>`);
228
+ else _push(`<line class="trace-idle" x1="0"${ssrRenderAttr("y1", TREND_H / 2)} x2="120"${ssrRenderAttr("y2", TREND_H / 2)} data-v-4b6f87e1></line>`);
229
+ _push(`</svg></td><td class="mono" data-v-4b6f87e1>${ssrInterpolate(ctx.value.interval)}</td><td class="mono" data-v-4b6f87e1>${ssrInterpolate(ctx.value.publish)}</td><td data-v-4b6f87e1><span class="${ssrRenderClass([{ planned: driverPlanned(__props.n.driver) }, "drv-tag"])}"${ssrRenderAttr("title", driverPlanned(__props.n.driver) ? _ctx.$t("daq.k1plndrv138") : "")} data-v-4b6f87e1>${ssrInterpolate(__props.n.driver)}</span></td><td data-v-4b6f87e1><select class="line-sel"${ssrRenderAttr("value", __props.n.lineId)}${ssrRenderAttr("title", _ctx.$t("daq.k3q23v3010"))} data-v-4b6f87e1><option value="" data-v-4b6f87e1>${ssrInterpolate(_ctx.$t("daq.k3ootr6053"))}</option><!--[-->`);
230
230
  ssrRenderList(unref(dcw).lines, (l) => {
231
- _push(`<option${ssrRenderAttr("value", l.id)} data-v-86569a81>${ssrInterpolate(l.name)}</option>`);
231
+ _push(`<option${ssrRenderAttr("value", l.id)} data-v-4b6f87e1>${ssrInterpolate(l.name)}</option>`);
232
232
  });
233
- _push(`<!--]--></select></td><td data-v-86569a81>`);
234
- if (__props.n.lineId) _push(`<span class="${ssrRenderClass([{ on: ctx.value.lineActive }, "run-pill"])}"${ssrRenderAttr("title", _ctx.$t("daq.k1runtipc131"))} data-v-86569a81><span class="rp-dot" data-v-86569a81></span> ${ssrInterpolate(ctx.value.lineActive ? _ctx.$t("daq.k3vp67i096") : _ctx.$t("daq.k3ozyqz117"))}</span>`);
235
- else _push(`<span class="run-pill na" data-v-86569a81>${ssrInterpolate(_ctx.$t("daq.k3ootr6053"))}</span>`);
236
- _push(`</td><td class="prod-cell" data-v-86569a81>`);
237
- if (__props.n.lineId && ctx.value.lineActive) _push(`<!--[--><b${ssrRenderAttr("title", _ctx.$t("daq.k1prdrtip132"))} data-v-86569a81>${ssrInterpolate(ctx.value.lineProduct || "--")}</b><small class="mono"${ssrRenderAttr("title", _ctx.$t("daq.k1prdrtip132"))} data-v-86569a81>${ssrInterpolate(ctx.value.lineRecipe || "--")}</small><!--]-->`);
238
- else _push(`<span class="dim" data-v-86569a81>--</span>`);
239
- _push(`</td><td data-v-86569a81><div class="dev-binds" data-v-86569a81><!--[-->`);
233
+ _push(`<!--]--></select></td><td data-v-4b6f87e1>`);
234
+ if (__props.n.lineId) _push(`<span class="${ssrRenderClass([{ on: ctx.value.lineActive }, "run-pill"])}"${ssrRenderAttr("title", _ctx.$t("daq.k1runtipc131"))} data-v-4b6f87e1><span class="rp-dot" data-v-4b6f87e1></span> ${ssrInterpolate(ctx.value.lineActive ? _ctx.$t("daq.k3vp67i096") : _ctx.$t("daq.k3ozyqz117"))}</span>`);
235
+ else _push(`<span class="run-pill na" data-v-4b6f87e1>${ssrInterpolate(_ctx.$t("daq.k3ootr6053"))}</span>`);
236
+ _push(`</td><td class="prod-cell" data-v-4b6f87e1>`);
237
+ if (__props.n.lineId && ctx.value.lineActive) _push(`<!--[--><b${ssrRenderAttr("title", _ctx.$t("daq.k1prdrtip132"))} data-v-4b6f87e1>${ssrInterpolate(ctx.value.lineProduct || "--")}</b><small class="mono"${ssrRenderAttr("title", _ctx.$t("daq.k1prdrtip132"))} data-v-4b6f87e1>${ssrInterpolate(ctx.value.lineRecipe || "--")}</small><!--]-->`);
238
+ else _push(`<span class="dim" data-v-4b6f87e1>--</span>`);
239
+ _push(`</td><td data-v-4b6f87e1><div class="dev-binds" data-v-4b6f87e1><!--[-->`);
240
240
  ssrRenderList(nodeDeviceIds(__props.n), (did) => {
241
- _push(`<span class="dev-bind-chip"${ssrRenderAttr("title", _ctx.$t("daq.k2bindtip137"))} data-v-86569a81>${ssrInterpolate(deviceNameById(did))} <span class="dev-unbind" title="unbind" data-v-86569a81>✕</span></span>`);
241
+ _push(`<span class="dev-bind-chip"${ssrRenderAttr("title", _ctx.$t("daq.k2bindtip137"))} data-v-4b6f87e1>${ssrInterpolate(deviceNameById(did))} <span class="dev-unbind" title="unbind" data-v-4b6f87e1>✕</span></span>`);
242
242
  });
243
- _push(`<!--]--><select class="line-sel dev-add"${ssrRenderAttr("value", "")}${ssrRenderAttr("title", _ctx.$t("daq.k2bindtip137"))} data-v-86569a81><option value="" data-v-86569a81>${ssrInterpolate(_ctx.$t("daq.k3own4q056"))}</option><!--[-->`);
243
+ _push(`<!--]--><select class="line-sel dev-add"${ssrRenderAttr("value", "")}${ssrRenderAttr("title", _ctx.$t("daq.k2bindtip137"))} data-v-4b6f87e1><option value="" data-v-4b6f87e1>${ssrInterpolate(_ctx.$t("daq.k3own4q056"))}</option><!--[-->`);
244
244
  ssrRenderList(bindableDeviceTwins.value, (d) => {
245
- _push(`<option${ssrRenderAttr("value", d.id)}${ssrIncludeBooleanAttr((__props.n.deviceIds ?? []).includes(d.id)) ? " disabled" : ""} data-v-86569a81>${ssrInterpolate(deviceNameById(d.id))}</option>`);
245
+ _push(`<option${ssrRenderAttr("value", d.id)}${ssrIncludeBooleanAttr((__props.n.deviceIds ?? []).includes(d.id)) ? " disabled" : ""} data-v-4b6f87e1>${ssrInterpolate(deviceNameById(d.id))}</option>`);
246
246
  });
247
- _push(`<!--]--></select></div></td><td class="right" data-v-86569a81><button class="${ssrRenderClass([{ off: !__props.n.enabled }, "node-toggle"])}"${ssrRenderAttr("title", __props.n.enabled ? _ctx.$t("daq.k1nodestop146") : _ctx.$t("daq.k1nodestart147"))} data-v-86569a81><span class="${ssrRenderClass(__props.n.enabled ? "i-tabler-player-pause" : "i-tabler-player-play")}" data-v-86569a81></span> ${ssrInterpolate(__props.n.enabled ? _ctx.$t("daq.k1nodestop146") : _ctx.$t("daq.k1nodestart147"))}</button>`);
247
+ _push(`<!--]--></select></div></td><td class="right" data-v-4b6f87e1><button class="${ssrRenderClass([{ off: !__props.n.enabled }, "node-toggle"])}"${ssrRenderAttr("title", __props.n.enabled ? _ctx.$t("daq.k1nodestop146") : _ctx.$t("daq.k1nodestart147"))} data-v-4b6f87e1><span class="${ssrRenderClass(__props.n.enabled ? "i-tabler-player-pause" : "i-tabler-player-play")}" data-v-4b6f87e1></span> ${ssrInterpolate(__props.n.enabled ? _ctx.$t("daq.k1nodestop146") : _ctx.$t("daq.k1nodestart147"))}</button>`);
248
248
  _push(ssrRenderComponent(_component_NuxtLink, {
249
249
  class: "console-link",
250
250
  to: `/daq/${__props.n.id}`
251
251
  }, {
252
252
  default: withCtx((_, _push, _parent, _scopeId) => {
253
- if (_push) _push(`<span class="i-tabler-dashboard" data-v-86569a81${_scopeId}></span> ${ssrInterpolate(_ctx.$t("daq.k3o3jg2074"))}`);
253
+ if (_push) _push(`<span class="i-tabler-dashboard" data-v-4b6f87e1${_scopeId}></span> ${ssrInterpolate(_ctx.$t("daq.k3o3jg2074"))}`);
254
254
  else return [createVNode("span", { class: "i-tabler-dashboard" }), createTextVNode(" " + toDisplayString(_ctx.$t("daq.k3o3jg2074")), 1)];
255
255
  }),
256
256
  _: 1
@@ -267,10 +267,12 @@ DaqNodeRow_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
267
267
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/DaqNodeRow.vue");
268
268
  return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
269
269
  };
270
- var DaqNodeRow_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(DaqNodeRow_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-86569a81"]]), { __name: "WorkshopDaqNodeRow" });
270
+ var DaqNodeRow_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(DaqNodeRow_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-4b6f87e1"]]), { __name: "WorkshopDaqNodeRow" });
271
271
  //#endregion
272
272
  //#region app/pages/daq/index.vue?vue&type=script&setup=true&lang.ts
273
273
  /** 数据新鲜度:超过 max(4×有效周期, 12s) 无新样本视为「采不到数据」(容忍 5s REST 刷新拍与时钟偏差) */
274
+ var VS_ROW_H = 42;
275
+ var VS_OVERSCAN = 8;
274
276
  var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
275
277
  __name: "index",
276
278
  __ssrInlineRender: true,
@@ -445,6 +447,42 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
445
447
  if (!searchMatch(n)) return false;
446
448
  return true;
447
449
  }));
450
+ const nodesTableRef = ref(null);
451
+ const winStart = ref(0);
452
+ const winEnd = ref(60);
453
+ const visibleNodes = computed(() => {
454
+ const list = filteredNodes.value;
455
+ const s = Math.min(winStart.value, Math.max(0, list.length - 1));
456
+ return list.slice(s, winEnd.value);
457
+ });
458
+ const padTopPx = computed(() => winStart.value * VS_ROW_H);
459
+ const padBottomPx = computed(() => Math.max(0, (filteredNodes.value.length - winEnd.value) * VS_ROW_H));
460
+ let winRaf = 0;
461
+ function updateNodeWindow() {
462
+ const el = nodesTableRef.value;
463
+ if (!el) return;
464
+ const total = filteredNodes.value.length;
465
+ const vh = (void 0).innerHeight || 800;
466
+ const tableTop = el.getBoundingClientRect().top + (void 0).scrollY + 40;
467
+ const firstVisible = Math.floor(((void 0).scrollY - tableTop) / VS_ROW_H);
468
+ const count = Math.ceil(vh / VS_ROW_H) + 16;
469
+ const s = Math.max(0, Math.min(firstVisible - VS_OVERSCAN, Math.max(0, total - 1)));
470
+ const e = Math.max(s, Math.min(total, s + count));
471
+ if (s !== winStart.value) winStart.value = s;
472
+ if (e !== winEnd.value) winEnd.value = e;
473
+ }
474
+ function scheduleNodeWindow() {
475
+ if (winRaf) return;
476
+ winRaf = requestAnimationFrame(() => {
477
+ winRaf = 0;
478
+ updateNodeWindow();
479
+ });
480
+ }
481
+ watch(() => filteredNodes.value.length, () => {
482
+ winStart.value = 0;
483
+ winEnd.value = Math.min(filteredNodes.value.length, winEnd.value || 60);
484
+ scheduleNodeWindow();
485
+ });
448
486
  const deviceTwins = useDeviceTwins();
449
487
  const nodeDevices = /* @__PURE__ */ new Map();
450
488
  watch(() => deviceTwins.twins, (list) => {
@@ -469,7 +507,8 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
469
507
  const addTest = ref(null);
470
508
  const addSaving = ref(false);
471
509
  const addError = ref("");
472
- const addDriverMeta = computed(() => DAQ_DRIVERS.find((d) => d.kind === addDriver.value));
510
+ const driverCatalog = computed(() => daq.meta.drivers.length ? daq.meta.drivers : DAQ_DRIVERS.map((d) => ({ ...d })));
511
+ const addDriverMeta = computed(() => driverCatalog.value.find((d) => d.kind === addDriver.value));
473
512
  const addFields = computed(() => addDriverMeta.value?.configFields ?? []);
474
513
  const driverReady = (kind) => daq.meta.drivers.find((d) => d.kind === kind)?.status !== "planned" && daq.meta.driverAvailable?.[kind] !== false;
475
514
  watch(addDriver, () => {
@@ -515,10 +554,10 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
515
554
  const _component_NuxtLink = NuxtLink;
516
555
  const _component_a_spin = spin_default;
517
556
  const _component_WorkshopDaqNodeRow = DaqNodeRow_default;
518
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-e2087525><div class="aw-page-head" data-v-e2087525><div data-v-e2087525><p class="aw-kicker" data-v-e2087525> AGENTWORKSHOP / DAQ CONSOLE </p><h1 data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1emg364011"))}</h1><p class="sub" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1wmg2bz012"))}</p></div><div class="badges mono" data-v-e2087525><span class="badge"${ssrRenderAttr("title", _ctx.$t("daq.k1tsdbtip133"))} data-v-e2087525>TSDB · ${ssrInterpolate(unref(daq).meta.tsdb)}</span><span class="badge"${ssrRenderAttr("title", _ctx.$t("daq.k1queuet134"))} data-v-e2087525>QUEUE · ${ssrInterpolate(unref(daq).meta.queue)}</span></div></div>`);
557
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-74f24580><div class="aw-page-head" data-v-74f24580><div data-v-74f24580><p class="aw-kicker" data-v-74f24580> AGENTWORKSHOP / DAQ CONSOLE </p><h1 data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1emg364011"))}</h1><p class="sub" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1wmg2bz012"))}</p></div><div class="badges mono" data-v-74f24580><span class="badge"${ssrRenderAttr("title", _ctx.$t("daq.k1tsdbtip133"))} data-v-74f24580>TSDB · ${ssrInterpolate(unref(daq).meta.tsdb)}</span><span class="badge"${ssrRenderAttr("title", _ctx.$t("daq.k1queuet134"))} data-v-74f24580>QUEUE · ${ssrInterpolate(unref(daq).meta.queue)}</span></div></div>`);
519
558
  if (unref(daq).loaded && filteredLine.value && filteredLineState.value) {
520
- _push(`<div class="${ssrRenderClass([{ good: filteredLineState.value.active }, "infra-banner"])}" data-v-e2087525><span class="${ssrRenderClass(filteredLineState.value.active ? "i-tabler-circle-check" : "i-tabler-info-circle")}" data-v-e2087525></span><span class="txt" data-v-e2087525>`);
521
- if (filteredLineState.value.active) _push(`<!--[-->${ssrInterpolate(_ctx.$t("daq.k3ktxbr085"))}${ssrInterpolate(filteredLine.value.name)}」${ssrInterpolate(_ctx.$t("daq.k15lvw0o105"))}<b data-v-e2087525>${ssrInterpolate(filteredLineState.value.productName)}</b> · Recipe:<b data-v-e2087525>${ssrInterpolate(filteredLineState.value.recipeName)}</b><small class="mono" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k400lb086"))} ${ssrInterpolate(filteredLineState.value.runId?.slice(0, 8))} · ${ssrInterpolate(_ctx.$t("daq.k3zkt2106"))} ${ssrInterpolate(filteredLineState.value.startedAt?.slice(11, 19))} ${ssrInterpolate(_ctx.$t("daq.k69vag8108"))} ${ssrInterpolate(filteredLineState.value.taggedSamples)} ${ssrInterpolate(_ctx.$t("daq.k4118o092"))}</small><!--]-->`);
559
+ _push(`<div class="${ssrRenderClass([{ good: filteredLineState.value.active }, "infra-banner"])}" data-v-74f24580><span class="${ssrRenderClass(filteredLineState.value.active ? "i-tabler-circle-check" : "i-tabler-info-circle")}" data-v-74f24580></span><span class="txt" data-v-74f24580>`);
560
+ if (filteredLineState.value.active) _push(`<!--[-->${ssrInterpolate(_ctx.$t("daq.k3ktxbr085"))}${ssrInterpolate(filteredLine.value.name)}」${ssrInterpolate(_ctx.$t("daq.k15lvw0o105"))}<b data-v-74f24580>${ssrInterpolate(filteredLineState.value.productName)}</b> · Recipe:<b data-v-74f24580>${ssrInterpolate(filteredLineState.value.recipeName)}</b><small class="mono" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k400lb086"))} ${ssrInterpolate(filteredLineState.value.runId?.slice(0, 8))} · ${ssrInterpolate(_ctx.$t("daq.k3zkt2106"))} ${ssrInterpolate(filteredLineState.value.startedAt?.slice(11, 19))} ${ssrInterpolate(_ctx.$t("daq.k69vag8108"))} ${ssrInterpolate(filteredLineState.value.taggedSamples)} ${ssrInterpolate(_ctx.$t("daq.k4118o092"))}</small><!--]-->`);
522
561
  else _push(`<!--[-->${ssrInterpolate(_ctx.$t("daq.k3ktxbr085"))}${ssrInterpolate(filteredLine.value.name)}」${ssrInterpolate(_ctx.$t("daq.k12uge2o107"))}<!--]-->`);
523
562
  _push(`</span>`);
524
563
  _push(ssrRenderComponent(_component_NuxtLink, {
@@ -533,7 +572,7 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
533
572
  }, _parent));
534
573
  _push(`</div>`);
535
574
  } else if (unref(daq).loaded && !anyLineActive.value) {
536
- _push(`<div class="infra-banner" data-v-e2087525><span class="i-tabler-info-circle" data-v-e2087525></span><span class="txt" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k19onw5w013"))}`);
575
+ _push(`<div class="infra-banner" data-v-74f24580><span class="i-tabler-info-circle" data-v-74f24580></span><span class="txt" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k19onw5w013"))}`);
537
576
  _push(ssrRenderComponent(_component_NuxtLink, { to: "/dcw" }, {
538
577
  default: withCtx((_, _push, _parent, _scopeId) => {
539
578
  if (_push) _push(`${ssrInterpolate(_ctx.$t("daq.k1b2tk5c014"))}`);
@@ -543,19 +582,19 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
543
582
  }, _parent));
544
583
  _push(`${ssrInterpolate(_ctx.$t("daq.k1u9wnlg015"))}</span></div>`);
545
584
  } else _push(`<!---->`);
546
- if (unref(daq).meta.infra?.degraded) _push(`<div class="infra-banner" data-v-e2087525><span class="i-tabler-alert-triangle" data-v-e2087525></span><span class="txt" data-v-e2087525>${ssrInterpolate(unref(daq).meta.infra.warning)}</span><button class="pill-btn"${ssrIncludeBooleanAttr(reconnecting.value) ? " disabled" : ""} data-v-e2087525>${ssrInterpolate(reconnecting.value ? _ctx.$t("daq.k1ld43ur094") : _ctx.$t("daq.kzg9805110"))}</button></div>`);
585
+ if (unref(daq).meta.infra?.degraded) _push(`<div class="infra-banner" data-v-74f24580><span class="i-tabler-alert-triangle" data-v-74f24580></span><span class="txt" data-v-74f24580>${ssrInterpolate(unref(daq).meta.infra.warning)}</span><button class="pill-btn"${ssrIncludeBooleanAttr(reconnecting.value) ? " disabled" : ""} data-v-74f24580>${ssrInterpolate(reconnecting.value ? _ctx.$t("daq.k1ld43ur094") : _ctx.$t("daq.kzg9805110"))}</button></div>`);
547
586
  else _push(`<!---->`);
548
587
  if (unref(daq).alarms.length) {
549
- _push(`<div class="alarm-bar" data-v-e2087525><span class="bar-label" data-v-e2087525><span class="i-tabler-bell-ringing bell" data-v-e2087525></span> ${ssrInterpolate(_ctx.$t("daq.k1alarm141"))} <b class="mono" data-v-e2087525>${ssrInterpolate(unref(daq).alarms.length)}</b></span><div class="alarm-scroll" data-v-e2087525><!--[-->`);
588
+ _push(`<div class="alarm-bar" data-v-74f24580><span class="bar-label" data-v-74f24580><span class="i-tabler-bell-ringing bell" data-v-74f24580></span> ${ssrInterpolate(_ctx.$t("daq.k1alarm141"))} <b class="mono" data-v-74f24580>${ssrInterpolate(unref(daq).alarms.length)}</b></span><div class="alarm-scroll" data-v-74f24580><!--[-->`);
550
589
  ssrRenderList(unref(daq).alarms, (a) => {
551
- _push(`<span class="alarm-item"${ssrRenderAttr("title", _ctx.$t("daq.k1esc143", { p0: a.escalation }))} data-v-e2087525><b data-v-e2087525>${ssrInterpolate(a.nodeName)}</b><span class="mono dim" data-v-e2087525>${ssrInterpolate(a.metric)}</span><span class="mono" data-v-e2087525>${ssrInterpolate(a.value)} ${ssrInterpolate(a.rule === "lt-min" ? "<" : ">")} ${ssrInterpolate(a.threshold)}</span>`);
552
- if (a.escalation > 0) _push(`<small class="esc mono" data-v-e2087525>+${ssrInterpolate(a.escalation)}</small>`);
590
+ _push(`<span class="alarm-item"${ssrRenderAttr("title", _ctx.$t("daq.k1esc143", { p0: a.escalation }))} data-v-74f24580><b data-v-74f24580>${ssrInterpolate(a.nodeName)}</b><span class="mono dim" data-v-74f24580>${ssrInterpolate(a.metric)}</span><span class="mono" data-v-74f24580>${ssrInterpolate(a.value)} ${ssrInterpolate(a.rule === "lt-min" ? "<" : ">")} ${ssrInterpolate(a.threshold)}</span>`);
591
+ if (a.escalation > 0) _push(`<small class="esc mono" data-v-74f24580>+${ssrInterpolate(a.escalation)}</small>`);
553
592
  else _push(`<!---->`);
554
- _push(`<button class="mini-btn ack" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1ack142"))}</button></span>`);
593
+ _push(`<button class="mini-btn ack" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1ack142"))}</button></span>`);
555
594
  });
556
595
  _push(`<!--]--></div></div>`);
557
596
  } else _push(`<!---->`);
558
- _push(`<section class="aw-tile ctrl-card" data-v-e2087525><div class="ctrl-row" data-v-e2087525><div class="ctrl-left" data-v-e2087525><button class="${ssrRenderClass([{ running: unref(daq).controller.running }, "aw-pill"])}"${ssrRenderAttr("title", _ctx.$t("daq.k1snap145"))} data-v-e2087525><span class="${ssrRenderClass(unref(daq).controller.running ? "i-tabler-player-pause" : "i-tabler-player-play")}" data-v-e2087525></span> ${ssrInterpolate(unref(daq).controller.running ? _ctx.$t("daq.kpui00095") : _ctx.$t("daq.knxpdpt111"))}</button><label class="cycle mono" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1ifahxj016"))} <input${ssrRenderAttr("value", unref(daq).controller.defaultIntervalMs)} type="number" min="200" max="60000" step="100" data-v-e2087525>ms </label><label class="cycle mono"${ssrRenderAttr("title", _ctx.$t("daq.k1e8lcoo001"))} data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1if98n0017"))} <input${ssrRenderAttr("value", unref(daq).controller.defaultPublishIntervalMs)} type="number" min="0" max="60000" step="100" data-v-e2087525>ms </label></div><div class="ctrl-right" data-v-e2087525><span class="ctrl-metrics mono" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k45uio067"))} ${ssrInterpolate(unref(daq).controller.nodesOnline)}/${ssrInterpolate(unref(daq).controller.nodesTotal)}</span><span class="sep" data-v-e2087525>·</span><span${ssrRenderAttr("title", _ctx.$t("daq.k1yztsu4002"))} data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k3xagp087"))} ${ssrInterpolate(unref(daq).meta.produced)}</span><span class="sep" data-v-e2087525>·</span><span${ssrRenderAttr("title", _ctx.$t("daq.ko09iha003"))} data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k427eu088"))} ${ssrInterpolate(unref(daq).meta.consumed)}</span><span class="sep" data-v-e2087525>·</span><span class="${ssrRenderClass({ warn: (unref(daq).meta.dropped ?? 0) > 0 })}"${ssrRenderAttr("title", _ctx.$t("daq.k1droptip135"))} data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k3w8go089"))} ${ssrInterpolate(unref(daq).meta.dropped)}</span><span class="sep" data-v-e2087525>·</span><span${ssrRenderAttr("title", _ctx.$t("daq.kj1jbmw004"))} data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k3wusd090"))} ${ssrInterpolate(unref(daq).meta.samplesStored)}</span></span><button class="aw-pill outline add-btn" data-v-e2087525><span class="i-tabler-adjustments-horizontal" data-v-e2087525></span> ${ssrInterpolate(_ctx.$t("daq.k1f5cv0s018"))}</button><button class="aw-pill add-btn" data-v-e2087525><span class="i-tabler-plus" data-v-e2087525></span> ${ssrInterpolate(_ctx.$t("daq.k1fn0ukb019"))}</button></div></div><div class="line-strip" data-v-e2087525><span class="strip-label" data-v-e2087525><span class="i-tabler-route" data-v-e2087525></span> ${ssrInterpolate(_ctx.$t("daq.k1b2o3b6020"))}<small class="mono" data-v-e2087525>${ssrInterpolate(unref(dcw).lines.length)}</small></span><div class="strip-scroll" data-v-e2087525><!--[-->`);
597
+ _push(`<section class="aw-tile ctrl-card" data-v-74f24580><div class="ctrl-row" data-v-74f24580><div class="ctrl-left" data-v-74f24580><button class="${ssrRenderClass([{ running: unref(daq).controller.running }, "aw-pill"])}"${ssrRenderAttr("title", _ctx.$t("daq.k1snap145"))} data-v-74f24580><span class="${ssrRenderClass(unref(daq).controller.running ? "i-tabler-player-pause" : "i-tabler-player-play")}" data-v-74f24580></span> ${ssrInterpolate(unref(daq).controller.running ? _ctx.$t("daq.kpui00095") : _ctx.$t("daq.knxpdpt111"))}</button><label class="cycle mono" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1ifahxj016"))} <input${ssrRenderAttr("value", unref(daq).controller.defaultIntervalMs)} type="number" min="200" max="60000" step="100" data-v-74f24580>ms </label><label class="cycle mono"${ssrRenderAttr("title", _ctx.$t("daq.k1e8lcoo001"))} data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1if98n0017"))} <input${ssrRenderAttr("value", unref(daq).controller.defaultPublishIntervalMs)} type="number" min="0" max="60000" step="100" data-v-74f24580>ms </label></div><div class="ctrl-right" data-v-74f24580><span class="ctrl-metrics mono" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k45uio067"))} ${ssrInterpolate(unref(daq).controller.nodesOnline)}/${ssrInterpolate(unref(daq).controller.nodesTotal)}</span><span class="sep" data-v-74f24580>·</span><span${ssrRenderAttr("title", _ctx.$t("daq.k1yztsu4002"))} data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k3xagp087"))} ${ssrInterpolate(unref(daq).meta.produced)}</span><span class="sep" data-v-74f24580>·</span><span${ssrRenderAttr("title", _ctx.$t("daq.ko09iha003"))} data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k427eu088"))} ${ssrInterpolate(unref(daq).meta.consumed)}</span><span class="sep" data-v-74f24580>·</span><span class="${ssrRenderClass({ warn: (unref(daq).meta.dropped ?? 0) > 0 })}"${ssrRenderAttr("title", _ctx.$t("daq.k1droptip135"))} data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k3w8go089"))} ${ssrInterpolate(unref(daq).meta.dropped)}</span><span class="sep" data-v-74f24580>·</span><span${ssrRenderAttr("title", _ctx.$t("daq.kj1jbmw004"))} data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k3wusd090"))} ${ssrInterpolate(unref(daq).meta.samplesStored)}</span></span><button class="aw-pill outline add-btn" data-v-74f24580><span class="i-tabler-adjustments-horizontal" data-v-74f24580></span> ${ssrInterpolate(_ctx.$t("daq.k1f5cv0s018"))}</button><button class="aw-pill add-btn" data-v-74f24580><span class="i-tabler-plus" data-v-74f24580></span> ${ssrInterpolate(_ctx.$t("daq.k1fn0ukb019"))}</button></div></div><div class="line-strip" data-v-74f24580><span class="strip-label" data-v-74f24580><span class="i-tabler-route" data-v-74f24580></span> ${ssrInterpolate(_ctx.$t("daq.k1b2o3b6020"))}<small class="mono" data-v-74f24580>${ssrInterpolate(unref(dcw).lines.length)}</small></span><div class="strip-scroll" data-v-74f24580><!--[-->`);
559
598
  ssrRenderList(unref(dcw).lines, (l) => {
560
599
  _push(ssrRenderComponent(_component_NuxtLink, {
561
600
  key: l.id,
@@ -570,9 +609,9 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
570
609
  }, {
571
610
  default: withCtx((_, _push, _parent, _scopeId) => {
572
611
  if (_push) {
573
- _push(`<span class="lp-dot" data-v-e2087525${_scopeId}></span><b data-v-e2087525${_scopeId}>${ssrInterpolate(l.name)}</b>`);
574
- if (unref(dcw).lineStateOf(l.id).active) _push(`<small class="lp-run" data-v-e2087525${_scopeId}>${ssrInterpolate(unref(dcw).lineStateOf(l.id).recipeName ?? _ctx.$t("daq.k3vp67i096"))}</small>`);
575
- else _push(`<small class="lp-idle" data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3zgkk021"))}</small>`);
612
+ _push(`<span class="lp-dot" data-v-74f24580${_scopeId}></span><b data-v-74f24580${_scopeId}>${ssrInterpolate(l.name)}</b>`);
613
+ if (unref(dcw).lineStateOf(l.id).active) _push(`<small class="lp-run" data-v-74f24580${_scopeId}>${ssrInterpolate(unref(dcw).lineStateOf(l.id).recipeName ?? _ctx.$t("daq.k3vp67i096"))}</small>`);
614
+ else _push(`<small class="lp-idle" data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3zgkk021"))}</small>`);
576
615
  } else return [
577
616
  createVNode("span", { class: "lp-dot" }),
578
617
  createVNode("b", null, toDisplayString(l.name), 1),
@@ -594,7 +633,7 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
594
633
  to: "/dcw"
595
634
  }, {
596
635
  default: withCtx((_, _push, _parent, _scopeId) => {
597
- if (_push) _push(`<span class="lp-dot" data-v-e2087525${_scopeId}></span><b data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1el12b1022"))}</b><small class="lp-idle" data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k8jxxe8023"))}</small>`);
636
+ if (_push) _push(`<span class="lp-dot" data-v-74f24580${_scopeId}></span><b data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1el12b1022"))}</b><small class="lp-idle" data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k8jxxe8023"))}</small>`);
598
637
  else return [
599
638
  createVNode("span", { class: "lp-dot" }),
600
639
  createVNode("b", null, toDisplayString(_ctx.$t("daq.k1el12b1022")), 1),
@@ -606,101 +645,101 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
606
645
  else _push(`<!---->`);
607
646
  _push(`</div></div></section>`);
608
647
  if (addOpen.value) {
609
- _push(`<div class="modal-mask" data-v-e2087525><div class="modal" data-v-e2087525><h3 class="m-title" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k19rioqa024"))}</h3><div class="seg-row" data-v-e2087525><button class="${ssrRenderClass([{ on: addScenario.value === "mock" }, "seg"])}" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1p5c1un025"))}</button><button class="${ssrRenderClass([{ on: addScenario.value === "real" }, "seg"])}" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1cbcp3o026"))}</button></div><div class="f-grid" data-v-e2087525><label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1fsgerc027"))}</span><select class="inp" data-v-e2087525><!--[-->`);
648
+ _push(`<div class="modal-mask" data-v-74f24580><div class="modal" data-v-74f24580><h3 class="m-title" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k19rioqa024"))}</h3><div class="seg-row" data-v-74f24580><button class="${ssrRenderClass([{ on: addScenario.value === "mock" }, "seg"])}" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1p5c1un025"))}</button><button class="${ssrRenderClass([{ on: addScenario.value === "real" }, "seg"])}" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1cbcp3o026"))}</button></div><div class="f-grid" data-v-74f24580><label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1fsgerc027"))}</span><select class="inp" data-v-74f24580><!--[-->`);
610
649
  ssrRenderList(unref(daq).templates, (t) => {
611
- _push(`<option${ssrRenderAttr("value", t.key)} data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(addTemplate.value) ? ssrLooseContain(addTemplate.value, t.key) : ssrLooseEqual(addTemplate.value, t.key)) ? " selected" : ""}>${ssrInterpolate(t.name)} · ${ssrInterpolate(t.ch)}(${ssrInterpolate(t.min)}~${ssrInterpolate(t.max)} ${ssrInterpolate(t.unit)})${ssrInterpolate(t.builtin ? "" : _ctx.$t("daq.kr45rk9097"))}</option>`);
650
+ _push(`<option${ssrRenderAttr("value", t.key)} data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(addTemplate.value) ? ssrLooseContain(addTemplate.value, t.key) : ssrLooseEqual(addTemplate.value, t.key)) ? " selected" : ""}>${ssrInterpolate(t.name)} · ${ssrInterpolate(t.ch)}(${ssrInterpolate(t.min)}~${ssrInterpolate(t.max)} ${ssrInterpolate(t.unit)})${ssrInterpolate(t.builtin ? "" : _ctx.$t("daq.kr45rk9097"))}</option>`);
612
651
  });
613
- _push(`<!--]--></select></label><label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1ce2k1y028"))}</span><input${ssrRenderAttr("value", addName.value)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.kgpxzy3005"))} data-v-e2087525></label>`);
614
- if (addScenario.value === "real") _push(`<label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k13mfsfc029"))}</span><input${ssrRenderAttr("value", addInterval.value)} type="number" min="1000" max="60000" step="500" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.k1eg1000a136"))} data-v-e2087525></label>`);
652
+ _push(`<!--]--></select></label><label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1ce2k1y028"))}</span><input${ssrRenderAttr("value", addName.value)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.kgpxzy3005"))} data-v-74f24580></label>`);
653
+ if (addScenario.value === "real") _push(`<label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k13mfsfc029"))}</span><input${ssrRenderAttr("value", addInterval.value)} type="number" min="1000" max="60000" step="500" class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.k1eg1000a136"))} data-v-74f24580></label>`);
615
654
  else _push(`<!---->`);
616
655
  _push(`</div>`);
617
656
  if (addScenario.value === "real") {
618
- _push(`<!--[--><div class="f-grid" data-v-e2087525><label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1kt87rx030"))}</span><select class="inp" data-v-e2087525><!--[-->`);
619
- ssrRenderList(unref(DAQ_DRIVERS).filter((x) => x.status !== "planned"), (d) => {
620
- _push(`<option${ssrRenderAttr("value", d.kind)} data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(addDriver.value) ? ssrLooseContain(addDriver.value, d.kind) : ssrLooseEqual(addDriver.value, d.kind)) ? " selected" : ""}>${ssrInterpolate(d.label)}${ssrInterpolate(driverReady(d.kind) ? "" : _ctx.$t("daq.kjbqphp098"))}</option>`);
657
+ _push(`<!--[--><div class="f-grid" data-v-74f24580><label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1kt87rx030"))}</span><select class="inp" data-v-74f24580><!--[-->`);
658
+ ssrRenderList(driverCatalog.value.filter((x) => x.status !== "planned"), (d) => {
659
+ _push(`<option${ssrRenderAttr("value", d.kind)} data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(addDriver.value) ? ssrLooseContain(addDriver.value, d.kind) : ssrLooseEqual(addDriver.value, d.kind)) ? " selected" : ""}>${ssrInterpolate(d.label)}${ssrInterpolate(d.plugin ? " ⌁" : "")}${ssrInterpolate(driverReady(d.kind) ? "" : _ctx.$t("daq.kjbqphp098"))}</option>`);
621
660
  });
622
661
  _push(`<!--]--></select></label></div>`);
623
662
  if (addFields.value.length) {
624
- _push(`<div class="f-grid driver-form" data-v-e2087525><!--[-->`);
663
+ _push(`<div class="f-grid driver-form" data-v-74f24580><!--[-->`);
625
664
  ssrRenderList(addFields.value, (f) => {
626
- _push(`<label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(f.label)}`);
627
- if (f.required) _push(`<em data-v-e2087525>*</em>`);
665
+ _push(`<label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(f.label)}`);
666
+ if (f.required) _push(`<em data-v-74f24580>*</em>`);
628
667
  else _push(`<!---->`);
629
668
  _push(`</span>`);
630
669
  if (f.type === "select") {
631
- _push(`<select class="inp" data-v-e2087525><!--[-->`);
670
+ _push(`<select class="inp" data-v-74f24580><!--[-->`);
632
671
  ssrRenderList(f.options, (o) => {
633
- _push(`<option${ssrRenderAttr("value", o.value)} data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(addCfg.value[f.key]) ? ssrLooseContain(addCfg.value[f.key], o.value) : ssrLooseEqual(addCfg.value[f.key], o.value)) ? " selected" : ""}>${ssrInterpolate(o.label)}</option>`);
672
+ _push(`<option${ssrRenderAttr("value", o.value)} data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(addCfg.value[f.key]) ? ssrLooseContain(addCfg.value[f.key], o.value) : ssrLooseEqual(addCfg.value[f.key], o.value)) ? " selected" : ""}>${ssrInterpolate(o.label)}</option>`);
634
673
  });
635
674
  _push(`<!--]--></select>`);
636
- } else _push(`<input${ssrRenderDynamicModel(f.type === "number" ? "number" : "text", addCfg.value[f.key], null)}${ssrRenderAttr("type", f.type === "number" ? "number" : "text")}${ssrRenderAttr("placeholder", f.placeholder)} class="inp" data-v-e2087525>`);
637
- if (f.hint) _push(`<small class="hint" data-v-e2087525>${ssrInterpolate(f.hint)}</small>`);
675
+ } else _push(`<input${ssrRenderDynamicModel(f.type === "number" ? "number" : "text", addCfg.value[f.key], null)}${ssrRenderAttr("type", f.type === "number" ? "number" : "text")}${ssrRenderAttr("placeholder", f.placeholder)} class="inp" data-v-74f24580>`);
676
+ if (f.hint) _push(`<small class="hint" data-v-74f24580>${ssrInterpolate(f.hint)}</small>`);
638
677
  else _push(`<!---->`);
639
678
  _push(`</label>`);
640
679
  });
641
680
  _push(`<!--]--></div>`);
642
681
  } else _push(`<!---->`);
643
- _push(`<div class="test-row" data-v-e2087525><button class="pill-btn"${ssrIncludeBooleanAttr(addTesting.value) ? " disabled" : ""} data-v-e2087525>${ssrInterpolate(addTesting.value ? _ctx.$t("daq.k1fsh720099") : _ctx.$t("daq.k1fstglk112"))}</button>`);
682
+ _push(`<div class="test-row" data-v-74f24580><button class="pill-btn"${ssrIncludeBooleanAttr(addTesting.value) ? " disabled" : ""} data-v-74f24580>${ssrInterpolate(addTesting.value ? _ctx.$t("daq.k1fsh720099") : _ctx.$t("daq.k1fstglk112"))}</button>`);
644
683
  if (addTest.value) {
645
- _push(`<span class="${ssrRenderClass([addTest.value.ok ? "ok" : "bad", "test-result"])}" data-v-e2087525>${ssrInterpolate(addTest.value.ok ? "✓" : "✗")} ${ssrInterpolate(addTest.value.message)}`);
684
+ _push(`<span class="${ssrRenderClass([addTest.value.ok ? "ok" : "bad", "test-result"])}" data-v-74f24580>${ssrInterpolate(addTest.value.ok ? "✓" : "✗")} ${ssrInterpolate(addTest.value.message)}`);
646
685
  if (addTest.value.latencyMs != null) _push(`<!--[-->(${ssrInterpolate(addTest.value.latencyMs)}ms)<!--]-->`);
647
686
  else _push(`<!---->`);
648
687
  _push(`</span>`);
649
688
  } else _push(`<!---->`);
650
689
  _push(`</div><!--]-->`);
651
690
  } else _push(`<!---->`);
652
- if (addError.value) _push(`<p class="m-err" data-v-e2087525>${ssrInterpolate(addError.value)}</p>`);
691
+ if (addError.value) _push(`<p class="m-err" data-v-74f24580>${ssrInterpolate(addError.value)}</p>`);
653
692
  else _push(`<!---->`);
654
- _push(`<div class="m-actions" data-v-e2087525><button class="aw-pill outline" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k3xdnn031"))}</button><button class="aw-pill"${ssrIncludeBooleanAttr(addSaving.value || addScenario.value === "real" && addTest.value != null && !addTest.value.ok) ? " disabled" : ""}${ssrRenderAttr("title", addScenario.value === "real" && !(addTest.value && addTest.value.ok) ? _ctx.$t("daq.k1needtst137") : "")} data-v-e2087525>${ssrInterpolate(addSaving.value ? _ctx.$t("daq.k1bg4759100") : addScenario.value === "real" ? _ctx.$t("daq.k7pxjxo113") : _ctx.$t("daq.k1bge46t118"))}</button></div></div></div>`);
693
+ _push(`<div class="m-actions" data-v-74f24580><button class="aw-pill outline" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k3xdnn031"))}</button><button class="aw-pill"${ssrIncludeBooleanAttr(addSaving.value || addScenario.value === "real" && addTest.value != null && !addTest.value.ok) ? " disabled" : ""}${ssrRenderAttr("title", addScenario.value === "real" && !(addTest.value && addTest.value.ok) ? _ctx.$t("daq.k1needtst137") : "")} data-v-74f24580>${ssrInterpolate(addSaving.value ? _ctx.$t("daq.k1bg4759100") : addScenario.value === "real" ? _ctx.$t("daq.k7pxjxo113") : _ctx.$t("daq.k1bge46t118"))}</button></div></div></div>`);
655
694
  } else _push(`<!---->`);
656
695
  if (tplOpen.value) {
657
- _push(`<div class="modal-mask" data-v-e2087525><div class="modal" data-v-e2087525><h3 class="m-title" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k11mv96s032"))}</h3><p class="sec-label" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.ktji4ky033"))}</p><table class="tpl-table" data-v-e2087525><tbody data-v-e2087525><!--[-->`);
696
+ _push(`<div class="modal-mask" data-v-74f24580><div class="modal" data-v-74f24580><h3 class="m-title" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k11mv96s032"))}</h3><p class="sec-label" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.ktji4ky033"))}</p><table class="tpl-table" data-v-74f24580><tbody data-v-74f24580><!--[-->`);
658
697
  ssrRenderList(customTpls.value, (t) => {
659
- _push(`<tr data-v-e2087525><td data-v-e2087525><b data-v-e2087525>${ssrInterpolate(t.name)}</b><small class="mono dim" data-v-e2087525>${ssrInterpolate(t.code)}</small></td><td class="mono range" data-v-e2087525>${ssrInterpolate(t.min)}~${ssrInterpolate(t.max)} ${ssrInterpolate(t.unit)} · ${ssrInterpolate(t.decimals)} ${ssrInterpolate(_ctx.$t("daq.k48oi091"))}</td><td class="right actions" data-v-e2087525><button class="mini-btn" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k45eb0034"))}</button><button class="mini-btn danger" data-v-e2087525>${ssrInterpolate(confirmingDel.value === t.key ? _ctx.$t("daq.k1hhheu3101") : _ctx.$t("daq.k3xakp114"))}</button></td></tr>`);
698
+ _push(`<tr data-v-74f24580><td data-v-74f24580><b data-v-74f24580>${ssrInterpolate(t.name)}</b><small class="mono dim" data-v-74f24580>${ssrInterpolate(t.code)}</small></td><td class="mono range" data-v-74f24580>${ssrInterpolate(t.min)}~${ssrInterpolate(t.max)} ${ssrInterpolate(t.unit)} · ${ssrInterpolate(t.decimals)} ${ssrInterpolate(_ctx.$t("daq.k48oi091"))}</td><td class="right actions" data-v-74f24580><button class="mini-btn" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k45eb0034"))}</button><button class="mini-btn danger" data-v-74f24580>${ssrInterpolate(confirmingDel.value === t.key ? _ctx.$t("daq.k1hhheu3101") : _ctx.$t("daq.k3xakp114"))}</button></td></tr>`);
660
699
  });
661
700
  _push(`<!--]-->`);
662
- if (!customTpls.value.length) _push(`<tr data-v-e2087525><td colspan="3" class="empty" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.kztvzbo035"))}</td></tr>`);
701
+ if (!customTpls.value.length) _push(`<tr data-v-74f24580><td colspan="3" class="empty" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.kztvzbo035"))}</td></tr>`);
663
702
  else _push(`<!---->`);
664
- _push(`</tbody></table><p class="sec-label" data-v-e2087525>${ssrInterpolate(tplEditing.value ? _ctx.$t("daq.k1iiph0s102") : _ctx.$t("daq.k1efixrj115"))}</p><div class="f-grid" data-v-e2087525><label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k3xhia036"))}<em data-v-e2087525>*</em></span><input${ssrRenderAttr("value", unref(tplForm).name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.k5opd2t006"))} data-v-e2087525></label><label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k3x4ef037"))}<em data-v-e2087525>*</em></span><input${ssrRenderAttr("value", unref(tplForm).unit)} class="inp" placeholder="如 %RH" data-v-e2087525></label><label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1l477m0038"))}</span><input${ssrRenderAttr("value", unref(tplForm).ch)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.kk8o4tl007"))} data-v-e2087525></label><label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1ayxrqb039"))}</span><input${ssrRenderAttr("value", unref(tplForm).code)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.kzn3l7l008"))} data-v-e2087525></label><label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1l9jv5m040"))}<em data-v-e2087525>*</em></span><input${ssrRenderAttr("value", unref(tplForm).min)} type="number" class="inp" data-v-e2087525></label><label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1l9jv4p041"))}<em data-v-e2087525>*</em></span><input${ssrRenderAttr("value", unref(tplForm).max)} type="number" class="inp" data-v-e2087525></label><label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k3mxmcx042"))}</span><input${ssrRenderAttr("value", unref(tplForm).decimals)} type="number" min="0" max="4" class="inp" data-v-e2087525></label><label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k3xx56043"))}</span><select class="inp" data-v-e2087525><!--[-->`);
703
+ _push(`</tbody></table><p class="sec-label" data-v-74f24580>${ssrInterpolate(tplEditing.value ? _ctx.$t("daq.k1iiph0s102") : _ctx.$t("daq.k1efixrj115"))}</p><div class="f-grid" data-v-74f24580><label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k3xhia036"))}<em data-v-74f24580>*</em></span><input${ssrRenderAttr("value", unref(tplForm).name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.k5opd2t006"))} data-v-74f24580></label><label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k3x4ef037"))}<em data-v-74f24580>*</em></span><input${ssrRenderAttr("value", unref(tplForm).unit)} class="inp" placeholder="如 %RH" data-v-74f24580></label><label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1l477m0038"))}</span><input${ssrRenderAttr("value", unref(tplForm).ch)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.kk8o4tl007"))} data-v-74f24580></label><label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1ayxrqb039"))}</span><input${ssrRenderAttr("value", unref(tplForm).code)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.kzn3l7l008"))} data-v-74f24580></label><label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1l9jv5m040"))}<em data-v-74f24580>*</em></span><input${ssrRenderAttr("value", unref(tplForm).min)} type="number" class="inp" data-v-74f24580></label><label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1l9jv4p041"))}<em data-v-74f24580>*</em></span><input${ssrRenderAttr("value", unref(tplForm).max)} type="number" class="inp" data-v-74f24580></label><label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k3mxmcx042"))}</span><input${ssrRenderAttr("value", unref(tplForm).decimals)} type="number" min="0" max="4" class="inp" data-v-74f24580></label><label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k3xx56043"))}</span><select class="inp" data-v-74f24580><!--[-->`);
665
704
  ssrRenderList(unref(DAQ_TEMPLATE_ICONS), (ic) => {
666
- _push(`<option${ssrRenderAttr("value", ic)} data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(tplForm).icon) ? ssrLooseContain(unref(tplForm).icon, ic) : ssrLooseEqual(unref(tplForm).icon, ic)) ? " selected" : ""}>${ssrInterpolate(ICON_LABEL[ic])}</option>`);
705
+ _push(`<option${ssrRenderAttr("value", ic)} data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(tplForm).icon) ? ssrLooseContain(unref(tplForm).icon, ic) : ssrLooseEqual(unref(tplForm).icon, ic)) ? " selected" : ""}>${ssrInterpolate(ICON_LABEL[ic])}</option>`);
667
706
  });
668
- _push(`<!--]--></select></label><label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1f4eknv044"))}</span><input${ssrRenderAttr("value", unref(tplForm).base)} type="number" class="inp" data-v-e2087525><small class="hint" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.kytd15s045"))}</small></label><label class="f" data-v-e2087525><span data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1f4ifpo046"))}</span><input${ssrRenderAttr("value", unref(tplForm).amp)} type="number" class="inp" data-v-e2087525><small class="hint" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.ksp2aji047"))}</small></label></div>`);
669
- if (tplError.value) _push(`<p class="m-err" data-v-e2087525>${ssrInterpolate(tplError.value)}</p>`);
707
+ _push(`<!--]--></select></label><label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1f4eknv044"))}</span><input${ssrRenderAttr("value", unref(tplForm).base)} type="number" class="inp" data-v-74f24580><small class="hint" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.kytd15s045"))}</small></label><label class="f" data-v-74f24580><span data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1f4ifpo046"))}</span><input${ssrRenderAttr("value", unref(tplForm).amp)} type="number" class="inp" data-v-74f24580><small class="hint" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.ksp2aji047"))}</small></label></div>`);
708
+ if (tplError.value) _push(`<p class="m-err" data-v-74f24580>${ssrInterpolate(tplError.value)}</p>`);
670
709
  else _push(`<!---->`);
671
- _push(`<div class="m-actions" data-v-e2087525><button class="aw-pill outline" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k48p40048"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(tplSaving.value) ? " disabled" : ""} data-v-e2087525>${ssrInterpolate(tplSaving.value ? _ctx.$t("daq.k1b38d59103") : tplEditing.value ? _ctx.$t("daq.k1b39281116") : _ctx.$t("daq.k1b3dtga119"))}</button></div><p class="sec-label" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1w8s84s049"))}</p><table class="tpl-table" data-v-e2087525><tbody data-v-e2087525><!--[-->`);
710
+ _push(`<div class="m-actions" data-v-74f24580><button class="aw-pill outline" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k48p40048"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(tplSaving.value) ? " disabled" : ""} data-v-74f24580>${ssrInterpolate(tplSaving.value ? _ctx.$t("daq.k1b38d59103") : tplEditing.value ? _ctx.$t("daq.k1b39281116") : _ctx.$t("daq.k1b3dtga119"))}</button></div><p class="sec-label" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1w8s84s049"))}</p><table class="tpl-table" data-v-74f24580><tbody data-v-74f24580><!--[-->`);
672
711
  ssrRenderList(builtinTpls.value, (t) => {
673
- _push(`<tr data-v-e2087525><td data-v-e2087525><b data-v-e2087525>${ssrInterpolate(t.name)}</b><small class="mono dim" data-v-e2087525>${ssrInterpolate(t.code)}</small></td><td class="mono range" data-v-e2087525>${ssrInterpolate(t.min)}~${ssrInterpolate(t.max)} ${ssrInterpolate(t.unit)} · ${ssrInterpolate(t.decimals)} ${ssrInterpolate(_ctx.$t("daq.k48oi091"))}</td><td class="right actions" data-v-e2087525><button class="mini-btn" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k3y694050"))}</button></td></tr>`);
712
+ _push(`<tr data-v-74f24580><td data-v-74f24580><b data-v-74f24580>${ssrInterpolate(t.name)}</b><small class="mono dim" data-v-74f24580>${ssrInterpolate(t.code)}</small></td><td class="mono range" data-v-74f24580>${ssrInterpolate(t.min)}~${ssrInterpolate(t.max)} ${ssrInterpolate(t.unit)} · ${ssrInterpolate(t.decimals)} ${ssrInterpolate(_ctx.$t("daq.k48oi091"))}</td><td class="right actions" data-v-74f24580><button class="mini-btn" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k3y694050"))}</button></td></tr>`);
674
713
  });
675
714
  _push(`<!--]--></tbody></table></div></div>`);
676
715
  } else _push(`<!---->`);
677
- _push(`<section class="aw-tile opt-card" data-v-e2087525><button class="opt-head" data-v-e2087525><span class="i-tabler-flask" data-v-e2087525></span><b data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1optt001"))}</b><span class="opt-count mono" data-v-e2087525>${ssrInterpolate(unref(dcw).optimizations.length)}</span><span class="${ssrRenderClass([{ open: optOpen.value }, "opt-chevron"])}" data-v-e2087525></span></button><div class="${ssrRenderClass([{ open: optOpen.value }, "opt-body"])}" data-v-e2087525>`);
716
+ _push(`<section class="aw-tile opt-card" data-v-74f24580><button class="opt-head" data-v-74f24580><span class="i-tabler-flask" data-v-74f24580></span><b data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1optt001"))}</b><span class="opt-count mono" data-v-74f24580>${ssrInterpolate(unref(dcw).optimizations.length)}</span><span class="${ssrRenderClass([{ open: optOpen.value }, "opt-chevron"])}" data-v-74f24580></span></button><div class="${ssrRenderClass([{ open: optOpen.value }, "opt-body"])}" data-v-74f24580>`);
678
717
  if (optMounted.value) {
679
- _push(`<!--[--><div class="opt-filters" data-v-e2087525><select class="inp-sel" data-v-e2087525><option value="" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(optFilterLine.value) ? ssrLooseContain(optFilterLine.value, "") : ssrLooseEqual(optFilterLine.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("daq.k1optf001"))}</option><!--[-->`);
718
+ _push(`<!--[--><div class="opt-filters" data-v-74f24580><select class="inp-sel" data-v-74f24580><option value="" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(optFilterLine.value) ? ssrLooseContain(optFilterLine.value, "") : ssrLooseEqual(optFilterLine.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("daq.k1optf001"))}</option><!--[-->`);
680
719
  ssrRenderList(unref(dcw).lines, (l) => {
681
- _push(`<option${ssrRenderAttr("value", l.id)} data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(optFilterLine.value) ? ssrLooseContain(optFilterLine.value, l.id) : ssrLooseEqual(optFilterLine.value, l.id)) ? " selected" : ""}>${ssrInterpolate(l.name)}</option>`);
720
+ _push(`<option${ssrRenderAttr("value", l.id)} data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(optFilterLine.value) ? ssrLooseContain(optFilterLine.value, l.id) : ssrLooseEqual(optFilterLine.value, l.id)) ? " selected" : ""}>${ssrInterpolate(l.name)}</option>`);
682
721
  });
683
- _push(`<!--]--></select><select class="inp-sel" data-v-e2087525><option value="" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(optFilterRecipe.value) ? ssrLooseContain(optFilterRecipe.value, "") : ssrLooseEqual(optFilterRecipe.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("daq.k1optf004"))}</option><!--[-->`);
722
+ _push(`<!--]--></select><select class="inp-sel" data-v-74f24580><option value="" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(optFilterRecipe.value) ? ssrLooseContain(optFilterRecipe.value, "") : ssrLooseEqual(optFilterRecipe.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("daq.k1optf004"))}</option><!--[-->`);
684
723
  ssrRenderList(optRecipeOptions.value, (r) => {
685
- _push(`<option${ssrRenderAttr("value", r.id)} data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(optFilterRecipe.value) ? ssrLooseContain(optFilterRecipe.value, r.id) : ssrLooseEqual(optFilterRecipe.value, r.id)) ? " selected" : ""}>${ssrInterpolate(r.name)}</option>`);
724
+ _push(`<option${ssrRenderAttr("value", r.id)} data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(optFilterRecipe.value) ? ssrLooseContain(optFilterRecipe.value, r.id) : ssrLooseEqual(optFilterRecipe.value, r.id)) ? " selected" : ""}>${ssrInterpolate(r.name)}</option>`);
686
725
  });
687
- _push(`<!--]--></select><button class="mini-act" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1optf002"))}</button></div>`);
688
- if (unref(dcw).optimizations.length === 0) _push(`<p class="opt-empty" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1opte001"))}</p>`);
726
+ _push(`<!--]--></select><button class="mini-act" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1optf002"))}</button></div>`);
727
+ if (unref(dcw).optimizations.length === 0) _push(`<p class="opt-empty" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1opte001"))}</p>`);
689
728
  else _push(`<!---->`);
690
- _push(`<ul class="opt-list" data-v-e2087525><!--[-->`);
729
+ _push(`<ul class="opt-list" data-v-74f24580><!--[-->`);
691
730
  ssrRenderList(unref(dcw).optimizations.slice(0, 30), (r) => {
692
- _push(`<li class="${ssrRenderClass([r.status, "opt-row"])}" data-v-e2087525><div class="opt-line1" data-v-e2087525><span class="${ssrRenderClass([r.status, "opt-status"])}" data-v-e2087525>${ssrInterpolate(_ctx.$t(optStatusKey(r.status)))}</span><b class="opt-node" data-v-e2087525>${ssrInterpolate(r.nodeName)}</b><span class="mono opt-params" data-v-e2087525>${ssrInterpolate(r.params[0]?.from ?? "?")} → ${ssrInterpolate(r.params[0]?.to)}</span><span class="mono opt-time" data-v-e2087525>${ssrInterpolate(r.setAt.slice(5, 16).replace("T", " "))}</span>`);
693
- if (!optSeriesOf.value[r.id]) _push(`<button class="mini-act"${ssrIncludeBooleanAttr(optSeriesLoading.value === r.id) ? " disabled" : ""} data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1opta001"))}</button>`);
731
+ _push(`<li class="${ssrRenderClass([r.status, "opt-row"])}" data-v-74f24580><div class="opt-line1" data-v-74f24580><span class="${ssrRenderClass([r.status, "opt-status"])}" data-v-74f24580>${ssrInterpolate(_ctx.$t(optStatusKey(r.status)))}</span><b class="opt-node" data-v-74f24580>${ssrInterpolate(r.nodeName)}</b><span class="mono opt-params" data-v-74f24580>${ssrInterpolate(r.params[0]?.from ?? "?")} → ${ssrInterpolate(r.params[0]?.to)}</span><span class="mono opt-time" data-v-74f24580>${ssrInterpolate(r.setAt.slice(5, 16).replace("T", " "))}</span>`);
732
+ if (!optSeriesOf.value[r.id]) _push(`<button class="mini-act"${ssrIncludeBooleanAttr(optSeriesLoading.value === r.id) ? " disabled" : ""} data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1opta001"))}</button>`);
694
733
  else _push(`<!---->`);
695
- if (r.status === "open") _push(`<button class="mini-act danger" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1opta002"))}</button>`);
734
+ if (r.status === "open") _push(`<button class="mini-act danger" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1opta002"))}</button>`);
696
735
  else _push(`<!---->`);
697
- _push(`</div><div class="opt-line2 mono" data-v-e2087525>`);
698
- if (r.judge) _push(`<span class="${ssrRenderClass([r.judge.verdict, "opt-judge"])}" data-v-e2087525>${ssrInterpolate(r.judge.verdict)}(${ssrInterpolate(r.judge.by)}): ${ssrInterpolate(r.judge.reason.slice(0, 70))}</span>`);
699
- else if (r.status === "open") _push(`<span class="opt-open-hint" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1opto001"))}</span>`);
736
+ _push(`</div><div class="opt-line2 mono" data-v-74f24580>`);
737
+ if (r.judge) _push(`<span class="${ssrRenderClass([r.judge.verdict, "opt-judge"])}" data-v-74f24580>${ssrInterpolate(r.judge.verdict)}(${ssrInterpolate(r.judge.by)}): ${ssrInterpolate(r.judge.reason.slice(0, 70))}</span>`);
738
+ else if (r.status === "open") _push(`<span class="opt-open-hint" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1opto001"))}</span>`);
700
739
  else _push(`<!---->`);
701
- if (r.aggPending) _push(`<span class="opt-agg" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1optw001"))}</span>`);
740
+ if (r.aggPending) _push(`<span class="opt-agg" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1optw001"))}</span>`);
702
741
  else if (r.windowAgg && r.windowAgg.channels.length) {
703
- _push(`<span class="opt-agg" data-v-e2087525><!--[-->`);
742
+ _push(`<span class="opt-agg" data-v-74f24580><!--[-->`);
704
743
  ssrRenderList(r.windowAgg.channels, (c) => {
705
744
  _push(`<!--[-->${ssrInterpolate(c.ch)} ${ssrInterpolate(fmtPoint(c.min))}~${ssrInterpolate(fmtPoint(c.max))}(${ssrInterpolate(_ctx.$t("daq.k1optw002"))}${ssrInterpolate(c.breaches < 0 ? "-" : c.breaches)}) <!--]-->`);
706
745
  });
@@ -708,12 +747,12 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
708
747
  } else _push(`<!---->`);
709
748
  _push(`</div>`);
710
749
  if (optSeriesOf.value[r.id]) {
711
- _push(`<div class="opt-series" data-v-e2087525><!--[-->`);
712
- ssrRenderList(optSeriesOf.value[r.id].channels, (ch) => {
713
- _push(`<div class="opt-ch" data-v-e2087525><svg class="opt-spark" viewBox="0 0 240 36" preserveAspectRatio="none" data-v-e2087525><polyline${ssrRenderAttr("points", seriesPath(ch.points))} data-v-e2087525></polyline></svg><span class="mono" data-v-e2087525>${ssrInterpolate(ch.ch)} ${ssrInterpolate(fmtPoint(ch.points.at(-1)?.value ?? ch.points.at(-1)?.avg))}${ssrInterpolate(ch.unit)}</span></div>`);
750
+ _push(`<div class="opt-series" data-v-74f24580><!--[-->`);
751
+ ssrRenderList(optSeriesOf.value[r.id]?.channels ?? [], (ch) => {
752
+ _push(`<div class="opt-ch" data-v-74f24580><svg class="opt-spark" viewBox="0 0 240 36" preserveAspectRatio="none" data-v-74f24580><polyline${ssrRenderAttr("points", seriesPath(ch.points))} data-v-74f24580></polyline></svg><span class="mono" data-v-74f24580>${ssrInterpolate(ch.ch)} ${ssrInterpolate(fmtPoint(ch.points.at(-1)?.value ?? ch.points.at(-1)?.avg))}${ssrInterpolate(ch.unit)}</span></div>`);
714
753
  });
715
754
  _push(`<!--]-->`);
716
- if (optSeriesOf.value[r.id].channels.length === 0) _push(`<p class="opt-empty" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1opte002"))}</p>`);
755
+ if ((optSeriesOf.value[r.id]?.channels.length ?? 0) === 0) _push(`<p class="opt-empty" data-v-74f24580>${ssrInterpolate(_ctx.$t("daq.k1opte002"))}</p>`);
717
756
  else _push(`<!---->`);
718
757
  _push(`</div>`);
719
758
  } else _push(`<!---->`);
@@ -725,67 +764,72 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
725
764
  _push(ssrRenderComponent(_component_a_spin, { spinning: !unref(daq).loaded && !unref(daq).error }, {
726
765
  default: withCtx((_, _push, _parent, _scopeId) => {
727
766
  if (_push) {
728
- _push(`<section class="aw-tile table-card" data-v-e2087525${_scopeId}><div class="tbl-toolbar" data-v-e2087525${_scopeId}><div class="filters" data-v-e2087525${_scopeId}><label class="flt" data-v-e2087525${_scopeId}><span data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3wj9n051"))}</span><select class="inp-sel" data-v-e2087525${_scopeId}><option value="" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).lineId) ? ssrLooseContain(unref(filters).lineId, "") : ssrLooseEqual(unref(filters).lineId, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1bkl9uj052"))}</option><!--[-->`);
767
+ _push(`<section class="aw-tile table-card" data-v-74f24580${_scopeId}><div class="tbl-toolbar" data-v-74f24580${_scopeId}><div class="filters" data-v-74f24580${_scopeId}><label class="flt" data-v-74f24580${_scopeId}><span data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3wj9n051"))}</span><select class="inp-sel" data-v-74f24580${_scopeId}><option value="" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).lineId) ? ssrLooseContain(unref(filters).lineId, "") : ssrLooseEqual(unref(filters).lineId, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1bkl9uj052"))}</option><!--[-->`);
729
768
  ssrRenderList(unref(dcw).lines, (l) => {
730
- _push(`<option${ssrRenderAttr("value", l.id)} data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).lineId) ? ssrLooseContain(unref(filters).lineId, l.id) : ssrLooseEqual(unref(filters).lineId, l.id)) ? " selected" : ""}${_scopeId}>${ssrInterpolate(l.name)}</option>`);
769
+ _push(`<option${ssrRenderAttr("value", l.id)} data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).lineId) ? ssrLooseContain(unref(filters).lineId, l.id) : ssrLooseEqual(unref(filters).lineId, l.id)) ? " selected" : ""}${_scopeId}>${ssrInterpolate(l.name)}</option>`);
731
770
  });
732
- _push(`<!--]--><option value="none" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).lineId) ? ssrLooseContain(unref(filters).lineId, "none") : ssrLooseEqual(unref(filters).lineId, "none")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3ootr6053"))}</option></select></label><label class="flt" data-v-e2087525${_scopeId}><span data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1i8rtqt054"))}</span><select class="inp-sel" data-v-e2087525${_scopeId}><option value="" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).deviceId) ? ssrLooseContain(unref(filters).deviceId, "") : ssrLooseEqual(unref(filters).deviceId, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1bkw4m2055"))}</option><!--[-->`);
771
+ _push(`<!--]--><option value="none" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).lineId) ? ssrLooseContain(unref(filters).lineId, "none") : ssrLooseEqual(unref(filters).lineId, "none")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3ootr6053"))}</option></select></label><label class="flt" data-v-74f24580${_scopeId}><span data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1i8rtqt054"))}</span><select class="inp-sel" data-v-74f24580${_scopeId}><option value="" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).deviceId) ? ssrLooseContain(unref(filters).deviceId, "") : ssrLooseEqual(unref(filters).deviceId, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1bkw4m2055"))}</option><!--[-->`);
733
772
  ssrRenderList(boundDevices.value, (d) => {
734
- _push(`<option${ssrRenderAttr("value", d.id)} data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).deviceId) ? ssrLooseContain(unref(filters).deviceId, d.id) : ssrLooseEqual(unref(filters).deviceId, d.id)) ? " selected" : ""}${_scopeId}>${ssrInterpolate(d.name)}(${ssrInterpolate(d.count)}) </option>`);
773
+ _push(`<option${ssrRenderAttr("value", d.id)} data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).deviceId) ? ssrLooseContain(unref(filters).deviceId, d.id) : ssrLooseEqual(unref(filters).deviceId, d.id)) ? " selected" : ""}${_scopeId}>${ssrInterpolate(d.name)}(${ssrInterpolate(d.count)}) </option>`);
735
774
  });
736
- _push(`<!--]--><option value="none" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).deviceId) ? ssrLooseContain(unref(filters).deviceId, "none") : ssrLooseEqual(unref(filters).deviceId, "none")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3own4q056"))}</option></select></label><label class="flt"${ssrRenderAttr("title", _ctx.$t("daq.khb8mru009"))} data-v-e2087525${_scopeId}><span data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1b2tkyv057"))}</span><select class="inp-sel" data-v-e2087525${_scopeId}><option value="" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).lineRun) ? ssrLooseContain(unref(filters).lineRun, "") : ssrLooseEqual(unref(filters).lineRun, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3x4t1058"))}</option><option value="on" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).lineRun) ? ssrLooseContain(unref(filters).lineRun, "on") : ssrLooseEqual(unref(filters).lineRun, "on")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1nxm3p7059"))}</option><option value="off" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).lineRun) ? ssrLooseContain(unref(filters).lineRun, "off") : ssrLooseEqual(unref(filters).lineRun, "off")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1ulx34e060"))}</option></select></label><label class="flt" data-v-e2087525${_scopeId}><span data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1iwdfef061"))}</span><select class="inp-sel" data-v-e2087525${_scopeId}><option value="" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).state) ? ssrLooseContain(unref(filters).state, "") : ssrLooseEqual(unref(filters).state, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3x4t1058"))}</option><option value="ok" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).state) ? ssrLooseContain(unref(filters).state, "ok") : ssrLooseEqual(unref(filters).state, "ok")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k41k5c062"))}</option><option value="warn" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).state) ? ssrLooseContain(unref(filters).state, "warn") : ssrLooseEqual(unref(filters).state, "warn")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k49z8v063"))}</option><option value="alarm" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).state) ? ssrLooseContain(unref(filters).state, "alarm") : ssrLooseEqual(unref(filters).state, "alarm")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3xmid064"))}</option><option value="offline" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).state) ? ssrLooseContain(unref(filters).state, "offline") : ssrLooseEqual(unref(filters).state, "offline")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k44c2n065"))}</option></select></label><label class="flt" data-v-e2087525${_scopeId}><span data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1flttpl010"))}</span><select class="inp-sel" data-v-e2087525${_scopeId}><option value="" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).template) ? ssrLooseContain(unref(filters).template, "") : ssrLooseEqual(unref(filters).template, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1flttpl011"))}</option><!--[-->`);
775
+ _push(`<!--]--><option value="none" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).deviceId) ? ssrLooseContain(unref(filters).deviceId, "none") : ssrLooseEqual(unref(filters).deviceId, "none")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3own4q056"))}</option></select></label><label class="flt"${ssrRenderAttr("title", _ctx.$t("daq.khb8mru009"))} data-v-74f24580${_scopeId}><span data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1b2tkyv057"))}</span><select class="inp-sel" data-v-74f24580${_scopeId}><option value="" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).lineRun) ? ssrLooseContain(unref(filters).lineRun, "") : ssrLooseEqual(unref(filters).lineRun, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3x4t1058"))}</option><option value="on" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).lineRun) ? ssrLooseContain(unref(filters).lineRun, "on") : ssrLooseEqual(unref(filters).lineRun, "on")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1nxm3p7059"))}</option><option value="off" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).lineRun) ? ssrLooseContain(unref(filters).lineRun, "off") : ssrLooseEqual(unref(filters).lineRun, "off")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1ulx34e060"))}</option></select></label><label class="flt" data-v-74f24580${_scopeId}><span data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1iwdfef061"))}</span><select class="inp-sel" data-v-74f24580${_scopeId}><option value="" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).state) ? ssrLooseContain(unref(filters).state, "") : ssrLooseEqual(unref(filters).state, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3x4t1058"))}</option><option value="ok" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).state) ? ssrLooseContain(unref(filters).state, "ok") : ssrLooseEqual(unref(filters).state, "ok")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k41k5c062"))}</option><option value="warn" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).state) ? ssrLooseContain(unref(filters).state, "warn") : ssrLooseEqual(unref(filters).state, "warn")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k49z8v063"))}</option><option value="alarm" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).state) ? ssrLooseContain(unref(filters).state, "alarm") : ssrLooseEqual(unref(filters).state, "alarm")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3xmid064"))}</option><option value="offline" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).state) ? ssrLooseContain(unref(filters).state, "offline") : ssrLooseEqual(unref(filters).state, "offline")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k44c2n065"))}</option></select></label><label class="flt" data-v-74f24580${_scopeId}><span data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1flttpl010"))}</span><select class="inp-sel" data-v-74f24580${_scopeId}><option value="" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).template) ? ssrLooseContain(unref(filters).template, "") : ssrLooseEqual(unref(filters).template, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1flttpl011"))}</option><!--[-->`);
737
776
  ssrRenderList(templateOptions.value, (t) => {
738
- _push(`<option${ssrRenderAttr("value", t.ref)} data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).template) ? ssrLooseContain(unref(filters).template, t.ref) : ssrLooseEqual(unref(filters).template, t.ref)) ? " selected" : ""}${_scopeId}>${ssrInterpolate(t.label)}(${ssrInterpolate(t.count)}) </option>`);
777
+ _push(`<option${ssrRenderAttr("value", t.ref)} data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).template) ? ssrLooseContain(unref(filters).template, t.ref) : ssrLooseEqual(unref(filters).template, t.ref)) ? " selected" : ""}${_scopeId}>${ssrInterpolate(t.label)}(${ssrInterpolate(t.count)}) </option>`);
739
778
  });
740
- _push(`<!--]--></select></label><label class="flt" data-v-e2087525${_scopeId}><span data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1fltdrv012"))}</span><select class="inp-sel" data-v-e2087525${_scopeId}><option value="" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).driver) ? ssrLooseContain(unref(filters).driver, "") : ssrLooseEqual(unref(filters).driver, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1fltdrv013"))}</option><!--[-->`);
779
+ _push(`<!--]--></select></label><label class="flt" data-v-74f24580${_scopeId}><span data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1fltdrv012"))}</span><select class="inp-sel" data-v-74f24580${_scopeId}><option value="" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).driver) ? ssrLooseContain(unref(filters).driver, "") : ssrLooseEqual(unref(filters).driver, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1fltdrv013"))}</option><!--[-->`);
741
780
  ssrRenderList(driverOptions.value, (d) => {
742
- _push(`<option${ssrRenderAttr("value", d.kind)} data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).driver) ? ssrLooseContain(unref(filters).driver, d.kind) : ssrLooseEqual(unref(filters).driver, d.kind)) ? " selected" : ""}${_scopeId}>${ssrInterpolate(d.label)}(${ssrInterpolate(d.count)}) </option>`);
781
+ _push(`<option${ssrRenderAttr("value", d.kind)} data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).driver) ? ssrLooseContain(unref(filters).driver, d.kind) : ssrLooseEqual(unref(filters).driver, d.kind)) ? " selected" : ""}${_scopeId}>${ssrInterpolate(d.label)}(${ssrInterpolate(d.count)}) </option>`);
743
782
  });
744
- _push(`<!--]--></select></label><label class="flt"${ssrRenderAttr("title", _ctx.$t("daq.k1flttim014"))} data-v-e2087525${_scopeId}><span data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1flttim015"))}</span><select class="inp-sel" data-v-e2087525${_scopeId}><option value="" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).time) ? ssrLooseContain(unref(filters).time, "") : ssrLooseEqual(unref(filters).time, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1flttim016"))}</option><option value="live" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).time) ? ssrLooseContain(unref(filters).time, "live") : ssrLooseEqual(unref(filters).time, "live")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1timlv017"))}</option><option value="hour" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).time) ? ssrLooseContain(unref(filters).time, "hour") : ssrLooseEqual(unref(filters).time, "hour")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1timhr018"))}</option><option value="day" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).time) ? ssrLooseContain(unref(filters).time, "day") : ssrLooseEqual(unref(filters).time, "day")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1timdy019"))}</option><option value="old" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).time) ? ssrLooseContain(unref(filters).time, "old") : ssrLooseEqual(unref(filters).time, "old")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1timld020"))}</option><option value="never" data-v-e2087525${ssrIncludeBooleanAttr(Array.isArray(unref(filters).time) ? ssrLooseContain(unref(filters).time, "never") : ssrLooseEqual(unref(filters).time, "never")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1timnv021"))}</option></select></label><label class="flt" data-v-e2087525${_scopeId}><span data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1fltsrc022"))}</span><input${ssrRenderAttr("value", unref(filters).search)} class="inp-sel flt-search" type="search"${ssrRenderAttr("placeholder", _ctx.$t("daq.k1fltsph023"))} data-v-e2087525${_scopeId}></label>`);
745
- if (hasFilters.value) _push(`<button class="mini-btn clear-btn" data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1fygck2066"))}</button>`);
783
+ _push(`<!--]--></select></label><label class="flt"${ssrRenderAttr("title", _ctx.$t("daq.k1flttim014"))} data-v-74f24580${_scopeId}><span data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1flttim015"))}</span><select class="inp-sel" data-v-74f24580${_scopeId}><option value="" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).time) ? ssrLooseContain(unref(filters).time, "") : ssrLooseEqual(unref(filters).time, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1flttim016"))}</option><option value="live" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).time) ? ssrLooseContain(unref(filters).time, "live") : ssrLooseEqual(unref(filters).time, "live")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1timlv017"))}</option><option value="hour" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).time) ? ssrLooseContain(unref(filters).time, "hour") : ssrLooseEqual(unref(filters).time, "hour")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1timhr018"))}</option><option value="day" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).time) ? ssrLooseContain(unref(filters).time, "day") : ssrLooseEqual(unref(filters).time, "day")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1timdy019"))}</option><option value="old" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).time) ? ssrLooseContain(unref(filters).time, "old") : ssrLooseEqual(unref(filters).time, "old")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1timld020"))}</option><option value="never" data-v-74f24580${ssrIncludeBooleanAttr(Array.isArray(unref(filters).time) ? ssrLooseContain(unref(filters).time, "never") : ssrLooseEqual(unref(filters).time, "never")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1timnv021"))}</option></select></label><label class="flt" data-v-74f24580${_scopeId}><span data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1fltsrc022"))}</span><input${ssrRenderAttr("value", unref(filters).search)} class="inp-sel flt-search" type="search"${ssrRenderAttr("placeholder", _ctx.$t("daq.k1fltsph023"))} data-v-74f24580${_scopeId}></label>`);
784
+ if (hasFilters.value) _push(`<button class="mini-btn clear-btn" data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1fygck2066"))}</button>`);
746
785
  else _push(`<!---->`);
747
- _push(`</div><span class="count mono" data-v-e2087525${_scopeId}>${ssrInterpolate(filteredNodes.value.length)} / ${ssrInterpolate(unref(daq).nodes.length)} ${ssrInterpolate(_ctx.$t("daq.k45uio067"))}</span></div><div class="ops-panels" data-v-e2087525${_scopeId}><div class="${ssrRenderClass([{ live: unref(daq).alarms.length > 0 }, "ops-panel alarm-panel"])}" data-v-e2087525${_scopeId}><div class="panel-head" data-v-e2087525${_scopeId}><span class="i-tabler-bell-ringing bell" data-v-e2087525${_scopeId}></span><b data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1alarm141"))}</b><span class="${ssrRenderClass([{ hot: unref(daq).alarms.length > 0 }, "mono cnt"])}" data-v-e2087525${_scopeId}>${ssrInterpolate(unref(daq).alarms.length)}</span></div><div class="panel-body" data-v-e2087525${_scopeId}>`);
748
- if (unref(daq).alarms.length === 0) _push(`<p class="panel-empty" data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1evt001"))}</p>`);
786
+ _push(`</div><span class="count mono" data-v-74f24580${_scopeId}>${ssrInterpolate(filteredNodes.value.length)} / ${ssrInterpolate(unref(daq).nodes.length)} ${ssrInterpolate(_ctx.$t("daq.k45uio067"))}</span></div><div class="ops-panels" data-v-74f24580${_scopeId}><div class="${ssrRenderClass([{ live: unref(daq).alarms.length > 0 }, "ops-panel alarm-panel"])}" data-v-74f24580${_scopeId}><div class="panel-head" data-v-74f24580${_scopeId}><span class="i-tabler-bell-ringing bell" data-v-74f24580${_scopeId}></span><b data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1alarm141"))}</b><span class="${ssrRenderClass([{ hot: unref(daq).alarms.length > 0 }, "mono cnt"])}" data-v-74f24580${_scopeId}>${ssrInterpolate(unref(daq).alarms.length)}</span></div><div class="panel-body" data-v-74f24580${_scopeId}>`);
787
+ if (unref(daq).alarms.length === 0) _push(`<p class="panel-empty" data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1evt001"))}</p>`);
749
788
  else {
750
789
  _push(`<!--[-->`);
751
790
  ssrRenderList(unref(daq).alarms, (a) => {
752
- _push(`<div class="alarm-row" data-v-e2087525${_scopeId}><span class="i-tabler-alert-triangle tri" data-v-e2087525${_scopeId}></span><b data-v-e2087525${_scopeId}>${ssrInterpolate(a.nodeName)}</b><span class="mono dim" data-v-e2087525${_scopeId}>${ssrInterpolate(a.metric)}</span><span class="mono" data-v-e2087525${_scopeId}>${ssrInterpolate(a.value)} ${ssrInterpolate(a.rule === "lt-min" ? "<" : ">")} ${ssrInterpolate(a.threshold)}</span>`);
753
- if (a.escalation > 0) _push(`<small class="esc mono" data-v-e2087525${_scopeId}>+${ssrInterpolate(a.escalation)}</small>`);
791
+ _push(`<div class="alarm-row" data-v-74f24580${_scopeId}><span class="i-tabler-alert-triangle tri" data-v-74f24580${_scopeId}></span><b data-v-74f24580${_scopeId}>${ssrInterpolate(a.nodeName)}</b><span class="mono dim" data-v-74f24580${_scopeId}>${ssrInterpolate(a.metric)}</span><span class="mono" data-v-74f24580${_scopeId}>${ssrInterpolate(a.value)} ${ssrInterpolate(a.rule === "lt-min" ? "<" : ">")} ${ssrInterpolate(a.threshold)}</span>`);
792
+ if (a.escalation > 0) _push(`<small class="esc mono" data-v-74f24580${_scopeId}>+${ssrInterpolate(a.escalation)}</small>`);
754
793
  else _push(`<!---->`);
755
- _push(`<button class="mini-btn ack" data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1ack142"))}</button></div>`);
794
+ _push(`<button class="mini-btn ack" data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1ack142"))}</button></div>`);
756
795
  });
757
796
  _push(`<!--]-->`);
758
797
  }
759
- _push(`</div></div><div class="ops-panel event-panel" data-v-e2087525${_scopeId}><div class="panel-head" data-v-e2087525${_scopeId}><span class="i-tabler-activity" data-v-e2087525${_scopeId}></span><b data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1evt002"))}</b>`);
798
+ _push(`</div></div><div class="ops-panel event-panel" data-v-74f24580${_scopeId}><div class="panel-head" data-v-74f24580${_scopeId}><span class="i-tabler-activity" data-v-74f24580${_scopeId}></span><b data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1evt002"))}</b>`);
760
799
  _push(ssrRenderComponent(_component_NuxtLink, {
761
800
  class: "panel-link",
762
801
  to: "/logs"
763
802
  }, {
764
803
  default: withCtx((_, _push, _parent, _scopeId) => {
765
- if (_push) _push(`${ssrInterpolate(_ctx.$t("daq.k1evt003"))}<span class="i-tabler-arrow-right" data-v-e2087525${_scopeId}></span>`);
804
+ if (_push) _push(`${ssrInterpolate(_ctx.$t("daq.k1evt003"))}<span class="i-tabler-arrow-right" data-v-74f24580${_scopeId}></span>`);
766
805
  else return [createTextVNode(toDisplayString(_ctx.$t("daq.k1evt003")), 1), createVNode("span", { class: "i-tabler-arrow-right" })];
767
806
  }),
768
807
  _: 1
769
808
  }, _parent, _scopeId));
770
- _push(`</div><div class="panel-body" data-v-e2087525${_scopeId}>`);
771
- if (unref(opsLog).recent.length === 0) _push(`<p class="panel-empty" data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1evt004"))}</p>`);
809
+ _push(`</div><div class="panel-body" data-v-74f24580${_scopeId}>`);
810
+ if (unref(opsLog).recent.length === 0) _push(`<p class="panel-empty" data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1evt004"))}</p>`);
772
811
  else {
773
812
  _push(`<!--[-->`);
774
813
  ssrRenderList(unref(opsLog).recent, (r, i) => {
775
- _push(`<div class="evt-row" data-v-e2087525${_scopeId}><span class="mono dim t" data-v-e2087525${_scopeId}>${ssrInterpolate(opsTime(r.at))}</span><span class="${ssrRenderClass([r.actorKind, "src-badge"])}" data-v-e2087525${_scopeId}>${ssrInterpolate(r.actorKind === "agent" ? "Agent" : r.actorKind === "user" ? _ctx.$t("logs.src.user") : _ctx.$t("logs.src.system"))}</span><span class="${ssrRenderClass([r.kind, "kind-chip"])}" data-v-e2087525${_scopeId}>${ssrInterpolate(opsKindLabel(r.kind))}</span><span class="txt"${ssrRenderAttr("title", r.summary)} data-v-e2087525${_scopeId}>${ssrInterpolate(r.summary)}</span></div>`);
814
+ _push(`<div class="evt-row" data-v-74f24580${_scopeId}><span class="mono dim t" data-v-74f24580${_scopeId}>${ssrInterpolate(opsTime(r.at))}</span><span class="${ssrRenderClass([r.actorKind, "src-badge"])}" data-v-74f24580${_scopeId}>${ssrInterpolate(r.actorKind === "agent" ? "Agent" : r.actorKind === "user" ? _ctx.$t("logs.src.user") : _ctx.$t("logs.src.system"))}</span><span class="${ssrRenderClass([r.kind, "kind-chip"])}" data-v-74f24580${_scopeId}>${ssrInterpolate(opsKindLabel(r.kind))}</span><span class="txt"${ssrRenderAttr("title", r.summary)} data-v-74f24580${_scopeId}>${ssrInterpolate(r.summary)}</span></div>`);
776
815
  });
777
816
  _push(`<!--]-->`);
778
817
  }
779
- _push(`</div></div></div><table class="nodes-table" data-v-e2087525${_scopeId}><thead data-v-e2087525${_scopeId}><tr data-v-e2087525${_scopeId}><th data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k45uio067"))}</th><th data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k42w8s068"))}</th><th data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3mv305069"))}</th><th data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1trnd001"))}</th><th data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1l6g2ga070"))}</th><th data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3zi0nf071"))}</th><th data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k4a0la072"))}</th><th data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3wj9n051"))}</th><th${ssrRenderAttr("title", _ctx.$t("daq.k1runtipc131"))} data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1b2tkyv057"))}</th><th${ssrRenderAttr("title", _ctx.$t("daq.k1prdrtip132"))} data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1prodrc128"))}</th><th data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1i8rtqt054"))}</th><th class="right" data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k40aa6073"))}</th></tr></thead><tbody data-v-e2087525${_scopeId}><!--[-->`);
780
- ssrRenderList(filteredNodes.value, (n) => {
818
+ _push(`</div></div></div><table class="nodes-table" data-v-74f24580${_scopeId}><thead data-v-74f24580${_scopeId}><tr data-v-74f24580${_scopeId}><th data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k45uio067"))}</th><th data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k42w8s068"))}</th><th data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3mv305069"))}</th><th data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1trnd001"))}</th><th data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1l6g2ga070"))}</th><th data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3zi0nf071"))}</th><th data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k4a0la072"))}</th><th data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3wj9n051"))}</th><th${ssrRenderAttr("title", _ctx.$t("daq.k1runtipc131"))} data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1b2tkyv057"))}</th><th${ssrRenderAttr("title", _ctx.$t("daq.k1prdrtip132"))} data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1prodrc128"))}</th><th data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1i8rtqt054"))}</th><th class="right" data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k40aa6073"))}</th></tr></thead><tbody data-v-74f24580${_scopeId}>`);
819
+ if (padTopPx.value > 0) _push(`<tr class="vs-pad" aria-hidden="true" data-v-74f24580${_scopeId}><td${ssrRenderAttr("colspan", 11)} style="${ssrRenderStyle({ height: padTopPx.value + "px" })}" data-v-74f24580${_scopeId}></td></tr>`);
820
+ else _push(`<!---->`);
821
+ _push(`<!--[-->`);
822
+ ssrRenderList(visibleNodes.value, (n) => {
781
823
  _push(ssrRenderComponent(_component_WorkshopDaqNodeRow, {
782
824
  key: n.id,
783
825
  n
784
826
  }, null, _parent, _scopeId));
785
827
  });
786
828
  _push(`<!--]-->`);
787
- if (unref(daq).loaded && unref(daq).nodes.length === 0) _push(`<tr data-v-e2087525${_scopeId}><td colspan="11" data-v-e2087525${_scopeId}><div class="pane-empty" style="${ssrRenderStyle({ "min-height": "120px" })}" data-v-e2087525${_scopeId}><p class="pe-sub" data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.kvhjyc3075"))}</p></div></td></tr>`);
788
- else if (unref(daq).loaded && filteredNodes.value.length === 0) _push(`<tr data-v-e2087525${_scopeId}><td colspan="11" data-v-e2087525${_scopeId}><div class="pane-empty" style="${ssrRenderStyle({ "min-height": "90px" })}" data-v-e2087525${_scopeId}><p class="pe-sub" data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1w20qew076"))}</p></div></td></tr>`);
829
+ if (padBottomPx.value > 0) _push(`<tr class="vs-pad" aria-hidden="true" data-v-74f24580${_scopeId}><td${ssrRenderAttr("colspan", 11)} style="${ssrRenderStyle({ height: padBottomPx.value + "px" })}" data-v-74f24580${_scopeId}></td></tr>`);
830
+ else _push(`<!---->`);
831
+ if (unref(daq).loaded && unref(daq).nodes.length === 0) _push(`<tr data-v-74f24580${_scopeId}><td colspan="11" data-v-74f24580${_scopeId}><div class="pane-empty" style="${ssrRenderStyle({ "min-height": "120px" })}" data-v-74f24580${_scopeId}><p class="pe-sub" data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.kvhjyc3075"))}</p></div></td></tr>`);
832
+ else if (unref(daq).loaded && filteredNodes.value.length === 0) _push(`<tr data-v-74f24580${_scopeId}><td colspan="11" data-v-74f24580${_scopeId}><div class="pane-empty" style="${ssrRenderStyle({ "min-height": "90px" })}" data-v-74f24580${_scopeId}><p class="pe-sub" data-v-74f24580${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1w20qew076"))}</p></div></td></tr>`);
789
833
  else _push(`<!---->`);
790
834
  _push(`</tbody></table></section>`);
791
835
  } else return [createVNode("section", { class: "aw-tile table-card" }, [
@@ -933,7 +977,11 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
933
977
  }, toDisplayString(r.summary), 9, ["title"])
934
978
  ]);
935
979
  }), 128))])])]),
936
- createVNode("table", { class: "nodes-table" }, [createVNode("thead", null, [createVNode("tr", null, [
980
+ createVNode("table", {
981
+ ref_key: "nodesTableRef",
982
+ ref: nodesTableRef,
983
+ class: "nodes-table"
984
+ }, [createVNode("thead", null, [createVNode("tr", null, [
937
985
  createVNode("th", null, toDisplayString(_ctx.$t("daq.k45uio067")), 1),
938
986
  createVNode("th", null, toDisplayString(_ctx.$t("daq.k42w8s068")), 1),
939
987
  createVNode("th", null, toDisplayString(_ctx.$t("daq.k3mv305069")), 1),
@@ -946,24 +994,43 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
946
994
  createVNode("th", { title: _ctx.$t("daq.k1prdrtip132") }, toDisplayString(_ctx.$t("daq.k1prodrc128")), 9, ["title"]),
947
995
  createVNode("th", null, toDisplayString(_ctx.$t("daq.k1i8rtqt054")), 1),
948
996
  createVNode("th", { class: "right" }, toDisplayString(_ctx.$t("daq.k40aa6073")), 1)
949
- ])]), createVNode("tbody", null, [(openBlock(true), createBlock(Fragment, null, renderList(filteredNodes.value, (n) => {
950
- return openBlock(), createBlock(_component_WorkshopDaqNodeRow, {
951
- key: n.id,
952
- n
953
- }, null, 8, ["n"]);
954
- }), 128)), unref(daq).loaded && unref(daq).nodes.length === 0 ? (openBlock(), createBlock("tr", { key: 0 }, [createVNode("td", { colspan: "11" }, [createVNode("div", {
955
- class: "pane-empty",
956
- style: { "min-height": "120px" }
957
- }, [createVNode("p", { class: "pe-sub" }, toDisplayString(_ctx.$t("daq.kvhjyc3075")), 1)])])])) : unref(daq).loaded && filteredNodes.value.length === 0 ? (openBlock(), createBlock("tr", { key: 1 }, [createVNode("td", { colspan: "11" }, [createVNode("div", {
958
- class: "pane-empty",
959
- style: { "min-height": "90px" }
960
- }, [createVNode("p", { class: "pe-sub" }, toDisplayString(_ctx.$t("daq.k1w20qew076")), 1)])])])) : createCommentVNode("", true)])])
997
+ ])]), createVNode("tbody", null, [
998
+ padTopPx.value > 0 ? (openBlock(), createBlock("tr", {
999
+ key: 0,
1000
+ class: "vs-pad",
1001
+ "aria-hidden": "true"
1002
+ }, [createVNode("td", {
1003
+ colspan: 11,
1004
+ style: { height: padTopPx.value + "px" }
1005
+ }, null, 4)])) : createCommentVNode("", true),
1006
+ (openBlock(true), createBlock(Fragment, null, renderList(visibleNodes.value, (n) => {
1007
+ return openBlock(), createBlock(_component_WorkshopDaqNodeRow, {
1008
+ key: n.id,
1009
+ n
1010
+ }, null, 8, ["n"]);
1011
+ }), 128)),
1012
+ padBottomPx.value > 0 ? (openBlock(), createBlock("tr", {
1013
+ key: 1,
1014
+ class: "vs-pad",
1015
+ "aria-hidden": "true"
1016
+ }, [createVNode("td", {
1017
+ colspan: 11,
1018
+ style: { height: padBottomPx.value + "px" }
1019
+ }, null, 4)])) : createCommentVNode("", true),
1020
+ unref(daq).loaded && unref(daq).nodes.length === 0 ? (openBlock(), createBlock("tr", { key: 2 }, [createVNode("td", { colspan: "11" }, [createVNode("div", {
1021
+ class: "pane-empty",
1022
+ style: { "min-height": "120px" }
1023
+ }, [createVNode("p", { class: "pe-sub" }, toDisplayString(_ctx.$t("daq.kvhjyc3075")), 1)])])])) : unref(daq).loaded && filteredNodes.value.length === 0 ? (openBlock(), createBlock("tr", { key: 3 }, [createVNode("td", { colspan: "11" }, [createVNode("div", {
1024
+ class: "pane-empty",
1025
+ style: { "min-height": "90px" }
1026
+ }, [createVNode("p", { class: "pe-sub" }, toDisplayString(_ctx.$t("daq.k1w20qew076")), 1)])])])) : createCommentVNode("", true)
1027
+ ])], 512)
961
1028
  ])];
962
1029
  }),
963
1030
  _: 1
964
1031
  }, _parent));
965
1032
  if (unref(daq).error) {
966
- _push(`<p class="err" data-v-e2087525>${ssrInterpolate(unref(daq).error)}(`);
1033
+ _push(`<p class="err" data-v-74f24580>${ssrInterpolate(unref(daq).error)}(`);
967
1034
  _push(ssrRenderComponent(_component_NuxtLink, { to: "/workshop" }, {
968
1035
  default: withCtx((_, _push, _parent, _scopeId) => {
969
1036
  if (_push) _push(`${ssrInterpolate(_ctx.$t("daq.k1bhhheq077"))}`);
@@ -985,7 +1052,7 @@ index_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
985
1052
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/daq/index.vue");
986
1053
  return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
987
1054
  };
988
- var daq_default = /*#__PURE__*/ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-e2087525"]]);
1055
+ var daq_default = /*#__PURE__*/ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-74f24580"]]);
989
1056
 
990
1057
  export { daq_default as default };
991
- //# sourceMappingURL=daq-C03Uu5UE.mjs.map
1058
+ //# sourceMappingURL=daq-DkMvD8sg.mjs.map