agentworkshop 0.7.38 → 0.7.40

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 (392) hide show
  1. package/.AgentWorkShop/prompts/aml-mission-default.md +20 -20
  2. package/.AgentWorkShop/prompts/aml-playbook.md +49 -49
  3. package/.AgentWorkShop/prompts/host-tools.json +1293 -1238
  4. package/.AgentWorkShop/prompts/peer-reply-cross-channel.md +10 -10
  5. package/.output/.AgentWorkShop/prompts/aml-mission-default.md +20 -20
  6. package/.output/.AgentWorkShop/prompts/aml-playbook.md +49 -49
  7. package/.output/.AgentWorkShop/prompts/host-tools.json +1293 -1238
  8. package/.output/.AgentWorkShop/prompts/peer-reply-cross-channel.md +10 -10
  9. package/.output/nitro.json +1 -1
  10. package/.output/public/_nuxt/88GOowgO2.js +1 -0
  11. package/.output/public/_nuxt/{BNT8gYU92.js → BC9wjTJK2.js} +2 -2
  12. package/.output/public/_nuxt/BOt2SP4z.js +1 -0
  13. package/.output/public/_nuxt/BP-NyKVG.js +18 -0
  14. package/.output/public/_nuxt/{HBLJ-wei.js → BXxH0UQE.js} +1 -1
  15. package/.output/public/_nuxt/{zIGh7R49.js → BneN7fbu.js} +1 -1
  16. package/.output/public/_nuxt/BsROmY89.js +1 -0
  17. package/.output/public/_nuxt/{C_OLzD09.js → C4oW1HsE.js} +1 -1
  18. package/.output/public/_nuxt/CFxtLwjp.js +1 -0
  19. package/.output/public/_nuxt/{Cec0Ua3F.js → CS50LB_l.js} +1 -1
  20. package/.output/public/_nuxt/C_iYD-EB.js +1 -0
  21. package/.output/public/_nuxt/{DAe0h2MB.js → ClILjvWH.js} +1 -1
  22. package/.output/public/_nuxt/CssgYAAL2.js +1 -0
  23. package/.output/public/_nuxt/{CY9LbPCI.js → CzOCSGLe.js} +1 -1
  24. package/.output/public/_nuxt/D8qvkfyY.js +1 -0
  25. package/.output/public/_nuxt/DCn7QZ5N.js +2 -0
  26. package/.output/public/_nuxt/DGIuvyRN2.js +1 -0
  27. package/.output/public/_nuxt/{CojCTLKD.js → DGj-WEBg.js} +1 -1
  28. package/.output/public/_nuxt/{DDShH71m.js → DS8qj8EL.js} +1 -1
  29. package/.output/public/_nuxt/DTFCy6h-.js +1 -0
  30. package/.output/public/_nuxt/{DrYV5i68.js → DUjW5Yq5.js} +1 -1
  31. package/.output/public/_nuxt/DZshyNLa.js +1 -0
  32. package/.output/public/_nuxt/{45zuyAso.js → D_OTvQza.js} +1 -1
  33. package/.output/public/_nuxt/DcsCcxp4.js +1 -0
  34. package/.output/public/_nuxt/{DUrecWPx.js → Dihnimlk.js} +2 -2
  35. package/.output/public/_nuxt/Dqw1lpr-.js +1 -0
  36. package/.output/public/_nuxt/{BG8sCcwx.js → Dr9v6C0f.js} +9 -9
  37. package/.output/public/_nuxt/{8NMOXZOV.js → Du9ZJtnj.js} +1 -1
  38. package/.output/public/_nuxt/TownView.f-YOdXRs.css +1 -0
  39. package/.output/public/_nuxt/_id_.CM4bIgKY.css +1 -0
  40. package/.output/public/_nuxt/_id_.bNV69Dtf.css +1 -0
  41. package/.output/public/_nuxt/_wsId_.B4WiqkIS.css +1 -0
  42. package/.output/public/_nuxt/agents.ZD0rVdHE.css +1 -0
  43. package/.output/public/_nuxt/aml.BN8ZEW4h.css +1 -0
  44. package/.output/public/_nuxt/builds/latest.json +1 -1
  45. package/.output/public/_nuxt/builds/meta/f4707884-7cf4-4a31-80d2-e3d72b73745f.json +1 -0
  46. package/.output/public/_nuxt/channel-templates.BOtahzPi.css +1 -0
  47. package/.output/public/_nuxt/daq.B0D3dPAc.css +1 -0
  48. package/.output/public/_nuxt/dcw.8Y7FqCVN.css +1 -0
  49. package/.output/public/_nuxt/default.J32SgqFY.css +1 -0
  50. package/.output/public/_nuxt/entry.bdm0tv6M.css +1 -0
  51. package/.output/public/_nuxt/logs.BpKzmKsh.css +1 -0
  52. package/.output/public/_nuxt/monitor.D9pe7qN6.css +1 -0
  53. package/.output/public/_nuxt/pages.D7aSDlUI.css +1 -0
  54. package/.output/public/_nuxt/permissions.DwTVlFe6.css +1 -0
  55. package/.output/public/_nuxt/plugins.sb4nDGqr.css +1 -0
  56. package/.output/public/_nuxt/{Cbq-mryP.js → qr6R6Ha1.js} +1 -1
  57. package/.output/public/_nuxt/settings.BTgR-NiE.css +1 -0
  58. package/.output/public/_nuxt/teams.CxnxKVVs.css +1 -0
  59. package/.output/public/_nuxt/tokens.BFY7qv4f.css +1 -0
  60. package/.output/public/_nuxt/{town.DKIAhKnx.css → town.BBXZmeoP.css} +1 -1
  61. package/.output/public/_nuxt/users.DLgZ1D0h.css +1 -0
  62. package/.output/public/_nuxt/workshop.CR_QzeAN.css +1 -0
  63. package/.output/public/_nuxt/{BzHEilTt.js → xh3_vYcu.js} +1 -1
  64. package/.output/public/_nuxt/yF0aYMF1.js +4 -0
  65. package/.output/server/chunks/_/entity.mjs.map +1 -1
  66. package/.output/server/chunks/_/nitro.mjs +2244 -1464
  67. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  68. package/.output/server/chunks/build/{TownView-jVazYOjN.mjs → TownView-BuLAsmpR.mjs} +288 -206
  69. package/.output/server/chunks/build/TownView-BuLAsmpR.mjs.map +1 -0
  70. package/.output/server/chunks/build/{_id_-CfVosNg3.mjs → _id_-BU1wfOID.mjs} +138 -138
  71. package/.output/server/chunks/build/{_id_-CfVosNg3.mjs.map → _id_-BU1wfOID.mjs.map} +1 -1
  72. package/.output/server/chunks/build/{_id_-Hwr4rZpr.mjs → _id_-BYsEua57.mjs} +33 -32
  73. package/.output/server/chunks/build/_id_-BYsEua57.mjs.map +1 -0
  74. package/.output/server/chunks/build/{_wsId_-BVg3bB77.mjs → _wsId_-BxlDcJHg.mjs} +293 -259
  75. package/.output/server/chunks/build/{_wsId_-BVg3bB77.mjs.map → _wsId_-BxlDcJHg.mjs.map} +1 -1
  76. package/.output/server/chunks/build/{agents-Bvin73QY.mjs → agents-CLQqJF2y.mjs} +21 -27
  77. package/.output/server/chunks/build/agents-CLQqJF2y.mjs.map +1 -0
  78. package/.output/server/chunks/build/{aml-BCSJCdX7.mjs → aml-_7FdFL2p.mjs} +109 -109
  79. package/.output/server/chunks/build/{aml-BCSJCdX7.mjs.map → aml-_7FdFL2p.mjs.map} +1 -1
  80. package/.output/server/chunks/build/api-error-dul30BYQ.mjs.map +1 -1
  81. package/.output/server/chunks/build/{channel-templates-BTq8570n.mjs → channel-templates-p6SZNjlM.mjs} +19 -19
  82. package/.output/server/chunks/build/{channel-templates-BTq8570n.mjs.map → channel-templates-p6SZNjlM.mjs.map} +1 -1
  83. package/.output/server/chunks/build/{daq-C03Uu5UE.mjs → daq-cgyjKmJu.mjs} +188 -122
  84. package/.output/server/chunks/build/daq-cgyjKmJu.mjs.map +1 -0
  85. package/.output/server/chunks/build/{dcw-6vEYVeje.mjs → dcw-CoTxBlAZ.mjs} +45 -45
  86. package/.output/server/chunks/build/{dcw-6vEYVeje.mjs.map → dcw-CoTxBlAZ.mjs.map} +1 -1
  87. package/.output/server/chunks/build/{default-hseyOqBT.mjs → default-BE4r0FZN.mjs} +158 -79
  88. package/.output/server/chunks/build/{default-hseyOqBT.mjs.map → default-BE4r0FZN.mjs.map} +1 -1
  89. package/.output/server/chunks/build/{logs-B-xhuqln.mjs → logs-BSOeZwwI.mjs} +34 -34
  90. package/.output/server/chunks/build/{logs-B-xhuqln.mjs.map → logs-BSOeZwwI.mjs.map} +1 -1
  91. package/.output/server/chunks/build/{monitor-CyfDt4nR.mjs → monitor-C0okQaXz.mjs} +33 -33
  92. package/.output/server/chunks/build/{monitor-CyfDt4nR.mjs.map → monitor-C0okQaXz.mjs.map} +1 -1
  93. package/.output/server/chunks/build/{pages-BO7yZsXA.mjs → pages-DFxjn9Xa.mjs} +33 -17
  94. package/.output/server/chunks/build/pages-DFxjn9Xa.mjs.map +1 -0
  95. package/.output/server/chunks/build/{permissions-B52oOmaO.mjs → permissions-68SsNjex.mjs} +12 -12
  96. package/.output/server/chunks/build/{permissions-B52oOmaO.mjs.map → permissions-68SsNjex.mjs.map} +1 -1
  97. package/.output/server/chunks/build/{plugins-CUWmMdyt.mjs → plugins-lGlUr1lj.mjs} +17 -17
  98. package/.output/server/chunks/build/{plugins-CUWmMdyt.mjs.map → plugins-lGlUr1lj.mjs.map} +1 -1
  99. package/.output/server/chunks/build/{settings-DoQ2Oq3P.mjs → settings-Ddd1qx2Z.mjs} +50 -47
  100. package/.output/server/chunks/build/settings-Ddd1qx2Z.mjs.map +1 -0
  101. package/.output/server/chunks/build/{teams-2kz3CusY.mjs → teams-MEDLZdMn.mjs} +38 -34
  102. package/.output/server/chunks/build/teams-MEDLZdMn.mjs.map +1 -0
  103. package/.output/server/chunks/build/{tokens-BbWLqtVz.mjs → tokens-C7fTM5C2.mjs} +14 -14
  104. package/.output/server/chunks/build/{tokens-BbWLqtVz.mjs.map → tokens-C7fTM5C2.mjs.map} +1 -1
  105. package/.output/server/chunks/build/{town-BOl6hs9B.mjs → town-qMPql9Se.mjs} +36 -10
  106. package/.output/server/chunks/build/town-qMPql9Se.mjs.map +1 -0
  107. package/.output/server/chunks/build/useDaqStream-CIBaiGAl.mjs +1 -1
  108. package/.output/server/chunks/build/useDcwStream-CBbiYnWe.mjs +1 -1
  109. package/.output/server/chunks/build/useResponsive-BKDMGTHs.mjs +49 -0
  110. package/.output/server/chunks/build/useResponsive-BKDMGTHs.mjs.map +1 -0
  111. package/.output/server/chunks/build/{users-fohSmF-J.mjs → users-Cfd5-l2-.mjs} +6 -6
  112. package/.output/server/chunks/build/{users-fohSmF-J.mjs.map → users-Cfd5-l2-.mjs.map} +1 -1
  113. package/.output/server/chunks/build/{workshop-DX5-ldc4.mjs → workshop-BL5bhfs0.mjs} +15 -15
  114. package/.output/server/chunks/build/{workshop-DX5-ldc4.mjs.map → workshop-BL5bhfs0.mjs.map} +1 -1
  115. package/.output/server/chunks/build/{workspaces-BuydxM-3.mjs → workspaces-Bgz5Ekwp.mjs} +18 -3
  116. package/.output/server/chunks/build/workspaces-Bgz5Ekwp.mjs.map +1 -0
  117. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs.map +1 -1
  118. package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
  119. package/.output/server/chunks/routes/api/system/index.post.mjs.map +1 -1
  120. package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
  121. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +6 -2
  122. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  123. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +2 -1
  124. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +1 -1
  125. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
  126. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +3 -3
  127. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
  128. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
  129. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
  130. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +3 -2
  131. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
  132. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -1
  133. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
  134. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +8 -6
  135. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
  136. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +5 -5
  137. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
  138. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +14 -4
  139. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
  140. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +4 -4
  141. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
  142. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +4 -3
  143. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
  144. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +31 -0
  145. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs.map +1 -0
  146. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +28 -0
  147. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +1 -0
  148. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
  149. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +32 -0
  150. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -0
  151. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +34 -0
  152. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs.map +1 -0
  153. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +33 -0
  154. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs.map +1 -0
  155. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +34 -0
  156. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs.map +1 -0
  157. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
  158. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
  159. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
  160. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
  161. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
  162. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
  163. package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
  164. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +2 -0
  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 +53 -25
  175. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  176. package/.output/server/package.json +1 -1
  177. package/README-zh.md +204 -40
  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 -24
  182. package/app/components/AppSidebar.vue +118 -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/useDcwStream.ts +1 -1
  206. package/app/composables/workshop/useVisibleInterval.ts +2 -2
  207. package/app/composables/workshop/useWorkshopApi.ts +1 -1
  208. package/app/layouts/default.vue +46 -2
  209. package/app/pages/aml/index.vue +712 -616
  210. package/app/pages/daq/[id].vue +3 -2
  211. package/app/pages/daq/index.vue +209 -9
  212. package/app/pages/dcw/[id].vue +109 -28
  213. package/app/pages/dcw/index.vue +83 -23
  214. package/app/pages/index.vue +35 -1
  215. package/app/pages/logs/index.vue +147 -13
  216. package/app/pages/monitor.vue +56 -12
  217. package/app/pages/permissions/index.vue +34 -0
  218. package/app/pages/plugins/index.vue +35 -4
  219. package/app/pages/settings.vue +90 -21
  220. package/app/pages/tokens.vue +23 -0
  221. package/app/pages/town.vue +50 -5
  222. package/app/pages/users.vue +23 -0
  223. package/app/pages/workshop/agents.vue +92 -2
  224. package/app/pages/workshop/channel-templates.vue +53 -0
  225. package/app/pages/workshop/index.vue +14 -0
  226. package/app/pages/workshop/teams.vue +66 -6
  227. package/app/pages/workshop/w/[wsId].vue +202 -14
  228. package/app/plugins/aw-plugins.client.ts +13 -8
  229. package/app/stores/app.ts +33 -1
  230. package/app/stores/workshop/user.ts +1 -1
  231. package/app/stores/workshop/workspaces.ts +18 -2
  232. package/app/utils/api-error.ts +1 -1
  233. package/cli/commands/build.mjs +8 -1
  234. package/docker-compose.yml +6 -0
  235. package/docs/full-test-plan.md +4 -0
  236. package/docs/plugins.en.md +1 -0
  237. package/docs/plugins.md +1 -0
  238. package/i18n/locales/en.ts +3 -0
  239. package/i18n/locales/zh-CN.ts +3 -0
  240. package/nuxt.config.ts +31 -0
  241. package/package.json +9 -1
  242. package/scripts/_audit/detached-start.mjs +103 -0
  243. package/scripts/_audit/guard-upstream-liveness.mjs +104 -0
  244. package/scripts/_dbg-param-map-e2e.ts +242 -0
  245. package/scripts/_dbg-param-map-rest-smoke.mjs +73 -0
  246. package/scripts/_dbg-param-real-scenario.mjs +153 -0
  247. package/scripts/_dbg-perms-e2e.mjs +10 -3
  248. package/scripts/_dbg-protocol-matrix.mjs +453 -441
  249. package/scripts/_dbg-render-regression.mjs +151 -130
  250. package/scripts/_dbg-town-agents-probe.mjs +60 -0
  251. package/scripts/_dbg-visual-acceptance.mjs +63 -0
  252. package/scripts/api-live-e2e.mjs +40 -8
  253. package/scripts/capture-walkthrough.mjs +232 -0
  254. package/scripts/e2e-agent-team.mjs +5 -3
  255. package/scripts/render-walkthrough-figure.mjs +46 -0
  256. package/scripts/seed-walkthrough-fixture.mjs +143 -0
  257. package/scripts/test-plugin-hardening.mjs +8 -0
  258. package/scripts/three-system-e2e.mjs +6 -6
  259. package/scripts/ui/admin-shots.mjs +46 -0
  260. package/scripts/ui/audit-layout.mjs +301 -0
  261. package/scripts/ui/bump-microfont.mjs +39 -0
  262. package/scripts/ui/lib.mjs +198 -0
  263. package/scripts/ui/linkcheck2.mjs +37 -0
  264. package/scripts/ui/live-render-check.mjs +72 -0
  265. package/scripts/ui/md-lint.mjs +80 -0
  266. package/scripts/ui/perf-audit.mjs +132 -0
  267. package/scripts/ui/readme-assets.mjs +30 -0
  268. package/scripts/ui/readme-shots.mjs +42 -0
  269. package/scripts/ui/record.mjs +225 -0
  270. package/scripts/ui/seed-admin.mjs +68 -0
  271. package/scripts/ui/seed-demo.mjs +83 -0
  272. package/scripts/ui/shot-hero.mjs +25 -0
  273. package/scripts/ui/shots.mjs +75 -0
  274. package/scripts/ui/sim-ui-shot.mjs +16 -0
  275. package/scripts/ui/verify-nav.mjs +51 -0
  276. package/scripts/ui/verify-responsive.mjs +285 -0
  277. package/server/api/system/config-groups/[id].patch.ts +1 -1
  278. package/server/api/system/config-groups/index.post.ts +1 -1
  279. package/server/api/system/settings/events.get.ts +1 -1
  280. package/server/api/system/settings/index.patch.ts +1 -1
  281. package/server/api/workshop/agent-tools/invoke.post.ts +16 -2
  282. package/server/api/workshop/aml/datasets/[id].get.ts +8 -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 +2 -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 +14 -3
  299. package/server/plugins/dev-stability-guard.ts +3 -1
  300. package/server/plugins/system-config.ts +6 -1
  301. package/server/plugins-builtin/rag-bridge/index.mjs +9 -2
  302. package/server/services/system-config.ts +28 -9
  303. package/server/services/workshop/agents/adapters/one-shot-cli-agent.ts +2 -1
  304. package/server/services/workshop/agents/agent-interface.ts +8 -6
  305. package/server/services/workshop/agents/base-agent.ts +18 -4
  306. package/server/services/workshop/agents/claude-agent.ts +7 -3
  307. package/server/services/workshop/agents/codex-agent.ts +3 -3
  308. package/server/services/workshop/agents/dsh-agent.ts +3 -3
  309. package/server/services/workshop/agents/goose-agent.ts +0 -1
  310. package/server/services/workshop/agents/harness-terminal.ts +14 -1
  311. package/server/services/workshop/agents/hermes-agent.ts +4 -2
  312. package/server/services/workshop/agents/host-tool-bridge.ts +5 -1
  313. package/server/services/workshop/agents/industrial-context.ts +4 -1
  314. package/server/services/workshop/agents/industrial-tools.ts +164 -6
  315. package/server/services/workshop/agents/omp-agent.ts +15 -9
  316. package/server/services/workshop/agents/opencode-agent.ts +47 -21
  317. package/server/services/workshop/agents/qwen-agent.ts +10 -5
  318. package/server/services/workshop/aml/entity.ts +3 -1
  319. package/server/services/workshop/aml/python-runtime.ts +3 -2
  320. package/server/services/workshop/daq/bus/mqtt.adapter.ts +8 -4
  321. package/server/services/workshop/daq/daq-controller.ts +18 -3
  322. package/server/services/workshop/daq/daq-runtime.ts +5 -3
  323. package/server/services/workshop/daq/drivers.ts +63 -8
  324. package/server/services/workshop/daq/host-ports.ts +3 -2
  325. package/server/services/workshop/daq/storage/timescale.adapter.ts +3 -1
  326. package/server/services/workshop/db/channel.repo.ts +4 -0
  327. package/server/services/workshop/db/ops.repo.ts +5 -2
  328. package/server/services/workshop/db/retention.ts +8 -3
  329. package/server/services/workshop/dcw/dcw-controller.ts +143 -16
  330. package/server/services/workshop/dcw/dcw-product.repo.ts +38 -1
  331. package/server/services/workshop/dcw/dcw-runtime.ts +3 -2
  332. package/server/services/workshop/dcw/drivers.ts +5 -2
  333. package/server/services/workshop/dcw/param-conversion.ts +78 -0
  334. package/server/services/workshop/dcw/param-limits.ts +142 -0
  335. package/server/services/workshop/dcw/param-map.repo.ts +305 -0
  336. package/server/services/workshop/dcw/recipe-rollback-manager.ts +13 -7
  337. package/server/services/workshop/runtime/agent-runtime.ts +4 -0
  338. package/server/services/workshop/runtime/manager.ts +9 -2
  339. package/server/services/workshop/settings.ts +4 -2
  340. package/server/types/pg.d.ts +49 -0
  341. package/server/utils/stability-severity.ts +13 -2
  342. package/shared/config/groups.mjs +22 -1
  343. package/shared/config/home.d.mts +28 -0
  344. package/shared/dcw-protocol.ts +136 -0
  345. package/uno.config.ts +12 -1
  346. package/.output/public/_nuxt/BFkgkW8u.js +0 -4
  347. package/.output/public/_nuxt/C5gUkRwn.js +0 -1
  348. package/.output/public/_nuxt/CM12FuB42.js +0 -1
  349. package/.output/public/_nuxt/CZiw7sEV.js +0 -1
  350. package/.output/public/_nuxt/Cc_9VzD42.js +0 -1
  351. package/.output/public/_nuxt/CdPzkOMV.js +0 -1
  352. package/.output/public/_nuxt/D1YDxZpZ.js +0 -1
  353. package/.output/public/_nuxt/D20Yamr4.js +0 -1
  354. package/.output/public/_nuxt/DVsjtsvZ2.js +0 -1
  355. package/.output/public/_nuxt/DmqknNvV.js +0 -18
  356. package/.output/public/_nuxt/DnUuIR83.js +0 -1
  357. package/.output/public/_nuxt/S_fVQwJK.js +0 -1
  358. package/.output/public/_nuxt/TownView.0oLiQgTC.css +0 -1
  359. package/.output/public/_nuxt/_id_.D-SYuyZb.css +0 -1
  360. package/.output/public/_nuxt/_id_.hma_BU6T.css +0 -1
  361. package/.output/public/_nuxt/_wsId_.B12v3PhY.css +0 -1
  362. package/.output/public/_nuxt/agents.BV70ioCv.css +0 -1
  363. package/.output/public/_nuxt/ahgEJu2R.js +0 -1
  364. package/.output/public/_nuxt/aml.COEKNNqK.css +0 -1
  365. package/.output/public/_nuxt/builds/meta/44b66249-54d0-4c8a-9057-9755a32329e2.json +0 -1
  366. package/.output/public/_nuxt/channel-templates.C-M5nKcC.css +0 -1
  367. package/.output/public/_nuxt/daq.B3265ZDn.css +0 -1
  368. package/.output/public/_nuxt/dcw.DLYZqEhT.css +0 -1
  369. package/.output/public/_nuxt/default.DE_vT238.css +0 -1
  370. package/.output/public/_nuxt/entry.BB-Eeh-J.css +0 -1
  371. package/.output/public/_nuxt/logs.CqFyMrJw.css +0 -1
  372. package/.output/public/_nuxt/monitor.B--1dPzs.css +0 -1
  373. package/.output/public/_nuxt/pages.ooEzrMm9.css +0 -1
  374. package/.output/public/_nuxt/permissions.B1pjGChZ.css +0 -1
  375. package/.output/public/_nuxt/plugins.5e5chZ67.css +0 -1
  376. package/.output/public/_nuxt/pz2JDAM7.js +0 -2
  377. package/.output/public/_nuxt/settings.Dm3M0RLy.css +0 -1
  378. package/.output/public/_nuxt/teams.BC75EGnR.css +0 -1
  379. package/.output/public/_nuxt/tokens.xRb1fSPU.css +0 -1
  380. package/.output/public/_nuxt/users.CXnP2E08.css +0 -1
  381. package/.output/public/_nuxt/workshop.Jk5HxWPE.css +0 -1
  382. package/.output/server/chunks/build/TownView-jVazYOjN.mjs.map +0 -1
  383. package/.output/server/chunks/build/_id_-Hwr4rZpr.mjs.map +0 -1
  384. package/.output/server/chunks/build/agents-Bvin73QY.mjs.map +0 -1
  385. package/.output/server/chunks/build/daq-C03Uu5UE.mjs.map +0 -1
  386. package/.output/server/chunks/build/pages-BO7yZsXA.mjs.map +0 -1
  387. package/.output/server/chunks/build/settings-DoQ2Oq3P.mjs.map +0 -1
  388. package/.output/server/chunks/build/teams-2kz3CusY.mjs.map +0 -1
  389. package/.output/server/chunks/build/town-BOl6hs9B.mjs.map +0 -1
  390. package/.output/server/chunks/build/workspaces-BuydxM-3.mjs.map +0 -1
  391. /package/.output/public/_nuxt/{36oeS8_R2.js → 36oeS8_R.js} +0 -0
  392. /package/.output/public/_nuxt/{CYWVXZTS.js → CYWVXZTS2.js} +0 -0
