agentworkshop 0.6.1 → 0.7.1
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.
- package/.AgentWorkShop/prompts/host-tools.json +17 -0
- package/.env.example +37 -0
- package/.output/.AgentWorkShop/prompts/host-tools.json +17 -0
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{Bc_mM2cU.js → BH0Z05CS.js} +1 -1
- package/.output/public/_nuxt/Bxgaym6j.js +1 -0
- package/.output/public/_nuxt/{DRlJ2-4p.js → By-LNp3k.js} +1 -1
- package/.output/public/_nuxt/{C2QSTAWf.js → Bz40vyZS.js} +1 -1
- package/.output/public/_nuxt/{CwS_UHeH.js → CS8R0_J3.js} +1 -1
- package/.output/public/_nuxt/{ClptO7LA.js → CUxV8Bw_.js} +1 -1
- package/.output/public/_nuxt/CXmkVXS5.js +1 -0
- package/.output/public/_nuxt/DC-QMEk1.js +2 -0
- package/.output/public/_nuxt/{C-Y5ydB6.js → Dgp2wK2U.js} +6 -6
- package/.output/public/_nuxt/{Ck6tznoQ.js → DjqcbFBE.js} +1 -1
- package/.output/public/_nuxt/{B0haAGoq.js → GP2wXyuY.js} +1 -1
- package/.output/public/_nuxt/TownView.Bt33bo1M.css +1 -0
- package/.output/public/_nuxt/{MhK4buEJ.js → XVB9_zwP.js} +1 -1
- package/.output/public/_nuxt/_id_.BeqSLvl_.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/0f65fbec-c4c0-45de-9c50-bb41ada375e5.json +1 -0
- package/.output/public/_nuxt/{Bq_KKxCg.js → i_MKObHo.js} +1 -1
- package/.output/public/_nuxt/settings.DeRNNUcP.css +1 -0
- package/.output/public/_nuxt/{CclO6GyL.js → tpDMVY5w.js} +1 -1
- package/.output/public/_nuxt/{C0FogB-p.js → zwdqvGN_.js} +1 -1
- package/.output/server/chunks/_/nitro.mjs +2674 -2347
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/build/{TownView-D9yCQe1T.mjs → TownView-BkHxMiwZ.mjs} +168 -159
- package/.output/server/chunks/build/{TownView-D9yCQe1T.mjs.map → TownView-BkHxMiwZ.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-xR3AChMO.mjs → _id_-Bna1_JuB.mjs} +5 -4
- package/.output/server/chunks/build/_id_-Bna1_JuB.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-CmKAEFHV.mjs → _id_-GnRJPykX.mjs} +161 -119
- package/.output/server/chunks/build/_id_-GnRJPykX.mjs.map +1 -0
- package/.output/server/chunks/build/{_wsId_-C45nVrl-.mjs → _wsId_-CzLDGT_V.mjs} +6 -5
- package/.output/server/chunks/build/{_wsId_-C45nVrl-.mjs.map → _wsId_-CzLDGT_V.mjs.map} +1 -1
- package/.output/server/chunks/build/agents-D4l1icvn.mjs +1 -0
- package/.output/server/chunks/build/agents-D4l1icvn.mjs.map +1 -1
- package/.output/server/chunks/build/channel-templates-DqjtC-R0.mjs +1 -0
- package/.output/server/chunks/build/channel-templates-DqjtC-R0.mjs.map +1 -1
- package/.output/server/chunks/build/{daq-Boz_dlAQ.mjs → daq-D_W59QOe.mjs} +6 -5
- package/.output/server/chunks/build/daq-D_W59QOe.mjs.map +1 -0
- package/.output/server/chunks/build/{dcw-wTRwBAUi.mjs → dcw-BTM5YU-B.mjs} +3 -2
- package/.output/server/chunks/build/dcw-BTM5YU-B.mjs.map +1 -0
- package/.output/server/chunks/build/default-Dt6xLdpd.mjs +1 -0
- package/.output/server/chunks/build/{logs-Cdi-eXlN.mjs → logs-CUQt1z7D.mjs} +4 -3
- package/.output/server/chunks/build/logs-CUQt1z7D.mjs.map +1 -0
- package/.output/server/chunks/build/monitor-yNoV98rf.mjs +1 -0
- package/.output/server/chunks/build/{pages-bWKy0ZsA.mjs → pages-DR2bzczM.mjs} +4 -3
- package/.output/server/chunks/build/pages-DR2bzczM.mjs.map +1 -0
- package/.output/server/chunks/build/plugins-B-ZNey0Z.mjs +1 -0
- package/.output/server/chunks/build/plugins-B-ZNey0Z.mjs.map +1 -1
- package/.output/server/chunks/build/{settings-C3T5hR2A.mjs → settings-Cr06lbRy.mjs} +26 -18
- package/.output/server/chunks/build/settings-Cr06lbRy.mjs.map +1 -0
- package/.output/server/chunks/build/teams-QR3BBF7A.mjs +1 -0
- package/.output/server/chunks/build/teams-QR3BBF7A.mjs.map +1 -1
- package/.output/server/chunks/build/tokens-DFvr_TLj.mjs +1 -0
- package/.output/server/chunks/build/tokens-DFvr_TLj.mjs.map +1 -1
- package/.output/server/chunks/build/{town-CKg6Qxba.mjs → town-BN4vQPb8.mjs} +6 -5
- package/.output/server/chunks/build/town-BN4vQPb8.mjs.map +1 -0
- package/.output/server/chunks/build/town-BUqRobze.mjs +1 -0
- package/.output/server/chunks/build/town-BUqRobze.mjs.map +1 -1
- package/.output/server/chunks/build/{useDaqStream-zHEptJQ_.mjs → useDaqStream-hwkhJHFU.mjs} +2 -2
- package/.output/server/chunks/build/{useDaqStream-zHEptJQ_.mjs.map → useDaqStream-hwkhJHFU.mjs.map} +1 -1
- package/.output/server/chunks/build/{useDcwStream-BkWDGaWp.mjs → useDcwStream-Bdew_yrr.mjs} +16 -1
- package/.output/server/chunks/build/useDcwStream-Bdew_yrr.mjs.map +1 -0
- package/.output/server/chunks/build/{useDeviceTwins-NhtXqSkU.mjs → useDeviceTwins-C6EBg9oN.mjs} +2 -2
- package/.output/server/chunks/build/{useDeviceTwins-NhtXqSkU.mjs.map → useDeviceTwins-C6EBg9oN.mjs.map} +1 -1
- package/.output/server/chunks/build/{useOpsLog-CU64VDg5.mjs → useOpsLog-DdCqKVVG.mjs} +2 -2
- package/.output/server/chunks/build/{useOpsLog-CU64VDg5.mjs.map → useOpsLog-DdCqKVVG.mjs.map} +1 -1
- package/.output/server/chunks/build/users-4FZ0yFUO.mjs +1 -0
- package/.output/server/chunks/build/users-4FZ0yFUO.mjs.map +1 -1
- package/.output/server/chunks/build/workshop-CLhwe5eo.mjs +1 -0
- package/.output/server/chunks/build/workshop-CLhwe5eo.mjs.map +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +1 -0
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/mcp/workshop.mjs +1 -0
- package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
- package/.output/server/chunks/routes/api/metrics.mjs +1 -0
- package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +1 -0
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +1 -0
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/config.get.mjs +1 -0
- package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +1 -0
- package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +1 -0
- package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/monitor.get.mjs +1 -0
- package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs +1 -0
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +1 -0
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.put.mjs +1 -0
- package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/login.post.mjs +1 -0
- package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/logout.post.mjs +1 -0
- package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/me.get.mjs +1 -0
- package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/register.post.mjs +1 -0
- package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +1 -0
- package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/caller.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/caller.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +31 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/runtime.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/users/me.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/users/register.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +1 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/chunks/virtual/entry.mjs +287 -85
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/index.mjs +1 -0
- package/.output/server/package.json +1 -1
- package/README-zh.md +434 -430
- package/README.md +5 -1
- package/app/components/workshop/DeviceTwinPanel.vue +34 -0
- package/app/components/workshop/town/TownView.vue +5 -0
- package/app/composables/workshop/useDcwStream.ts +15 -1
- package/app/config/schema.ts +54 -0
- package/app/pages/dcw/[id].vue +57 -0
- package/app/pages/settings.vue +2 -1
- package/config.yml +58 -1
- package/i18n/dicts/_en.json +56 -2
- package/i18n/dicts/dcwDetail.json +9 -1
- package/i18n/dicts/deviceTwinPanel.json +2 -1
- package/i18n/dicts/settings.json +48 -1
- package/i18n/locales/en.ts +139 -38
- package/i18n/locales/zh-CN.ts +139 -38
- package/package.json +1 -1
- package/scripts/_dbg-agent-dcw-rw.ts +131 -0
- package/scripts/_dbg-config-smoke.ts +28 -0
- package/scripts/_dbg-dcw-read-rest.mjs +103 -0
- package/scripts/_dbg-dcw-read-toolface.ts +13 -0
- package/scripts/_dbg-dcw-read-ui.mjs +74 -0
- package/scripts/_dbg-plugin-ui-wizard.mjs +125 -0
- package/scripts/test-config-precedence.ts +124 -0
- package/scripts/test-dcw-read.ts +153 -0
- package/server/api/workshop/dcw/[id]/read.post.ts +18 -0
- package/server/api/workshop/ws.ts +6 -4
- package/server/data/daqs.json +55 -9
- package/server/data/dcw-rollback.json +221 -1
- package/server/data/dcw-runs.json +41 -18
- package/server/data/dcw-writes.json +264 -0
- package/server/data/dcws.json +646 -4
- package/server/data/line-runs.json +12 -1
- package/server/plugins/backup.ts +7 -5
- package/server/plugins/retention.ts +59 -57
- package/server/plugins/workshop.ts +5 -4
- package/server/services/workshop/agents/industrial-tools.ts +50 -1
- package/server/services/workshop/agents/omp-agent.ts +10 -8
- package/server/services/workshop/agents/tool-approvals.ts +175 -174
- package/server/services/workshop/daq/alarm-notify.ts +102 -100
- package/server/services/workshop/daq/bus/mqtt.adapter.ts +14 -15
- package/server/services/workshop/daq/storage/sqlite.adapter.ts +5 -4
- package/server/services/workshop/daq/storage/timescale.adapter.ts +5 -4
- package/server/services/workshop/db/retention.ts +49 -50
- package/server/services/workshop/dcw/dcw-controller.ts +56 -1
- package/server/services/workshop/dcw/dcw-node.ts +233 -200
- package/server/services/workshop/dcw/dcw-runtime.ts +46 -9
- package/server/services/workshop/dcw/drivers.ts +98 -0
- package/server/services/workshop/dcw/recipe-rollback-manager.ts +16 -15
- package/server/services/workshop/logger.ts +65 -58
- package/server/services/workshop/runtime/embedding-provider.ts +9 -5
- package/server/services/workshop/runtime/manager.ts +16 -7
- package/server/services/workshop/runtime/memory.ts +14 -7
- package/server/services/workshop/settings.ts +143 -0
- package/shared/config/engine.mjs +14 -2
- package/shared/config/schema.json +48 -1
- package/shared/dcw-protocol.ts +21 -0
- package/.output/public/_nuxt/BD9D9pl4.js +0 -1
- package/.output/public/_nuxt/BxD8Fg_Z.js +0 -2
- package/.output/public/_nuxt/CwcOEM8m.js +0 -1
- package/.output/public/_nuxt/TownView.CI2Wpzty.css +0 -1
- package/.output/public/_nuxt/_id_.Ci4u30cR.css +0 -1
- package/.output/public/_nuxt/builds/meta/221de779-a113-4232-b9a1-31a614f5e3c7.json +0 -1
- package/.output/public/_nuxt/settings.BG0K9_MG.css +0 -1
- package/.output/server/chunks/build/_id_-CmKAEFHV.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-xR3AChMO.mjs.map +0 -1
- package/.output/server/chunks/build/daq-Boz_dlAQ.mjs.map +0 -1
- package/.output/server/chunks/build/dcw-wTRwBAUi.mjs.map +0 -1
- package/.output/server/chunks/build/logs-Cdi-eXlN.mjs.map +0 -1
- package/.output/server/chunks/build/pages-bWKy0ZsA.mjs.map +0 -1
- package/.output/server/chunks/build/settings-C3T5hR2A.mjs.map +0 -1
- package/.output/server/chunks/build/town-CKg6Qxba.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwStream-BkWDGaWp.mjs.map +0 -1
|
@@ -3,9 +3,9 @@ import { u as useUserStore } from './user-Dk-ytEUV.mjs';
|
|
|
3
3
|
import { u as useWorkspacesStore } from './workspaces-IfORCDJE.mjs';
|
|
4
4
|
import { s as setInterval } from './interval-WlxgjTzO.mjs';
|
|
5
5
|
import { u as useTownBus } from './useTownBus-D9SoIsAN.mjs';
|
|
6
|
-
import { u as useDcwStream } from './useDcwStream-
|
|
7
|
-
import { u as useDaqStream } from './useDaqStream-
|
|
8
|
-
import { u as useDeviceTwins } from './useDeviceTwins-
|
|
6
|
+
import { u as useDcwStream } from './useDcwStream-Bdew_yrr.mjs';
|
|
7
|
+
import { u as useDaqStream } from './useDaqStream-hwkhJHFU.mjs';
|
|
8
|
+
import { u as useDeviceTwins } from './useDeviceTwins-C6EBg9oN.mjs';
|
|
9
9
|
import { u as useEntitiesStore, a as useWorkshopWs } from './useWorkshopWs-xcdeiSmJ.mjs';
|
|
10
10
|
import { shallowRef, ref, computed, toValue, watch, nextTick, defineComponent, reactive, mergeProps, unref, readonly, getCurrentScope, onScopeDispose, getCurrentInstance, toRef, customRef, useSSRContext } from 'vue';
|
|
11
11
|
import { ssrRenderAttrs, ssrInterpolate, ssrRenderAttr, ssrRenderClass, ssrIncludeBooleanAttr, ssrRenderComponent, ssrRenderList, ssrRenderStyle, ssrLooseContain, ssrLooseEqual } from 'vue/server-renderer';
|
|
@@ -698,37 +698,44 @@ var DeviceTwinPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
698
698
|
const dcwErrs = reactive({});
|
|
699
699
|
const dcwBusy = ref("");
|
|
700
700
|
return (_ctx, _push, _parent, _attrs) => {
|
|
701
|
-
_push(`<aside${ssrRenderAttrs(mergeProps({ class: "twin-panel" }, _attrs))} data-v-
|
|
702
|
-
if (unref(twins).error) _push(`<div class="twin-error" data-v-
|
|
701
|
+
_push(`<aside${ssrRenderAttrs(mergeProps({ class: "twin-panel" }, _attrs))} data-v-15ec18ea><div class="twin-head" data-v-15ec18ea><span class="twin-kicker" data-v-15ec18ea>${ssrInterpolate(_ctx.$t("deviceTwinPanel.k7k6evr002"))}</span><span class="twin-count" data-v-15ec18ea>${ssrInterpolate(unref(twins).twins.length)}</span></div>`);
|
|
702
|
+
if (unref(twins).error) _push(`<div class="twin-error" data-v-15ec18ea>${ssrInterpolate(unref(twins).error)}</div>`);
|
|
703
703
|
else _push(`<!---->`);
|
|
704
|
-
if (!unref(twins).loaded) _push(`<div class="twin-empty" data-v-
|
|
705
|
-
else if (unref(twins).twins.length === 0) _push(`<div class="twin-empty" data-v-
|
|
704
|
+
if (!unref(twins).loaded) _push(`<div class="twin-empty" data-v-15ec18ea>${ssrInterpolate(_ctx.$t("deviceTwinPanel.kkw7sn5003"))}</div>`);
|
|
705
|
+
else if (unref(twins).twins.length === 0) _push(`<div class="twin-empty" data-v-15ec18ea><div class="twin-empty-frame" data-v-15ec18ea><div class="twin-empty-title" data-v-15ec18ea>${ssrInterpolate(_ctx.$t("deviceTwinPanel.k13y2qmg004"))}</div><div class="twin-empty-sub" data-v-15ec18ea>${ssrInterpolate(_ctx.$t("deviceTwinPanel.kotf23l005"))}</div></div></div>`);
|
|
706
706
|
else {
|
|
707
|
-
_push(`<div class="twin-list" data-v-
|
|
707
|
+
_push(`<div class="twin-list" data-v-15ec18ea><!--[-->`);
|
|
708
708
|
ssrRenderList(unref(twins).twins, (t) => {
|
|
709
|
-
_push(`<button class="${ssrRenderClass([{ daq: isDaq(t) }, "twin-card"])}" type="button" data-v-
|
|
709
|
+
_push(`<button class="${ssrRenderClass([{ daq: isDaq(t) }, "twin-card"])}" type="button" data-v-15ec18ea><div class="twin-row" data-v-15ec18ea><span class="twin-model-tag" data-v-15ec18ea>${ssrInterpolate(modelTag(t.modelRef || t.name))}</span><div class="twin-idbar" data-v-15ec18ea><span class="twin-name" data-v-15ec18ea>${ssrInterpolate(t.name)}</span><span class="twin-code" data-v-15ec18ea>${ssrInterpolate(isDaq(t) ? "DAQ" : devNo(t.id))}</span></div><button class="${ssrRenderClass([{ armed: unref(armedId) === t.id }, "twin-del"])}"${ssrIncludeBooleanAttr(unref(busyId) === t.id) ? " disabled" : ""}${ssrRenderAttr("title", unref(armedId) === t.id ? "再次点击确认删除该设备实例" : "删除该设备实例")} data-v-15ec18ea>${ssrInterpolate(unref(armedId) === t.id ? _ctx.$t("deviceTwinPanel.k44653007") : "✕")}</button><span class="${ssrRenderClass([`s-${t.state}`, "twin-state"])}" data-v-15ec18ea><i class="twin-state-dot" style="${ssrRenderStyle({ background: stateColor[t.state] || "var(--hud-dim)" })}" data-v-15ec18ea></i> ${ssrInterpolate(stateLabel[t.state] || t.state)}</span></div>`);
|
|
710
710
|
if (Object.keys(t.telemetry).length) {
|
|
711
|
-
_push(`<div class="twin-tele" data-v-
|
|
711
|
+
_push(`<div class="twin-tele" data-v-15ec18ea><!--[-->`);
|
|
712
712
|
ssrRenderList(t.telemetry, (v, k) => {
|
|
713
|
-
_push(`<span class="tele-item" data-v-
|
|
713
|
+
_push(`<span class="tele-item" data-v-15ec18ea><em data-v-15ec18ea>${ssrInterpolate(k)}</em><b data-v-15ec18ea>${ssrInterpolate(fmt(v))}</b></span>`);
|
|
714
714
|
});
|
|
715
715
|
_push(`<!--]--></div>`);
|
|
716
716
|
} else _push(`<!---->`);
|
|
717
717
|
if (__props.daqLive?.[t.id]?.length) {
|
|
718
|
-
_push(`<div class="twin-daq" data-v-
|
|
718
|
+
_push(`<div class="twin-daq" data-v-15ec18ea><!--[-->`);
|
|
719
719
|
ssrRenderList(__props.daqLive[t.id], (d, i) => {
|
|
720
|
-
_push(`<span class="${ssrRenderClass([{ alarm: d.alarm }, "daq-item"])}" data-v-
|
|
720
|
+
_push(`<span class="${ssrRenderClass([{ alarm: d.alarm }, "daq-item"])}" data-v-15ec18ea><em data-v-15ec18ea>${ssrInterpolate(d.ch)}</em><b data-v-15ec18ea>${ssrInterpolate(d.value)}<i data-v-15ec18ea>${ssrInterpolate(d.unit)}</i></b></span>`);
|
|
721
721
|
});
|
|
722
722
|
_push(`<!--]--></div>`);
|
|
723
723
|
} else _push(`<!---->`);
|
|
724
724
|
if (__props.dcwLive?.[t.id]?.length) {
|
|
725
|
-
_push(`<div class="twin-dcw" data-v-
|
|
725
|
+
_push(`<div class="twin-dcw" data-v-15ec18ea><!--[-->`);
|
|
726
726
|
ssrRenderList(__props.dcwLive[t.id], (r) => {
|
|
727
|
-
_push(`<div class="dcw-item" data-v-
|
|
728
|
-
if (r.src === "recipe") _push(`<i class="dcw-src" data-v-
|
|
727
|
+
_push(`<div class="dcw-item" data-v-15ec18ea><div class="dcw-head" data-v-15ec18ea><em data-v-15ec18ea>${ssrInterpolate(r.ch)}`);
|
|
728
|
+
if (r.src === "recipe") _push(`<i class="dcw-src" data-v-15ec18ea>${ssrInterpolate(_ctx.$t("deviceTwinPanel.k48grv006"))}</i>`);
|
|
729
729
|
else _push(`<!---->`);
|
|
730
|
-
_push(`</em><b class="dcw-set" data-v-
|
|
731
|
-
if (
|
|
730
|
+
_push(`</em><b class="dcw-set" data-v-15ec18ea>${ssrInterpolate(r.value != null ? r.value.toFixed(r.decimals) : "--")}<i data-v-15ec18ea>${ssrInterpolate(r.unit)}</i></b></div>`);
|
|
731
|
+
if (r.readValue != null || r.lastReadAt) {
|
|
732
|
+
_push(`<div class="dcw-act"${ssrRenderAttr("title", _ctx.$t("deviceTwinPanel.k9r7d4e030"))} data-v-15ec18ea><em data-v-15ec18ea>ACT</em><b data-v-15ec18ea>${ssrInterpolate(r.readValue != null ? r.readValue.toFixed(r.decimals) : "--")}<i data-v-15ec18ea>${ssrInterpolate(r.unit)}</i></b>`);
|
|
733
|
+
if (r.lastReadAt) _push(`<i class="dcw-act-at" data-v-15ec18ea>${ssrInterpolate(r.lastReadAt.slice(11, 19))}</i>`);
|
|
734
|
+
else _push(`<!---->`);
|
|
735
|
+
_push(`</div>`);
|
|
736
|
+
} else _push(`<!---->`);
|
|
737
|
+
_push(`<div class="dcw-win" data-v-15ec18ea><span${ssrRenderAttr("title", r.src === "recipe" ? "当前运行配方工艺窗口" : "节点全局量程")} data-v-15ec18ea>${ssrInterpolate(dcwWinText(r))}</span></div><div class="dcw-ctrl" data-v-15ec18ea><input${ssrRenderAttr("value", unref(dcwDrafts)[r.id])} type="number" class="ctrl-input"${ssrRenderAttr("step", 10 ** -r.decimals)}${ssrRenderAttr("min", Number.isFinite(r.lo) ? r.lo : void 0)}${ssrRenderAttr("max", Number.isFinite(r.hi) ? r.hi : void 0)}${ssrRenderAttr("placeholder", `${Number.isFinite(r.lo) ? r.lo : ""} ~ ${Number.isFinite(r.hi) ? r.hi : ""}`)} data-v-15ec18ea><button class="ctrl-btn dcw-send"${ssrIncludeBooleanAttr(unref(dcwDrafts)[r.id] == null || unref(dcwDrafts)[r.id] === "" || unref(dcwBusy) === r.id) ? " disabled" : ""}${ssrRenderAttr("title", _ctx.$t("deviceTwinPanel.k1j04u8001"))} data-v-15ec18ea>${ssrInterpolate(unref(dcwBusy) === r.id ? "···" : "SET")}</button></div>`);
|
|
738
|
+
if (unref(dcwErrs)[r.id]) _push(`<small class="dcw-err" data-v-15ec18ea>${ssrInterpolate(unref(dcwErrs)[r.id])}</small>`);
|
|
732
739
|
else _push(`<!---->`);
|
|
733
740
|
_push(`</div>`);
|
|
734
741
|
});
|
|
@@ -738,7 +745,7 @@ var DeviceTwinPanel_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
|
|
|
738
745
|
});
|
|
739
746
|
_push(`<!--]--></div>`);
|
|
740
747
|
}
|
|
741
|
-
if (unref(ctrlMsg)) _push(`<span class="twin-err" data-v-
|
|
748
|
+
if (unref(ctrlMsg)) _push(`<span class="twin-err" data-v-15ec18ea>${ssrInterpolate(unref(ctrlMsg))}</span>`);
|
|
742
749
|
else _push(`<!---->`);
|
|
743
750
|
_push(`</aside>`);
|
|
744
751
|
};
|
|
@@ -752,7 +759,7 @@ DeviceTwinPanel_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx)
|
|
|
752
759
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/DeviceTwinPanel.vue");
|
|
753
760
|
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
|
|
754
761
|
};
|
|
755
|
-
var DeviceTwinPanel_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(DeviceTwinPanel_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
762
|
+
var DeviceTwinPanel_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(DeviceTwinPanel_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-15ec18ea"]]), { __name: "WorkshopDeviceTwinPanel" });
|
|
756
763
|
//#endregion
|
|
757
764
|
//#region app/composables/workshop/useSceneLayouts.ts
|
|
758
765
|
/**
|
|
@@ -2042,6 +2049,8 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2042
2049
|
name: n.name,
|
|
2043
2050
|
unit: n.unit,
|
|
2044
2051
|
value: n.value,
|
|
2052
|
+
readValue: n.readValue,
|
|
2053
|
+
lastReadAt: n.lastReadAt,
|
|
2045
2054
|
decimals: n.decimals,
|
|
2046
2055
|
lo: w.lo,
|
|
2047
2056
|
hi: w.hi,
|
|
@@ -2286,82 +2295,82 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2286
2295
|
return (_ctx, _push, _parent, _attrs) => {
|
|
2287
2296
|
const _component_WorkshopAssetLibrary = AssetLibrary_default;
|
|
2288
2297
|
const _component_WorkshopDeviceTwinPanel = DeviceTwinPanel_default;
|
|
2289
|
-
_push(`<div${ssrRenderAttrs(mergeProps({ class: "town-view" }, _attrs))} data-v-
|
|
2290
|
-
if (unref(saveState) && unref(saveState).state !== "idle") _push(`<span class="${ssrRenderClass([`s-${unref(saveState).state}`, "save-chip"])}" data-v-
|
|
2298
|
+
_push(`<div${ssrRenderAttrs(mergeProps({ class: "town-view" }, _attrs))} data-v-ee250387><header class="topnav" data-v-ee250387><div class="brand" data-v-ee250387><svg class="brand-glyph" viewBox="0 0 32 32" fill="none" aria-hidden="true" data-v-ee250387><path d="M16 2.5 27.5 9v14L16 29.5 4.5 23V9L16 2.5Z" stroke="#35e0a0" stroke-width="1.6" data-v-ee250387></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-ee250387></path><circle cx="16" cy="16" r="2.4" fill="#35e0a0" data-v-ee250387></circle><circle cx="25.5" cy="7.5" r="1.6" fill="#41c8f4" data-v-ee250387></circle></svg><div data-v-ee250387><div class="brand-name" data-v-ee250387> DIGITAL <em data-v-ee250387>TWIN</em></div><div class="brand-sub" data-v-ee250387> AGENTWORKSHOP · ${ssrInterpolate(_ctx.$t("townView.klyi8yg127"))}</div></div></div><nav class="nav-tabs"${ssrRenderAttr("aria-label", _ctx.$t("townView.k1c9jyta001"))} data-v-ee250387><div class="seg" data-v-ee250387><button class="${ssrRenderClass({ on: unref(mode) === "browse" })}" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k48dwh027"))}</button><button class="${ssrRenderClass({ on: unref(mode) === "edit" })}" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k45eb0028"))}</button></div><button class="nav-action"${ssrIncludeBooleanAttr(unref(mode) !== "edit") ? " disabled" : ""}${ssrRenderAttr("title", unref(mode) === "edit" ? "把全部设备的位置/朝向/缩放写入数据库" : "运行模式只读")} data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1b3bk8t029"))}</button>`);
|
|
2299
|
+
if (unref(saveState) && unref(saveState).state !== "idle") _push(`<span class="${ssrRenderClass([`s-${unref(saveState).state}`, "save-chip"])}" data-v-ee250387>${ssrInterpolate(unref(saveStateLabel))}</span>`);
|
|
2291
2300
|
else _push(`<!---->`);
|
|
2292
|
-
_push(`</nav><div class="nav-right" data-v-
|
|
2301
|
+
_push(`</nav><div class="nav-right" data-v-ee250387><span class="${ssrRenderClass([{ "nav-bell-warn": unref(activeAlarmCount) > 0 }, "nav-chip mono"])}"${ssrRenderAttr("title", _ctx.$t("townView.k1fsi3ir002"))} data-v-ee250387>◉ ${ssrInterpolate(unref(activeAlarmCount))}</span><span class="nav-chip mono" data-v-ee250387>${ssrInterpolate(unref(fps))} FPS</span><div class="avatar-chip"${ssrRenderAttr("title", _ctx.$t("townView.k1demf38003"))} data-v-ee250387><div class="avatar-fallback" data-v-ee250387>${ssrInterpolate((unref(userStore).user?.name ?? "OP").slice(0, 2).toUpperCase())}</div><span data-v-ee250387>${ssrInterpolate(unref(userStore).user?.name || _ctx.$t("townView.k1pub99m139"))}</span></div></div></header><div class="app" data-v-ee250387><aside class="rail rail-left" data-v-ee250387><section class="panel" data-v-ee250387><div class="panel-hd" data-v-ee250387><h3 data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1k75lzy030"))}</h3><span class="panel-tag" data-v-ee250387>${ssrInterpolate(unref(deviceModels).length)}</span></div>`);
|
|
2293
2302
|
_push(ssrRenderComponent(_component_WorkshopAssetLibrary, { class: "lib-embed" }, null, _parent));
|
|
2294
|
-
_push(`</section><section class="panel" data-v-
|
|
2303
|
+
_push(`</section><section class="panel" data-v-ee250387><div class="panel-hd" data-v-ee250387><h3 data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k2gwyas031"))}</h3><span class="panel-tag" data-v-ee250387>${ssrInterpolate(unref(daqTwins).length)}</span></div><div class="daq-ctrl" data-v-ee250387><button class="${ssrRenderClass([{ on: unref(daq).controller.running }, "daq-ctl-btn"])}"${ssrRenderAttr("title", unref(daq).controller.running ? "暂停全部采集:停止所有启用节点的采样(节点级启停独立)" : "恢复全部采集:仅启用节点恢复采集(手动停用的保持停用)")} data-v-ee250387>${ssrInterpolate(unref(daq).controller.running ? _ctx.$t("townView.k3w3j8f140") : _ctx.$t("townView.k3n93ed175"))}</button><label class="daq-ctl-cycle mono"${ssrRenderAttr("title", _ctx.$t("townView.khzlyf5004"))} data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k3xg3w032"))} <input type="number" min="200" max="60000" step="100"${ssrRenderAttr("value", unref(daq).controller.defaultIntervalMs)} data-v-ee250387>ms </label></div><div class="daq-list" data-v-ee250387><!--[-->`);
|
|
2295
2304
|
ssrRenderList(unref(daqTemplates), (tpl) => {
|
|
2296
|
-
_push(`<div class="daq-group" data-v-
|
|
2305
|
+
_push(`<div class="daq-group" data-v-ee250387><div class="${ssrRenderClass([{ open: !!unref(treeOpen)[`daq:${tpl.id}`] }, "daq-card tpl"])}" role="button" tabindex="0"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0001", {
|
|
2297
2306
|
p0: tpl.name,
|
|
2298
2307
|
p1: tpl.ch,
|
|
2299
2308
|
p2: tpl.min,
|
|
2300
2309
|
p3: tpl.max,
|
|
2301
2310
|
p4: tpl.unit
|
|
2302
|
-
}))} data-v-
|
|
2303
|
-
if (unref(mode) === "edit") _push(`<button class="daq-add"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0002", { p0: tpl.name }))} data-v-
|
|
2311
|
+
}))} data-v-ee250387><span class="daq-caret" data-v-ee250387>▶</span><span class="daq-ico" data-v-ee250387><svg class="daq-svg" viewBox="0 0 24 24" data-v-ee250387>${daqIcon(tpl.icon) ?? ""}</svg></span><div class="daq-meta" data-v-ee250387><span class="daq-name" data-v-ee250387>${ssrInterpolate(tpl.name)}</span><span class="daq-code" data-v-ee250387>${ssrInterpolate(tpl.code)}</span></div>`);
|
|
2312
|
+
if (unref(mode) === "edit") _push(`<button class="daq-add"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0002", { p0: tpl.name }))} data-v-ee250387> + </button>`);
|
|
2304
2313
|
else _push(`<!---->`);
|
|
2305
|
-
_push(`<span class="daq-count" data-v-
|
|
2314
|
+
_push(`<span class="daq-count" data-v-ee250387>×${ssrInterpolate(unref(daqNodesByTpl).get(tpl.id)?.length ?? 0)}</span></div>`);
|
|
2306
2315
|
if (unref(treeOpen)[`daq:${tpl.id}`]) {
|
|
2307
|
-
_push(`<div class="daq-children" data-v-
|
|
2316
|
+
_push(`<div class="daq-children" data-v-ee250387><!--[-->`);
|
|
2308
2317
|
ssrRenderList(unref(daqNodesByTpl).get(tpl.id) ?? [], (n) => {
|
|
2309
|
-
_push(`<div class="${ssrRenderClass([{ placed: typeof n.posX === "number" }, "daq-node"])}"${ssrRenderAttr("draggable", unref(mode) === "edit")}${ssrRenderAttr("title", typeof n.posX === "number" ? _ctx.$t("townView.k2tplxp0005") : _ctx.$t("townView.k2tplxp0006"))} data-v-
|
|
2310
|
-
if (typeof n.posX === "number") _push(`<span class="scene-cur" data-v-
|
|
2318
|
+
_push(`<div class="${ssrRenderClass([{ placed: typeof n.posX === "number" }, "daq-node"])}"${ssrRenderAttr("draggable", unref(mode) === "edit")}${ssrRenderAttr("title", typeof n.posX === "number" ? _ctx.$t("townView.k2tplxp0005") : _ctx.$t("townView.k2tplxp0006"))} data-v-ee250387><span class="${ssrRenderClass([daqLeafState(n), "node-dot"])}" data-v-ee250387></span><div class="daq-meta" data-v-ee250387><span class="daq-name" data-v-ee250387>${ssrInterpolate(n.name)}</span><span class="daq-node-sub" data-v-ee250387><span class="node-val mono" data-v-ee250387>${ssrInterpolate(n.value != null ? `${n.value.toFixed(tpl.decimals)} ${tpl.unit}` : "--")}</span><span class="node-dev" data-v-ee250387>${ssrInterpolate(n.deviceBindingId ? unref(deviceTwins).byId(n.deviceBindingId)?.name ?? _ctx.$t("townView.k3own4q148") : _ctx.$t("townView.k3own4q148"))}</span></span></div>`);
|
|
2319
|
+
if (typeof n.posX === "number") _push(`<span class="scene-cur" data-v-ee250387>✓</span>`);
|
|
2311
2320
|
else _push(`<!---->`);
|
|
2312
2321
|
_push(`</div>`);
|
|
2313
2322
|
});
|
|
2314
2323
|
_push(`<!--]-->`);
|
|
2315
|
-
if (!unref(daqNodesByTpl).get(tpl.id)?.length) _push(`<div class="daq-empty-hint" data-v-
|
|
2324
|
+
if (!unref(daqNodesByTpl).get(tpl.id)?.length) _push(`<div class="daq-empty-hint" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k2tplxp0003"))}</div>`);
|
|
2316
2325
|
else _push(`<!---->`);
|
|
2317
2326
|
_push(`</div>`);
|
|
2318
2327
|
} else _push(`<!---->`);
|
|
2319
2328
|
_push(`</div>`);
|
|
2320
2329
|
});
|
|
2321
|
-
_push(`<!--]--></div></section><section class="panel" data-v-
|
|
2330
|
+
_push(`<!--]--></div></section><section class="panel" data-v-ee250387><div class="panel-hd" data-v-ee250387><h3 data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.km7ayhi033"))}</h3><span class="panel-tag" data-v-ee250387>${ssrInterpolate(unref(dcw).nodes.length)}</span></div><div class="daq-list" data-v-ee250387><!--[-->`);
|
|
2322
2331
|
ssrRenderList(unref(dcwTemplates), (tpl) => {
|
|
2323
|
-
_push(`<div class="daq-group" data-v-
|
|
2332
|
+
_push(`<div class="daq-group" data-v-ee250387><div class="${ssrRenderClass([{ open: !!unref(treeOpen)[`dcw:${tpl.id}`] }, "daq-card tpl"])}" role="button" tabindex="0"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0001", {
|
|
2324
2333
|
p0: tpl.name,
|
|
2325
2334
|
p1: tpl.ch,
|
|
2326
2335
|
p2: tpl.min,
|
|
2327
2336
|
p3: tpl.max,
|
|
2328
2337
|
p4: tpl.unit
|
|
2329
|
-
}))} data-v-
|
|
2330
|
-
if (unref(mode) === "edit") _push(`<button class="daq-add"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0002", { p0: tpl.name }))} data-v-
|
|
2338
|
+
}))} data-v-ee250387><span class="daq-caret" data-v-ee250387>▶</span><span class="daq-ico" data-v-ee250387><svg class="daq-svg" viewBox="0 0 24 24" data-v-ee250387>${daqIcon(tpl.icon) ?? ""}</svg></span><div class="daq-meta" data-v-ee250387><span class="daq-name" data-v-ee250387>${ssrInterpolate(tpl.name)}</span><span class="daq-code" data-v-ee250387>${ssrInterpolate(tpl.code)}</span></div>`);
|
|
2339
|
+
if (unref(mode) === "edit") _push(`<button class="daq-add"${ssrRenderAttr("title", _ctx.$t("townView.k2tplxp0002", { p0: tpl.name }))} data-v-ee250387> + </button>`);
|
|
2331
2340
|
else _push(`<!---->`);
|
|
2332
|
-
_push(`<span class="daq-count" data-v-
|
|
2341
|
+
_push(`<span class="daq-count" data-v-ee250387>×${ssrInterpolate(unref(dcwNodesByTpl).get(tpl.id)?.length ?? 0)}</span></div>`);
|
|
2333
2342
|
if (unref(treeOpen)[`dcw:${tpl.id}`]) {
|
|
2334
|
-
_push(`<div class="daq-children" data-v-
|
|
2343
|
+
_push(`<div class="daq-children" data-v-ee250387><!--[-->`);
|
|
2335
2344
|
ssrRenderList(unref(dcwNodesByTpl).get(tpl.id) ?? [], (n) => {
|
|
2336
|
-
_push(`<div class="${ssrRenderClass([{ placed: typeof n.posX === "number" }, "daq-node"])}"${ssrRenderAttr("draggable", unref(mode) === "edit")}${ssrRenderAttr("title", typeof n.posX === "number" ? _ctx.$t("townView.k2tplxp0005") : _ctx.$t("townView.k2tplxp0006"))} data-v-
|
|
2337
|
-
if (typeof n.posX === "number") _push(`<span class="scene-cur" data-v-
|
|
2345
|
+
_push(`<div class="${ssrRenderClass([{ placed: typeof n.posX === "number" }, "daq-node"])}"${ssrRenderAttr("draggable", unref(mode) === "edit")}${ssrRenderAttr("title", typeof n.posX === "number" ? _ctx.$t("townView.k2tplxp0005") : _ctx.$t("townView.k2tplxp0006"))} data-v-ee250387><span class="${ssrRenderClass([dcwLeafState(n), "node-dot"])}" data-v-ee250387></span><div class="daq-meta" data-v-ee250387><span class="daq-name" data-v-ee250387>${ssrInterpolate(n.name)}</span><span class="daq-node-sub" data-v-ee250387><span class="node-val mono" data-v-ee250387>${ssrInterpolate(n.value != null ? `${n.value.toFixed(tpl.decimals)} ${tpl.unit}` : "--")}</span><span class="node-dev" data-v-ee250387>${ssrInterpolate(n.deviceBindingId ? unref(deviceTwins).byId(n.deviceBindingId)?.name ?? _ctx.$t("townView.k3own4q148") : _ctx.$t("townView.k3own4q148"))}</span></span></div>`);
|
|
2346
|
+
if (typeof n.posX === "number") _push(`<span class="scene-cur" data-v-ee250387>✓</span>`);
|
|
2338
2347
|
else _push(`<!---->`);
|
|
2339
2348
|
_push(`</div>`);
|
|
2340
2349
|
});
|
|
2341
2350
|
_push(`<!--]-->`);
|
|
2342
|
-
if (!unref(dcwNodesByTpl).get(tpl.id)?.length) _push(`<div class="daq-empty-hint" data-v-
|
|
2351
|
+
if (!unref(dcwNodesByTpl).get(tpl.id)?.length) _push(`<div class="daq-empty-hint" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k2tplxp0003"))}</div>`);
|
|
2343
2352
|
else _push(`<!---->`);
|
|
2344
2353
|
_push(`</div>`);
|
|
2345
2354
|
} else _push(`<!---->`);
|
|
2346
2355
|
_push(`</div>`);
|
|
2347
2356
|
});
|
|
2348
|
-
_push(`<!--]--></div></section><section class="panel" data-v-
|
|
2357
|
+
_push(`<!--]--></div></section><section class="panel" data-v-ee250387><div class="panel-hd" data-v-ee250387><h3 data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1c9n911034"))}</h3><span class="panel-tag" data-v-ee250387>${ssrInterpolate(unref(dockChannels).length)}</span></div><div class="scene-list" data-v-ee250387><!--[-->`);
|
|
2349
2358
|
ssrRenderList(unref(dockChannels), (ch) => {
|
|
2350
|
-
_push(`<div class="${ssrRenderClass([{ active: ch.placed }, "scene-row"])}"${ssrRenderAttr("draggable", !ch.placed && unref(mode) === "edit")}${ssrRenderAttr("data-channel-id", ch.channelId)}${ssrRenderAttr("title", ch.placed ? "已在场景中,点击定位" : "拖拽到场景放置")} data-v-
|
|
2351
|
-
if (ch.placed) _push(`<span class="scene-cur" data-v-
|
|
2352
|
-
else _push(`<span class="scene-add" data-v-
|
|
2359
|
+
_push(`<div class="${ssrRenderClass([{ active: ch.placed }, "scene-row"])}"${ssrRenderAttr("draggable", !ch.placed && unref(mode) === "edit")}${ssrRenderAttr("data-channel-id", ch.channelId)}${ssrRenderAttr("title", ch.placed ? "已在场景中,点击定位" : "拖拽到场景放置")} data-v-ee250387><span class="scene-ico" style="${ssrRenderStyle({ "--ch": ch.color })}" data-v-ee250387></span><div class="scene-meta-wrap" data-v-ee250387><span class="scene-name" data-v-ee250387>${ssrInterpolate(ch.name)}</span><span class="scene-meta" data-v-ee250387>${ssrInterpolate(ch.agentCount)} ${ssrInterpolate(_ctx.$t("townView.k1brss7t128"))} ${ssrInterpolate(ch.placed ? _ctx.$t("townView.k3n94g3141") : _ctx.$t("townView.k3os7i3176"))}</span></div>`);
|
|
2360
|
+
if (ch.placed) _push(`<span class="scene-cur" data-v-ee250387>✓</span>`);
|
|
2361
|
+
else _push(`<span class="scene-add" data-v-ee250387>+</span>`);
|
|
2353
2362
|
_push(`</div>`);
|
|
2354
2363
|
});
|
|
2355
2364
|
_push(`<!--]-->`);
|
|
2356
|
-
if (unref(dockHint)) _push(`<div class="scene-hint" data-v-
|
|
2365
|
+
if (unref(dockHint)) _push(`<div class="scene-hint" data-v-ee250387>${ssrInterpolate(unref(dockHint))}</div>`);
|
|
2357
2366
|
else _push(`<!---->`);
|
|
2358
|
-
_push(`</div></section></aside><main class="stage-col" data-v-
|
|
2367
|
+
_push(`</div></section></aside><main class="stage-col" data-v-ee250387><div class="stage" data-v-ee250387><div id="town-host" class="town-host" data-v-ee250387></div><div class="stage-vignette" data-v-ee250387></div><div class="stage-top" data-v-ee250387><div class="vp-title" data-v-ee250387><h2 data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1b0z4vr035"))}</h2><span class="vp-id" data-v-ee250387>CH · ${ssrInterpolate(unref(activeChannelName) || _ctx.$t("townView.k3lkuz3142"))}</span></div><div class="vp-tools" data-v-ee250387><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.k18d6wnb005"))} data-v-ee250387><svg class="vp-svg" viewBox="0 0 24 24" data-v-ee250387><circle cx="12" cy="12" r="7" data-v-ee250387></circle><path d="M12 2v4M12 18v4M2 12h4M18 12h4" data-v-ee250387></path></svg></button><button class="${ssrRenderClass([{ on: unref(orbitOn) }, "vp-tool"])}"${ssrRenderAttr("title", _ctx.$t("townView.k1io51dn006"))} data-v-ee250387><svg class="vp-svg" viewBox="0 0 24 24" data-v-ee250387><circle cx="12" cy="12" r="3.2" data-v-ee250387></circle><path d="M20.5 9a10 10 0 0 1 .3 4.5M3.5 15a10 10 0 0 1-.3-4.5" data-v-ee250387></path></svg></button><button class="${ssrRenderClass([{ on: unref(showCallouts) }, "vp-tool"])}"${ssrRenderAttr("title", _ctx.$t("townView.k1sgjlq8007"))} data-v-ee250387><svg class="vp-svg" viewBox="0 0 24 24" data-v-ee250387><path d="M4 8h12l4 4-4 4H4z" data-v-ee250387></path><circle cx="8.5" cy="12" r="1.4" data-v-ee250387></circle></svg></button><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.k3wuf0008"))} data-v-ee250387><svg class="vp-svg" viewBox="0 0 24 24" data-v-ee250387><path d="M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5" data-v-ee250387></path></svg></button></div></div><div class="angle-chip" data-v-ee250387><select${ssrRenderAttr("value", unref(viewPreset))}${ssrRenderAttr("aria-label", _ctx.$t("townView.k1k4j5i7009"))} data-v-ee250387><option value="std" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kv72860036"))}</option><option value="top" data-v-ee250387> 俯视 · TOP </option><option value="front" data-v-ee250387> 前视 · FRONT </option><option value="side" data-v-ee250387> 侧视 · SIDE </option></select></div>`);
|
|
2359
2368
|
if (unref(showCallouts)) {
|
|
2360
|
-
_push(`<!--[--><svg class="leaders" data-v-
|
|
2369
|
+
_push(`<!--[--><svg class="leaders" data-v-ee250387><!--[-->`);
|
|
2361
2370
|
ssrRenderList(unref(callouts), (c) => {
|
|
2362
|
-
_push(`<g class="${ssrRenderClass({ near: c.near })}" style="${ssrRenderStyle(c.leader ? null : { display: "none" })}" data-v-
|
|
2371
|
+
_push(`<g class="${ssrRenderClass({ near: c.near })}" style="${ssrRenderStyle(c.leader ? null : { display: "none" })}" data-v-ee250387><path${ssrRenderAttr("d", `M ${c.x} ${c.y - 8} L ${c.x} ${c.y - 2}`)}${ssrRenderAttr("stroke", c.warn ? "rgba(246,196,83,.8)" : "rgba(65,200,244,.55)")} stroke-width="1.3" fill="none" data-v-ee250387></path><circle${ssrRenderAttr("cx", c.x)}${ssrRenderAttr("cy", c.y)} r="2.6"${ssrRenderAttr("fill", c.warn ? "#f6c453" : "#41c8f4")} data-v-ee250387></circle></g>`);
|
|
2363
2372
|
});
|
|
2364
|
-
_push(`<!--]--></svg><div class="callout-layer" data-v-
|
|
2373
|
+
_push(`<!--]--></svg><div class="callout-layer" data-v-ee250387><!--[-->`);
|
|
2365
2374
|
ssrRenderList(unref(callouts), (c) => {
|
|
2366
2375
|
_push(`<div class="${ssrRenderClass([{
|
|
2367
2376
|
warn: c.warn,
|
|
@@ -2369,12 +2378,12 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2369
2378
|
}, "callout"])}" style="${ssrRenderStyle({
|
|
2370
2379
|
left: c.x + "px",
|
|
2371
2380
|
top: c.y + "px"
|
|
2372
|
-
})}"${ssrRenderAttr("title", _ctx.$t("townView.k1ejxiwp010"))} data-v-
|
|
2381
|
+
})}"${ssrRenderAttr("title", _ctx.$t("townView.k1ejxiwp010"))} data-v-ee250387><div class="co-label" data-v-ee250387><span class="co-dot" data-v-ee250387></span>${ssrInterpolate(c.label)}</div><div class="co-val" data-v-ee250387>${ssrInterpolate(c.value)}<small data-v-ee250387>${ssrInterpolate(c.unit)}</small></div><div class="co-range" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1faqmjb073"))} ${ssrInterpolate(c.lo.toFixed(Math.min(2, (String(c.lo).split(".")[1] ?? "").length + 1)))} – ${ssrInterpolate(c.hi.toFixed(Math.min(2, (String(c.hi).split(".")[1] ?? "").length + 1)))}</div></div>`);
|
|
2373
2382
|
});
|
|
2374
2383
|
_push(`<!--]--></div><!--]-->`);
|
|
2375
2384
|
} else _push(`<!---->`);
|
|
2376
|
-
_push(`<div class="kpi-strip" data-v-
|
|
2377
|
-
if (unref(sceneEmpty)) _push(`<div class="empty-hint" data-v-
|
|
2385
|
+
_push(`<div class="kpi-strip" data-v-ee250387><div class="kpi" data-v-ee250387><span class="kpi-ico c1" data-v-ee250387><svg class="kpi-svg" viewBox="0 0 24 24" data-v-ee250387><path d="M4 8.5 12 4l8 4.5v7L12 20l-8-4.5v-7Z" data-v-ee250387></path><path d="M4 8.5l8 4.5 8-4.5M12 13v7" data-v-ee250387></path></svg></span><div class="kpi-meta" data-v-ee250387><div class="kpi-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1k6xemt037"))}</div><div class="kpi-val" data-v-ee250387>${ssrInterpolate(unref(deviceCount))}<small data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k49lh038"))}</small></div></div></div><div class="kpi" data-v-ee250387><span class="kpi-ico c2" data-v-ee250387><svg class="kpi-svg" viewBox="0 0 24 24" data-v-ee250387><path d="m5 12.5 4.5 4.5L19 7.5" data-v-ee250387></path></svg></span><div class="kpi-meta" data-v-ee250387><div class="kpi-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1l1a9t2039"))}</div><div class="kpi-val" data-v-ee250387>${ssrInterpolate(unref(runningCount))}<small data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k49lh038"))}</small></div></div></div><div class="kpi" data-v-ee250387><span class="kpi-ico c3" data-v-ee250387><svg class="kpi-svg" viewBox="0 0 24 24" data-v-ee250387><path d="M12 3 22 20H2L12 3Z" data-v-ee250387></path><path d="M12 10v4M12 17v.2" data-v-ee250387></path></svg></span><div class="kpi-meta" data-v-ee250387><div class="kpi-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1fsi3ir002"))}</div><div class="kpi-val" data-v-ee250387>${ssrInterpolate(unref(activeAlarmCount))}<small data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k4dfq040"))}</small></div></div></div><div class="kpi" data-v-ee250387><span class="kpi-ico c4" data-v-ee250387><svg class="kpi-svg" viewBox="0 0 24 24" data-v-ee250387><path d="M9.5 14.5 14.5 9.5" data-v-ee250387></path><path d="M11 6.5 12.8 4.7a4 4 0 0 1 5.6 5.6L16.5 12" data-v-ee250387></path><path d="m13 17.5-1.8 1.8a4 4 0 0 1-5.6-5.6L7.5 12" data-v-ee250387></path></svg></span><div class="kpi-meta" data-v-ee250387><div class="kpi-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1emsai1041"))}</div><div class="kpi-val" data-v-ee250387>${ssrInterpolate(unref(daqTwins).length)}<small data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k4l1w042"))}</small></div></div></div><div class="kpi" data-v-ee250387><span class="kpi-ico c5" data-v-ee250387><svg class="kpi-svg" viewBox="0 0 24 24" data-v-ee250387><path d="M5 19a9 9 0 1 1 14 0" data-v-ee250387></path><path d="M12 13l3.5-3.5" data-v-ee250387></path><circle cx="12" cy="13" r="1.4" data-v-ee250387></circle></svg></span><div class="kpi-meta" data-v-ee250387><div class="kpi-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kbrxdq1043"))}</div><div class="kpi-val" data-v-ee250387>${ssrInterpolate(unref(healthPct))}<small data-v-ee250387>%</small></div></div></div></div>`);
|
|
2386
|
+
if (unref(sceneEmpty)) _push(`<div class="empty-hint" data-v-ee250387><b data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k3rwxjc044"))}</b><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1sa1eaj045"))}</span></div>`);
|
|
2378
2387
|
else _push(`<!---->`);
|
|
2379
2388
|
if (unref(selectedChannel) && unref(boundaryDraft)) {
|
|
2380
2389
|
_push(`<div class="boundary-panel drag-panel" style="${ssrRenderStyle(unref(panelPos).boundary ? {
|
|
@@ -2382,111 +2391,111 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2382
2391
|
top: unref(panelPos).boundary.y + "px",
|
|
2383
2392
|
bottom: "auto",
|
|
2384
2393
|
transform: "none"
|
|
2385
|
-
} : void 0)}" data-v-
|
|
2386
|
-
if (unref(channelPanelTab) === "boundary") _push(`<!--[--><div class="bp-row" data-v-
|
|
2394
|
+
} : void 0)}" data-v-ee250387><div class="bp-title drag-grip"${ssrRenderAttr("title", _ctx.$t("townView.k1d0rl5z011"))} data-v-ee250387><span class="bp-name" data-v-ee250387>${ssrInterpolate(unref(entities).channels[unref(selectedChannel)]?.name ?? unref(selectedChannel).slice(0, 8))}</span><span class="bp-sub" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1mehlxs046"))}</span><div class="bp-tabs" data-v-ee250387><button class="${ssrRenderClass([{ on: unref(channelPanelTab) === "boundary" }, "bp-tab"])}" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k489ka047"))}</button><button class="${ssrRenderClass([{ on: unref(channelPanelTab) === "members" }, "bp-tab"])}" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k3ztf1129"))} ${ssrInterpolate(unref(channelMembers).length)}</button></div></div>`);
|
|
2395
|
+
if (unref(channelPanelTab) === "boundary") _push(`<!--[--><div class="bp-row" data-v-ee250387><span class="bp-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k3zhy5048"))}</span><div class="bp-seg" data-v-ee250387><button class="${ssrRenderClass([{ on: unref(boundaryDraft).shape === "ellipse" }, "seg-btn"])}" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k414bc049"))}</button><button class="${ssrRenderClass([{ on: unref(boundaryDraft).shape === "rect" }, "seg-btn"])}" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k43u0g050"))}</button></div></div><div class="bp-row" data-v-ee250387><span class="bp-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1fbz4s1051"))}</span><input${ssrRenderAttr("value", unref(boundaryDraft).radiusX)} class="bp-range" type="range" min="80" max="4000" step="8" style="${ssrRenderStyle({ "--fill": sliderPct(unref(boundaryDraft).radiusX, 80, 4e3) })}" data-v-ee250387><span class="bp-val" data-v-ee250387>${ssrInterpolate(Math.round(unref(boundaryDraft).radiusX))}</span></div><div class="bp-row" data-v-ee250387><span class="bp-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1ighwgs052"))}</span><input${ssrRenderAttr("value", unref(boundaryDraft).radiusZ)} class="bp-range" type="range" min="60" max="4000" step="8" style="${ssrRenderStyle({ "--fill": sliderPct(unref(boundaryDraft).radiusZ, 60, 4e3) })}" data-v-ee250387><span class="bp-val" data-v-ee250387>${ssrInterpolate(Math.round(unref(boundaryDraft).radiusZ))}</span></div><div class="bp-row" data-v-ee250387><span class="bp-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k40qab053"))}</span><input${ssrRenderAttr("value", unref(boundaryDraft).rotationY)} class="bp-range" type="range" min="0" max="360" step="5" style="${ssrRenderStyle({ "--fill": sliderPct(unref(boundaryDraft).rotationY ?? 0, 0, 360) })}" data-v-ee250387><span class="bp-val" data-v-ee250387>${ssrInterpolate(Math.round(unref(boundaryDraft).rotationY ?? 0))}°</span></div><!--]-->`);
|
|
2387
2396
|
else {
|
|
2388
|
-
_push(`<!--[--><div class="bp-hint" data-v-
|
|
2397
|
+
_push(`<!--[--><div class="bp-hint" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kimxls2054"))}</div><div class="member-list" data-v-ee250387><!--[-->`);
|
|
2389
2398
|
ssrRenderList(unref(channelMembers), (m) => {
|
|
2390
|
-
_push(`<div class="member-row" data-v-
|
|
2399
|
+
_push(`<div class="member-row" data-v-ee250387><span class="member-ava" style="${ssrRenderStyle({ color: hashColor(unref(selectedChannel)) })}" data-v-ee250387>${ssrInterpolate(m.name.charAt(0).toUpperCase())}</span><div class="member-info" data-v-ee250387><span class="member-name" data-v-ee250387>${ssrInterpolate(m.name)}</span><span class="${ssrRenderClass([m.role === "lead" ? "r-lead" : "r-worker", "member-role"])}" data-v-ee250387>${ssrInterpolate(m.role === "lead" ? "Leader" : "Worker")}</span></div><select class="member-select"${ssrRenderAttr("value", (m.modelRef ?? "") || "hero-3d")} data-v-ee250387><!--[-->`);
|
|
2391
2400
|
ssrRenderList(unref(agentModels), (model) => {
|
|
2392
|
-
_push(`<option${ssrRenderAttr("value", model.id)} data-v-
|
|
2401
|
+
_push(`<option${ssrRenderAttr("value", model.id)} data-v-ee250387>${ssrInterpolate(model.name)}</option>`);
|
|
2393
2402
|
});
|
|
2394
2403
|
_push(`<!--]--></select></div>`);
|
|
2395
2404
|
});
|
|
2396
2405
|
_push(`<!--]-->`);
|
|
2397
|
-
if (unref(channelMembers).length === 0) _push(`<div class="bp-hint" data-v-
|
|
2406
|
+
if (unref(channelMembers).length === 0) _push(`<div class="bp-hint" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k419rbs055"))}</div>`);
|
|
2398
2407
|
else _push(`<!---->`);
|
|
2399
2408
|
_push(`</div><!--]-->`);
|
|
2400
2409
|
}
|
|
2401
|
-
_push(`<div class="bp-actions" data-v-
|
|
2402
|
-
if (unref(channelPanelTab) === "boundary") _push(`<button class="bp-btn save" data-v-
|
|
2410
|
+
_push(`<div class="bp-actions" data-v-ee250387>`);
|
|
2411
|
+
if (unref(channelPanelTab) === "boundary") _push(`<button class="bp-btn save" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1b3kp8f056"))}</button>`);
|
|
2403
2412
|
else _push(`<!---->`);
|
|
2404
|
-
_push(`<button class="bp-btn danger" data-v-
|
|
2413
|
+
_push(`<button class="bp-btn danger" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1hs45qg057"))}</button><button class="bp-btn" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k3x62t058"))}</button></div></div>`);
|
|
2405
2414
|
} else _push(`<!---->`);
|
|
2406
|
-
if (unref(lastDropText)) _push(`<div class="drop-chip" data-v-
|
|
2415
|
+
if (unref(lastDropText)) _push(`<div class="drop-chip" data-v-ee250387>${ssrInterpolate(unref(lastDropText))}</div>`);
|
|
2407
2416
|
else _push(`<!---->`);
|
|
2408
|
-
if (unref(errorText)) _push(`<div class="error-chip" data-v-
|
|
2417
|
+
if (unref(errorText)) _push(`<div class="error-chip" data-v-ee250387>${ssrInterpolate(unref(errorText))}</div>`);
|
|
2409
2418
|
else _push(`<!---->`);
|
|
2410
|
-
if (!unref(ready)) _push(`<div data-hud="town-loading" class="loading-mask" data-v-
|
|
2419
|
+
if (!unref(ready)) _push(`<div data-hud="town-loading" class="loading-mask" data-v-ee250387><div class="loading-spinner" data-v-ee250387></div><span class="loading-text" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kvjdqfg059"))}</span></div>`);
|
|
2411
2420
|
else _push(`<!---->`);
|
|
2412
|
-
_push(`</div><div class="dock" data-v-
|
|
2421
|
+
_push(`</div><div class="dock" data-v-ee250387><section class="dock-card" data-v-ee250387><div class="dock-hd" data-v-ee250387><h3 data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1c9iq23060"))}</h3><span class="dock-mode" data-v-ee250387>${ssrInterpolate(unref(mode) === "edit" ? _ctx.$t("townView.k1iipfcs143") : _ctx.$t("townView.k1l147w1177"))}</span></div><p class="ctl-sec" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.secRender"))}</p><div class="ctl-row" data-v-ee250387><span class="ctl-name"${ssrRenderAttr("title", _ctx.$t("townView.qualityTip"))} data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.qualityLabel"))}</span><div class="fps-seg" data-v-ee250387><!--[-->`);
|
|
2413
2422
|
ssrRenderList(QUALITY_OPTIONS, (o) => {
|
|
2414
|
-
_push(`<button class="${ssrRenderClass({ on: unref(qualityMode) === o.v })}" data-v-
|
|
2423
|
+
_push(`<button class="${ssrRenderClass({ on: unref(qualityMode) === o.v })}" data-v-ee250387>${ssrInterpolate(_ctx.$t(o.label))}</button>`);
|
|
2415
2424
|
});
|
|
2416
|
-
_push(`<!--]--></div><span class="ctl-val" data-v-
|
|
2425
|
+
_push(`<!--]--></div><span class="ctl-val" data-v-ee250387></span></div><div class="ctl-row" data-v-ee250387><span class="ctl-name"${ssrRenderAttr("title", _ctx.$t("townView.fpsCapTip"))} data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.fpsCapLabel"))}</span><div class="fps-seg" data-v-ee250387><!--[-->`);
|
|
2417
2426
|
ssrRenderList(FPS_OPTIONS, (o) => {
|
|
2418
|
-
_push(`<button class="${ssrRenderClass({ on: unref(fpsCap) === o.v })}" data-v-
|
|
2427
|
+
_push(`<button class="${ssrRenderClass({ on: unref(fpsCap) === o.v })}" data-v-ee250387>${ssrInterpolate(o.label)}</button>`);
|
|
2419
2428
|
});
|
|
2420
|
-
_push(`<!--]--></div><span class="ctl-val" data-v-
|
|
2429
|
+
_push(`<!--]--></div><span class="ctl-val" data-v-ee250387></span></div><p class="ctl-sec" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.secEnv"))}</p><div class="ctl-row" data-v-ee250387><span class="ctl-name" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1gizopz061"))}</span><input class="ctl-range" type="range" min="30" max="220"${ssrRenderAttr("value", Math.round(unref(exposure) * 100))} style="${ssrRenderStyle({ "--fill": sliderPct(Math.round(unref(exposure) * 100), 30, 220) })}" data-v-ee250387><span class="ctl-val" data-v-ee250387>${ssrInterpolate(Math.round(unref(exposure) * 100))}%</span></div><div class="ctl-row" data-v-ee250387><span class="ctl-name" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1bcpqto062"))}</span><input class="ctl-range" type="range" min="10" max="100"${ssrRenderAttr("value", Math.round(unref(tintOpacity) * 100))} style="${ssrRenderStyle({ "--fill": sliderPct(Math.round(unref(tintOpacity) * 100), 10, 100) })}" data-v-ee250387><span class="ctl-val" data-v-ee250387>${ssrInterpolate(Math.round(unref(tintOpacity) * 100))}%</span></div><div class="ctl-row" data-v-ee250387><span class="ctl-name" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1bztha1063"))}</span><input class="ctl-range" type="range" min="60" max="120"${ssrRenderAttr("value", unref(threshPct))} style="${ssrRenderStyle({ "--fill": sliderPct(unref(threshPct), 60, 120) })}" data-v-ee250387><span class="ctl-val" data-v-ee250387>${ssrInterpolate(unref(threshPct))}%</span></div><div class="ctl-row" data-v-ee250387><span class="ctl-name"${ssrRenderAttr("title", _ctx.$t("townView.kz71l1f012"))} data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.ka4i1s9064"))}</span><input class="ctl-range" type="range" min="0" max="3000" step="50"${ssrRenderAttr("value", unref(calloutNearDist))} style="${ssrRenderStyle({ "--fill": sliderPct(unref(calloutNearDist), 0, 3e3) })}" data-v-ee250387><span class="ctl-val" data-v-ee250387>${ssrInterpolate(unref(calloutNearDist) === 0 ? _ctx.$t("townView.k493s144") : `${unref(calloutNearDist)}`)}</span></div><p class="ctl-sec" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.secOps"))}</p><div class="ctl-row" data-v-ee250387><span class="ctl-name" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1idc6pa065"))}</span><button class="${ssrRenderClass([{ on: unref(snap) }, "snap-toggle"])}" data-v-ee250387>${ssrInterpolate(unref(snap) ? _ctx.$t("townView.k4bs5145") : _ctx.$t("townView.k493s144"))}</button><span class="ctl-val" data-v-ee250387></span></div><div class="ctl-btns" data-v-ee250387><button class="btn btn-primary" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1lap9bs024"))}</button><button class="btn btn-ghost"${ssrIncludeBooleanAttr(unref(mode) !== "edit") ? " disabled" : ""}${ssrRenderAttr("title", unref(mode) === "edit" ? _ctx.$t("townView.ksavetip181") : _ctx.$t("townView.krotip182"))} data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1b3bk8t029"))}</button><button class="${ssrRenderClass([{ armed: unref(estop) }, "btn btn-danger"])}" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1i046wf066"))}</button></div></section><section class="dock-card" data-v-ee250387><div class="dock-hd" data-v-ee250387><h3 data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1kfoef9067"))}</h3><span class="dock-count mono" data-v-ee250387>${ssrInterpolate(unref(daqTwins).length)}</span><div class="${ssrRenderClass([{ expanded: unref(trendExpanded) }, "trend-legend"])}" data-v-ee250387><!--[-->`);
|
|
2421
2430
|
ssrRenderList(unref(trendChips), (t) => {
|
|
2422
|
-
_push(`<button class="${ssrRenderClass([{ off: !trendOn(t.id) }, "lg-chip"])}" data-v-
|
|
2431
|
+
_push(`<button class="${ssrRenderClass([{ off: !trendOn(t.id) }, "lg-chip"])}" data-v-ee250387><span class="lg-dot" style="${ssrRenderStyle({ background: trendColor(t.id) })}" data-v-ee250387></span>${ssrInterpolate(t.name)}</button>`);
|
|
2423
2432
|
});
|
|
2424
2433
|
_push(`<!--]-->`);
|
|
2425
|
-
if (unref(trendOverflow) > 0) _push(`<button class="lg-chip lg-more mono"${ssrRenderAttr("title", unref(trendExpanded) ? _ctx.$t("townView.trendCollapse") : _ctx.$t("townView.trendExpandAll", { p0: unref(daqTwins).length }))} data-v-
|
|
2434
|
+
if (unref(trendOverflow) > 0) _push(`<button class="lg-chip lg-more mono"${ssrRenderAttr("title", unref(trendExpanded) ? _ctx.$t("townView.trendCollapse") : _ctx.$t("townView.trendExpandAll", { p0: unref(daqTwins).length }))} data-v-ee250387>${ssrInterpolate(unref(trendExpanded) ? _ctx.$t("townView.trendCollapse") : `+${unref(trendOverflow)}`)}</button>`);
|
|
2426
2435
|
else _push(`<!---->`);
|
|
2427
|
-
_push(`</div></div><div class="trend-wrap" data-v-
|
|
2428
|
-
if (!unref(daqTwins).length) _push(`<span class="trend-empty" data-v-
|
|
2436
|
+
_push(`</div></div><div class="trend-wrap" data-v-ee250387><canvas class="trend-cv" data-v-ee250387></canvas>`);
|
|
2437
|
+
if (!unref(daqTwins).length) _push(`<span class="trend-empty" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1uht2uv068"))}</span>`);
|
|
2429
2438
|
else _push(`<!---->`);
|
|
2430
|
-
_push(`</div></section></div></main><aside class="rail rail-right" data-v-
|
|
2439
|
+
_push(`</div></section></div></main><aside class="rail rail-right" data-v-ee250387>`);
|
|
2431
2440
|
if (unref(selected)) {
|
|
2432
|
-
_push(`<section class="panel inspector" data-v-
|
|
2433
|
-
if (unref(selected).kind === "device" && unref(selectedIsDaq)) _push(`<span class="ins-chip accent" data-v-
|
|
2434
|
-
else if (unref(selected).kind === "device" && unref(selectedIsDcw)) _push(`<span class="ins-chip accent" data-v-
|
|
2441
|
+
_push(`<section class="panel inspector" data-v-ee250387><div class="panel-hd" data-v-ee250387><h3 data-v-ee250387>${ssrInterpolate(unref(selected).kind === "device" ? unref(selectedIsDcw) ? _ctx.$t("townView.k1ekqxlt146") : unref(selectedIsDaq) ? _ctx.$t("townView.k1empnnb178") : _ctx.$t("townView.k1k6wg8j185") : unref(selectedAgentRoleLabel))}</h3><button class="mini-btn"${ssrRenderAttr("title", _ctx.$t("townView.k1bsckft013"))} data-v-ee250387> ✕ </button></div><div class="ins-chip-row" data-v-ee250387><span class="ins-chip mono" data-v-ee250387>${ssrInterpolate(unref(selected).id.slice(0, 8))}</span>`);
|
|
2442
|
+
if (unref(selected).kind === "device" && unref(selectedIsDaq)) _push(`<span class="ins-chip accent" data-v-ee250387>DAQ</span>`);
|
|
2443
|
+
else if (unref(selected).kind === "device" && unref(selectedIsDcw)) _push(`<span class="ins-chip accent" data-v-ee250387>DCW</span>`);
|
|
2435
2444
|
else _push(`<!---->`);
|
|
2436
2445
|
_push(`</div>`);
|
|
2437
2446
|
if (unref(selected).kind === "device") {
|
|
2438
2447
|
_push(`<!--[-->`);
|
|
2439
2448
|
if (unref(selectedIsDcw)) {
|
|
2440
|
-
_push(`<div class="daq-info" data-v-
|
|
2441
|
-
if (unref(dcwWriteErrs)[unref(selected).id]) _push(`<p class="dcw-err" data-v-
|
|
2449
|
+
_push(`<div class="daq-info" data-v-ee250387><div class="daq-info-row" data-v-ee250387><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1deqh0d069"))}</span><b class="cy" data-v-ee250387>${ssrInterpolate(unref(selectedDcwNode)?.value != null ? unref(selectedDcwNode).value.toFixed(unref(selectedDcwNode).decimals) : "--")} ${ssrInterpolate(unref(selectedDcwNode)?.unit)}</b></div><div class="daq-info-row" data-v-ee250387><span data-v-ee250387>${ssrInterpolate(unref(selectedDcwWindow)?.src === "recipe" ? _ctx.$t("townView.kq2jssk147") : _ctx.$t("townView.k1iwj796179"))}</span><b class="${ssrRenderClass({ amber: unref(selectedDcwWindow)?.src === "recipe" })}" data-v-ee250387>${ssrInterpolate(dcwWinLabel(unref(selectedDcwNode)))}</b></div><div class="daq-info-row" data-v-ee250387><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1i8rtqt070"))}</span><b data-v-ee250387>${ssrInterpolate(unref(selectedDcwDeviceName) || _ctx.$t("townView.k3own4q148"))}</b></div><div class="daq-bind-bar" data-v-ee250387><input${ssrRenderAttr("value", unref(dcwWriteDrafts)[unref(selected).id])} type="number" class="bind-select"${ssrRenderAttr("step", 10 ** -(unref(selectedDcwNode)?.decimals ?? 2))}${ssrRenderAttr("placeholder", dcwWinInputPh(unref(selectedDcwNode)))} data-v-ee250387><button class="bind-add-btn"${ssrIncludeBooleanAttr(unref(dcwWriteDrafts)[unref(selected).id] == null || unref(dcwWriteDrafts)[unref(selected).id] === "") ? " disabled" : ""} data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kwrbtn180"))}</button></div>`);
|
|
2450
|
+
if (unref(dcwWriteErrs)[unref(selected).id]) _push(`<p class="dcw-err" data-v-ee250387>${ssrInterpolate(unref(dcwWriteErrs)[unref(selected).id])}</p>`);
|
|
2442
2451
|
else _push(`<!---->`);
|
|
2443
2452
|
if (unref(mode) === "edit") {
|
|
2444
|
-
_push(`<div class="daq-bind-bar" data-v-
|
|
2453
|
+
_push(`<div class="daq-bind-bar" data-v-ee250387><select class="bind-select" data-v-ee250387><option value="" data-v-ee250387${ssrIncludeBooleanAttr(Array.isArray(unref(dcwBindPick)) ? ssrLooseContain(unref(dcwBindPick), "") : ssrLooseEqual(unref(dcwBindPick), "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.kjo6ekr071"))}</option><!--[-->`);
|
|
2445
2454
|
ssrRenderList(unref(deviceTwins).twins.filter((x) => !isLegacyDaqTwin(x) && x.id !== (unref(selected)?.id ?? "")), (dv) => {
|
|
2446
|
-
_push(`<option${ssrRenderAttr("value", dv.id)} data-v-
|
|
2455
|
+
_push(`<option${ssrRenderAttr("value", dv.id)} data-v-ee250387${ssrIncludeBooleanAttr(Array.isArray(unref(dcwBindPick)) ? ssrLooseContain(unref(dcwBindPick), dv.id) : ssrLooseEqual(unref(dcwBindPick), dv.id)) ? " selected" : ""}>${ssrInterpolate(dv.name)}</option>`);
|
|
2447
2456
|
});
|
|
2448
|
-
_push(`<!--]--></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(selectedDcwDeviceName) && !unref(dcwBindPick)) ? " disabled" : ""} data-v-
|
|
2457
|
+
_push(`<!--]--></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(selectedDcwDeviceName) && !unref(dcwBindPick)) ? " disabled" : ""} data-v-ee250387>${ssrInterpolate(unref(selectedDcwDeviceName) ? _ctx.$t("townView.k479eh149") : _ctx.$t("townView.k452a8102"))}</button></div>`);
|
|
2449
2458
|
} else _push(`<!---->`);
|
|
2450
2459
|
_push(`</div>`);
|
|
2451
2460
|
} else if (unref(selectedIsDaq)) {
|
|
2452
|
-
_push(`<div class="daq-info" data-v-
|
|
2461
|
+
_push(`<div class="daq-info" data-v-ee250387><div class="daq-info-row" data-v-ee250387><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k3mv305072"))}</span><b class="cy" data-v-ee250387>${ssrInterpolate(unref(selectedDaqSim) ? fmtDaq(unref(selectedDaqSim)) : "--")} ${ssrInterpolate(unref(selectedDaqSim)?.tpl.unit)}</b></div><div class="daq-info-row" data-v-ee250387><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1faqmjb073"))}</span><b data-v-ee250387>${ssrInterpolate(unref(selectedDaqSim)?.tpl.min)} ~ ${ssrInterpolate(unref(selectedDaqSim)?.tpl.max)}</b></div><div class="daq-info-row" data-v-ee250387><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1i8rtqt070"))}</span><b data-v-ee250387>${ssrInterpolate(unref(daqBoundDeviceName) || _ctx.$t("townView.k3own4q148"))}</b></div>`);
|
|
2453
2462
|
if (unref(mode) === "edit") {
|
|
2454
|
-
_push(`<div class="daq-bind-bar" data-v-
|
|
2463
|
+
_push(`<div class="daq-bind-bar" data-v-ee250387><select class="bind-select" data-v-ee250387><option value="" data-v-ee250387${ssrIncludeBooleanAttr(Array.isArray(unref(bindPick)) ? ssrLooseContain(unref(bindPick), "") : ssrLooseEqual(unref(bindPick), "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.kjo6ekr071"))}</option><!--[-->`);
|
|
2455
2464
|
ssrRenderList(unref(deviceTwins).twins.filter((x) => !isLegacyDaqTwin(x) && x.id !== (unref(selected)?.id ?? "")), (dv) => {
|
|
2456
|
-
_push(`<option${ssrRenderAttr("value", dv.id)} data-v-
|
|
2465
|
+
_push(`<option${ssrRenderAttr("value", dv.id)} data-v-ee250387${ssrIncludeBooleanAttr(Array.isArray(unref(bindPick)) ? ssrLooseContain(unref(bindPick), dv.id) : ssrLooseEqual(unref(bindPick), dv.id)) ? " selected" : ""}>${ssrInterpolate(dv.name)}</option>`);
|
|
2457
2466
|
});
|
|
2458
|
-
_push(`<!--]--></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(daqBoundDeviceName) && !unref(bindPick)) ? " disabled" : ""} data-v-
|
|
2467
|
+
_push(`<!--]--></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(daqBoundDeviceName) && !unref(bindPick)) ? " disabled" : ""} data-v-ee250387>${ssrInterpolate(unref(daqBoundDeviceName) ? _ctx.$t("townView.k479eh149") : _ctx.$t("townView.k452a8102"))}</button></div>`);
|
|
2459
2468
|
} else _push(`<!---->`);
|
|
2460
|
-
if (unref(mode) === "edit" && unref(selectedDaqNode)) _push(`<div class="daq-node-ctl" data-v-
|
|
2461
|
-
else _push(`<div class="ins-empty" data-v-
|
|
2469
|
+
if (unref(mode) === "edit" && unref(selectedDaqNode)) _push(`<div class="daq-node-ctl" data-v-ee250387><div class="daq-info-row" data-v-ee250387><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1l6g2ga074"))}</span><span class="daq-th-inputs" data-v-ee250387><input${ssrRenderAttr("value", unref(daqIntervalDraft))} type="number" min="200" max="60000" step="100" class="daq-num" data-v-ee250387><small data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1or92b075"))}</small></span></div><div class="daq-info-row" data-v-ee250387><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k3x5tpx076"))}</span><span class="daq-th-inputs" data-v-ee250387><input${ssrRenderAttr("value", unref(selectedDaqNode).warnLow)} type="number" step="any" class="daq-num" data-v-ee250387> ~ <input${ssrRenderAttr("value", unref(selectedDaqNode).warnHigh)} type="number" step="any" class="daq-num" data-v-ee250387></span></div><div class="daq-info-row" data-v-ee250387><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1hjj0jf077"))}</span><span class="daq-th-inputs" data-v-ee250387><input${ssrRenderAttr("value", unref(selectedDaqNode).min)} type="number" step="any" class="daq-num" data-v-ee250387> ~ <input${ssrRenderAttr("value", unref(selectedDaqNode).max)} type="number" step="any" class="daq-num" data-v-ee250387></span></div><div class="daq-info-row" data-v-ee250387><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k48tki078"))}</span><button class="${ssrRenderClass([{ warn: unref(selectedDaqNode).enabled }, "bind-add-btn"])}" data-v-ee250387>${ssrInterpolate(unref(selectedDaqNode).enabled ? _ctx.$t("townView.k1wv0nyo150") : _ctx.$t("townView.kh1586b180"))}</button></div><div class="daq-info-row" data-v-ee250387><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k3xakp079"))}</span><button class="bind-add-btn danger"${ssrRenderAttr("title", _ctx.$t("townView.kpwutri014"))} data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1bpp30k080"))}</button></div></div>`);
|
|
2470
|
+
else _push(`<div class="ins-empty" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kzk5dfx081"))}</div>`);
|
|
2462
2471
|
_push(`</div>`);
|
|
2463
2472
|
} else {
|
|
2464
|
-
_push(`<!--[--><div class="obj-row" data-v-
|
|
2473
|
+
_push(`<!--[--><div class="obj-row" data-v-ee250387><span class="obj-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k3xhia082"))}</span><input${ssrRenderAttr("value", unref(objNameDraft))} class="obj-input"${ssrRenderAttr("placeholder", _ctx.$t("townView.k1k6vbaf015"))}${ssrIncludeBooleanAttr(unref(mode) !== "edit") ? " disabled" : ""}${ssrRenderAttr("title", unref(mode) === "edit" ? "设备名称" : "运行模式只读")} data-v-ee250387></div><div class="obj-row" data-v-ee250387><span class="obj-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k41amp083"))}</span><select class="obj-select"${ssrRenderAttr("value", unref(scene3dRef)?.getDeviceModelRef?.(unref(selected).id) ?? "")}${ssrIncludeBooleanAttr(unref(mode) !== "edit") ? " disabled" : ""} data-v-ee250387><!--[-->`);
|
|
2465
2474
|
ssrRenderList(unref(deviceModels), (m) => {
|
|
2466
|
-
_push(`<option${ssrRenderAttr("value", m.id)} data-v-
|
|
2475
|
+
_push(`<option${ssrRenderAttr("value", m.id)} data-v-ee250387>${ssrInterpolate(m.name)}</option>`);
|
|
2467
2476
|
});
|
|
2468
|
-
_push(`<!--]--></select></div><div class="sect-hd" data-v-
|
|
2477
|
+
_push(`<!--]--></select></div><div class="sect-hd" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1vtyk05130"))} ${ssrInterpolate(unref(boundDaqRows).length)} ${ssrInterpolate(_ctx.$t("townView.k3vfpz5138"))}</div><!--[-->`);
|
|
2469
2478
|
ssrRenderList(unref(boundDaqRows), (r) => {
|
|
2470
|
-
_push(`<div class="bind-row" data-v-
|
|
2471
|
-
if (unref(mode) === "edit") _push(`<button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-
|
|
2479
|
+
_push(`<div class="bind-row" data-v-ee250387><span class="bind-ico" data-v-ee250387><svg class="bind-svg" viewBox="0 0 24 24" data-v-ee250387>${daqIcon(r.icon) ?? ""}</svg></span><span class="bind-meta" data-v-ee250387><span class="bind-label" data-v-ee250387>${ssrInterpolate(r.ch)}</span><span class="bind-val" data-v-ee250387><b data-v-ee250387>${ssrInterpolate(r.value)}</b> ${ssrInterpolate(r.unit)} · ${ssrInterpolate(r.name)}</span></span><canvas class="bind-spark" width="56" height="20" data-v-ee250387></canvas>`);
|
|
2480
|
+
if (unref(mode) === "edit") _push(`<button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-ee250387> ✕ </button>`);
|
|
2472
2481
|
else _push(`<!---->`);
|
|
2473
2482
|
_push(`</div>`);
|
|
2474
2483
|
});
|
|
2475
2484
|
_push(`<!--]-->`);
|
|
2476
|
-
if (!unref(boundDaqRows).length) _push(`<div class="ins-empty" data-v-
|
|
2485
|
+
if (!unref(boundDaqRows).length) _push(`<div class="ins-empty" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kgpuqhb084"))}</div>`);
|
|
2477
2486
|
else _push(`<!---->`);
|
|
2478
2487
|
if (unref(mode) === "edit") {
|
|
2479
|
-
_push(`<div class="bind-add-wrap" data-v-
|
|
2488
|
+
_push(`<div class="bind-add-wrap" data-v-ee250387><button class="bind-add" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kvm0lin085"))}</button>`);
|
|
2480
2489
|
if (unref(bindPopOpen)) {
|
|
2481
|
-
_push(`<div class="bind-pop" style="${ssrRenderStyle({ maxHeight: `${unref(bindPopMaxH)}px` })}" data-v-
|
|
2490
|
+
_push(`<div class="bind-pop" style="${ssrRenderStyle({ maxHeight: `${unref(bindPopMaxH)}px` })}" data-v-ee250387><!--[-->`);
|
|
2482
2491
|
ssrRenderList(unref(daqTemplates), (tpl) => {
|
|
2483
2492
|
_push(`<!--[-->`);
|
|
2484
2493
|
if (unref(daqBindChoices)[tpl.id]?.length) {
|
|
2485
|
-
_push(`<div class="bp-group" data-v-
|
|
2494
|
+
_push(`<div class="bp-group" data-v-ee250387><span class="bp-tpl" data-v-ee250387>${ssrInterpolate(tpl.name)} · ${ssrInterpolate(tpl.ch)}</span><!--[-->`);
|
|
2486
2495
|
ssrRenderList(unref(daqBindChoices)[tpl.id], (c) => {
|
|
2487
|
-
_push(`<button${ssrRenderAttr("data-node-id", c.id)}${ssrRenderAttr("title", c.devName ? _ctx.$t("townView.k2bindr0007", { p0: c.devName }) : _ctx.$t("townView.k2bindr0008"))} data-v-
|
|
2488
|
-
if (c.devName) _push(`<i class="bp-cur" data-v-
|
|
2489
|
-
else if (!c.placed) _push(`<i class="bp-cur" data-v-
|
|
2496
|
+
_push(`<button${ssrRenderAttr("data-node-id", c.id)}${ssrRenderAttr("title", c.devName ? _ctx.$t("townView.k2bindr0007", { p0: c.devName }) : _ctx.$t("townView.k2bindr0008"))} data-v-ee250387><svg class="bind-svg" viewBox="0 0 24 24" data-v-ee250387>${daqIcon(c.tpl.icon) ?? ""}</svg><span data-v-ee250387>${ssrInterpolate(c.name)}`);
|
|
2497
|
+
if (c.devName) _push(`<i class="bp-cur" data-v-ee250387>→ ${ssrInterpolate(c.devName)}</i>`);
|
|
2498
|
+
else if (!c.placed) _push(`<i class="bp-cur" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k2bindr0009"))}</i>`);
|
|
2490
2499
|
else _push(`<!---->`);
|
|
2491
2500
|
_push(`</span></button>`);
|
|
2492
2501
|
});
|
|
@@ -2495,40 +2504,40 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2495
2504
|
_push(`<!--]-->`);
|
|
2496
2505
|
});
|
|
2497
2506
|
_push(`<!--]-->`);
|
|
2498
|
-
if (!unref(daqBindChoiceCount)) _push(`<div class="bp-empty" data-v-
|
|
2507
|
+
if (!unref(daqBindChoiceCount)) _push(`<div class="bp-empty" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k2bindr0010"))}</div>`);
|
|
2499
2508
|
else _push(`<!---->`);
|
|
2500
2509
|
_push(`</div>`);
|
|
2501
2510
|
} else _push(`<!---->`);
|
|
2502
2511
|
_push(`</div>`);
|
|
2503
2512
|
} else _push(`<!---->`);
|
|
2504
|
-
_push(`<div class="sect-hd" data-v-
|
|
2513
|
+
_push(`<div class="sect-hd" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.ktzir2t131"))} ${ssrInterpolate(unref(boundDcwRows).length)} ${ssrInterpolate(_ctx.$t("townView.k4l1w042"))}</div><!--[-->`);
|
|
2505
2514
|
ssrRenderList(unref(boundDcwRows), (r) => {
|
|
2506
|
-
_push(`<div class="dcw-row" data-v-
|
|
2507
|
-
if (r.rMin != null || r.rMax != null) _push(`<i class="dcw-tag" data-v-
|
|
2515
|
+
_push(`<div class="dcw-row" data-v-ee250387><div class="dcw-top" data-v-ee250387><span class="bind-ico" data-v-ee250387><svg class="bind-svg" viewBox="0 0 24 24" data-v-ee250387>${daqIcon(r.icon) ?? ""}</svg></span><span class="dcw-id" data-v-ee250387><span class="bind-label" data-v-ee250387>${ssrInterpolate(r.ch)}`);
|
|
2516
|
+
if (r.rMin != null || r.rMax != null) _push(`<i class="dcw-tag" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k48grv086"))}</i>`);
|
|
2508
2517
|
else _push(`<!---->`);
|
|
2509
|
-
_push(`</span><span class="dcw-name" data-v-
|
|
2510
|
-
if (unref(mode) === "edit") _push(`<button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-
|
|
2518
|
+
_push(`</span><span class="dcw-name" data-v-ee250387>${ssrInterpolate(r.name)}</span></span><span class="dcw-cur" data-v-ee250387><b data-v-ee250387>${ssrInterpolate(r.value != null ? r.value.toFixed(r.decimals) : "--")}</b><i data-v-ee250387>${ssrInterpolate(r.unit)}</i></span>`);
|
|
2519
|
+
if (unref(mode) === "edit") _push(`<button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-ee250387> ✕ </button>`);
|
|
2511
2520
|
else _push(`<!---->`);
|
|
2512
|
-
_push(`</div><div class="${ssrRenderClass([{ recipe: r.rMin != null || r.rMax != null }, "dcw-win"])}" data-v-
|
|
2513
|
-
if (unref(dcwWriteErrs)[r.dcwId]) _push(`<small class="dcw-err" data-v-
|
|
2521
|
+
_push(`</div><div class="${ssrRenderClass([{ recipe: r.rMin != null || r.rMax != null }, "dcw-win"])}" data-v-ee250387><em data-v-ee250387>${ssrInterpolate(r.rMin != null || r.rMax != null ? _ctx.$t("townView.k1l3m0hx151") : _ctx.$t("townView.k1bc6rqf181"))}</em><span class="dcw-win-num" data-v-ee250387>${ssrInterpolate(r.rMin ?? "-∞")}</span><span class="dcw-win-track" data-v-ee250387><i style="${ssrRenderStyle({ left: `${dcwMarkPct(r)}%` })}" data-v-ee250387></i></span><span class="dcw-win-num" data-v-ee250387>${ssrInterpolate(r.rMax ?? "+∞")}</span></div><div class="dcw-write" data-v-ee250387><input${ssrRenderAttr("value", unref(dcwWriteDrafts)[r.dcwId])} type="number"${ssrRenderAttr("step", 10 ** -r.decimals)}${ssrRenderAttr("placeholder", `${r.rMin ?? r.gMin} ~ ${r.rMax ?? r.gMax}`)} data-v-ee250387><button class="dcw-send"${ssrIncludeBooleanAttr(unref(dcwWriteDrafts)[r.dcwId] == null || unref(dcwWriteDrafts)[r.dcwId] === "") ? " disabled" : ""}${ssrRenderAttr("title", _ctx.$t("townView.k15t7izc017"))} data-v-ee250387> write </button></div>`);
|
|
2522
|
+
if (unref(dcwWriteErrs)[r.dcwId]) _push(`<small class="dcw-err" data-v-ee250387>${ssrInterpolate(unref(dcwWriteErrs)[r.dcwId])}</small>`);
|
|
2514
2523
|
else _push(`<!---->`);
|
|
2515
2524
|
_push(`</div>`);
|
|
2516
2525
|
});
|
|
2517
2526
|
_push(`<!--]-->`);
|
|
2518
|
-
if (!unref(boundDcwRows).length) _push(`<div class="ins-empty" data-v-
|
|
2527
|
+
if (!unref(boundDcwRows).length) _push(`<div class="ins-empty" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k10smf24087"))}</div>`);
|
|
2519
2528
|
else _push(`<!---->`);
|
|
2520
2529
|
if (unref(mode) === "edit") {
|
|
2521
|
-
_push(`<div class="bind-add-wrap" data-v-
|
|
2530
|
+
_push(`<div class="bind-add-wrap" data-v-ee250387><button class="bind-add" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kvk1vh5088"))}</button>`);
|
|
2522
2531
|
if (unref(dcwBindPopOpen)) {
|
|
2523
|
-
_push(`<div class="bind-pop" style="${ssrRenderStyle({ maxHeight: `${unref(bindPopMaxH)}px` })}" data-v-
|
|
2532
|
+
_push(`<div class="bind-pop" style="${ssrRenderStyle({ maxHeight: `${unref(bindPopMaxH)}px` })}" data-v-ee250387><!--[-->`);
|
|
2524
2533
|
ssrRenderList(unref(dcwTemplates), (tpl) => {
|
|
2525
2534
|
_push(`<!--[-->`);
|
|
2526
2535
|
if (unref(dcwBindChoices)[tpl.id]?.length) {
|
|
2527
|
-
_push(`<div class="bp-group" data-v-
|
|
2536
|
+
_push(`<div class="bp-group" data-v-ee250387><span class="bp-tpl" data-v-ee250387>${ssrInterpolate(tpl.name)} · ${ssrInterpolate(tpl.ch)}</span><!--[-->`);
|
|
2528
2537
|
ssrRenderList(unref(dcwBindChoices)[tpl.id], (c) => {
|
|
2529
|
-
_push(`<button${ssrRenderAttr("data-node-id", c.id)}${ssrRenderAttr("title", c.devName ? _ctx.$t("townView.k2bindr0007", { p0: c.devName }) : _ctx.$t("townView.k2bindr0008"))} data-v-
|
|
2530
|
-
if (c.devName) _push(`<i class="bp-cur" data-v-
|
|
2531
|
-
else if (!c.placed) _push(`<i class="bp-cur" data-v-
|
|
2538
|
+
_push(`<button${ssrRenderAttr("data-node-id", c.id)}${ssrRenderAttr("title", c.devName ? _ctx.$t("townView.k2bindr0007", { p0: c.devName }) : _ctx.$t("townView.k2bindr0008"))} data-v-ee250387><svg class="bind-svg" viewBox="0 0 24 24" data-v-ee250387>${daqIcon(c.tpl.icon) ?? ""}</svg><span data-v-ee250387>${ssrInterpolate(c.name)}`);
|
|
2539
|
+
if (c.devName) _push(`<i class="bp-cur" data-v-ee250387>→ ${ssrInterpolate(c.devName)}</i>`);
|
|
2540
|
+
else if (!c.placed) _push(`<i class="bp-cur" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k2bindr0009"))}</i>`);
|
|
2532
2541
|
else _push(`<!---->`);
|
|
2533
2542
|
_push(`</span></button>`);
|
|
2534
2543
|
});
|
|
@@ -2537,121 +2546,121 @@ var TownView_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
|
|
|
2537
2546
|
_push(`<!--]-->`);
|
|
2538
2547
|
});
|
|
2539
2548
|
_push(`<!--]-->`);
|
|
2540
|
-
if (!unref(dcwBindChoiceCount)) _push(`<div class="bp-empty" data-v-
|
|
2549
|
+
if (!unref(dcwBindChoiceCount)) _push(`<div class="bp-empty" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k2bindr0010"))}</div>`);
|
|
2541
2550
|
else _push(`<!---->`);
|
|
2542
2551
|
_push(`</div>`);
|
|
2543
2552
|
} else _push(`<!---->`);
|
|
2544
2553
|
_push(`</div>`);
|
|
2545
2554
|
} else _push(`<!---->`);
|
|
2546
|
-
if (unref(mode) === "edit") _push(`<!--[--><div class="sect-hd" data-v-
|
|
2547
|
-
else _push(`<div class="ins-empty" data-v-
|
|
2555
|
+
if (unref(mode) === "edit") _push(`<!--[--><div class="sect-hd" data-v-ee250387> 变换 · BLENDER </div><div class="xz-seg" data-v-ee250387><button class="${ssrRenderClass([{ on: unref(tMode) === "translate" }, "seg-btn"])}" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1hg3167089"))}</button><button class="${ssrRenderClass([{ on: unref(tMode) === "rotate" }, "seg-btn"])}" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1enlg7i090"))}</button><button class="${ssrRenderClass([{ on: unref(tMode) === "scale" }, "seg-btn"])}" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1ibjg3j091"))}</button></div><div class="scale-row" data-v-ee250387><span class="scale-min" data-v-ee250387>0.2×</span><input class="scale-range" type="range" min="0.2" max="5" step="0.05"${ssrRenderAttr("value", unref(selected).scale)} data-v-ee250387><span class="scale-max" data-v-ee250387>5×</span></div><div class="scale-val" data-v-ee250387>${ssrInterpolate(Math.round(unref(selected).scale * 100))}% </div><div class="ins-foot" data-v-ee250387><button class="${ssrRenderClass([{ armed: unref(deviceDeleteArmed) === unref(selected).id }, "btn btn-danger ins-del"])}" data-v-ee250387>${ssrInterpolate(unref(deviceDeleteArmed) === unref(selected).id ? _ctx.$t("townView.k1w10xa5152") : _ctx.$t("townView.k121kfef182"))}</button></div><!--]-->`);
|
|
2556
|
+
else _push(`<div class="ins-empty" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kt0i3y2092"))}</div>`);
|
|
2548
2557
|
_push(`<!--]-->`);
|
|
2549
2558
|
}
|
|
2550
2559
|
_push(`<!--]-->`);
|
|
2551
2560
|
} else if (unref(selected).kind === "agent") {
|
|
2552
|
-
_push(`<!--[--><div class="chat-id-row" data-v-
|
|
2553
|
-
if (unref(selectedAgentMeta)?.harness) _push(`<span class="chat-harness" data-v-
|
|
2561
|
+
_push(`<!--[--><div class="chat-id-row" data-v-ee250387><span class="chat-badge" style="${ssrRenderStyle({ "--p-acc": unref(agentChatColor) })}" data-v-ee250387>${ssrInterpolate(unref(agentChatTitle).slice(0, 1).toUpperCase())}</span><div class="chat-nameplate" data-v-ee250387><span class="chat-name" data-v-ee250387>${ssrInterpolate(unref(agentChatTitle))}</span><span class="chat-meta" data-v-ee250387><span class="${ssrRenderClass([unref(selectedAgentMeta)?.role === "lead" ? "r-lead" : "r-worker", "chat-role"])}" data-v-ee250387>${ssrInterpolate(unref(selectedAgentRoleTag))}</span><span class="${ssrRenderClass([`s-${unref(selectedAgentMeta)?.state ?? "idle"}`, "chat-state"])}" data-v-ee250387>${ssrInterpolate(unref(agentChatStateLabel))}</span>`);
|
|
2562
|
+
if (unref(selectedAgentMeta)?.harness) _push(`<span class="chat-harness" data-v-ee250387>${ssrInterpolate(unref(selectedAgentMeta).harness.toUpperCase())}</span>`);
|
|
2554
2563
|
else _push(`<!---->`);
|
|
2555
|
-
_push(`<span class="chat-count" data-v-
|
|
2564
|
+
_push(`<span class="chat-count" data-v-ee250387>${ssrInterpolate(unref(agentHistory).length + unref(agentChatRows).length)} ${ssrInterpolate(_ctx.$t("townView.k4dfq040"))}</span></span></div></div><div class="obj-row" data-v-ee250387><span class="obj-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k41amp083"))}</span><select class="obj-select"${ssrRenderAttr("value", (unref(scene3dRef)?.getAgentModel?.(unref(selected).id) ?? "") || "hero-3d")}${ssrIncludeBooleanAttr(unref(mode) !== "edit") ? " disabled" : ""} data-v-ee250387><!--[-->`);
|
|
2556
2565
|
ssrRenderList(unref(agentModels), (m) => {
|
|
2557
|
-
_push(`<option${ssrRenderAttr("value", m.id)} data-v-
|
|
2566
|
+
_push(`<option${ssrRenderAttr("value", m.id)} data-v-ee250387>${ssrInterpolate(m.name)}</option>`);
|
|
2558
2567
|
});
|
|
2559
|
-
_push(`<!--]--></select></div><div class="obj-sep" data-v-
|
|
2560
|
-
if (unref(mode) === "edit") _push(`<button class="${ssrRenderClass([{ on: unref(agentDrawingRange) }, "obj-mini"])}"${ssrRenderAttr("title", _ctx.$t("townView.k13enoy3018"))} data-v-
|
|
2568
|
+
_push(`<!--]--></select></div><div class="obj-sep" data-v-ee250387></div><div class="obj-row" data-v-ee250387><span class="obj-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1fix3hb093"))}</span><span class="range-status" data-v-ee250387>${ssrInterpolate(unref(agentRangeStatusText))}</span>`);
|
|
2569
|
+
if (unref(mode) === "edit") _push(`<button class="${ssrRenderClass([{ on: unref(agentDrawingRange) }, "obj-mini"])}"${ssrRenderAttr("title", _ctx.$t("townView.k13enoy3018"))} data-v-ee250387>${ssrInterpolate(unref(agentDrawingRange) ? _ctx.$t("townView.k3slzhc153") : _ctx.$t("townView.k1f1xmci183"))}</button>`);
|
|
2561
2570
|
else _push(`<!---->`);
|
|
2562
|
-
_push(`</div><div class="obj-sep" data-v-
|
|
2571
|
+
_push(`</div><div class="obj-sep" data-v-ee250387></div><div class="sect-hd" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1p7nru2094"))}</div><!--[-->`);
|
|
2563
2572
|
ssrRenderList(unref(agentBindings), (b) => {
|
|
2564
|
-
_push(`<div class="bind-row" data-v-
|
|
2573
|
+
_push(`<div class="bind-row" data-v-ee250387><span class="${ssrRenderClass([b.kind === "dcw" ? "accent" : "", "ins-chip"])}" style="${ssrRenderStyle({ "flex": "none" })}" data-v-ee250387>${ssrInterpolate(b.kind === "dcw" ? _ctx.$t("townView.k40ifw097") : _ctx.$t("townView.k40rjw098"))}</span><span class="bind-meta" data-v-ee250387><span class="bind-label" data-v-ee250387>${ssrInterpolate(bindingNodeName(b))}</span><select class="bind-select" style="${ssrRenderStyle({ "margin-top": "3px" })}"${ssrRenderAttr("value", b.mode)}${ssrRenderAttr("title", _ctx.$t("townView.khqvwix019"))} data-v-ee250387><option value="auto" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1io1ylm095"))}</option><option value="manual" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1duyr8q096"))}</option></select></span><button class="bind-x"${ssrRenderAttr("title", _ctx.$t("townView.k1k73omv016"))} data-v-ee250387> ✕ </button></div>`);
|
|
2565
2574
|
});
|
|
2566
2575
|
_push(`<!--]-->`);
|
|
2567
|
-
if (!unref(agentBindings).length) _push(`<div class="ins-empty" data-v-
|
|
2576
|
+
if (!unref(agentBindings).length) _push(`<div class="ins-empty" data-v-ee250387> 未绑定工业节点 —— 绑定后 Agent 可用 dcw_control / daq_query 工具 </div>`);
|
|
2568
2577
|
else _push(`<!---->`);
|
|
2569
2578
|
if (unref(mode) === "edit") {
|
|
2570
|
-
_push(`<div class="daq-bind-bar" style="${ssrRenderStyle({ "margin-bottom": "8px" })}" data-v-
|
|
2579
|
+
_push(`<div class="daq-bind-bar" style="${ssrRenderStyle({ "margin-bottom": "8px" })}" data-v-ee250387><select class="bind-select" style="${ssrRenderStyle({
|
|
2571
2580
|
"flex": "none",
|
|
2572
2581
|
"width": "62px"
|
|
2573
|
-
})}" data-v-
|
|
2582
|
+
})}" data-v-ee250387><option value="dcw" data-v-ee250387${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindKind)) ? ssrLooseContain(unref(agentBindKind), "dcw") : ssrLooseEqual(unref(agentBindKind), "dcw")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.k40ifw097"))}</option><option value="daq" data-v-ee250387${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindKind)) ? ssrLooseContain(unref(agentBindKind), "daq") : ssrLooseEqual(unref(agentBindKind), "daq")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.k40rjw098"))}</option></select><select class="bind-select" data-v-ee250387><option value="" data-v-ee250387${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindNodeId)) ? ssrLooseContain(unref(agentBindNodeId), "") : ssrLooseEqual(unref(agentBindNodeId), "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.kurjldk099"))}</option>`);
|
|
2574
2583
|
if (unref(agentBindKind) === "dcw") {
|
|
2575
2584
|
_push(`<!--[-->`);
|
|
2576
2585
|
ssrRenderList(unref(dcw).nodes, (n) => {
|
|
2577
|
-
_push(`<option${ssrRenderAttr("value", n.id)} data-v-
|
|
2586
|
+
_push(`<option${ssrRenderAttr("value", n.id)} data-v-ee250387${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindNodeId)) ? ssrLooseContain(unref(agentBindNodeId), n.id) : ssrLooseEqual(unref(agentBindNodeId), n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
|
|
2578
2587
|
});
|
|
2579
2588
|
_push(`<!--]-->`);
|
|
2580
2589
|
} else {
|
|
2581
2590
|
_push(`<!--[-->`);
|
|
2582
2591
|
ssrRenderList(unref(daq).nodes, (n) => {
|
|
2583
|
-
_push(`<option${ssrRenderAttr("value", n.id)} data-v-
|
|
2592
|
+
_push(`<option${ssrRenderAttr("value", n.id)} data-v-ee250387${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindNodeId)) ? ssrLooseContain(unref(agentBindNodeId), n.id) : ssrLooseEqual(unref(agentBindNodeId), n.id)) ? " selected" : ""}>${ssrInterpolate(n.name)}</option>`);
|
|
2584
2593
|
});
|
|
2585
2594
|
_push(`<!--]-->`);
|
|
2586
2595
|
}
|
|
2587
2596
|
_push(`</select><select class="bind-select" style="${ssrRenderStyle({
|
|
2588
2597
|
"flex": "none",
|
|
2589
2598
|
"width": "76px"
|
|
2590
|
-
})}" data-v-
|
|
2599
|
+
})}" data-v-ee250387><option value="auto" data-v-ee250387${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindMode)) ? ssrLooseContain(unref(agentBindMode), "auto") : ssrLooseEqual(unref(agentBindMode), "auto")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.k45kpj100"))}</option><option value="manual" data-v-ee250387${ssrIncludeBooleanAttr(Array.isArray(unref(agentBindMode)) ? ssrLooseContain(unref(agentBindMode), "manual") : ssrLooseEqual(unref(agentBindMode), "manual")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("townView.k3zul4101"))}</option></select><button class="bind-add-btn"${ssrIncludeBooleanAttr(!unref(agentBindNodeId)) ? " disabled" : ""} data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k452a8102"))}</button></div>`);
|
|
2591
2600
|
} else _push(`<!---->`);
|
|
2592
2601
|
if (unref(pendingApprovals).length) {
|
|
2593
|
-
_push(`<!--[--><div class="sect-hd" style="${ssrRenderStyle({ "color": "var(--hud-amber)" })}" data-v-
|
|
2602
|
+
_push(`<!--[--><div class="sect-hd" style="${ssrRenderStyle({ "color": "var(--hud-amber)" })}" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1gk2jg7132"))} ${ssrInterpolate(unref(pendingApprovals).length)}</div><!--[-->`);
|
|
2594
2603
|
ssrRenderList(unref(pendingApprovals), (ap) => {
|
|
2595
|
-
_push(`<div class="approval-card" data-v-
|
|
2604
|
+
_push(`<div class="approval-card" data-v-ee250387><div class="approval-detail" data-v-ee250387>${ssrInterpolate(ap.detail)}</div><div class="${ssrRenderClass([{ urgent: approvalRemainingSec(ap) <= 30 }, "approval-ttl"])}" data-v-ee250387> ⏱ ${ssrInterpolate(approvalRemainingSec(ap))}s ${ssrInterpolate(_ctx.$t("townView.hitlAutoReject"))}</div><input${ssrRenderAttr("value", unref(approvalComments)[ap.id])} class="dcw-write input-inline" style="${ssrRenderStyle({
|
|
2596
2605
|
"width": "100%",
|
|
2597
2606
|
"margin-top": "5px"
|
|
2598
|
-
})}"${ssrRenderAttr("placeholder", _ctx.$t("townView.keztqrn020"))} data-v-
|
|
2607
|
+
})}"${ssrRenderAttr("placeholder", _ctx.$t("townView.keztqrn020"))} data-v-ee250387><div class="daq-bind-bar" style="${ssrRenderStyle({ "margin-top": "5px" })}" data-v-ee250387><button class="bind-add-btn" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kslcozu103"))}</button><button class="bind-add-btn danger" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k14gu3rd104"))}</button></div></div>`);
|
|
2599
2608
|
});
|
|
2600
2609
|
_push(`<!--]--><!--]-->`);
|
|
2601
2610
|
} else _push(`<!---->`);
|
|
2602
|
-
if (unref(agentRangeDraft) && unref(mode) === "edit") _push(`<!--[--><div class="obj-row" data-v-
|
|
2603
|
-
else _push(`<div class="ins-empty" data-v-
|
|
2604
|
-
_push(`<div class="obj-sep" data-v-
|
|
2605
|
-
if (unref(historyLoading)) _push(`<div class="rpg-note" data-v-
|
|
2611
|
+
if (unref(agentRangeDraft) && unref(mode) === "edit") _push(`<!--[--><div class="obj-row" data-v-ee250387><span class="obj-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k3zhy5048"))}</span><div class="bp-seg" data-v-ee250387><button class="${ssrRenderClass([{ on: unref(agentRangeDraft).shape === "ellipse" }, "seg-btn"])}" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k414bc049"))}</button><button class="${ssrRenderClass([{ on: unref(agentRangeDraft).shape === "rect" }, "seg-btn"])}" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k43u0g050"))}</button></div></div><div class="obj-row" data-v-ee250387><span class="obj-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k41lwj105"))}</span><input${ssrRenderAttr("value", unref(agentRangeDraft).radiusX)} class="obj-range" type="range" min="40" max="4000" step="8" data-v-ee250387><span class="bp-val" data-v-ee250387>${ssrInterpolate(Math.round(unref(agentRangeDraft).radiusX))}</span></div><div class="obj-row" data-v-ee250387><span class="obj-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k45bta106"))}</span><input${ssrRenderAttr("value", unref(agentRangeDraft).radiusZ)} class="obj-range" type="range" min="40" max="4000" step="8" data-v-ee250387><span class="bp-val" data-v-ee250387>${ssrInterpolate(Math.round(unref(agentRangeDraft).radiusZ))}</span></div><button class="obj-mini danger" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1w45mzc107"))}</button><!--]-->`);
|
|
2612
|
+
else _push(`<div class="ins-empty" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k14s8urm108"))}</div>`);
|
|
2613
|
+
_push(`<div class="obj-sep" data-v-ee250387></div><div class="sect-hd chat-sect" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1ghjbfc133"))} ${ssrInterpolate(unref(agentChatTitle))} <button class="mini-btn chat-refresh"${ssrRenderAttr("title", _ctx.$t("townView.k15avt7g021"))} data-v-ee250387>${ssrInterpolate(unref(historyLoading) ? "…" : "↻")}</button></div><div class="rpg-lines chat-embed" data-v-ee250387>`);
|
|
2614
|
+
if (unref(historyLoading)) _push(`<div class="rpg-note" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kkhlx5h109"))}</div>`);
|
|
2606
2615
|
else _push(`<!---->`);
|
|
2607
2616
|
if (unref(agentHistory).length) {
|
|
2608
|
-
_push(`<!--[--><div class="rpg-divider" data-v-
|
|
2617
|
+
_push(`<!--[--><div class="rpg-divider" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k768cnt134"))} ${ssrInterpolate(unref(agentHistory).length)}</div><!--[-->`);
|
|
2609
2618
|
ssrRenderList(unref(agentHistory), (r) => {
|
|
2610
|
-
_push(`<div class="rpg-line hist" data-v-
|
|
2611
|
-
if (chatKindLabel(r.kind)) _push(`<span class="${ssrRenderClass([`k-${r.kind}`, "rpg-kind"])}" data-v-
|
|
2619
|
+
_push(`<div class="rpg-line hist" data-v-ee250387><span class="rpg-time" data-v-ee250387>${ssrInterpolate(fmtTime(r.at))}</span><div class="rpg-bubble" data-v-ee250387>`);
|
|
2620
|
+
if (chatKindLabel(r.kind)) _push(`<span class="${ssrRenderClass([`k-${r.kind}`, "rpg-kind"])}" data-v-ee250387>${ssrInterpolate(chatKindLabel(r.kind))}</span>`);
|
|
2612
2621
|
else _push(`<!---->`);
|
|
2613
|
-
_push(`<span class="rpg-text" data-v-
|
|
2622
|
+
_push(`<span class="rpg-text" data-v-ee250387>${ssrInterpolate(r.text)}</span></div></div>`);
|
|
2614
2623
|
});
|
|
2615
2624
|
_push(`<!--]--><!--]-->`);
|
|
2616
2625
|
} else _push(`<!---->`);
|
|
2617
|
-
if (unref(agentChatRows).length) _push(`<div class="rpg-divider live" data-v-
|
|
2626
|
+
if (unref(agentChatRows).length) _push(`<div class="rpg-divider live" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1cwz73k135"))} ${ssrInterpolate(unref(agentChatRows).length)}</div>`);
|
|
2618
2627
|
else _push(`<!---->`);
|
|
2619
2628
|
_push(`<!--[-->`);
|
|
2620
2629
|
ssrRenderList(unref(agentChatRows), (r) => {
|
|
2621
|
-
_push(`<div class="rpg-line live" data-v-
|
|
2630
|
+
_push(`<div class="rpg-line live" data-v-ee250387><span class="rpg-time" data-v-ee250387>${ssrInterpolate(fmtTime(r.at))}</span><div class="rpg-bubble" data-v-ee250387><span class="rpg-text" data-v-ee250387>${ssrInterpolate(r.text)}</span></div></div>`);
|
|
2622
2631
|
});
|
|
2623
2632
|
_push(`<!--]-->`);
|
|
2624
|
-
if (unref(selectedAgentMeta)?.state === "busy") _push(`<div class="rpg-typing" data-v-
|
|
2633
|
+
if (unref(selectedAgentMeta)?.state === "busy") _push(`<div class="rpg-typing" data-v-ee250387><span class="ty-dot" data-v-ee250387></span><span class="ty-dot" data-v-ee250387></span><span class="ty-dot" data-v-ee250387></span><span class="ty-label" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k3o5tz9110"))}</span></div>`);
|
|
2625
2634
|
else _push(`<!---->`);
|
|
2626
|
-
if (!unref(historyLoading) && !unref(agentHistory).length && !unref(agentChatRows).length) _push(`<div class="rpg-note" data-v-
|
|
2635
|
+
if (!unref(historyLoading) && !unref(agentHistory).length && !unref(agentChatRows).length) _push(`<div class="rpg-note" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1qkqld7111"))}</div>`);
|
|
2627
2636
|
else _push(`<!---->`);
|
|
2628
2637
|
_push(`</div><!--]-->`);
|
|
2629
2638
|
} else _push(`<!---->`);
|
|
2630
2639
|
_push(`</section>`);
|
|
2631
2640
|
} else _push(`<!---->`);
|
|
2632
|
-
_push(`<section class="panel" data-v-
|
|
2641
|
+
_push(`<section class="panel" data-v-ee250387><div class="panel-hd" data-v-ee250387><h3 data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k17dkhgd112"))}</h3></div><div class="health-body" data-v-ee250387><div class="donut-wrap" data-v-ee250387><canvas width="118" height="118" data-v-ee250387></canvas><div class="donut-center" data-v-ee250387><b style="${ssrRenderStyle({ color: unref(healthTone) })}" data-v-ee250387>${ssrInterpolate(unref(healthPct))}%</b><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k7h1nxo113"))}</span></div></div><div class="health-legend" data-v-ee250387><div class="hl-row" data-v-ee250387><span class="hl-dot" style="${ssrRenderStyle({ background: "var(--hud-accent)" })}" data-v-ee250387></span> ${ssrInterpolate(_ctx.$t("townView.k3vp67i114"))} <span class="n" data-v-ee250387>${ssrInterpolate(unref(runningCount))}</span></div><div class="hl-row" data-v-ee250387><span class="hl-dot" style="${ssrRenderStyle({ background: "var(--hud-amber)" })}" data-v-ee250387></span> ${ssrInterpolate(_ctx.$t("townView.k3zcvb115"))} <span class="n" data-v-ee250387>${ssrInterpolate(unref(idleCount))}</span></div><div class="hl-row" data-v-ee250387><span class="hl-dot" style="${ssrRenderStyle({ background: "var(--hud-danger)" })}" data-v-ee250387></span> ${ssrInterpolate(_ctx.$t("townView.k3xmid116"))} <span class="n" data-v-ee250387>${ssrInterpolate(unref(alarmCount))}</span></div><div class="hl-row" data-v-ee250387><span class="hl-dot" style="${ssrRenderStyle({ background: "#3a4a63" })}" data-v-ee250387></span> ${ssrInterpolate(_ctx.$t("townView.statesOffline"))} <span class="n" data-v-ee250387>${ssrInterpolate(unref(offlineCount))}</span></div></div></div></section><section class="panel" data-v-ee250387><div class="panel-hd" data-v-ee250387><h3 data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1q247fn117"))}</h3><span class="panel-tag" data-v-ee250387>${ssrInterpolate(unref(deviceTwins).twins.length)}</span></div>`);
|
|
2633
2642
|
_push(ssrRenderComponent(_component_WorkshopDeviceTwinPanel, {
|
|
2634
2643
|
class: "kd-embed",
|
|
2635
2644
|
"daq-live": unref(daqLive),
|
|
2636
2645
|
"dcw-live": unref(dcwLive),
|
|
2637
2646
|
onFocusDevice
|
|
2638
2647
|
}, null, _parent));
|
|
2639
|
-
_push(`</section><section class="panel" data-v-
|
|
2648
|
+
_push(`</section><section class="panel" data-v-ee250387><div class="panel-hd" data-v-ee250387><h3 data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1cxf749118"))}</h3><span class="panel-tag" data-v-ee250387>${ssrInterpolate(unref(activeAlarmCount))} ${ssrInterpolate(_ctx.$t("townView.k4dfq040"))}</span><button class="mini-btn"${ssrRenderAttr("title", _ctx.$t("townView.k1bkswpz022"))} data-v-ee250387> ✓ </button></div><div class="alarm-list" data-v-ee250387><!--[-->`);
|
|
2640
2649
|
ssrRenderList(unref(alarms).slice(0, 8), (a) => {
|
|
2641
|
-
_push(`<div class="al-row" data-v-
|
|
2650
|
+
_push(`<div class="al-row" data-v-ee250387><span class="${ssrRenderClass([a.state === 2 ? "info" : a.state === 1 ? "warn" : "crit", "al-ico"])}" data-v-ee250387><svg class="al-svg" viewBox="0 0 24 24" data-v-ee250387><path d="M12 3 22 20H2L12 3Z" data-v-ee250387></path><path d="M12 10v4M12 17v.2" data-v-ee250387></path></svg></span><div class="al-body" data-v-ee250387><div class="al-txt" data-v-ee250387>${ssrInterpolate(a.txt)}</div><div class="al-src" data-v-ee250387>${ssrInterpolate(a.src)} · ${ssrInterpolate(a.time)}</div></div><button class="${ssrRenderClass([`s${a.state}`, "al-state"])}" data-v-ee250387>${ssrInterpolate(ALARM_STATES[a.state])}</button></div>`);
|
|
2642
2651
|
});
|
|
2643
2652
|
_push(`<!--]-->`);
|
|
2644
|
-
if (!unref(alarms).length) _push(`<div class="rail-empty" data-v-
|
|
2653
|
+
if (!unref(alarms).length) _push(`<div class="rail-empty" data-v-ee250387><svg class="re-ico" viewBox="0 0 24 24" data-v-ee250387><path d="M12 3l7 3v5c0 4.6-3 8.2-7 10-4-1.8-7-5.4-7-10V6l7-3Z" data-v-ee250387></path><path d="m9.2 12.2 2 2 3.6-4" data-v-ee250387></path></svg><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kjz544r119"))}</span></div>`);
|
|
2645
2654
|
else _push(`<!---->`);
|
|
2646
|
-
_push(`</div></section><section class="panel" data-v-
|
|
2655
|
+
_push(`</div></section><section class="panel" data-v-ee250387><div class="panel-hd" data-v-ee250387><h3 data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1cxdtq2120"))}</h3><span class="panel-tag" data-v-ee250387>${ssrInterpolate(unref(ticker).length)}</span></div><div class="event-list" data-v-ee250387><!--[-->`);
|
|
2647
2656
|
ssrRenderList([...unref(ticker)].reverse(), (t, i) => {
|
|
2648
|
-
_push(`<div class="event-row" data-v-
|
|
2657
|
+
_push(`<div class="event-row" data-v-ee250387><span class="ev-time" data-v-ee250387>${ssrInterpolate(fmtTime(t.at))}</span><span class="ev-name"${ssrRenderAttr("title", t.agentName)} data-v-ee250387>${ssrInterpolate(t.agentName)}</span><span class="ev-text"${ssrRenderAttr("title", t.text)} data-v-ee250387>${ssrInterpolate(t.text)}</span></div>`);
|
|
2649
2658
|
});
|
|
2650
2659
|
_push(`<!--]-->`);
|
|
2651
|
-
if (!unref(ticker).length) _push(`<div class="rail-empty" data-v-
|
|
2660
|
+
if (!unref(ticker).length) _push(`<div class="rail-empty" data-v-ee250387><svg class="re-ico" viewBox="0 0 24 24" data-v-ee250387><path d="M3 12h3l2.5-6 4 12L15 12h6" data-v-ee250387></path></svg><span data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k2uk6ua121"))}</span></div>`);
|
|
2652
2661
|
else _push(`<!---->`);
|
|
2653
|
-
_push(`</div></section><section class="panel" data-v-
|
|
2654
|
-
if (!unref(ready)) _push(`<div data-hud="town-loading" class="loading-mask" data-v-
|
|
2662
|
+
_push(`</div></section><section class="panel" data-v-ee250387><div class="panel-hd" data-v-ee250387><h3 data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kjug2jq122"))}</h3></div><div class="mm-body" data-v-ee250387><div class="mm-wrap"${ssrRenderAttr("title", _ctx.$t("townView.klfwiqg023"))} data-v-ee250387><canvas class="nav-cv" data-v-ee250387></canvas></div><div class="mm-col" data-v-ee250387><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.k1lap9bs024"))} data-v-ee250387><svg class="vp-svg" viewBox="0 0 24 24" data-v-ee250387><path d="M3 12a9 9 0 1 0 3-6.7M3 4v5h5" data-v-ee250387></path></svg></button><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.kav8a8k025"))} data-v-ee250387><svg class="vp-svg" viewBox="0 0 24 24" data-v-ee250387><circle cx="11" cy="11" r="6.5" data-v-ee250387></circle><path d="m16 16 4.5 4.5M8.5 11h5" data-v-ee250387></path></svg></button><button class="vp-tool"${ssrRenderAttr("title", _ctx.$t("townView.k1u7uce9026"))} data-v-ee250387><svg class="vp-svg" viewBox="0 0 24 24" data-v-ee250387><circle cx="11" cy="11" r="6.5" data-v-ee250387></circle><path d="m16 16 4.5 4.5M8.5 11h5M11 8.5v5" data-v-ee250387></path></svg></button></div></div><div class="mm-meta mono" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k1gaaodq136"))}${ssrInterpolate(unref(navScale).toFixed(1))} · ${ssrInterpolate(unref(minimap)?.devices?.length ?? 0)} ${ssrInterpolate(_ctx.$t("townView.k47e16126"))}</div></section></aside></div><footer class="statusbar" data-v-ee250387><span data-v-ee250387><span class="${ssrRenderClass([{ red: unref(conn).state !== "open" }, "sb-dot"])}" data-v-ee250387></span>${ssrInterpolate(_ctx.$t("townView.k1i4g246123"))} <b data-v-ee250387>${ssrInterpolate(unref(conn).state === "open" ? _ctx.$t("townView.k41k5c154") : unref(syncing) ? _ctx.$t("townView.k3lmtk3184") : _ctx.$t("townView.k44c2n186"))}</b></span><span class="sb-stats" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.k4a0jt124"))} <b data-v-ee250387>${ssrInterpolate(unref(blockCount))}</b><i data-v-ee250387>·</i>${ssrInterpolate(_ctx.$t("townView.k3xdvm125"))} <b data-v-ee250387>${ssrInterpolate(unref(agentCount))}</b><i data-v-ee250387>·</i>${ssrInterpolate(_ctx.$t("townView.k47e16126"))} <b data-v-ee250387>${ssrInterpolate(unref(deviceCount))}</b></span><span class="sb-lat mono" data-v-ee250387>${ssrInterpolate(unref(fps))} FPS </span><span class="copy" data-v-ee250387> © 2026 ABO · DIGITAL TWIN · ${ssrInterpolate(_ctx.$t("townView.k1h5gxpf137"))}</span></footer>`);
|
|
2663
|
+
if (!unref(ready)) _push(`<div data-hud="town-loading" class="loading-mask" data-v-ee250387><div class="loading-spinner" data-v-ee250387></div><span class="loading-text" data-v-ee250387>${ssrInterpolate(_ctx.$t("townView.kvjdqfg059"))}</span></div>`);
|
|
2655
2664
|
else _push(`<!---->`);
|
|
2656
2665
|
_push(`</div>`);
|
|
2657
2666
|
};
|
|
@@ -2665,7 +2674,7 @@ TownView_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
|
|
|
2665
2674
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/town/TownView.vue");
|
|
2666
2675
|
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
2667
2676
|
};
|
|
2668
|
-
var TownView_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(TownView_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
2677
|
+
var TownView_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(TownView_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-ee250387"]]), { __name: "WorkshopTownView" });
|
|
2669
2678
|
|
|
2670
2679
|
export { TownView_default as T, useStorage as u };
|
|
2671
|
-
//# sourceMappingURL=TownView-
|
|
2680
|
+
//# sourceMappingURL=TownView-BkHxMiwZ.mjs.map
|