agentworkshop 0.7.22 → 0.7.24

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 (208) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/0jKrzLuM.js +19 -0
  3. package/.output/public/_nuxt/{Cor9siSf.js → 6PZPfFcO.js} +1 -1
  4. package/.output/public/_nuxt/BAfp6tmu.js +14 -0
  5. package/.output/public/_nuxt/{B-xskWta.js → BCJFMBQ6.js} +1 -1
  6. package/.output/public/_nuxt/{DNxVTfhe.js → BMb80_tm.js} +1 -1
  7. package/.output/public/_nuxt/{n3vMFfrv.js → Bc-_IsBP.js} +3 -3
  8. package/.output/public/_nuxt/BvNJUu3s.js +1 -0
  9. package/.output/public/_nuxt/C1CSiSBN.js +1 -0
  10. package/.output/public/_nuxt/CAGL7TNK.js +1 -0
  11. package/.output/public/_nuxt/{ed5qX-x5.js → CDLv-n51.js} +1 -1
  12. package/.output/public/_nuxt/CJviSvm-.js +1 -0
  13. package/.output/public/_nuxt/CLZWFhZC.js +1 -0
  14. package/.output/public/_nuxt/{Cr9DkD1d.js → CYzpZzB_.js} +1 -1
  15. package/.output/public/_nuxt/Cb3SnTM8.js +1 -0
  16. package/.output/public/_nuxt/CjXIpPMR.js +1 -0
  17. package/.output/public/_nuxt/CmHzfVc5.js +3 -0
  18. package/.output/public/_nuxt/Cn3J3NXR.js +23 -0
  19. package/.output/public/_nuxt/Coik560n.js +1 -0
  20. package/.output/public/_nuxt/{DA4lxCWC2.js → Ct68Z0232.js} +1 -1
  21. package/.output/public/_nuxt/CuVGPuP1.js +1 -0
  22. package/.output/public/_nuxt/CxY6LfeN.js +1 -0
  23. package/.output/public/_nuxt/{CfVAr2nf.js → Cz9gD2Yo.js} +1 -1
  24. package/.output/public/_nuxt/D6HDb-vN2.js +1 -0
  25. package/.output/public/_nuxt/{E88a-JCG.js → DGAOugLt.js} +1 -1
  26. package/.output/public/_nuxt/DKHcFE1i.js +1 -0
  27. package/.output/public/_nuxt/{BxtpDtzC.js → DNQF_TXX.js} +1 -1
  28. package/.output/public/_nuxt/DSa2O56y.js +1 -0
  29. package/.output/public/_nuxt/DUToq-k_.js +1 -0
  30. package/.output/public/_nuxt/Dfe8vXdG.js +1 -0
  31. package/.output/public/_nuxt/{0exC4jVL.js → Djir5rSD.js} +2 -2
  32. package/.output/public/_nuxt/DjtE7AYt.js +1 -0
  33. package/.output/public/_nuxt/{BBwMH_hG.js → DoAlYsiF.js} +1 -1
  34. package/.output/public/_nuxt/{DWcEk1ur2.js → DvgKXPgu2.js} +1 -1
  35. package/.output/public/_nuxt/JOwsShod.js +2 -0
  36. package/.output/public/_nuxt/X6IraCTB.js +1 -0
  37. package/.output/public/_nuxt/_id_.C-YXjn8Q.css +1 -0
  38. package/.output/public/_nuxt/_id_.MbzdFygI.css +1 -0
  39. package/.output/public/_nuxt/_wsId_.BqWBlY7X.css +1 -0
  40. package/.output/public/_nuxt/{CYBq3kS7.js → b50gYVZl.js} +1 -1
  41. package/.output/public/_nuxt/builds/latest.json +1 -1
  42. package/.output/public/_nuxt/builds/meta/024de5f7-6a10-4f53-82ab-bc65f3ec9e35.json +1 -0
  43. package/.output/public/_nuxt/daq.3OKj58HH.css +1 -0
  44. package/.output/public/_nuxt/dcw.rXH2fc2Z.css +1 -0
  45. package/.output/public/_nuxt/entry.AZM1Culo.css +1 -0
  46. package/.output/public/_nuxt/logs.DMOM-iHe.css +1 -0
  47. package/.output/public/_nuxt/monitor.B--1dPzs.css +1 -0
  48. package/.output/public/_nuxt/permissions.B1pjGChZ.css +1 -0
  49. package/.output/public/_nuxt/plugins.DpCuwaJt.css +1 -0
  50. package/.output/public/_nuxt/tokens.xRb1fSPU.css +1 -0
  51. package/.output/public/_nuxt/users.DuAt_Zwf.css +1 -0
  52. package/.output/public/_nuxt/workshop.BJg84pOK.css +1 -0
  53. package/.output/server/chunks/_/nitro.mjs +777 -798
  54. package/.output/server/chunks/build/{OmpTerminalPanel-Ban3yJZ4.mjs → OmpTerminalPanel-Cw_Vw9oO.mjs} +3 -3
  55. package/.output/server/chunks/build/{OmpTerminalPanel-Ban3yJZ4.mjs.map → OmpTerminalPanel-Cw_Vw9oO.mjs.map} +1 -1
  56. package/.output/server/chunks/build/{_id_-B9RvEQFC.mjs → _id_-DQDqj-cZ.mjs} +31 -31
  57. package/.output/server/chunks/build/{_id_-B9RvEQFC.mjs.map → _id_-DQDqj-cZ.mjs.map} +1 -1
  58. package/.output/server/chunks/build/{_id_-CqF0R5W5.mjs → _id_-DY6v6sqB.mjs} +135 -135
  59. package/.output/server/chunks/build/{_id_-CqF0R5W5.mjs.map → _id_-DY6v6sqB.mjs.map} +1 -1
  60. package/.output/server/chunks/build/{_wsId_-YC2t_fRt.mjs → _wsId_-D38Vx6Ky.mjs} +11 -13
  61. package/.output/server/chunks/build/{_wsId_-YC2t_fRt.mjs.map → _wsId_-D38Vx6Ky.mjs.map} +1 -1
  62. package/.output/server/chunks/build/{agents--6bzGtES.mjs → agents-GnmUGZir.mjs} +6 -8
  63. package/.output/server/chunks/build/agents-GnmUGZir.mjs.map +1 -0
  64. package/.output/server/chunks/build/button-DEcZFcqN.mjs +1 -1
  65. package/.output/server/chunks/build/{card-CCPQoKlh.mjs → card-Dipvaykh.mjs} +4 -4
  66. package/.output/server/chunks/build/{card-CCPQoKlh.mjs.map → card-Dipvaykh.mjs.map} +1 -1
  67. package/.output/server/chunks/build/{channel-templates-C1Bb-U75.mjs → channel-templates-B4z6v8Z5.mjs} +4 -6
  68. package/.output/server/chunks/build/channel-templates-B4z6v8Z5.mjs.map +1 -0
  69. package/.output/server/chunks/build/{checkbox-Dv1kjaUZ.mjs → checkbox-dzcpU_Cd.mjs} +2 -2
  70. package/.output/server/chunks/build/{checkbox-Dv1kjaUZ.mjs.map → checkbox-dzcpU_Cd.mjs.map} +1 -1
  71. package/.output/server/chunks/build/{daq-Bhwwz9vp.mjs → daq-B-3xCp_2.mjs} +103 -103
  72. package/.output/server/chunks/build/{daq-Bhwwz9vp.mjs.map → daq-B-3xCp_2.mjs.map} +1 -1
  73. package/.output/server/chunks/build/{dcw-CBPaFj2f.mjs → dcw-BL2dhuz7.mjs} +43 -43
  74. package/.output/server/chunks/build/{dcw-CBPaFj2f.mjs.map → dcw-BL2dhuz7.mjs.map} +1 -1
  75. package/.output/server/chunks/build/{default-DdV642BY.mjs → default-CLf5m0NE.mjs} +2 -3
  76. package/.output/server/chunks/build/{default-DdV642BY.mjs.map → default-CLf5m0NE.mjs.map} +1 -1
  77. package/.output/server/chunks/build/dropdown-vhn1NPFs.mjs +1 -1
  78. package/.output/server/chunks/build/{input-number-CZ3ZrCsy.mjs → input-number-Bd55elNN.mjs} +3 -3
  79. package/.output/server/chunks/build/{input-number-CZ3ZrCsy.mjs.map → input-number-Bd55elNN.mjs.map} +1 -1
  80. package/.output/server/chunks/build/{input-DxDqeyQW.mjs → input-sf_BT6o6.mjs} +553 -5
  81. package/.output/server/chunks/build/input-sf_BT6o6.mjs.map +1 -0
  82. package/.output/server/chunks/build/{logs-Bz1p6x_5.mjs → logs-Dto_umFY.mjs} +44 -38
  83. package/.output/server/chunks/build/logs-Dto_umFY.mjs.map +1 -0
  84. package/.output/server/chunks/build/menu-WCrlpYVh.mjs +2 -2
  85. package/.output/server/chunks/build/modal-yvUquPj5.mjs +2 -2
  86. package/.output/server/chunks/build/{monitor-miqq9xHB.mjs → monitor-Cp4V-H2n.mjs} +70 -192
  87. package/.output/server/chunks/build/monitor-Cp4V-H2n.mjs.map +1 -0
  88. package/.output/server/chunks/build/{pages-D9tOoJsf.mjs → pages-Dc2H1QFu.mjs} +2 -3
  89. package/.output/server/chunks/build/pages-Dc2H1QFu.mjs.map +1 -0
  90. package/.output/server/chunks/build/{permissions-CxEgXic0.mjs → permissions-BTRW2CVd.mjs} +288 -194
  91. package/.output/server/chunks/build/permissions-BTRW2CVd.mjs.map +1 -0
  92. package/.output/server/chunks/build/{plugins-wLIKHcIE.mjs → plugins-DZR0T4Mh.mjs} +17 -17
  93. package/.output/server/chunks/build/{plugins-wLIKHcIE.mjs.map → plugins-DZR0T4Mh.mjs.map} +1 -1
  94. package/.output/server/chunks/build/popconfirm-CRaHcz5O.mjs +1 -1
  95. package/.output/server/chunks/build/{segmented-ChmQZwz6.mjs → segmented-LPPREMtZ.mjs} +336 -5
  96. package/.output/server/chunks/build/{segmented-ChmQZwz6.mjs.map → segmented-LPPREMtZ.mjs.map} +1 -1
  97. package/.output/server/chunks/build/{settings-BPBll_7K.mjs → settings-UfGyDgM7.mjs} +6 -8
  98. package/.output/server/chunks/build/settings-UfGyDgM7.mjs.map +1 -0
  99. package/.output/server/chunks/build/space-CCBYAkXt.mjs +1 -1
  100. package/.output/server/chunks/build/switch-CelRXpcy.mjs +1 -1
  101. package/.output/server/chunks/build/{table-BtksyDlQ.mjs → table-Cswq-l2r.mjs} +5 -5
  102. package/.output/server/chunks/build/{table-BtksyDlQ.mjs.map → table-Cswq-l2r.mjs.map} +1 -1
  103. package/.output/server/chunks/build/{tabs-DQv-_-R6.mjs → tabs-BM3tAh_J.mjs} +2 -2
  104. package/.output/server/chunks/build/{tabs-DQv-_-R6.mjs.map → tabs-BM3tAh_J.mjs.map} +1 -1
  105. package/.output/server/chunks/build/{tag-A0tZ2Ouq.mjs → tag-NO9jEqKy.mjs} +3 -3
  106. package/.output/server/chunks/build/{tag-A0tZ2Ouq.mjs.map → tag-NO9jEqKy.mjs.map} +1 -1
  107. package/.output/server/chunks/build/{teams-DD8ZXTKL.mjs → teams-Cbg27MWW.mjs} +4 -6
  108. package/.output/server/chunks/build/teams-Cbg27MWW.mjs.map +1 -0
  109. package/.output/server/chunks/build/{tokens-Dxnuw96_.mjs → tokens-Bmm6rDfj.mjs} +296 -200
  110. package/.output/server/chunks/build/tokens-Bmm6rDfj.mjs.map +1 -0
  111. package/.output/server/chunks/build/{users-D6RNylrW.mjs → users-B50HHrfi.mjs} +12 -13
  112. package/.output/server/chunks/build/users-B50HHrfi.mjs.map +1 -0
  113. package/.output/server/chunks/build/{workshop-CTcYDq2i.mjs → workshop-81xhz368.mjs} +21 -22
  114. package/.output/server/chunks/build/workshop-81xhz368.mjs.map +1 -0
  115. package/.output/server/chunks/routes/renderer.mjs +2 -2
  116. package/.output/server/chunks/virtual/entry.mjs +53 -21
  117. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  118. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  119. package/.output/server/package.json +1 -1
  120. package/app/app.vue +7 -0
  121. package/app/assets/css/main.css +318 -162
  122. package/app/components/workshop/blocks/ClusterArtifact.vue +0 -16
  123. package/app/pages/daq/[id].vue +919 -938
  124. package/app/pages/daq/index.vue +1 -22
  125. package/app/pages/dcw/[id].vue +1 -4
  126. package/app/pages/dcw/index.vue +1 -30
  127. package/app/pages/logs/index.vue +99 -87
  128. package/app/pages/monitor.vue +56 -68
  129. package/app/pages/permissions/index.vue +86 -82
  130. package/app/pages/plugins/index.vue +12 -7
  131. package/app/pages/tokens.vue +94 -96
  132. package/app/pages/users.vue +10 -18
  133. package/app/pages/workshop/index.vue +34 -5
  134. package/i18n/locales/en.ts +4 -1
  135. package/i18n/locales/zh-CN.ts +6 -1
  136. package/package.json +1 -1
  137. package/scripts/_dbg-logs-ui-e2e.py +126 -0
  138. package/scripts/_dbg-ui-survey.py +52 -0
  139. package/server/data/daqs.json +101 -101
  140. package/server/data/dcw-lines.json +7 -0
  141. package/server/data/dcw-products.json +7 -0
  142. package/server/data/dcw-recipes.json +22 -0
  143. package/server/data/dcw-rollback.json +84 -10
  144. package/server/data/dcw-runs.json +52 -54
  145. package/server/data/dcw-writes.json +36 -0
  146. package/server/data/dcws.json +533 -216
  147. package/server/data/line-runs.json +18 -18
  148. package/.output/public/_nuxt/BAbAEW0D.js +0 -1
  149. package/.output/public/_nuxt/BWC4HQHQ.js +0 -1
  150. package/.output/public/_nuxt/BbZAzXjZ2.js +0 -1
  151. package/.output/public/_nuxt/BgOhoDTI.js +0 -1
  152. package/.output/public/_nuxt/BuiGDfMB.js +0 -1
  153. package/.output/public/_nuxt/BxPPAkGA.js +0 -3
  154. package/.output/public/_nuxt/C_2bTK0C.js +0 -1
  155. package/.output/public/_nuxt/CcwJ2mrD2.js +0 -1
  156. package/.output/public/_nuxt/Ci0uX4c4.js +0 -1
  157. package/.output/public/_nuxt/D6B0xnjk.js +0 -1
  158. package/.output/public/_nuxt/DTYBfjRY.js +0 -1
  159. package/.output/public/_nuxt/DVoWWlUW.js +0 -1
  160. package/.output/public/_nuxt/Dhqra7NB.js +0 -1
  161. package/.output/public/_nuxt/DlRO_q5L.js +0 -1
  162. package/.output/public/_nuxt/DsUUYP292.js +0 -1
  163. package/.output/public/_nuxt/Dsdy4Ua-.js +0 -1
  164. package/.output/public/_nuxt/QT54MQV9.js +0 -1
  165. package/.output/public/_nuxt/RzXYI9FM.js +0 -23
  166. package/.output/public/_nuxt/UtviM1bg.js +0 -1
  167. package/.output/public/_nuxt/_id_.C2VHq_vT.css +0 -1
  168. package/.output/public/_nuxt/_id_.Dswy2p0I.css +0 -1
  169. package/.output/public/_nuxt/_wsId_.BFyCuUwS.css +0 -1
  170. package/.output/public/_nuxt/bAFueD6a.js +0 -1
  171. package/.output/public/_nuxt/builds/meta/e2341fc0-6f3f-4680-abf8-935a7c9fb912.json +0 -1
  172. package/.output/public/_nuxt/c3mwkHWP.js +0 -14
  173. package/.output/public/_nuxt/daq.BTdEun-8.css +0 -1
  174. package/.output/public/_nuxt/dbi5bHkY.js +0 -2
  175. package/.output/public/_nuxt/dcw.rpqpOYQ8.css +0 -1
  176. package/.output/public/_nuxt/eHYnGew0.js +0 -19
  177. package/.output/public/_nuxt/entry.DRUzDwmX.css +0 -1
  178. package/.output/public/_nuxt/jyQyulh-.js +0 -1
  179. package/.output/public/_nuxt/logs.BarkrvUp.css +0 -1
  180. package/.output/public/_nuxt/monitor.CmwpEUCI.css +0 -1
  181. package/.output/public/_nuxt/permissions.DTRtZeTw.css +0 -1
  182. package/.output/public/_nuxt/plugins.BcSEwwGb.css +0 -1
  183. package/.output/public/_nuxt/tokens.BVXU1jOK.css +0 -1
  184. package/.output/public/_nuxt/users.D8lcLE62.css +0 -1
  185. package/.output/public/_nuxt/workshop.CbymC2LY.css +0 -1
  186. package/.output/public/_nuxt/zVkqCZ78.js +0 -1
  187. package/.output/server/chunks/build/Col-biaNnEPf.mjs +0 -338
  188. package/.output/server/chunks/build/Col-biaNnEPf.mjs.map +0 -1
  189. package/.output/server/chunks/build/agents--6bzGtES.mjs.map +0 -1
  190. package/.output/server/chunks/build/channel-templates-C1Bb-U75.mjs.map +0 -1
  191. package/.output/server/chunks/build/hasIn-vQ9LWt-J.mjs +0 -554
  192. package/.output/server/chunks/build/hasIn-vQ9LWt-J.mjs.map +0 -1
  193. package/.output/server/chunks/build/input-DxDqeyQW.mjs.map +0 -1
  194. package/.output/server/chunks/build/logs-Bz1p6x_5.mjs.map +0 -1
  195. package/.output/server/chunks/build/monitor-miqq9xHB.mjs.map +0 -1
  196. package/.output/server/chunks/build/pages-D9tOoJsf.mjs.map +0 -1
  197. package/.output/server/chunks/build/permissions-CxEgXic0.mjs.map +0 -1
  198. package/.output/server/chunks/build/settings-BPBll_7K.mjs.map +0 -1
  199. package/.output/server/chunks/build/teams-DD8ZXTKL.mjs.map +0 -1
  200. package/.output/server/chunks/build/tokens-Dxnuw96_.mjs.map +0 -1
  201. package/.output/server/chunks/build/useSiteConfig-DJe_KMVr.mjs +0 -27
  202. package/.output/server/chunks/build/useSiteConfig-DJe_KMVr.mjs.map +0 -1
  203. package/.output/server/chunks/build/users-D6RNylrW.mjs.map +0 -1
  204. package/.output/server/chunks/build/workshop-CTcYDq2i.mjs.map +0 -1
  205. /package/.output/public/_nuxt/{CNs_Ozdc.js → CNs_Ozdc2.js} +0 -0
  206. /package/.output/public/_nuxt/{Cno6kYiO.js → Cno6kYiO2.js} +0 -0
  207. /package/.output/public/_nuxt/{DAR70Lf5.js → DAR70Lf52.js} +0 -0
  208. /package/.output/public/_nuxt/{ORt9oDIy2.js → ORt9oDIy.js} +0 -0
@@ -0,0 +1 @@
1
+ import{H as e,U as t,W as n,q as r}from"./rqZ-1SoP.js";import{C as i,F as a,G as o,H as s,Ht as c,St as l,Ut as ee,Wt as u,a as d,b as f,et as p,f as m,ft as te,g as h,h as g,m as ne,mt as _,nt as v,p as y,rt as b,t as x,x as S,z as re}from"./BSCpFtzG.js";import{n as ie}from"./B5S_UyaC.js";import{t as ae}from"./D8CqF0yy.js";import{n as oe}from"./BeIfu4N3.js";import{r as C}from"./D-Ca4BGY.js";import{t as se}from"./C9f8QMp12.js";import{t as w}from"./G0qIw7Gq2.js";import{t as ce}from"./arUY5dyq2.js";import{t as le}from"./CNs_Ozdc2.js";import{t as ue}from"./DAR70Lf52.js";import{a as de,i as fe,n as pe,r as me,t as he}from"./C1CSiSBN.js";import{t as ge}from"./X6IraCTB.js";import{t as _e}from"./Dfe8vXdG.js";import{t as ve}from"./CUXCQXjG.js";var ye={class:`page`},be={class:`aw-page-head`},xe={class:`sub`},Se={class:`badges mono`},Ce=[`title`],we=[`title`],Te={class:`txt`},Ee={class:`mono`},De={key:1,class:`infra-banner`},Oe={class:`txt`},ke={key:2,class:`infra-banner`},Ae={class:`txt`},je=[`disabled`],Me={key:3,class:`alarm-bar`},Ne={class:`bar-label`},Pe={class:`mono`},Fe={class:`alarm-scroll`},Ie=[`title`],Le={class:`mono dim`},Re={class:`mono`},ze={key:0,class:`esc mono`},Be=[`onClick`],Ve={class:`aw-tile ctrl-card`},He={class:`ctrl-row`},Ue={class:`ctrl-left`},We=[`title`],Ge={class:`cycle mono`},Ke=[`title`],qe={class:`ctrl-right`},Je={class:`ctrl-metrics mono`},Ye=[`title`],Xe=[`title`],Ze=[`title`],Qe=[`title`],$e={class:`line-strip`},et={class:`strip-label`},tt={class:`mono`},nt={class:`strip-scroll`},rt={key:0,class:`lp-run`},it={key:1,class:`lp-idle`},at={class:`lp-idle`},ot={class:`modal`},st={class:`m-title`},ct={class:`seg-row`},lt={class:`f-grid`},ut={class:`f`},dt=[`value`],ft={class:`f`},pt=[`placeholder`],mt={key:0,class:`f`},ht=[`placeholder`],gt={class:`f-grid`},_t={class:`f`},vt=[`value`],yt={key:0,class:`f-grid driver-form`},bt={key:0},xt=[`onUpdate:modelValue`],St=[`value`],Ct=[`onUpdate:modelValue`,`type`,`placeholder`],wt={key:2,class:`hint`},Tt={class:`test-row`},Et=[`disabled`],Dt={key:1,class:`m-err`},Ot={class:`m-actions`},kt=[`disabled`,`title`],At={class:`modal`},jt={class:`m-title`},Mt={class:`sec-label`},Nt={class:`tpl-table`},Pt={class:`mono dim`},Ft={class:`mono range`},It={class:`right actions`},Lt=[`onClick`],Rt=[`onClick`],zt={key:0},Bt={colspan:`3`,class:`empty`},Vt={class:`sec-label`},Ht={class:`f-grid`},Ut={class:`f`},Wt=[`placeholder`],Gt={class:`f`},Kt={class:`f`},qt=[`placeholder`],Jt={class:`f`},Yt=[`placeholder`],Xt={class:`f`},Zt={class:`f`},Qt={class:`f`},$t={class:`f`},en=[`value`],tn={class:`f`},nn={class:`hint`},rn={class:`f`},an={class:`hint`},on={key:0,class:`m-err`},sn={class:`m-actions`},cn=[`disabled`],ln={class:`sec-label`},un={class:`tpl-table`},dn={class:`mono dim`},fn={class:`mono range`},pn={class:`right actions`},mn=[`onClick`],hn={class:`aw-tile opt-card`},gn={class:`opt-count mono`},_n={class:`opt-filters`},vn={value:``},yn=[`value`],bn={value:``},xn=[`value`],Sn={key:0,class:`opt-empty`},Cn={class:`opt-list`},wn={class:`opt-line1`},Tn={class:`opt-node`},En={class:`mono opt-params`},Dn={class:`mono opt-time`},On=[`disabled`,`onClick`],kn=[`onClick`],An={class:`opt-line2 mono`},jn={key:1,class:`opt-open-hint`},Mn={key:2,class:`opt-agg`},Nn={key:3,class:`opt-agg`},Pn={key:0,class:`opt-series`},Fn={class:`opt-spark`,viewBox:`0 0 240 36`,preserveAspectRatio:`none`},In=[`points`],Ln={class:`mono`},Rn={key:0,class:`opt-empty`},zn={class:`aw-tile table-card`},Bn={class:`tbl-toolbar`},Vn={class:`filters`},Hn={class:`flt`},Un={value:``},Wn=[`value`],Gn={value:`none`},Kn={class:`flt`},qn={value:``},Jn=[`value`],Yn={value:`none`},Xn=[`title`],Zn={value:``},Qn={value:`on`},$n={value:`off`},er={class:`flt`},tr={value:``},nr={value:`ok`},rr={value:`warn`},ir={value:`alarm`},ar={value:`offline`},or={class:`flt`},sr={value:``},cr=[`value`],lr={class:`flt`},ur={value:``},dr=[`value`],fr=[`title`],pr={value:``},mr={value:`live`},hr={value:`hour`},gr={value:`day`},_r={value:`old`},vr={value:`never`},yr={class:`flt`},br=[`placeholder`],xr={class:`count mono`},Sr={class:`ops-panels`},Cr={class:`panel-head`},wr={class:`panel-body`},Tr={key:0,class:`panel-empty`},Er={class:`mono dim`},Dr={class:`mono`},Or={key:0,class:`esc mono`},kr=[`onClick`],Ar={class:`ops-panel event-panel`},jr={class:`panel-head`},Mr={class:`panel-body`},Nr={key:0,class:`panel-empty`},Pr={class:`mono dim t`},Fr=[`title`],Ir={class:`nodes-table`},Lr=[`title`],Rr=[`title`],zr={class:`right`},Br={class:`mono dim`},Vr={class:`mono ch`},Hr=[`title`],Ur=[`title`],Wr={class:`trend-cell`},Gr=[`title`],Kr=[`y1`,`y2`],qr=[`y1`,`y2`],Jr=[`points`],Yr={class:`mono`},Xr={class:`mono`},Zr=[`title`],Qr=[`value`,`title`,`onChange`],$r={value:``},ei=[`value`],ti=[`title`],ni={key:1,class:`run-pill na`},ri={class:`prod-cell`},ii=[`title`],ai=[`title`],oi={key:1,class:`dim`},si={class:`dev-binds`},ci=[`title`],li=[`onClick`],ui=[`title`,`onChange`],di={value:``},fi=[`value`,`disabled`],pi={class:`right`},mi=[`title`,`onClick`],hi={key:0},gi={colspan:`11`},_i={class:`pane-empty`,style:{"min-height":`120px`}},vi={class:`pe-sub`},yi={key:1},bi={colspan:`11`},xi={class:`pane-empty`,style:{"min-height":`90px`}},Si={class:`pe-sub`},Ci={key:6,class:`err`},wi=120,Ti=26,T=x(i({__name:`index`,setup(i){let{t:x}=oe();le({layout:`default`}),ie({title:()=>x(`titles.daq`)});let T=he(),E=ue(),Ei=ce(),Di=m(()=>E.lines.some(e=>E.lineStateOf(e.id).active));async function Oi(e,t){let n=t.target.value;try{await T.patchNode(e,{lineId:n});let t=T.nodes.find(t=>t.id===e);t&&(t.lineId=n)}catch(e){C.error(w(e))}}async function ki(e,t){let n=t.target.value;if(!n)return;let r=T.nodes.find(t=>t.id===e);if(r&&!r.deviceIds?.includes(n)){try{await T.setNodeBindings(e,[...r.deviceIds??[],n])}catch(e){C.error(w(e))}t.target.value=``}}async function Ai(e,t){let n=T.nodes.find(t=>t.id===e);if(n)try{await T.setNodeBindings(e,(n.deviceIds??[]).filter(e=>e!==t))}catch(e){C.error(w(e))}}let ji=e=>e.deviceIds??(e.deviceBindingId?[e.deviceBindingId]:[]),Mi=e=>B.get(e)??z.twins.find(t=>t.id===e)?.name??e;async function Ni(e){let t=!e.enabled;try{await T.patchNode(e.id,{enabled:t}),e.enabled=t,t||(e.state=`offline`),C.success(x(t?`daq.k1nodestart147`:`daq.k1nodestop146`))}catch(e){C.error(w(e))}}function Pi(e){if(!e.lineId)return null;let t=E.lineStateOf(e.lineId);return!t.active||!t.recipeId?null:E.recipes.find(e=>e.id===t.recipeId)?.daqWindows?.find(t=>t.nodeId===e.id)??null}function Fi(e){let t=Pi(e);return!t||e.value==null?!1:t.min!=null&&e.value<t.min||t.max!=null&&e.value>t.max}let Ii=_e();function Li(e){return{write:x(`logs.kind.write`),manual:x(`logs.kind.manual`),alarm:x(`logs.kind.alarm`),line:x(`logs.kind.line`),recipe:x(`logs.kind.recipe`),rollback:x(`logs.kind.rollback`),daq:x(`logs.kind.daq`),system:x(`logs.kind.system`)}[e]??(e||x(`logs.kind.system`))}function Ri(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}:${String(t.getSeconds()).padStart(2,`0`)}`:``}function zi(e){let t=e.filter(Number.isFinite);if(t.length<2)return``;let n=Math.min(...t),r=Math.max(...t)-n||1;return t.map((e,i)=>`${(i/(t.length-1)*wi).toFixed(1)},${(Ti-(e-n)/r*24-1).toFixed(1)}`).join(` `)}function D(e,t){if(t==null||!Number.isFinite(t))return null;let n=e.filter(Number.isFinite);if(n.length<2)return null;let r=Math.min(...n,t),i=Math.max(...n,t)-r||1;return Number((Ti-(t-r)/i*24-1).toFixed(1))}function O(e){let t=Pi(e);return t&&(t.min!=null||t.max!=null)?{min:t.min,max:t.max,source:`recipe`}:e.warnLow!=null||e.warnHigh!=null?{min:e.warnLow,max:e.warnHigh,source:`warn`}:{min:null,max:null,source:`warn`}}async function Bi(e){try{await T.ackAlarm(e),C.success(x(`daq.k1acked144`))}catch(e){C.error(w(e))}}let Vi=null;re(()=>{Ei.ensureConnected(),Vi=T.ensureWsFeed(),Ii.ensureLive(),T.load(),T.fetchAlarms(),E.load(),z.load(),E.loadOptimizations(),ve(()=>{T.load(),T.fetchAlarms()},5e3,{bgMs:3e4}),ve(()=>{E.load()},15e3,{bgMs:6e4})}),a(()=>{Vi?.()});let k=te({lineId:``,deviceId:``,template:``,driver:``,lineRun:``,state:``,time:``,search:``}),Hi=m(()=>!!(k.lineId||k.deviceId||k.template||k.driver||k.lineRun||k.state||k.time||k.search.trim()));function Ui(){k.lineId=``,k.deviceId=``,k.template=``,k.driver=``,k.lineRun=``,k.state=``,k.time=``,k.search=``}let Wi=m(()=>{let e=new Map;for(let t of T.nodes)e.set(t.templateRef,(e.get(t.templateRef)??0)+1);return[...e.entries()].map(([e,t])=>({ref:e,count:t,label:Ea(e)}))}),Gi=m(()=>{let e=new Map;for(let t of T.nodes)e.set(t.driver,(e.get(t.driver)??0)+1);return[...e.entries()].map(([e,t])=>({kind:e,count:t,label:T.meta.drivers.find(t=>t.kind===e)?.label??e}))});function Ki(e){if(!e.lastAt)return`never`;let t=Date.now()-Date.parse(e.lastAt);return t<=3e5?`live`:t<=36e5?`hour`:t<=864e5?`day`:`old`}function qi(e){return!k.time||Ki(e)===k.time}function Ji(e){let t=k.search.trim().toLowerCase();return!t||e.name.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)}let A=_(!1),Yi=_(!1),j=_(``),M=_(``),N=_({}),Xi=_(``),Zi=m(()=>E.recipes.filter(e=>!j.value||e.lineId===j.value));function Qi(e){return{open:`daq.k1optst001`,judged:`daq.k1optst008`,"judged-keep":`daq.k1optst002`,"rolled-back":`daq.k1optst003`,superseded:`daq.k1optst004`,"superseded-manual":`daq.k1optst005`,"closed-line-stop":`daq.k1optst006`,failed:`daq.k1optst007`}[e]??`daq.k1optst001`}async function $i(){A.value=!A.value,A.value&&(Yi.value=!0,await P())}async function P(){await E.loadOptimizations({lineId:j.value||void 0,recipeId:M.value||void 0})}function ea(){M.value&&!Zi.value.some(e=>e.id===M.value)&&(M.value=``),P()}async function ta(e){Xi.value=e;try{let t=await E.optimizationSeries(e);N.value={...N.value,[e]:t}}finally{Xi.value=``}}function na(e,t=240,n=36){let r=e.map(e=>e.value??e.avg??0).filter(Number.isFinite);if(r.length<2)return``;let i=Math.min(...r),a=Math.max(...r)-i||1;return r.map((e,o)=>`${o/(r.length-1)*t},${n-(e-i)/a*n}`).join(` `)}async function ra(e){await E.rollbackOptimization(e),await P()}function ia(e){return e==null?`--`:String(Number(e.toFixed(2)))}let aa=m(()=>{let e=new Map;for(let t of T.nodes)for(let n of t.deviceIds??(t.deviceBindingId?[t.deviceBindingId]:[]))e.set(n,(e.get(n)??0)+1);return z.twins.filter(t=>e.has(t.id)).map(t=>({id:t.id,name:B.get(t.id)??t.name,count:e.get(t.id)}))});function oa(e){if(!k.lineRun)return!0;let t=!!e.lineId&&E.lineStateOf(e.lineId).active;return k.lineRun===`on`?t:!t}let F=m(()=>E.lines.find(e=>e.id===k.lineId)??null),I=m(()=>F.value?E.lineStateOf(F.value.id):null);function sa(e){if(!e.lastAt)return!0;let t=e.intervalMs??T.controller.defaultIntervalMs;return Date.now()-Date.parse(e.lastAt)>Math.max(t*4,12e3)}function ca(e){return e.enabled?e.lineId?E.lineStateOf(e.lineId).active?!T.controller.running||sa(e)?`offline`:e.state:`idle`:`unassigned`:`disabled`}function la(e){let t=ca(e);return t===`ok`||t===`warn`||t===`alarm`}let L={ok:x(`daq.k41k5c062`),warn:x(`daq.k49z8v063`),alarm:x(`daq.k3xmid064`),offline:x(`daq.k44c2n065`),idle:x(`daq.k3ozyqz117`),disabled:x(`daq.k1disabl130`),unassigned:x(`daq.k3ootr6053`)};function ua(e){let t=ca(e);if(t===`offline`){if(e.lastError)return{key:t,label:L.offline,tip:e.lastError};let n=T.controller.running?x(`daq.k1staled129`,{p0:Math.round(Math.max((e.intervalMs??T.controller.defaultIntervalMs)*4,12e3)/1e3)}):x(`daq.k1gateoff140`);return{key:t,label:L.offline,tip:n}}if(t===`idle`)return{key:t,label:L.idle,tip:x(`daq.k1idlehin139`)};if((t===`ok`||t===`warn`||t===`alarm`)&&Fi(e)){let t=Pi(e);return{key:`alarm`,label:x(`daq.k1l3pt51104`),tip:x(`daq.k1hrrqa1122`,{p0:t?.min??`-∞`,p1:t?.max??`+∞`,p2:``})}}return{key:t,label:L[t],tip:``}}let R=m(()=>T.nodes.filter(e=>{if(k.lineId&&(k.lineId===`none`?e.lineId:(e.lineId??``)!==k.lineId))return!1;let t=e.deviceIds??(e.deviceBindingId?[e.deviceBindingId]:[]);return!(k.deviceId&&(k.deviceId===`none`?t.length>0:!t.includes(k.deviceId))||k.template&&e.templateRef!==k.template||k.driver&&e.driver!==k.driver||!oa(e)||k.state&&ca(e)!==k.state||!qi(e)||!Ji(e))})),da=m(()=>{let e=new Map;for(let t of R.value)e.set(t.id,{pill:ua(t),alarm:Fi(t),live:la(t),tpl:Ea(t.templateRef)});return e}),fa={pill:{key:`offline`,label:``,tip:``},alarm:!1,live:!1,tpl:`-`},pa=m(()=>R.value.map(e=>({n:e,c:da.value.get(e.id)??fa}))),z=ge(),B=new Map;p(()=>z.twins,e=>{for(let t of e)B.set(t.id,t.name)},{immediate:!0,deep:!0});let ma=m(()=>z.twins.filter(e=>e.kind!==`daq`&&!(e.modelRef??``).startsWith(`daq-`)&&!(e.modelRef??``).startsWith(`dcw-`))),ha=e=>e==null?x(`daq.k9vnp9h124`,{p0:T.controller.defaultIntervalMs}):`${e}ms`,ga=e=>e==null?x(`daq.k9vnp9h124`,{p0:T.controller.defaultPublishIntervalMs}):e===0?x(`daq.k41mvv078`):`${e}ms`,V=_(!1),H=_(`mock`),U=_(me[0]?.key??`temp-tc`),W=_(`modbus-tcp`),G=_(``),_a=_(null),K=_({}),va=te({kind:`none`,scale:1,offset:0}),q=_(!1),J=_(null),ya=_(!1),ba=_(``),xa=m(()=>pe.find(e=>e.kind===W.value)),Sa=m(()=>xa.value?.configFields??[]),Ca=e=>T.meta.drivers.find(t=>t.kind===e)?.status!==`planned`&&T.meta.driverAvailable?.[e]!==!1;p(W,()=>{let e={};for(let t of Sa.value)t.default!==void 0&&(e[t.key]=t.default);K.value=e,J.value=null},{immediate:!0});async function wa(){q.value=!0,J.value=null;try{J.value=await T.testDriver(W.value,K.value)}catch(e){J.value={ok:!1,message:w(e)}}finally{q.value=!1}}async function Ta(){ya.value=!0,ba.value=``;try{let e=va.kind===`linear`?{kind:`linear`,scale:Number(va.scale),offset:Number(va.offset)}:void 0;if(H.value===`mock`)await T.createFromTemplate(`daq-${U.value}`,{name:G.value?{name:G.value}.name:void 0,transform:e});else{for(let e of Sa.value)if(e.required&&!K.value[e.key]&&K.value[e.key]!==0)throw Error(x(`daq.kyuadl0125`,{p0:e.label}));let t=T.templates.find(e=>e.key===U.value);await T.createFromTemplate(`daq-${U.value}`,{name:G.value||void 0,driver:W.value,driverConfig:{...K.value},transform:e,intervalMs:_a.value,unit:t?.unit,min:t?.min,max:t?.max,decimals:t?.decimals})}V.value=!1,G.value=``,J.value=null}catch(e){ba.value=w(e)}finally{ya.value=!1}}function Ea(e){let t=T.templates.find(t=>t.key===de(e));return t?`${t.name} · ${t.ch}`:e||`-`}let Da=_(!1),Y=_(null),Oa=_(!1),X=_(``),Z=_(``),Q=te({name:``,ch:``,code:``,unit:``,min:0,max:100,base:50,amp:2,decimals:2,icon:`thermo`}),ka={thermo:x(`daq.k422b8079`),pressure:x(`daq.k3x6ff080`),tension:x(`daq.k3z9xc081`),encoder:x(`daq.k3subk4082`),camera:x(`daq.k47atw083`),gateway:x(`daq.kz7yhbj084`)},Aa=m(()=>T.templates.filter(e=>!e.builtin)),ja=m(()=>T.templates.filter(e=>e.builtin));function Ma(e,t=!1){Q.name=t?x(`daq.k2hbo3c126`,{p0:e.name}):e.name,Q.ch=e.ch,Q.code=e.code,Q.unit=e.unit,Q.min=e.min,Q.max=e.max,Q.base=e.base,Q.amp=e.amp,Q.decimals=e.decimals,Q.icon=e.icon}function Na(){Y.value=null,X.value=``,Z.value=``,Ma({key:``,name:``,code:``,ch:``,unit:``,base:50,amp:2,min:0,max:100,decimals:2,icon:`thermo`})}function Pa(e){Y.value=e.key,X.value=``,Ma(e)}function Fa(e){Y.value=null,X.value=``,Ma(e,!0)}async function Ia(){Oa.value=!0,X.value=``;try{let e=e=>{let t=Number(e);return e===``||e==null||!Number.isFinite(t)?void 0:t},t={name:Q.name.trim(),ch:Q.ch.trim()||void 0,code:Q.code.trim()||void 0,unit:Q.unit.trim(),min:e(Q.min),max:e(Q.max),base:e(Q.base),amp:e(Q.amp),decimals:e(Q.decimals),icon:Q.icon};Y.value?await T.updateTemplate(Y.value,t):await T.createTemplate(t),Na()}catch(e){X.value=w(e)}finally{Oa.value=!1}}async function La(e){if(Z.value!==e.key){Z.value=e.key;return}try{await T.removeTemplate(e.key)}catch(e){X.value=w(e)}finally{Z.value=``}}let Ra=e=>T.meta.drivers.find(t=>t.kind===e)?.status===`planned`,$=_(!1);async function za(){$.value=!0;try{await T.reconnectInfra()}catch{}finally{$.value=!1}}return(i,a)=>{let p=ae,m=se;return s(),h(`div`,ye,[y(`div`,be,[y(`div`,null,[a[36]||=y(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / DAQ CONSOLE `,-1),y(`h1`,null,u(i.$t(`daq.k1emg364011`)),1),y(`p`,xe,u(i.$t(`daq.k1wmg2bz012`)),1)]),y(`div`,Se,[y(`span`,{class:`badge`,title:i.$t(`daq.k1tsdbtip133`)},`TSDB · `+u(l(T).meta.tsdb),9,Ce),y(`span`,{class:`badge`,title:i.$t(`daq.k1queuet134`)},`QUEUE · `+u(l(T).meta.queue),9,we)])]),l(T).loaded&&F.value&&I.value?(s(),h(`div`,{key:0,class:c([`infra-banner`,{good:I.value.active}])},[y(`span`,{class:c(I.value.active?`i-tabler-circle-check`:`i-tabler-info-circle`)},null,2),y(`span`,Te,[I.value.active?(s(),h(d,{key:0},[f(u(i.$t(`daq.k3ktxbr085`))+u(F.value.name)+`」`+u(i.$t(`daq.k15lvw0o105`)),1),y(`b`,null,u(I.value.productName),1),a[37]||=f(` · Recipe:`,-1),y(`b`,null,u(I.value.recipeName),1),y(`small`,Ee,u(i.$t(`daq.k400lb086`))+` `+u(I.value.runId?.slice(0,8))+` · `+u(i.$t(`daq.k3zkt2106`))+` `+u(I.value.startedAt?.slice(11,19))+` `+u(i.$t(`daq.k69vag8108`))+` `+u(I.value.taggedSamples)+` `+u(i.$t(`daq.k4118o092`)),1)],64)):(s(),h(d,{key:1},[f(u(i.$t(`daq.k3ktxbr085`))+u(F.value.name)+`」`+u(i.$t(`daq.k12uge2o107`)),1)],64))]),S(p,{class:`pill-btn`,to:`/dcw/${F.value.id}`},{default:v(()=>[f(u(I.value.active?i.$t(`daq.k1ukoy0v093`):i.$t(`daq.k1cg78i8109`)),1)]),_:1},8,[`to`])],2)):l(T).loaded&&!Di.value?(s(),h(`div`,De,[a[38]||=y(`span`,{class:`i-tabler-info-circle`},null,-1),y(`span`,Oe,[f(u(i.$t(`daq.k19onw5w013`)),1),S(p,{to:`/dcw`},{default:v(()=>[f(u(i.$t(`daq.k1b2tk5c014`)),1)]),_:1}),f(u(i.$t(`daq.k1u9wnlg015`)),1)])])):g(``,!0),l(T).meta.infra?.degraded?(s(),h(`div`,ke,[a[39]||=y(`span`,{class:`i-tabler-alert-triangle`},null,-1),y(`span`,Ae,u(l(T).meta.infra.warning),1),y(`button`,{class:`pill-btn`,disabled:$.value,onClick:za},u($.value?i.$t(`daq.k1ld43ur094`):i.$t(`daq.kzg9805110`)),9,je)])):g(``,!0),l(T).alarms.length?(s(),h(`div`,Me,[y(`span`,Ne,[a[40]||=y(`span`,{class:`i-tabler-bell-ringing bell`},null,-1),f(` `+u(i.$t(`daq.k1alarm141`))+` `,1),y(`b`,Pe,u(l(T).alarms.length),1)]),y(`div`,Fe,[(s(!0),h(d,null,o(l(T).alarms,e=>(s(),h(`span`,{key:e.id,class:`alarm-item`,title:i.$t(`daq.k1esc143`,{p0:e.escalation})},[y(`b`,null,u(e.nodeName),1),y(`span`,Le,u(e.metric),1),y(`span`,Re,u(e.value)+` `+u(e.rule===`lt-min`?`<`:`>`)+` `+u(e.threshold),1),e.escalation>0?(s(),h(`small`,ze,`+`+u(e.escalation),1)):g(``,!0),y(`button`,{class:`mini-btn ack`,onClick:t=>Bi(e.id)},u(i.$t(`daq.k1ack142`)),9,Be)],8,Ie))),128))])])):g(``,!0),y(`section`,Ve,[y(`div`,He,[y(`div`,Ue,[y(`button`,{class:c([`aw-pill`,{running:l(T).controller.running}]),title:i.$t(`daq.k1snap145`),onClick:a[0]||=e=>l(T).controllerAction(l(T).controller.running?`pause`:`resume`)},[y(`span`,{class:c(l(T).controller.running?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),f(` `+u(l(T).controller.running?i.$t(`daq.kpui00095`):i.$t(`daq.knxpdpt111`)),1)],10,We),y(`label`,Ge,[f(u(i.$t(`daq.k1ifahxj016`))+` `,1),b(y(`input`,{"onUpdate:modelValue":a[1]||=e=>l(T).controller.defaultIntervalMs=e,type:`number`,min:`200`,max:`60000`,step:`100`,onChange:a[2]||=e=>l(T).controllerAction(`config`,l(T).controller.defaultIntervalMs)},null,544),[[n,l(T).controller.defaultIntervalMs,void 0,{number:!0}]]),a[41]||=f(`ms `,-1)]),y(`label`,{class:`cycle mono`,title:i.$t(`daq.k1e8lcoo001`)},[f(u(i.$t(`daq.k1if98n0017`))+` `,1),b(y(`input`,{"onUpdate:modelValue":a[3]||=e=>l(T).controller.defaultPublishIntervalMs=e,type:`number`,min:`0`,max:`60000`,step:`100`,onChange:a[4]||=e=>l(T).controllerAction(`config`,l(T).controller.defaultIntervalMs,l(T).controller.defaultPublishIntervalMs)},null,544),[[n,l(T).controller.defaultPublishIntervalMs,void 0,{number:!0}]]),a[42]||=f(`ms `,-1)],8,Ke)]),y(`div`,qe,[y(`span`,Je,[y(`span`,null,u(i.$t(`daq.k45uio067`))+` `+u(l(T).controller.nodesOnline)+`/`+u(l(T).controller.nodesTotal),1),a[43]||=y(`span`,{class:`sep`},`·`,-1),y(`span`,{title:i.$t(`daq.k1yztsu4002`)},u(i.$t(`daq.k3xagp087`))+` `+u(l(T).meta.produced),9,Ye),a[44]||=y(`span`,{class:`sep`},`·`,-1),y(`span`,{title:i.$t(`daq.ko09iha003`)},u(i.$t(`daq.k427eu088`))+` `+u(l(T).meta.consumed),9,Xe),a[45]||=y(`span`,{class:`sep`},`·`,-1),y(`span`,{class:c({warn:(l(T).meta.dropped??0)>0}),title:i.$t(`daq.k1droptip135`)},u(i.$t(`daq.k3w8go089`))+` `+u(l(T).meta.dropped),11,Ze),a[46]||=y(`span`,{class:`sep`},`·`,-1),y(`span`,{title:i.$t(`daq.kj1jbmw004`)},u(i.$t(`daq.k3wusd090`))+` `+u(l(T).meta.samplesStored),9,Qe)]),y(`button`,{class:`aw-pill outline add-btn`,onClick:a[5]||=e=>{Da.value=!0,Na()}},[a[47]||=y(`span`,{class:`i-tabler-adjustments-horizontal`},null,-1),f(` `+u(i.$t(`daq.k1f5cv0s018`)),1)]),y(`button`,{class:`aw-pill add-btn`,onClick:a[6]||=e=>V.value=!0},[a[48]||=y(`span`,{class:`i-tabler-plus`},null,-1),f(` `+u(i.$t(`daq.k1fn0ukb019`)),1)])])]),y(`div`,$e,[y(`span`,et,[a[49]||=y(`span`,{class:`i-tabler-route`},null,-1),f(` `+u(i.$t(`daq.k1b2o3b6020`)),1),y(`small`,tt,u(l(E).lines.length),1)]),y(`div`,nt,[(s(!0),h(d,null,o(l(E).lines,e=>(s(),ne(p,{key:e.id,class:c([`line-pill`,{on:l(E).lineStateOf(e.id).active}]),style:ee({"--lc":e.color}),to:`/dcw/${e.id}`,title:l(E).lineStateOf(e.id).active?i.$t(`daq.k3v957u120`,{p0:e.name,p1:l(E).lineStateOf(e.id).productName,p2:l(E).lineStateOf(e.id).recipeName}):i.$t(`daq.k1x7jnru121`,{p0:e.name})},{default:v(()=>[a[50]||=y(`span`,{class:`lp-dot`},null,-1),y(`b`,null,u(e.name),1),l(E).lineStateOf(e.id).active?(s(),h(`small`,rt,u(l(E).lineStateOf(e.id).recipeName??i.$t(`daq.k3vp67i096`)),1)):(s(),h(`small`,it,u(i.$t(`daq.k3zgkk021`)),1))]),_:2},1032,[`class`,`style`,`to`,`title`]))),128)),l(E).lines.length===0?(s(),ne(p,{key:0,class:`line-pill`,to:`/dcw`},{default:v(()=>[a[51]||=y(`span`,{class:`lp-dot`},null,-1),y(`b`,null,u(i.$t(`daq.k1el12b1022`)),1),y(`small`,at,u(i.$t(`daq.k8jxxe8023`)),1)]),_:1})):g(``,!0)])])]),V.value?(s(),h(`div`,{key:4,class:`modal-mask`,onClick:a[14]||=r(e=>V.value=!1,[`self`])},[y(`div`,ot,[y(`h3`,st,u(i.$t(`daq.k19rioqa024`)),1),y(`div`,ct,[y(`button`,{class:c([`seg`,{on:H.value===`mock`}]),onClick:a[7]||=e=>H.value=`mock`},u(i.$t(`daq.k1p5c1un025`)),3),y(`button`,{class:c([`seg`,{on:H.value===`real`}]),onClick:a[8]||=e=>H.value=`real`},u(i.$t(`daq.k1cbcp3o026`)),3)]),y(`div`,lt,[y(`label`,ut,[y(`span`,null,u(i.$t(`daq.k1fsgerc027`)),1),b(y(`select`,{"onUpdate:modelValue":a[9]||=e=>U.value=e,class:`inp`},[(s(!0),h(d,null,o(l(T).templates,e=>(s(),h(`option`,{key:e.key,value:e.key},u(e.name)+` · `+u(e.ch)+`(`+u(e.min)+`~`+u(e.max)+` `+u(e.unit)+`)`+u(e.builtin?``:i.$t(`daq.kr45rk9097`)),9,dt))),128))],512),[[t,U.value]])]),y(`label`,ft,[y(`span`,null,u(i.$t(`daq.k1ce2k1y028`)),1),b(y(`input`,{"onUpdate:modelValue":a[10]||=e=>G.value=e,class:`inp`,placeholder:i.$t(`daq.kgpxzy3005`)},null,8,pt),[[n,G.value]])]),H.value===`real`?(s(),h(`label`,mt,[y(`span`,null,u(i.$t(`daq.k13mfsfc029`)),1),b(y(`input`,{"onUpdate:modelValue":a[11]||=e=>_a.value=e,type:`number`,min:`1000`,max:`60000`,step:`500`,class:`inp`,placeholder:i.$t(`daq.k1eg1000a136`)},null,8,ht),[[n,_a.value,void 0,{number:!0}]])])):g(``,!0)]),H.value===`real`?(s(),h(d,{key:0},[y(`div`,gt,[y(`label`,_t,[y(`span`,null,u(i.$t(`daq.k1kt87rx030`)),1),b(y(`select`,{"onUpdate:modelValue":a[12]||=e=>W.value=e,class:`inp`},[(s(!0),h(d,null,o(l(pe).filter(e=>e.status!==`planned`),e=>(s(),h(`option`,{key:e.kind,value:e.kind},u(e.label)+u(Ca(e.kind)?``:i.$t(`daq.kjbqphp098`)),9,vt))),128))],512),[[t,W.value]])])]),Sa.value.length?(s(),h(`div`,yt,[(s(!0),h(d,null,o(Sa.value,n=>(s(),h(`label`,{key:n.key,class:`f`},[y(`span`,null,[f(u(n.label),1),n.required?(s(),h(`em`,bt,`*`)):g(``,!0)]),n.type===`select`?b((s(),h(`select`,{key:0,"onUpdate:modelValue":e=>K.value[n.key]=e,class:`inp`},[(s(!0),h(d,null,o(n.options,e=>(s(),h(`option`,{key:e.value,value:e.value},u(e.label),9,St))),128))],8,xt)),[[t,K.value[n.key]]]):b((s(),h(`input`,{key:1,"onUpdate:modelValue":e=>K.value[n.key]=e,type:n.type===`number`?`number`:`text`,placeholder:n.placeholder,class:`inp`},null,8,Ct)),[[e,K.value[n.key]]]),n.hint?(s(),h(`small`,wt,u(n.hint),1)):g(``,!0)]))),128))])):g(``,!0),y(`div`,Tt,[y(`button`,{class:`pill-btn`,disabled:q.value,onClick:wa},u(q.value?i.$t(`daq.k1fsh720099`):i.$t(`daq.k1fstglk112`)),9,Et),J.value?(s(),h(`span`,{key:0,class:c([`test-result`,J.value.ok?`ok`:`bad`])},[f(u(J.value.ok?`✓`:`✗`)+` `+u(J.value.message),1),J.value.latencyMs==null?g(``,!0):(s(),h(d,{key:0},[f(`(`+u(J.value.latencyMs)+`ms)`,1)],64))],2)):g(``,!0)])],64)):g(``,!0),ba.value?(s(),h(`p`,Dt,u(ba.value),1)):g(``,!0),y(`div`,Ot,[y(`button`,{class:`aw-pill outline`,onClick:a[13]||=e=>V.value=!1},u(i.$t(`daq.k3xdnn031`)),1),y(`button`,{class:`aw-pill`,disabled:ya.value||H.value===`real`&&J.value!=null&&!J.value.ok,title:H.value===`real`&&!(J.value&&J.value.ok)?i.$t(`daq.k1needtst137`):``,onClick:Ta},u(ya.value?i.$t(`daq.k1bg4759100`):H.value===`real`?i.$t(`daq.k7pxjxo113`):i.$t(`daq.k1bge46t118`)),9,kt)])])])):g(``,!0),Da.value?(s(),h(`div`,{key:5,class:`modal-mask`,onClick:a[25]||=r(e=>Da.value=!1,[`self`])},[y(`div`,At,[y(`h3`,jt,u(i.$t(`daq.k11mv96s032`)),1),y(`p`,Mt,u(i.$t(`daq.ktji4ky033`)),1),y(`table`,Nt,[y(`tbody`,null,[(s(!0),h(d,null,o(Aa.value,e=>(s(),h(`tr`,{key:e.key},[y(`td`,null,[y(`b`,null,u(e.name),1),y(`small`,Pt,u(e.code),1)]),y(`td`,Ft,u(e.min)+`~`+u(e.max)+` `+u(e.unit)+` · `+u(e.decimals)+` `+u(i.$t(`daq.k48oi091`)),1),y(`td`,It,[y(`button`,{class:`mini-btn`,onClick:t=>Pa(e)},u(i.$t(`daq.k45eb0034`)),9,Lt),y(`button`,{class:`mini-btn danger`,onClick:t=>La(e)},u(Z.value===e.key?i.$t(`daq.k1hhheu3101`):i.$t(`daq.k3xakp114`)),9,Rt)])]))),128)),Aa.value.length?g(``,!0):(s(),h(`tr`,zt,[y(`td`,Bt,u(i.$t(`daq.kztvzbo035`)),1)]))])]),y(`p`,Vt,u(Y.value?i.$t(`daq.k1iiph0s102`):i.$t(`daq.k1efixrj115`)),1),y(`div`,Ht,[y(`label`,Ut,[y(`span`,null,[f(u(i.$t(`daq.k3xhia036`)),1),a[52]||=y(`em`,null,`*`,-1)]),b(y(`input`,{"onUpdate:modelValue":a[15]||=e=>l(Q).name=e,class:`inp`,placeholder:i.$t(`daq.k5opd2t006`)},null,8,Wt),[[n,l(Q).name]])]),y(`label`,Gt,[y(`span`,null,[f(u(i.$t(`daq.k3x4ef037`)),1),a[53]||=y(`em`,null,`*`,-1)]),b(y(`input`,{"onUpdate:modelValue":a[16]||=e=>l(Q).unit=e,class:`inp`,placeholder:`如 %RH`},null,512),[[n,l(Q).unit]])]),y(`label`,Kt,[y(`span`,null,u(i.$t(`daq.k1l477m0038`)),1),b(y(`input`,{"onUpdate:modelValue":a[17]||=e=>l(Q).ch=e,class:`inp`,placeholder:i.$t(`daq.kk8o4tl007`)},null,8,qt),[[n,l(Q).ch]])]),y(`label`,Jt,[y(`span`,null,u(i.$t(`daq.k1ayxrqb039`)),1),b(y(`input`,{"onUpdate:modelValue":a[18]||=e=>l(Q).code=e,class:`inp`,placeholder:i.$t(`daq.kzn3l7l008`)},null,8,Yt),[[n,l(Q).code]])]),y(`label`,Xt,[y(`span`,null,[f(u(i.$t(`daq.k1l9jv5m040`)),1),a[54]||=y(`em`,null,`*`,-1)]),b(y(`input`,{"onUpdate:modelValue":a[19]||=e=>l(Q).min=e,type:`number`,class:`inp`},null,512),[[n,l(Q).min,void 0,{number:!0}]])]),y(`label`,Zt,[y(`span`,null,[f(u(i.$t(`daq.k1l9jv4p041`)),1),a[55]||=y(`em`,null,`*`,-1)]),b(y(`input`,{"onUpdate:modelValue":a[20]||=e=>l(Q).max=e,type:`number`,class:`inp`},null,512),[[n,l(Q).max,void 0,{number:!0}]])]),y(`label`,Qt,[y(`span`,null,u(i.$t(`daq.k3mxmcx042`)),1),b(y(`input`,{"onUpdate:modelValue":a[21]||=e=>l(Q).decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[n,l(Q).decimals,void 0,{number:!0}]])]),y(`label`,$t,[y(`span`,null,u(i.$t(`daq.k3xx56043`)),1),b(y(`select`,{"onUpdate:modelValue":a[22]||=e=>l(Q).icon=e,class:`inp`},[(s(!0),h(d,null,o(l(fe),e=>(s(),h(`option`,{key:e,value:e},u(ka[e]),9,en))),128))],512),[[t,l(Q).icon]])]),y(`label`,tn,[y(`span`,null,u(i.$t(`daq.k1f4eknv044`)),1),b(y(`input`,{"onUpdate:modelValue":a[23]||=e=>l(Q).base=e,type:`number`,class:`inp`},null,512),[[n,l(Q).base,void 0,{number:!0}]]),y(`small`,nn,u(i.$t(`daq.kytd15s045`)),1)]),y(`label`,rn,[y(`span`,null,u(i.$t(`daq.k1f4ifpo046`)),1),b(y(`input`,{"onUpdate:modelValue":a[24]||=e=>l(Q).amp=e,type:`number`,class:`inp`},null,512),[[n,l(Q).amp,void 0,{number:!0}]]),y(`small`,an,u(i.$t(`daq.ksp2aji047`)),1)])]),X.value?(s(),h(`p`,on,u(X.value),1)):g(``,!0),y(`div`,sn,[y(`button`,{class:`aw-pill outline`,onClick:Na},u(i.$t(`daq.k48p40048`)),1),y(`button`,{class:`pill-btn`,disabled:Oa.value,onClick:Ia},u(Oa.value?i.$t(`daq.k1b38d59103`):Y.value?i.$t(`daq.k1b39281116`):i.$t(`daq.k1b3dtga119`)),9,cn)]),y(`p`,ln,u(i.$t(`daq.k1w8s84s049`)),1),y(`table`,un,[y(`tbody`,null,[(s(!0),h(d,null,o(ja.value,e=>(s(),h(`tr`,{key:e.key},[y(`td`,null,[y(`b`,null,u(e.name),1),y(`small`,dn,u(e.code),1)]),y(`td`,fn,u(e.min)+`~`+u(e.max)+` `+u(e.unit)+` · `+u(e.decimals)+` `+u(i.$t(`daq.k48oi091`)),1),y(`td`,pn,[y(`button`,{class:`mini-btn`,onClick:t=>Fa(e)},u(i.$t(`daq.k3y694050`)),9,mn)])]))),128))])])])])):g(``,!0),y(`section`,hn,[y(`button`,{class:`opt-head`,onClick:$i},[a[56]||=y(`span`,{class:`i-tabler-flask`},null,-1),y(`b`,null,u(i.$t(`daq.k1optt001`)),1),y(`span`,gn,u(l(E).optimizations.length),1),y(`span`,{class:c([`opt-chevron`,{open:A.value}])},null,2)]),y(`div`,{class:c([`opt-body`,{open:A.value}])},[Yi.value?(s(),h(d,{key:0},[y(`div`,_n,[b(y(`select`,{"onUpdate:modelValue":a[26]||=e=>j.value=e,class:`inp-sel`,onChange:ea},[y(`option`,vn,u(i.$t(`daq.k1optf001`)),1),(s(!0),h(d,null,o(l(E).lines,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,yn))),128))],544),[[t,j.value]]),b(y(`select`,{"onUpdate:modelValue":a[27]||=e=>M.value=e,class:`inp-sel`,onChange:P},[y(`option`,bn,u(i.$t(`daq.k1optf004`)),1),(s(!0),h(d,null,o(Zi.value,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,xn))),128))],544),[[t,M.value]]),y(`button`,{class:`mini-act`,onClick:P},u(i.$t(`daq.k1optf002`)),1)]),l(E).optimizations.length===0?(s(),h(`p`,Sn,u(i.$t(`daq.k1opte001`)),1)):g(``,!0),y(`ul`,Cn,[(s(!0),h(d,null,o(l(E).optimizations.slice(0,30),e=>(s(),h(`li`,{key:e.id,class:c([`opt-row`,e.status])},[y(`div`,wn,[y(`span`,{class:c([`opt-status`,e.status])},u(i.$t(Qi(e.status))),3),y(`b`,Tn,u(e.nodeName),1),y(`span`,En,u(e.params[0]?.from??`?`)+` → `+u(e.params[0]?.to),1),y(`span`,Dn,u(e.setAt.slice(5,16).replace(`T`,` `)),1),N.value[e.id]?g(``,!0):(s(),h(`button`,{key:0,class:`mini-act`,disabled:Xi.value===e.id,onClick:t=>ta(e.id)},u(i.$t(`daq.k1opta001`)),9,On)),e.status===`open`?(s(),h(`button`,{key:1,class:`mini-act danger`,onClick:t=>ra(e.id)},u(i.$t(`daq.k1opta002`)),9,kn)):g(``,!0)]),y(`div`,An,[e.judge?(s(),h(`span`,{key:0,class:c([`opt-judge`,e.judge.verdict])},u(e.judge.verdict)+`(`+u(e.judge.by)+`): `+u(e.judge.reason.slice(0,70)),3)):e.status===`open`?(s(),h(`span`,jn,u(i.$t(`daq.k1opto001`)),1)):g(``,!0),e.aggPending?(s(),h(`span`,Mn,u(i.$t(`daq.k1optw001`)),1)):e.windowAgg&&e.windowAgg.channels.length?(s(),h(`span`,Nn,[(s(!0),h(d,null,o(e.windowAgg.channels,e=>(s(),h(d,{key:e.daqNodeId},[f(u(e.ch)+` `+u(ia(e.min))+`~`+u(ia(e.max))+`(`+u(i.$t(`daq.k1optw002`))+u(e.breaches<0?`-`:e.breaches)+`) `,1)],64))),128))])):g(``,!0)]),N.value[e.id]?(s(),h(`div`,Pn,[(s(!0),h(d,null,o(N.value[e.id].channels,e=>(s(),h(`div`,{key:e.nodeId,class:`opt-ch`},[(s(),h(`svg`,Fn,[y(`polyline`,{points:na(e.points)},null,8,In)])),y(`span`,Ln,u(e.ch)+` `+u(ia(e.points.at(-1)?.value??e.points.at(-1)?.avg))+u(e.unit),1)]))),128)),N.value[e.id].channels.length===0?(s(),h(`p`,Rn,u(i.$t(`daq.k1opte002`)),1)):g(``,!0)])):g(``,!0)],2))),128))])],64)):g(``,!0)],2)]),S(m,{spinning:!l(T).loaded&&!l(T).error},{default:v(()=>[y(`section`,zn,[y(`div`,Bn,[y(`div`,Vn,[y(`label`,Hn,[y(`span`,null,u(i.$t(`daq.k3wj9n051`)),1),b(y(`select`,{"onUpdate:modelValue":a[28]||=e=>l(k).lineId=e,class:`inp-sel`},[y(`option`,Un,u(i.$t(`daq.k1bkl9uj052`)),1),(s(!0),h(d,null,o(l(E).lines,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,Wn))),128)),y(`option`,Gn,u(i.$t(`daq.k3ootr6053`)),1)],512),[[t,l(k).lineId]])]),y(`label`,Kn,[y(`span`,null,u(i.$t(`daq.k1i8rtqt054`)),1),b(y(`select`,{"onUpdate:modelValue":a[29]||=e=>l(k).deviceId=e,class:`inp-sel`},[y(`option`,qn,u(i.$t(`daq.k1bkw4m2055`)),1),(s(!0),h(d,null,o(aa.value,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name)+`(`+u(e.count)+`) `,9,Jn))),128)),y(`option`,Yn,u(i.$t(`daq.k3own4q056`)),1)],512),[[t,l(k).deviceId]])]),y(`label`,{class:`flt`,title:i.$t(`daq.khb8mru009`)},[y(`span`,null,u(i.$t(`daq.k1b2tkyv057`)),1),b(y(`select`,{"onUpdate:modelValue":a[30]||=e=>l(k).lineRun=e,class:`inp-sel`},[y(`option`,Zn,u(i.$t(`daq.k3x4t1058`)),1),y(`option`,Qn,u(i.$t(`daq.k1nxm3p7059`)),1),y(`option`,$n,u(i.$t(`daq.k1ulx34e060`)),1)],512),[[t,l(k).lineRun]])],8,Xn),y(`label`,er,[y(`span`,null,u(i.$t(`daq.k1iwdfef061`)),1),b(y(`select`,{"onUpdate:modelValue":a[31]||=e=>l(k).state=e,class:`inp-sel`},[y(`option`,tr,u(i.$t(`daq.k3x4t1058`)),1),y(`option`,nr,u(i.$t(`daq.k41k5c062`)),1),y(`option`,rr,u(i.$t(`daq.k49z8v063`)),1),y(`option`,ir,u(i.$t(`daq.k3xmid064`)),1),y(`option`,ar,u(i.$t(`daq.k44c2n065`)),1)],512),[[t,l(k).state]])]),y(`label`,or,[y(`span`,null,u(i.$t(`daq.k1flttpl010`)),1),b(y(`select`,{"onUpdate:modelValue":a[32]||=e=>l(k).template=e,class:`inp-sel`},[y(`option`,sr,u(i.$t(`daq.k1flttpl011`)),1),(s(!0),h(d,null,o(Wi.value,e=>(s(),h(`option`,{key:e.ref,value:e.ref},u(e.label)+`(`+u(e.count)+`) `,9,cr))),128))],512),[[t,l(k).template]])]),y(`label`,lr,[y(`span`,null,u(i.$t(`daq.k1fltdrv012`)),1),b(y(`select`,{"onUpdate:modelValue":a[33]||=e=>l(k).driver=e,class:`inp-sel`},[y(`option`,ur,u(i.$t(`daq.k1fltdrv013`)),1),(s(!0),h(d,null,o(Gi.value,e=>(s(),h(`option`,{key:e.kind,value:e.kind},u(e.label)+`(`+u(e.count)+`) `,9,dr))),128))],512),[[t,l(k).driver]])]),y(`label`,{class:`flt`,title:i.$t(`daq.k1flttim014`)},[y(`span`,null,u(i.$t(`daq.k1flttim015`)),1),b(y(`select`,{"onUpdate:modelValue":a[34]||=e=>l(k).time=e,class:`inp-sel`},[y(`option`,pr,u(i.$t(`daq.k1flttim016`)),1),y(`option`,mr,u(i.$t(`daq.k1timlv017`)),1),y(`option`,hr,u(i.$t(`daq.k1timhr018`)),1),y(`option`,gr,u(i.$t(`daq.k1timdy019`)),1),y(`option`,_r,u(i.$t(`daq.k1timld020`)),1),y(`option`,vr,u(i.$t(`daq.k1timnv021`)),1)],512),[[t,l(k).time]])],8,fr),y(`label`,yr,[y(`span`,null,u(i.$t(`daq.k1fltsrc022`)),1),b(y(`input`,{"onUpdate:modelValue":a[35]||=e=>l(k).search=e,class:`inp-sel flt-search`,type:`search`,placeholder:i.$t(`daq.k1fltsph023`)},null,8,br),[[n,l(k).search]])]),Hi.value?(s(),h(`button`,{key:0,class:`mini-btn clear-btn`,onClick:Ui},u(i.$t(`daq.k1fygck2066`)),1)):g(``,!0)]),y(`span`,xr,u(R.value.length)+` / `+u(l(T).nodes.length)+` `+u(i.$t(`daq.k45uio067`)),1)]),y(`div`,Sr,[y(`div`,{class:c([`ops-panel alarm-panel`,{live:l(T).alarms.length>0}])},[y(`div`,Cr,[a[57]||=y(`span`,{class:`i-tabler-bell-ringing bell`},null,-1),y(`b`,null,u(i.$t(`daq.k1alarm141`)),1),y(`span`,{class:c([`mono cnt`,{hot:l(T).alarms.length>0}])},u(l(T).alarms.length),3)]),y(`div`,wr,[l(T).alarms.length===0?(s(),h(`p`,Tr,u(i.$t(`daq.k1evt001`)),1)):(s(!0),h(d,{key:1},o(l(T).alarms,e=>(s(),h(`div`,{key:e.id,class:`alarm-row`},[a[58]||=y(`span`,{class:`i-tabler-alert-triangle tri`},null,-1),y(`b`,null,u(e.nodeName),1),y(`span`,Er,u(e.metric),1),y(`span`,Dr,u(e.value)+` `+u(e.rule===`lt-min`?`<`:`>`)+` `+u(e.threshold),1),e.escalation>0?(s(),h(`small`,Or,`+`+u(e.escalation),1)):g(``,!0),y(`button`,{class:`mini-btn ack`,onClick:t=>Bi(e.id)},u(i.$t(`daq.k1ack142`)),9,kr)]))),128))])],2),y(`div`,Ar,[y(`div`,jr,[a[60]||=y(`span`,{class:`i-tabler-activity`},null,-1),y(`b`,null,u(i.$t(`daq.k1evt002`)),1),S(p,{class:`panel-link`,to:`/logs`},{default:v(()=>[f(u(i.$t(`daq.k1evt003`)),1),a[59]||=y(`span`,{class:`i-tabler-arrow-right`},null,-1)]),_:1})]),y(`div`,Mr,[l(Ii).recent.length===0?(s(),h(`p`,Nr,u(i.$t(`daq.k1evt004`)),1)):(s(!0),h(d,{key:1},o(l(Ii).recent,(e,t)=>(s(),h(`div`,{key:`${e.at}:${e.actor}:${e.action}:${t}`,class:`evt-row`},[y(`span`,Pr,u(Ri(e.at)),1),y(`span`,{class:c([`src-badge`,e.actorKind])},u(e.actorKind===`agent`?`Agent`:e.actorKind===`user`?i.$t(`logs.src.user`):i.$t(`logs.src.system`)),3),y(`span`,{class:c([`kind-chip`,e.kind])},u(Li(e.kind)),3),y(`span`,{class:`txt`,title:e.summary},u(e.summary),9,Fr)]))),128))])])]),y(`table`,Ir,[y(`thead`,null,[y(`tr`,null,[y(`th`,null,u(i.$t(`daq.k45uio067`)),1),y(`th`,null,u(i.$t(`daq.k42w8s068`)),1),y(`th`,null,u(i.$t(`daq.k3mv305069`)),1),y(`th`,null,u(i.$t(`daq.k1trnd001`)),1),y(`th`,null,u(i.$t(`daq.k1l6g2ga070`)),1),y(`th`,null,u(i.$t(`daq.k3zi0nf071`)),1),y(`th`,null,u(i.$t(`daq.k4a0la072`)),1),y(`th`,null,u(i.$t(`daq.k3wj9n051`)),1),y(`th`,{title:i.$t(`daq.k1runtipc131`)},u(i.$t(`daq.k1b2tkyv057`)),9,Lr),y(`th`,{title:i.$t(`daq.k1prdrtip132`)},u(i.$t(`daq.k1prodrc128`)),9,Rr),y(`th`,null,u(i.$t(`daq.k1i8rtqt054`)),1),y(`th`,zr,u(i.$t(`daq.k40aa6073`)),1)])]),y(`tbody`,null,[(s(!0),h(d,null,o(pa.value,({n:e,c:t})=>(s(),h(`tr`,{key:e.id,class:c({"row-recipe-alarm":t.alarm})},[y(`td`,null,[y(`span`,Br,u(e.id.slice(0,8)),1),y(`b`,null,u(e.name),1),y(`small`,Vr,u(t.tpl),1)]),y(`td`,null,[y(`span`,{class:c([`st-pill`,[t.pill.key]]),title:t.pill.tip},u(t.pill.label),11,Hr)]),y(`td`,{class:c([`mono val`,{stale:!t.live,"val-alarm":e.state===`alarm`||t.alarm}]),title:t.live?void 0:t.pill.tip},[f(u(e.value==null?`--`:e.value.toFixed(e.decimals))+` `,1),y(`small`,null,u(e.unit),1)],10,Ur),y(`td`,Wr,[(s(),h(`svg`,{class:`trend`,viewBox:`0 0 120 26`,preserveAspectRatio:`none`,title:i.$t(`daq.k1trnd002`)},[D(e.hist,O(e).min)==null?g(``,!0):(s(),h(`line`,{key:0,class:`lim`,x1:`0`,y1:D(e.hist,O(e).min),x2:`120`,y2:D(e.hist,O(e).min)},null,8,Kr)),D(e.hist,O(e).max)==null?g(``,!0):(s(),h(`line`,{key:1,class:`lim max`,x1:`0`,y1:D(e.hist,O(e).max),x2:`120`,y2:D(e.hist,O(e).max)},null,8,qr)),y(`polyline`,{class:c([`trace`,{alarm:e.state===`alarm`||t.alarm}]),points:zi(e.hist)},null,10,Jr)],8,Gr))]),y(`td`,Yr,u(ha(e.intervalMs)),1),y(`td`,Xr,u(ga(e.publishIntervalMs)),1),y(`td`,null,[y(`span`,{class:c([`drv-tag`,{planned:Ra(e.driver)}]),title:Ra(e.driver)?i.$t(`daq.k1plndrv138`):``},u(e.driver),11,Zr)]),y(`td`,null,[y(`select`,{class:`line-sel`,value:e.lineId,title:i.$t(`daq.k3q23v3010`),onChange:t=>Oi(e.id,t)},[y(`option`,$r,u(i.$t(`daq.k3ootr6053`)),1),(s(!0),h(d,null,o(l(E).lines,e=>(s(),h(`option`,{key:e.id,value:e.id},u(e.name),9,ei))),128))],40,Qr)]),y(`td`,null,[e.lineId?(s(),h(`span`,{key:0,class:c([`run-pill`,{on:l(E).lineStateOf(e.lineId).active}]),title:i.$t(`daq.k1runtipc131`)},[a[61]||=y(`span`,{class:`rp-dot`},null,-1),f(` `+u(l(E).lineStateOf(e.lineId).active?i.$t(`daq.k3vp67i096`):i.$t(`daq.k3ozyqz117`)),1)],10,ti)):(s(),h(`span`,ni,u(i.$t(`daq.k3ootr6053`)),1))]),y(`td`,ri,[e.lineId&&l(E).lineStateOf(e.lineId).active?(s(),h(d,{key:0},[y(`b`,{title:i.$t(`daq.k1prdrtip132`)},u(l(E).lineStateOf(e.lineId).productName||`--`),9,ii),y(`small`,{class:`mono`,title:i.$t(`daq.k1prdrtip132`)},u(l(E).lineStateOf(e.lineId).recipeName||`--`),9,ai)],64)):(s(),h(`span`,oi,`--`))]),y(`td`,null,[y(`div`,si,[(s(!0),h(d,null,o(ji(e),t=>(s(),h(`span`,{key:t,class:`dev-bind-chip`,title:i.$t(`daq.k2bindtip137`)},[f(u(Mi(t))+` `,1),y(`span`,{class:`dev-unbind`,title:`unbind`,onClick:n=>Ai(e.id,t)},`✕`,8,li)],8,ci))),128)),y(`select`,{class:`line-sel dev-add`,value:``,title:i.$t(`daq.k2bindtip137`),onChange:t=>ki(e.id,t)},[y(`option`,di,u(i.$t(`daq.k3own4q056`)),1),(s(!0),h(d,null,o(ma.value,t=>(s(),h(`option`,{key:t.id,value:t.id,disabled:(e.deviceIds??[]).includes(t.id)},u(l(B).get(t.id)??t.name),9,fi))),128))],40,ui)])]),y(`td`,pi,[y(`button`,{class:c([`node-toggle`,{off:!e.enabled}]),title:e.enabled?i.$t(`daq.k1nodestop146`):i.$t(`daq.k1nodestart147`),onClick:t=>Ni(e)},[y(`span`,{class:c(e.enabled?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),f(` `+u(e.enabled?i.$t(`daq.k1nodestop146`):i.$t(`daq.k1nodestart147`)),1)],10,mi),S(p,{class:`console-link`,to:`/daq/${e.id}`},{default:v(()=>[a[62]||=y(`span`,{class:`i-tabler-dashboard`},null,-1),f(` `+u(i.$t(`daq.k3o3jg2074`)),1)]),_:1},8,[`to`])])],2))),128)),l(T).loaded&&l(T).nodes.length===0?(s(),h(`tr`,hi,[y(`td`,gi,[y(`div`,_i,[y(`p`,vi,u(i.$t(`daq.kvhjyc3075`)),1)])])])):l(T).loaded&&R.value.length===0?(s(),h(`tr`,yi,[y(`td`,bi,[y(`div`,xi,[y(`p`,Si,u(i.$t(`daq.k1w20qew076`)),1)])])])):g(``,!0)])])])]),_:1},8,[`spinning`]),l(T).error?(s(),h(`p`,Ci,[f(u(l(T).error)+`(`,1),S(p,{to:`/workshop`},{default:v(()=>[f(u(i.$t(`daq.k1bhhheq077`)),1)]),_:1}),a[63]||=f(`) `,-1)])):g(``,!0)])}}}),[[`__scopeId`,`data-v-1dcb778c`]]);export{T as default};
@@ -1,4 +1,4 @@
1
- import{B as e,G as t,I as n}from"./rqZ-1SoP.js";import{C as r,F as i,M as a,St as o,a as s,et as c,f as l,gt as u,lt as d,mt as f,rt as p,tt as m,x as h}from"./BSCpFtzG.js";import{$ as g,At as _,Ct as v,L as y,O as b,P as x,R as S,W as C,d as w,f as T,h as E,j as D,kt as O,m as k,n as A,t as j,u as M}from"./BDUjyaF4.js";import{j as N,m as P,nt as F,x as ee}from"./DtBu71ev.js";import{t as I}from"./BfGc7TJp.js";import{K as L,W as te,_ as R,g as z,r as B,t as V}from"./VLI2Zy4t.js";import{_ as H,a as ne,b as U,f as re,i as ie,n as ae,o as oe,p as se,s as ce,t as le,x as W}from"./D-Ca4BGY.js";import{t as ue}from"./BNXfwXpE.js";import{n as G}from"./ORt9oDIy2.js";var de=new b(`antFadeIn`,{"0%":{opacity:0},"100%":{opacity:1}}),fe=new b(`antFadeOut`,{"0%":{opacity:1},"100%":{opacity:0}}),pe=function(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],{antCls:n}=e,r=`${n}-fade`,i=t?`&`:``;return[ee(r,de,fe,e.motionDurationMid,t),{[`
1
+ import{B as e,G as t,I as n}from"./rqZ-1SoP.js";import{C as r,F as i,M as a,St as o,a as s,et as c,f as l,gt as u,lt as d,mt as f,rt as p,tt as m,x as h}from"./BSCpFtzG.js";import{$ as g,At as _,Ct as v,L as y,O as b,P as x,R as S,W as C,d as w,f as T,h as E,j as D,kt as O,m as k,n as A,t as j,u as M}from"./BDUjyaF4.js";import{j as N,m as P,nt as F,x as ee}from"./DtBu71ev.js";import{t as I}from"./BfGc7TJp.js";import{K as L,W as te,_ as R,g as z,r as B,t as V}from"./VLI2Zy4t.js";import{_ as H,a as ne,b as U,f as re,i as ie,n as ae,o as oe,p as se,s as ce,t as le,x as W}from"./D-Ca4BGY.js";import{t as ue}from"./BNXfwXpE.js";import{n as G}from"./ORt9oDIy.js";var de=new b(`antFadeIn`,{"0%":{opacity:0},"100%":{opacity:1}}),fe=new b(`antFadeOut`,{"0%":{opacity:1},"100%":{opacity:0}}),pe=function(e){let t=arguments.length>1&&arguments[1]!==void 0&&arguments[1],{antCls:n}=e,r=`${n}-fade`,i=t?`&`:``;return[ee(r,de,fe,e.motionDurationMid,t),{[`
2
2
  ${i}${r}-enter,
3
3
  ${i}${r}-appear
4
4
  `]:{opacity:0,animationTimingFunction:`linear`},[`${i}${r}-leave`]:{animationTimingFunction:`linear`}}]};function K(){return{keyboard:{type:Boolean,default:void 0},mask:{type:Boolean,default:void 0},afterClose:Function,closable:{type:Boolean,default:void 0},maskClosable:{type:Boolean,default:void 0},visible:{type:Boolean,default:void 0},destroyOnClose:{type:Boolean,default:void 0},mousePosition:j.shape({x:Number,y:Number}).loose,title:j.any,footer:j.any,transitionName:String,maskTransitionName:String,animation:j.any,maskAnimation:j.any,wrapStyle:{type:Object,default:void 0},bodyStyle:{type:Object,default:void 0},maskStyle:{type:Object,default:void 0},prefixCls:String,wrapClassName:String,rootClassName:String,width:[String,Number],height:[String,Number],zIndex:Number,bodyProps:j.any,maskProps:j.any,wrapProps:j.any,getContainer:j.any,dialogStyle:{type:Object,default:void 0},dialogClass:String,closeIcon:j.any,forceRender:{type:Boolean,default:void 0},getOpenCount:Function,focusTriggerAfterClose:{type:Boolean,default:void 0},onClose:Function,modalRender:Function}}function me(e,t,n){let r=t;return!r&&n&&(r=`${e}-${n}`),r}var he=-1;function ge(){return he+=1,he}function _e(e,t){let n=e[`page${t?`Y`:`X`}Offset`],r=`scroll${t?`Top`:`Left`}`;if(typeof n!=`number`){let t=e.document;n=t.documentElement[r],typeof n!=`number`&&(n=t.body[r])}return n}function ve(e){let t=e.getBoundingClientRect(),n={left:t.left,top:t.top},r=e.ownerDocument,i=r.defaultView||r.parentWindow;return n.left+=_e(i),n.top+=_e(i,!0),n}var ye={width:0,height:0,overflow:`hidden`,outline:`none`},be={outline:`none`},xe=r({compatConfig:{MODE:3},name:`DialogContent`,inheritAttrs:!1,props:O(O({},K()),{motionName:String,ariaId:String,onVisibleChanged:Function,onMousedown:Function,onMouseup:Function}),setup(e,r){let{expose:i,slots:o,attrs:s}=r,c=f(),u=f(),d=f();i({focus:()=>{var e;(e=c.value)==null||e.focus({preventScroll:!0})},changeActive:e=>{let{activeElement:t}=document;e&&t===u.value?c.value.focus({preventScroll:!0}):!e&&t===c.value&&u.value.focus({preventScroll:!0})}});let m=f(),g=l(()=>{let{width:t,height:n}=e,r={};return t!==void 0&&(r.width=typeof t==`number`?`${t}px`:t),n!==void 0&&(r.height=typeof n==`number`?`${n}px`:n),m.value&&(r.transformOrigin=m.value),r}),v=()=>{a(()=>{if(d.value){let t=ve(d.value);m.value=e.mousePosition?`${e.mousePosition.x-t.left}px ${e.mousePosition.y-t.top}px`:``}})},y=t=>{e.onVisibleChanged(t)};return()=>{let{prefixCls:r,footer:i=o.footer?.call(o),title:a=o.title?.call(o),ariaId:l,closable:f,closeIcon:m=o.closeIcon?.call(o),onClose:b,bodyStyle:x,bodyProps:S,onMousedown:C,onMouseup:w,visible:T,modalRender:E=o.modalRender,destroyOnClose:D,motionName:O}=e,k;i&&(k=h(`div`,{class:`${r}-footer`},[i]));let A;a&&(A=h(`div`,{class:`${r}-header`},[h(`div`,{class:`${r}-title`,id:l},[a])]));let j;f&&(j=h(`button`,{type:`button`,onClick:b,"aria-label":`Close`,class:`${r}-close`},[m||h(`span`,{class:`${r}-close-x`},null)]));let M=h(`div`,{class:`${r}-content`},[j,A,h(`div`,_({class:`${r}-body`,style:x},S),[o.default?.call(o)]),k]),N=W(O);return h(n,_(_({},N),{},{onBeforeEnter:v,onAfterEnter:()=>y(!0),onAfterLeave:()=>y(!1)}),{default:()=>[T||!D?p(h(`div`,_(_({},s),{},{ref:d,key:`dialog-element`,role:`document`,style:[g.value,s.style],class:[r,s.class],onMousedown:C,onMouseup:w}),[h(`div`,{tabindex:0,ref:c,style:be},[E?E({originVNode:M}):M]),h(`div`,{tabindex:0,ref:u,style:ye},null)]),[[t,T]]):null]})}}}),Se=r({compatConfig:{MODE:3},name:`DialogMask`,props:{prefixCls:String,visible:Boolean,motionName:String,maskProps:Object},setup(e,r){let{}=r;return()=>{let{prefixCls:r,visible:i,maskProps:a,motionName:o}=e,s=W(o);return h(n,s,{default:()=>[p(h(`div`,_({class:`${r}-mask`},a),null),[[t,i]])]})}}}),Ce=r({compatConfig:{MODE:3},name:`VcDialog`,inheritAttrs:!1,props:I(O(O({},K()),{getOpenCount:Function,scrollLocker:Object}),{mask:!0,visible:!1,keyboard:!0,closable:!0,maskClosable:!0,destroyOnClose:!1,prefixCls:`rc-dialog`,getOpenCount:()=>null,focusTriggerAfterClose:!0}),setup(e,t){let{attrs:n,slots:r}=t,a=u(),o=u(),s=u(),l=u(e.visible),d=u(`vcDialogTitle${ge()}`),f=t=>{var n,r;if(t)x(o.value,document.activeElement)||(a.value=document.activeElement,(n=s.value)==null||n.focus());else{let t=l.value;if(l.value=!1,e.mask&&a.value&&e.focusTriggerAfterClose){try{a.value.focus({preventScroll:!0})}catch{}a.value=null}t&&((r=e.afterClose)==null||r.call(e))}},p=t=>{var n;(n=e.onClose)==null||n.call(e,t)},g=u(!1),y=u(),b=()=>{clearTimeout(y.value),g.value=!0},S=()=>{y.value=setTimeout(()=>{g.value=!1})},C=t=>{if(!e.maskClosable)return null;g.value?g.value=!1:o.value===t.target&&p(t)},w=t=>{if(e.keyboard&&t.keyCode===z.ESC){t.stopPropagation(),p(t);return}e.visible&&t.keyCode===z.TAB&&s.value.changeActive(!t.shiftKey)};return c(()=>e.visible,()=>{e.visible&&(l.value=!0)},{flush:`post`}),i(()=>{var t;clearTimeout(y.value),(t=e.scrollLocker)==null||t.unLock()}),m(()=>{var t,n;(t=e.scrollLocker)==null||t.unLock(),l.value&&((n=e.scrollLocker)==null||n.lock())}),()=>{let{prefixCls:t,mask:i,visible:a,maskTransitionName:c,maskAnimation:u,zIndex:m,wrapClassName:g,rootClassName:y,wrapStyle:x,closable:T,maskProps:E,maskStyle:D,transitionName:k,animation:A,wrapProps:j,title:M=r.title}=e,{style:P,class:F}=n;return h(`div`,_({class:[`${t}-root`,y]},N(e,{data:!0})),[h(Se,{prefixCls:t,visible:i&&a,motionName:me(t,c,u),style:O({zIndex:m},D),maskProps:E},null),h(`div`,_({tabIndex:-1,onKeydown:w,class:v(`${t}-wrap`,g),ref:o,onClick:C,role:`dialog`,"aria-labelledby":M?d.value:null,style:O(O({zIndex:m},x),{display:l.value?null:`none`})},j),[h(xe,_(_({},L(e,[`scrollLocker`])),{},{style:P,class:F,onMousedown:b,onMouseup:S,ref:s,closable:T,ariaId:d.value,prefixCls:t,visible:a,onClose:p,onVisibleChanged:f,motionName:me(t,k,A)}),r)])])}}}),we=K(),Te=r({compatConfig:{MODE:3},name:`DialogWrap`,inheritAttrs:!1,props:I(we,{visible:!1}),setup(e,t){let{attrs:n,slots:r}=t,i=f(e.visible);return H({},{inTriggerContext:!1}),c(()=>e.visible,()=>{e.visible&&(i.value=!0)},{flush:`post`}),()=>{let{visible:t,getContainer:a,forceRender:o,destroyOnClose:s=!1,afterClose:c}=e,l=O(O(O({},e),n),{ref:`_component`,key:`dialog`});return a===!1?h(Ce,_(_({},l),{},{getOpenCount:()=>2}),r):!o&&s&&!i.value?null:h(R,{autoLock:!0,visible:t,forceRender:o,getContainer:a},{default:e=>(l=O(O(O({},l),e),{afterClose:()=>{c?.(),i.value=!1}}),h(Ce,l,r))})}}});function Ee(e){return{position:e,top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0}}var De=e=>{let{componentCls:t}=e;return[{[`${t}-root`]:{[`${t}${e.antCls}-zoom-enter, ${t}${e.antCls}-zoom-appear`]:{transform:`none`,opacity:0,animationDuration:e.motionDurationSlow,userSelect:`none`},[`${t}${e.antCls}-zoom-leave ${t}-content`]:{pointerEvents:`none`},[`${t}-mask`]:O(O({},Ee(`fixed`)),{zIndex:e.zIndexPopupBase,height:`100%`,backgroundColor:e.colorBgMask,[`${t}-hidden`]:{display:`none`}}),[`${t}-wrap`]:O(O({},Ee(`fixed`)),{overflow:`auto`,outline:0,WebkitOverflowScrolling:`touch`})}},{[`${t}-root`]:pe(e)}]},Oe=e=>{let{componentCls:t}=e;return[{[`${t}-root`]:{[`${t}-wrap`]:{zIndex:e.zIndexPopupBase,position:`fixed`,inset:0,overflow:`auto`,outline:0,WebkitOverflowScrolling:`touch`},[`${t}-wrap-rtl`]:{direction:`rtl`},[`${t}-centered`]:{textAlign:`center`,"&::before":{display:`inline-block`,width:0,height:`100%`,verticalAlign:`middle`,content:`""`},[t]:{top:0,display:`inline-block`,paddingBottom:0,textAlign:`start`,verticalAlign:`middle`}},[`@media (max-width: ${e.screenSMMax})`]:{[t]:{maxWidth:`calc(100vw - 16px)`,margin:`${e.marginXS} auto`},[`${t}-centered`]:{[t]:{flex:1}}}}},{[t]:O(O({},E(e)),{pointerEvents:`none`,position:`relative`,top:100,width:`auto`,maxWidth:`calc(100vw - ${e.margin*2}px)`,margin:`0 auto`,paddingBottom:e.paddingLG,[`${t}-title`]:{margin:0,color:e.modalHeadingColor,fontWeight:e.fontWeightStrong,fontSize:e.modalHeaderTitleFontSize,lineHeight:e.modalHeaderTitleLineHeight,wordWrap:`break-word`},[`${t}-content`]:{position:`relative`,backgroundColor:e.modalContentBg,backgroundClip:`padding-box`,border:0,borderRadius:e.borderRadiusLG,boxShadow:e.boxShadowSecondary,pointerEvents:`auto`,padding:`${e.paddingMD}px ${e.paddingContentHorizontalLG}px`},[`${t}-close`]:O({position:`absolute`,top:(e.modalHeaderCloseSize-e.modalCloseBtnSize)/2,insetInlineEnd:(e.modalHeaderCloseSize-e.modalCloseBtnSize)/2,zIndex:e.zIndexPopupBase+10,padding:0,color:e.modalCloseColor,fontWeight:e.fontWeightStrong,lineHeight:1,textDecoration:`none`,background:`transparent`,borderRadius:e.borderRadiusSM,width:e.modalConfirmIconSize,height:e.modalConfirmIconSize,border:0,outline:0,cursor:`pointer`,transition:`color ${e.motionDurationMid}, background-color ${e.motionDurationMid}`,"&-x":{display:`block`,fontSize:e.fontSizeLG,fontStyle:`normal`,lineHeight:`${e.modalCloseBtnSize}px`,textAlign:`center`,textTransform:`none`,textRendering:`auto`},"&:hover":{color:e.modalIconHoverColor,backgroundColor:e.wireframe?`transparent`:e.colorFillContent,textDecoration:`none`},"&:active":{backgroundColor:e.wireframe?`transparent`:e.colorFillContentHover}},k(e)),[`${t}-header`]:{color:e.colorText,background:e.modalHeaderBg,borderRadius:`${e.borderRadiusLG}px ${e.borderRadiusLG}px 0 0`,marginBottom:e.marginXS},[`${t}-body`]:{fontSize:e.fontSize,lineHeight:e.lineHeight,wordWrap:`break-word`},[`${t}-footer`]:{textAlign:`end`,background:e.modalFooterBg,marginTop:e.marginSM,[`${e.antCls}-btn + ${e.antCls}-btn:not(${e.antCls}-dropdown-trigger)`]:{marginBottom:0,marginInlineStart:e.marginXS}},[`${t}-open`]:{overflow:`hidden`}})},{[`${t}-pure-panel`]:{top:`auto`,padding:0,display:`flex`,flexDirection:`column`,[`${t}-content,
@@ -1,4 +1,4 @@
1
- import{C as e,F as t,O as n,P as r,U as i,a,et as o,f as s,gt as c,mt as l,vt as u,x as d}from"./BSCpFtzG.js";import{At as f,B as p,Ct as m,Q as h,X as g,_,ct as v,d as y,et as b,g as x,h as S,ht as C,j as w,kt as T,lt as E,mt as D,n as O,t as k,tt as A,u as j}from"./BDUjyaF4.js";import{E as M,T as ee,k as N}from"./DtBu71ev.js";import{K as te,V as P,X as F,a as I,c as L,d as R,f as z,g as B,p as ne,s as V}from"./VLI2Zy4t.js";import{a as re}from"./BN_PdN3J.js";import{h as H}from"./D-Ca4BGY.js";import{c as U,f as W,l as ie,m as ae,o as G,p as oe,s as se,u as ce}from"./RzXYI9FM.js";import{n as le,t as ue}from"./D95h62Jn.js";function K(e){return e!=null}var q=e=>{let{itemPrefixCls:t,component:n,span:r,labelStyle:i,contentStyle:a,bordered:o,label:s,content:c,colon:l}=e,u=n;return o?d(u,{class:[{[`${t}-item-label`]:K(s),[`${t}-item-content`]:K(c)}],colSpan:r},{default:()=>[K(s)&&d(`span`,{style:i},[s]),K(c)&&d(`span`,{style:a},[c])]}):d(u,{class:[`${t}-item`],colSpan:r},{default:()=>[d(`div`,{class:`${t}-item-container`},[(s||s===0)&&d(`span`,{class:[`${t}-item-label`,{[`${t}-item-no-colon`]:!l}],style:i},[s]),(c||c===0)&&d(`span`,{class:`${t}-item-content`,style:a},[c])])]})},de=e=>{let t=(e,t,n)=>{let{colon:r,prefixCls:i,bordered:a}=t,{component:o,type:s,showLabel:c,showContent:l,labelStyle:u,contentStyle:f}=n;return e.map((e,t)=>{var n;let p=e.props||{},{prefixCls:m=i,span:h=1,labelStyle:g=p[`label-style`],contentStyle:_=p[`content-style`],label:v=((n=e.children)?.label)?.call(n)}=p,y=D(e),b=E(e),x=C(e),{key:S}=e;return typeof o==`string`?d(q,{key:`${s}-${String(S)||t}`,class:b,style:x,labelStyle:T(T({},u),g),contentStyle:T(T({},f),_),span:h,colon:r,component:o,itemPrefixCls:m,bordered:a,label:c?v:null,content:l?y:null},null):[d(q,{key:`label-${String(S)||t}`,class:b,style:T(T(T({},u),x),g),span:1,colon:r,component:o[0],itemPrefixCls:m,bordered:a,label:v},null),d(q,{key:`content-${String(S)||t}`,class:b,style:T(T(T({},f),x),_),span:h*2-1,component:o[1],itemPrefixCls:m,bordered:a,content:y},null)]})},{prefixCls:r,vertical:i,row:o,index:s,bordered:c}=e,{labelStyle:u,contentStyle:f}=n(xe,{labelStyle:l({}),contentStyle:l({})});return i?d(a,null,[d(`tr`,{key:`label-${s}`,class:`${r}-row`},[t(o,e,{component:`th`,type:`label`,showLabel:!0,labelStyle:u.value,contentStyle:f.value})]),d(`tr`,{key:`content-${s}`,class:`${r}-row`},[t(o,e,{component:`td`,type:`content`,showContent:!0,labelStyle:u.value,contentStyle:f.value})])]):d(`tr`,{key:s,class:`${r}-row`},[t(o,e,{component:c?[`th`,`td`]:`td`,type:`item`,showLabel:!0,showContent:!0,labelStyle:u.value,contentStyle:f.value})])},fe=e=>{let{componentCls:t,descriptionsSmallPadding:n,descriptionsDefaultPadding:r,descriptionsMiddlePadding:i,descriptionsBg:a}=e;return{[`&${t}-bordered`]:{[`${t}-view`]:{border:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"> table":{tableLayout:`auto`,borderCollapse:`collapse`}},[`${t}-item-label, ${t}-item-content`]:{padding:r,borderInlineEnd:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"&:last-child":{borderInlineEnd:`none`}},[`${t}-item-label`]:{backgroundColor:a,"&::after":{display:`none`}},[`${t}-row`]:{borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"&:last-child":{borderBottom:`none`}},[`&${t}-middle`]:{[`${t}-item-label, ${t}-item-content`]:{padding:i}},[`&${t}-small`]:{[`${t}-item-label, ${t}-item-content`]:{padding:n}}}}},pe=e=>{let{componentCls:t,descriptionsExtraColor:n,descriptionItemPaddingBottom:r,descriptionsItemLabelColonMarginRight:i,descriptionsItemLabelColonMarginLeft:a,descriptionsTitleMarginBottom:o}=e;return{[t]:T(T(T({},S(e)),fe(e)),{"&-rtl":{direction:`rtl`},[`${t}-header`]:{display:`flex`,alignItems:`center`,marginBottom:o},[`${t}-title`]:T(T({},_),{flex:`auto`,color:e.colorText,fontWeight:e.fontWeightStrong,fontSize:e.fontSizeLG,lineHeight:e.lineHeightLG}),[`${t}-extra`]:{marginInlineStart:`auto`,color:n,fontSize:e.fontSize},[`${t}-view`]:{width:`100%`,borderRadius:e.borderRadiusLG,table:{width:`100%`,tableLayout:`fixed`}},[`${t}-row`]:{"> th, > td":{paddingBottom:r},"&:last-child":{borderBottom:`none`}},[`${t}-item-label`]:{color:e.colorText,fontWeight:`normal`,fontSize:e.fontSize,lineHeight:e.lineHeight,textAlign:`start`,"&::after":{content:`":"`,position:`relative`,top:-.5,marginInline:`${a}px ${i}px`},[`&${t}-item-no-colon::after`]:{content:`""`}},[`${t}-item-no-label`]:{"&::after":{margin:0,content:`""`}},[`${t}-item-content`]:{display:`table-cell`,flex:1,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,wordBreak:`break-word`,overflowWrap:`break-word`},[`${t}-item`]:{paddingBottom:0,verticalAlign:`top`,"&-container":{display:`flex`,[`${t}-item-label`]:{display:`inline-flex`,alignItems:`baseline`},[`${t}-item-content`]:{display:`inline-flex`,alignItems:`baseline`}}},"&-middle":{[`${t}-row`]:{"> th, > td":{paddingBottom:e.paddingSM}}},"&-small":{[`${t}-row`]:{"> th, > td":{paddingBottom:e.paddingXS}}}})}},me=y(`Descriptions`,e=>{let t=e.colorFillAlter,n=e.fontSizeSM*e.lineHeightSM,r=e.colorText,i=`${e.paddingXS}px ${e.padding}px`,a=`${e.padding}px ${e.paddingLG}px`,o=`${e.paddingSM}px ${e.paddingLG}px`,s=e.padding,c=e.marginXS,l=e.marginXXS/2;return[pe(j(e,{descriptionsBg:t,descriptionsTitleMarginBottom:n,descriptionsExtraColor:r,descriptionItemPaddingBottom:s,descriptionsSmallPadding:i,descriptionsDefaultPadding:a,descriptionsMiddlePadding:o,descriptionsItemLabelColonMarginRight:c,descriptionsItemLabelColonMarginLeft:l}))]});k.any;var he=e({compatConfig:{MODE:3},name:`ADescriptionsItem`,props:{prefixCls:String,label:k.any,labelStyle:{type:Object,default:void 0},contentStyle:{type:Object,default:void 0},span:{type:Number,default:1}},setup(e,t){let{slots:n}=t;return()=>n.default?.call(n)}}),ge={xxxl:3,xxl:3,xl:3,lg:3,md:3,sm:2,xs:1};function _e(e,t){if(typeof e==`number`)return e;if(typeof e==`object`)for(let n=0;n<ue.length;n++){let r=ue[n];if(t[r]&&e[r]!==void 0)return e[r]||ge[r]}return 3}function ve(e,t,n){let r=e;return(n===void 0||n>t)&&(r=P(e,{span:t}),w(n===void 0,`Descriptions`,"Sum of column `span` in a line not match `column` of Descriptions.")),r}function ye(e,t){let n=v(e),r=[],i=[],a=t;return n.forEach((e,o)=>{let s=e.props?.span,c=s||1;if(o===n.length-1){i.push(ve(e,a,s)),r.push(i);return}c<a?(a-=c,i.push(e)):(i.push(ve(e,a,c)),r.push(i),a=t,i=[])}),r}var be=()=>({prefixCls:String,bordered:{type:Boolean,default:void 0},size:{type:String,default:`default`},title:k.any,extra:k.any,column:{type:[Number,Object],default:()=>ge},layout:String,colon:{type:Boolean,default:void 0},labelStyle:{type:Object,default:void 0},contentStyle:{type:Object,default:void 0}}),xe=Symbol(`descriptionsContext`),J=e({compatConfig:{MODE:3},name:`ADescriptions`,inheritAttrs:!1,props:be(),slots:Object,Item:he,setup(e,n){let{slots:a,attrs:o}=n,{prefixCls:c,direction:p}=O(`descriptions`,e),m,h=l({}),[g,_]=me(c),v=le();r(()=>{m=v.value.subscribe(t=>{typeof e.column==`object`&&(h.value=t)})}),t(()=>{v.value.unsubscribe(m)}),i(xe,{labelStyle:u(e,`labelStyle`),contentStyle:u(e,`contentStyle`)});let y=s(()=>_e(e.column,h.value));return()=>{let{size:t,bordered:n=!1,layout:r=`horizontal`,colon:i=!0,title:s=a.title?.call(a),extra:l=a.extra?.call(a)}=e,u=ye(a.default?.call(a),y.value);return g(d(`div`,f(f({},o),{},{class:[c.value,{[`${c.value}-${t}`]:t!=="default",[`${c.value}-bordered`]:!!n,[`${c.value}-rtl`]:p.value===`rtl`},o.class,_.value]}),[(s||l)&&d(`div`,{class:`${c.value}-header`},[s&&d(`div`,{class:`${c.value}-title`},[s]),l&&d(`div`,{class:`${c.value}-extra`},[l])]),d(`div`,{class:`${c.value}-view`},[d(`table`,null,[d(`tbody`,null,[u.map((e,t)=>d(de,{key:t,index:t,colon:i,prefixCls:c.value,vertical:r===`vertical`,bordered:n,row:e},null))])])])]))}}});J.install=function(e){return e.component(J.name,J),e.component(J.Item.name,J.Item),e};var Se={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z`}}]},name:`up`,theme:`outlined`};function Ce(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:Object(arguments[t]),r=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){we(e,t,n[t])})}return e}function we(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Y=function(e,t){var n=Ce({},e,t.attrs);return d(H,Ce({},n,{icon:Se}),null)};Y.displayName=`UpOutlined`,Y.inheritAttrs=!1;function Te(){return typeof BigInt==`function`}function X(e){let t=e.trim(),n=t.startsWith(`-`);n&&(t=t.slice(1)),t=t.replace(/(\.\d*[^0])0*$/,`$1`).replace(/\.0*$/,``).replace(/^0+/,``),t.startsWith(`.`)&&(t=`0${t}`);let r=t||`0`,i=r.split(`.`),a=i[0]||`0`,o=i[1]||`0`;a===`0`&&o===`0`&&(n=!1);let s=n?`-`:``;return{negative:n,negativeStr:s,trimStr:r,integerStr:a,decimalStr:o,fullStr:`${s}${r}`}}function Ee(e){let t=String(e);return!Number.isNaN(Number(t))&&t.includes(`e`)}function Z(e){let t=String(e);if(Ee(e)){let e=Number(t.slice(t.indexOf(`e-`)+2)),n=t.match(/\.(\d+)/);return n?.[1]&&(e+=n[1].length),e}return t.includes(`.`)&&Oe(t)?t.length-t.indexOf(`.`)-1:0}function De(e){let t=String(e);if(Ee(e)){if(e>2**53-1)return String(Te()?BigInt(e).toString():2**53-1);if(e<-(2**53-1))return String(Te()?BigInt(e).toString():-(2**53-1));t=e.toFixed(Z(t))}return X(t).fullStr}function Oe(e){return typeof e==`number`?!Number.isNaN(e):e?/^\s*-?\d+(\.\d+)?\s*$/.test(e)||/^\s*-?\d+\.\s*$/.test(e)||/^\s*-?\.\d+\s*$/.test(e):!1}function ke(e){return!e&&e!==0&&!Number.isNaN(e)||!String(e).trim()}var Ae=class e{constructor(e){if(this.origin=``,ke(e)){this.empty=!0;return}this.origin=String(e),this.number=Number(e)}negate(){return new e(-this.toNumber())}add(t){if(this.isInvalidate())return new e(t);let n=Number(t);if(Number.isNaN(n))return this;let r=this.number+n;if(r>2**53-1)return new e(2**53-1);if(r<-(2**53-1))return new e(-(2**53-1));let i=Math.max(Z(this.number),Z(n));return new e(r.toFixed(i))}isEmpty(){return this.empty}isNaN(){return Number.isNaN(this.number)}isInvalidate(){return this.isEmpty()||this.isNaN()}equals(e){return this.toNumber()===e?.toNumber()}lessEquals(e){return this.add(e.negate().toString()).toNumber()<=0}toNumber(){return this.number}toString(){return!(arguments.length>0&&arguments[0]!==void 0)||arguments[0]?this.isInvalidate()?``:De(this.number):this.origin}},je=class e{constructor(e){if(this.origin=``,ke(e)){this.empty=!0;return}if(this.origin=String(e),e===`-`||Number.isNaN(e)){this.nan=!0;return}let t=e;if(Ee(t)&&(t=Number(t)),t=typeof t==`string`?t:De(t),Oe(t)){let e=X(t);this.negative=e.negative;let n=e.trimStr.split(`.`);this.integer=BigInt(n[0]);let r=n[1]||`0`;this.decimal=BigInt(r),this.decimalLen=r.length}else this.nan=!0}getMark(){return this.negative?`-`:``}getIntegerStr(){return this.integer.toString()}getDecimalStr(){return this.decimal.toString().padStart(this.decimalLen,`0`)}alignDecimal(e){let t=`${this.getMark()}${this.getIntegerStr()}${this.getDecimalStr().padEnd(e,`0`)}`;return BigInt(t)}negate(){let t=new e(this.toString());return t.negative=!t.negative,t}add(t){if(this.isInvalidate())return new e(t);let n=new e(t);if(n.isInvalidate())return this;let r=Math.max(this.getDecimalStr().length,n.getDecimalStr().length),{negativeStr:i,trimStr:a}=X((this.alignDecimal(r)+n.alignDecimal(r)).toString()),o=`${i}${a.padStart(r+1,`0`)}`;return new e(`${o.slice(0,-r)}.${o.slice(-r)}`)}isEmpty(){return this.empty}isNaN(){return this.nan}isInvalidate(){return this.isEmpty()||this.isNaN()}equals(e){return this.toString()===e?.toString()}lessEquals(e){return this.add(e.negate().toString()).toNumber()<=0}toNumber(){return this.isNaN()?NaN:Number(this.toString())}toString(){return!(arguments.length>0&&arguments[0]!==void 0)||arguments[0]?this.isInvalidate()?``:X(`${this.getMark()}${this.getIntegerStr()}.${this.getDecimalStr()}`).fullStr:this.origin}};function Q(e){return Te()?new je(e):new Ae(e)}function Me(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(e===``)return``;let{negativeStr:i,integerStr:a,decimalStr:o}=X(e),s=`${t}${o}`,c=`${i}${a}`;if(n>=0){let a=Number(o[n]);return a>=5&&!r?Me(Q(e).add(`${i}0.${`0`.repeat(n)}${10-a}`).toString(),t,n,r):n===0?c:`${c}${t}${o.padEnd(n,`0`).slice(0,n)}`}return s===`.0`?c:`${c}${s}`}var Ne=200,Pe=600,Fe=e({compatConfig:{MODE:3},name:`StepHandler`,inheritAttrs:!1,props:{prefixCls:String,upDisabled:Boolean,downDisabled:Boolean,onStep:h()},slots:Object,setup(e,n){let{slots:r,emit:i}=n,a=l(),o=(e,t)=>{e.preventDefault(),i(`step`,t);function n(){i(`step`,t),a.value=setTimeout(n,Ne)}a.value=setTimeout(n,Pe)},s=()=>{clearTimeout(a.value)};return t(()=>{s()}),()=>{if(N())return null;let{prefixCls:t,upDisabled:n,downDisabled:i}=e,a=`${t}-handler`,c=m(a,`${a}-up`,{[`${a}-up-disabled`]:n}),l=m(a,`${a}-down`,{[`${a}-down-disabled`]:i}),u={unselectable:`on`,role:`button`,onMouseup:s,onMouseleave:s},{upNode:p,downNode:h}=r;return d(`div`,{class:`${a}-wrap`},[d(`span`,f(f({},u),{},{onMousedown:e=>{o(e,!0)},"aria-label":`Increase Value`,"aria-disabled":n,class:c}),[p?.()||d(`span`,{unselectable:`on`,class:`${t}-handler-up-inner`},null)]),d(`span`,f(f({},u),{},{onMousedown:e=>{o(e,!1)},"aria-label":`Decrease Value`,"aria-disabled":i,class:l}),[h?.()||d(`span`,{unselectable:`on`,class:`${t}-handler-down-inner`},null)])])}}});function Ie(e,t){let n=l(null);function r(){try{let{selectionStart:t,selectionEnd:r,value:i}=e.value,a=i.substring(0,t),o=i.substring(r);n.value={start:t,end:r,value:i,beforeTxt:a,afterTxt:o}}catch{}}function i(){if(e.value&&n.value&&t.value)try{let{value:t}=e.value,{beforeTxt:r,afterTxt:i,start:a}=n.value,o=t.length;if(t.endsWith(i))o=t.length-n.value.afterTxt.length;else if(t.startsWith(r))o=r.length;else{let e=r[a-1],n=t.indexOf(e,a-1);n!==-1&&(o=n+1)}e.value.setSelectionRange(o,o)}catch(e){`${e.message}`}}return[r,i]}var Le=(()=>{let e=c(0),n=()=>{F.cancel(e.value)};return t(()=>{n()}),t=>{n(),e.value=F(()=>{t()})}}),Re=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},ze=(e,t)=>e||t.isEmpty()?t.toString():t.toNumber(),Be=e=>{let t=Q(e);return t.isInvalidate()?null:t},Ve=()=>({stringMode:g(),defaultValue:b([String,Number]),value:b([String,Number]),prefixCls:A(),min:b([String,Number]),max:b([String,Number]),step:b([String,Number],1),tabindex:Number,controls:g(!0),readonly:g(),disabled:g(),autofocus:g(),keyboard:g(!0),parser:h(),formatter:h(),precision:Number,decimalSeparator:String,onInput:h(),onChange:h(),onPressEnter:h(),onStep:h(),onBlur:h(),onFocus:h()}),He=e({compatConfig:{MODE:3},name:`InnerInputNumber`,inheritAttrs:!1,props:T(T({},Ve()),{lazy:Boolean}),slots:Object,setup(e,t){let{attrs:n,slots:r,emit:i,expose:a}=t,l=c(),u=c(!1),p=c(!1),h=c(!1),g=c(Q(e.value));function _(t){e.value===void 0&&(g.value=t)}let v=(t,n)=>{if(!n)return e.precision>=0?e.precision:Math.max(Z(t),Z(e.step))},y=t=>{let n=String(t);if(e.parser)return e.parser(n);let r=n;return e.decimalSeparator&&(r=r.replace(e.decimalSeparator,`.`)),r.replace(/[^\w.-]+/g,``)},b=c(``),x=(t,n)=>{if(e.formatter)return e.formatter(t,{userTyping:n,input:String(b.value)});let r=typeof t==`number`?De(t):t;if(!n){let t=v(r,n);if(Oe(r)&&(e.decimalSeparator||t>=0)){let n=e.decimalSeparator||`.`;r=Me(r,n,t)}}return r};b.value=(()=>{let t=e.value;return g.value.isInvalidate()&&[`string`,`number`].includes(typeof t)?Number.isNaN(t)?``:t:x(g.value.toString(),!1)})();function S(e,t){b.value=x(e.isInvalidate()?e.toString(!1):e.toString(!t),t)}let C=s(()=>Be(e.max)),w=s(()=>Be(e.min)),E=s(()=>!C.value||!g.value||g.value.isInvalidate()?!1:C.value.lessEquals(g.value)),D=s(()=>!w.value||!g.value||g.value.isInvalidate()?!1:g.value.lessEquals(w.value)),[O,k]=Ie(l,u),A=e=>C.value&&!e.lessEquals(C.value)?C.value:w.value&&!w.value.lessEquals(e)?w.value:null,j=e=>!A(e),M=(t,n)=>{var r;let i=t,a=j(i)||i.isEmpty();if(!i.isEmpty()&&!n&&(i=A(i)||i,a=!0),!e.readonly&&!e.disabled&&a){let t=i.toString(),a=v(t,n);return a>=0&&(i=Q(Me(t,`.`,a))),i.equals(g.value)||(_(i),(r=e.onChange)==null||r.call(e,i.isEmpty()?null:ze(e.stringMode,i)),e.value===void 0&&S(i,n)),i}return g.value},ee=Le(),N=t=>{var n;if(O(),b.value=t,!h.value){let e=Q(y(t));e.isNaN()||M(e,!0)}(n=e.onInput)==null||n.call(e,t),ee(()=>{let n=t;e.parser||(n=t.replace(/。/g,`.`)),n!==t&&N(n)})},te=()=>{h.value=!0},P=()=>{h.value=!1,N(l.value.value)},F=e=>{N(e.target.value)},I=t=>{var n,r;if(t&&E.value||!t&&D.value)return;p.value=!1;let i=Q(e.step);t||(i=i.negate());let a=(g.value||Q(0)).add(i.toString()),o=M(a,!1);(n=e.onStep)==null||n.call(e,ze(e.stringMode,o),{offset:e.step,type:t?`up`:`down`}),(r=l.value)==null||r.focus()},L=t=>{let n=Q(y(b.value)),r=n;r=n.isNaN()?g.value:M(n,t),e.value===void 0?r.isNaN()||S(r,!1):S(g.value,!1)},R=()=>{p.value=!0},z=t=>{var n;let{which:r}=t;p.value=!0,r===B.ENTER&&(h.value||(p.value=!1),L(!1),(n=e.onPressEnter)==null||n.call(e,t)),e.keyboard!==!1&&!h.value&&[B.UP,B.DOWN].includes(r)&&(I(B.UP===r),t.preventDefault())},ne=()=>{p.value=!1},V=e=>{L(!1),u.value=!1,p.value=!1,i(`blur`,e)};return o(()=>e.precision,()=>{g.value.isInvalidate()||S(g.value,!1)},{flush:`post`}),o(()=>e.value,()=>{let t=Q(e.value);g.value=t;let n=Q(y(b.value));(!t.equals(n)||!p.value||e.formatter)&&S(t,p.value)},{flush:`post`}),o(b,()=>{e.formatter&&k()},{flush:`post`}),o(()=>e.disabled,e=>{e&&(u.value=!1)}),a({focus:()=>{var e;(e=l.value)==null||e.focus()},blur:()=>{var e;(e=l.value)==null||e.blur()}}),()=>{let t=T(T({},n),e),{prefixCls:a=`rc-input-number`,min:o,max:s,step:c=1,defaultValue:p,value:h,disabled:_,readonly:v,keyboard:y,controls:x=!0,autofocus:S,stringMode:C,parser:w,formatter:O,precision:k,decimalSeparator:A,onChange:M,onInput:ee,onPressEnter:N,onStep:L,lazy:B,class:re,style:H}=t,U=Re(t,[`prefixCls`,`min`,`max`,`step`,`defaultValue`,`value`,`disabled`,`readonly`,`keyboard`,`controls`,`autofocus`,`stringMode`,`parser`,`formatter`,`precision`,`decimalSeparator`,`onChange`,`onInput`,`onPressEnter`,`onStep`,`lazy`,`class`,`style`]),{upHandler:W,downHandler:ie}=r,ae=`${a}-input`,G={};return B?G.onChange=F:G.onInput=F,d(`div`,{class:m(a,re,{[`${a}-focused`]:u.value,[`${a}-disabled`]:_,[`${a}-readonly`]:v,[`${a}-not-a-number`]:g.value.isNaN(),[`${a}-out-of-range`]:!g.value.isInvalidate()&&!j(g.value)}),style:H,onKeydown:z,onKeyup:ne},[x&&d(Fe,{prefixCls:a,upDisabled:E.value,downDisabled:D.value,onStep:I},{upNode:W,downNode:ie}),d(`div`,{class:`${ae}-wrap`},[d(`input`,f(f(f({autofocus:S,autocomplete:`off`,role:`spinbutton`,"aria-valuemin":o,"aria-valuemax":s,"aria-valuenow":g.value.isInvalidate()?null:g.value.toString(),step:c},U),{},{ref:l,class:ae,value:b.value,disabled:_,readonly:v,onFocus:e=>{u.value=!0,i(`focus`,e)}},G),{},{onBlur:V,onCompositionstart:te,onCompositionend:P,onBeforeinput:R}),null)])])}}});function Ue(e){return e!=null}var We=e=>{let{componentCls:t,lineWidth:n,lineType:r,colorBorder:i,borderRadius:a,fontSizeLG:o,controlHeightLG:s,controlHeightSM:c,colorError:l,inputPaddingHorizontalSM:u,colorTextDescription:d,motionDurationMid:f,colorPrimary:p,controlHeight:m,inputPaddingHorizontal:h,colorBgContainer:g,colorTextDisabled:_,borderRadiusSM:v,borderRadiusLG:y,controlWidth:b,handleVisible:C}=e;return[{[t]:T(T(T(T({},S(e)),se(e)),oe(e,t)),{display:`inline-block`,width:b,margin:0,padding:0,border:`${n}px ${r} ${i}`,borderRadius:a,"&-rtl":{direction:`rtl`,[`${t}-input`]:{direction:`rtl`}},"&-lg":{padding:0,fontSize:o,borderRadius:y,[`input${t}-input`]:{height:s-2*n}},"&-sm":{padding:0,borderRadius:v,[`input${t}-input`]:{height:c-2*n,padding:`0 ${u}px`}},"&:hover":T({},ie(e)),"&-focused":T({},G(e)),"&-disabled":T(T({},U(e)),{[`${t}-input`]:{cursor:`not-allowed`}}),"&-out-of-range":{input:{color:l}},"&-group":T(T(T({},S(e)),ce(e)),{"&-wrapper":{display:`inline-block`,textAlign:`start`,verticalAlign:`top`,[`${t}-affix-wrapper`]:{width:`100%`},"&-lg":{[`${t}-group-addon`]:{borderRadius:y}},"&-sm":{[`${t}-group-addon`]:{borderRadius:v}}}}),[t]:{"&-input":T(T({width:`100%`,height:m-2*n,padding:`0 ${h}px`,textAlign:`start`,backgroundColor:`transparent`,border:0,borderRadius:a,outline:0,transition:`all ${f} linear`,appearance:`textfield`,color:e.colorText,fontSize:`inherit`,verticalAlign:`top`},W(e.colorTextPlaceholder)),{'&[type="number"]::-webkit-inner-spin-button, &[type="number"]::-webkit-outer-spin-button':{margin:0,webkitAppearance:`none`,appearance:`none`}})}})},{[t]:{[`&:hover ${t}-handler-wrap, &-focused ${t}-handler-wrap`]:{opacity:1},[`${t}-handler-wrap`]:{position:`absolute`,insetBlockStart:0,insetInlineEnd:0,width:e.handleWidth,height:`100%`,background:g,borderStartStartRadius:0,borderStartEndRadius:a,borderEndEndRadius:a,borderEndStartRadius:0,opacity:+(C===!0),display:`flex`,flexDirection:`column`,alignItems:`stretch`,transition:`opacity ${f} linear ${f}`,[`${t}-handler`]:{display:`flex`,alignItems:`center`,justifyContent:`center`,flex:`auto`,height:`40%`,[`
1
+ import{C as e,F as t,O as n,P as r,U as i,a,et as o,f as s,gt as c,mt as l,vt as u,x as d}from"./BSCpFtzG.js";import{At as f,B as p,Ct as m,Q as h,X as g,_,ct as v,d as y,et as b,g as x,h as S,ht as C,j as w,kt as T,lt as E,mt as D,n as O,t as k,tt as A,u as j}from"./BDUjyaF4.js";import{E as M,T as ee,k as N}from"./DtBu71ev.js";import{K as te,V as P,X as F,a as I,c as L,d as R,f as z,g as B,p as ne,s as V}from"./VLI2Zy4t.js";import{a as re}from"./BN_PdN3J.js";import{h as H}from"./D-Ca4BGY.js";import{c as U,f as W,l as ie,m as ae,o as G,p as oe,s as se,u as ce}from"./Cn3J3NXR.js";import{n as le,t as ue}from"./D95h62Jn.js";function K(e){return e!=null}var q=e=>{let{itemPrefixCls:t,component:n,span:r,labelStyle:i,contentStyle:a,bordered:o,label:s,content:c,colon:l}=e,u=n;return o?d(u,{class:[{[`${t}-item-label`]:K(s),[`${t}-item-content`]:K(c)}],colSpan:r},{default:()=>[K(s)&&d(`span`,{style:i},[s]),K(c)&&d(`span`,{style:a},[c])]}):d(u,{class:[`${t}-item`],colSpan:r},{default:()=>[d(`div`,{class:`${t}-item-container`},[(s||s===0)&&d(`span`,{class:[`${t}-item-label`,{[`${t}-item-no-colon`]:!l}],style:i},[s]),(c||c===0)&&d(`span`,{class:`${t}-item-content`,style:a},[c])])]})},de=e=>{let t=(e,t,n)=>{let{colon:r,prefixCls:i,bordered:a}=t,{component:o,type:s,showLabel:c,showContent:l,labelStyle:u,contentStyle:f}=n;return e.map((e,t)=>{var n;let p=e.props||{},{prefixCls:m=i,span:h=1,labelStyle:g=p[`label-style`],contentStyle:_=p[`content-style`],label:v=((n=e.children)?.label)?.call(n)}=p,y=D(e),b=E(e),x=C(e),{key:S}=e;return typeof o==`string`?d(q,{key:`${s}-${String(S)||t}`,class:b,style:x,labelStyle:T(T({},u),g),contentStyle:T(T({},f),_),span:h,colon:r,component:o,itemPrefixCls:m,bordered:a,label:c?v:null,content:l?y:null},null):[d(q,{key:`label-${String(S)||t}`,class:b,style:T(T(T({},u),x),g),span:1,colon:r,component:o[0],itemPrefixCls:m,bordered:a,label:v},null),d(q,{key:`content-${String(S)||t}`,class:b,style:T(T(T({},f),x),_),span:h*2-1,component:o[1],itemPrefixCls:m,bordered:a,content:y},null)]})},{prefixCls:r,vertical:i,row:o,index:s,bordered:c}=e,{labelStyle:u,contentStyle:f}=n(xe,{labelStyle:l({}),contentStyle:l({})});return i?d(a,null,[d(`tr`,{key:`label-${s}`,class:`${r}-row`},[t(o,e,{component:`th`,type:`label`,showLabel:!0,labelStyle:u.value,contentStyle:f.value})]),d(`tr`,{key:`content-${s}`,class:`${r}-row`},[t(o,e,{component:`td`,type:`content`,showContent:!0,labelStyle:u.value,contentStyle:f.value})])]):d(`tr`,{key:s,class:`${r}-row`},[t(o,e,{component:c?[`th`,`td`]:`td`,type:`item`,showLabel:!0,showContent:!0,labelStyle:u.value,contentStyle:f.value})])},fe=e=>{let{componentCls:t,descriptionsSmallPadding:n,descriptionsDefaultPadding:r,descriptionsMiddlePadding:i,descriptionsBg:a}=e;return{[`&${t}-bordered`]:{[`${t}-view`]:{border:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"> table":{tableLayout:`auto`,borderCollapse:`collapse`}},[`${t}-item-label, ${t}-item-content`]:{padding:r,borderInlineEnd:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"&:last-child":{borderInlineEnd:`none`}},[`${t}-item-label`]:{backgroundColor:a,"&::after":{display:`none`}},[`${t}-row`]:{borderBottom:`${e.lineWidth}px ${e.lineType} ${e.colorSplit}`,"&:last-child":{borderBottom:`none`}},[`&${t}-middle`]:{[`${t}-item-label, ${t}-item-content`]:{padding:i}},[`&${t}-small`]:{[`${t}-item-label, ${t}-item-content`]:{padding:n}}}}},pe=e=>{let{componentCls:t,descriptionsExtraColor:n,descriptionItemPaddingBottom:r,descriptionsItemLabelColonMarginRight:i,descriptionsItemLabelColonMarginLeft:a,descriptionsTitleMarginBottom:o}=e;return{[t]:T(T(T({},S(e)),fe(e)),{"&-rtl":{direction:`rtl`},[`${t}-header`]:{display:`flex`,alignItems:`center`,marginBottom:o},[`${t}-title`]:T(T({},_),{flex:`auto`,color:e.colorText,fontWeight:e.fontWeightStrong,fontSize:e.fontSizeLG,lineHeight:e.lineHeightLG}),[`${t}-extra`]:{marginInlineStart:`auto`,color:n,fontSize:e.fontSize},[`${t}-view`]:{width:`100%`,borderRadius:e.borderRadiusLG,table:{width:`100%`,tableLayout:`fixed`}},[`${t}-row`]:{"> th, > td":{paddingBottom:r},"&:last-child":{borderBottom:`none`}},[`${t}-item-label`]:{color:e.colorText,fontWeight:`normal`,fontSize:e.fontSize,lineHeight:e.lineHeight,textAlign:`start`,"&::after":{content:`":"`,position:`relative`,top:-.5,marginInline:`${a}px ${i}px`},[`&${t}-item-no-colon::after`]:{content:`""`}},[`${t}-item-no-label`]:{"&::after":{margin:0,content:`""`}},[`${t}-item-content`]:{display:`table-cell`,flex:1,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,wordBreak:`break-word`,overflowWrap:`break-word`},[`${t}-item`]:{paddingBottom:0,verticalAlign:`top`,"&-container":{display:`flex`,[`${t}-item-label`]:{display:`inline-flex`,alignItems:`baseline`},[`${t}-item-content`]:{display:`inline-flex`,alignItems:`baseline`}}},"&-middle":{[`${t}-row`]:{"> th, > td":{paddingBottom:e.paddingSM}}},"&-small":{[`${t}-row`]:{"> th, > td":{paddingBottom:e.paddingXS}}}})}},me=y(`Descriptions`,e=>{let t=e.colorFillAlter,n=e.fontSizeSM*e.lineHeightSM,r=e.colorText,i=`${e.paddingXS}px ${e.padding}px`,a=`${e.padding}px ${e.paddingLG}px`,o=`${e.paddingSM}px ${e.paddingLG}px`,s=e.padding,c=e.marginXS,l=e.marginXXS/2;return[pe(j(e,{descriptionsBg:t,descriptionsTitleMarginBottom:n,descriptionsExtraColor:r,descriptionItemPaddingBottom:s,descriptionsSmallPadding:i,descriptionsDefaultPadding:a,descriptionsMiddlePadding:o,descriptionsItemLabelColonMarginRight:c,descriptionsItemLabelColonMarginLeft:l}))]});k.any;var he=e({compatConfig:{MODE:3},name:`ADescriptionsItem`,props:{prefixCls:String,label:k.any,labelStyle:{type:Object,default:void 0},contentStyle:{type:Object,default:void 0},span:{type:Number,default:1}},setup(e,t){let{slots:n}=t;return()=>n.default?.call(n)}}),ge={xxxl:3,xxl:3,xl:3,lg:3,md:3,sm:2,xs:1};function _e(e,t){if(typeof e==`number`)return e;if(typeof e==`object`)for(let n=0;n<ue.length;n++){let r=ue[n];if(t[r]&&e[r]!==void 0)return e[r]||ge[r]}return 3}function ve(e,t,n){let r=e;return(n===void 0||n>t)&&(r=P(e,{span:t}),w(n===void 0,`Descriptions`,"Sum of column `span` in a line not match `column` of Descriptions.")),r}function ye(e,t){let n=v(e),r=[],i=[],a=t;return n.forEach((e,o)=>{let s=e.props?.span,c=s||1;if(o===n.length-1){i.push(ve(e,a,s)),r.push(i);return}c<a?(a-=c,i.push(e)):(i.push(ve(e,a,c)),r.push(i),a=t,i=[])}),r}var be=()=>({prefixCls:String,bordered:{type:Boolean,default:void 0},size:{type:String,default:`default`},title:k.any,extra:k.any,column:{type:[Number,Object],default:()=>ge},layout:String,colon:{type:Boolean,default:void 0},labelStyle:{type:Object,default:void 0},contentStyle:{type:Object,default:void 0}}),xe=Symbol(`descriptionsContext`),J=e({compatConfig:{MODE:3},name:`ADescriptions`,inheritAttrs:!1,props:be(),slots:Object,Item:he,setup(e,n){let{slots:a,attrs:o}=n,{prefixCls:c,direction:p}=O(`descriptions`,e),m,h=l({}),[g,_]=me(c),v=le();r(()=>{m=v.value.subscribe(t=>{typeof e.column==`object`&&(h.value=t)})}),t(()=>{v.value.unsubscribe(m)}),i(xe,{labelStyle:u(e,`labelStyle`),contentStyle:u(e,`contentStyle`)});let y=s(()=>_e(e.column,h.value));return()=>{let{size:t,bordered:n=!1,layout:r=`horizontal`,colon:i=!0,title:s=a.title?.call(a),extra:l=a.extra?.call(a)}=e,u=ye(a.default?.call(a),y.value);return g(d(`div`,f(f({},o),{},{class:[c.value,{[`${c.value}-${t}`]:t!=="default",[`${c.value}-bordered`]:!!n,[`${c.value}-rtl`]:p.value===`rtl`},o.class,_.value]}),[(s||l)&&d(`div`,{class:`${c.value}-header`},[s&&d(`div`,{class:`${c.value}-title`},[s]),l&&d(`div`,{class:`${c.value}-extra`},[l])]),d(`div`,{class:`${c.value}-view`},[d(`table`,null,[d(`tbody`,null,[u.map((e,t)=>d(de,{key:t,index:t,colon:i,prefixCls:c.value,vertical:r===`vertical`,bordered:n,row:e},null))])])])]))}}});J.install=function(e){return e.component(J.name,J),e.component(J.Item.name,J.Item),e};var Se={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z`}}]},name:`up`,theme:`outlined`};function Ce(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:Object(arguments[t]),r=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){we(e,t,n[t])})}return e}function we(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Y=function(e,t){var n=Ce({},e,t.attrs);return d(H,Ce({},n,{icon:Se}),null)};Y.displayName=`UpOutlined`,Y.inheritAttrs=!1;function Te(){return typeof BigInt==`function`}function X(e){let t=e.trim(),n=t.startsWith(`-`);n&&(t=t.slice(1)),t=t.replace(/(\.\d*[^0])0*$/,`$1`).replace(/\.0*$/,``).replace(/^0+/,``),t.startsWith(`.`)&&(t=`0${t}`);let r=t||`0`,i=r.split(`.`),a=i[0]||`0`,o=i[1]||`0`;a===`0`&&o===`0`&&(n=!1);let s=n?`-`:``;return{negative:n,negativeStr:s,trimStr:r,integerStr:a,decimalStr:o,fullStr:`${s}${r}`}}function Ee(e){let t=String(e);return!Number.isNaN(Number(t))&&t.includes(`e`)}function Z(e){let t=String(e);if(Ee(e)){let e=Number(t.slice(t.indexOf(`e-`)+2)),n=t.match(/\.(\d+)/);return n?.[1]&&(e+=n[1].length),e}return t.includes(`.`)&&Oe(t)?t.length-t.indexOf(`.`)-1:0}function De(e){let t=String(e);if(Ee(e)){if(e>2**53-1)return String(Te()?BigInt(e).toString():2**53-1);if(e<-(2**53-1))return String(Te()?BigInt(e).toString():-(2**53-1));t=e.toFixed(Z(t))}return X(t).fullStr}function Oe(e){return typeof e==`number`?!Number.isNaN(e):e?/^\s*-?\d+(\.\d+)?\s*$/.test(e)||/^\s*-?\d+\.\s*$/.test(e)||/^\s*-?\.\d+\s*$/.test(e):!1}function ke(e){return!e&&e!==0&&!Number.isNaN(e)||!String(e).trim()}var Ae=class e{constructor(e){if(this.origin=``,ke(e)){this.empty=!0;return}this.origin=String(e),this.number=Number(e)}negate(){return new e(-this.toNumber())}add(t){if(this.isInvalidate())return new e(t);let n=Number(t);if(Number.isNaN(n))return this;let r=this.number+n;if(r>2**53-1)return new e(2**53-1);if(r<-(2**53-1))return new e(-(2**53-1));let i=Math.max(Z(this.number),Z(n));return new e(r.toFixed(i))}isEmpty(){return this.empty}isNaN(){return Number.isNaN(this.number)}isInvalidate(){return this.isEmpty()||this.isNaN()}equals(e){return this.toNumber()===e?.toNumber()}lessEquals(e){return this.add(e.negate().toString()).toNumber()<=0}toNumber(){return this.number}toString(){return!(arguments.length>0&&arguments[0]!==void 0)||arguments[0]?this.isInvalidate()?``:De(this.number):this.origin}},je=class e{constructor(e){if(this.origin=``,ke(e)){this.empty=!0;return}if(this.origin=String(e),e===`-`||Number.isNaN(e)){this.nan=!0;return}let t=e;if(Ee(t)&&(t=Number(t)),t=typeof t==`string`?t:De(t),Oe(t)){let e=X(t);this.negative=e.negative;let n=e.trimStr.split(`.`);this.integer=BigInt(n[0]);let r=n[1]||`0`;this.decimal=BigInt(r),this.decimalLen=r.length}else this.nan=!0}getMark(){return this.negative?`-`:``}getIntegerStr(){return this.integer.toString()}getDecimalStr(){return this.decimal.toString().padStart(this.decimalLen,`0`)}alignDecimal(e){let t=`${this.getMark()}${this.getIntegerStr()}${this.getDecimalStr().padEnd(e,`0`)}`;return BigInt(t)}negate(){let t=new e(this.toString());return t.negative=!t.negative,t}add(t){if(this.isInvalidate())return new e(t);let n=new e(t);if(n.isInvalidate())return this;let r=Math.max(this.getDecimalStr().length,n.getDecimalStr().length),{negativeStr:i,trimStr:a}=X((this.alignDecimal(r)+n.alignDecimal(r)).toString()),o=`${i}${a.padStart(r+1,`0`)}`;return new e(`${o.slice(0,-r)}.${o.slice(-r)}`)}isEmpty(){return this.empty}isNaN(){return this.nan}isInvalidate(){return this.isEmpty()||this.isNaN()}equals(e){return this.toString()===e?.toString()}lessEquals(e){return this.add(e.negate().toString()).toNumber()<=0}toNumber(){return this.isNaN()?NaN:Number(this.toString())}toString(){return!(arguments.length>0&&arguments[0]!==void 0)||arguments[0]?this.isInvalidate()?``:X(`${this.getMark()}${this.getIntegerStr()}.${this.getDecimalStr()}`).fullStr:this.origin}};function Q(e){return Te()?new je(e):new Ae(e)}function Me(e,t,n){let r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(e===``)return``;let{negativeStr:i,integerStr:a,decimalStr:o}=X(e),s=`${t}${o}`,c=`${i}${a}`;if(n>=0){let a=Number(o[n]);return a>=5&&!r?Me(Q(e).add(`${i}0.${`0`.repeat(n)}${10-a}`).toString(),t,n,r):n===0?c:`${c}${t}${o.padEnd(n,`0`).slice(0,n)}`}return s===`.0`?c:`${c}${s}`}var Ne=200,Pe=600,Fe=e({compatConfig:{MODE:3},name:`StepHandler`,inheritAttrs:!1,props:{prefixCls:String,upDisabled:Boolean,downDisabled:Boolean,onStep:h()},slots:Object,setup(e,n){let{slots:r,emit:i}=n,a=l(),o=(e,t)=>{e.preventDefault(),i(`step`,t);function n(){i(`step`,t),a.value=setTimeout(n,Ne)}a.value=setTimeout(n,Pe)},s=()=>{clearTimeout(a.value)};return t(()=>{s()}),()=>{if(N())return null;let{prefixCls:t,upDisabled:n,downDisabled:i}=e,a=`${t}-handler`,c=m(a,`${a}-up`,{[`${a}-up-disabled`]:n}),l=m(a,`${a}-down`,{[`${a}-down-disabled`]:i}),u={unselectable:`on`,role:`button`,onMouseup:s,onMouseleave:s},{upNode:p,downNode:h}=r;return d(`div`,{class:`${a}-wrap`},[d(`span`,f(f({},u),{},{onMousedown:e=>{o(e,!0)},"aria-label":`Increase Value`,"aria-disabled":n,class:c}),[p?.()||d(`span`,{unselectable:`on`,class:`${t}-handler-up-inner`},null)]),d(`span`,f(f({},u),{},{onMousedown:e=>{o(e,!1)},"aria-label":`Decrease Value`,"aria-disabled":i,class:l}),[h?.()||d(`span`,{unselectable:`on`,class:`${t}-handler-down-inner`},null)])])}}});function Ie(e,t){let n=l(null);function r(){try{let{selectionStart:t,selectionEnd:r,value:i}=e.value,a=i.substring(0,t),o=i.substring(r);n.value={start:t,end:r,value:i,beforeTxt:a,afterTxt:o}}catch{}}function i(){if(e.value&&n.value&&t.value)try{let{value:t}=e.value,{beforeTxt:r,afterTxt:i,start:a}=n.value,o=t.length;if(t.endsWith(i))o=t.length-n.value.afterTxt.length;else if(t.startsWith(r))o=r.length;else{let e=r[a-1],n=t.indexOf(e,a-1);n!==-1&&(o=n+1)}e.value.setSelectionRange(o,o)}catch(e){`${e.message}`}}return[r,i]}var Le=(()=>{let e=c(0),n=()=>{F.cancel(e.value)};return t(()=>{n()}),t=>{n(),e.value=F(()=>{t()})}}),Re=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},ze=(e,t)=>e||t.isEmpty()?t.toString():t.toNumber(),Be=e=>{let t=Q(e);return t.isInvalidate()?null:t},Ve=()=>({stringMode:g(),defaultValue:b([String,Number]),value:b([String,Number]),prefixCls:A(),min:b([String,Number]),max:b([String,Number]),step:b([String,Number],1),tabindex:Number,controls:g(!0),readonly:g(),disabled:g(),autofocus:g(),keyboard:g(!0),parser:h(),formatter:h(),precision:Number,decimalSeparator:String,onInput:h(),onChange:h(),onPressEnter:h(),onStep:h(),onBlur:h(),onFocus:h()}),He=e({compatConfig:{MODE:3},name:`InnerInputNumber`,inheritAttrs:!1,props:T(T({},Ve()),{lazy:Boolean}),slots:Object,setup(e,t){let{attrs:n,slots:r,emit:i,expose:a}=t,l=c(),u=c(!1),p=c(!1),h=c(!1),g=c(Q(e.value));function _(t){e.value===void 0&&(g.value=t)}let v=(t,n)=>{if(!n)return e.precision>=0?e.precision:Math.max(Z(t),Z(e.step))},y=t=>{let n=String(t);if(e.parser)return e.parser(n);let r=n;return e.decimalSeparator&&(r=r.replace(e.decimalSeparator,`.`)),r.replace(/[^\w.-]+/g,``)},b=c(``),x=(t,n)=>{if(e.formatter)return e.formatter(t,{userTyping:n,input:String(b.value)});let r=typeof t==`number`?De(t):t;if(!n){let t=v(r,n);if(Oe(r)&&(e.decimalSeparator||t>=0)){let n=e.decimalSeparator||`.`;r=Me(r,n,t)}}return r};b.value=(()=>{let t=e.value;return g.value.isInvalidate()&&[`string`,`number`].includes(typeof t)?Number.isNaN(t)?``:t:x(g.value.toString(),!1)})();function S(e,t){b.value=x(e.isInvalidate()?e.toString(!1):e.toString(!t),t)}let C=s(()=>Be(e.max)),w=s(()=>Be(e.min)),E=s(()=>!C.value||!g.value||g.value.isInvalidate()?!1:C.value.lessEquals(g.value)),D=s(()=>!w.value||!g.value||g.value.isInvalidate()?!1:g.value.lessEquals(w.value)),[O,k]=Ie(l,u),A=e=>C.value&&!e.lessEquals(C.value)?C.value:w.value&&!w.value.lessEquals(e)?w.value:null,j=e=>!A(e),M=(t,n)=>{var r;let i=t,a=j(i)||i.isEmpty();if(!i.isEmpty()&&!n&&(i=A(i)||i,a=!0),!e.readonly&&!e.disabled&&a){let t=i.toString(),a=v(t,n);return a>=0&&(i=Q(Me(t,`.`,a))),i.equals(g.value)||(_(i),(r=e.onChange)==null||r.call(e,i.isEmpty()?null:ze(e.stringMode,i)),e.value===void 0&&S(i,n)),i}return g.value},ee=Le(),N=t=>{var n;if(O(),b.value=t,!h.value){let e=Q(y(t));e.isNaN()||M(e,!0)}(n=e.onInput)==null||n.call(e,t),ee(()=>{let n=t;e.parser||(n=t.replace(/。/g,`.`)),n!==t&&N(n)})},te=()=>{h.value=!0},P=()=>{h.value=!1,N(l.value.value)},F=e=>{N(e.target.value)},I=t=>{var n,r;if(t&&E.value||!t&&D.value)return;p.value=!1;let i=Q(e.step);t||(i=i.negate());let a=(g.value||Q(0)).add(i.toString()),o=M(a,!1);(n=e.onStep)==null||n.call(e,ze(e.stringMode,o),{offset:e.step,type:t?`up`:`down`}),(r=l.value)==null||r.focus()},L=t=>{let n=Q(y(b.value)),r=n;r=n.isNaN()?g.value:M(n,t),e.value===void 0?r.isNaN()||S(r,!1):S(g.value,!1)},R=()=>{p.value=!0},z=t=>{var n;let{which:r}=t;p.value=!0,r===B.ENTER&&(h.value||(p.value=!1),L(!1),(n=e.onPressEnter)==null||n.call(e,t)),e.keyboard!==!1&&!h.value&&[B.UP,B.DOWN].includes(r)&&(I(B.UP===r),t.preventDefault())},ne=()=>{p.value=!1},V=e=>{L(!1),u.value=!1,p.value=!1,i(`blur`,e)};return o(()=>e.precision,()=>{g.value.isInvalidate()||S(g.value,!1)},{flush:`post`}),o(()=>e.value,()=>{let t=Q(e.value);g.value=t;let n=Q(y(b.value));(!t.equals(n)||!p.value||e.formatter)&&S(t,p.value)},{flush:`post`}),o(b,()=>{e.formatter&&k()},{flush:`post`}),o(()=>e.disabled,e=>{e&&(u.value=!1)}),a({focus:()=>{var e;(e=l.value)==null||e.focus()},blur:()=>{var e;(e=l.value)==null||e.blur()}}),()=>{let t=T(T({},n),e),{prefixCls:a=`rc-input-number`,min:o,max:s,step:c=1,defaultValue:p,value:h,disabled:_,readonly:v,keyboard:y,controls:x=!0,autofocus:S,stringMode:C,parser:w,formatter:O,precision:k,decimalSeparator:A,onChange:M,onInput:ee,onPressEnter:N,onStep:L,lazy:B,class:re,style:H}=t,U=Re(t,[`prefixCls`,`min`,`max`,`step`,`defaultValue`,`value`,`disabled`,`readonly`,`keyboard`,`controls`,`autofocus`,`stringMode`,`parser`,`formatter`,`precision`,`decimalSeparator`,`onChange`,`onInput`,`onPressEnter`,`onStep`,`lazy`,`class`,`style`]),{upHandler:W,downHandler:ie}=r,ae=`${a}-input`,G={};return B?G.onChange=F:G.onInput=F,d(`div`,{class:m(a,re,{[`${a}-focused`]:u.value,[`${a}-disabled`]:_,[`${a}-readonly`]:v,[`${a}-not-a-number`]:g.value.isNaN(),[`${a}-out-of-range`]:!g.value.isInvalidate()&&!j(g.value)}),style:H,onKeydown:z,onKeyup:ne},[x&&d(Fe,{prefixCls:a,upDisabled:E.value,downDisabled:D.value,onStep:I},{upNode:W,downNode:ie}),d(`div`,{class:`${ae}-wrap`},[d(`input`,f(f(f({autofocus:S,autocomplete:`off`,role:`spinbutton`,"aria-valuemin":o,"aria-valuemax":s,"aria-valuenow":g.value.isInvalidate()?null:g.value.toString(),step:c},U),{},{ref:l,class:ae,value:b.value,disabled:_,readonly:v,onFocus:e=>{u.value=!0,i(`focus`,e)}},G),{},{onBlur:V,onCompositionstart:te,onCompositionend:P,onBeforeinput:R}),null)])])}}});function Ue(e){return e!=null}var We=e=>{let{componentCls:t,lineWidth:n,lineType:r,colorBorder:i,borderRadius:a,fontSizeLG:o,controlHeightLG:s,controlHeightSM:c,colorError:l,inputPaddingHorizontalSM:u,colorTextDescription:d,motionDurationMid:f,colorPrimary:p,controlHeight:m,inputPaddingHorizontal:h,colorBgContainer:g,colorTextDisabled:_,borderRadiusSM:v,borderRadiusLG:y,controlWidth:b,handleVisible:C}=e;return[{[t]:T(T(T(T({},S(e)),se(e)),oe(e,t)),{display:`inline-block`,width:b,margin:0,padding:0,border:`${n}px ${r} ${i}`,borderRadius:a,"&-rtl":{direction:`rtl`,[`${t}-input`]:{direction:`rtl`}},"&-lg":{padding:0,fontSize:o,borderRadius:y,[`input${t}-input`]:{height:s-2*n}},"&-sm":{padding:0,borderRadius:v,[`input${t}-input`]:{height:c-2*n,padding:`0 ${u}px`}},"&:hover":T({},ie(e)),"&-focused":T({},G(e)),"&-disabled":T(T({},U(e)),{[`${t}-input`]:{cursor:`not-allowed`}}),"&-out-of-range":{input:{color:l}},"&-group":T(T(T({},S(e)),ce(e)),{"&-wrapper":{display:`inline-block`,textAlign:`start`,verticalAlign:`top`,[`${t}-affix-wrapper`]:{width:`100%`},"&-lg":{[`${t}-group-addon`]:{borderRadius:y}},"&-sm":{[`${t}-group-addon`]:{borderRadius:v}}}}),[t]:{"&-input":T(T({width:`100%`,height:m-2*n,padding:`0 ${h}px`,textAlign:`start`,backgroundColor:`transparent`,border:0,borderRadius:a,outline:0,transition:`all ${f} linear`,appearance:`textfield`,color:e.colorText,fontSize:`inherit`,verticalAlign:`top`},W(e.colorTextPlaceholder)),{'&[type="number"]::-webkit-inner-spin-button, &[type="number"]::-webkit-outer-spin-button':{margin:0,webkitAppearance:`none`,appearance:`none`}})}})},{[t]:{[`&:hover ${t}-handler-wrap, &-focused ${t}-handler-wrap`]:{opacity:1},[`${t}-handler-wrap`]:{position:`absolute`,insetBlockStart:0,insetInlineEnd:0,width:e.handleWidth,height:`100%`,background:g,borderStartStartRadius:0,borderStartEndRadius:a,borderEndEndRadius:a,borderEndStartRadius:0,opacity:+(C===!0),display:`flex`,flexDirection:`column`,alignItems:`stretch`,transition:`opacity ${f} linear ${f}`,[`${t}-handler`]:{display:`flex`,alignItems:`center`,justifyContent:`center`,flex:`auto`,height:`40%`,[`
2
2
  ${t}-handler-up-inner,
3
3
  ${t}-handler-down-inner
4
4
  `]:{marginInlineEnd:0,fontSize:e.handleFontSize}}},[`${t}-handler`]:{height:`50%`,overflow:`hidden`,color:d,fontWeight:`bold`,lineHeight:0,textAlign:`center`,cursor:`pointer`,borderInlineStart:`${n}px ${r} ${i}`,transition:`all ${f} linear`,"&:active":{background:e.colorFillAlter},"&:hover":{height:`60%`,[`
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BUcmySDa2.js","./BBrRELH32.js","./CWKEp1wx2.js","./BFjGV-RV2.js","./RYFtK4qZ2.js","./BGkumHZ32.js"])))=>i.map(i=>d[i]);
2
+ import{G as e,I as t,K as n,U as r,W as i,q as a}from"./rqZ-1SoP.js";import{C as o,F as s,G as c,H as l,Ht as u,M as d,St as f,Ut as p,Wt as m,a as h,b as g,bt as _,dt as v,et as y,f as b,ft as x,g as S,gt as C,h as w,it as T,lt as E,m as ee,mt as D,nt as te,ot as ne,p as O,pt as re,rt as k,t as A,vt as j,w as M,x as ie,y as ae,z as oe}from"./BSCpFtzG.js";import{t as se}from"./HclGiUj8.js";import{n as ce}from"./BeIfu4N3.js";import{t as le}from"./DXRZPxGs.js";import{t as ue}from"./BcrN7QEl2.js";import{t as de}from"./BZGNTgTQ2.js";import{t as fe}from"./BBrRELH32.js";import{C as pe,L as me,N,O as he,St as P,_ as ge,b as _e,c as ve,dt as ye,et as be,v as xe,y as Se,z as F}from"./BFjGV-RV2.js";import{t as Ce}from"./C4OAdbVK2.js";import{t as I}from"./G0qIw7Gq2.js";import{n as we,t as Te}from"./arUY5dyq2.js";import{t as Ee}from"./36oeS8_R2.js";import{t as De}from"./DAR70Lf52.js";import{r as Oe,t as ke}from"./C1CSiSBN.js";import{t as Ae}from"./X6IraCTB.js";import{n as L}from"./DeYsUzhr.js";var je=`__characterAssets`;function Me(e){return{id:e.id,name:e.name,file:e.file,frames:e.sheet?.frames??4,frameWidth:e.sheet?.frameWidth??48,frameHeight:e.sheet?.frameHeight??88,kind:e.kind===`glb`?`glb`:e.kind===`dev`?`dev`:`sheet`,builtin:e.author===`system`,applied:(e.appliedTo?.length??0)>0}}function R(){let e=[],t=[{id:`knight`,name:`灰羽骑士`,file:`/assets/game/character/knight.png`,frames:4,frameWidth:48,frameHeight:88,kind:`sheet`,builtin:!0,applied:!1},{id:`mage`,name:`紫晶法师`,file:`/assets/game/character/mage.png`,frames:4,frameWidth:48,frameHeight:88,kind:`sheet`,builtin:!0,applied:!1},{id:`bot`,name:`青枢机械`,file:`/assets/game/character/bot.png`,frames:4,frameWidth:48,frameHeight:88,kind:`sheet`,builtin:!0,applied:!1},{id:`hero-3d`,name:`标准员工模型`,file:`/assets/game/character/hero-3d.glb`,frames:1,frameWidth:0,frameHeight:0,kind:`glb`,builtin:!0,applied:!1,hint:`默认员工 3D 模型`},{id:`device-3d`,name:`工业泵设备`,file:`/assets/game/character/device-3d.glb`,frames:1,frameWidth:0,frameHeight:0,kind:`dev`,builtin:!0,applied:!1,hint:`数字孪生实体模型(拖入场景生成设备)`}],n=[];try{let e=Object.assign({});for(let[t,r]of Object.entries(e)){let e=t.split(`/`).pop()??``,i=`dev-folder-`+e.replace(/\.glb$/i,``),a=r.replace(/^\/public\//,`/`);n.push({id:i,name:e.replace(/\.glb$/i,``).replace(/[-_]/g,` `),file:a,frames:1,frameWidth:0,frameHeight:0,kind:`dev`,builtin:!0,applied:!1,hint:`设备实体(拖入场景生成数字孪生)`})}}catch{}let r=(e=!0)=>{let t=typeof document<`u`?document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``:``,n={},r=t||``;return r&&(n.authorization=`Bearer ${decodeURIComponent(r)}`),e&&(n[`content-type`]=`application/json`),n},i=x({models:e,loaded:!1,loading:!1,error:``,async load(){if(!(i.loading||i.loaded)){i.loading=!0;try{let[e,a]=await Promise.allSettled([fetch(`/api/workshop/assets/character`,{headers:r()}),fetch(`/api/workshop/assets/devices`,{headers:r()})]),o=e.status===`fulfilled`?await e.value.json().catch(()=>({})):{},s=a.status===`fulfilled`?await a.value.json().catch(()=>({})):{},c=o?.data?.assets??[],l=(s?.data?.devices??[]).map(e=>({id:e.id,name:e.name,file:e.file,frames:1,frameWidth:0,frameHeight:0,kind:`dev`,builtin:!0,applied:!1,hint:`设备实体(拖入场景生成数字孪生)`,hFactor:typeof e.defaultScale==`number`&&e.defaultScale>0?e.defaultScale:1})),u=new Set(t.map(e=>e.file)),d=(s?.data?.characters??[]).filter(e=>!u.has(e.file)).map(e=>({id:e.id,name:e.name,file:e.file,frames:1,frameWidth:0,frameHeight:0,kind:`glb`,builtin:!0,applied:!1,hint:`角色 3D 模型(在频道成员管理中设置)`})),f=[],p=new Set;for(let e of c)f.push(Me(e)),p.add(e.id);for(let e of l)p.has(e.id)||(f.push(e),p.add(e.id));for(let e of d)p.has(e.id)||(f.push(e),p.add(e.id));for(let e of t)p.has(e.id)||f.push(e);for(let e of n)p.has(e.id)||f.push(e);i.models.splice(0,i.models.length,...f),i.loaded=!0,i.error=``}catch(e){i.loaded=!1,i.error=I(e)}finally{i.loading=!1}}},byId(t){return e.find(e=>e.id===t)},async upload(e,t){let n=new FormData;n.append(`file`,e),n.append(`name`,t.name??e.name.replace(/\.[^.]+$/,``)),n.append(`workspaceId`,t.workspaceId??``),n.append(`kind`,t.kind??`sheet`),n.append(`frameWidth`,String(t.frameWidth??48)),n.append(`frameHeight`,String(t.frameHeight??88)),n.append(`frames`,String(t.frames??4));let a=await fetch(`/api/workshop/assets/character`,{method:`POST`,headers:r(!1),body:n}),o=await a.json().catch(()=>({}));if(!a.ok||!o?.data?.asset)throw Error(o?.message??`上传失败`);return i.loaded=!1,await i.load(),Me(o.data.asset)},async remove(e){let t=await fetch(`/api/workshop/assets/character/${e}`,{method:`DELETE`,headers:r()}),n=await t.json().catch(()=>({}));if(!t.ok)throw Error(n?.message??`删除失败`);return i.loaded=!1,await i.load(),{used:n?.data?.used??0}},async uploadDevice(e,t){let n=new FormData;n.append(`file`,e),t&&n.append(`name`,t);let a=await fetch(`/api/workshop/assets/devices`,{method:`POST`,headers:r(!1),body:n}),o=await a.json().catch(()=>({}));if(!a.ok||!o?.data?.asset)throw Error(o?.message??`设备模型上传失败`);i.loaded=!1,await i.load();let s=o.data.asset;return{id:s.id,name:s.name,file:s.file,frames:1,frameWidth:0,frameHeight:0,kind:`dev`,builtin:!1,applied:!1,hint:`设备实体(拖入场景生成数字孪生)`}},async removeDevice(e){let t=e.replace(/^dev-folder-/,``),n=await fetch(`/api/workshop/assets/devices/${encodeURIComponent(t)}`,{method:`DELETE`,headers:r()}),a=await n.json().catch(()=>({}));if(!n.ok)throw Error(a?.message??`设备模型删除失败`);i.loaded=!1,await i.load()},async bind(e,t,n){let i=await fetch(`/api/workshop/channels/${e}/agents/${t}/model`,{method:`PATCH`,headers:r(),body:JSON.stringify({modelRef:n})}),a=await i.json().catch(()=>({}));if(!i.ok)throw Error(a?.message??`绑定失败`)}});return i}function Ne(){let e=globalThis;e[je]||(e[je]=R());let t=e[je];return t.load(),t}var Pe={key:0,class:`mp-loading`},z={key:1,class:`mp-failed`},Fe=Object.assign(A(o({__name:`ModelPreview3D`,props:{file:{default:``},localFile:{default:null},height:{default:64}},setup(e){let t=e,n=D(null),r=D(!1),i=D(!1),a=globalThis,o=``;function c(){if(a.__modelPreviewRig)return a.__modelPreviewRig;let e=new _e({alpha:!0,antialias:!1,powerPreference:`low-power`});e.setPixelRatio(Math.min(window.devicePixelRatio,1.5)),e.toneMapping=4,e.toneMappingExposure=1.15;let t={renderer:e,slots:new Set,raf:0,clock:new he},n=()=>{t.raf=requestAnimationFrame(n);let e=t.clock.getDelta();for(let n of t.slots)!n.canvas.isConnected&&n.canvas.width===0||(n.group&&(n.group.rotation.y+=e*n.speed),t.renderer.setSize(n.w,n.h,!1),t.renderer.render(n.scene,n.camera),n.ctx.clearRect(0,0,n.w,n.h),n.ctx.drawImage(t.renderer.domElement,0,0,n.w,n.h))};return n(),a.__modelPreviewRig=t,t}function u(){let e=a.__modelPreviewRig;!e||e.slots.size>0||(cancelAnimationFrame(e.raf),e.renderer.dispose(),e.renderer.domElement.remove(),delete a.__modelPreviewRig)}function m(e){try{let t=new Se(a.__modelPreviewRig.renderer);e.environment=t.fromScene(new ge,.04).texture,e.environmentIntensity=.55,t.dispose()}catch{}e.add(new F(14674431,3813157,1.3));let t=new N(16773855,2.2);t.position.set(3,4,2),e.add(t);let n=new N(4311284,1);n.position.set(-3,1,-2.5),e.add(n)}function h(e){let t=new pe().setFromObject(e),n=new P;t.getSize(n);let r=t.getCenter(new P),i=2/(Math.max(n.x,Math.max(n.y,n.z))||1);e.scale.setScalar(i),e.position.set(-r.x*i,-r.y*i,-r.z*i)}let g=null;function _(e){if(!n.value||r.value)return;let a=n.value,o=a.clientWidth||120,s=t.height||64,l=c(),u=document.createElement(`canvas`);u.style.width=`100%`,u.style.height=`${s}px`,u.width=Math.max(2,Math.round(o*Math.min(window.devicePixelRatio,1.5))),u.height=Math.max(2,Math.round(s*Math.min(window.devicePixelRatio,1.5)));let d=u.getContext(`2d`);if(!d){r.value=!0;return}a.appendChild(u);let f=new ye;m(f);let p=new be(38,o/s,.1,100);p.position.set(2.4,1.8,3.1),p.lookAt(0,0,0);let _=new me;f.add(_),g={canvas:u,ctx:d,scene:f,camera:p,group:_,w:u.width,h:u.height,speed:.6},l.slots.add(g),i.value=!0,new xe().load(e,e=>{let t=e.scene;g&&(t.traverse(e=>{let t=e;t.isMesh&&(t.castShadow=!1,t.receiveShadow=!1)}),h(t),g.group.add(t),i.value=!1)},void 0,()=>{i.value=!1,r.value=!0})}function v(){o&&URL.revokeObjectURL(o),o=``,g&&(a.__modelPreviewRig?.slots.delete(g),g.scene.traverse(e=>{let t=e;if(t.isMesh){t.geometry?.dispose();let e=Array.isArray(t.material)?t.material:[t.material];for(let t of e){for(let e of Object.keys(t)){let n=t[e];n&&n.isTexture&&n.dispose()}t?.dispose()}}}),g.canvas.remove(),g=null,u())}function b(){if(r.value=!1,t.localFile){o=URL.createObjectURL(t.localFile),_(o);return}t.file&&_(t.file)}return oe(b),y(()=>[t.file,t.localFile],()=>{v(),(t.localFile??(t.file?t.file:null))&&d(()=>b())}),s(v),(t,a)=>(l(),S(`div`,{ref_key:`hostRef`,ref:n,class:`model-preview-3d`,style:p({height:`${e.height}px`})},[f(i)?(l(),S(`div`,Pe,[...a[0]||=[O(`span`,{class:`mp-spin`},null,-1)]])):f(r)?(l(),S(`div`,z,` PREVIEW NA `)):w(``,!0)],4))}}),[[`__scopeId`,`data-v-b29ffdbe`]]),{__name:`WorkshopTownModelPreview3D`}),Ie={class:`asset-lib`},Le={class:`lib-head`},Re={class:`head-title`},ze={class:`head-hint`},Be={class:`upload-row`},Ve={class:`upload-name`},He={key:0,class:`drop-hint`},Ue={key:1,class:`upload-file-tag`},We={class:`upload-actions`},Ge=[`disabled`],Ke=[`disabled`],B={key:2,class:`mini-err`},V={key:3,class:`mini-err`},qe={class:`lib-grid`},Je=[`data-model-id`,`title`,`onDragstart`],Ye={key:1,class:`model-img glb dev`},Xe={class:`model-name`},Ze={class:`model-badge`},Qe={class:`card-actions`},$e=[`disabled`,`onClick`],et={key:0,class:`lib-note`},tt={key:1,class:`lib-note`},nt={key:0,class:`mini-msg`},rt=Object.assign(A(o({__name:`AssetLibrary`,setup(e){let{t}=ce(),n=Ne(),r=b(()=>n.models.filter(e=>e.kind===`dev`)),i=e=>/\.(glb|gltf)$/i.test(e);function o(e,t){e.dataTransfer&&(e.dataTransfer.setData(`application/x-aw-model`,t),e.dataTransfer.setData(`text/plain`,t),e.dataTransfer.effectAllowed=`copy`)}let s=D(!1),d=D(``),p=D(null),_=D(!1),v=e=>{let t=e.target;x(t.files?.[0]??null)},y=e=>{_.value=!1,x(e.dataTransfer?.files?.[0]??null)},x=e=>{if(e&&!/\.(glb|gltf|obj|fbx)$/i.test(e.name)){d.value=`仅支持 .glb/.gltf/.obj/.fbx 模型文件`;return}p.value=e,d.value=``},C=()=>{p.value=null};async function T(){let e=p.value;if(!e){d.value=t(`assetLibrary.kcjqcaw012`);return}s.value=!0,d.value=``;try{let r=await n.uploadDevice(e);p.value=null,d.value=t(`assetLibrary.k8nv3or016`,{p0:r.name})}catch(e){d.value=I(e)}finally{s.value=!1}}let E=D(``),te=D(``);async function ne(e){E.value=e,te.value=``;try{await n.removeDevice(e),te.value=t(`assetLibrary.k8n918k013`)}catch(e){te.value=I(e)}finally{E.value=``}}return(e,t)=>(l(),S(`aside`,Ie,[O(`div`,Le,[O(`span`,Re,m(e.$t(`assetLibrary.k7la4x5001`)),1),O(`span`,ze,m(e.$t(`assetLibrary.kulif5b002`)),1)]),O(`div`,{class:u([`upload-box`,{drop:f(_)}]),onDragover:t[0]||=a(e=>_.value=!0,[`prevent`]),onDragleave:t[1]||=e=>_.value=!1,onDrop:a(y,[`prevent`])},[O(`label`,Be,[O(`input`,{type:`file`,accept:`.glb,.gltf,.obj,.fbx`,class:`file-input`,onChange:v},null,32),O(`span`,Ve,[t[2]||=O(`span`,{class:`i-tabler-plus upload-ico`},null,-1),g(` `+m(f(p)?.name||e.$t(`assetLibrary.k1iiort6010`)),1)])]),f(_)?(l(),S(`span`,He,[t[3]||=O(`span`,{class:`i-tabler-download`},null,-1),g(` `+m(e.$t(`assetLibrary.k5hg6jq003`)),1)])):w(``,!0),f(p)?(l(),S(h,{key:1},[i(f(p).name)?(l(),ee(Fe,{key:0,"local-file":f(p),height:92},null,8,[`local-file`])):(l(),S(`span`,Ue,m(f(p).name)+` (`+m(e.$t(`assetLibrary.k1xz5wvk009`)),1)),O(`div`,We,[O(`button`,{class:`upload-btn go`,disabled:f(s),onClick:T},m(f(s)?e.$t(`assetLibrary.k1ar7n8i005`):e.$t(`assetLibrary.k1hhga4h014`)),9,Ge),O(`button`,{class:`upload-btn`,disabled:f(s),onClick:C},m(e.$t(`assetLibrary.k3xdnn004`)),9,Ke)])],64)):f(s)?(l(),S(`span`,B,m(e.$t(`assetLibrary.k1ar7n8i005`)),1)):w(``,!0),f(d)&&!f(p)?(l(),S(`span`,V,m(f(d)),1)):w(``,!0)],34),O(`div`,qe,[(l(!0),S(h,null,c(f(r),n=>(l(),S(`div`,{key:n.id,class:`model-card`,"data-model-id":n.id,draggable:`true`,title:n.hint||e.$t(`assetLibrary.katn7lo015`,{p0:n.name}),onDragstart:e=>o(e,n.id)},[i(n.file)?(l(),ee(Fe,{key:0,file:n.file,height:76},null,8,[`file`])):(l(),S(`span`,Ye,[...t[4]||=[O(`span`,{class:`i-tabler-cpu glb-cube`,"aria-hidden":`true`},null,-1)]])),O(`span`,Xe,m(n.name),1),O(`span`,Ze,m(e.$t(`assetLibrary.k1n32zs0006`)),1),O(`div`,Qe,[n.file.includes(`/assets/game/devices/`)?(l(),S(`button`,{key:0,class:`card-btn danger`,disabled:f(E)===n.id,onClick:e=>ne(n.id)},m(f(E)===n.id?`…`:e.$t(`assetLibrary.k498l011`)),9,$e)):w(``,!0)])],40,Je))),128)),f(n).loaded?f(r).length===0?(l(),S(`div`,tt,m(e.$t(`assetLibrary.k15527e1008`)),1)):w(``,!0):(l(),S(`div`,et,[t[5]||=O(`span`,{class:`loading-dot`},null,-1),g(` `+m(e.$t(`assetLibrary.k1kq2tmi007`)),1)]))]),f(te)?(l(),S(`span`,nt,m(f(te)),1)):w(``,!0)]))}}),[[`__scopeId`,`data-v-effff4e2`]]),{__name:`WorkshopAssetLibrary`}),H={class:`twin-panel`},U={class:`twin-head`},it={class:`twin-kicker`},at={class:`twin-count`},ot={key:0,class:`twin-error`},st={key:1,class:`twin-empty`},ct={key:2,class:`twin-empty`},lt={class:`twin-empty-frame`},ut={class:`twin-empty-title`},dt={class:`twin-empty-sub`},ft={key:3,class:`twin-list`},pt=[`onClick`],mt={class:`twin-row`},ht={class:`twin-model-tag`},gt={class:`twin-idbar`},_t={class:`twin-name`},vt={class:`twin-code`},yt=[`disabled`,`title`,`onClick`],bt={key:0,class:`twin-tele`},xt={key:1,class:`twin-daq`},St={key:2,class:`twin-dcw`},Ct={class:`dcw-head`},W={key:0,class:`dcw-src`},wt={class:`dcw-set`},Tt=[`title`],Et={key:0,class:`dcw-act-at`},Dt={class:`dcw-win`},Ot=[`title`],kt={class:`dcw-ctrl`},At=[`onUpdate:modelValue`,`step`,`min`,`max`,`placeholder`,`onKeydown`],jt=[`disabled`,`title`,`onClick`],Mt={key:1,class:`dcw-err`},Nt={key:4,class:`twin-err`},Pt=Object.assign(A(o({__name:`DeviceTwinPanel`,props:{daqLive:{},dcwLive:{}},emits:[`focus-device`],setup(e){let{t}=ce(),r=Ae(),o=De(),d=e=>e.kind===`daq`||(e.modelRef??``).startsWith(`daq-`),_=null;oe(()=>{r.load(),_=le(()=>void r.load(),2e3)}),s(()=>{_&&clearInterval(_)});let v=D(``),y=D(``),b=D(``),C=null;async function T(e){if(b.value!==e.id){b.value=e.id,C&&clearTimeout(C),C=setTimeout(()=>{b.value=``},3e3);return}C&&clearTimeout(C),b.value=``,v.value=e.id,y.value=``;try{await r.remove(e.id)}catch(e){y.value=I(e)}finally{v.value=``}}let E={idle:`var(--hud-amber)`,running:`var(--hud-ok)`,alarm:`var(--hud-danger)`,offline:`var(--hud-dim)`},ee={idle:`STANDBY`,running:`RUNNING`,alarm:`ALARM`,offline:`OFFLINE`},te=e=>e.replace(/[^A-Za-z0-9]/g,``).slice(0,4).toUpperCase()||`DEV`,ne=e=>e.replace(/^dev-/,``).replace(/[^a-z0-9]/gi,``).slice(-6).toUpperCase(),re=e=>typeof e==`number`?(Math.round(e*100)/100).toString():String(e),A=e=>`${Number.isFinite(e.lo)?e.lo:`-∞`} ~ ${Number.isFinite(e.hi)?e.hi:`+∞`} ${e.unit}`,j=x({}),M=x({}),ie=D(``);function ae(e){let n=j[e.id];if(n==null||n===``)return;let r=Number(n);if(r<e.lo||r>e.hi){M[e.id]=t(`deviceTwinPanel.kxddket010`,{p0:e.src===`recipe`?t(`deviceTwinPanel.kq2jssk008`):t(`deviceTwinPanel.k1iwj796009`),p1:A(e)});return}M[e.id]=``,ie.value=e.id,o.write(e.id,r).then(t=>{t.ok||(M[e.id]=t.message)}).catch(t=>{M[e.id]=I(t)}).finally(()=>{ie.value=``})}return(t,o)=>(l(),S(`aside`,H,[O(`div`,U,[O(`span`,it,m(t.$t(`deviceTwinPanel.k7k6evr002`)),1),O(`span`,at,m(f(r).twins.length),1)]),f(r).error?(l(),S(`div`,ot,m(f(r).error),1)):w(``,!0),f(r).loaded?f(r).twins.length===0?(l(),S(`div`,ct,[O(`div`,lt,[O(`div`,ut,m(t.$t(`deviceTwinPanel.k13y2qmg004`)),1),O(`div`,dt,m(t.$t(`deviceTwinPanel.kotf23l005`)),1)])])):(l(),S(`div`,ft,[(l(!0),S(h,null,c(f(r).twins,r=>(l(),S(`button`,{key:r.id,class:u([`twin-card`,{daq:d(r)}]),type:`button`,onClick:e=>t.$emit(`focus-device`,r)},[O(`div`,mt,[O(`span`,ht,m(te(r.modelRef||r.name)),1),O(`div`,gt,[O(`span`,_t,m(r.name),1),O(`span`,vt,m(d(r)?`DAQ`:ne(r.id)),1)]),O(`button`,{class:u([`twin-del`,{armed:f(b)===r.id}]),disabled:f(v)===r.id,title:f(b)===r.id?`再次点击确认删除该设备实例`:`删除该设备实例`,onClick:a(e=>T(r),[`stop`])},m(f(b)===r.id?t.$t(`deviceTwinPanel.k44653007`):`✕`),11,yt),O(`span`,{class:u([`twin-state`,`s-${r.state}`])},[O(`i`,{class:`twin-state-dot`,style:p({background:E[r.state]||`var(--hud-dim)`})},null,4),g(` `+m(ee[r.state]||r.state),1)],2)]),Object.keys(r.telemetry).length?(l(),S(`div`,bt,[(l(!0),S(h,null,c(r.telemetry,(e,t)=>(l(),S(`span`,{key:t,class:`tele-item`},[O(`em`,null,m(t),1),O(`b`,null,m(re(e)),1)]))),128))])):w(``,!0),e.daqLive?.[r.id]?.length?(l(),S(`div`,xt,[(l(!0),S(h,null,c(e.daqLive[r.id],(e,t)=>(l(),S(`span`,{key:`${e.ch}-${t}`,class:u([`daq-item`,{alarm:e.alarm}])},[O(`em`,null,m(e.ch),1),O(`b`,null,[g(m(e.value),1),O(`i`,null,m(e.unit),1)])],2))),128))])):w(``,!0),e.dcwLive?.[r.id]?.length?(l(),S(`div`,St,[(l(!0),S(h,null,c(e.dcwLive[r.id],e=>(l(),S(`div`,{key:e.id,class:`dcw-item`},[O(`div`,Ct,[O(`em`,null,[g(m(e.ch),1),e.src===`recipe`?(l(),S(`i`,W,m(t.$t(`deviceTwinPanel.k48grv006`)),1)):w(``,!0)]),O(`b`,wt,[g(m(e.value==null?`--`:e.value.toFixed(e.decimals)),1),O(`i`,null,m(e.unit),1)])]),e.readValue!=null||e.lastReadAt?(l(),S(`div`,{key:0,class:`dcw-act`,title:t.$t(`deviceTwinPanel.k9r7d4e030`)},[o[0]||=O(`em`,null,`ACT`,-1),O(`b`,null,[g(m(e.readValue==null?`--`:e.readValue.toFixed(e.decimals)),1),O(`i`,null,m(e.unit),1)]),e.lastReadAt?(l(),S(`i`,Et,m(e.lastReadAt.slice(11,19)),1)):w(``,!0)],8,Tt)):w(``,!0),O(`div`,Dt,[O(`span`,{title:e.src===`recipe`?`当前运行配方工艺窗口`:`节点全局量程`},m(A(e)),9,Ot)]),O(`div`,kt,[k(O(`input`,{"onUpdate:modelValue":t=>f(j)[e.id]=t,type:`number`,class:`ctrl-input`,step:10**-e.decimals,min:Number.isFinite(e.lo)?e.lo:void 0,max:Number.isFinite(e.hi)?e.hi:void 0,placeholder:`${Number.isFinite(e.lo)?e.lo:``} ~ ${Number.isFinite(e.hi)?e.hi:``}`,onKeydown:n(t=>ae(e),[`enter`])},null,40,At),[[i,f(j)[e.id],void 0,{number:!0}]]),O(`button`,{class:`ctrl-btn dcw-send`,disabled:f(j)[e.id]==null||f(j)[e.id]===``||f(ie)===e.id,title:t.$t(`deviceTwinPanel.k1j04u8001`),onClick:a(t=>ae(e),[`stop`])},m(f(ie)===e.id?`···`:`SET`),9,jt)]),f(M)[e.id]?(l(),S(`small`,Mt,m(f(M)[e.id]),1)):w(``,!0)]))),128))])):w(``,!0)],10,pt))),128))])):(l(),S(`div`,st,m(t.$t(`deviceTwinPanel.kkw7sn5003`)),1)),f(y)?(l(),S(`span`,Nt,m(f(y)),1)):w(``,!0)]))}}),[[`__scopeId`,`data-v-2eb2660e`]]),{__name:`WorkshopDeviceTwinPanel`}),Ft=`__sceneLayouts`;function G(e=!0){let t=typeof document<`u`?document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``:``,n={};return t&&(n.authorization=`Bearer ${decodeURIComponent(t)}`),e&&(n[`content-type`]=`application/json`),n}function It(){let e=null,t=e=>new Promise(t=>setTimeout(t,e)),n=x({layouts:{},loaded:!1,loading:!1,error:``,rev:0,async load(){return e||=r().finally(()=>{e=null}),e},byChannel(e){return n.layouts[e]},async save(e,r){n.layouts[e]={channelId:e,x:r.x,z:r.z,radiusX:r.radiusX,radiusZ:r.radiusZ,shape:r.shape??`ellipse`,rotationY:r.rotationY??0,updatedAt:L()},n.rev++;let i=null;for(let a=0;a<3;a++)try{let t=await fetch(`/api/workshop/scene/layouts/${e}`,{method:`PUT`,headers:G(),body:JSON.stringify(r)}),i=await t.json().catch(()=>({}));if(!t.ok||!i?.data?.layout)throw Error(i?.message??`保存频道布局失败`);return n.layouts[e]=i.data.layout,i.data.layout}catch(e){i=e instanceof Error?e:Error(String(e)),a<2&&await t(500*(a+1))}throw i??Error(`保存频道布局失败`)},async remove(e){let t=await fetch(`/api/workshop/scene/layouts/${e}`,{method:`DELETE`,headers:G()}),r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r?.message??`移除频道放置失败`);let i=Object.fromEntries(Object.entries(n.layouts).filter(([t])=>t!==e));n.layouts=i,n.rev++}});async function r(){n.loading=!0;let e=``;try{for(let r=0;r<3;r++)try{let e=await fetch(`/api/workshop/scene/layouts`,{headers:G()});if(!e.ok)throw Error(`HTTP ${e.status}`);let t=(await e.json().catch(()=>({})))?.data?.layouts??[],r={};for(let e of t)r[e.channelId]=e;n.layouts=r,n.loaded=!0,n.error=``,n.rev++;return}catch(n){e=I(n),r<2&&await t(400*(r+1))}n.loaded=!1,n.error=e}finally{n.loading=!1}}return n}function Lt(){let e=globalThis;e[Ft]||(e[Ft]=It());let t=e[Ft];return t.load(),t}function Rt(e){return ne()?(v(e),!0):!1}var zt=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var Bt=Object.prototype.toString,Vt=e=>Bt.call(e)===`[object Object]`,Ht=()=>{};function Ut(...e){if(e.length!==1)return j(...e);let t=e[0];return typeof t==`function`?re(T(()=>({get:t,set:Ht}))):D(t)}function Wt(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return n}var Gt=e=>e();function Kt(e=Gt,t={}){let{initialState:n=`active`}=t,r=Ut(n===`active`);function i(){r.value=!1}function a(){r.value=!0}return{isActive:re(r),pause:i,resume:a,eventFilter:(...t)=>{r.value&&e(...t)}}}function qt(e){return Array.isArray(e)?e:[e]}function Jt(e){return e||M()}function Yt(e,t,n={}){let{eventFilter:r=Gt,...i}=n;return y(e,Wt(r,t),i)}function Xt(e,t,n={}){let{eventFilter:r,initialState:i=`active`,...a}=n,{eventFilter:o,pause:s,resume:c,isActive:l}=Kt(r,{initialState:i});return{stop:Yt(e,t,{...a,eventFilter:o}),pause:s,resume:c,isActive:l}}function K(e,t=!0,n){Jt(n)?oe(e,n):t?e():d(e)}function Zt(e,t,n){return y(e,t,{...n,immediate:!0})}var Qt=zt?window:void 0;zt&&window.document,zt&&window.navigator,zt&&window.location;function $t(e){let t=_(e);return t?.$el??t}function q(...e){let t=[],n=()=>{t.forEach(e=>e()),t.length=0},r=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),i=b(()=>{let t=qt(_(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0}),a=Zt(()=>[i.value?.map(e=>$t(e))??[Qt].filter(e=>e!=null),qt(_(i.value?e[1]:e[0])),qt(f(i.value?e[2]:e[1])),_(i.value?e[3]:e[2])],([e,i,a,o])=>{if(n(),!e?.length||!i?.length||!a?.length)return;let s=Vt(o)?{...o}:o;t.push(...e.flatMap(e=>i.flatMap(t=>a.map(n=>r(e,t,n,s)))))},{flush:`post`});return Rt(n),()=>{a(),n()}}var en=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},tn=`__vueuse_ssr_handlers__`,nn=rn();function rn(){return tn in en||(en[tn]=en[tn]||{}),en[tn]}function an(e,t){return nn[e]||t}function on(e){return e==null?`any`:e instanceof Set?`set`:e instanceof Map?`map`:e instanceof Date?`date`:typeof e==`boolean`?`boolean`:typeof e==`string`?`string`:typeof e==`object`?`object`:Number.isNaN(e)?`any`:`number`}var sn={boolean:{read:e=>e===`true`,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},cn=`vueuse-storage`;function ln(e,t,n,r={}){let{flush:i=`pre`,deep:a=!0,listenToStorageChanges:o=!0,writeDefaults:s=!0,mergeDefaults:c=!1,shallow:l,window:u=Qt,eventFilter:f,onError:p=e=>{console.error(e)},initOnMounted:m}=r,h=(l?C:D)(typeof t==`function`?t():t),g=b(()=>_(e));if(!n)try{n=an(`getDefaultStorage`,()=>Qt?.localStorage)()}catch(e){p(e)}if(!n)return h;let v=_(t),x=on(v),S=r.serializer??sn[x],{pause:w,resume:T}=Xt(h,e=>te(e),{flush:i,deep:a,eventFilter:f});y(g,()=>O(),{flush:i});let E=!1;u&&o&&(n instanceof Storage?q(u,`storage`,e=>{m&&!E||O(e)},{passive:!0}):q(u,cn,e=>{m&&!E||re(e)})),m?K(()=>{E=!0,O()}):O();function ee(e,t){if(u){let r={key:g.value,oldValue:e,newValue:t,storageArea:n};u.dispatchEvent(n instanceof Storage?new StorageEvent(`storage`,r):new CustomEvent(cn,{detail:r}))}}function te(e){try{let t=n.getItem(g.value);if(e==null)ee(t,null),n.removeItem(g.value);else{let r=S.write(e);t!==r&&(n.setItem(g.value,r),ee(t,r))}}catch(e){p(e)}}function ne(e){let t=e?e.newValue:n.getItem(g.value);if(t==null)return s&&v!=null&&n.setItem(g.value,S.write(v)),v;if(!e&&c){let e=S.read(t);return typeof c==`function`?c(e,v):x===`object`&&!Array.isArray(e)?{...v,...e}:e}return typeof t==`string`?S.read(t):t}function O(e){if(!(e&&e.storageArea!==n)){if(e&&e.key==null){h.value=v;return}if(!(e&&e.key!==g.value)){w();try{let t=S.write(h.value);(e===void 0||e?.newValue!==t)&&(h.value=ne(e))}catch(e){p(e)}finally{e?d(T):T()}}}}function re(e){O(e.detail)}return h}var un={class:`town-view`},dn={class:`topnav`},fn={class:`brand`},pn={class:`brand-sub`},mn=[`aria-label`],hn={class:`seg`},gn=[`disabled`,`title`],_n={class:`nav-right`},vn=[`title`],yn={class:`nav-chip mono`},bn=[`title`],xn={class:`avatar-fallback`},Sn={class:`app`},Cn={class:`rail rail-left`},wn={class:`panel`},Tn={class:`panel-hd`},En={class:`panel-tag`},Dn={class:`panel`},On={class:`panel-hd`},kn={class:`panel-tag`},An={class:`daq-ctrl`},jn=[`title`],Mn=[`title`],Nn=[`value`],Pn={class:`daq-list`},Fn=[`title`,`onClick`,`onKeydown`],In={class:`daq-ico`},Ln=[`innerHTML`],Rn={class:`daq-meta`},zn={class:`daq-name`},Bn={class:`daq-code`},Vn=[`title`,`onClick`],Hn={class:`daq-count`},Un={key:0,class:`daq-children`},Wn=[`draggable`,`title`,`onDragstart`,`onClick`],Gn={class:`daq-meta`},Kn={class:`daq-name`},qn={class:`daq-node-sub`},Jn={class:`node-val mono`},Yn={class:`node-dev`},Xn={key:0,class:`scene-cur`},Zn={key:0,class:`daq-empty-hint`},Qn={class:`panel`},$n={class:`panel-hd`},er={class:`panel-tag`},tr={class:`daq-list`},nr=[`title`,`onClick`,`onKeydown`],rr={class:`daq-ico`},ir=[`innerHTML`],ar={class:`daq-meta`},or={class:`daq-name`},sr={class:`daq-code`},cr=[`title`,`onClick`],lr={class:`daq-count`},ur={key:0,class:`daq-children`},dr=[`draggable`,`title`,`onDragstart`,`onClick`],fr={class:`daq-meta`},pr={class:`daq-name`},mr={class:`daq-node-sub`},hr={class:`node-val mono`},gr={class:`node-dev`},_r={key:0,class:`scene-cur`},vr={key:0,class:`daq-empty-hint`},yr={class:`panel`},br={class:`panel-hd`},xr={class:`panel-tag`},Sr={class:`scene-list`},Cr=[`draggable`,`data-channel-id`,`title`,`onDragstart`,`onClick`],wr={class:`scene-meta-wrap`},Tr={class:`scene-name`},Er={class:`scene-meta`},Dr={key:0,class:`scene-cur`},Or={key:1,class:`scene-add`},kr={key:0,class:`scene-hint`},Ar={class:`stage-col`},jr={class:`stage-top`},Mr={class:`vp-title`},Nr={class:`vp-id`},Pr={class:`vp-tools`},Fr=[`title`],Ir=[`title`],Lr=[`title`],Rr=[`title`],zr={class:`angle-chip`},Br=[`value`,`aria-label`],Vr={value:`std`},Hr={class:`leaders`},Ur=[`d`,`stroke`],Wr=[`cx`,`cy`,`fill`],Gr={class:`callout-layer`},Kr=[`title`,`onClick`],qr={class:`co-label`},Jr={class:`co-val`},Yr={class:`co-range`},Xr={class:`kpi-strip`},Zr={class:`kpi`},Qr={class:`kpi-meta`},$r={class:`kpi-label`},ei={class:`kpi-val`},ti={class:`kpi`},ni={class:`kpi-meta`},ri={class:`kpi-label`},ii={class:`kpi-val`},ai={class:`kpi`},oi={class:`kpi-meta`},si={class:`kpi-label`},ci={class:`kpi-val`},li={class:`kpi`},ui={class:`kpi-meta`},di={class:`kpi-label`},fi={class:`kpi-val`},pi={class:`kpi`},mi={class:`kpi-meta`},hi={class:`kpi-label`},gi={class:`kpi-val`},_i={key:1,class:`empty-hint`},vi=[`title`],yi={class:`bp-name`},bi={class:`bp-sub`},xi={class:`bp-tabs`},Si={class:`bp-row`},Ci={class:`bp-label`},wi={class:`bp-seg`},Ti={class:`bp-row`},Ei={class:`bp-label`},Di={class:`bp-val`},Oi={class:`bp-row`},ki={class:`bp-label`},Ai={class:`bp-val`},ji={class:`bp-row`},Mi={class:`bp-label`},Ni={class:`bp-val`},Pi={class:`bp-hint`},Fi={class:`member-list`},Ii={class:`member-info`},Li={class:`member-name`},Ri=[`value`,`onChange`],zi=[`value`],Bi={key:0,class:`bp-hint`},Vi={class:`bp-actions`},Hi={key:3,class:`drop-chip`},Ui={key:4,class:`error-chip`},Wi={key:5,"data-hud":`town-loading`,class:`loading-mask`},Gi={class:`loading-text`},Ki={class:`dock`},qi={class:`dock-card`},Ji={class:`dock-hd`},Yi={class:`dock-mode`},Xi={class:`ctl-sec`},Zi={class:`ctl-row`},Qi=[`title`],$i={class:`fps-seg`},ea=[`onClick`],ta={class:`ctl-row`},na=[`title`],ra={class:`fps-seg`},ia=[`onClick`],aa={class:`ctl-sec`},oa={class:`ctl-row`},sa={class:`ctl-name`},ca=[`value`],la={class:`ctl-val`},ua={class:`ctl-row`},da={class:`ctl-name`},fa=[`value`],pa={class:`ctl-val`},ma={class:`ctl-row`},ha={class:`ctl-name`},ga=[`value`],_a={class:`ctl-val`},va={class:`ctl-row`},ya=[`title`],ba=[`value`],xa={class:`ctl-val`},Sa={class:`ctl-sec`},Ca={class:`ctl-row`},wa={class:`ctl-name`},Ta={class:`ctl-btns`},Ea=[`disabled`,`title`],Da={class:`dock-card`},Oa={class:`dock-hd`},ka={class:`dock-count mono`},Aa=[`onClick`],ja=[`title`],Ma={class:`trend-wrap`},Na={key:0,class:`trend-empty`},Pa={class:`rail rail-right`},Fa={key:0,class:`panel inspector`},Ia={class:`panel-hd`},La=[`title`],Ra={class:`ins-chip-row`},za={class:`ins-chip mono`},Ba={key:0,class:`ins-chip accent`},Va={key:1,class:`ins-chip accent`},Ha={key:0,class:`daq-info`},Ua={class:`daq-info-row`},Wa={class:`cy`},Ga={class:`daq-info-row`},Ka={class:`daq-info-row`},qa={class:`daq-bind-bar`},Ja=[`step`,`placeholder`],Ya=[`disabled`],Xa={key:0,class:`dcw-err`},Za={key:1,class:`daq-bind-bar`},Qa={value:``},$a=[`value`],eo=[`disabled`],to={key:1,class:`daq-info`},no={class:`daq-info-row`},ro={class:`cy`},io={class:`daq-info-row`},ao={class:`daq-info-row`},oo={key:0,class:`daq-bind-bar`},so={value:``},co=[`value`],lo=[`disabled`],uo={key:1,class:`daq-node-ctl`},fo={class:`daq-info-row`},po={class:`daq-th-inputs`},mo={class:`daq-info-row`},ho={class:`daq-th-inputs`},go=[`value`],_o=[`value`],vo={class:`daq-info-row`},yo={class:`daq-th-inputs`},bo=[`value`],xo=[`value`],So={class:`daq-info-row`},Co={class:`daq-info-row`},wo=[`title`],To={key:2,class:`ins-empty`},Eo={class:`obj-row`},Do={class:`obj-label`},Oo=[`placeholder`,`disabled`,`title`],ko={class:`obj-row`},Ao={class:`obj-label`},jo=[`value`,`disabled`],Mo=[`value`],No={class:`sect-hd`},Po={class:`bind-ico`},Fo=[`innerHTML`],Io={class:`bind-meta`},Lo={class:`bind-label`},Ro={class:`bind-val`},zo=[`title`,`onClick`],Bo={key:0,class:`ins-empty`},Vo={key:1,class:`bind-add-wrap`},Ho={key:0,class:`bp-group`},Uo={class:`bp-tpl`},Wo=[`data-node-id`,`title`,`onClick`],Go=[`innerHTML`],Ko={key:0,class:`bp-cur`},qo={key:1,class:`bp-cur`},Jo={key:0,class:`bp-empty`},Yo={class:`sect-hd`},Xo={class:`dcw-top`},Zo={class:`bind-ico`},Qo=[`innerHTML`],$o={class:`dcw-id`},es={class:`bind-label`},ts={key:0,class:`dcw-tag`},ns={class:`dcw-name`},rs={class:`dcw-cur`},is=[`title`,`onClick`],as={class:`dcw-win-num`},os={class:`dcw-win-track`},ss={class:`dcw-win-num`},cs={class:`dcw-write`},ls=[`onUpdate:modelValue`,`step`,`placeholder`,`onKeydown`],us=[`disabled`,`title`,`onClick`],ds={key:0,class:`dcw-err`},fs={key:2,class:`ins-empty`},ps={key:3,class:`bind-add-wrap`},ms={key:0,class:`bp-group`},hs={class:`bp-tpl`},gs=[`data-node-id`,`title`,`onClick`],_s=[`innerHTML`],vs={key:0,class:`bp-cur`},ys={key:1,class:`bp-cur`},bs={key:0,class:`bp-empty`},xs={class:`xz-seg`},Ss={class:`scale-row`},Cs=[`value`],ws={class:`scale-val`},Ts={class:`ins-foot`},Es={key:5,class:`ins-empty`},Ds={class:`chat-id-row`},Os={class:`chat-nameplate`},ks={class:`chat-name`},As={class:`chat-meta`},js={key:0,class:`chat-harness`},Ms={class:`chat-count`},Ns={class:`obj-row`},Ps={class:`obj-label`},Fs=[`value`,`disabled`],Is=[`value`],Ls={class:`obj-row`},Rs={class:`obj-label`},zs={class:`range-status`},Bs=[`title`],Vs={class:`sect-hd`},Hs={class:`bind-meta`},Us={class:`bind-label`},Ws=[`value`,`title`,`onChange`],Gs={value:`auto`},Ks={value:`manual`},qs=[`title`,`onClick`],Js={key:0,class:`ins-empty`},Ys={key:1,class:`daq-bind-bar`,style:{"margin-bottom":`8px`}},Xs={value:`dcw`},Zs={value:`daq`},Qs={value:``},$s=[`value`],ec=[`value`],tc={value:`auto`},nc={value:`manual`},rc=[`disabled`],ic={class:`sect-hd`,style:{color:`var(--hud-amber)`}},ac={class:`approval-detail`},oc=[`onUpdate:modelValue`,`placeholder`],sc={class:`daq-bind-bar`,style:{"margin-top":`5px`}},cc=[`onClick`],lc=[`onClick`],uc={class:`obj-row`},dc={class:`obj-label`},fc={class:`bp-seg`},pc={class:`obj-row`},mc={class:`obj-label`},hc={class:`bp-val`},gc={class:`obj-row`},_c={class:`obj-label`},vc={class:`bp-val`},yc={key:4,class:`ins-empty`},bc={class:`sect-hd chat-sect`},xc=[`title`],Sc={key:0,class:`rpg-note`},Cc={class:`rpg-divider`},wc={class:`rpg-time`},Tc={class:`rpg-bubble`},Ec={class:`rpg-text`},Dc={key:2,class:`rpg-divider live`},Oc={class:`rpg-time`},kc={class:`rpg-bubble`},Ac={class:`rpg-text`},jc={key:3,class:`rpg-typing`},Mc={class:`ty-label`},Nc={key:4,class:`rpg-note`},Pc={class:`panel`},Fc={class:`panel-hd`},Ic={class:`health-body`},Lc={class:`donut-wrap`},Rc={class:`donut-center`},zc={class:`health-legend`},Bc={class:`hl-row`},Vc={class:`n`},Hc={class:`hl-row`},Uc={class:`n`},Wc={class:`hl-row`},Gc={class:`n`},Kc={class:`hl-row`},qc={class:`n`},Jc={class:`panel`},Yc={class:`panel-hd`},Xc={class:`panel-tag`},Zc={class:`panel`},Qc={class:`panel-hd`},$c={class:`panel-tag`},el=[`title`],tl={class:`alarm-list`},nl={class:`al-body`},rl={class:`al-txt`},il={class:`al-src`},al=[`onClick`],ol={key:0,class:`rail-empty`},sl={class:`panel`},cl={class:`panel-hd`},ll={class:`panel-tag`},ul={class:`event-list`},dl={class:`ev-time`},fl=[`title`],pl=[`title`],ml={key:0,class:`rail-empty`},hl={class:`panel`},gl={class:`panel-hd`},_l={class:`mm-body`},vl=[`title`],yl={class:`mm-col`},bl=[`title`],xl=[`title`],Sl=[`title`],Cl={class:`mm-meta mono`},wl={class:`statusbar`},Tl={class:`sb-stats`},El={class:`sb-lat mono`},Dl={class:`copy`},Ol={key:0,"data-hud":`town-loading`,class:`loading-mask`},kl={class:`loading-text`},Al=`aw-town-panel-pos`,jl=3200,Ml=2400,Nl=3e4,Pl=80,Fl=120,Il=104,Ll=8,Rl=1600,zl=Object.assign(A(o({__name:`TownView`,props:{channelId:{},allChannels:{type:Boolean}},setup(o){let{t:_}=ce(),v=o,T=we(),ee=Ce(),{conn:ne}=Te(),re=Ee(),A=Ne(),j=Ae(),M=Lt(),pe=de(),me=D(null),N=C(null),he=C(null),P=C(null),ge=typeof window<`u`?new URLSearchParams(location.search).get(`render`)!==`2d`:!0,_e=D(!1),ye=D(0),be=D(0),xe=D(0),Se=D(null),F=D(null),L=D(``),je=b(()=>ne.state===`connecting`),Me=b(()=>T.channels[v.channelId]?.name??``),R=D(`browse`),Pe=D(!0),z=D(null),Fe=b(()=>{switch(z.value?.state){case`dirty`:return _(`townView.k3oo50k155`);case`saving`:return _(`townView.k1b38d59156`);case`saved`:return _(`townView.k3n51yk157`);case`error`:return _(`townView.k1b3ayhc158`);default:return``}});function Ie(){R.value=R.value===`browse`?`edit`:`browse`,P.value?.setMode(R.value),R.value===`browse`&&(Ke(),qe(null)),U.value=!1}let Le=D(`translate`);function Re(e){Le.value=e,P.value?.setTransformMode(e)}y(()=>[F.value,R.value],([e,t])=>{t===`edit`&&e?.kind===`device`&&P.value?.setTransformMode(Le.value)});function ze(e){let t=e.target;if(t&&(t.tagName===`INPUT`||t.tagName===`SELECT`||t.tagName===`TEXTAREA`||t.isContentEditable))return;let n=e.key.toLowerCase();if(e.key===`Escape`){Ke();return}R.value===`edit`&&F.value?.kind===`device`&&(n===`g`?Re(`translate`):n===`r`?Re(`rotate`):n===`s`?Re(`scale`):(e.key===`Delete`||e.key===`Backspace`)&&pt())}function Be(){Pe.value=!Pe.value,P.value?.setSnap(Pe.value)}function Ve(e,t,n,r){let i=t||v.channelId;return i?pe.request({method:`PATCH`,url:`/workshop/channels/${i}/agents/${e}/position`,data:{x:n,z:r}}).catch(()=>null):Promise.resolve()}function He(e,t,n){let r=t||v.channelId;return r?pe.request({method:`PATCH`,url:`/workshop/channels/${r}/agents/${e}/range`,data:{range:n}}).catch(()=>null):Promise.resolve()}function Ue(){if(R.value!==`edit`){Nt();return}P.value?.persistAllDevices()}function We(e){F.value&&P.value?.setModelScale(F.value.id,e,F.value.kind)}function Ge(e){F.value&&P.value?.persistScale(F.value.kind,F.value.id)}function Ke(){F.value=null}let B=D(null),V=D(null);function qe(e){B.value=e,V.value=e?P.value?.getChannelLayout(e)??null:null}async function Je(){if(!B.value||!V.value)return;let e=V.value,t={x:e.x,z:e.z,radiusX:e.radiusX,radiusZ:e.radiusZ,shape:e.shape??`ellipse`,rotationY:e.rotationY??0};try{await M.save(B.value,t),z.value={state:`saved`,at:Date.now()}}catch(e){z.value={state:`error`,at:Date.now()},L.value=I(e)}}async function Ye(){if(B.value)try{await M.remove(B.value),P.value?.removeChannel(B.value),qe(null)}catch(e){L.value=I(e)}}function Xe(){!B.value||!V.value||(P.value?.updateChannelLayout(B.value,V.value),z.value={state:`dirty`,at:Date.now()})}let Ze=D(``);function Qe(e){let t=P.value;if(t){if(e.placed){t.focusChannel(e.channelId),qe(e.channelId);return}Ze.value=_(`townView.k7rvbts159`),window.setTimeout(()=>{Ze.value=``},2600)}}function $e(e,t,n){let r=P.value;if(!r)return!1;let i=W().find(t=>t.channelId===e),a=i?.channelName??T.channels[e]?.name??e.slice(0,8),o=i?.agents.length??T.agents[e]?.length??0;return r.getChannelLayout(e)?(Ze.value=_(`townView.kcyn0191`,{p0:a}),window.setTimeout(()=>{Ze.value=``},2600),r.focusChannel(e),qe(e),!1):(r.dropChannelOnWorld(t,n,e,a,o),M.save(e,{x:t,z:n,radiusX:Math.max(120,110+o*18),radiusZ:Math.max(80,70+o*14),shape:`ellipse`,rotationY:0}).then(()=>{z.value={state:`saved`,at:Date.now()}}).catch(()=>{z.value={state:`error`,at:Date.now()}}),r.focusChannel(e),!0)}let et=b(()=>A.models.filter(e=>e.kind===`glb`)),tt=b(()=>A.models.filter(e=>e.kind===`dev`)),nt=D(``),H=D(null),U=D(!1);y(()=>F.value,e=>{if(nt.value=e?.kind===`device`?P.value?.getDeviceName?.(e.id)??``:``,H.value=null,e?.kind===`agent`){let t=P.value?.getAgentRange?.(e.id);H.value=t?{radiusX:t.radiusX,radiusZ:t.radiusZ,shape:t.shape}:null,U.value=P.value?.isRangeDrawing(e.id)??!1}else U.value=!1});let it=b(()=>{let e=F.value;if(!e||e.kind!==`agent`)return``;let t=P.value?.getAgentRange?.(e.id);return t?`${t.shape===`rect`?_(`townView.k43u0g050`):_(`townView.k414bc049`)} ${Math.round(t.radiusX)} × ${Math.round(t.radiusZ)}`:_(`townView.k1v1icf6160`)});function at(){let e=F.value;if(!(!e||e.kind!==`agent`)){if(U.value){P.value?.cancelRangeDraw(),U.value=!1;return}P.value?.startRangeDraw(e.id),U.value=!0}}function ot(){!F.value||F.value.kind!==`agent`||!H.value||(P.value?.setAgentRangeScene(F.value.id,H.value),z.value={state:`dirty`,at:Date.now()})}function st(){!F.value||F.value.kind!==`agent`||P.value?.commitAgentRange(F.value.id)}function ct(){let e=F.value;!e||e.kind!==`agent`||(P.value?.clearAgentRange(e.id),H.value=null,U.value=!1)}function lt(){if(!F.value||F.value.kind!==`device`)return;let e=F.value.id,t=nt.value.trim();t&&(P.value?.renameDevice(e,t),j.update(e,{name:t}).catch(e=>{L.value=I(e)}))}async function ut(e){let t=F.value;if(!t||t.kind!==`agent`)return;let n=t.id,r=T.agents?Object.keys(T.agents).find(e=>(T.agents[e]??[]).some(e=>e.agentId===n)):void 0;if(!r){L.value=_(`townView.kpplr16161`);return}try{await A.bind(r,n,e),P.value?.swapAgentModel(n,e)}catch(e){L.value=I(e)}}async function dt(e){let t=F.value;if(!(!t||t.kind!==`device`)){P.value?.swapDeviceModel(t.id,e);try{await j.update(t.id,{modelRef:e})}catch(e){L.value=I(e)}}}let ft=D(``);function pt(){let e=F.value;if(!(!e||e.kind!==`device`)){if(ft.value!==e.id){ft.value=e.id,window.setTimeout(()=>{ft.value===e.id&&(ft.value=``)},3e3);return}ft.value=``,P.value?.removeDevice(e.id).then(()=>Ke()).catch(e=>{L.value=I(e)})}}let mt=D(`boundary`),ht=b(()=>B.value?W().find(e=>e.channelId===B.value)?.agents??[]:[]);async function gt(e,t){if(B.value)try{await A.bind(B.value,e,t),P.value?.swapAgentModel(e,t)}catch(e){L.value=I(e)}}function _t(e){mt.value=e}let vt=D(0),yt=b(()=>(vt.value,bt().map(e=>({channelId:e,name:T.channels[e]?.name??e.slice(0,8),agentCount:(T.agents[e]??[]).length,placed:P.value?.hasChannel(e)??!1,color:St(e)}))));function bt(){let e=[];for(let t of xt()??[])for(let n of t.channelIds??[])e.includes(n)||e.push(n);return e.includes(v.channelId)||e.push(v.channelId),e}function xt(){return ee.workspaces}function St(e){return ve(e)}function Ct(e,t){e.dataTransfer&&(e.dataTransfer.setData(`application/x-aw-channel`,t),e.dataTransfer.setData(`text/plain`,t),e.dataTransfer.effectAllowed=`copy`)}function W(){let e=[];for(let[t,n]of Object.entries(T.channels)){let r=(T.agents[t]??[]).map(e=>{let n=e.currentTaskId?(T.tasks[t]??[]).find(t=>t.id===e.currentTaskId):void 0;return{agentId:e.agentId,name:e.name,role:e.role,harness:e.harness,state:e.state,currentTaskId:e.currentTaskId??null,currentTaskTitle:n?.title??null,currentTaskProgress:e.currentTaskProgress??n?.progress??null,modelRef:e.modelRef??null,homeX:e.config?.homeX??null,homeZ:e.config?.homeZ??null,range:e.config?.range??null}});e.push({channelId:t,channelName:n.name,agents:r})}return e}function wt(e){!e||!(`registerModelsFromList`in e)||(`screenToWorld`in e?e.registerModelsFromList(A.models.map(e=>({id:e.id,file:e.file,name:e.name,kind:e.kind,hFactor:e.hFactor??1}))):e.registerModelsFromList(A.models.map(e=>({id:e.id,file:e.file,name:e.name}))))}y(()=>A.models.map(e=>`${e.id}:${e.file}`).join(`|`),()=>wt(N.value));async function Tt(){N.value||!me.value||(ge?await Et():await Dt())}async function Et(){let e=me.value;if(!e)return;let[{TownScene3D:t}]=await Promise.all([se(()=>import(`./BUcmySDa2.js`),__vite__mapDeps([0,1,2,3]),import.meta.url)]),n=new t(W(),e);n.resolveTaskAssignee=e=>T.tasks[v.channelId]?.find(t=>t.id===e)?.assigneeId??null,n.devices={async create(e){return{id:(await j.create({name:e.name,modelRef:e.modelRef,kind:e.kind,controls:e.controls,posX:e.posX,posZ:e.posZ,scale:e.scale})).id}},async update(e,t){if(J.nodeById(e)){await J.saveTransform(e,t.posX,t.posZ);return}await j.update(e,t)},async remove(e){if(J.nodeById(e)){await J.removeNode(e);return}await j.remove(e)},async control(e,t,n){return j.control(e,t,n)}},n.agentApi={async updateHome(e,t,n,r){return Ve(e,t,n,r)},async updateRange(e,t,n){return He(e,t,n)}},n.channelApi={async save(e,t){return M.save(e,t)}},N.value=n,wt(n),P.value=n,n.setFpsCap(Number(mf.value)),n.setQualityMode(_f.value),Ot(n),n.on(`select`,e=>{F.value=e}),n.on(`saveState`,e=>{z.value=e}),n.on(`selectChannel`,e=>{qe(e)}),n.on(`channelResized`,e=>{e&&B.value===e.channelId&&(V.value=e.layout)}),n.on(`agentRangeChanged`,e=>{if(e&&F.value?.kind===`agent`&&F.value.id===e.agentId){let t=P.value?.getAgentRange?.(e.agentId);H.value=t?{radiusX:t.radiusX,radiusZ:t.radiusZ,shape:t.shape}:null}}),_e.value=!0,kt(n),Vf=Jl(n),M.load().then(()=>{n.hydrate(W(),Object.values(M.layouts),Gl.value),Rt()}).catch(e=>{L.value=_(`townView.k1hmf2ut192`,{p0:I(e)}),window.setTimeout(()=>{M.load()},2500)})}async function Dt(){let e=me.value;if(!e)return;let[t,{TownScene:n}]=await Promise.all([se(()=>import(`./BGkumHZ32.js`),[],import.meta.url),se(()=>import(`./RYFtK4qZ2.js`),__vite__mapDeps([4,5,1,2]),import.meta.url)]),r=new n(W());N.value=r,wt(r),r.resolveTaskAssignee=e=>T.tasks[v.channelId]?.find(t=>t.id===e)?.assigneeId??null;let i=new t.Game({type:t.AUTO,parent:e.id||`town-host`,width:1100,height:700,backgroundColor:`#eceae4`,pixelArt:!0,antialias:!1,roundPixels:!0,powerPreference:`high-performance`,physics:{default:`arcade`,arcade:{gravity:{x:0,y:0},debug:!1}},scale:{mode:t.Scale.FIT,autoCenter:t.Scale.CENTER_BOTH},scene:r});he.value=i,Ot(r),r.on(`ready`,()=>{_e.value=!0,kt(r)})}function Ot(e){let t=e;t.on(`fps`,e=>{ye.value=e}),t.on(`agentCount`,e=>{be.value=e}),t.on(`blockCount`,e=>{xe.value=e,vt.value++}),t.on(`lastActivity`,e=>{Se.value=e});let n=re.subscribe(t=>{try{if(t.type===`channel.snapshot`){e.rebuild(W()),N.value&&G(N.value),v.channelId&&e.focusChannel(v.channelId);return}if(t.type===`device.updated`){j.applyRemote(t.payload),N.value&&G(N.value);return}if(t.type===`device.created`){j.load().then(()=>{N.value&&G(N.value)});return}if(t.type===`device.deleted`){j.removeRemote(t.payload.id),N.value&&G(N.value);return}if(t.type===`scene.layout.saved`||t.type===`scene.layout.removed`){M.load().then(()=>{It(N.value),Rt()});return}let n=fe(t)?.bubble;n?.agentId&&an(n.agentId,n.kind,n.text,t.at,t.seq),e.handleTownEvent(t)}catch(e){L.value=I(e)}});N._off=n,window.__town={get scene(){return N.value},get game(){return he.value},buildInput:W,get characterAssets(){return A}}}function kt(e){if(`screenToWorld`in e){Ft(e);return}jt(e)}let At=[];function jt(e){let t=e.game.canvas;if(!t)return;let n=(n,r)=>{let i=e.cameras.main,a=t.getBoundingClientRect(),o=(n-a.left)/a.width,s=(r-a.top)/a.height;return{x:i.worldView.x+o*i.worldView.width,y:i.worldView.y+s*i.worldView.height}},r=!1,i=0,a=0;t.addEventListener(`pointerdown`,e=>{e.button===0&&(r=!0,i=e.clientX,a=e.clientY)});let o=n=>{if(!r)return;let o=e.cameras.main,s=t.getBoundingClientRect(),c=e.game.scale.width/s.width,l=(n.clientX-i)*c/o.zoom,u=(n.clientY-a)*c/o.zoom;o.scrollX-=l,o.scrollY-=u,i=n.clientX,a=n.clientY},s=()=>{r=!1};window.addEventListener(`pointermove`,o),window.addEventListener(`pointerup`,s),At.push(()=>window.removeEventListener(`pointermove`,o)),At.push(()=>window.removeEventListener(`pointerup`,s)),t.addEventListener(`wheel`,t=>{t.preventDefault();let n=e.cameras.main,r=n.zoom+(t.deltaY<0?.08:-.08);n.setZoom(Math.min(2.4,Math.max(.6,r)))},{passive:!1}),t.addEventListener(`dragover`,e=>{e.preventDefault(),e.dataTransfer.dropEffect=`copy`}),t.addEventListener(`drop`,t=>{t.preventDefault();let r=t.dataTransfer?.getData(`application/x-aw-model`)||t.dataTransfer?.getData(`text/plain`);if(!r)return;let i=n(t.clientX,t.clientY),a=e.dropModelOnWorld(i.x,i.y,r);qt.value=a})}let Mt=null;function Nt(){L.value=_(`townView.kt6xb5p162`),Mt&&clearTimeout(Mt),Mt=setTimeout(()=>{L.value=``},2600)}function Ft(e){let t=e.canvas;if(!t)return;let n=0,r=0,i=0;t.addEventListener(`contextmenu`,e=>e.preventDefault()),t.addEventListener(`mousedown`,e=>{e.button===1&&e.preventDefault()}),t.addEventListener(`pointerdown`,t=>{if(!e.isGizmoBusy?.()){if(t.button===1||t.button===2||t.shiftKey){t.preventDefault(),n=2,r=t.clientX,i=t.clientY;return}t.button===0&&(e.tryStartPointerDrag(t.clientX,t.clientY)||(n=1,r=t.clientX,i=t.clientY))}});let a=t=>{if(e.isGizmoBusy?.())return;if(e.isPointerDragging()){e.movePointerDrag(t.clientX,t.clientY);return}if(!n)return;let a=t.clientX-r,o=t.clientY-i;r=t.clientX,i=t.clientY,n===1?e.orbitBy(a,o):e.panByScreen(a,o)},o=()=>{if(e.isPointerDragging()){e.endPointerDrag();return}n=0};window.addEventListener(`pointermove`,a),window.addEventListener(`pointerup`,o),At.push(()=>window.removeEventListener(`pointermove`,a)),At.push(()=>window.removeEventListener(`pointerup`,o)),t.addEventListener(`wheel`,t=>{t.preventDefault(),e.zoomBy(t.deltaY>0?.12:-.11)},{passive:!1}),t.addEventListener(`dragover`,e=>{e.preventDefault(),e.dataTransfer.dropEffect=`copy`}),t.addEventListener(`drop`,t=>{t.preventDefault();let n=t.dataTransfer;if(!n)return;if(R.value!==`edit`){Nt();return}let r=n.getData(`application/x-aw-channel`)||n.getData(`text/plain`);if(r&&yt.value.some(e=>e.channelId===r)){let n=e.screenToWorld(t.clientX,t.clientY);$e(r,n.x,n.z);return}let i=n.getData(`application/x-aw-daq-node`);if(i){let n=J.nodeById(i);if(n){let r=e.screenToWorld(t.clientX,t.clientY);J.patchNode(i,{posX:Math.round(r.x),posZ:Math.round(r.z)}).then(()=>{if(!n.deviceBindingId){let e=Gu(r.x,r.z,95);e&&Vu(i,e.id)}}).catch(e=>{L.value=I(e)})}return}let a=n.getData(`application/x-aw-dcw-node`);if(a){let n=Y.nodes.find(e=>e.id===a);if(n){let r=e.screenToWorld(t.clientX,t.clientY);Y.patchNode(a,{posX:Math.round(r.x),posZ:Math.round(r.z)}).then(()=>{if(!n.deviceBindingId){let e=Gu(r.x,r.z,95);e&&Y.bindNode(a,e.id).catch(e=>{L.value=I(e)})}N.value&&G(N.value)}).catch(e=>{L.value=I(e)})}return}let o=n.getData(`application/x-aw-model`)||n.getData(`text/plain`);if(o){let n=e.screenToWorld(t.clientX,t.clientY),r=e.dropModelOnWorld(n.x,n.z,o);qt.value=r}})}function G(e){`syncDevices`in e&&e.syncDevices(Gl.value)}y(()=>M.rev,e=>{let t=P.value;!t||!M.loaded||e===0||(t.hydrate(W(),Object.values(M.layouts),Gl.value),Rt())});function It(e){if(!e||!(`applySceneLayouts`in e))return;let t=e;t.applySceneLayouts(Object.values(M.layouts)),t.rebuild(W())}function Rt(){M.load().finally(()=>{})}function zt(e){let t=P.value;t&&(typeof e.posX==`number`&&typeof e.posZ==`number`&&t.focusTo(e.posX,e.posZ),t.setSelected?.({kind:`device`,id:e.id}))}let Bt=x({});function Vt(){if(!(typeof localStorage>`u`))try{let e=JSON.parse(localStorage.getItem(Al)||`{}`);for(let t of Object.keys(e))e[t]&&Number.isFinite(e[t].x)&&(Bt[t]=e[t])}catch{}}function Ht(){try{localStorage.setItem(Al,JSON.stringify(Bt))}catch{}}let Ut=null;function Wt(e,t){let n=e.currentTarget,r=n.closest(`.drag-panel`),i=n.closest(`.town-frame`);if(!r||!i)return;e.preventDefault();let a=r.getBoundingClientRect(),o=i.getBoundingClientRect();r.style.left=`${a.left-o.left}px`,r.style.top=`${a.top-o.top}px`,r.style.bottom=`auto`,r.style.transform=`none`,Bt[t]={x:a.left-o.left,y:a.top-o.top},Ut={frame:i,panel:r,offX:e.clientX-a.left,offY:e.clientY-a.top},document.body.style.userSelect=`none`,document.body.style.cursor=`grabbing`;let s=e=>{let n=Ut;if(!n)return;let r=n.frame.getBoundingClientRect(),i=e.clientX-n.offX-r.left,a=e.clientY-n.offY-r.top,o=n.panel.offsetWidth,s=Math.max(-o+90,Math.min(i,r.width-30)),c=Math.max(4,Math.min(a,r.height-34));n.panel.style.left=`${s}px`,n.panel.style.top=`${c}px`,Bt[t]={x:s,y:c}},c=()=>{Ut=null,document.body.style.userSelect=``,document.body.style.cursor=``,window.removeEventListener(`pointermove`,s),window.removeEventListener(`pointerup`,c),Ht()};window.addEventListener(`pointermove`,s),window.addEventListener(`pointerup`,c)}Vt();let Gt=C(null),Kt=e=>`#${e.toString(16).padStart(6,`0`)}`,qt=C(null),Jt=b(()=>{let e=qt.value;return e?e.mode===`rebind`?_(`townView.kgz2nej193`,{p0:e.agentId?.slice(0,8)??_(`townView.k479op189`),p1:e.textureKey}):_(`townView.k5e2460194`,{p0:e.textureKey}):``}),Yt=b(()=>{let e=F.value;if(!e||e.kind!==`agent`)return[];let t=rn.get(e.id);if(!t||t.length===0)return[];let n=q.value.length?q.value[q.value.length-1]?.at??0:0;return t.filter(e=>e.at>n)}),Xt=b(()=>!F.value||F.value.kind!==`agent`?``:P.value?.getAgentName?.(F.value.id)??_(`townView.k3xdvm125`)),K=b(()=>{let e=F.value;if(!e||e.kind!==`agent`)return null;for(let t of Object.values(T.agents)){let n=(t??[]).find(t=>t.agentId===e.id);if(n)return n}return null}),Zt=b(()=>K.value?.role===`lead`?`Leader`:`Worker`),Qt=b(()=>K.value?.role===`lead`?`LEADER`:`WORKER`),$t=b(()=>{let e=K.value?.state;return _(e===`busy`?`townView.k3n4l5f163`:e===`stopped`?`townView.k3n58d1164`:`townView.k3zcvb115`)}),q=D([]),en=D(!1),tn=new Map,nn=D(null),rn=x(new Map);function an(e,t,n,r,i){let a=typeof r==`number`?r:r?Date.parse(String(r)):Date.now();if(!Number.isFinite(a)||a<=0)return;let o=rn.get(e);o||(o=[],rn.set(e,o));let s=o[o.length-1];s&&s.text===n&&Math.abs(a-s.at)<1500||(o.push({id:`live-${i??a}-${o.length}`,agentId:e,text:n,kind:t,at:a,live:!0}),o.length>Pl&&o.splice(0,o.length-Pl))}function on(){return typeof document>`u`?``:document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``}function sn(e){for(let t of Object.keys(T.agents))if((T.agents[t]??[]).some(t=>t.agentId===e))return t}async function cn(e,t,n=!1){let r=tn.get(e);if(!n&&r&&Date.now()-r.at<Nl){q.value=r.rows;return}en.value=!0;try{let n=on(),r=`/api/workshop/channels/${t}/events?limit=500&excludeTypes=agent.delta`,i=await(await fetch(r,{headers:n?{authorization:`Bearer ${decodeURIComponent(n)}`}:{}})).json().catch(()=>null),a=i?.data?.items??(Array.isArray(i?.data)?i.data:[]),o=[];for(let t of a){let n=fe(t)?.bubble;if(!n||n.agentId!==e)continue;let r=t.at,i=typeof r==`number`?r:r?Date.parse(String(r)):0;o.push({id:`${String(t.seq??o.length)}-${o.length}`,agentId:n.agentId,text:n.text,kind:n.kind,at:i,live:!1})}o.sort((e,t)=>e.at-t.at),tn.set(e,{rows:o,at:Date.now()}),q.value=o}catch{q.value=[]}finally{en.value=!1}}function zl(){let e=F.value;if(!e||e.kind!==`agent`)return;let t=sn(e.id);t&&cn(e.id,t,!0)}y(()=>F.value,e=>{if(!e||e.kind!==`agent`){q.value=[];return}let t=sn(e.id);t?cn(e.id,t):q.value=[]},{immediate:!0});let Bl=b(()=>{let e=F.value;if(!e||e.kind!==`agent`)return`#35e0a0`;let t=sn(e.id);return t?ve(t)??`#35e0a0`:`#35e0a0`});function Vl(e){switch(e){case`artifact`:return _(`townView.k3w9q9165`);case`delta`:return`……`;case`info`:return _(`townView.k44xa7166`);case`error`:return _(`townView.k3zbgf167`);default:return``}}function Hl(e){if(!e||!Number.isFinite(e)||e<=0)return`--:--:--`;let t=new Date(e);return`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}:${String(t.getSeconds()).padStart(2,`0`)}`}y(()=>q.value.length+Yt.value.length,async()=>{await d();let e=nn.value;e&&(e.scrollTop=e.scrollHeight)});let Ul=e=>Y.lines.find(t=>t.id===e)?.color,Wl=b(()=>Y.nodes.map(e=>({id:e.id,workspaceId:``,name:e.name,modelRef:`dcw-${e.templateRef.startsWith(`dcw-`)?e.templateRef.slice(4):e.templateRef}`,boundAgentId:null,kind:`daq`,telemetry:{value:e.value??0},desired:{},controls:[],state:e.enabled?e.state===`error`?`alarm`:`running`:`offline`,posX:e.posX,posZ:e.posZ,lineId:e.lineId||void 0,lineColor:e.lineId?Ul(e.lineId):void 0,updatedAt:e.lastWriteAt??e.createdAt}))),Gl=b(()=>[...j.twins.filter(e=>!du(e)),...X.value,...Wl.value]),Kl=e=>Gl.value.find(t=>t.id===e),ql=b(()=>_e.value&&xe.value===0&&!Gl.value.some(e=>typeof e.posX==`number`&&typeof e.posZ==`number`));function Jl(e){return le(()=>{j.load().then(()=>{if(N.value===e){e.syncDevices(Gl.value);for(let t of e.getDeviceNodes()){let n=Kl(t.twinId);n&&e.updateDeviceNode(t.twinId,n.state,n.telemetry)}}})},5e3)}let Yl=C([]),J=ke(),Y=De(),Xl=x(Y.templates.map(e=>({id:e.key,name:e.name,code:e.code,ch:e.ch,unit:e.unit,min:e.min,max:e.max,decimals:e.decimals,icon:e.icon})));y(()=>Y.templates,e=>{e?.length&&Xl.splice(0,Xl.length,...e.map(e=>({id:e.key,name:e.name,code:e.code,ch:e.ch,unit:e.unit,min:e.min,max:e.max,decimals:e.decimals,icon:e.icon})))},{immediate:!0,deep:!0});let Zl=ln(`aw.twin.treeOpen`,{});function Ql(e){Zl.value[e]=!Zl.value[e]}let $l=b(()=>{let e=new Map;for(let t of J.nodes){let n=t.templateRef.startsWith(`daq-`)?t.templateRef.slice(4):t.templateRef,r=e.get(n)??[];r.push(t),e.set(n,r)}for(let t of e.values())t.sort((e,t)=>e.name.localeCompare(t.name,void 0,{numeric:!0}));return e}),eu=b(()=>{let e=new Map;for(let t of Y.nodes){let n=t.templateRef.startsWith(`dcw-`)?t.templateRef.slice(4):t.templateRef,r=e.get(n)??[];r.push(t),e.set(n,r)}for(let t of e.values())t.sort((e,t)=>e.name.localeCompare(t.name,void 0,{numeric:!0}));return e});async function tu(e){try{let t=($l.value.get(e.id)?.length??0)+1;await J.createFromTemplate(`daq-${e.id}`,{name:`${e.name} ${String(t).padStart(2,`0`)}`}),Zl.value[`daq:${e.id}`]=!0}catch(e){L.value=I(e)}}async function nu(e){try{await Y.createFromTemplate(`dcw-${e.id}`,{}),Zl.value[`dcw:${e.id}`]=!0}catch(e){L.value=I(e)}}function ru(e,t){e.dataTransfer&&(e.dataTransfer.setData(`application/x-aw-daq-node`,t.id),e.dataTransfer.setData(`text/plain`,t.id),e.dataTransfer.effectAllowed=`copy`)}function iu(e,t){e.dataTransfer&&(e.dataTransfer.setData(`application/x-aw-dcw-node`,t.id),e.dataTransfer.setData(`text/plain`,t.id),e.dataTransfer.effectAllowed=`copy`)}function au(e){return!J.controller.running||!e.enabled||e.state===`offline`?`offline`:e.state===`alarm`?`alarm`:e.state===`warn`?`warn`:`running`}function ou(e){return!e.enabled||e.state===`error`?`offline`:`running`}let su=x(Oe.map(e=>({id:e.key,name:e.name,code:e.code,ch:e.ch,unit:e.unit,base:e.base,amp:e.amp,min:e.min,max:e.max,decimals:e.decimals,icon:e.icon})));y(()=>J.templates,e=>{e?.length&&su.splice(0,su.length,...e.map(e=>({id:e.key,name:e.name,code:e.code,ch:e.ch,unit:e.unit,base:e.base,amp:e.amp,min:e.min,max:e.max,decimals:e.decimals,icon:e.icon})))},{immediate:!0,deep:!0});let cu=e=>{let t=e.startsWith(`daq-`)?e.slice(4):e;return su.find(e=>e.id===t)},lu=e=>cu(e.templateRef);function uu(e){return!J.controller.running||!e.enabled?`offline`:e.state===`alarm`?`alarm`:`running`}let du=e=>e.kind===`daq`||(e.modelRef??``).startsWith(`daq-`),X=b(()=>J.nodes.map(e=>({id:e.id,workspaceId:``,name:e.name,modelRef:`daq-${lu(e)?.id??`unknown`}`,boundAgentId:null,kind:`daq`,telemetry:{value:e.value??0},desired:{},controls:[],state:uu(e),posX:e.posX,posZ:e.posZ,lineId:e.lineId||void 0,lineColor:e.lineId?Ul(e.lineId):void 0,updatedAt:e.lastAt??e.createdAt}))),fu=D(0),pu=new Map,mu=new Map,hu=null,gu=!1;function _u(){gu||(gu=!0,requestAnimationFrame(()=>{gu=!1,fu.value++}))}function vu(e){if(!e.nodeId||typeof e.value!=`number`||!Number.isFinite(e.value))return;let t=e.state??`ok`;pu.set(e.nodeId,{value:e.value,state:t,atMs:Date.parse(e.at??``)||Date.now()});let n=mu.get(e.nodeId);n||(n=[],mu.set(e.nodeId,n)),n.push(e.value),n.length>Fl&&n.shift();let r=xu.get(e.nodeId);r&&r!==t&&Su(e.nodeId,r,t,e.value),r!==t&&xu.set(e.nodeId,t),_u()}let yu=b(()=>{fu.value;let e=new Map;for(let t of J.nodes){let n=lu(t);if(!n)continue;let r=pu.get(t.id),i=r&&(!t.lastAt||r.atMs>=Date.parse(t.lastAt)),a=i?r.value:t.value;if(a==null)continue;let o=i?r.state:t.state;e.set(t.id,{value:a,hist:mu.get(t.id)??t.hist,phase:0,tpl:n,alarm:o===`alarm`})}return e}),bu=e=>e.value.toFixed(e.tpl.decimals),xu=new Map;function Su(e,t,n,r){let i=J.nodeById(e),a=i?lu(i):null,o=i?.deviceIds??(i?.deviceBindingId?[i.deviceBindingId]:[]),s=(o.length?o.map(e=>j.byId(e)?.name??e.slice(0,8)).join(` / `):null)??i?.name??e.slice(0,8),c=`${r?.toFixed(a?.decimals??2)??`--`} ${a?.unit??``}`;n===`alarm`?lf(_(`townView.k113fir9195`,{p0:s,p1:a?.ch??``,p2:c}),`crit`,s):n===`warn`?lf(_(`townView.k1knv89d196`,{p0:s,p1:a?.ch??``,p2:c}),`warn`,s):t!==`ok`&&n===`ok`&&lf(_(`townView.ksjancw197`,{p0:s,p1:a?.ch??``}),`info`,s)}y(()=>J.nodes.map(e=>`${e.id}:${e.state}`).join(`|`),()=>{for(let e of J.nodes){let t=xu.get(e.id);xu.set(e.id,e.state),!(!t||t===e.state)&&Su(e.id,t,e.state,e.value)}});function Cu(e){return Math.max(0,Math.ceil((Date.parse(e.expiresAt)-Date.now())/1e3))}let wu=()=>{let e=document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``;return{"content-type":`application/json`,authorization:`Bearer ${decodeURIComponent(e)}`}},Tu=D([]),Eu=D(`dcw`),Du=D(``),Ou=D(`auto`),ku=D([]),Au=x({}),ju=null;async function Mu(){let e=F.value?.id;if(!(F.value?.kind!==`agent`||!e))try{let t=await fetch(`/api/workshop/agent-tools/bindings?agentId=${encodeURIComponent(e)}`,{headers:wu()}).then(e=>e.json());Tu.value=t.data?.bindings??[]}catch{}}async function Nu(){let e=F.value?.id;if(!(F.value?.kind!==`agent`||!e))try{let t=await fetch(`/api/workshop/agent-tools/approvals?agentId=${encodeURIComponent(e)}`,{headers:wu()}).then(e=>e.json());ku.value=t.data?.approvals??[]}catch{}}async function Pu(){!F.value?.id||!Du.value||(await fetch(`/api/workshop/agent-tools/bindings`,{method:`POST`,headers:wu(),body:JSON.stringify({agentId:F.value.id,nodeId:Du.value,kind:Eu.value,mode:Ou.value})}),Du.value=``,await Mu())}async function Fu(e){await fetch(`/api/workshop/agent-tools/bindings/${e}`,{method:`DELETE`,headers:wu()}),await Mu()}async function Iu(e,t){await fetch(`/api/workshop/agent-tools/bindings/${e}`,{method:`PATCH`,headers:wu(),body:JSON.stringify({mode:t})}),await Mu()}async function Lu(e,t){await fetch(`/api/workshop/agent-tools/approvals/${e}/decide`,{method:`POST`,headers:wu(),body:JSON.stringify({approved:t,comment:Au[e]??``})}),Reflect.deleteProperty(Au,e),await Nu()}y(()=>F.value?.id,e=>{ju&&=(clearInterval(ju),null),F.value?.kind===`agent`&&e&&(Mu(),Nu(),ju=le(()=>{Nu()},1e3))},{immediate:!0}),s(()=>{ju&&clearInterval(ju)});function Ru(e){return e.kind===`dcw`?Y.nodeById(e.nodeId)?.name??e.nodeId:J.nodeById(e.nodeId)?.name??e.nodeId}let zu=e=>J.nodeById(e)?.deviceIds?.[0]??J.nodeById(e)?.deviceBindingId??null,Bu=e=>e?J.nodes.filter(t=>(t.deviceIds??(t.deviceBindingId?[t.deviceBindingId]:[])).includes(e)).map(e=>e.id):[];function Vu(e,t){J.bindNode(e,t).catch(e=>{L.value=I(e)})}function Hu(e){J.bindNode(e,null).catch(e=>{L.value=I(e)})}let Uu={thermo:`<path d="M10 4a2 2 0 0 1 4 0v9a4 4 0 1 1-4 0V4Z"/><circle cx="12" cy="16.5" r="1.6"/>`,pressure:`<circle cx="12" cy="12" r="8"/><path d="m12 12 3.5-3.5"/><circle cx="12" cy="12" r="1.2"/>`,tension:`<circle cx="12" cy="10" r="4"/><path d="M4 18.5h16M8 18.5V14M16 18.5V14"/><path d="M2.5 10H8M16 10h5.5"/>`,encoder:`<circle cx="12" cy="12" r="8"/><circle cx="12" cy="12" r="2"/><path d="M12 4v3M12 17v3M4 12h3M17 12h3"/>`,camera:`<rect x="3" y="7" width="13" height="10" rx="2"/><path d="m16 11 5-3v8l-5-3"/><circle cx="8" cy="12" r="2.5"/>`,gateway:`<rect x="8" y="11" width="8" height="10" rx="1.5"/><circle cx="12" cy="5.5" r="1.5"/><path d="M12 10V7M8.5 8.5a5 5 0 0 1 7 0M6 6a8.5 8.5 0 0 1 12 0"/>`},Wu=e=>Uu[e]??Uu.gateway;function Gu(e,t,n){let r=null,i=n;for(let n of j.twins){if(du(n)||typeof n.posX!=`number`||typeof n.posZ!=`number`)continue;let a=Math.hypot(n.posX-e,n.posZ-t);a<i&&(i=a,r=n)}return r}let Ku=D(!1),qu=D(!1),Ju=D(420);function Yu(e,t){let n=t.currentTarget,r=n?.closest(`.panel`);if(n&&r){let e=n.getBoundingClientRect().top-r.getBoundingClientRect().top-12;Ju.value=Math.max(160,Math.round(e))}e===`daq`?Ku.value=!Ku.value:qu.value=!qu.value}let Xu=b(()=>{let e=F.value?.kind===`device`?F.value.id:``,t={};if(!e)return t;for(let n of J.nodes){if(n.deviceBindingId===e)continue;let r=lu(n);r&&(t[r.id]??=[]).push({id:n.id,name:n.name,tpl:r,devName:n.deviceBindingId?j.byId(n.deviceBindingId)?.name??null:null,placed:typeof n.posX==`number`})}return t}),Zu=b(()=>Object.values(Xu.value).reduce((e,t)=>e+t.length,0));function Qu(e){let t=F.value?.kind===`device`?F.value.id:``;t&&(Vu(e,t),Ku.value=!1)}let $u=new Map;function ed(e,t){let n=t;n?$u.set(e,n):$u.delete(e)}function td(){for(let[e,t]of $u){let n=yu.value.get(e),r=t.getContext(`2d`);if(!n||!r)continue;let i=t.width,a=t.height;r.clearRect(0,0,i,a);let o=n.hist;if(o.length<2)continue;let s=o[0],c=o[0];for(let e of o)e<s&&(s=e),e>c&&(c=e);let l=Math.max(1e-6,c-s);r.strokeStyle=Nf(e),r.lineWidth=1.4,r.beginPath(),o.forEach((e,t)=>{let n=t/(o.length-1)*(i-2)+1,c=a-2-(e-s)/l*(a-4);t?r.lineTo(n,c):r.moveTo(n,c)}),r.stroke()}}y(()=>J.nodes.map(e=>`${e.id}:${e.posX??``}:${e.posZ??``}:${e.enabled}:${e.state}:${e.deviceBindingId??``}`).join(`|`),()=>{N.value&&G(N.value)}),y(()=>Y.nodes.map(e=>`${e.id}:${e.posX??``}:${e.posZ??``}:${e.enabled}:${e.deviceBindingId??``}:${e.value??``}`).join(`|`),()=>{N.value&&G(N.value)}),y(()=>J.nodes.map(e=>`${e.id}:${e.deviceBindingId??``}`).join(`|`),()=>{let e=P.value;!e||!(`syncDaqLinks`in e)||e.syncDaqLinks(J.nodes.filter(e=>e.deviceBindingId).map(e=>({daqId:e.id,deviceId:e.deviceBindingId})))});let nd=b(()=>F.value?.kind===`device`&&(rd.value?.modelRef||``).startsWith(`daq-`)),rd=b(()=>F.value?.kind===`device`?Kl(F.value?.id)??null:null),id=b(()=>{let e=F.value?.id;return e?yu.value.get(e)??null:null}),ad=D(``),od=b(()=>{let e=F.value?.id;return e?Bu(e).map(e=>{let t=Kl(e),n=yu.value.get(e),r=n?.tpl??cu(t?.modelRef??``);return{daqId:e,name:t?.name??e,ch:r?.ch??t(`townView.k1ef3cls168`),icon:r?.icon??`gateway`,value:n?bu(n):`--`,unit:n?.tpl.unit??r?.unit??``,color:Nf(e)}}):[]}),sd=b(()=>{let e=F.value?.id;if(!e)return``;let t=zu(e);return t?j.twins.find(e=>e.id===t)?.name??t.slice(0,8):``}),cd=e=>e?Y.nodes.filter(t=>t.deviceBindingId===e):[];function ld(e){let t=Y.nodeById(e);if(!t||!t.lineId)return null;let n=Y.lineStateOf(t.lineId);if(!n.active||!n.recipeId)return null;let r=Y.recipes.find(e=>e.id===n.recipeId);return r?r.params.find(t=>t.nodeId===e)??null:null}let ud=b(()=>{let e=F.value?.id;return e?cd(e).map(e=>{let t=e.templateRef.startsWith(`dcw-`)?e.templateRef.slice(4):e.templateRef,n=Y.templates.find(e=>e.key===t),r=ld(e.id);return{dcwId:e.id,name:e.name,ch:n?.ch??t,unit:e.unit,icon:n?.icon??`gateway`,value:e.value,state:e.state,decimals:e.decimals,gMin:e.min,gMax:e.max,rMin:r?.min??null,rMax:r?.max??null}}):[]});function dd(e){let t=ld(e.id);return t&&(t.min!=null||t.max!=null)?{lo:t.min??-1/0,hi:t.max??1/0,src:`recipe`}:{lo:e.min,hi:e.max,src:`global`}}function fd(e){let t=e.rMin??e.gMin,n=e.rMax??e.gMax;return!Number.isFinite(t)||!Number.isFinite(n)||n<=t||e.value==null?50:Math.min(100,Math.max(0,(e.value-t)/(n-t)*100))}let pd=x({}),md=x({});function hd(e){let t=pd[e.id];if(t==null||t===``)return;let n=dd(e);if(Number(t)<n.lo||Number(t)>n.hi){md[e.id]=_(`townView.kbuyve5198`,{p0:n.src===`recipe`?_(`townView.kb251ac190`):_(`townView.k1iwj796179`),p1:Number.isFinite(n.lo)?n.lo:`-∞`,p2:Number.isFinite(n.hi)?n.hi:`+∞`});return}md[e.id]=``,Y.write(e.id,Number(t)).then(t=>{t.ok||(md[e.id]=t.message)}).catch(t=>{md[e.id]=I(t)})}let gd=e=>{let t=e.startsWith(`dcw-`)?e.slice(4):e;return Xl.find(e=>e.id===t)},_d=b(()=>{let e=F.value?.kind===`device`?F.value.id:``,t={};if(!e)return t;for(let n of Y.nodes){if(n.deviceBindingId===e)continue;let r=gd(n.templateRef);r&&(t[r.id]??=[]).push({id:n.id,name:n.name,tpl:r,devName:n.deviceBindingId?j.byId(n.deviceBindingId)?.name??null:null,placed:typeof n.posX==`number`})}return t}),vd=b(()=>Object.values(_d.value).reduce((e,t)=>e+t.length,0));function yd(e){let t=F.value?.kind===`device`?F.value.id:``;t&&(Y.bindNode(e,t).catch(e=>{L.value=I(e)}),qu.value=!1)}function bd(e){Y.bindNode(e,null).catch(e=>{L.value=I(e)})}let xd=b(()=>F.value?.kind===`device`&&(Kl(F.value?.id)?.modelRef??``).startsWith(`dcw-`)),Z=b(()=>{let e=F.value?.id;return e?Y.nodeById(e)??null:null}),Sd=b(()=>{let e=Z.value;return e?dd(e):null}),Cd=b(()=>{let e=Z.value;return e?.deviceBindingId?j.twins.find(t=>t.id===e.deviceBindingId)?.name??e.deviceBindingId.slice(0,8):``}),wd=D(``);function Td(){let e=Z.value;!e||!wd.value||(Y.bindNode(e.id,wd.value).catch(e=>{L.value=I(e)}),wd.value=``)}function Ed(){let e=Z.value;e&&Y.bindNode(e.id,null).catch(e=>{L.value=I(e)})}function Dd(){let e=Z.value;e&&hd(e)}function Od(e){if(!e)return`--`;let t=dd(e);return`${Number.isFinite(t.lo)?t.lo:`-∞`} ~ ${Number.isFinite(t.hi)?t.hi:`+∞`} ${e.unit}`}function kd(e){if(!e)return``;let t=dd(e);return`${Number.isFinite(t.lo)?t.lo:``} ~ ${Number.isFinite(t.hi)?t.hi:``}`}let Q=b(()=>{let e=F.value?.id;return e?J.nodeById(e)??null:null}),Ad=D(null);y(Q,e=>{Ad.value=e?e.intervalMs??J.controller.defaultIntervalMs:null},{immediate:!0});function jd(){let e=Q.value;!e||Ad.value==null||J.patchNode(e.id,{intervalMs:Math.max(120,Math.min(6e4,Math.round(Ad.value)))}).catch(e=>{L.value=I(e)})}function Md(e,t){let n=Number(t);Number.isFinite(n)&&J.patchNode(Q.value.id,{[e]:(e.startsWith(`warn`),n)}).catch(e=>{L.value=I(e)})}let Nd=D(!0);function Pd(e){let t=zu(e)??e,n=Kl(t);n&&(F.value={kind:`device`,id:t,scale:F.value?.scale??1,rotation:F.value?.rotation??0},nt.value=n.name)}let Fd=D(!1);function Id(){Fd.value=!Fd.value,P.value?.setAutoOrbit(Fd.value)}function Ld(){let e=P.value,t=F.value;if(e){if(!t){L.value=_(`townView.k15tn2fh169`);return}if(t.kind===`device`){let n=e.getDeviceNodes().find(e=>e.twinId===t.id);n&&e.focusTo(n.x,n.z)}else{let n=e.getAgent(t.id);n&&e.focusTo(n.root.position.x,n.root.position.z)}}}let Rd=D({}),zd=ln(`aw.twin.calloutNear`,1150),Bd=b(()=>{let e={};for(let t of X.value){let n=yu.value.get(t.id);if(!n)continue;let r={ch:n.tpl.ch,value:bu(n),unit:n.tpl.unit,alarm:n.alarm??!1};(e[t.id]??=[]).push(r);let i=zu(t.id);i&&(e[i]??=[]).push(r)}return e}),Vd=b(()=>{let e={};for(let t of Y.nodes){if(!t.deviceBindingId)continue;let n=t.templateRef.startsWith(`dcw-`)?t.templateRef.slice(4):t.templateRef,r=Y.templates.find(e=>e.key===n),i=dd(t);(e[t.deviceBindingId]??=[]).push({id:t.id,ch:r?.ch??n,name:t.name,unit:t.unit,value:t.value,readValue:t.readValue,lastReadAt:t.lastReadAt,decimals:t.decimals,lo:i.lo,hi:i.hi,src:i.src})}return e}),Hd=D({pos:{x:0,y:0,z:0},target:{x:0,z:0},yaw:0,dolly:1}),Ud=b(()=>{if(!Nd.value)return[];let e=P.value;if(!e)return[];let t=e.getDeviceNodes(),n=Jd.value?.clientWidth??1600,r=[];for(let e of X.value){let n=yu.value.get(e.id);if(!n)continue;let i=zu(e.id),a=i?t.find(e=>e.twinId===i):t.find(t=>t.twinId===e.id);if(!a)continue;let o=Rd.value[e.id];o&&r.push({t:e,st:n,anchor:a,pos:o})}let i=new Map(r.map(e=>[e.anchor.twinId,e.anchor.topY])),a=new Map;for(let e of r){let t=a.get(e.anchor.twinId)??[];t.push(e),a.set(e.anchor.twinId,t)}let o=[];for(let e of a.values()){e.sort((e,t)=>e.t.id<t.t.id?-1:1);let t=e[0],r=Math.hypot(Hd.value.pos.x-t.anchor.x,Hd.value.pos.y-(i.get(t.anchor.twinId)??60),Hd.value.pos.z-t.anchor.z)<zd.value,a=Math.min(n-96,Math.max(96,t.pos.x));e.forEach((e,n)=>{let{lo:i,hi:s}=bf(e.st.tpl.min,e.st.tpl.max);o.push({id:e.t.id,x:a,y:t.pos.y-n*Il,label:`${e.st.tpl.ch} · ${e.anchor.name||e.t.name}`,value:bu(e.st),unit:e.st.tpl.unit,lo:i,hi:s,warn:e.st.alarm??!1,near:r,leader:n===0})})}return o}),Wd=null,Gd=b(()=>j.twins.length),Kd=b(()=>j.twins.filter(e=>e.state===`running`).length),qd=ue(),Jd=D(null),Yd=D(`std`);function Xd(e){Yd.value=e.target.value,P.value?.setViewPreset(Yd.value)}function Zd(){document.fullscreenElement?document.exitFullscreen():Jd.value?.requestFullscreen?.()}let Qd=b(()=>j.twins.filter(e=>e.state===`idle`).length),$d=b(()=>j.twins.filter(e=>e.state===`alarm`).length),ef=b(()=>j.twins.filter(e=>e.state===`offline`).length),tf=b(()=>{let e=j.twins.length;if(!e)return 100;let t=Kd.value+Qd.value;return Math.round(t/e*100)}),nf=b(()=>tf.value>=90?`#35e0a0`:tf.value>=60?`#f6c453`:`#ff6b6b`),rf=D(null);function af(){let e=rf.value;if(!e)return;let t=e.getContext(`2d`);if(!t)return;let n=j.twins.length||1,r=[{n:Kd.value,color:`#35e0a0`},{n:Qd.value,color:`#f6c453`},{n:$d.value,color:`#ff6b6b`},{n:ef.value,color:`#3a4a63`}];t.clearRect(0,0,118,118),t.lineWidth=12;let i=-Math.PI/2;for(let e of r){if(!e.n)continue;let r=e.n/n*Math.PI*2;t.beginPath(),t.strokeStyle=e.color,t.arc(59,59,48,i,i+r),t.stroke(),i+=r}}y(tf,()=>af()),y(()=>j.twins.length,()=>af()),oe(()=>af());let of=D([]),sf=0,cf=[_(`townView.k3ng94k170`),_(`townView.k3mi2n0171`),_(`townView.k3ncnxl172`)];function lf(e,t=`warn`,n=`SYSTEM`){let r=new Date,i=[r.getHours(),r.getMinutes(),r.getSeconds()].map(e=>String(e).padStart(2,`0`)).join(`:`);of.value.unshift({id:++sf,txt:e,src:n,time:i,state:0,level:t}),of.value.length>30&&of.value.pop()}let uf=b(()=>of.value.filter(e=>e.state<2).length);function df(e){let t=of.value.find(t=>t.id===e);t&&(t.state=Math.min(2,t.state+1))}function ff(){of.value=of.value.map(e=>({...e,state:2}))}let pf=D(100),mf=ln(`aw.twin.fpsCap`,`60`),hf=[{v:`60`,label:`60`},{v:`120`,label:`120`},{v:`0`,label:`∞`}];function gf(e){mf.value=e,P.value?.setFpsCap(Number(e))}let _f=ln(`aw.twin.quality`,`auto`),vf=[{v:`auto`,label:`townView.qualityAuto`},{v:`normal`,label:`townView.qualityNormal`},{v:`hd`,label:`townView.qualityHD`},{v:`ultra`,label:`townView.qualityUltra`}];function yf(e){_f.value=e,P.value?.setQualityMode(e)}function bf(e,t){let n=pf.value/100,r=(e+t)/2;return{lo:r-(r-e)*n,hi:r+(t-r)*n}}let xf=D(!1);function Sf(){xf.value=!xf.value,lf(xf.value?_(`townView.kb157zk173`):_(`townView.k1s9qzr9174`),xf.value?`crit`:`info`,`SYSTEM`)}let Cf=D(1.12),wf=D(1);function Tf(e,t,n){return`${Math.min(100,Math.max(0,(e-t)/(n-t)*100)).toFixed(1)}%`}function Ef(e){Cf.value=Number(e.target.value)/100,P.value?.setExposure(Cf.value)}function Df(e){wf.value=Number(e.target.value)/100,P.value?.setTerritoryOpacity(wf.value)}function Of(){P.value?.resetView(),Cf.value=1.12,wf.value=1,P.value?.setExposure(1.12),P.value?.setTerritoryOpacity(1)}function kf(e){jf.value={...jf.value,[e]:!jf.value[e]}}let Af=D(null),jf=D({}),Mf=[`#35e0a0`,`#41c8f4`,`#f6c453`,`#a78bfa`,`#ff6b6b`,`#4dd0e1`],Nf=e=>Mf[Math.abs(e.split(``).reduce((e,t)=>e*31+t.charCodeAt(0),7))%Mf.length]??`#35e0a0`;function Pf(e,t){let n=jf.value[e];return n==null?(t??X.value.findIndex(t=>t.id===e))<Ll:!n}let Ff=D(!1),If=b(()=>Math.max(X.value.length-Ll,0)),Lf=b(()=>Ff.value?X.value:X.value.slice(0,Ll));function Rf(){let e=Af.value;if(!e)return;let t=Math.min(window.devicePixelRatio,2),n=e.clientWidth,r=e.clientHeight;(e.width!==n*t||e.height!==r*t)&&(e.width=n*t,e.height=r*t);let i=e.getContext(`2d`);if(i){i.setTransform(t,0,0,t,0,0),i.clearRect(0,0,n,r),i.strokeStyle=`rgba(29, 42, 66, 0.6)`,i.lineWidth=1;for(let e=1;e<4;e++){let t=r/4*e;i.beginPath(),i.moveTo(0,t),i.lineTo(n,t),i.stroke()}X.value.forEach((e,t)=>{if(!Pf(e.id,t))return;let a=yu.value.get(e.id);if(!a)return;let o=mu.get(e.id)??a.hist;if(o.length<2)return;let s=a.tpl.min,c=a.tpl.max;i.strokeStyle=Nf(e.id),i.lineWidth=1.6,i.beginPath(),o.forEach((e,t)=>{let a=t/119*n,o=r-(e-s)/(c-s)*(r-8)-4;t===0?i.moveTo(a,o):i.lineTo(a,o)}),i.stroke()})}}let zf=null,Bf=null,Vf=null,Hf=null,Uf=D(null),Wf=b(()=>Math.min(5,Math.max(.4,Hd.value.dolly))),$=null;function Gf(e){let t=e.clientWidth||220,n=e.clientHeight||148;return{s:t/(Rl*Wf.value),w:t,h:n}}function Kf(){let e=Uf.value,t=Gt.value,n=P.value;if(!e)return;let r=Math.min(window.devicePixelRatio||1,2),i=Gf(e);(e.width!==Math.round(i.w*r)||e.height!==Math.round(i.h*r))&&(e.width=Math.round(i.w*r),e.height=Math.round(i.h*r));let a=e.getContext(`2d`);if(!a)return;a.setTransform(r,0,0,r,0,0),a.fillStyle=`#060b13`,a.fillRect(0,0,i.w,i.h);let o=n?.getCameraPose(),s=o?o.target.x:jl/2,c=o?o.target.z:Ml/2,l=i.w/2/i.s,u=i.h/2/i.s,d=(e,t)=>({x:i.w/2+(e-s)*i.s,y:i.h/2+(t-c)*i.s}),f=(e,t,n=60)=>e>s-l-n&&e<s+l+n&&t>c-u-n&&t<c+u+n;a.fillStyle=`rgba(65,200,244,.10)`;for(let e=Math.floor((s-l)/250)*250;e<=s+l;e+=250)for(let t=Math.floor((c-u)/250)*250;t<=c+u;t+=250){let n=d(e,t);a.fillRect(n.x-1,n.y-1,1.6,1.6)}let p=d(0,0),m=d(jl,Ml);a.strokeStyle=`rgba(53,224,160,.35)`,a.lineWidth=1,a.strokeRect(p.x,p.y,m.x-p.x,m.y-p.y);for(let e of t?.blocks??[]){let t=e.x*jl,n=e.y*Ml;if(!f(t,n,400))continue;let r=d(t,n),o=Math.max(4,(e.rx??.03)*jl*i.s),s=Math.max(3,(e.rz??.03)*Ml*i.s);a.strokeStyle=Kt(e.color),a.globalAlpha=.6,a.lineWidth=1,a.beginPath(),a.ellipse(r.x,r.y,o,s,0,0,Math.PI*2),a.stroke(),a.globalAlpha=.08,a.fillStyle=Kt(e.color),a.fill(),a.globalAlpha=1}a.strokeStyle=`rgba(65,200,244,.28)`;let h=new Set(J.nodes.filter(e=>e.deviceBindingId).map(e=>e.id));for(let[e,n]of J.nodes.filter(e=>e.deviceBindingId).map(e=>[e.id,e.deviceBindingId])){let r=(t?.devices??[]).find(t=>t.twinId===e),i=(t?.devices??[]).find(e=>e.twinId===n);if(!r||!i)continue;let o=d(r.x*jl,r.y*Ml),s=d(i.x*jl,i.y*Ml);a.beginPath(),a.moveTo(o.x,o.y),a.lineTo(s.x,s.y),a.stroke()}let g=e=>e.x>=7&&e.x<=i.w-7&&e.y>=7&&e.y<=i.h-7?{...e,edge:!1}:{x:Math.min(i.w-7,Math.max(7,e.x)),y:Math.min(i.h-7,Math.max(7,e.y)),edge:!0};for(let e of t?.devices??[]){let t=g(d(e.x*jl,e.y*Ml));if(e.daq)a.globalAlpha=t.edge?.4:1,a.fillStyle=`#35e0a0`,a.beginPath(),a.arc(t.x,t.y,t.edge?1.8:2.4,0,7),a.fill(),!t.edge&&e.twinId&&h.has(e.twinId)&&(a.strokeStyle=`rgba(53,224,160,.5)`,a.beginPath(),a.arc(t.x,t.y,4.4,0,7),a.stroke());else{a.globalAlpha=t.edge?.4:1,a.fillStyle=Kt(e.color);let n=t.edge?3.6:5.2;a.fillRect(t.x-n/2,t.y-n/2,n,n)}a.globalAlpha=1}for(let e of t?.agents??[]){let t=g(d(e.x*jl,e.y*Ml));a.globalAlpha=t.edge?.35:1,a.fillStyle=Kt(e.color),a.beginPath(),a.arc(t.x,t.y,t.edge?1.6:2.2,0,7),a.fill(),a.globalAlpha=1}if(o){let e=Math.atan2(-Math.cos(o.yaw),-Math.sin(o.yaw)),t=Math.min(i.w,i.h)*.36;a.fillStyle=`rgba(65,200,244,.14)`,a.strokeStyle=`rgba(65,200,244,.5)`,a.lineWidth=1,a.beginPath(),a.moveTo(i.w/2,i.h/2),a.arc(i.w/2,i.h/2,t,e-.4,e+.4),a.closePath(),a.fill(),a.stroke();let n=d(o.pos.x,o.pos.z);n.x>4&&n.x<i.w-4&&n.y>4&&n.y<i.h-4&&(a.fillStyle=`rgba(255,255,255,.85)`,a.beginPath(),a.arc(n.x,n.y,2.4,0,7),a.fill())}a.fillStyle=`#fff`,a.beginPath(),a.arc(i.w/2,i.h/2,3,0,7),a.fill(),a.strokeStyle=`rgba(255,255,255,.4)`,a.beginPath(),a.arc(i.w/2,i.h/2,5.5,0,7),a.stroke()}function qf(e){P.value?.zoomBy(e.deltaY>0?.14:-.12)}function Jf(e){$={lx:e.clientX,ly:e.clientY,moved:!1};try{e.target.setPointerCapture?.(e.pointerId)}catch{}}function Yf(e){let t=Uf.value,n=P.value;if(!$||!t||!n)return;let r=Gf(t),i=e.clientX-$.lx,a=e.clientY-$.ly;Math.abs(i)+Math.abs(a)>3&&($.moved=!0);let o=i/r.s,s=a/r.s;$.lx=e.clientX,$.ly=e.clientY,n.panWorldBy(o,s)}function Xf(e){let t=Uf.value,n=P.value;if($&&!$.moved&&t&&n){let r=t.getBoundingClientRect(),i=Gf(t),a=n.getCameraPose(),o=a.target.x+(e.clientX-r.left-r.width/2)/i.s,s=a.target.z+(e.clientY-r.top-r.height/2)/i.s;n.focusTo(o,s)}$=null}function Zf(){let e=N.value;e?.getMinimapState&&(Gt.value=e.getMinimapState()),Kf();let t=P.value;if(t&&(Hd.value=t.getCameraPose(),Nd.value)){let e=t.getDeviceNodes(),n=Jd.value?.getBoundingClientRect(),r={};for(let i of X.value){let a=zu(i.id),o=a?e.find(e=>e.twinId===a):e.find(e=>e.twinId===i.id);if(!o)continue;let s=t.worldToScreen(o.x,(o.topY??92)+26,o.z);s&&n&&(r[i.id]={x:s.x-n.left,y:s.y-n.top})}Rd.value=r}}function Qf(){if(document.hidden){zf&&=(clearInterval(zf),null),Hf&&=(clearInterval(Hf),null),Bf&&=(clearInterval(Bf),null);return}zf||=le(Zf,150),Hf||=le(()=>{J.nodes.length&&(Rf(),td())},200),Bf||=le(()=>{let e=N.value;e?.getRecentActivity&&(Yl.value=e.getRecentActivity())},400)}return oe(()=>{window.addEventListener(`keydown`,ze),document.addEventListener(`visibilitychange`,Qf),J.ensureWsFeed(),J.load(),hu=Ee().subscribe(e=>{e.type===`daq.reading`&&vu(e.payload)}),Y.ensureWsFeed(),Y.load(),zf=le(Zf,150),Hf=le(()=>{J.nodes.length&&(Rf(),td())},200),Bf=le(()=>{let e=N.value;e?.getRecentActivity&&(Yl.value=e.getRecentActivity())},400)}),s(()=>{window.removeEventListener(`keydown`,ze);for(let e of At)try{e()}catch{}At.length=0,document.removeEventListener(`visibilitychange`,Qf),zf&&clearInterval(zf),Hf&&clearInterval(Hf),Bf&&clearInterval(Bf),Vf&&clearInterval(Vf),Wd&&clearInterval(Wd),zf=null,Hf=null,Bf=null,Vf=null,Wd=null}),oe(()=>{Tt();let e=W();e.length>0&&N.value&&N.value.rebuild(e)}),s(()=>{hu?.();let e=N._off;e?.(),P.value?.dispose(),P.value=null,he.value?.destroy(!0),he.value=null,N.value=null}),(o,s)=>{let d=rt,_=Pt;return l(),S(`div`,un,[O(`header`,dn,[O(`div`,fn,[s[52]||=ae(`<svg class="brand-glyph" viewBox="0 0 32 32" fill="none" aria-hidden="true" data-v-5b974b95><path d="M16 2.5 27.5 9v14L16 29.5 4.5 23V9L16 2.5Z" stroke="#35e0a0" stroke-width="1.6" data-v-5b974b95></path><path d="M16 8.2 22.5 12v8L16 23.8 9.5 20v-8L16 8.2Z" stroke="#41c8f4" stroke-width="1.3" opacity=".85" data-v-5b974b95></path><circle cx="16" cy="16" r="2.4" fill="#35e0a0" data-v-5b974b95></circle><circle cx="25.5" cy="7.5" r="1.6" fill="#41c8f4" data-v-5b974b95></circle></svg>`,1),O(`div`,null,[s[51]||=O(`div`,{class:`brand-name`},[g(` DIGITAL `),O(`em`,null,`TWIN`)],-1),O(`div`,pn,` AGENTWORKSHOP · `+m(o.$t(`townView.klyi8yg127`)),1)])]),O(`nav`,{class:`nav-tabs`,"aria-label":o.$t(`townView.k1c9jyta001`)},[O(`div`,hn,[O(`button`,{class:u({on:f(R)===`browse`}),onClick:s[0]||=e=>f(R)===`edit`&&Ie()},m(o.$t(`townView.k48dwh027`)),3),O(`button`,{class:u({on:f(R)===`edit`}),onClick:s[1]||=e=>f(R)===`browse`&&Ie()},m(o.$t(`townView.k45eb0028`)),3)]),O(`button`,{class:`nav-action`,disabled:f(R)!==`edit`,title:f(R)===`edit`?`把全部设备的位置/朝向/缩放写入数据库`:`运行模式只读`,onClick:Ue},m(o.$t(`townView.k1b3bk8t029`)),9,gn),f(z)&&f(z).state!==`idle`?(l(),S(`span`,{key:0,class:u([`save-chip`,`s-${f(z).state}`])},m(f(Fe)),3)):w(``,!0)],8,mn),O(`div`,_n,[O(`span`,{class:u([`nav-chip mono`,{"nav-bell-warn":f(uf)>0}]),title:o.$t(`townView.k1fsi3ir002`)},`◉ `+m(f(uf)),11,vn),O(`span`,yn,m(f(ye))+` FPS`,1),O(`div`,{class:`avatar-chip`,title:o.$t(`townView.k1demf38003`)},[O(`div`,xn,m((f(qd).user?.name??`OP`).slice(0,2).toUpperCase()),1),O(`span`,null,m(f(qd).user?.name||o.$t(`townView.k1pub99m139`)),1)],8,bn)])]),O(`div`,Sn,[O(`aside`,Cn,[O(`section`,wn,[O(`div`,Tn,[O(`h3`,null,m(o.$t(`townView.k1k75lzy030`)),1),O(`span`,En,m(f(tt).length),1)]),ie(d,{class:`lib-embed`})]),O(`section`,Dn,[O(`div`,On,[O(`h3`,null,m(o.$t(`townView.k2gwyas031`)),1),O(`span`,kn,m(f(X).length),1)]),O(`div`,An,[O(`button`,{class:u([`daq-ctl-btn`,{on:f(J).controller.running}]),title:f(J).controller.running?`暂停全部采集:停止所有启用节点的采样(节点级启停独立)`:`恢复全部采集:仅启用节点恢复采集(手动停用的保持停用)`,onClick:s[2]||=e=>f(J).controllerAction(f(J).controller.running?`pause`:`resume`)},m(f(J).controller.running?o.$t(`townView.k3w3j8f140`):o.$t(`townView.k3n93ed175`)),11,jn),O(`label`,{class:`daq-ctl-cycle mono`,title:o.$t(`townView.khzlyf5004`)},[g(m(o.$t(`townView.k3xg3w032`))+` `,1),O(`input`,{type:`number`,min:`200`,max:`60000`,step:`100`,value:f(J).controller.defaultIntervalMs,onChange:s[3]||=e=>f(J).controllerAction(`config`,Number(e.target.value))},null,40,Nn),s[53]||=g(`ms `,-1)],8,Mn)]),O(`div`,Pn,[(l(!0),S(h,null,c(f(su),e=>(l(),S(`div`,{key:e.id,class:`daq-group`},[O(`div`,{class:u([`daq-card tpl`,{open:!!f(Zl)[`daq:${e.id}`]}]),role:`button`,tabindex:`0`,title:o.$t(`townView.k2tplxp0001`,{p0:e.name,p1:e.ch,p2:e.min,p3:e.max,p4:e.unit}),onClick:t=>Ql(`daq:${e.id}`),onKeydown:n(a(t=>Ql(`daq:${e.id}`),[`prevent`]),[`enter`])},[s[54]||=O(`span`,{class:`daq-caret`},`▶`,-1),O(`span`,In,[(l(),S(`svg`,{class:`daq-svg`,viewBox:`0 0 24 24`,innerHTML:Wu(e.icon)},null,8,Ln))]),O(`div`,Rn,[O(`span`,zn,m(e.name),1),O(`span`,Bn,m(e.code),1)]),f(R)===`edit`?(l(),S(`button`,{key:0,class:`daq-add`,title:o.$t(`townView.k2tplxp0002`,{p0:e.name}),onClick:a(t=>tu(e),[`stop`])},` + `,8,Vn)):w(``,!0),O(`span`,Hn,`×`+m(f($l).get(e.id)?.length??0),1)],42,Fn),f(Zl)[`daq:${e.id}`]?(l(),S(`div`,Un,[(l(!0),S(h,null,c(f($l).get(e.id)??[],t=>(l(),S(`div`,{key:t.id,class:u([`daq-node`,{placed:typeof t.posX==`number`}]),draggable:f(R)===`edit`,title:typeof t.posX==`number`?o.$t(`townView.k2tplxp0005`):o.$t(`townView.k2tplxp0006`),onDragstart:e=>ru(e,t),onClick:e=>typeof t.posX==`number`&&zt({id:t.id,posX:t.posX,posZ:t.posZ})},[O(`span`,{class:u([`node-dot`,au(t)])},null,2),O(`div`,Gn,[O(`span`,Kn,m(t.name),1),O(`span`,qn,[O(`span`,Jn,m(t.value==null?`--`:`${t.value.toFixed(e.decimals)} ${e.unit}`),1),O(`span`,Yn,m(t.deviceBindingId?f(j).byId(t.deviceBindingId)?.name??o.$t(`townView.k3own4q148`):o.$t(`townView.k3own4q148`)),1)])]),typeof t.posX==`number`?(l(),S(`span`,Xn,`✓`)):w(``,!0)],42,Wn))),128)),f($l).get(e.id)?.length?w(``,!0):(l(),S(`div`,Zn,m(o.$t(`townView.k2tplxp0003`)),1))])):w(``,!0)]))),128))])]),O(`section`,Qn,[O(`div`,$n,[O(`h3`,null,m(o.$t(`townView.km7ayhi033`)),1),O(`span`,er,m(f(Y).nodes.length),1)]),O(`div`,tr,[(l(!0),S(h,null,c(f(Xl),e=>(l(),S(`div`,{key:e.id,class:`daq-group`},[O(`div`,{class:u([`daq-card tpl`,{open:!!f(Zl)[`dcw:${e.id}`]}]),role:`button`,tabindex:`0`,title:o.$t(`townView.k2tplxp0001`,{p0:e.name,p1:e.ch,p2:e.min,p3:e.max,p4:e.unit}),onClick:t=>Ql(`dcw:${e.id}`),onKeydown:n(a(t=>Ql(`dcw:${e.id}`),[`prevent`]),[`enter`])},[s[55]||=O(`span`,{class:`daq-caret`},`▶`,-1),O(`span`,rr,[(l(),S(`svg`,{class:`daq-svg`,viewBox:`0 0 24 24`,innerHTML:Wu(e.icon)},null,8,ir))]),O(`div`,ar,[O(`span`,or,m(e.name),1),O(`span`,sr,m(e.code),1)]),f(R)===`edit`?(l(),S(`button`,{key:0,class:`daq-add`,title:o.$t(`townView.k2tplxp0002`,{p0:e.name}),onClick:a(t=>nu(e),[`stop`])},` + `,8,cr)):w(``,!0),O(`span`,lr,`×`+m(f(eu).get(e.id)?.length??0),1)],42,nr),f(Zl)[`dcw:${e.id}`]?(l(),S(`div`,ur,[(l(!0),S(h,null,c(f(eu).get(e.id)??[],t=>(l(),S(`div`,{key:t.id,class:u([`daq-node`,{placed:typeof t.posX==`number`}]),draggable:f(R)===`edit`,title:typeof t.posX==`number`?o.$t(`townView.k2tplxp0005`):o.$t(`townView.k2tplxp0006`),onDragstart:e=>iu(e,t),onClick:e=>typeof t.posX==`number`&&zt({id:t.id,posX:t.posX,posZ:t.posZ})},[O(`span`,{class:u([`node-dot`,ou(t)])},null,2),O(`div`,fr,[O(`span`,pr,m(t.name),1),O(`span`,mr,[O(`span`,hr,m(t.value==null?`--`:`${t.value.toFixed(e.decimals)} ${e.unit}`),1),O(`span`,gr,m(t.deviceBindingId?f(j).byId(t.deviceBindingId)?.name??o.$t(`townView.k3own4q148`):o.$t(`townView.k3own4q148`)),1)])]),typeof t.posX==`number`?(l(),S(`span`,_r,`✓`)):w(``,!0)],42,dr))),128)),f(eu).get(e.id)?.length?w(``,!0):(l(),S(`div`,vr,m(o.$t(`townView.k2tplxp0003`)),1))])):w(``,!0)]))),128))])]),O(`section`,yr,[O(`div`,br,[O(`h3`,null,m(o.$t(`townView.k1c9n911034`)),1),O(`span`,xr,m(f(yt).length),1)]),O(`div`,Sr,[(l(!0),S(h,null,c(f(yt),e=>(l(),S(`div`,{key:e.channelId,class:u([`scene-row`,{active:e.placed}]),draggable:!e.placed&&f(R)===`edit`,"data-channel-id":e.channelId,title:e.placed?`已在场景中,点击定位`:`拖拽到场景放置`,onDragstart:t=>e.placed?void 0:Ct(t,e.channelId),onClick:t=>Qe(e)},[O(`span`,{class:`scene-ico`,style:p({"--ch":e.color})},null,4),O(`div`,wr,[O(`span`,Tr,m(e.name),1),O(`span`,Er,m(e.agentCount)+` `+m(o.$t(`townView.k1brss7t128`))+` `+m(e.placed?o.$t(`townView.k3n94g3141`):o.$t(`townView.k3os7i3176`)),1)]),e.placed?(l(),S(`span`,Dr,`✓`)):(l(),S(`span`,Or,`+`))],42,Cr))),128)),f(Ze)?(l(),S(`div`,kr,m(f(Ze)),1)):w(``,!0)])])]),O(`main`,Ar,[O(`div`,{ref_key:`stageRef`,ref:Jd,class:`stage`},[O(`div`,{id:`town-host`,ref_key:`hostRef`,ref:me,class:`town-host`},null,512),s[71]||=O(`div`,{class:`stage-vignette`},null,-1),O(`div`,jr,[O(`div`,Mr,[O(`h2`,null,m(o.$t(`townView.k1b0z4vr035`)),1),O(`span`,Nr,`CH · `+m(f(Me)||o.$t(`townView.k3lkuz3142`)),1)]),O(`div`,Pr,[O(`button`,{class:`vp-tool`,title:o.$t(`townView.k18d6wnb005`),onClick:Ld},[...s[56]||=[O(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[O(`circle`,{cx:`12`,cy:`12`,r:`7`}),O(`path`,{d:`M12 2v4M12 18v4M2 12h4M18 12h4`})],-1)]],8,Fr),O(`button`,{class:u([`vp-tool`,{on:f(Fd)}]),title:o.$t(`townView.k1io51dn006`),onClick:Id},[...s[57]||=[O(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[O(`circle`,{cx:`12`,cy:`12`,r:`3.2`}),O(`path`,{d:`M20.5 9a10 10 0 0 1 .3 4.5M3.5 15a10 10 0 0 1-.3-4.5`})],-1)]],10,Ir),O(`button`,{class:u([`vp-tool`,{on:f(Nd)}]),title:o.$t(`townView.k1sgjlq8007`),onClick:s[4]||=e=>Nd.value=!f(Nd)},[...s[58]||=[O(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[O(`path`,{d:`M4 8h12l4 4-4 4H4z`}),O(`circle`,{cx:`8.5`,cy:`12`,r:`1.4`})],-1)]],10,Lr),O(`button`,{class:`vp-tool`,title:o.$t(`townView.k3wuf0008`),onClick:Zd},[...s[59]||=[O(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[O(`path`,{d:`M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5`})],-1)]],8,Rr)])]),O(`div`,zr,[O(`select`,{value:f(Yd),"aria-label":o.$t(`townView.k1k4j5i7009`),onChange:s[5]||=e=>Xd(e)},[O(`option`,Vr,m(o.$t(`townView.kv72860036`)),1),s[60]||=O(`option`,{value:`top`},` 俯视 · TOP `,-1),s[61]||=O(`option`,{value:`front`},` 前视 · FRONT `,-1),s[62]||=O(`option`,{value:`side`},` 侧视 · SIDE `,-1)],40,Br)]),f(Nd)?(l(),S(h,{key:0},[(l(),S(`svg`,Hr,[(l(!0),S(h,null,c(f(Ud),t=>k((l(),S(`g`,{key:`ld-${t.id}`,class:u({near:t.near})},[O(`path`,{d:`M ${t.x} ${t.y-8} L ${t.x} ${t.y-2}`,stroke:t.warn?`rgba(246,196,83,.8)`:`rgba(65,200,244,.55)`,"stroke-width":`1.3`,fill:`none`},null,8,Ur),O(`circle`,{cx:t.x,cy:t.y,r:`2.6`,fill:t.warn?`#f6c453`:`#41c8f4`},null,8,Wr)],2)),[[e,t.leader]])),128))])),O(`div`,Gr,[(l(!0),S(h,null,c(f(Ud),e=>(l(),S(`div`,{key:e.id,class:u([`callout`,{warn:e.warn,near:e.near}]),style:p({left:e.x+`px`,top:e.y+`px`}),title:o.$t(`townView.k1ejxiwp010`),onClick:t=>Pd(e.id)},[O(`div`,qr,[s[63]||=O(`span`,{class:`co-dot`},null,-1),g(m(e.label),1)]),O(`div`,Jr,[g(m(e.value),1),O(`small`,null,m(e.unit),1)]),O(`div`,Yr,m(o.$t(`townView.k1faqmjb073`))+` `+m(e.lo.toFixed(Math.min(2,(String(e.lo).split(`.`)[1]??``).length+1)))+` – `+m(e.hi.toFixed(Math.min(2,(String(e.hi).split(`.`)[1]??``).length+1))),1)],14,Kr))),128))])],64)):w(``,!0),O(`div`,Xr,[O(`div`,Zr,[s[64]||=O(`span`,{class:`kpi-ico c1`},[O(`svg`,{class:`kpi-svg`,viewBox:`0 0 24 24`},[O(`path`,{d:`M4 8.5 12 4l8 4.5v7L12 20l-8-4.5v-7Z`}),O(`path`,{d:`M4 8.5l8 4.5 8-4.5M12 13v7`})])],-1),O(`div`,Qr,[O(`div`,$r,m(o.$t(`townView.k1k6xemt037`)),1),O(`div`,ei,[g(m(f(Gd)),1),O(`small`,null,m(o.$t(`townView.k49lh038`)),1)])])]),O(`div`,ti,[s[65]||=O(`span`,{class:`kpi-ico c2`},[O(`svg`,{class:`kpi-svg`,viewBox:`0 0 24 24`},[O(`path`,{d:`m5 12.5 4.5 4.5L19 7.5`})])],-1),O(`div`,ni,[O(`div`,ri,m(o.$t(`townView.k1l1a9t2039`)),1),O(`div`,ii,[g(m(f(Kd)),1),O(`small`,null,m(o.$t(`townView.k49lh038`)),1)])])]),O(`div`,ai,[s[66]||=O(`span`,{class:`kpi-ico c3`},[O(`svg`,{class:`kpi-svg`,viewBox:`0 0 24 24`},[O(`path`,{d:`M12 3 22 20H2L12 3Z`}),O(`path`,{d:`M12 10v4M12 17v.2`})])],-1),O(`div`,oi,[O(`div`,si,m(o.$t(`townView.k1fsi3ir002`)),1),O(`div`,ci,[g(m(f(uf)),1),O(`small`,null,m(o.$t(`townView.k4dfq040`)),1)])])]),O(`div`,li,[s[67]||=ae(`<span class="kpi-ico c4" data-v-5b974b95><svg class="kpi-svg" viewBox="0 0 24 24" data-v-5b974b95><path d="M9.5 14.5 14.5 9.5" data-v-5b974b95></path><path d="M11 6.5 12.8 4.7a4 4 0 0 1 5.6 5.6L16.5 12" data-v-5b974b95></path><path d="m13 17.5-1.8 1.8a4 4 0 0 1-5.6-5.6L7.5 12" data-v-5b974b95></path></svg></span>`,1),O(`div`,ui,[O(`div`,di,m(o.$t(`townView.k1emsai1041`)),1),O(`div`,fi,[g(m(f(X).length),1),O(`small`,null,m(o.$t(`townView.k4l1w042`)),1)])])]),O(`div`,pi,[s[69]||=ae(`<span class="kpi-ico c5" data-v-5b974b95><svg class="kpi-svg" viewBox="0 0 24 24" data-v-5b974b95><path d="M5 19a9 9 0 1 1 14 0" data-v-5b974b95></path><path d="M12 13l3.5-3.5" data-v-5b974b95></path><circle cx="12" cy="13" r="1.4" data-v-5b974b95></circle></svg></span>`,1),O(`div`,mi,[O(`div`,hi,m(o.$t(`townView.kbrxdq1043`)),1),O(`div`,gi,[g(m(f(tf)),1),s[68]||=O(`small`,null,`%`,-1)])])])]),f(ql)?(l(),S(`div`,_i,[O(`b`,null,m(o.$t(`townView.k3rwxjc044`)),1),O(`span`,null,m(o.$t(`townView.k1sa1eaj045`)),1)])):w(``,!0),f(B)&&f(V)?(l(),S(`div`,{key:2,class:`boundary-panel drag-panel`,style:p(f(Bt).boundary?{left:f(Bt).boundary.x+`px`,top:f(Bt).boundary.y+`px`,bottom:`auto`,transform:`none`}:void 0)},[O(`div`,{class:`bp-title drag-grip`,title:o.$t(`townView.k1d0rl5z011`),onPointerdown:s[8]||=e=>Wt(e,`boundary`)},[O(`span`,yi,m(f(T).channels[f(B)]?.name??f(B).slice(0,8)),1),O(`span`,bi,m(o.$t(`townView.k1mehlxs046`)),1),O(`div`,xi,[O(`button`,{class:u([`bp-tab`,{on:f(mt)===`boundary`}]),onClick:s[6]||=e=>_t(`boundary`)},m(o.$t(`townView.k489ka047`)),3),O(`button`,{class:u([`bp-tab`,{on:f(mt)===`members`}]),onClick:s[7]||=e=>_t(`members`)},m(o.$t(`townView.k3ztf1129`))+` `+m(f(ht).length),3)])],40,vi),f(mt)===`boundary`?(l(),S(h,{key:0},[O(`div`,Si,[O(`span`,Ci,m(o.$t(`townView.k3zhy5048`)),1),O(`div`,wi,[O(`button`,{class:u([`seg-btn`,{on:f(V).shape===`ellipse`}]),onClick:s[9]||=e=>{f(V).shape=`ellipse`,Xe()}},m(o.$t(`townView.k414bc049`)),3),O(`button`,{class:u([`seg-btn`,{on:f(V).shape===`rect`}]),onClick:s[10]||=e=>{f(V).shape=`rect`,Xe()}},m(o.$t(`townView.k43u0g050`)),3)])]),O(`div`,Ti,[O(`span`,Ei,m(o.$t(`townView.k1fbz4s1051`)),1),k(O(`input`,{"onUpdate:modelValue":s[11]||=e=>f(V).radiusX=e,class:`bp-range`,type:`range`,min:`80`,max:`4000`,step:`8`,style:p({"--fill":Tf(f(V).radiusX,80,4e3)}),onChange:Xe},null,36),[[i,f(V).radiusX,void 0,{number:!0}]]),O(`span`,Di,m(Math.round(f(V).radiusX)),1)]),O(`div`,Oi,[O(`span`,ki,m(o.$t(`townView.k1ighwgs052`)),1),k(O(`input`,{"onUpdate:modelValue":s[12]||=e=>f(V).radiusZ=e,class:`bp-range`,type:`range`,min:`60`,max:`4000`,step:`8`,style:p({"--fill":Tf(f(V).radiusZ,60,4e3)}),onChange:Xe},null,36),[[i,f(V).radiusZ,void 0,{number:!0}]]),O(`span`,Ai,m(Math.round(f(V).radiusZ)),1)]),O(`div`,ji,[O(`span`,Mi,m(o.$t(`townView.k40qab053`)),1),k(O(`input`,{"onUpdate:modelValue":s[13]||=e=>f(V).rotationY=e,class:`bp-range`,type:`range`,min:`0`,max:`360`,step:`5`,style:p({"--fill":Tf(f(V).rotationY??0,0,360)}),onChange:Xe},null,36),[[i,f(V).rotationY,void 0,{number:!0}]]),O(`span`,Ni,m(Math.round(f(V).rotationY??0))+`°`,1)])],64)):(l(),S(h,{key:1},[O(`div`,Pi,m(o.$t(`townView.kimxls2054`)),1),O(`div`,Fi,[(l(!0),S(h,null,c(f(ht),e=>(l(),S(`div`,{key:e.agentId,class:`member-row`},[O(`span`,{class:`member-ava`,style:p({color:St(f(B))})},m(e.name.charAt(0).toUpperCase()),5),O(`div`,Ii,[O(`span`,Li,m(e.name),1),O(`span`,{class:u([`member-role`,e.role===`lead`?`r-lead`:`r-worker`])},m(e.role===`lead`?`Leader`:`Worker`),3)]),O(`select`,{class:`member-select`,value:(e.modelRef??``)||`hero-3d`,onChange:t=>gt(e.agentId,t.target.value)},[(l(!0),S(h,null,c(f(et),e=>(l(),S(`option`,{key:e.id,value:e.id},m(e.name),9,zi))),128))],40,Ri)]))),128)),f(ht).length===0?(l(),S(`div`,Bi,m(o.$t(`townView.k419rbs055`)),1)):w(``,!0)])],64)),O(`div`,Vi,[f(mt)===`boundary`?(l(),S(`button`,{key:0,class:`bp-btn save`,onClick:Je},m(o.$t(`townView.k1b3kp8f056`)),1)):w(``,!0),O(`button`,{class:`bp-btn danger`,onClick:Ye},m(o.$t(`townView.k1hs45qg057`)),1),O(`button`,{class:`bp-btn`,onClick:s[14]||=e=>qe(null)},m(o.$t(`townView.k3x62t058`)),1)])],4)):w(``,!0),f(Jt)?(l(),S(`div`,Hi,m(f(Jt)),1)):w(``,!0),f(L)?(l(),S(`div`,Ui,m(f(L)),1)):w(``,!0),f(_e)?w(``,!0):(l(),S(`div`,Wi,[s[70]||=O(`div`,{class:`loading-spinner`},null,-1),O(`span`,Gi,m(o.$t(`townView.kvjdqfg059`)),1)]))],512),O(`div`,Ki,[O(`section`,qi,[O(`div`,Ji,[O(`h3`,null,m(o.$t(`townView.k1c9iq23060`)),1),O(`span`,Yi,m(f(R)===`edit`?o.$t(`townView.k1iipfcs143`):o.$t(`townView.k1l147w1177`)),1)]),O(`p`,Xi,m(o.$t(`townView.secRender`)),1),O(`div`,Zi,[O(`span`,{class:`ctl-name`,title:o.$t(`townView.qualityTip`)},m(o.$t(`townView.qualityLabel`)),9,Qi),O(`div`,$i,[(l(),S(h,null,c(vf,e=>O(`button`,{key:e.v,class:u({on:f(_f)===e.v}),onClick:t=>yf(e.v)},m(o.$t(e.label)),11,ea)),64))]),s[72]||=O(`span`,{class:`ctl-val`},null,-1)]),O(`div`,ta,[O(`span`,{class:`ctl-name`,title:o.$t(`townView.fpsCapTip`)},m(o.$t(`townView.fpsCapLabel`)),9,na),O(`div`,ra,[(l(),S(h,null,c(hf,e=>O(`button`,{key:e.v,class:u({on:f(mf)===e.v}),onClick:t=>gf(e.v)},m(e.label),11,ia)),64))]),s[73]||=O(`span`,{class:`ctl-val`},null,-1)]),O(`p`,aa,m(o.$t(`townView.secEnv`)),1),O(`div`,oa,[O(`span`,sa,m(o.$t(`townView.k1gizopz061`)),1),O(`input`,{class:`ctl-range`,type:`range`,min:`30`,max:`220`,value:Math.round(f(Cf)*100),style:p({"--fill":Tf(Math.round(f(Cf)*100),30,220)}),onInput:s[15]||=e=>Ef(e)},null,44,ca),O(`span`,la,m(Math.round(f(Cf)*100))+`%`,1)]),O(`div`,ua,[O(`span`,da,m(o.$t(`townView.k1bcpqto062`)),1),O(`input`,{class:`ctl-range`,type:`range`,min:`10`,max:`100`,value:Math.round(f(wf)*100),style:p({"--fill":Tf(Math.round(f(wf)*100),10,100)}),onInput:s[16]||=e=>Df(e)},null,44,fa),O(`span`,pa,m(Math.round(f(wf)*100))+`%`,1)]),O(`div`,ma,[O(`span`,ha,m(o.$t(`townView.k1bztha1063`)),1),O(`input`,{class:`ctl-range`,type:`range`,min:`60`,max:`120`,value:f(pf),style:p({"--fill":Tf(f(pf),60,120)}),onInput:s[17]||=e=>pf.value=Number(e.target.value)},null,44,ga),O(`span`,_a,m(f(pf))+`%`,1)]),O(`div`,va,[O(`span`,{class:`ctl-name`,title:o.$t(`townView.kz71l1f012`)},m(o.$t(`townView.ka4i1s9064`)),9,ya),O(`input`,{class:`ctl-range`,type:`range`,min:`0`,max:`3000`,step:`50`,value:f(zd),style:p({"--fill":Tf(f(zd),0,3e3)}),onInput:s[18]||=e=>zd.value=Number(e.target.value)},null,44,ba),O(`span`,xa,m(f(zd)===0?o.$t(`townView.k493s144`):`${f(zd)}`),1)]),O(`p`,Sa,m(o.$t(`townView.secOps`)),1),O(`div`,Ca,[O(`span`,wa,m(o.$t(`townView.k1idc6pa065`)),1),O(`button`,{class:u([`snap-toggle`,{on:f(Pe)}]),onClick:Be},m(f(Pe)?o.$t(`townView.k4bs5145`):o.$t(`townView.k493s144`)),3),s[74]||=O(`span`,{class:`ctl-val`},null,-1)]),O(`div`,Ta,[O(`button`,{class:`btn btn-primary`,onClick:Of},m(o.$t(`townView.k1lap9bs024`)),1),O(`button`,{class:`btn btn-ghost`,disabled:f(R)!==`edit`,title:f(R)===`edit`?o.$t(`townView.ksavetip181`):o.$t(`townView.krotip182`),onClick:Ue},m(o.$t(`townView.k1b3bk8t029`)),9,Ea),O(`button`,{class:u([`btn btn-danger`,{armed:f(xf)}]),onClick:Sf},m(o.$t(`townView.k1i046wf066`)),3)])]),O(`section`,Da,[O(`div`,Oa,[O(`h3`,null,m(o.$t(`townView.k1kfoef9067`)),1),O(`span`,ka,m(f(X).length),1),O(`div`,{class:u([`trend-legend`,{expanded:f(Ff)}])},[(l(!0),S(h,null,c(f(Lf),e=>(l(),S(`button`,{key:e.id,class:u([`lg-chip`,{off:!Pf(e.id)}]),onClick:t=>kf(e.id)},[O(`span`,{class:`lg-dot`,style:p({background:Nf(e.id)})},null,4),g(m(e.name),1)],10,Aa))),128)),f(If)>0?(l(),S(`button`,{key:0,class:`lg-chip lg-more mono`,title:f(Ff)?o.$t(`townView.trendCollapse`):o.$t(`townView.trendExpandAll`,{p0:f(X).length}),onClick:s[19]||=e=>Ff.value=!f(Ff)},m(f(Ff)?o.$t(`townView.trendCollapse`):`+${f(If)}`),9,ja)):w(``,!0)],2)]),O(`div`,Ma,[O(`canvas`,{ref_key:`trendCanvas`,ref:Af,class:`trend-cv`},null,512),f(X).length?w(``,!0):(l(),S(`span`,Na,m(o.$t(`townView.k1uht2uv068`)),1))])])])]),O(`aside`,Pa,[ie(t,{name:`ins`},{default:te(()=>[f(F)?(l(),S(`section`,Fa,[O(`div`,Ia,[O(`h3`,null,m(f(F).kind===`device`?f(xd)?o.$t(`townView.k1ekqxlt146`):f(nd)?o.$t(`townView.k1empnnb178`):o.$t(`townView.k1k6wg8j185`):f(Zt)),1),O(`button`,{class:`mini-btn`,title:o.$t(`townView.k1bsckft013`),onClick:Ke},` ✕ `,8,La)]),O(`div`,Ra,[O(`span`,za,m(f(F).id.slice(0,8)),1),f(F).kind===`device`&&f(nd)?(l(),S(`span`,Ba,`DAQ`)):f(F).kind===`device`&&f(xd)?(l(),S(`span`,Va,`DCW`)):w(``,!0)]),f(F).kind===`device`?(l(),S(h,{key:0},[f(xd)?(l(),S(`div`,Ha,[O(`div`,Ua,[O(`span`,null,m(o.$t(`townView.k1deqh0d069`)),1),O(`b`,Wa,m(f(Z)?.value==null?`--`:f(Z).value.toFixed(f(Z).decimals))+` `+m(f(Z)?.unit),1)]),O(`div`,Ga,[O(`span`,null,m(f(Sd)?.src===`recipe`?o.$t(`townView.kq2jssk147`):o.$t(`townView.k1iwj796179`)),1),O(`b`,{class:u({amber:f(Sd)?.src===`recipe`})},m(Od(f(Z))),3)]),O(`div`,Ka,[O(`span`,null,m(o.$t(`townView.k1i8rtqt070`)),1),O(`b`,null,m(f(Cd)||o.$t(`townView.k3own4q148`)),1)]),O(`div`,qa,[k(O(`input`,{"onUpdate:modelValue":s[20]||=e=>f(pd)[f(F).id]=e,type:`number`,class:`bind-select`,step:10**-(f(Z)?.decimals??2),placeholder:kd(f(Z)),onKeydown:n(Dd,[`enter`])},null,40,Ja),[[i,f(pd)[f(F).id],void 0,{number:!0}]]),O(`button`,{class:`bind-add-btn`,disabled:f(pd)[f(F).id]==null||f(pd)[f(F).id]===``,onClick:Dd},m(o.$t(`townView.kwrbtn180`)),9,Ya)]),f(md)[f(F).id]?(l(),S(`p`,Xa,m(f(md)[f(F).id]),1)):w(``,!0),f(R)===`edit`?(l(),S(`div`,Za,[k(O(`select`,{"onUpdate:modelValue":s[21]||=e=>E(wd)?wd.value=e:null,class:`bind-select`},[O(`option`,Qa,m(o.$t(`townView.kjo6ekr071`)),1),(l(!0),S(h,null,c(f(j).twins.filter(e=>!du(e)&&e.id!==(f(F)?.id??``)),e=>(l(),S(`option`,{key:e.id,value:e.id},m(e.name),9,$a))),128))],512),[[r,f(wd)]]),O(`button`,{class:`bind-add-btn`,disabled:!f(Cd)&&!f(wd),onClick:s[22]||=e=>f(Cd)?Ed():Td()},m(f(Cd)?o.$t(`townView.k479eh149`):o.$t(`townView.k452a8102`)),9,eo)])):w(``,!0)])):f(nd)?(l(),S(`div`,to,[O(`div`,no,[O(`span`,null,m(o.$t(`townView.k3mv305072`)),1),O(`b`,ro,m(f(id)?bu(f(id)):`--`)+` `+m(f(id)?.tpl.unit),1)]),O(`div`,io,[O(`span`,null,m(o.$t(`townView.k1faqmjb073`)),1),O(`b`,null,m(f(id)?.tpl.min)+` ~ `+m(f(id)?.tpl.max),1)]),O(`div`,ao,[O(`span`,null,m(o.$t(`townView.k1i8rtqt070`)),1),O(`b`,null,m(f(sd)||o.$t(`townView.k3own4q148`)),1)]),f(R)===`edit`?(l(),S(`div`,oo,[k(O(`select`,{"onUpdate:modelValue":s[23]||=e=>E(ad)?ad.value=e:null,class:`bind-select`},[O(`option`,so,m(o.$t(`townView.kjo6ekr071`)),1),(l(!0),S(h,null,c(f(j).twins.filter(e=>!du(e)&&e.id!==(f(F)?.id??``)),e=>(l(),S(`option`,{key:e.id,value:e.id},m(e.name),9,co))),128))],512),[[r,f(ad)]]),O(`button`,{class:`bind-add-btn`,disabled:!f(sd)&&!f(ad),onClick:s[24]||=e=>{f(sd)?Hu(f(F).id):Vu(f(F).id,f(ad)),ad.value=``}},m(f(sd)?o.$t(`townView.k479eh149`):o.$t(`townView.k452a8102`)),9,lo)])):w(``,!0),f(R)===`edit`&&f(Q)?(l(),S(`div`,uo,[O(`div`,fo,[O(`span`,null,m(o.$t(`townView.k1l6g2ga074`)),1),O(`span`,po,[k(O(`input`,{"onUpdate:modelValue":s[25]||=e=>E(Ad)?Ad.value=e:null,type:`number`,min:`200`,max:`60000`,step:`100`,class:`daq-num`,onChange:jd},null,544),[[i,f(Ad),void 0,{number:!0}]]),O(`small`,null,m(o.$t(`townView.k1or92b075`)),1)])]),O(`div`,mo,[O(`span`,null,m(o.$t(`townView.k3x5tpx076`)),1),O(`span`,ho,[O(`input`,{value:f(Q).warnLow,type:`number`,step:`any`,class:`daq-num`,onChange:s[26]||=e=>Md(`warnLow`,e.target.value)},null,40,go),s[75]||=g(` ~ `,-1),O(`input`,{value:f(Q).warnHigh,type:`number`,step:`any`,class:`daq-num`,onChange:s[27]||=e=>Md(`warnHigh`,e.target.value)},null,40,_o)])]),O(`div`,vo,[O(`span`,null,m(o.$t(`townView.k1hjj0jf077`)),1),O(`span`,yo,[O(`input`,{value:f(Q).min,type:`number`,step:`any`,class:`daq-num`,onChange:s[28]||=e=>Md(`min`,e.target.value)},null,40,bo),s[76]||=g(` ~ `,-1),O(`input`,{value:f(Q).max,type:`number`,step:`any`,class:`daq-num`,onChange:s[29]||=e=>Md(`max`,e.target.value)},null,40,xo)])]),O(`div`,So,[O(`span`,null,m(o.$t(`townView.k48tki078`)),1),O(`button`,{class:u([`bind-add-btn`,{warn:f(Q).enabled}]),onClick:s[30]||=e=>f(J).patchNode(f(F).id,{enabled:!f(Q).enabled})},m(f(Q).enabled?o.$t(`townView.k1wv0nyo150`):o.$t(`townView.kh1586b180`)),3)]),O(`div`,Co,[O(`span`,null,m(o.$t(`townView.k3xakp079`)),1),O(`button`,{class:`bind-add-btn danger`,title:o.$t(`townView.kpwutri014`),onClick:s[31]||=e=>pt()},m(o.$t(`townView.k1bpp30k080`)),9,wo)])])):(l(),S(`div`,To,m(o.$t(`townView.kzk5dfx081`)),1))])):(l(),S(h,{key:2},[O(`div`,Eo,[O(`span`,Do,m(o.$t(`townView.k3xhia082`)),1),k(O(`input`,{"onUpdate:modelValue":s[32]||=e=>E(nt)?nt.value=e:null,class:`obj-input`,placeholder:o.$t(`townView.k1k6vbaf015`),disabled:f(R)!==`edit`,title:f(R)===`edit`?`设备名称`:`运行模式只读`,onChange:lt,onKeydown:n(lt,[`enter`])},null,40,Oo),[[i,f(nt)]])]),O(`div`,ko,[O(`span`,Ao,m(o.$t(`townView.k41amp083`)),1),O(`select`,{class:`obj-select`,value:f(P)?.getDeviceModelRef?.(f(F).id)??``,disabled:f(R)!==`edit`,onChange:s[33]||=e=>dt(e.target.value)},[(l(!0),S(h,null,c(f(tt),e=>(l(),S(`option`,{key:e.id,value:e.id},m(e.name),9,Mo))),128))],40,jo)]),O(`div`,No,m(o.$t(`townView.k1vtyk05130`))+` `+m(f(od).length)+` `+m(o.$t(`townView.k3vfpz5138`)),1),(l(!0),S(h,null,c(f(od),e=>(l(),S(`div`,{key:e.daqId,class:`bind-row`},[O(`span`,Po,[(l(),S(`svg`,{class:`bind-svg`,viewBox:`0 0 24 24`,innerHTML:Wu(e.icon)},null,8,Fo))]),O(`span`,Io,[O(`span`,Lo,m(e.ch),1),O(`span`,Ro,[O(`b`,null,m(e.value),1),g(` `+m(e.unit)+` · `+m(e.name),1)])]),O(`canvas`,{ref_for:!0,ref:t=>ed(e.daqId,t),class:`bind-spark`,width:`56`,height:`20`},null,512),f(R)===`edit`?(l(),S(`button`,{key:0,class:`bind-x`,title:o.$t(`townView.k1k73omv016`),onClick:t=>Hu(e.daqId)},` ✕ `,8,zo)):w(``,!0)]))),128)),f(od).length?w(``,!0):(l(),S(`div`,Bo,m(o.$t(`townView.kgpuqhb084`)),1)),f(R)===`edit`?(l(),S(`div`,Vo,[O(`button`,{class:`bind-add`,onClick:s[34]||=e=>Yu(`daq`,e)},m(o.$t(`townView.kvm0lin085`)),1),f(Ku)?(l(),S(`div`,{key:0,class:`bind-pop`,style:p({maxHeight:`${f(Ju)}px`})},[(l(!0),S(h,null,c(f(su),e=>(l(),S(h,{key:e.id},[f(Xu)[e.id]?.length?(l(),S(`div`,Ho,[O(`span`,Uo,m(e.name)+` · `+m(e.ch),1),(l(!0),S(h,null,c(f(Xu)[e.id],e=>(l(),S(`button`,{key:e.id,"data-node-id":e.id,title:e.devName?o.$t(`townView.k2bindr0007`,{p0:e.devName}):o.$t(`townView.k2bindr0008`),onClick:t=>Qu(e.id)},[(l(),S(`svg`,{class:`bind-svg`,viewBox:`0 0 24 24`,innerHTML:Wu(e.tpl.icon)},null,8,Go)),O(`span`,null,[g(m(e.name),1),e.devName?(l(),S(`i`,Ko,`→ `+m(e.devName),1)):e.placed?w(``,!0):(l(),S(`i`,qo,m(o.$t(`townView.k2bindr0009`)),1))])],8,Wo))),128))])):w(``,!0)],64))),128)),f(Zu)?w(``,!0):(l(),S(`div`,Jo,m(o.$t(`townView.k2bindr0010`)),1))],4)):w(``,!0)])):w(``,!0),O(`div`,Yo,m(o.$t(`townView.ktzir2t131`))+` `+m(f(ud).length)+` `+m(o.$t(`townView.k4l1w042`)),1),(l(!0),S(h,null,c(f(ud),e=>(l(),S(`div`,{key:e.dcwId,class:`dcw-row`},[O(`div`,Xo,[O(`span`,Zo,[(l(),S(`svg`,{class:`bind-svg`,viewBox:`0 0 24 24`,innerHTML:Wu(e.icon)},null,8,Qo))]),O(`span`,$o,[O(`span`,es,[g(m(e.ch),1),e.rMin!=null||e.rMax!=null?(l(),S(`i`,ts,m(o.$t(`townView.k48grv086`)),1)):w(``,!0)]),O(`span`,ns,m(e.name),1)]),O(`span`,rs,[O(`b`,null,m(e.value==null?`--`:e.value.toFixed(e.decimals)),1),O(`i`,null,m(e.unit),1)]),f(R)===`edit`?(l(),S(`button`,{key:0,class:`bind-x`,title:o.$t(`townView.k1k73omv016`),onClick:t=>bd(e.dcwId)},` ✕ `,8,is)):w(``,!0)]),O(`div`,{class:u([`dcw-win`,{recipe:e.rMin!=null||e.rMax!=null}])},[O(`em`,null,m(e.rMin!=null||e.rMax!=null?o.$t(`townView.k1l3m0hx151`):o.$t(`townView.k1bc6rqf181`)),1),O(`span`,as,m(e.rMin??`-∞`),1),O(`span`,os,[O(`i`,{style:p({left:`${fd(e)}%`})},null,4)]),O(`span`,ss,m(e.rMax??`+∞`),1)],2),O(`div`,cs,[k(O(`input`,{"onUpdate:modelValue":t=>f(pd)[e.dcwId]=t,type:`number`,step:10**-e.decimals,placeholder:`${e.rMin??e.gMin} ~ ${e.rMax??e.gMax}`,onKeydown:n(t=>hd(f(Y).nodeById(e.dcwId)),[`enter`])},null,40,ls),[[i,f(pd)[e.dcwId],void 0,{number:!0}]]),O(`button`,{class:`dcw-send`,disabled:f(pd)[e.dcwId]==null||f(pd)[e.dcwId]===``,title:o.$t(`townView.k15t7izc017`),onClick:t=>hd(f(Y).nodeById(e.dcwId))},` write `,8,us)]),f(md)[e.dcwId]?(l(),S(`small`,ds,m(f(md)[e.dcwId]),1)):w(``,!0)]))),128)),f(ud).length?w(``,!0):(l(),S(`div`,fs,m(o.$t(`townView.k10smf24087`)),1)),f(R)===`edit`?(l(),S(`div`,ps,[O(`button`,{class:`bind-add`,onClick:s[35]||=e=>Yu(`dcw`,e)},m(o.$t(`townView.kvk1vh5088`)),1),f(qu)?(l(),S(`div`,{key:0,class:`bind-pop`,style:p({maxHeight:`${f(Ju)}px`})},[(l(!0),S(h,null,c(f(Xl),e=>(l(),S(h,{key:e.id},[f(_d)[e.id]?.length?(l(),S(`div`,ms,[O(`span`,hs,m(e.name)+` · `+m(e.ch),1),(l(!0),S(h,null,c(f(_d)[e.id],e=>(l(),S(`button`,{key:e.id,"data-node-id":e.id,title:e.devName?o.$t(`townView.k2bindr0007`,{p0:e.devName}):o.$t(`townView.k2bindr0008`),onClick:t=>yd(e.id)},[(l(),S(`svg`,{class:`bind-svg`,viewBox:`0 0 24 24`,innerHTML:Wu(e.tpl.icon)},null,8,_s)),O(`span`,null,[g(m(e.name),1),e.devName?(l(),S(`i`,vs,`→ `+m(e.devName),1)):e.placed?w(``,!0):(l(),S(`i`,ys,m(o.$t(`townView.k2bindr0009`)),1))])],8,gs))),128))])):w(``,!0)],64))),128)),f(vd)?w(``,!0):(l(),S(`div`,bs,m(o.$t(`townView.k2bindr0010`)),1))],4)):w(``,!0)])):w(``,!0),f(R)===`edit`?(l(),S(h,{key:4},[s[79]||=O(`div`,{class:`sect-hd`},` 变换 · BLENDER `,-1),O(`div`,xs,[O(`button`,{class:u([`seg-btn`,{on:f(Le)===`translate`}]),onClick:s[36]||=e=>Re(`translate`)},m(o.$t(`townView.k1hg3167089`)),3),O(`button`,{class:u([`seg-btn`,{on:f(Le)===`rotate`}]),onClick:s[37]||=e=>Re(`rotate`)},m(o.$t(`townView.k1enlg7i090`)),3),O(`button`,{class:u([`seg-btn`,{on:f(Le)===`scale`}]),onClick:s[38]||=e=>Re(`scale`)},m(o.$t(`townView.k1ibjg3j091`)),3)]),O(`div`,Ss,[s[77]||=O(`span`,{class:`scale-min`},`0.2×`,-1),O(`input`,{class:`scale-range`,type:`range`,min:`0.2`,max:`5`,step:`0.05`,value:f(F).scale,onInput:s[39]||=e=>We(Number(e.target.value)),onChange:s[40]||=e=>Ge(Number(e.target.value))},null,40,Cs),s[78]||=O(`span`,{class:`scale-max`},`5×`,-1)]),O(`div`,ws,m(Math.round(f(F).scale*100))+`% `,1),O(`div`,Ts,[O(`button`,{class:u([`btn btn-danger ins-del`,{armed:f(ft)===f(F).id}]),onClick:pt},m(f(ft)===f(F).id?o.$t(`townView.k1w10xa5152`):o.$t(`townView.k121kfef182`)),3)])],64)):(l(),S(`div`,Es,m(o.$t(`townView.kt0i3y2092`)),1))],64))],64)):f(F).kind===`agent`?(l(),S(h,{key:1},[O(`div`,Ds,[O(`span`,{class:`chat-badge`,style:p({"--p-acc":f(Bl)})},m(f(Xt).slice(0,1).toUpperCase()),5),O(`div`,Os,[O(`span`,ks,m(f(Xt)),1),O(`span`,As,[O(`span`,{class:u([`chat-role`,f(K)?.role===`lead`?`r-lead`:`r-worker`])},m(f(Qt)),3),O(`span`,{class:u([`chat-state`,`s-${f(K)?.state??`idle`}`])},m(f($t)),3),f(K)?.harness?(l(),S(`span`,js,m(f(K).harness.toUpperCase()),1)):w(``,!0),O(`span`,Ms,m(f(q).length+f(Yt).length)+` `+m(o.$t(`townView.k4dfq040`)),1)])])]),O(`div`,Ns,[O(`span`,Ps,m(o.$t(`townView.k41amp083`)),1),O(`select`,{class:`obj-select`,value:(f(P)?.getAgentModel?.(f(F).id)??``)||`hero-3d`,disabled:f(R)!==`edit`,onChange:s[41]||=e=>ut(e.target.value)},[(l(!0),S(h,null,c(f(et),e=>(l(),S(`option`,{key:e.id,value:e.id},m(e.name),9,Is))),128))],40,Fs)]),s[83]||=O(`div`,{class:`obj-sep`},null,-1),O(`div`,Ls,[O(`span`,Rs,m(o.$t(`townView.k1fix3hb093`)),1),O(`span`,zs,m(f(it)),1),f(R)===`edit`?(l(),S(`button`,{key:0,class:u([`obj-mini`,{on:f(U)}]),title:o.$t(`townView.k13enoy3018`),onClick:at},m(f(U)?o.$t(`townView.k3slzhc153`):o.$t(`townView.k1f1xmci183`)),11,Bs)):w(``,!0)]),s[84]||=O(`div`,{class:`obj-sep`},null,-1),O(`div`,Vs,m(o.$t(`townView.k1p7nru2094`)),1),(l(!0),S(h,null,c(f(Tu),e=>(l(),S(`div`,{key:e.id,class:`bind-row`},[O(`span`,{class:u([`ins-chip`,e.kind===`dcw`?`accent`:``]),style:{flex:`none`}},m(e.kind===`dcw`?o.$t(`townView.k40ifw097`):o.$t(`townView.k40rjw098`)),3),O(`span`,Hs,[O(`span`,Us,m(Ru(e)),1),O(`select`,{class:`bind-select`,style:{"margin-top":`3px`},value:e.mode,title:o.$t(`townView.khqvwix019`),onChange:t=>Iu(e.id,t.target.value)},[O(`option`,Gs,m(o.$t(`townView.k1io1ylm095`)),1),O(`option`,Ks,m(o.$t(`townView.k1duyr8q096`)),1)],40,Ws)]),O(`button`,{class:`bind-x`,title:o.$t(`townView.k1k73omv016`),onClick:t=>Fu(e.id)},` ✕ `,8,qs)]))),128)),f(Tu).length?w(``,!0):(l(),S(`div`,Js,` 未绑定工业节点 —— 绑定后 Agent 可用 dcw_control / daq_query 工具 `)),f(R)===`edit`?(l(),S(`div`,Ys,[k(O(`select`,{"onUpdate:modelValue":s[42]||=e=>E(Eu)?Eu.value=e:null,class:`bind-select`,style:{flex:`none`,width:`62px`}},[O(`option`,Xs,m(o.$t(`townView.k40ifw097`)),1),O(`option`,Zs,m(o.$t(`townView.k40rjw098`)),1)],512),[[r,f(Eu)]]),k(O(`select`,{"onUpdate:modelValue":s[43]||=e=>E(Du)?Du.value=e:null,class:`bind-select`},[O(`option`,Qs,m(o.$t(`townView.kurjldk099`)),1),f(Eu)===`dcw`?(l(!0),S(h,{key:0},c(f(Y).nodes,e=>(l(),S(`option`,{key:e.id,value:e.id},m(e.name),9,$s))),128)):(l(!0),S(h,{key:1},c(f(J).nodes,e=>(l(),S(`option`,{key:e.id,value:e.id},m(e.name),9,ec))),128))],512),[[r,f(Du)]]),k(O(`select`,{"onUpdate:modelValue":s[44]||=e=>E(Ou)?Ou.value=e:null,class:`bind-select`,style:{flex:`none`,width:`76px`}},[O(`option`,tc,m(o.$t(`townView.k45kpj100`)),1),O(`option`,nc,m(o.$t(`townView.k3zul4101`)),1)],512),[[r,f(Ou)]]),O(`button`,{class:`bind-add-btn`,disabled:!f(Du),onClick:Pu},m(o.$t(`townView.k452a8102`)),9,rc)])):w(``,!0),f(ku).length?(l(),S(h,{key:2},[O(`div`,ic,m(o.$t(`townView.k1gk2jg7132`))+` `+m(f(ku).length),1),(l(!0),S(h,null,c(f(ku),e=>(l(),S(`div`,{key:e.id,class:`approval-card`},[O(`div`,ac,m(e.detail),1),O(`div`,{class:u([`approval-ttl`,{urgent:Cu(e)<=30}])},` ⏱ `+m(Cu(e))+`s `+m(o.$t(`townView.hitlAutoReject`)),3),k(O(`input`,{"onUpdate:modelValue":t=>f(Au)[e.id]=t,class:`dcw-write input-inline`,style:{width:`100%`,"margin-top":`5px`},placeholder:o.$t(`townView.keztqrn020`)},null,8,oc),[[i,f(Au)[e.id]]]),O(`div`,sc,[O(`button`,{class:`bind-add-btn`,onClick:t=>Lu(e.id,!0)},m(o.$t(`townView.kslcozu103`)),9,cc),O(`button`,{class:`bind-add-btn danger`,onClick:t=>Lu(e.id,!1)},m(o.$t(`townView.k14gu3rd104`)),9,lc)])]))),128))],64)):w(``,!0),f(H)&&f(R)===`edit`?(l(),S(h,{key:3},[O(`div`,uc,[O(`span`,dc,m(o.$t(`townView.k3zhy5048`)),1),O(`div`,fc,[O(`button`,{class:u([`seg-btn`,{on:f(H).shape===`ellipse`}]),onClick:s[45]||=e=>{f(H).shape=`ellipse`,ot()}},m(o.$t(`townView.k414bc049`)),3),O(`button`,{class:u([`seg-btn`,{on:f(H).shape===`rect`}]),onClick:s[46]||=e=>{f(H).shape=`rect`,ot()}},m(o.$t(`townView.k43u0g050`)),3)])]),O(`div`,pc,[O(`span`,mc,m(o.$t(`townView.k41lwj105`)),1),k(O(`input`,{"onUpdate:modelValue":s[47]||=e=>f(H).radiusX=e,class:`obj-range`,type:`range`,min:`40`,max:`4000`,step:`8`,onInput:ot,onChange:st},null,544),[[i,f(H).radiusX,void 0,{number:!0}]]),O(`span`,hc,m(Math.round(f(H).radiusX)),1)]),O(`div`,gc,[O(`span`,_c,m(o.$t(`townView.k45bta106`)),1),k(O(`input`,{"onUpdate:modelValue":s[48]||=e=>f(H).radiusZ=e,class:`obj-range`,type:`range`,min:`40`,max:`4000`,step:`8`,onInput:ot,onChange:st},null,544),[[i,f(H).radiusZ,void 0,{number:!0}]]),O(`span`,vc,m(Math.round(f(H).radiusZ)),1)]),O(`button`,{class:`obj-mini danger`,onClick:ct},m(o.$t(`townView.k1w45mzc107`)),1)],64)):(l(),S(`div`,yc,m(o.$t(`townView.k14s8urm108`)),1)),s[85]||=O(`div`,{class:`obj-sep`},null,-1),O(`div`,bc,[g(m(o.$t(`townView.k1ghjbfc133`))+` `+m(f(Xt))+` `,1),O(`button`,{class:`mini-btn chat-refresh`,title:o.$t(`townView.k15avt7g021`),onClick:zl},m(f(en)?`…`:`↻`),9,xc)]),O(`div`,{ref_key:`chatScroll`,ref:nn,class:`rpg-lines chat-embed`},[f(en)?(l(),S(`div`,Sc,m(o.$t(`townView.kkhlx5h109`)),1)):w(``,!0),f(q).length?(l(),S(h,{key:1},[O(`div`,Cc,m(o.$t(`townView.k768cnt134`))+` `+m(f(q).length),1),(l(!0),S(h,null,c(f(q),e=>(l(),S(`div`,{key:e.id,class:`rpg-line hist`},[O(`span`,wc,m(Hl(e.at)),1),O(`div`,Tc,[Vl(e.kind)?(l(),S(`span`,{key:0,class:u([`rpg-kind`,`k-${e.kind}`])},m(Vl(e.kind)),3)):w(``,!0),O(`span`,Ec,m(e.text),1)])]))),128))],64)):w(``,!0),f(Yt).length?(l(),S(`div`,Dc,m(o.$t(`townView.k1cwz73k135`))+` `+m(f(Yt).length),1)):w(``,!0),(l(!0),S(h,null,c(f(Yt),e=>(l(),S(`div`,{key:e.id,class:`rpg-line live`},[O(`span`,Oc,m(Hl(e.at)),1),O(`div`,kc,[O(`span`,Ac,m(e.text),1)])]))),128)),f(K)?.state===`busy`?(l(),S(`div`,jc,[s[80]||=O(`span`,{class:`ty-dot`},null,-1),s[81]||=O(`span`,{class:`ty-dot`},null,-1),s[82]||=O(`span`,{class:`ty-dot`},null,-1),O(`span`,Mc,m(o.$t(`townView.k3o5tz9110`)),1)])):w(``,!0),!f(en)&&!f(q).length&&!f(Yt).length?(l(),S(`div`,Nc,m(o.$t(`townView.k1qkqld7111`)),1)):w(``,!0)],512)],64)):w(``,!0)])):w(``,!0)]),_:1}),O(`section`,Pc,[O(`div`,Fc,[O(`h3`,null,m(o.$t(`townView.k17dkhgd112`)),1)]),O(`div`,Ic,[O(`div`,Lc,[O(`canvas`,{ref_key:`donutCanvas`,ref:rf,width:`118`,height:`118`},null,512),O(`div`,Rc,[O(`b`,{style:p({color:f(nf)})},m(f(tf))+`%`,5),O(`span`,null,m(o.$t(`townView.k7h1nxo113`)),1)])]),O(`div`,zc,[O(`div`,Bc,[s[86]||=O(`span`,{class:`hl-dot`,style:{background:`var(--hud-accent)`}},null,-1),g(` `+m(o.$t(`townView.k3vp67i114`))+` `,1),O(`span`,Vc,m(f(Kd)),1)]),O(`div`,Hc,[s[87]||=O(`span`,{class:`hl-dot`,style:{background:`var(--hud-amber)`}},null,-1),g(` `+m(o.$t(`townView.k3zcvb115`))+` `,1),O(`span`,Uc,m(f(Qd)),1)]),O(`div`,Wc,[s[88]||=O(`span`,{class:`hl-dot`,style:{background:`var(--hud-danger)`}},null,-1),g(` `+m(o.$t(`townView.k3xmid116`))+` `,1),O(`span`,Gc,m(f($d)),1)]),O(`div`,Kc,[s[89]||=O(`span`,{class:`hl-dot`,style:{background:`#3a4a63`}},null,-1),g(` `+m(o.$t(`townView.statesOffline`))+` `,1),O(`span`,qc,m(f(ef)),1)])])])]),O(`section`,Jc,[O(`div`,Yc,[O(`h3`,null,m(o.$t(`townView.k1q247fn117`)),1),O(`span`,Xc,m(f(j).twins.length),1)]),ie(_,{class:`kd-embed`,"daq-live":f(Bd),"dcw-live":f(Vd),onFocusDevice:zt},null,8,[`daq-live`,`dcw-live`])]),O(`section`,Zc,[O(`div`,Qc,[O(`h3`,null,m(o.$t(`townView.k1cxf749118`)),1),O(`span`,$c,m(f(uf))+` `+m(o.$t(`townView.k4dfq040`)),1),O(`button`,{class:`mini-btn`,title:o.$t(`townView.k1bkswpz022`),onClick:ff},` ✓ `,8,el)]),O(`div`,tl,[(l(!0),S(h,null,c(f(of).slice(0,8),e=>(l(),S(`div`,{key:e.id,class:`al-row`},[O(`span`,{class:u([`al-ico`,e.state===2?`info`:e.state===1?`warn`:`crit`])},[...s[90]||=[O(`svg`,{class:`al-svg`,viewBox:`0 0 24 24`},[O(`path`,{d:`M12 3 22 20H2L12 3Z`}),O(`path`,{d:`M12 10v4M12 17v.2`})],-1)]],2),O(`div`,nl,[O(`div`,rl,m(e.txt),1),O(`div`,il,m(e.src)+` · `+m(e.time),1)]),O(`button`,{class:u([`al-state`,`s${e.state}`]),onClick:t=>df(e.id)},m(cf[e.state]),11,al)]))),128)),f(of).length?w(``,!0):(l(),S(`div`,ol,[s[91]||=O(`svg`,{class:`re-ico`,viewBox:`0 0 24 24`},[O(`path`,{d:`M12 3l7 3v5c0 4.6-3 8.2-7 10-4-1.8-7-5.4-7-10V6l7-3Z`}),O(`path`,{d:`m9.2 12.2 2 2 3.6-4`})],-1),O(`span`,null,m(o.$t(`townView.kjz544r119`)),1)]))])]),O(`section`,sl,[O(`div`,cl,[O(`h3`,null,m(o.$t(`townView.k1cxdtq2120`)),1),O(`span`,ll,m(f(Yl).length),1)]),O(`div`,ul,[(l(!0),S(h,null,c([...f(Yl)].reverse(),(e,t)=>(l(),S(`div`,{key:`${e.at}-${t}`,class:`event-row`},[O(`span`,dl,m(Hl(e.at)),1),O(`span`,{class:`ev-name`,title:e.agentName},m(e.agentName),9,fl),O(`span`,{class:`ev-text`,title:e.text},m(e.text),9,pl)]))),128)),f(Yl).length?w(``,!0):(l(),S(`div`,ml,[s[92]||=O(`svg`,{class:`re-ico`,viewBox:`0 0 24 24`},[O(`path`,{d:`M3 12h3l2.5-6 4 12L15 12h6`})],-1),O(`span`,null,m(o.$t(`townView.k2uk6ua121`)),1)]))])]),O(`section`,hl,[O(`div`,gl,[O(`h3`,null,m(o.$t(`townView.kjug2jq122`)),1)]),O(`div`,_l,[O(`div`,{class:`mm-wrap`,title:o.$t(`townView.klfwiqg023`)},[O(`canvas`,{ref_key:`navCanvas`,ref:Uf,class:`nav-cv`,onPointerdown:Jf,onPointermove:Yf,onPointerup:Xf,onPointercancel:Xf,onWheel:a(qf,[`prevent`])},null,544)],8,vl),O(`div`,yl,[O(`button`,{class:`vp-tool`,title:o.$t(`townView.k1lap9bs024`),onClick:Of},[...s[93]||=[O(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[O(`path`,{d:`M3 12a9 9 0 1 0 3-6.7M3 4v5h5`})],-1)]],8,bl),O(`button`,{class:`vp-tool`,title:o.$t(`townView.kav8a8k025`),onClick:s[49]||=e=>f(P)?.zoomBy(.22)},[...s[94]||=[O(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[O(`circle`,{cx:`11`,cy:`11`,r:`6.5`}),O(`path`,{d:`m16 16 4.5 4.5M8.5 11h5`})],-1)]],8,xl),O(`button`,{class:`vp-tool`,title:o.$t(`townView.k1u7uce9026`),onClick:s[50]||=e=>f(P)?.zoomBy(-.18)},[...s[95]||=[O(`svg`,{class:`vp-svg`,viewBox:`0 0 24 24`},[O(`circle`,{cx:`11`,cy:`11`,r:`6.5`}),O(`path`,{d:`m16 16 4.5 4.5M8.5 11h5M11 8.5v5`})],-1)]],8,Sl)])]),O(`div`,Cl,m(o.$t(`townView.k1gaaodq136`))+m(f(Wf).toFixed(1))+` · `+m(f(Gt)?.devices?.length??0)+` `+m(o.$t(`townView.k47e16126`)),1)])])]),O(`footer`,wl,[O(`span`,null,[O(`span`,{class:u([`sb-dot`,{red:f(ne).state!==`open`}])},null,2),g(m(o.$t(`townView.k1i4g246123`))+` `,1),O(`b`,null,m(f(ne).state===`open`?o.$t(`townView.k41k5c154`):f(je)?o.$t(`townView.k3lmtk3184`):o.$t(`townView.k44c2n186`)),1)]),O(`span`,Tl,[g(m(o.$t(`townView.k4a0jt124`))+` `,1),O(`b`,null,m(f(xe)),1),s[96]||=O(`i`,null,`·`,-1),g(m(o.$t(`townView.k3xdvm125`))+` `,1),O(`b`,null,m(f(be)),1),s[97]||=O(`i`,null,`·`,-1),g(m(o.$t(`townView.k47e16126`))+` `,1),O(`b`,null,m(f(Gd)),1)]),O(`span`,El,m(f(ye))+` FPS `,1),O(`span`,Dl,` © 2026 ABO · DIGITAL TWIN · `+m(o.$t(`townView.k1h5gxpf137`)),1)]),f(_e)?w(``,!0):(l(),S(`div`,Ol,[s[98]||=O(`div`,{class:`loading-spinner`},null,-1),O(`span`,kl,m(o.$t(`townView.kvjdqfg059`)),1)]))])}}}),[[`__scopeId`,`data-v-5b974b95`]]),{__name:`WorkshopTownView`});export{ln as n,zl as t};
@@ -0,0 +1 @@
1
+ import{ft as e}from"./BSCpFtzG.js";import{t}from"./G0qIw7Gq2.js";import{i as n}from"./DAR70Lf52.js";var r=`__deviceTwins`;function i(){let r=[],i=e({twins:r,loaded:!1,error:``,async load(){return i.__loading||=(async()=>{try{let e=await n({base:`/api/workshop/device-twins`,retries:2});i.twins.splice(0,i.twins.length,...e?.twins??[]),i.loaded=!0,i.error=``}catch(e){i.loaded=!1,i.error=t(e)}finally{i.__loading=null}})(),i.__loading},applyRemote(e){let t=i.twins.findIndex(t=>t.id===e.id);t>=0?Object.assign(i.twins[t],e):i.twins.push({...e})},removeRemote(e){let t=i.twins.findIndex(t=>t.id===e);t>=0&&i.twins.splice(t,1)},byId(e){return r.find(t=>t.id===e)},async create(e){let t=await n({base:`/api/workshop/device-twins`,init:{method:`POST`,body:JSON.stringify(e)}});return i.loaded=!1,await i.load(),t.twin},async update(e,t){let r=await n({base:`/api/workshop/device-twins/${e}`,init:{method:`PATCH`,body:JSON.stringify(t)}});return i.loaded=!1,await i.load(),r.twin},async control(e,t,r){let a=await n({base:`/api/workshop/device-twins/${e}/control`,init:{method:`POST`,body:JSON.stringify({command:t,args:r??{}})}});return i.loaded=!1,await i.load(),a.twin},async pushTelemetry(e,t){let r=await n({base:`/api/workshop/device-twins/${e}/telemetry`,init:{method:`POST`,body:JSON.stringify({telemetry:t})}});return i.loaded=!1,await i.load(),r.twin},async remove(e){await n({base:`/api/workshop/device-twins/${e}`,init:{method:`DELETE`}}),i.loaded=!1,await i.load()}});return i}function a(){let e=globalThis;e[r]||(e[r]=i());let t=e[r];return t.load(),t}export{a as t};
@@ -0,0 +1 @@
1
+ .page[data-v-9c77bd7c]{padding:4px}.back[data-v-9c77bd7c]{color:var(--ink-faint);text-decoration:none}.back[data-v-9c77bd7c]:hover{color:var(--accent)}.aw-page-head h1[data-v-9c77bd7c]{letter-spacing:-.01em;margin:2px 0 4px;font-size:26px;font-weight:400}.mono[data-v-9c77bd7c]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.sec[data-v-9c77bd7c]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 10px;font-size:12px;font-weight:600}.mt[data-v-9c77bd7c]{margin-top:22px}.err[data-v-9c77bd7c]{color:var(--tone-danger-dot);margin-top:14px;font-size:13px}.grid[data-v-9c77bd7c]{grid-template-columns:minmax(260px,340px) minmax(320px,1fr) minmax(280px,380px);align-items:start;gap:14px;display:grid}@media (width<=1100px){.grid[data-v-9c77bd7c]{grid-template-columns:1fr}}.pad[data-v-9c77bd7c],.value-card[data-v-9c77bd7c]{padding:16px 18px}.big-val[data-v-9c77bd7c]{color:var(--accent);margin:8px 0 10px;font-size:40px;line-height:1.1}.big-val small[data-v-9c77bd7c]{color:var(--ink-faint);margin-left:8px;font-size:15px}.live-canvas[data-v-9c77bd7c]{border:1px solid var(--line);border-radius:var(--radius-chip);background:var(--paper-deep);width:100%;height:64px}.facts[data-v-9c77bd7c]{flex-direction:column;gap:4px;margin:14px 0 0;display:flex}.facts div[data-v-9c77bd7c]{justify-content:space-between;font-size:11.5px;display:flex}.facts dt[data-v-9c77bd7c]{color:var(--ink-faint)}.facts dd[data-v-9c77bd7c]{color:var(--ink);margin:0}.form-grid[data-v-9c77bd7c]{flex-direction:column;gap:10px;display:flex}.field[data-v-9c77bd7c]{color:var(--ink-faint);flex-direction:column;flex:1;gap:4px;font-size:12px;display:flex}.field.row[data-v-9c77bd7c]{flex-direction:row;align-items:center;gap:8px}.field.row small[data-v-9c77bd7c]{color:var(--ink-faint)}.field-row[data-v-9c77bd7c]{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.input[data-v-9c77bd7c]{width:100%;color:var(--ink);background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 9px;font-size:12.5px}.input[data-v-9c77bd7c]:disabled{opacity:.45}.grow[data-v-9c77bd7c]{flex:auto}.toggle[data-v-9c77bd7c]{cursor:pointer;color:var(--tone-neutral-dot);background:var(--tone-neutral-bg);border-radius:var(--radius-chip);border:0;align-self:flex-start;padding:6px 12px;font-size:12px}.toggle.on[data-v-9c77bd7c]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.toggle.slim[data-v-9c77bd7c]{padding:6px 10px;font-size:11.5px}.bind-row[data-v-9c77bd7c]{gap:8px;display:flex}.driver-grid[data-v-9c77bd7c]{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.field em[data-v-9c77bd7c]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.test-row[data-v-9c77bd7c]{align-items:center;gap:10px;margin-top:8px;display:flex}.test-out[data-v-9c77bd7c]{font-size:11px}.test-out.ok[data-v-9c77bd7c]{color:var(--tone-success-dot)}.test-out.bad[data-v-9c77bd7c]{color:var(--tone-danger-dot)}.col-hist[data-v-9c77bd7c]{min-width:0}.hist-hd[data-v-9c77bd7c]{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.hist-ctl[data-v-9c77bd7c]{gap:6px;display:flex}.hist-canvas[data-v-9c77bd7c]{border:1px solid var(--line);border-radius:var(--radius-chip);background:var(--paper-deep);width:100%;height:130px}.raw-table[data-v-9c77bd7c]{border-collapse:collapse;width:100%;margin-top:10px;font-size:11px}.raw-table td[data-v-9c77bd7c],.raw-table th[data-v-9c77bd7c]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:4px 6px}.raw-table th[data-v-9c77bd7c]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-fainter);font-weight:600}.st-pill[data-v-9c77bd7c]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 11px;font-size:11px;display:inline-block}.st-pill.ok[data-v-9c77bd7c]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.warn[data-v-9c77bd7c]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.st-pill.alarm[data-v-9c77bd7c]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.offline[data-v-9c77bd7c]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.frames-tile[data-v-9c77bd7c]{margin-top:14px}.frames-n[data-v-9c77bd7c]{color:var(--ink-faint);margin-left:8px}.vec-svg[data-v-9c77bd7c]{background:var(--tone-neutral-bg);border-radius:6px;width:100%;height:96px;margin-bottom:10px;display:block}.gal[data-v-9c77bd7c]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.gal-item[data-v-9c77bd7c]{cursor:zoom-in;margin:0}.gal-item img[data-v-9c77bd7c]{aspect-ratio:4/3;-o-object-fit:cover;object-fit:cover;background:var(--tone-neutral-bg);border-radius:6px;width:100%;display:block}.gal-item figcaption[data-v-9c77bd7c]{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:11px;overflow:hidden}.frames-empty[data-v-9c77bd7c]{color:var(--ink-faint);margin:8px 0;font-size:13px}.gal-full[data-v-9c77bd7c]{z-index:60;cursor:zoom-out;background:#000000b8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gal-full img[data-v-9c77bd7c]{border-radius:8px;max-width:92vw;max-height:92vh}
@@ -0,0 +1 @@
1
+ .line-chip[data-v-385b5f14]{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:8px;display:inline-block;box-shadow:0 0 10px}.param-chip.daqwin[data-v-385b5f14]{color:#41c8f4;border-color:#41c8f466}.adopt-card[data-v-385b5f14]{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.adopt-title[data-v-385b5f14]{color:var(--aw-dim,#8fa0b5);flex:none;padding-top:4px;font-size:12px}.adopt-list[data-v-385b5f14]{flex-wrap:wrap;gap:8px;display:flex}.adopt-chip[data-v-385b5f14]{color:#e8eef8;background:#0d1420b3;border:1px solid #3c506e80;border-radius:8px;align-items:center;gap:6px;padding:4px 8px;font-size:11px;display:inline-flex}.page[data-v-385b5f14]{padding:4px}h1[data-v-385b5f14]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.ledger-card[data-v-385b5f14]{margin-bottom:14px;padding:14px 18px}.ledger-head[data-v-385b5f14]{align-items:center;gap:12px;display:flex}.ledger-head b[data-v-385b5f14]{font-size:13.5px}.ledger-tri[data-v-385b5f14]{align-items:center;gap:12px;margin-top:12px;display:flex}.tri-cell[data-v-385b5f14]{background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);flex-direction:column;flex:none;gap:2px;padding:8px 16px;display:flex}.tri-cell small[data-v-385b5f14]{color:var(--ink-faint);font-size:10px}.tri-cell b[data-v-385b5f14]{color:var(--ink);font-size:17px}.ledger-cols[data-v-385b5f14]{grid-template-columns:1fr 1fr;gap:16px;margin-top:12px;display:grid}.sec-t[data-v-385b5f14]{letter-spacing:.14em;color:var(--ink-faint);margin-bottom:6px;font-size:10px;font-weight:700;display:block}.ledger-list[data-v-385b5f14]{max-height:200px;color:var(--ink-soft);flex-direction:column;gap:3px;margin:0;padding:0;font-size:11px;list-style:none;display:flex;overflow:auto}.ledger-rec[data-v-385b5f14]{align-items:center;gap:8px;display:flex}.rec-st[data-v-385b5f14]{font-family:var(--font-mono);color:var(--ink-faint);border:1px solid var(--line-strong);border-radius:4px;flex:none;padding:0 6px;font-size:9px}.rec-st.open[data-v-385b5f14]{color:var(--tone-warning-dot);border-color:var(--tone-warning-dot)}.rec-st.judged[data-v-385b5f14]{color:var(--tone-warning-dot);border-color:var(--tone-warning-dot);opacity:.85}.rec-st.judged-keep[data-v-385b5f14],.rec-st.rolled-back[data-v-385b5f14]{color:var(--tone-success-dot);border-color:var(--tone-success-dot)}.sub[data-v-385b5f14]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-385b5f14]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-385b5f14]{opacity:.55}.badges[data-v-385b5f14]{gap:8px;display:flex}.badge[data-v-385b5f14]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11px}.ctrl-card[data-v-385b5f14]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:14px 18px;display:flex}.ctrl-left[data-v-385b5f14]{align-items:center;gap:14px;display:flex}.aw-pill.running[data-v-385b5f14]{background:var(--accent)}.ctrl-right[data-v-385b5f14]{align-items:center;gap:12px;display:flex}.ctrl-metrics[data-v-385b5f14]{color:var(--ink-soft);align-items:center;gap:8px;font-size:11.5px;display:flex}.ctrl-metrics .sep[data-v-385b5f14]{opacity:.4}.ctrl-metrics .warn[data-v-385b5f14]{color:var(--tone-warning-dot)}.add-btn[data-v-385b5f14]{padding:8px 16px;font-size:13px}.banner[data-v-385b5f14]{border-radius:var(--radius-chip);margin:0 0 12px;padding:9px 14px;font-size:12.5px}.banner.bad[data-v-385b5f14]{color:var(--tone-danger-dot);background:var(--tone-danger-bg);border:1px solid color-mix(in srgb, var(--tone-danger-dot) 40%, transparent)}.banner.good[data-v-385b5f14]{color:var(--tone-success-dot);background:var(--tone-success-bg);border:1px solid color-mix(in srgb, var(--tone-success-dot) 40%, transparent)}.table-card[data-v-385b5f14]{margin-bottom:14px;overflow-x:auto}.nodes-table[data-v-385b5f14]{border-collapse:collapse;width:100%;font-size:12.5px}.nodes-table td[data-v-385b5f14],.nodes-table th[data-v-385b5f14]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:9px 12px}.nodes-table th[data-v-385b5f14]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11px;font-weight:600}.nodes-table td b[data-v-385b5f14]{margin-left:8px}.ch[data-v-385b5f14]{color:var(--ink-faint);margin-top:2px;font-size:10px;display:block}.right[data-v-385b5f14]{text-align:right}.val[data-v-385b5f14]{font-size:13px}.val small[data-v-385b5f14]{color:var(--ink-faint);margin-left:3px}.read-stale[data-v-385b5f14]{color:var(--tone-danger-dot,#e05a5a);text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.read-btn[data-v-385b5f14]{margin-left:8px}.st-pill[data-v-385b5f14]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:2px 9px;font-size:10.5px;display:inline-block}.st-pill.ok[data-v-385b5f14]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.writing[data-v-385b5f14]{color:var(--ink);background:var(--hover-tint)}.st-pill.alarm[data-v-385b5f14],.st-pill.error[data-v-385b5f14]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.warn[data-v-385b5f14]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.st-pill.idle[data-v-385b5f14],.st-pill.offline[data-v-385b5f14]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.paused[data-v-385b5f14]{color:var(--tone-warning-dot);background:var(--tone-warning-bg)}.ctrl-toggle[data-v-385b5f14]{cursor:pointer;color:var(--ink-faint);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:3px 10px;font-size:11.5px;display:inline-flex}.ctrl-toggle .ct-dot[data-v-385b5f14]{background:var(--tone-neutral-dot);border-radius:50%;width:7px;height:7px}.ctrl-toggle.on[data-v-385b5f14]{color:var(--tone-success-dot);border-color:color-mix(in srgb, var(--tone-success-dot) 45%, transparent)}.ctrl-toggle.on .ct-dot[data-v-385b5f14]{background:var(--tone-success-dot);box-shadow:0 0 6px var(--tone-success-dot)}.ctrl-toggle[data-v-385b5f14]:disabled{opacity:.55;cursor:wait}.node-paused td[data-v-385b5f14]{opacity:.6}.node-paused .write-row[data-v-385b5f14]{opacity:.5}.tpl-hint[data-v-385b5f14]{margin:0 0 10px;font-size:12px}.tpl-chips[data-v-385b5f14]{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.tpl-chip[data-v-385b5f14]{color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;display:inline-flex}.tpl-chip small[data-v-385b5f14]{color:var(--ink-faint)}.tpl-tag[data-v-385b5f14]{color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:var(--radius-pill);padding:1px 6px;font-size:10px;font-style:normal}.tpl-tag.builtin[data-v-385b5f14]{color:var(--ink-faint);border-color:var(--line-strong)}.write-row[data-v-385b5f14]{align-items:center;gap:6px;display:flex}.write-inp[data-v-385b5f14]{width:92px;padding:4px 8px}.write-btn[data-v-385b5f14]{padding:5px 12px}.mini-btn[data-v-385b5f14]{margin-right:4px}.mini-btn.danger[data-v-385b5f14]{color:var(--tone-danger-dot)}.mini-btn[data-v-385b5f14]:hover{border-color:var(--accent);color:var(--accent)}.inp[data-v-385b5f14]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 9px;font-size:12.5px}.line-card[data-v-385b5f14]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:14px 18px;display:flex}.line-status[data-v-385b5f14]{align-items:center;gap:12px;min-width:260px;display:flex}.line-dot[data-v-385b5f14]{background:var(--tone-neutral-dot);width:12px;height:12px;box-shadow:0 0 0 4px color-mix(in srgb, var(--tone-neutral-dot) 20%, transparent);border-radius:50%}.line-dot.on[data-v-385b5f14]{background:var(--tone-success-dot);box-shadow:0 0 0 4px color-mix(in srgb, var(--tone-success-dot) 22%, transparent);animation:1.6s infinite linePulse-385b5f14}@keyframes linePulse-385b5f14{0%,to{box-shadow:0 0 0 3px color-mix(in srgb, var(--tone-success-dot) 25%, transparent)}50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--tone-success-dot) 8%, transparent)}}.line-info b[data-v-385b5f14]{font-size:14px}.line-info small[data-v-385b5f14]{margin-top:2px;font-size:11px;display:block}.line-ctl[data-v-385b5f14]{align-items:flex-end;gap:10px;display:flex}.ctl-sel[data-v-385b5f14]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11px;display:flex}.ctl-sel .inp[data-v-385b5f14]{min-width:150px}.pill-btn.stop[data-v-385b5f14]{background:var(--tone-danger-dot);border-color:var(--tone-danger-dot)}.product-row[data-v-385b5f14]{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}.prod-chip[data-v-385b5f14]{cursor:pointer;color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-pill);align-items:center;gap:6px;padding:4px 12px;font-size:12px;display:inline-flex}.prod-chip.on[data-v-385b5f14]{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.prod-del[data-v-385b5f14]{color:var(--tone-danger-dot);font-weight:700}.query-card[data-v-385b5f14]{margin-bottom:14px;padding:14px 18px}.q-grid[data-v-385b5f14]{grid-template-columns:repeat(6,1fr);align-items:end;gap:10px;display:grid}.q-grid .f[data-v-385b5f14]{color:var(--ink-faint);font-size:11px}.q-actions[data-v-385b5f14]{justify-content:flex-end}.q-result[data-v-385b5f14]{margin-top:12px;overflow-x:auto}.cal-form[data-v-385b5f14]{grid-template-columns:2fr 1fr;align-items:end}.recipe-card[data-v-385b5f14]{margin-bottom:14px;padding:16px 18px}.recipe-hd[data-v-385b5f14]{align-items:center;gap:10px;margin-bottom:6px;display:flex}.recipe-hd h3[data-v-385b5f14]{margin:0;font-size:16px}.panel-tag[data-v-385b5f14]{color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:2px 8px;font-size:11px}.recipe-sub[data-v-385b5f14]{color:var(--ink-faint);margin:0 0 14px;font-size:12px}.recipe-grid[data-v-385b5f14]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.recipe-item[data-v-385b5f14]{background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);padding:12px 14px}.recipe-name b[data-v-385b5f14]{font-size:13.5px}.recipe-name small[data-v-385b5f14]{margin-left:8px}.desc[data-v-385b5f14]{margin:4px 0;font-size:12px}.recipe-params[data-v-385b5f14]{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.param-chip[data-v-385b5f14]{color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:var(--radius-chip);padding:2px 8px;font-size:11px}.recipe-actions[data-v-385b5f14]{align-items:center;gap:6px;margin-top:8px;display:flex}.ver-row[data-v-385b5f14]{border:1px solid var(--divider-hair);border-radius:10px;margin-bottom:8px;padding:10px 12px}.ver-row.cur[data-v-385b5f14]{background:color-mix(in srgb, var(--accent) 6%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.ver-head[data-v-385b5f14]{align-items:center;gap:10px;display:flex}.ver-v[data-v-385b5f14]{font-size:13px;font-weight:700}.ver-src[data-v-385b5f14]{border:1px solid var(--line-strong);border-radius:var(--radius-pill);padding:1px 8px;font-size:10.5px}.ver-src.agent[data-v-385b5f14]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 50%, transparent)}.ver-src.user[data-v-385b5f14]{color:var(--ink-soft)}.ver-src.system[data-v-385b5f14]{color:var(--ink-faint)}.ver-src.cur[data-v-385b5f14]{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-color:#0000}.ver-actor[data-v-385b5f14]{font-family:var(--font-mono);color:var(--ink-soft);font-size:12px}.ver-desc[data-v-385b5f14]{color:var(--ink);margin:6px 0 0;font-size:12px}.ver-diff[data-v-385b5f14]{color:var(--ink-faint);margin:4px 0 0;font-size:11px}.sec-label[data-v-385b5f14]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin:14px 0 6px;font-size:11px;font-weight:600}.runs[data-v-385b5f14]{margin-top:6px}.modal-mask[data-v-385b5f14]{z-index:50;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-385b5f14]{background:var(--surface-glass-strong);width:680px;max-width:94vw;max-height:88vh;-webkit-backdrop-filter:var(--aurora-blur);border:1px solid var(--glass-line);border-radius:var(--radius-panel);box-shadow:var(--glass-edge), var(--shadow-float);padding:22px 24px;overflow-y:auto}.m-title[data-v-385b5f14]{margin:0 0 14px;font-size:17px}.seg-row[data-v-385b5f14]{gap:8px;margin-bottom:14px;display:flex}.seg[data-v-385b5f14]{cursor:pointer;color:var(--ink-faint);background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);flex:1;padding:8px 0;font-size:13px}.seg.on[data-v-385b5f14]{color:var(--on-accent);background:var(--accent);border-color:var(--accent);font-weight:600}.f-grid[data-v-385b5f14]{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.driver-form[data-v-385b5f14]{grid-template-columns:repeat(3,1fr)}.param-row[data-v-385b5f14]{grid-template-columns:2fr 1fr 1fr 1fr auto;align-items:end;gap:8px;margin-bottom:8px;display:grid}.param-row .f[data-v-385b5f14]{flex:1}.param-del[data-v-385b5f14]{margin-bottom:2px}.f[data-v-385b5f14]{color:var(--ink-faint);flex-direction:column;gap:4px;font-size:11.5px;display:flex}.f em[data-v-385b5f14]{margin-left:3px;font-style:normal}.hint[data-v-385b5f14]{color:var(--ink-fainter);font-size:10px}.test-row[data-v-385b5f14]{align-items:center;gap:10px;margin:6px 0 4px;display:flex}.test-result[data-v-385b5f14]{font-family:var(--font-mono);font-size:11px}.test-result.good[data-v-385b5f14]{color:var(--tone-success-dot)}.test-result.bad[data-v-385b5f14]{color:var(--tone-danger-dot)}.m-err[data-v-385b5f14]{color:var(--tone-danger-dot);margin:8px 0 0;font-size:12px}.m-note[data-v-385b5f14]{color:var(--ink-faint);margin:8px 0 0;font-size:12px}.param-chip.stale[data-v-385b5f14]{color:var(--ink-faint);background:color-mix(in srgb, var(--ink) 5%, transparent);border-color:var(--divider-hair);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--ink-faint) 60%, transparent);text-decoration-color:color-mix(in srgb, var(--ink-faint) 60%, transparent)}.chip-stale-tag[data-v-385b5f14]{color:var(--tone-danger-dot);background:color-mix(in srgb, var(--tone-danger-dot) 8%, transparent);border:1px solid color-mix(in srgb, var(--tone-danger-dot) 30%, transparent);border-radius:var(--radius-chip);margin-left:5px;padding:0 5px;font-size:9.5px;font-style:normal;text-decoration:none}.row-stale[data-v-385b5f14]{color:var(--tone-danger-dot);border:1px solid color-mix(in srgb, var(--tone-danger-dot) 30%, transparent);border-radius:var(--radius-chip);flex:none;padding:1px 7px;font-size:10.5px}.m-actions[data-v-385b5f14]{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.aw-pill.outline[data-v-385b5f14]{color:var(--ink);background:var(--paper-raised);border-color:var(--line-strong)}.err[data-v-385b5f14]{color:var(--tone-danger-dot);margin-top:14px;font-size:13px}@media (prefers-reduced-motion:no-preference){.nodes-table tbody tr[data-v-385b5f14]:hover{background:var(--hover-tint)}}