@@ -8,7 +8,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 { bt as DAQ_TEMPLATES, bw as DAQ_DRIVERS, bv as daqKeyFromRef, by 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) => {
@@ -515,10 +553,10 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
515
553
  const _component_NuxtLink = NuxtLink;
516
554
  const _component_a_spin = spin_default;
517
555
  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>`);
556
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-8252d58d><div class="aw-page-head" data-v-8252d58d><div data-v-8252d58d><p class="aw-kicker" data-v-8252d58d> AGENTWORKSHOP / DAQ CONSOLE </p><h1 data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1emg364011"))}</h1><p class="sub" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1wmg2bz012"))}</p></div><div class="badges mono" data-v-8252d58d><span class="badge"${ssrRenderAttr("title", _ctx.$t("daq.k1tsdbtip133"))} data-v-8252d58d>TSDB · ${ssrInterpolate(unref(daq).meta.tsdb)}</span><span class="badge"${ssrRenderAttr("title", _ctx.$t("daq.k1queuet134"))} data-v-8252d58d>QUEUE · ${ssrInterpolate(unref(daq).meta.queue)}</span></div></div>`);
519
557
  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><!--]-->`);
558
+ _push(`<div class="${ssrRenderClass([{ good: filteredLineState.value.active }, "infra-banner"])}" data-v-8252d58d><span class="${ssrRenderClass(filteredLineState.value.active ? "i-tabler-circle-check" : "i-tabler-info-circle")}" data-v-8252d58d></span><span class="txt" data-v-8252d58d>`);
559
+ if (filteredLineState.value.active) _push(`<!--[-->${ssrInterpolate(_ctx.$t("daq.k3ktxbr085"))}${ssrInterpolate(filteredLine.value.name)}」${ssrInterpolate(_ctx.$t("daq.k15lvw0o105"))}<b data-v-8252d58d>${ssrInterpolate(filteredLineState.value.productName)}</b> · Recipe:<b data-v-8252d58d>${ssrInterpolate(filteredLineState.value.recipeName)}</b><small class="mono" data-v-8252d58d>${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
560
  else _push(`<!--[-->${ssrInterpolate(_ctx.$t("daq.k3ktxbr085"))}${ssrInterpolate(filteredLine.value.name)}」${ssrInterpolate(_ctx.$t("daq.k12uge2o107"))}<!--]-->`);
523
561
  _push(`</span>`);
524
562
  _push(ssrRenderComponent(_component_NuxtLink, {
@@ -533,7 +571,7 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
533
571
  }, _parent));
534
572
  _push(`</div>`);
535
573
  } 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"))}`);
574
+ _push(`<div class="infra-banner" data-v-8252d58d><span class="i-tabler-info-circle" data-v-8252d58d></span><span class="txt" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k19onw5w013"))}`);
537
575
  _push(ssrRenderComponent(_component_NuxtLink, { to: "/dcw" }, {
538
576
  default: withCtx((_, _push, _parent, _scopeId) => {
539
577
  if (_push) _push(`${ssrInterpolate(_ctx.$t("daq.k1b2tk5c014"))}`);
@@ -543,19 +581,19 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
543
581
  }, _parent));
544
582
  _push(`${ssrInterpolate(_ctx.$t("daq.k1u9wnlg015"))}</span></div>`);
545
583
  } 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>`);
584
+ if (unref(daq).meta.infra?.degraded) _push(`<div class="infra-banner" data-v-8252d58d><span class="i-tabler-alert-triangle" data-v-8252d58d></span><span class="txt" data-v-8252d58d>${ssrInterpolate(unref(daq).meta.infra.warning)}</span><button class="pill-btn"${ssrIncludeBooleanAttr(reconnecting.value) ? " disabled" : ""} data-v-8252d58d>${ssrInterpolate(reconnecting.value ? _ctx.$t("daq.k1ld43ur094") : _ctx.$t("daq.kzg9805110"))}</button></div>`);
547
585
  else _push(`<!---->`);
548
586
  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><!--[-->`);
587
+ _push(`<div class="alarm-bar" data-v-8252d58d><span class="bar-label" data-v-8252d58d><span class="i-tabler-bell-ringing bell" data-v-8252d58d></span> ${ssrInterpolate(_ctx.$t("daq.k1alarm141"))} <b class="mono" data-v-8252d58d>${ssrInterpolate(unref(daq).alarms.length)}</b></span><div class="alarm-scroll" data-v-8252d58d><!--[-->`);
550
588
  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>`);
589
+ _push(`<span class="alarm-item"${ssrRenderAttr("title", _ctx.$t("daq.k1esc143", { p0: a.escalation }))} data-v-8252d58d><b data-v-8252d58d>${ssrInterpolate(a.nodeName)}</b><span class="mono dim" data-v-8252d58d>${ssrInterpolate(a.metric)}</span><span class="mono" data-v-8252d58d>${ssrInterpolate(a.value)} ${ssrInterpolate(a.rule === "lt-min" ? "<" : ">")} ${ssrInterpolate(a.threshold)}</span>`);
590
+ if (a.escalation > 0) _push(`<small class="esc mono" data-v-8252d58d>+${ssrInterpolate(a.escalation)}</small>`);
553
591
  else _push(`<!---->`);
554
- _push(`<button class="mini-btn ack" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1ack142"))}</button></span>`);
592
+ _push(`<button class="mini-btn ack" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1ack142"))}</button></span>`);
555
593
  });
556
594
  _push(`<!--]--></div></div>`);
557
595
  } 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><!--[-->`);
596
+ _push(`<section class="aw-tile ctrl-card" data-v-8252d58d><div class="ctrl-row" data-v-8252d58d><div class="ctrl-left" data-v-8252d58d><button class="${ssrRenderClass([{ running: unref(daq).controller.running }, "aw-pill"])}"${ssrRenderAttr("title", _ctx.$t("daq.k1snap145"))} data-v-8252d58d><span class="${ssrRenderClass(unref(daq).controller.running ? "i-tabler-player-pause" : "i-tabler-player-play")}" data-v-8252d58d></span> ${ssrInterpolate(unref(daq).controller.running ? _ctx.$t("daq.kpui00095") : _ctx.$t("daq.knxpdpt111"))}</button><label class="cycle mono" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1ifahxj016"))} <input${ssrRenderAttr("value", unref(daq).controller.defaultIntervalMs)} type="number" min="200" max="60000" step="100" data-v-8252d58d>ms </label><label class="cycle mono"${ssrRenderAttr("title", _ctx.$t("daq.k1e8lcoo001"))} data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1if98n0017"))} <input${ssrRenderAttr("value", unref(daq).controller.defaultPublishIntervalMs)} type="number" min="0" max="60000" step="100" data-v-8252d58d>ms </label></div><div class="ctrl-right" data-v-8252d58d><span class="ctrl-metrics mono" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k45uio067"))} ${ssrInterpolate(unref(daq).controller.nodesOnline)}/${ssrInterpolate(unref(daq).controller.nodesTotal)}</span><span class="sep" data-v-8252d58d>·</span><span${ssrRenderAttr("title", _ctx.$t("daq.k1yztsu4002"))} data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k3xagp087"))} ${ssrInterpolate(unref(daq).meta.produced)}</span><span class="sep" data-v-8252d58d>·</span><span${ssrRenderAttr("title", _ctx.$t("daq.ko09iha003"))} data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k427eu088"))} ${ssrInterpolate(unref(daq).meta.consumed)}</span><span class="sep" data-v-8252d58d>·</span><span class="${ssrRenderClass({ warn: (unref(daq).meta.dropped ?? 0) > 0 })}"${ssrRenderAttr("title", _ctx.$t("daq.k1droptip135"))} data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k3w8go089"))} ${ssrInterpolate(unref(daq).meta.dropped)}</span><span class="sep" data-v-8252d58d>·</span><span${ssrRenderAttr("title", _ctx.$t("daq.kj1jbmw004"))} data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k3wusd090"))} ${ssrInterpolate(unref(daq).meta.samplesStored)}</span></span><button class="aw-pill outline add-btn" data-v-8252d58d><span class="i-tabler-adjustments-horizontal" data-v-8252d58d></span> ${ssrInterpolate(_ctx.$t("daq.k1f5cv0s018"))}</button><button class="aw-pill add-btn" data-v-8252d58d><span class="i-tabler-plus" data-v-8252d58d></span> ${ssrInterpolate(_ctx.$t("daq.k1fn0ukb019"))}</button></div></div><div class="line-strip" data-v-8252d58d><span class="strip-label" data-v-8252d58d><span class="i-tabler-route" data-v-8252d58d></span> ${ssrInterpolate(_ctx.$t("daq.k1b2o3b6020"))}<small class="mono" data-v-8252d58d>${ssrInterpolate(unref(dcw).lines.length)}</small></span><div class="strip-scroll" data-v-8252d58d><!--[-->`);
559
597
  ssrRenderList(unref(dcw).lines, (l) => {
560
598
  _push(ssrRenderComponent(_component_NuxtLink, {
561
599
  key: l.id,
@@ -570,9 +608,9 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
570
608
  }, {
571
609
  default: withCtx((_, _push, _parent, _scopeId) => {
572
610
  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>`);
611
+ _push(`<span class="lp-dot" data-v-8252d58d${_scopeId}></span><b data-v-8252d58d${_scopeId}>${ssrInterpolate(l.name)}</b>`);
612
+ if (unref(dcw).lineStateOf(l.id).active) _push(`<small class="lp-run" data-v-8252d58d${_scopeId}>${ssrInterpolate(unref(dcw).lineStateOf(l.id).recipeName ?? _ctx.$t("daq.k3vp67i096"))}</small>`);
613
+ else _push(`<small class="lp-idle" data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3zgkk021"))}</small>`);
576
614
  } else return [
577
615
  createVNode("span", { class: "lp-dot" }),
578
616
  createVNode("b", null, toDisplayString(l.name), 1),
@@ -594,7 +632,7 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
594
632
  to: "/dcw"
595
633
  }, {
596
634
  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>`);
635
+ if (_push) _push(`<span class="lp-dot" data-v-8252d58d${_scopeId}></span><b data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1el12b1022"))}</b><small class="lp-idle" data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k8jxxe8023"))}</small>`);
598
636
  else return [
599
637
  createVNode("span", { class: "lp-dot" }),
600
638
  createVNode("b", null, toDisplayString(_ctx.$t("daq.k1el12b1022")), 1),
@@ -606,101 +644,101 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
606
644
  else _push(`<!---->`);
607
645
  _push(`</div></div></section>`);
608
646
  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><!--[-->`);
647
+ _push(`<div class="modal-mask" data-v-8252d58d><div class="modal" data-v-8252d58d><h3 class="m-title" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k19rioqa024"))}</h3><div class="seg-row" data-v-8252d58d><button class="${ssrRenderClass([{ on: addScenario.value === "mock" }, "seg"])}" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1p5c1un025"))}</button><button class="${ssrRenderClass([{ on: addScenario.value === "real" }, "seg"])}" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1cbcp3o026"))}</button></div><div class="f-grid" data-v-8252d58d><label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1fsgerc027"))}</span><select class="inp" data-v-8252d58d><!--[-->`);
610
648
  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>`);
649
+ _push(`<option${ssrRenderAttr("value", t.key)} data-v-8252d58d${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
650
  });
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>`);
651
+ _push(`<!--]--></select></label><label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1ce2k1y028"))}</span><input${ssrRenderAttr("value", addName.value)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.kgpxzy3005"))} data-v-8252d58d></label>`);
652
+ if (addScenario.value === "real") _push(`<label class="f" data-v-8252d58d><span data-v-8252d58d>${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-8252d58d></label>`);
615
653
  else _push(`<!---->`);
616
654
  _push(`</div>`);
617
655
  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><!--[-->`);
656
+ _push(`<!--[--><div class="f-grid" data-v-8252d58d><label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1kt87rx030"))}</span><select class="inp" data-v-8252d58d><!--[-->`);
619
657
  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>`);
658
+ _push(`<option${ssrRenderAttr("value", d.kind)} data-v-8252d58d${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>`);
621
659
  });
622
660
  _push(`<!--]--></select></label></div>`);
623
661
  if (addFields.value.length) {
624
- _push(`<div class="f-grid driver-form" data-v-e2087525><!--[-->`);
662
+ _push(`<div class="f-grid driver-form" data-v-8252d58d><!--[-->`);
625
663
  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>`);
664
+ _push(`<label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(f.label)}`);
665
+ if (f.required) _push(`<em data-v-8252d58d>*</em>`);
628
666
  else _push(`<!---->`);
629
667
  _push(`</span>`);
630
668
  if (f.type === "select") {
631
- _push(`<select class="inp" data-v-e2087525><!--[-->`);
669
+ _push(`<select class="inp" data-v-8252d58d><!--[-->`);
632
670
  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>`);
671
+ _push(`<option${ssrRenderAttr("value", o.value)} data-v-8252d58d${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
672
  });
635
673
  _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>`);
674
+ } 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-8252d58d>`);
675
+ if (f.hint) _push(`<small class="hint" data-v-8252d58d>${ssrInterpolate(f.hint)}</small>`);
638
676
  else _push(`<!---->`);
639
677
  _push(`</label>`);
640
678
  });
641
679
  _push(`<!--]--></div>`);
642
680
  } 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>`);
681
+ _push(`<div class="test-row" data-v-8252d58d><button class="pill-btn"${ssrIncludeBooleanAttr(addTesting.value) ? " disabled" : ""} data-v-8252d58d>${ssrInterpolate(addTesting.value ? _ctx.$t("daq.k1fsh720099") : _ctx.$t("daq.k1fstglk112"))}</button>`);
644
682
  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)}`);
683
+ _push(`<span class="${ssrRenderClass([addTest.value.ok ? "ok" : "bad", "test-result"])}" data-v-8252d58d>${ssrInterpolate(addTest.value.ok ? "✓" : "✗")} ${ssrInterpolate(addTest.value.message)}`);
646
684
  if (addTest.value.latencyMs != null) _push(`<!--[-->(${ssrInterpolate(addTest.value.latencyMs)}ms)<!--]-->`);
647
685
  else _push(`<!---->`);
648
686
  _push(`</span>`);
649
687
  } else _push(`<!---->`);
650
688
  _push(`</div><!--]-->`);
651
689
  } else _push(`<!---->`);
652
- if (addError.value) _push(`<p class="m-err" data-v-e2087525>${ssrInterpolate(addError.value)}</p>`);
690
+ if (addError.value) _push(`<p class="m-err" data-v-8252d58d>${ssrInterpolate(addError.value)}</p>`);
653
691
  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>`);
692
+ _push(`<div class="m-actions" data-v-8252d58d><button class="aw-pill outline" data-v-8252d58d>${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-8252d58d>${ssrInterpolate(addSaving.value ? _ctx.$t("daq.k1bg4759100") : addScenario.value === "real" ? _ctx.$t("daq.k7pxjxo113") : _ctx.$t("daq.k1bge46t118"))}</button></div></div></div>`);
655
693
  } else _push(`<!---->`);
656
694
  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><!--[-->`);
695
+ _push(`<div class="modal-mask" data-v-8252d58d><div class="modal" data-v-8252d58d><h3 class="m-title" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k11mv96s032"))}</h3><p class="sec-label" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.ktji4ky033"))}</p><table class="tpl-table" data-v-8252d58d><tbody data-v-8252d58d><!--[-->`);
658
696
  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>`);
697
+ _push(`<tr data-v-8252d58d><td data-v-8252d58d><b data-v-8252d58d>${ssrInterpolate(t.name)}</b><small class="mono dim" data-v-8252d58d>${ssrInterpolate(t.code)}</small></td><td class="mono range" data-v-8252d58d>${ssrInterpolate(t.min)}~${ssrInterpolate(t.max)} ${ssrInterpolate(t.unit)} · ${ssrInterpolate(t.decimals)} ${ssrInterpolate(_ctx.$t("daq.k48oi091"))}</td><td class="right actions" data-v-8252d58d><button class="mini-btn" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k45eb0034"))}</button><button class="mini-btn danger" data-v-8252d58d>${ssrInterpolate(confirmingDel.value === t.key ? _ctx.$t("daq.k1hhheu3101") : _ctx.$t("daq.k3xakp114"))}</button></td></tr>`);
660
698
  });
661
699
  _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>`);
700
+ if (!customTpls.value.length) _push(`<tr data-v-8252d58d><td colspan="3" class="empty" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.kztvzbo035"))}</td></tr>`);
663
701
  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><!--[-->`);
702
+ _push(`</tbody></table><p class="sec-label" data-v-8252d58d>${ssrInterpolate(tplEditing.value ? _ctx.$t("daq.k1iiph0s102") : _ctx.$t("daq.k1efixrj115"))}</p><div class="f-grid" data-v-8252d58d><label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k3xhia036"))}<em data-v-8252d58d>*</em></span><input${ssrRenderAttr("value", unref(tplForm).name)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.k5opd2t006"))} data-v-8252d58d></label><label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k3x4ef037"))}<em data-v-8252d58d>*</em></span><input${ssrRenderAttr("value", unref(tplForm).unit)} class="inp" placeholder="如 %RH" data-v-8252d58d></label><label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1l477m0038"))}</span><input${ssrRenderAttr("value", unref(tplForm).ch)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.kk8o4tl007"))} data-v-8252d58d></label><label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1ayxrqb039"))}</span><input${ssrRenderAttr("value", unref(tplForm).code)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("daq.kzn3l7l008"))} data-v-8252d58d></label><label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1l9jv5m040"))}<em data-v-8252d58d>*</em></span><input${ssrRenderAttr("value", unref(tplForm).min)} type="number" class="inp" data-v-8252d58d></label><label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1l9jv4p041"))}<em data-v-8252d58d>*</em></span><input${ssrRenderAttr("value", unref(tplForm).max)} type="number" class="inp" data-v-8252d58d></label><label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k3mxmcx042"))}</span><input${ssrRenderAttr("value", unref(tplForm).decimals)} type="number" min="0" max="4" class="inp" data-v-8252d58d></label><label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k3xx56043"))}</span><select class="inp" data-v-8252d58d><!--[-->`);
665
703
  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>`);
704
+ _push(`<option${ssrRenderAttr("value", ic)} data-v-8252d58d${ssrIncludeBooleanAttr(Array.isArray(unref(tplForm).icon) ? ssrLooseContain(unref(tplForm).icon, ic) : ssrLooseEqual(unref(tplForm).icon, ic)) ? " selected" : ""}>${ssrInterpolate(ICON_LABEL[ic])}</option>`);
667
705
  });
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>`);
706
+ _push(`<!--]--></select></label><label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1f4eknv044"))}</span><input${ssrRenderAttr("value", unref(tplForm).base)} type="number" class="inp" data-v-8252d58d><small class="hint" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.kytd15s045"))}</small></label><label class="f" data-v-8252d58d><span data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1f4ifpo046"))}</span><input${ssrRenderAttr("value", unref(tplForm).amp)} type="number" class="inp" data-v-8252d58d><small class="hint" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.ksp2aji047"))}</small></label></div>`);
707
+ if (tplError.value) _push(`<p class="m-err" data-v-8252d58d>${ssrInterpolate(tplError.value)}</p>`);
670
708
  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><!--[-->`);
709
+ _push(`<div class="m-actions" data-v-8252d58d><button class="aw-pill outline" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k48p40048"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(tplSaving.value) ? " disabled" : ""} data-v-8252d58d>${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-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1w8s84s049"))}</p><table class="tpl-table" data-v-8252d58d><tbody data-v-8252d58d><!--[-->`);
672
710
  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>`);
711
+ _push(`<tr data-v-8252d58d><td data-v-8252d58d><b data-v-8252d58d>${ssrInterpolate(t.name)}</b><small class="mono dim" data-v-8252d58d>${ssrInterpolate(t.code)}</small></td><td class="mono range" data-v-8252d58d>${ssrInterpolate(t.min)}~${ssrInterpolate(t.max)} ${ssrInterpolate(t.unit)} · ${ssrInterpolate(t.decimals)} ${ssrInterpolate(_ctx.$t("daq.k48oi091"))}</td><td class="right actions" data-v-8252d58d><button class="mini-btn" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k3y694050"))}</button></td></tr>`);
674
712
  });
675
713
  _push(`<!--]--></tbody></table></div></div>`);
676
714
  } 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>`);
715
+ _push(`<section class="aw-tile opt-card" data-v-8252d58d><button class="opt-head" data-v-8252d58d><span class="i-tabler-flask" data-v-8252d58d></span><b data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1optt001"))}</b><span class="opt-count mono" data-v-8252d58d>${ssrInterpolate(unref(dcw).optimizations.length)}</span><span class="${ssrRenderClass([{ open: optOpen.value }, "opt-chevron"])}" data-v-8252d58d></span></button><div class="${ssrRenderClass([{ open: optOpen.value }, "opt-body"])}" data-v-8252d58d>`);
678
716
  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><!--[-->`);
717
+ _push(`<!--[--><div class="opt-filters" data-v-8252d58d><select class="inp-sel" data-v-8252d58d><option value="" data-v-8252d58d${ssrIncludeBooleanAttr(Array.isArray(optFilterLine.value) ? ssrLooseContain(optFilterLine.value, "") : ssrLooseEqual(optFilterLine.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("daq.k1optf001"))}</option><!--[-->`);
680
718
  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>`);
719
+ _push(`<option${ssrRenderAttr("value", l.id)} data-v-8252d58d${ssrIncludeBooleanAttr(Array.isArray(optFilterLine.value) ? ssrLooseContain(optFilterLine.value, l.id) : ssrLooseEqual(optFilterLine.value, l.id)) ? " selected" : ""}>${ssrInterpolate(l.name)}</option>`);
682
720
  });
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><!--[-->`);
721
+ _push(`<!--]--></select><select class="inp-sel" data-v-8252d58d><option value="" data-v-8252d58d${ssrIncludeBooleanAttr(Array.isArray(optFilterRecipe.value) ? ssrLooseContain(optFilterRecipe.value, "") : ssrLooseEqual(optFilterRecipe.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("daq.k1optf004"))}</option><!--[-->`);
684
722
  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>`);
723
+ _push(`<option${ssrRenderAttr("value", r.id)} data-v-8252d58d${ssrIncludeBooleanAttr(Array.isArray(optFilterRecipe.value) ? ssrLooseContain(optFilterRecipe.value, r.id) : ssrLooseEqual(optFilterRecipe.value, r.id)) ? " selected" : ""}>${ssrInterpolate(r.name)}</option>`);
686
724
  });
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>`);
725
+ _push(`<!--]--></select><button class="mini-act" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1optf002"))}</button></div>`);
726
+ if (unref(dcw).optimizations.length === 0) _push(`<p class="opt-empty" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1opte001"))}</p>`);
689
727
  else _push(`<!---->`);
690
- _push(`<ul class="opt-list" data-v-e2087525><!--[-->`);
728
+ _push(`<ul class="opt-list" data-v-8252d58d><!--[-->`);
691
729
  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>`);
730
+ _push(`<li class="${ssrRenderClass([r.status, "opt-row"])}" data-v-8252d58d><div class="opt-line1" data-v-8252d58d><span class="${ssrRenderClass([r.status, "opt-status"])}" data-v-8252d58d>${ssrInterpolate(_ctx.$t(optStatusKey(r.status)))}</span><b class="opt-node" data-v-8252d58d>${ssrInterpolate(r.nodeName)}</b><span class="mono opt-params" data-v-8252d58d>${ssrInterpolate(r.params[0]?.from ?? "?")} → ${ssrInterpolate(r.params[0]?.to)}</span><span class="mono opt-time" data-v-8252d58d>${ssrInterpolate(r.setAt.slice(5, 16).replace("T", " "))}</span>`);
731
+ if (!optSeriesOf.value[r.id]) _push(`<button class="mini-act"${ssrIncludeBooleanAttr(optSeriesLoading.value === r.id) ? " disabled" : ""} data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1opta001"))}</button>`);
694
732
  else _push(`<!---->`);
695
- if (r.status === "open") _push(`<button class="mini-act danger" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1opta002"))}</button>`);
733
+ if (r.status === "open") _push(`<button class="mini-act danger" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1opta002"))}</button>`);
696
734
  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>`);
735
+ _push(`</div><div class="opt-line2 mono" data-v-8252d58d>`);
736
+ if (r.judge) _push(`<span class="${ssrRenderClass([r.judge.verdict, "opt-judge"])}" data-v-8252d58d>${ssrInterpolate(r.judge.verdict)}(${ssrInterpolate(r.judge.by)}): ${ssrInterpolate(r.judge.reason.slice(0, 70))}</span>`);
737
+ else if (r.status === "open") _push(`<span class="opt-open-hint" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1opto001"))}</span>`);
700
738
  else _push(`<!---->`);
701
- if (r.aggPending) _push(`<span class="opt-agg" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1optw001"))}</span>`);
739
+ if (r.aggPending) _push(`<span class="opt-agg" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1optw001"))}</span>`);
702
740
  else if (r.windowAgg && r.windowAgg.channels.length) {
703
- _push(`<span class="opt-agg" data-v-e2087525><!--[-->`);
741
+ _push(`<span class="opt-agg" data-v-8252d58d><!--[-->`);
704
742
  ssrRenderList(r.windowAgg.channels, (c) => {
705
743
  _push(`<!--[-->${ssrInterpolate(c.ch)} ${ssrInterpolate(fmtPoint(c.min))}~${ssrInterpolate(fmtPoint(c.max))}(${ssrInterpolate(_ctx.$t("daq.k1optw002"))}${ssrInterpolate(c.breaches < 0 ? "-" : c.breaches)}) <!--]-->`);
706
744
  });
@@ -708,12 +746,12 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
708
746
  } else _push(`<!---->`);
709
747
  _push(`</div>`);
710
748
  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>`);
749
+ _push(`<div class="opt-series" data-v-8252d58d><!--[-->`);
750
+ ssrRenderList(optSeriesOf.value[r.id]?.channels ?? [], (ch) => {
751
+ _push(`<div class="opt-ch" data-v-8252d58d><svg class="opt-spark" viewBox="0 0 240 36" preserveAspectRatio="none" data-v-8252d58d><polyline${ssrRenderAttr("points", seriesPath(ch.points))} data-v-8252d58d></polyline></svg><span class="mono" data-v-8252d58d>${ssrInterpolate(ch.ch)} ${ssrInterpolate(fmtPoint(ch.points.at(-1)?.value ?? ch.points.at(-1)?.avg))}${ssrInterpolate(ch.unit)}</span></div>`);
714
752
  });
715
753
  _push(`<!--]-->`);
716
- if (optSeriesOf.value[r.id].channels.length === 0) _push(`<p class="opt-empty" data-v-e2087525>${ssrInterpolate(_ctx.$t("daq.k1opte002"))}</p>`);
754
+ if ((optSeriesOf.value[r.id]?.channels.length ?? 0) === 0) _push(`<p class="opt-empty" data-v-8252d58d>${ssrInterpolate(_ctx.$t("daq.k1opte002"))}</p>`);
717
755
  else _push(`<!---->`);
718
756
  _push(`</div>`);
719
757
  } else _push(`<!---->`);
@@ -725,67 +763,72 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
725
763
  _push(ssrRenderComponent(_component_a_spin, { spinning: !unref(daq).loaded && !unref(daq).error }, {
726
764
  default: withCtx((_, _push, _parent, _scopeId) => {
727
765
  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><!--[-->`);
766
+ _push(`<section class="aw-tile table-card" data-v-8252d58d${_scopeId}><div class="tbl-toolbar" data-v-8252d58d${_scopeId}><div class="filters" data-v-8252d58d${_scopeId}><label class="flt" data-v-8252d58d${_scopeId}><span data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3wj9n051"))}</span><select class="inp-sel" data-v-8252d58d${_scopeId}><option value="" data-v-8252d58d${ssrIncludeBooleanAttr(Array.isArray(unref(filters).lineId) ? ssrLooseContain(unref(filters).lineId, "") : ssrLooseEqual(unref(filters).lineId, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1bkl9uj052"))}</option><!--[-->`);
729
767
  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>`);
768
+ _push(`<option${ssrRenderAttr("value", l.id)} data-v-8252d58d${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
769
  });
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><!--[-->`);
770
+ _push(`<!--]--><option value="none" data-v-8252d58d${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-8252d58d${_scopeId}><span data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1i8rtqt054"))}</span><select class="inp-sel" data-v-8252d58d${_scopeId}><option value="" data-v-8252d58d${ssrIncludeBooleanAttr(Array.isArray(unref(filters).deviceId) ? ssrLooseContain(unref(filters).deviceId, "") : ssrLooseEqual(unref(filters).deviceId, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1bkw4m2055"))}</option><!--[-->`);
733
771
  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>`);
772
+ _push(`<option${ssrRenderAttr("value", d.id)} data-v-8252d58d${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
773
  });
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><!--[-->`);
774
+ _push(`<!--]--><option value="none" data-v-8252d58d${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-8252d58d${_scopeId}><span data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1b2tkyv057"))}</span><select class="inp-sel" data-v-8252d58d${_scopeId}><option value="" data-v-8252d58d${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-8252d58d${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-8252d58d${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-8252d58d${_scopeId}><span data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1iwdfef061"))}</span><select class="inp-sel" data-v-8252d58d${_scopeId}><option value="" data-v-8252d58d${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-8252d58d${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-8252d58d${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-8252d58d${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-8252d58d${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-8252d58d${_scopeId}><span data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1flttpl010"))}</span><select class="inp-sel" data-v-8252d58d${_scopeId}><option value="" data-v-8252d58d${ssrIncludeBooleanAttr(Array.isArray(unref(filters).template) ? ssrLooseContain(unref(filters).template, "") : ssrLooseEqual(unref(filters).template, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1flttpl011"))}</option><!--[-->`);
737
775
  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>`);
776
+ _push(`<option${ssrRenderAttr("value", t.ref)} data-v-8252d58d${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
777
  });
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><!--[-->`);
778
+ _push(`<!--]--></select></label><label class="flt" data-v-8252d58d${_scopeId}><span data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1fltdrv012"))}</span><select class="inp-sel" data-v-8252d58d${_scopeId}><option value="" data-v-8252d58d${ssrIncludeBooleanAttr(Array.isArray(unref(filters).driver) ? ssrLooseContain(unref(filters).driver, "") : ssrLooseEqual(unref(filters).driver, "")) ? " selected" : ""}${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1fltdrv013"))}</option><!--[-->`);
741
779
  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>`);
780
+ _push(`<option${ssrRenderAttr("value", d.kind)} data-v-8252d58d${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
781
  });
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>`);
782
+ _push(`<!--]--></select></label><label class="flt"${ssrRenderAttr("title", _ctx.$t("daq.k1flttim014"))} data-v-8252d58d${_scopeId}><span data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1flttim015"))}</span><select class="inp-sel" data-v-8252d58d${_scopeId}><option value="" data-v-8252d58d${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-8252d58d${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-8252d58d${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-8252d58d${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-8252d58d${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-8252d58d${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-8252d58d${_scopeId}><span data-v-8252d58d${_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-8252d58d${_scopeId}></label>`);
783
+ if (hasFilters.value) _push(`<button class="mini-btn clear-btn" data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1fygck2066"))}</button>`);
746
784
  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>`);
785
+ _push(`</div><span class="count mono" data-v-8252d58d${_scopeId}>${ssrInterpolate(filteredNodes.value.length)} / ${ssrInterpolate(unref(daq).nodes.length)} ${ssrInterpolate(_ctx.$t("daq.k45uio067"))}</span></div><div class="ops-panels" data-v-8252d58d${_scopeId}><div class="${ssrRenderClass([{ live: unref(daq).alarms.length > 0 }, "ops-panel alarm-panel"])}" data-v-8252d58d${_scopeId}><div class="panel-head" data-v-8252d58d${_scopeId}><span class="i-tabler-bell-ringing bell" data-v-8252d58d${_scopeId}></span><b data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1alarm141"))}</b><span class="${ssrRenderClass([{ hot: unref(daq).alarms.length > 0 }, "mono cnt"])}" data-v-8252d58d${_scopeId}>${ssrInterpolate(unref(daq).alarms.length)}</span></div><div class="panel-body" data-v-8252d58d${_scopeId}>`);
786
+ if (unref(daq).alarms.length === 0) _push(`<p class="panel-empty" data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1evt001"))}</p>`);
749
787
  else {
750
788
  _push(`<!--[-->`);
751
789
  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>`);
790
+ _push(`<div class="alarm-row" data-v-8252d58d${_scopeId}><span class="i-tabler-alert-triangle tri" data-v-8252d58d${_scopeId}></span><b data-v-8252d58d${_scopeId}>${ssrInterpolate(a.nodeName)}</b><span class="mono dim" data-v-8252d58d${_scopeId}>${ssrInterpolate(a.metric)}</span><span class="mono" data-v-8252d58d${_scopeId}>${ssrInterpolate(a.value)} ${ssrInterpolate(a.rule === "lt-min" ? "<" : ">")} ${ssrInterpolate(a.threshold)}</span>`);
791
+ if (a.escalation > 0) _push(`<small class="esc mono" data-v-8252d58d${_scopeId}>+${ssrInterpolate(a.escalation)}</small>`);
754
792
  else _push(`<!---->`);
755
- _push(`<button class="mini-btn ack" data-v-e2087525${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1ack142"))}</button></div>`);
793
+ _push(`<button class="mini-btn ack" data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1ack142"))}</button></div>`);
756
794
  });
757
795
  _push(`<!--]-->`);
758
796
  }
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>`);
797
+ _push(`</div></div><div class="ops-panel event-panel" data-v-8252d58d${_scopeId}><div class="panel-head" data-v-8252d58d${_scopeId}><span class="i-tabler-activity" data-v-8252d58d${_scopeId}></span><b data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1evt002"))}</b>`);
760
798
  _push(ssrRenderComponent(_component_NuxtLink, {
761
799
  class: "panel-link",
762
800
  to: "/logs"
763
801
  }, {
764
802
  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>`);
803
+ if (_push) _push(`${ssrInterpolate(_ctx.$t("daq.k1evt003"))}<span class="i-tabler-arrow-right" data-v-8252d58d${_scopeId}></span>`);
766
804
  else return [createTextVNode(toDisplayString(_ctx.$t("daq.k1evt003")), 1), createVNode("span", { class: "i-tabler-arrow-right" })];
767
805
  }),
768
806
  _: 1
769
807
  }, _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>`);
808
+ _push(`</div><div class="panel-body" data-v-8252d58d${_scopeId}>`);
809
+ if (unref(opsLog).recent.length === 0) _push(`<p class="panel-empty" data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1evt004"))}</p>`);
772
810
  else {
773
811
  _push(`<!--[-->`);
774
812
  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>`);
813
+ _push(`<div class="evt-row" data-v-8252d58d${_scopeId}><span class="mono dim t" data-v-8252d58d${_scopeId}>${ssrInterpolate(opsTime(r.at))}</span><span class="${ssrRenderClass([r.actorKind, "src-badge"])}" data-v-8252d58d${_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-8252d58d${_scopeId}>${ssrInterpolate(opsKindLabel(r.kind))}</span><span class="txt"${ssrRenderAttr("title", r.summary)} data-v-8252d58d${_scopeId}>${ssrInterpolate(r.summary)}</span></div>`);
776
814
  });
777
815
  _push(`<!--]-->`);
778
816
  }
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) => {
817
+ _push(`</div></div></div><table class="nodes-table" data-v-8252d58d${_scopeId}><thead data-v-8252d58d${_scopeId}><tr data-v-8252d58d${_scopeId}><th data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k45uio067"))}</th><th data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k42w8s068"))}</th><th data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3mv305069"))}</th><th data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1trnd001"))}</th><th data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1l6g2ga070"))}</th><th data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3zi0nf071"))}</th><th data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k4a0la072"))}</th><th data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k3wj9n051"))}</th><th${ssrRenderAttr("title", _ctx.$t("daq.k1runtipc131"))} data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1b2tkyv057"))}</th><th${ssrRenderAttr("title", _ctx.$t("daq.k1prdrtip132"))} data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1prodrc128"))}</th><th data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1i8rtqt054"))}</th><th class="right" data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k40aa6073"))}</th></tr></thead><tbody data-v-8252d58d${_scopeId}>`);
818
+ if (padTopPx.value > 0) _push(`<tr class="vs-pad" aria-hidden="true" data-v-8252d58d${_scopeId}><td${ssrRenderAttr("colspan", 11)} style="${ssrRenderStyle({ height: padTopPx.value + "px" })}" data-v-8252d58d${_scopeId}></td></tr>`);
819
+ else _push(`<!---->`);
820
+ _push(`<!--[-->`);
821
+ ssrRenderList(visibleNodes.value, (n) => {
781
822
  _push(ssrRenderComponent(_component_WorkshopDaqNodeRow, {
782
823
  key: n.id,
783
824
  n
784
825
  }, null, _parent, _scopeId));
785
826
  });
786
827
  _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>`);
828
+ if (padBottomPx.value > 0) _push(`<tr class="vs-pad" aria-hidden="true" data-v-8252d58d${_scopeId}><td${ssrRenderAttr("colspan", 11)} style="${ssrRenderStyle({ height: padBottomPx.value + "px" })}" data-v-8252d58d${_scopeId}></td></tr>`);
829
+ else _push(`<!---->`);
830
+ if (unref(daq).loaded && unref(daq).nodes.length === 0) _push(`<tr data-v-8252d58d${_scopeId}><td colspan="11" data-v-8252d58d${_scopeId}><div class="pane-empty" style="${ssrRenderStyle({ "min-height": "120px" })}" data-v-8252d58d${_scopeId}><p class="pe-sub" data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.kvhjyc3075"))}</p></div></td></tr>`);
831
+ else if (unref(daq).loaded && filteredNodes.value.length === 0) _push(`<tr data-v-8252d58d${_scopeId}><td colspan="11" data-v-8252d58d${_scopeId}><div class="pane-empty" style="${ssrRenderStyle({ "min-height": "90px" })}" data-v-8252d58d${_scopeId}><p class="pe-sub" data-v-8252d58d${_scopeId}>${ssrInterpolate(_ctx.$t("daq.k1w20qew076"))}</p></div></td></tr>`);
789
832
  else _push(`<!---->`);
790
833
  _push(`</tbody></table></section>`);
791
834
  } else return [createVNode("section", { class: "aw-tile table-card" }, [
@@ -933,7 +976,11 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
933
976
  }, toDisplayString(r.summary), 9, ["title"])
934
977
  ]);
935
978
  }), 128))])])]),
936
- createVNode("table", { class: "nodes-table" }, [createVNode("thead", null, [createVNode("tr", null, [
979
+ createVNode("table", {
980
+ ref_key: "nodesTableRef",
981
+ ref: nodesTableRef,
982
+ class: "nodes-table"
983
+ }, [createVNode("thead", null, [createVNode("tr", null, [
937
984
  createVNode("th", null, toDisplayString(_ctx.$t("daq.k45uio067")), 1),
938
985
  createVNode("th", null, toDisplayString(_ctx.$t("daq.k42w8s068")), 1),
939
986
  createVNode("th", null, toDisplayString(_ctx.$t("daq.k3mv305069")), 1),
@@ -946,24 +993,43 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
946
993
  createVNode("th", { title: _ctx.$t("daq.k1prdrtip132") }, toDisplayString(_ctx.$t("daq.k1prodrc128")), 9, ["title"]),
947
994
  createVNode("th", null, toDisplayString(_ctx.$t("daq.k1i8rtqt054")), 1),
948
995
  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)])])
996
+ ])]), createVNode("tbody", null, [
997
+ padTopPx.value > 0 ? (openBlock(), createBlock("tr", {
998
+ key: 0,
999
+ class: "vs-pad",
1000
+ "aria-hidden": "true"
1001
+ }, [createVNode("td", {
1002
+ colspan: 11,
1003
+ style: { height: padTopPx.value + "px" }
1004
+ }, null, 4)])) : createCommentVNode("", true),
1005
+ (openBlock(true), createBlock(Fragment, null, renderList(visibleNodes.value, (n) => {
1006
+ return openBlock(), createBlock(_component_WorkshopDaqNodeRow, {
1007
+ key: n.id,
1008
+ n
1009
+ }, null, 8, ["n"]);
1010
+ }), 128)),
1011
+ padBottomPx.value > 0 ? (openBlock(), createBlock("tr", {
1012
+ key: 1,
1013
+ class: "vs-pad",
1014
+ "aria-hidden": "true"
1015
+ }, [createVNode("td", {
1016
+ colspan: 11,
1017
+ style: { height: padBottomPx.value + "px" }
1018
+ }, null, 4)])) : createCommentVNode("", true),
1019
+ unref(daq).loaded && unref(daq).nodes.length === 0 ? (openBlock(), createBlock("tr", { key: 2 }, [createVNode("td", { colspan: "11" }, [createVNode("div", {
1020
+ class: "pane-empty",
1021
+ style: { "min-height": "120px" }
1022
+ }, [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", {
1023
+ class: "pane-empty",
1024
+ style: { "min-height": "90px" }
1025
+ }, [createVNode("p", { class: "pe-sub" }, toDisplayString(_ctx.$t("daq.k1w20qew076")), 1)])])])) : createCommentVNode("", true)
1026
+ ])], 512)
961
1027
  ])];
962
1028
  }),
963
1029
  _: 1
964
1030
  }, _parent));
965
1031
  if (unref(daq).error) {
966
- _push(`<p class="err" data-v-e2087525>${ssrInterpolate(unref(daq).error)}(`);
1032
+ _push(`<p class="err" data-v-8252d58d>${ssrInterpolate(unref(daq).error)}(`);
967
1033
  _push(ssrRenderComponent(_component_NuxtLink, { to: "/workshop" }, {
968
1034
  default: withCtx((_, _push, _parent, _scopeId) => {
969
1035
  if (_push) _push(`${ssrInterpolate(_ctx.$t("daq.k1bhhheq077"))}`);
@@ -985,7 +1051,7 @@ index_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
985
1051
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/daq/index.vue");
986
1052
  return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
987
1053
  };
988
- var daq_default = /*#__PURE__*/ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-e2087525"]]);
1054
+ var daq_default = /*#__PURE__*/ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8252d58d"]]);
989
1055
 
990
1056
  export { daq_default as default };
991
- //# sourceMappingURL=daq-C03Uu5UE.mjs.map
1057
+ //# sourceMappingURL=daq-cgyjKmJu.mjs.map