@zhanguym/chatroom 1.0.0 → 1.1.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/dist/app/application.d.ts +0 -1
  2. package/dist/app/application.js +8 -7
  3. package/dist/app/event-bus.d.ts +13 -10
  4. package/dist/app/git-access.d.ts +50 -0
  5. package/dist/app/git-access.js +2 -0
  6. package/dist/app/service-registry.d.ts +11 -0
  7. package/dist/app/service-registry.js +17 -0
  8. package/dist/app/workspace-access.d.ts +24 -0
  9. package/dist/app/workspace-access.js +2 -0
  10. package/dist/auth/ingress-policy.d.ts +2 -0
  11. package/dist/auth/ingress-policy.js +14 -2
  12. package/dist/auth/passkey-service.js +1 -1
  13. package/dist/cli/run-cli.js +1 -1
  14. package/dist/core/fs/safe-directory.d.ts +9 -0
  15. package/dist/core/fs/safe-directory.js +129 -0
  16. package/dist/core/operations/repository.d.ts +2 -0
  17. package/dist/core/runtime/line-process.d.ts +19 -0
  18. package/dist/core/runtime/line-process.js +51 -0
  19. package/dist/infrastructure/database/operation-repository.js +8 -2
  20. package/dist/infrastructure/database/schema.d.ts +1 -1
  21. package/dist/infrastructure/database/schema.js +62 -0
  22. package/dist/infrastructure/http/http-server.js +1 -1
  23. package/dist/native/linux/chatroom-computer-helper +0 -0
  24. package/dist/native/macos/ChatRoomComputerHelper.app/Contents/MacOS/chatroom-computer-helper +0 -0
  25. package/dist/native/windows/chatroom-computer-helper.exe +0 -0
  26. package/dist/operations/operation-log.js +16 -4
  27. package/dist/plugins/agent/async-queue.d.ts +10 -0
  28. package/dist/plugins/agent/async-queue.js +49 -0
  29. package/dist/plugins/agent/mcp.d.ts +3 -0
  30. package/dist/plugins/agent/mcp.js +502 -0
  31. package/dist/plugins/agent/plugin.d.ts +4 -0
  32. package/dist/plugins/agent/plugin.js +35 -0
  33. package/dist/plugins/agent/provider.d.ts +132 -0
  34. package/dist/plugins/agent/providers/codex/mapping.d.ts +56 -0
  35. package/dist/plugins/agent/providers/codex/mapping.js +427 -0
  36. package/dist/plugins/agent/providers/codex/provider.d.ts +84 -0
  37. package/dist/plugins/agent/providers/codex/provider.js +828 -0
  38. package/dist/plugins/agent/providers/codex/rpc.d.ts +40 -0
  39. package/dist/plugins/agent/providers/codex/rpc.js +227 -0
  40. package/dist/plugins/agent/providers/common.d.ts +11 -0
  41. package/dist/plugins/agent/providers/common.js +75 -0
  42. package/dist/plugins/agent/providers/index.d.ts +3 -0
  43. package/dist/plugins/agent/providers/index.js +4 -0
  44. package/dist/plugins/agent/repository.d.ts +21 -0
  45. package/dist/plugins/agent/repository.js +226 -0
  46. package/dist/plugins/agent/runtime-config.d.ts +5 -0
  47. package/dist/plugins/agent/runtime-config.js +60 -0
  48. package/dist/plugins/agent/runtime-files.d.ts +8 -0
  49. package/dist/plugins/agent/runtime-files.js +170 -0
  50. package/dist/plugins/agent/runtime-state.d.ts +17 -0
  51. package/dist/plugins/agent/runtime-state.js +133 -0
  52. package/dist/plugins/agent/runtime.d.ts +60 -0
  53. package/dist/plugins/agent/runtime.js +928 -0
  54. package/dist/plugins/agent/store.d.ts +17 -0
  55. package/dist/plugins/agent/store.js +1 -0
  56. package/dist/plugins/agent/types.d.ts +320 -0
  57. package/dist/plugins/agent/types.js +13 -0
  58. package/dist/plugins/cloud/plugin.d.ts +1 -1
  59. package/dist/plugins/cloud/plugin.js +3 -3
  60. package/dist/plugins/cloud/tunnel-client.js +6 -7
  61. package/dist/plugins/computer/computer-schemas.d.ts +7 -7
  62. package/dist/plugins/computer/computer-service.d.ts +3 -0
  63. package/dist/plugins/computer/computer-service.js +33 -1
  64. package/dist/plugins/computer/plugin.d.ts +1 -1
  65. package/dist/plugins/computer/plugin.js +1 -1
  66. package/dist/plugins/git/git-service.d.ts +3 -2
  67. package/dist/plugins/git/git-service.js +37 -1
  68. package/dist/plugins/git/plugin.d.ts +0 -2
  69. package/dist/plugins/git/plugin.js +3 -3
  70. package/dist/plugins/process/plugin.d.ts +1 -1
  71. package/dist/plugins/process/plugin.js +3 -3
  72. package/dist/plugins/process/process-supervisor.d.ts +1 -0
  73. package/dist/plugins/process/process-supervisor.js +15 -4
  74. package/dist/plugins/types.d.ts +1 -11
  75. package/dist/plugins/types.js +1 -17
  76. package/dist/plugins/web/api-types.d.ts +20 -5
  77. package/dist/plugins/web/http/agent-api-router.d.ts +3 -0
  78. package/dist/plugins/web/http/agent-api-router.js +254 -0
  79. package/dist/plugins/web/http/api-router.js +9 -0
  80. package/dist/plugins/web/http/computer-api-router.js +21 -6
  81. package/dist/plugins/web/http/process-api-router.js +3 -0
  82. package/dist/plugins/web/http/workspace-api-router.js +79 -6
  83. package/dist/plugins/web/plugin.d.ts +1 -1
  84. package/dist/plugins/web/plugin.js +5 -4
  85. package/dist/plugins/web/runtime.d.ts +6 -3
  86. package/dist/plugins/web/runtime.js +6 -1
  87. package/dist/plugins/workspace/mcp.js +16 -0
  88. package/dist/plugins/workspace/metadata.d.ts +1 -1
  89. package/dist/plugins/workspace/plugin.d.ts +1 -1
  90. package/dist/plugins/workspace/plugin.js +5 -2
  91. package/dist/plugins/workspace/types.d.ts +1 -18
  92. package/dist/plugins/workspace/workspace-fs.d.ts +9 -3
  93. package/dist/plugins/workspace/workspace-fs.js +78 -125
  94. package/dist/plugins/workspace/workspace-root-policy.d.ts +9 -0
  95. package/dist/plugins/workspace/workspace-root-policy.js +56 -0
  96. package/dist/plugins/workspace/workspace-service.d.ts +11 -6
  97. package/dist/plugins/workspace/workspace-service.js +39 -49
  98. package/dist/web/assets/AgentView-DKuspiki.js +4 -0
  99. package/dist/web/assets/AgentView-DYJeMJLX.css +1 -0
  100. package/dist/web/assets/{CloudView-CHjVbp-5.css → CloudView-DVVvwuWW.css} +1 -1
  101. package/dist/web/assets/CloudView-PbREbJgz.js +1 -0
  102. package/dist/web/assets/CodeViewer.vue_vue_type_script_setup_true_lang-CiFNEpWo.js +3 -0
  103. package/dist/web/assets/ComputerView-BM0u3wSF.css +1 -0
  104. package/dist/web/assets/ComputerView-BRb2sE0Z.js +1 -0
  105. package/dist/web/assets/McpToolsView-B8NSFdf4.js +1 -0
  106. package/dist/web/assets/McpToolsView-C22ZbSuV.css +1 -0
  107. package/dist/web/assets/OperationsView-BjTY2lIh.css +1 -0
  108. package/dist/web/assets/OperationsView-Cavi-6SZ.js +4 -0
  109. package/dist/web/assets/ProcessesView-Ce6iVwjA.css +1 -0
  110. package/dist/web/assets/ProcessesView-UO48Nh2q.js +4 -0
  111. package/dist/web/assets/StateChip.vue_vue_type_script_setup_true_lang-Bvc9wRyA.js +1 -0
  112. package/dist/web/assets/SystemLogsView-BXmOrmu5.js +1 -0
  113. package/dist/web/assets/SystemLogsView-CofP4Jvi.css +1 -0
  114. package/dist/web/assets/VSelect-BPRXx8KM.js +1 -0
  115. package/dist/web/assets/VSpacer-Cl-QiwaM.js +1 -0
  116. package/dist/web/assets/VSwitch-C0XNj1lR.js +1 -0
  117. package/dist/web/assets/{VTabs-qBcuuXh3.js → VTabs-CHj39Ket.js} +1 -1
  118. package/dist/web/assets/VTextarea-BIcUWOU6.js +16 -0
  119. package/dist/web/assets/VTextarea-DG1zE1as.css +1 -0
  120. package/dist/web/assets/WorkspacesView-DPCt6kYy.css +1 -0
  121. package/dist/web/assets/WorkspacesView-rY6RXeiR.js +2 -0
  122. package/dist/web/assets/entity-refresh-queue-wQii8Dl5.js +1 -0
  123. package/dist/web/assets/{index-CkjqXRSj.css → index-BPpl3-sP.css} +1 -1
  124. package/dist/web/assets/index-Dt-pWiW1.js +19 -0
  125. package/dist/web/assets/{syntax-highlight-B5ArnyrC.js → syntax-highlight-C_fuMcwC.js} +1 -1
  126. package/dist/web/assets/useMasterDetailFocus-D0j-KcXv.js +1 -0
  127. package/dist/web/assets/useOperationLabels-DR8r6Vrl.js +1 -0
  128. package/dist/web/index.html +2 -2
  129. package/package.json +4 -2
  130. package/dist/plugins/git/types.d.ts +0 -32
  131. package/dist/web/assets/CloudView-CvX0dkgu.js +0 -1
  132. package/dist/web/assets/CodeViewer.vue_vue_type_script_setup_true_lang-B5TxGkUW.js +0 -3
  133. package/dist/web/assets/ComputerView-91Z9Cefw.css +0 -1
  134. package/dist/web/assets/ComputerView-OOyEqWml.js +0 -1
  135. package/dist/web/assets/McpToolsView-BTnolyS6.css +0 -1
  136. package/dist/web/assets/McpToolsView-DjXWTKrZ.js +0 -1
  137. package/dist/web/assets/OperationsView-DqTY51Cr.js +0 -4
  138. package/dist/web/assets/ProcessesView-C13BykIa.js +0 -4
  139. package/dist/web/assets/StateChip.vue_vue_type_script_setup_true_lang-DyOhJmR6.js +0 -1
  140. package/dist/web/assets/SystemLogsView-Ci0u4BTb.js +0 -1
  141. package/dist/web/assets/VSelect-DrRpKyYI.js +0 -1
  142. package/dist/web/assets/VSpacer-C3wAY3F0.js +0 -1
  143. package/dist/web/assets/VSwitch-CxusR4iO.js +0 -1
  144. package/dist/web/assets/WorkspacesView-BzQ0aH74.css +0 -1
  145. package/dist/web/assets/WorkspacesView-CijIvfsp.js +0 -2
  146. package/dist/web/assets/index-BegKQ3Yd.js +0 -19
  147. package/dist/web/assets/useOperationLabels-BDjzGDkT.js +0 -1
  148. /package/dist/{plugins/process → core/runtime}/head-tail-buffer.d.ts +0 -0
  149. /package/dist/{plugins/process → core/runtime}/head-tail-buffer.js +0 -0
  150. /package/dist/plugins/{git/types.js → agent/provider.js} +0 -0
@@ -0,0 +1 @@
1
+ import{A as be,a5 as te,B as z,z as C,y as w,C as ye,aK as ae,b9 as he,aa as ge,w as F,ba as _e,D as we,aj as ke,bb as pe,bc as Ve,E as Ce,bd as Se,aQ as $e,be as Te,bf as xe,bg as Pe,a$ as Ie,bh as De,ae as oe,H as qe,av as Be,a0 as Ue,ad as G,I as Ae,J as Oe,az as Me,bi as Ne,K as Re,bj as ze,aG as Ee,bk as Fe,bl as Ke,bm as Y,ap as Le,e as i,bn as We,g as s,_ as je,U as Ge,R as J,O as E,af as le,at as Ye,Q as Je,a8 as Q,S as K,d as Qe,a as He,o as I,n as q,b as y,h as t,c as Xe,q as Ze,r as T,t as u,p as H,a4 as et,i as A,j as L,l as tt,m as at,aY as X,V as Z,f as ot,k as lt,s as nt,v as it,a3 as st}from"./index-Dt-pWiW1.js";import{V as ee}from"./VSwitch-C0XNj1lR.js";import{V as rt}from"./VSpacer-Cl-QiwaM.js";function ut(){const e=w(null),a=w(""),r=w(!1),l=w(""),k=w(!1),h=w(!1),b=w(null),d=w(null),m=be(),S=w(!1),f=C(()=>h.value||k.value||d.value!==null),g=C(()=>{const o=new Set(e.value?.entitlements.map(n=>n.service)??[]);return o.has("remote_mcp")&&o.has("remote_web")}),x=C(()=>{const o=(e.value?.entitlements??[]).map(n=>n.validUntil).filter(n=>!!n).map(n=>Date.parse(n)).filter(Number.isFinite);return o.length?Math.min(...o):null});te(()=>{B()});function p(o){a.value=ye(o),r.value=!0}async function B(){if(f.value)return;const o=m.begin();try{const n=await z("/cloud/status",{signal:o.signal});m.isCurrent(o)&&(e.value=n)}catch(n){m.isCurrent(o)&&p(n)}}async function O(){if(f.value)return;const o=m.begin();h.value=!0;try{const n=await z("/cloud/sync",{method:"POST",signal:o.signal});m.isCurrent(o)&&(e.value=n)}catch(n){m.isCurrent(o)&&p(n)}finally{h.value=!1}}async function P(){if(S.value)return;S.value=!0;const o=window.open("","_blank");o&&(o.opener=null);try{const n=await z("/cloud/management",{method:"POST"});o?o.location.href=n.url:window.location.assign(n.url)}catch(n){o?.close(),p(n)}finally{S.value=!1}}function D(o,n){if(!f.value){if(n){U(o,!0);return}b.value=o}}async function M(){const o=b.value;o&&(await U(o,!1),d.value===null&&(b.value=null))}async function U(o,n){if(!e.value||f.value)return;const $=m.begin();d.value=o;try{const v=await z(`/cloud/services/${o}`,{method:"POST",body:JSON.stringify({enabled:n}),signal:$.signal});m.isCurrent($)&&(e.value=v)}catch(v){m.isCurrent($)&&p(v)}finally{d.value===o&&(d.value=null)}}async function N(){if(!l.value.trim()||f.value)return;const o=m.begin(),n=l.value.trim();k.value=!0;try{const $=await z("/cloud/restore",{method:"POST",body:JSON.stringify({recoveryKey:n}),timeoutMs:12e4,signal:o.signal});if(!m.isCurrent(o))return;e.value=$.status,l.value=""}catch($){m.isCurrent(o)&&p($)}finally{k.value=!1}}return{status:e,error:a,errorVisible:r,recoveryKey:l,restoring:k,refreshing:h,managing:S,busy:f,confirmationService:b,serviceUpdating:d,subscribed:g,subscriptionExpiry:x,load:B,refresh:O,manage:P,requestServiceChange:D,confirmDisableService:M,restore:N}}const ct=Symbol.for("vuetify:v-snackbar-queue");function dt(e,a){const r=ae(ct,null);if(!r)return null;const l=he();r.register(l),ge(()=>r.unregister(l)),F(e,d=>!d&&r.unregister(l),{flush:"sync"});const{resizeRef:k,contentRect:h}=_e();F(a,d=>{k.value=d??null}),F(h,d=>{d?.width&&r.setSize(l,d.height,d.width)});const b=C(()=>r.getOffset(l));return{id:l,offset:b}}function vt(e){const a=w(e());let r=-1;function l(){clearInterval(r)}function k(){l(),oe(()=>a.value=e())}function h(b){const d=b?getComputedStyle(b):{transitionDuration:.2},m=parseFloat(d.transitionDuration)*1e3||200;if(l(),a.value<=0)return;const S=performance.now();r=window.setInterval(()=>{const f=performance.now()-S+m;a.value=Math.max(e()-f,0),a.value<=0&&l()},m)}return Ue(l),{clear:l,time:a,start:h,reset:k}}const mt=Ae({collapsed:Object,loading:Boolean,prependAvatar:String,prependIcon:Oe,queueGap:Number,queueIndex:Number,title:String,text:String,reverseTimer:Boolean,timer:{type:[Boolean,String],default:!1},timerColor:String,timeout:{type:[Number,String],default:5e3},vertical:Boolean,...Ke({location:"bottom center"}),...Fe(),...Ee(),...ze(),...Re(),...Me(Ne({closeOnBack:!1,locationStrategy:null,transition:"v-snackbar-transition"}),["persistent","noClickAnimation","offset","retainFocus","captureFocus","disableInitialFocus","location","scrim","scrollStrategy","stickToTarget","viewportMargin"])},"VSnackbar"),ft=we()({name:"VSnackbar",props:mt(),emits:{"update:modelValue":e=>!0},setup(e,{slots:a}){const r=ke(e,"modelValue"),{positionClasses:l}=pe(e),{scopeId:k}=Ve(),{themeClasses:h}=Ce(e),{colorClasses:b,colorStyles:d,variantClasses:m}=Se(e),{roundedClasses:S,roundedStyles:f}=$e(e),g=vt(()=>Number(e.timeout)),x=G(),p=dt(r,()=>x.value?.contentEl);let B;const O=G(),P=w(!1),D=w(!1),M=w(0),U=G(),N=ae(Te,void 0);xe(()=>!!N,()=>{const c=Pe();Ie(()=>{U.value=c.mainStyles.value})}),F(r,n),F(()=>e.timeout,n),te(()=>{r.value&&n()});let o=-1;function n(){g.clear(),window.clearTimeout(o);const c=Number(e.timeout);if(!r.value||c===-1)return;g.reset();const V=De(O.value);oe(()=>g.start(V)),o=window.setTimeout(()=>{r.value=!1},c)}function $(){g.reset(),window.clearTimeout(o)}function v(){P.value=!0,$()}function _(){P.value=!1,D.value||n()}function ne(){D.value=!0,$()}function ie(c){x.value?.contentEl?.contains(c.relatedTarget)||(D.value=!1,P.value||n())}function se(c){M.value=c.touches[0].clientY}function re(c){Math.abs(M.value-c.changedTouches[0].clientY)>50&&(r.value=!1)}function ue(){P.value&&_(),D.value=!1}const ce=C(()=>e.location.split(" ").reduce((c,V)=>(c[`v-snackbar--${V}`]=!0,c),{})),de=C(()=>{const[c,V]=e.location.split(" ");return c==="bottom"||["left","right"].includes(c)&&V==="end"?-1:1}),ve=C(()=>e.collapsed?{"--v-snackbar-collapsed-height":K(e.collapsed.height),"--v-snackbar-collapsed-width":K(e.collapsed.width)}:null),me=C(()=>{if(p)return p.offset.value===null?B:B=K(p.offset.value)}),fe=C(()=>{if(typeof e.transition!="string"||!e.transition.endsWith("-auto"))return e.transition;const c=e.transition.replace("-auto",""),[V,R]=e.location.split(" "),W=["start","end","left","right"].includes(R)||["left","right"].includes(V)?"x":"y",j=["end","right"].includes(R)||!["start","left"].includes(R)&&["bottom","right"].includes(V)?"-reverse":"";return`${c}-${W}${j}-transition`});return qe(()=>{const c=Y.filterProps({...e,location:e.location,locationStrategy:e.locationStrategy??Le}),V=!!(e.prependAvatar||e.prependIcon),R=!!(V||e.loading||a.prepend),W=!!(a.default||a.text||a.title||e.text||e.title);return i(Y,Q({ref:x,class:["v-snackbar",{"v-snackbar--active":r.value,"v-snackbar--collapsed":!!e.collapsed,"v-snackbar--timer":!!e.timer,"v-snackbar--vertical":e.vertical},ce.value,l.value,e.class],style:[U.value,{"--v-snackbar-offset":me.value,"--v-snackbar-gap":K(e.queueGap),"--v-snackbar-index":e.queueIndex,"--v-snackbar-direction":de.value},ve.value,e.style]},c,{transition:fe.value,modelValue:r.value,"onUpdate:modelValue":j=>r.value=j,contentProps:Q({class:["v-snackbar__wrapper",h.value,b.value,S.value,m.value],style:[d.value,f.value],onPointerenter:v,onPointerleave:_,onFocusin:ne,onFocusout:ie},c.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",onTouchstartPassive:se,onTouchend:re,onAfterLeave:ue},k),{default:()=>[We(!1,"v-snackbar"),a.header&&s("div",{class:"v-snackbar__header"},[a.header?.()]),e.timer&&Number(e.timeout)>0&&!P.value&&s("div",{key:"timer",class:Ge(["v-snackbar__timer",`v-snackbar__timer--${e.timer==="bottom"?"bottom":"top"}`])},[i(je,{ref:O,color:e.timerColor??"info",max:e.timeout,modelValue:e.reverseTimer?Number(e.timeout)-g.time.value:g.time.value},null)]),R&&i(J,{key:"prepend-defaults",disabled:!V&&!e.loading,defaults:{VAvatar:{image:e.prependAvatar},VIcon:{icon:e.prependIcon},VProgressCircular:{indeterminate:!0,size:24,width:3}}},{default:()=>[s("div",{class:"v-snackbar__prepend"},[a.prepend?a.prepend():s(E,null,[e.loading&&i(le,null,null),!e.loading&&e.prependAvatar&&i(Ye,null,null),!e.loading&&e.prependIcon&&i(Je,null,null)])])]}),W&&s("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[a.title?.()??(e.title?s("div",{class:"v-snackbar__title",key:"title"},[e.title]):""),a.text?.()??e.text,a.default?.()]),a.actions&&i(J,{defaults:{VBtn:{variant:"text",ripple:!1,slim:!0}}},{default:()=>[s("div",{class:"v-snackbar__actions"},[a.actions({isActive:r})])]})],activator:a.activator})}),Be({},x)}}),bt={class:"cloud-view"},yt={class:"cloud-row"},ht={class:"cloud-row-main"},gt={class:"cloud-row-title"},_t={class:"cloud-row-value"},wt={class:"cloud-row-actions"},kt={class:"cloud-row"},pt={class:"cloud-row-main"},Vt={class:"cloud-row-title"},Ct={key:0,class:"cloud-row-value mono"},St={key:1,class:"cloud-row-value"},$t={class:"cloud-row"},Tt={class:"cloud-row-main"},xt={class:"cloud-row-title"},Pt={key:0,class:"cloud-row-value mono"},It={key:1,class:"cloud-row-value"},Dt={class:"cloud-row"},qt={class:"cloud-row-main"},Bt={class:"cloud-row-title"},Ut={class:"cloud-row-value"},At={class:"cloud-restore-row"},Ot={key:3,class:"cloud-loading"},Mt={class:"cloud-row cloud-installation-row"},Nt={class:"cloud-row-main"},Rt={class:"cloud-row-title"},zt={class:"cloud-row-value mono installation-id"},Lt=Qe({__name:"CloudView",setup(e){const a=He(),r=ut(),{status:l,error:k,errorVisible:h,recoveryKey:b,restoring:d,refreshing:m,managing:S,busy:f,confirmationService:g,serviceUpdating:x,subscribed:p,subscriptionExpiry:B,refresh:O,manage:P,requestServiceChange:D,confirmDisableService:M,restore:U}=r,N=C(()=>p.value?B.value===null?a.t("$vuetify.chatroom.cloud.active"):`${a.t("$vuetify.chatroom.cloud.expires")} ${new Intl.DateTimeFormat(st(a.current.value),{dateStyle:"medium",timeStyle:"short"}).format(new Date(B.value))}`:a.t("$vuetify.chatroom.cloud.inactiveDescription")),o=C(()=>g.value==="remote_web"?a.t("$vuetify.chatroom.cloud.disableWebTitle"):a.t("$vuetify.chatroom.cloud.disableMcpTitle")),n=C(()=>g.value==="remote_web"?a.t("$vuetify.chatroom.cloud.disableWebDescription"):a.t("$vuetify.chatroom.cloud.disableMcpDescription"));return($,v)=>(I(),q(E,null,[s("div",bt,[i(Z,{class:"panel-card cloud-panel"},{default:y(()=>[t(l)?.lastError?(I(),Xe(Ze,{key:0,type:"error",variant:"tonal",density:"compact",class:"ma-3"},{default:y(()=>[T(u(t(l).lastError),1)]),_:1})):H("",!0),t(l)&&t(p)?(I(),q(E,{key:1},[s("div",yt,[s("div",ht,[s("div",gt,u(t(a).t("$vuetify.chatroom.cloud.subscription")),1),s("div",_t,u(N.value),1)]),s("div",wt,[i(et,{color:"success",size:"small",variant:"tonal"},{default:y(()=>[T(u(t(a).t("$vuetify.chatroom.cloud.active")),1)]),_:1}),i(A,{icon:"$mdiRefresh",size:"small",variant:"text",loading:t(m),disabled:t(f),"aria-label":t(a).t("$vuetify.chatroom.cloud.refresh"),onClick:t(O)},null,8,["loading","disabled","aria-label","onClick"]),i(A,{variant:"text",size:"small",disabled:!t(l).installationId||t(f),loading:t(S),onClick:t(P)},{default:y(()=>[T(u(t(a).t("$vuetify.chatroom.cloud.manage")),1)]),_:1},8,["disabled","loading","onClick"])])]),i(L),s("div",kt,[s("div",pt,[s("div",Vt,u(t(a).t("$vuetify.chatroom.cloud.remoteMcp")),1),t(l).mcpUrl?(I(),q("div",Ct,u(t(l).mcpUrl),1)):(I(),q("div",St,u(t(a).t("$vuetify.chatroom.cloud.remoteMcpDescription")),1))]),i(ee,{"model-value":t(l).desiredServices.remote_mcp,loading:t(x)==="remote_mcp",disabled:t(f),"aria-label":t(a).t("$vuetify.chatroom.cloud.remoteMcp"),"onUpdate:modelValue":v[0]||(v[0]=_=>t(D)("remote_mcp",!!_))},null,8,["model-value","loading","disabled","aria-label"])]),i(L),s("div",$t,[s("div",Tt,[s("div",xt,u(t(a).t("$vuetify.chatroom.cloud.remoteWeb")),1),t(l).webUrl?(I(),q("div",Pt,u(t(l).webUrl),1)):(I(),q("div",It,u(t(a).t("$vuetify.chatroom.cloud.remoteWebDescription")),1))]),i(ee,{"model-value":t(l).desiredServices.remote_web,loading:t(x)==="remote_web",disabled:t(f),"aria-label":t(a).t("$vuetify.chatroom.cloud.remoteWeb"),"onUpdate:modelValue":v[1]||(v[1]=_=>t(D)("remote_web",!!_))},null,8,["model-value","loading","disabled","aria-label"])])],64)):t(l)?(I(),q(E,{key:2},[s("div",Dt,[s("div",qt,[s("div",Bt,u(t(a).t("$vuetify.chatroom.cloud.subscription")),1),s("div",Ut,u(N.value),1)]),i(A,{color:"primary",variant:"flat",size:"small",disabled:!t(l).installationId||t(f),loading:t(S),onClick:t(P)},{default:y(()=>[T(u(t(a).t("$vuetify.chatroom.cloud.purchase")),1)]),_:1},8,["disabled","loading","onClick"])]),i(L),s("div",At,[i(tt,{modelValue:t(b),"onUpdate:modelValue":v[2]||(v[2]=_=>X(b)?b.value=_:null),placeholder:t(a).t("$vuetify.chatroom.cloud.recoveryKey"),"aria-label":t(a).t("$vuetify.chatroom.cloud.recoveryKey"),type:"password",density:"compact",variant:"outlined","hide-details":"",autocomplete:"off",onKeyup:at(t(U),["enter"])},null,8,["modelValue","placeholder","aria-label","onKeyup"]),i(A,{loading:t(d),disabled:!t(l).installationId||!t(b).trim()||t(f),variant:"tonal",size:"small",onClick:t(U)},{default:y(()=>[T(u(t(a).t("$vuetify.chatroom.cloud.restoreAction")),1)]),_:1},8,["loading","disabled","onClick"])])],64)):(I(),q("div",Ot,[i(le,{indeterminate:"",size:"20",width:"2"})])),t(l)?(I(),q(E,{key:4},[i(L),s("div",Mt,[s("div",Nt,[s("div",Rt,u(t(a).t("$vuetify.chatroom.cloud.installationId")),1),s("div",zt,u(t(l).installationId||"—"),1)])])],64)):H("",!0)]),_:1})]),i(it,{"model-value":t(g)!==null,width:"auto","max-width":"90vw","onUpdate:modelValue":v[4]||(v[4]=_=>!_&&(g.value=null))},{default:y(()=>[i(Z,null,{default:y(()=>[i(ot,null,{default:y(()=>[T(u(o.value),1)]),_:1}),i(lt,null,{default:y(()=>[T(u(n.value),1)]),_:1}),i(nt,null,{default:y(()=>[i(rt),i(A,{variant:"text",disabled:t(f),onClick:v[3]||(v[3]=_=>g.value=null)},{default:y(()=>[T(u(t(a).t("$vuetify.chatroom.common.cancel")),1)]),_:1},8,["disabled"]),i(A,{color:"error",variant:"flat",loading:t(x)===t(g),onClick:t(M)},{default:y(()=>[T(u(t(a).t("$vuetify.chatroom.cloud.disableConfirm")),1)]),_:1},8,["loading","onClick"])]),_:1})]),_:1})]),_:1},8,["model-value"]),i(ft,{modelValue:t(h),"onUpdate:modelValue":v[6]||(v[6]=_=>X(h)?h.value=_:null),color:"error",location:"top",timeout:6e3},{actions:y(()=>[i(A,{variant:"text",onClick:v[5]||(v[5]=_=>h.value=!1)},{default:y(()=>[T(u(t(a).t("$vuetify.chatroom.common.close")),1)]),_:1})]),default:y(()=>[T(u(t(k))+" ",1)]),_:1},8,["modelValue"])],64))}});export{Lt as default};
@@ -0,0 +1,3 @@
1
+ import{D,E as H,F as O,c0 as U,c1 as z,bb as F,aQ as j,H as M,I as N,K as A,bz as G,aG as I,bk as W,bl as Q,aF as q,M as J,N as K,c2 as X,e as i,T as Y,U as _,W as Z,aP as ee,d as ae,a as oe,w as S,c3 as te,aa as le,o as y,c as se,b as ne,n as b,O as ie,g as C,l as re,h as m,i as w,j as ce,p as V,t as L,y as f,z as P}from"./index-Dt-pWiW1.js";import{V as ue}from"./VSpacer-Cl-QiwaM.js";const de=N({color:String,...X(),...K(),...J(),...q(),...Q(),...W(),...I(),...G(),...A()},"VSheet"),me=D()({name:"VSheet",props:de(),setup(e,{slots:a}){const{themeClasses:v}=H(e),{backgroundColorClasses:g,backgroundColorStyles:n}=O(()=>e.color),{borderClasses:r}=U(e),{dimensionStyles:t}=Z(e),{elevationClasses:c}=ee(e),{locationStyles:s}=z(e),{positionClasses:u}=F(e),{roundedClasses:d,roundedStyles:h}=j(e);return M(()=>i(e.tag,{class:_(["v-sheet",v.value,g.value,r.value,c.value,u.value,d.value,e.class]),style:Y([n.value,t.value,s.value,h.value,e.style])},a)),{}}}),ve={class:"code-toolbar"},he={class:"code-actions"},ye={key:1,class:"code-copy-error",role:"alert"},fe=["innerHTML"],ge={key:1},pe=2e5,be=120,we=ae({__name:"CodeViewer",props:{value:{},text:{},filename:{default:"chatroom-output.txt"},language:{},toolbar:{type:Boolean,default:!0},highlight:{type:Boolean,default:!0}},setup(e){const a=e,v=f(""),g=f(""),n=f(!0),r=f(null),t=oe(),c=f("");let s=null,u=0;const d=P(()=>a.text??JSON.stringify(a.value??null,null,2)),h=P(()=>{const l=g.value.toLocaleLowerCase();return l?d.value.split(`
2
+ `).filter(o=>o.toLocaleLowerCase().includes(l)).join(`
3
+ `):d.value});S(v,l=>{s&&clearTimeout(s),s=setTimeout(()=>{g.value=l,s=null},be)}),S([h,()=>a.filename,()=>a.language,()=>a.value!==void 0,()=>a.highlight],async(l,o,p)=>{const x=++u;p(()=>{u+=1}),r.value=null;const k=h.value;if(!a.highlight||!k||k.length>pe)return;const B={filename:a.filename,language:a.language??(a.value!==void 0?"json":null)};try{const{highlightSource:E}=await te(async()=>{const{highlightSource:R}=await import("./syntax-highlight-C_fuMcwC.js");return{highlightSource:R}},[]);if(x!==u)return;r.value=E(k,B)}catch{}},{immediate:!0}),le(()=>{s&&clearTimeout(s),u+=1});async function T(){c.value="";try{await navigator.clipboard.writeText(d.value)}catch{c.value=t.t("$vuetify.chatroom.code.copyFailed")}}function $(){const l=URL.createObjectURL(new Blob([d.value],{type:"text/plain;charset=utf-8"})),o=document.createElement("a");o.href=l,o.download=a.filename,o.click(),URL.revokeObjectURL(l)}return(l,o)=>(y(),se(me,{border:e.toolbar,rounded:e.toolbar?"lg":0,"overflow-hidden":"",class:_(["code-viewer",{"code-viewer-plain":!e.toolbar}])},{default:ne(()=>[e.toolbar?(y(),b(ie,{key:0},[C("div",ve,[i(re,{modelValue:v.value,"onUpdate:modelValue":o[0]||(o[0]=p=>v.value=p),placeholder:m(t).t("$vuetify.chatroom.code.search"),"aria-label":m(t).t("$vuetify.chatroom.code.search"),"prepend-inner-icon":"$mdiMagnify",density:"compact","hide-details":"",class:"code-search"},null,8,["modelValue","placeholder","aria-label"]),i(ue),C("div",he,[i(w,{icon:"$mdiContentCopy",size:"small",variant:"text","aria-label":m(t).t("$vuetify.chatroom.code.copy"),onClick:T},null,8,["aria-label"]),i(w,{icon:n.value?"$mdiWrap":"$mdiFormatAlignLeft",size:"small",variant:"text","aria-label":m(t).t(n.value?"$vuetify.chatroom.code.disableWrap":"$vuetify.chatroom.code.enableWrap"),onClick:o[1]||(o[1]=p=>n.value=!n.value)},null,8,["icon","aria-label"]),i(w,{icon:"$mdiDownloadOutline",size:"small",variant:"text","aria-label":m(t).t("$vuetify.chatroom.code.download"),onClick:$},null,8,["aria-label"])])]),i(ce)],64)):V("",!0),c.value?(y(),b("div",ye,L(c.value),1)):V("",!0),C("pre",{class:_(["code-block",{wrap:n.value}])},[r.value?(y(),b("code",{key:0,class:"hljs",innerHTML:r.value},null,8,fe)):(y(),b("code",ge,L(h.value||m(t).t("$vuetify.chatroom.code.noOutput")),1))],2)]),_:1},8,["border","rounded","class"]))}});export{me as V,we as _};
@@ -0,0 +1 @@
1
+ .computer-operation-scroll[data-v-e1119403]{overflow-y:auto;overscroll-behavior:contain}.computer-operation-list[data-v-e1119403]{padding-block:4px}.computer-operation-list[data-v-e1119403] .v-list-item{min-height:52px;padding-inline:18px}.computer-operation-list[data-v-e1119403] .v-list-item-title,.computer-operation-list[data-v-e1119403] .v-list-item-subtitle{font-size:12px}.computer-preview-heading[data-v-f2938466]{min-width:0}.computer-preview-time[data-v-f2938466]{margin-top:2px;color:rgb(var(--v-theme-on-surface),.52);font-size:11px}.computer-preview-content[data-v-f2938466]{padding:14px}.computer-screen-shell[data-v-f2938466]{overflow:hidden;border:1px solid rgba(var(--v-border-color),var(--v-border-opacity));border-radius:10px;background:rgb(var(--v-theme-surface))}.computer-screen-shell img[data-v-f2938466]{display:block;width:100%;height:auto;object-fit:contain}.computer-screen-empty[data-v-f2938466]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;border:1px dashed rgba(var(--v-border-color),var(--v-border-opacity));border-radius:10px;background:rgb(var(--v-theme-surface));color:rgb(var(--v-theme-on-surface),.68);text-align:center}.computer-preview-meta[data-v-f2938466]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:10px;margin-top:10px}.computer-preview-meta>div[data-v-f2938466]{display:flex;min-width:0;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;background:rgb(var(--v-theme-on-surface),.04)}.computer-preview-meta span[data-v-f2938466]{color:rgb(var(--v-theme-on-surface),.7);font-size:11px}.computer-preview-meta strong[data-v-f2938466]{color:rgb(var(--v-theme-on-surface),.92);font-size:12px;font-weight:650}@media(max-width:900px){.computer-preview-meta[data-v-f2938466]{grid-template-columns:1fr}}.computer-status-list[data-v-5071a817]{display:flex;flex-direction:column;gap:2px;padding:12px 18px}.computer-status-row[data-v-5071a817]{display:flex;min-height:36px;align-items:center;justify-content:space-between;gap:16px}.computer-status-label[data-v-5071a817]{color:rgb(var(--v-theme-on-surface),.76);font-size:13px;font-weight:500}.computer-status-value[data-v-5071a817]{color:rgb(var(--v-theme-on-surface),.94);font-size:13px;font-weight:600}.computer-permission-value[data-v-5071a817]{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:10px}.computer-permission-state[data-v-5071a817]{font-size:13px;font-weight:600;white-space:nowrap}.computer-permission-state.is-granted[data-v-5071a817]{color:rgb(var(--v-theme-success))}.computer-permission-state.is-denied[data-v-5071a817]{color:rgb(var(--v-theme-warning))}.computer-permission-state.is-muted[data-v-5071a817]{color:rgb(var(--v-theme-on-surface),.72)}.computer-permission-btn[data-v-5071a817]{padding-inline:10px;font-size:12px;font-weight:650}.computer-permission-alert[data-v-5071a817]{margin-top:8px}.computer-settings-list[data-v-5071a817],.computer-display-list[data-v-5071a817]{padding-block:4px}.computer-settings-list[data-v-5071a817] .v-list-item,.computer-display-list[data-v-5071a817] .v-list-item{min-height:48px;padding-inline:18px}.computer-settings-list[data-v-5071a817] .v-list-item-title,.computer-display-list[data-v-5071a817] .v-list-item-title,.computer-display-list[data-v-5071a817] .v-list-item-subtitle{font-size:12px}@media(max-width:900px){.computer-status-row[data-v-5071a817]{min-height:40px}}.computer-view[data-v-2084f1f6]{display:flex;flex-direction:column;gap:14px;font-size:14px}
@@ -0,0 +1 @@
1
+ import{u as Ce}from"./useOperationLabels-DR8r6Vrl.js";import{d as Q,a as re,o as p,c as w,b as d,g as l,t as c,h as s,e as m,i as G,j,Y as se,n as x,O as ae,X as de,$ as Y,a1 as _e,r as R,a2 as Se,a3 as pe,k as ie,V as H,w as ve,p as S,q as J,_ as Re,Q as Be,z as oe,y as k,U as ce,A as F,a0 as qe,B as A,C as xe,a6 as fe}from"./index-Dt-pWiW1.js";import{d as ye}from"./utils-rtPwWNel.js";import{_ as Pe}from"./StateChip.vue_vue_type_script_setup_true_lang-Bvc9wRyA.js";import{_ as X}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{V as me}from"./VSwitch-C0XNj1lR.js";const Ie={class:"panel-header compact-header"},Ae={class:"panel-title"},Ve={class:"computer-operation-scroll"},Le=Q({__name:"ComputerOperations",props:{operations:{},busy:{type:Boolean}},emits:["refresh"],setup(e,{emit:C}){const n=C,t=re(),{sourceLabel:v}=Ce();function f(a){if(a.action==="snapshot")return t.t("$vuetify.chatroom.computer.log.snapshot");if(a.action==="settings.set")return t.t("$vuetify.chatroom.computer.log.settings");if(a.action!=="action")return a.action;const o=b(a.input),i=Array.isArray(o.actions)?o.actions:[];return i.length?i.map(g).join(" · "):t.t("$vuetify.chatroom.computer.log.action")}function g(a){const o=b(a),i=String(o.type??"action"),h=typeof o.elementId=="number"?` #${o.elementId}`:"";switch(i){case"activate_app":return t.t("$vuetify.chatroom.computer.log.activateApp",String(o.app??""));case"activate_window":return t.t("$vuetify.chatroom.computer.log.activateWindow",h.trim());case"click":return t.t("$vuetify.chatroom.computer.log.click",h.trim()||y(o));case"double_click":return t.t("$vuetify.chatroom.computer.log.doubleClick",h.trim()||y(o));case"right_click":return t.t("$vuetify.chatroom.computer.log.rightClick",h.trim()||y(o));case"move":return t.t("$vuetify.chatroom.computer.log.move",y(o));case"drag":return t.t("$vuetify.chatroom.computer.log.drag");case"scroll":return t.t("$vuetify.chatroom.computer.log.scroll",String(o.deltaY??0));case"keypress":return t.t("$vuetify.chatroom.computer.log.keypress",Array.isArray(o.keys)?o.keys.join("+"):"");case"type_text":case"set_value":return t.t("$vuetify.chatroom.computer.log.typeText",String(o.characters??0));case"invoke":return t.t("$vuetify.chatroom.computer.log.invoke",h.trim());case"select_text":return t.t("$vuetify.chatroom.computer.log.selectText",h.trim());case"move_window":return t.t("$vuetify.chatroom.computer.log.moveWindow",h.trim());case"resize_window":return t.t("$vuetify.chatroom.computer.log.resizeWindow",h.trim());case"wait":return t.t("$vuetify.chatroom.computer.log.wait",String(o.ms??0));default:return i}}function y(a){return`(${Math.round(Number(a.x??0))}, ${Math.round(Number(a.y??0))})`}function b(a){return a&&typeof a=="object"?a:{}}return(a,o)=>(p(),w(H,{rounded:"xl",variant:"flat",border:"",class:"panel-card"},{default:d(()=>[l("div",Ie,[l("div",Ae,c(s(t).t("$vuetify.chatroom.computer.recentOperations")),1),m(G,{size:"small",variant:"text",icon:"$mdiRefresh",loading:e.busy,"aria-label":s(t).t("$vuetify.chatroom.computer.refreshOperations"),onClick:o[0]||(o[0]=i=>n("refresh"))},null,8,["loading","aria-label"])]),m(j),l("div",Ve,[e.operations.length?(p(),w(se,{key:0,lines:"two",density:"compact",class:"computer-operation-list"},{default:d(()=>[(p(!0),x(ae,null,de(e.operations,i=>(p(),w(Y,{key:i.operationId},{append:d(()=>[m(Pe,{value:i.status},null,8,["value"])]),default:d(()=>[m(_e,null,{default:d(()=>[R(c(f(i)),1)]),_:2},1024),m(Se,null,{default:d(()=>[R(c(s(ye)(i.startedAt,s(pe)(s(t).current.value)))+" · "+c(s(v)(i.source)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(p(),w(ie,{key:1,class:"muted"},{default:d(()=>[R(c(s(t).t("$vuetify.chatroom.computer.noOperations")),1)]),_:1}))])]),_:1}))}}),Oe=X(Le,[["__scopeId","data-v-e1119403"]]),ze={class:"panel-header compact-header"},Te={class:"computer-preview-heading"},Ue={class:"panel-title"},De={key:0,class:"computer-preview-time"},Ne=["aria-busy"],Ee=["src","alt"],je={key:2,class:"computer-screen-empty"},We={key:3,class:"computer-preview-meta"},Me={class:"text-truncate"},Fe=Q({__name:"ComputerPreview",props:{preview:{},enabled:{type:Boolean},busy:{type:Boolean},remotePreviewBlocked:{type:Boolean}},emits:["refresh"],setup(e,{emit:C}){const n=e,t=C,v=re(),f=oe(()=>{const a=n.preview;return a?.screenshot?"/api/computer/preview/image?snapshotId="+encodeURIComponent(a.snapshotId)+"&v="+encodeURIComponent(String(a.revision)):""}),g=k(!1),y=k(!1);ve(f,a=>{g.value=!!a,y.value=!1},{immediate:!0});const b=oe(()=>{const a=n.preview?.capturedAt;return a?ye(a,pe(v.current.value)):""});return(a,o)=>(p(),w(H,{rounded:"xl",variant:"flat",border:"",class:"panel-card"},{default:d(()=>[l("div",ze,[l("div",Te,[l("div",Ue,c(s(v).t("$vuetify.chatroom.computer.latestScreen")),1),b.value?(p(),x("div",De,c(s(v).t("$vuetify.chatroom.computer.capturedAt",b.value)),1)):S("",!0)]),m(G,{size:"small",variant:"tonal","prepend-icon":"$mdiRefresh",loading:e.busy,disabled:!e.enabled,onClick:o[0]||(o[0]=i=>t("refresh"))},{default:d(()=>[R(c(s(v).t("$vuetify.chatroom.computer.refreshScreen")),1)]),_:1},8,["loading","disabled"])]),m(j),m(ie,{class:"computer-preview-content"},{default:d(()=>[e.remotePreviewBlocked?(p(),w(J,{key:0,type:"info",variant:"tonal",density:"compact",class:"mb-3"},{default:d(()=>[R(c(s(v).t("$vuetify.chatroom.computer.remoteDisabled")),1)]),_:1})):S("",!0),f.value?(p(),x("div",{key:1,class:"computer-screen-shell","aria-busy":g.value},[g.value?(p(),w(Re,{key:0,indeterminate:""})):S("",!0),y.value?(p(),w(J,{key:1,type:"error",variant:"tonal"},{default:d(()=>[R(c(s(v).t("$vuetify.chatroom.common.imageLoadFailed")),1)]),_:1})):(p(),x("img",{key:f.value,decoding:"async",onLoad:o[1]||(o[1]=i=>g.value=!1),onError:o[2]||(o[2]=i=>{g.value=!1,y.value=!0}),src:f.value,alt:s(v).t("$vuetify.chatroom.computer.latestScreen")},null,40,Ee))],8,Ne)):(p(),x("div",je,[m(Be,{icon:"$mdiMonitorScreenshot",size:"42"}),l("span",null,c(s(v).t("$vuetify.chatroom.computer.noSnapshot")),1)])),e.preview?(p(),x("div",We,[l("div",null,[l("span",null,c(s(v).t("$vuetify.chatroom.computer.activeApp")),1),l("strong",null,c(e.preview.activeApp||"—"),1)]),l("div",null,[l("span",null,c(s(v).t("$vuetify.chatroom.computer.activeWindow")),1),l("strong",Me,c(e.preview.activeWindow||"—"),1)]),l("div",null,[l("span",null,c(s(v).t("$vuetify.chatroom.computer.elements")),1),l("strong",null,c(e.preview.elementCount),1)])])):S("",!0)]),_:1})]),_:1}))}}),Ye=X(Fe,[["__scopeId","data-v-f2938466"]]),Ge={class:"panel-header compact-header"},He={class:"panel-title"},Je={class:"computer-status-row"},Qe={class:"computer-status-label"},Xe={class:"computer-status-value"},Ke={class:"computer-status-row"},Ze={class:"computer-status-label"},et={class:"computer-status-value"},tt={class:"computer-status-row"},st={class:"computer-status-label"},at={class:"computer-permission-value"},ot={class:"computer-status-row"},rt={class:"computer-status-label"},it={class:"computer-permission-value"},nt={class:"panel-header compact-header"},lt={class:"panel-title"},ut=Q({__name:"ComputerStatus",props:{status:{},settingsBusy:{type:Boolean},permissionBusy:{},permissionRequestsAllowed:{type:Boolean}},emits:["updateSetting","requestPermission"],setup(e,{emit:C}){const n=C,t=re();function v(a){return t.t(`$vuetify.chatroom.computer.platformStates.${a}`)}function f(a){return t.t(`$vuetify.chatroom.computer.helperStates.${a}`)}function g(a){return t.t(`$vuetify.chatroom.computer.permissionStates.${a}`)}function y(a){return a==="granted"?"is-granted":a==="denied"?"is-denied":"is-muted"}function b(a){const o=a.primary?` · ${t.t("$vuetify.chatroom.computer.primaryDisplay")}`:"";return`${a.width}×${a.height} · ${a.scale}x${o}`}return(a,o)=>e.status?(p(),x(ae,{key:0},[m(H,{rounded:"xl",variant:"flat",border:"",class:"panel-card"},{default:d(()=>[l("div",Ge,[l("div",He,c(s(t).t("$vuetify.chatroom.computer.title")),1)]),m(j),m(ie,{class:"computer-status-list"},{default:d(()=>[l("div",Je,[l("span",Qe,c(s(t).t("$vuetify.chatroom.computer.platform")),1),l("strong",Xe,c(v(e.status.platform)),1)]),l("div",Ke,[l("span",Ze,c(s(t).t("$vuetify.chatroom.computer.helper")),1),l("strong",et,c(f(e.status.helper)),1)]),l("div",tt,[l("span",st,c(s(t).t("$vuetify.chatroom.computer.accessibility")),1),l("div",at,[l("strong",{class:ce(["computer-permission-state",y(e.status.permissions.accessibility)])},c(g(e.status.permissions.accessibility)),3),e.status.platform==="macos"&&e.status.permissions.accessibility!=="granted"?(p(),w(G,{key:0,class:"computer-permission-btn",color:"primary",size:"small",variant:"tonal",loading:e.permissionBusy==="accessibility",disabled:!e.permissionRequestsAllowed||e.permissionBusy!==null,onClick:o[0]||(o[0]=i=>n("requestPermission","accessibility"))},{default:d(()=>[R(c(s(t).t("$vuetify.chatroom.computer.requestPermission")),1)]),_:1},8,["loading","disabled"])):S("",!0)])]),l("div",ot,[l("span",rt,c(s(t).t("$vuetify.chatroom.computer.screenRecording")),1),l("div",it,[l("strong",{class:ce(["computer-permission-state",y(e.status.permissions.screenRecording)])},c(g(e.status.permissions.screenRecording)),3),e.status.platform==="macos"&&e.status.permissions.screenRecording!=="granted"?(p(),w(G,{key:0,class:"computer-permission-btn",color:"primary",size:"small",variant:"tonal",loading:e.permissionBusy==="screenRecording",disabled:!e.permissionRequestsAllowed||e.permissionBusy!==null,onClick:o[1]||(o[1]=i=>n("requestPermission","screenRecording"))},{default:d(()=>[R(c(s(t).t("$vuetify.chatroom.computer.requestPermission")),1)]),_:1},8,["loading","disabled"])):S("",!0)])]),e.status.platform==="macos"&&!e.permissionRequestsAllowed&&(e.status.permissions.accessibility!=="granted"||e.status.permissions.screenRecording!=="granted")?(p(),w(J,{key:0,type:"info",variant:"tonal",density:"compact",class:"computer-permission-alert"},{default:d(()=>[R(c(s(t).t("$vuetify.chatroom.computer.permissionLocalOnly")),1)]),_:1})):S("",!0)]),_:1}),m(j),m(se,{density:"compact",class:"computer-settings-list"},{default:d(()=>[m(Y,{title:s(t).t("$vuetify.chatroom.computer.enabled")},{append:d(()=>[m(me,{"model-value":e.status.settings.enabled,"aria-label":s(t).t("$vuetify.chatroom.computer.enabled"),disabled:e.settingsBusy,"onUpdate:modelValue":o[2]||(o[2]=i=>n("updateSetting","enabled",!!i))},null,8,["model-value","aria-label","disabled"])]),_:1},8,["title"]),m(Y,{title:s(t).t("$vuetify.chatroom.computer.remoteAccess")},{append:d(()=>[m(me,{"model-value":e.status.settings.remoteAccess,"aria-label":s(t).t("$vuetify.chatroom.computer.remoteAccess"),disabled:e.settingsBusy,"onUpdate:modelValue":o[3]||(o[3]=i=>n("updateSetting","remoteAccess",!!i))},null,8,["model-value","aria-label","disabled"])]),_:1},8,["title"])]),_:1})]),_:1}),e.status.displays.length?(p(),w(H,{key:0,rounded:"xl",variant:"flat",border:"",class:"panel-card"},{default:d(()=>[l("div",nt,[l("div",lt,c(s(t).t("$vuetify.chatroom.computer.displays")),1)]),m(j),m(se,{density:"compact",class:"computer-display-list"},{default:d(()=>[(p(!0),x(ae,null,de(e.status.displays,i=>(p(),w(Y,{key:i.id,title:i.name,subtitle:b(i)},null,8,["title","subtitle"]))),128))]),_:1})]),_:1})):S("",!0)],64)):S("",!0)}}),ct=X(ut,[["__scopeId","data-v-5071a817"]]);function mt(e,C){const n=k(null),t=k(null),v=k([]),f=k(""),g=k(!1),y=k(!1),b=k(!1),a=k(!1),o=k(null),i=F(),h=F(),L=F(),O=F(),$=new Set,U=new Map;let P=!1,z=!1,D=null,T=!1;window.addEventListener("focus",le),K(),qe(()=>{window.removeEventListener("focus",le),T=!0,P=!1,$.clear(),U.clear(),i.invalidate(),h.invalidate(),L.invalidate(),O.invalidate()});const ne=oe(()=>["localhost","127.0.0.1","::1","[::1]"].includes(window.location.hostname));ve(e,()=>{he(C())});async function K(){f.value="",P=!1,$.clear(),O.invalidate(),await Promise.all([Z(),W(),te()])}async function he(r){if(r===null){await K();return}const u=[];if(r.status&&u.push(Z()),r.preview&&(!r.previewSnapshotId||t.value?.snapshotId!==r.previewSnapshotId)&&u.push(te()),r.operationsReset)P=!1,$.clear(),O.invalidate(),u.push(W());else if(r.operationIds.length){for(const _ of r.operationIds)$.add(_);P&&!z?u.push(ee()):z||u.push(W())}await Promise.all(u)}async function Z(){const r=i.begin();try{const u=await A("/computer/status",{signal:r.signal});i.isCurrent(r)&&(n.value=u)}catch(u){i.isCurrent(r)&&V(u)}}async function W(){const r=L.begin();z=!0,a.value=!0;try{const u=await A("/operations?pluginId=computer&limit=50",{signal:r.signal});if(T||!L.isCurrent(r))return;v.value=u,P=!0}catch(u){L.isCurrent(r)&&V(u)}finally{L.isCurrent(r)&&(z=!1,a.value=!1)}L.isCurrent(r)&&$.size&&await ee()}async function ge(r){if(T||!r.length)return;const u=O.begin(),_=await Promise.allSettled(r.map(async I=>{try{return await A("/operations/"+encodeURIComponent(I),{signal:u.signal})}catch(q){if(q instanceof fe&&q.status===404)return null;throw q}}));if(T||!O.isCurrent(u))return;const B=[...v.value];for(let I=0;I<_.length;I+=1){const q=_[I],N=r[I];if(q.status==="rejected"){const M=(U.get(N)??0)+1;M<=1?(U.set(N,M),$.add(N)):(U.delete(N),V(q.reason));continue}U.delete(N);const E=q.value;if(!E||E.pluginId!=="computer")continue;const ue=B.findIndex(M=>M.operationId===E.operationId);ue>=0?B[ue]=E:B.push(E)}B.sort((I,q)=>q.startedAt.localeCompare(I.startedAt)),v.value=B.slice(0,50)}function ee(){return D||(D=Promise.resolve().then(async()=>{for(;!T&&P&&!z&&$.size;){const r=[...$];$.clear(),await ge(r)}}).finally(()=>{D=null,!T&&P&&!z&&$.size&&ee()}),D)}async function te(){const r=h.begin();g.value=!1;try{const u=await A("/computer/preview",{signal:r.signal});h.isCurrent(r)&&(t.value=u)}catch(u){if(!h.isCurrent(r))return;if(dt(u)){t.value=null,g.value=!0;return}V(u)}}async function le(){if(n.value?.platform!=="macos"||n.value.permissions.accessibility==="granted"&&n.value.permissions.screenRecording==="granted")return;const r=i.begin();try{const u=await A("/computer/status",{signal:r.signal});i.isCurrent(r)&&(n.value=u)}catch{}}async function we(r,u){if(!b.value){b.value=!0,f.value="";try{await A("/computer/settings",{method:"PATCH",body:JSON.stringify({[r]:u})}),await Promise.all([Z(),te()])}catch(_){V(_)}finally{b.value=!1}}}async function be(r){if(!ne.value||o.value)return;o.value=r,f.value="";const u=r==="accessibility"?"/computer/permissions/accessibility/request":"/computer/permissions/screen-recording/request",_=i.begin();try{const B=await A(u,{method:"POST",signal:_.signal});i.isCurrent(_)&&(n.value=B)}catch(B){i.isCurrent(_)&&V(B)}finally{o.value=null}}async function $e(){if(y.value)return;const r=h.begin();y.value=!0,f.value="";try{const u=await A("/computer/snapshot",{method:"POST",signal:r.signal});if(!h.isCurrent(r))return;t.value=u,g.value=!1}catch(u){h.isCurrent(r)&&V(u)}finally{y.value=!1}}async function ke(){f.value="",P=!1,$.clear(),O.invalidate(),await W()}function V(r){f.value||(f.value=xe(r))}return{status:n,preview:t,operations:v,error:f,remotePreviewBlocked:g,snapshotBusy:y,settingsBusy:b,operationsBusy:a,permissionBusy:o,permissionRequestsAllowed:ne,load:K,updateSetting:we,requestPermission:be,refreshSnapshot:$e,refreshOperations:ke}}function dt(e){return!(e instanceof fe)||e.code!=="FORBIDDEN"||!e.details||typeof e.details!="object"?!1:"reason"in e.details&&e.details.reason==="remote_computer_disabled"}const pt={class:"computer-view"},vt=Q({__name:"ComputerView",props:{revision:{},changes:{}},setup(e){const C=e,n=mt(()=>C.revision,()=>C.changes);return(t,v)=>(p(),x("div",pt,[s(n).error.value?(p(),w(J,{key:0,type:"error",variant:"tonal"},{default:d(()=>[R(c(s(n).error.value),1)]),_:1})):S("",!0),m(Ye,{preview:s(n).preview.value,enabled:s(n).status.value?.settings.enabled??!1,busy:s(n).snapshotBusy.value,"remote-preview-blocked":s(n).remotePreviewBlocked.value,onRefresh:s(n).refreshSnapshot},null,8,["preview","enabled","busy","remote-preview-blocked","onRefresh"]),m(Oe,{operations:s(n).operations.value,busy:s(n).operationsBusy.value,onRefresh:s(n).refreshOperations},null,8,["operations","busy","onRefresh"]),m(ct,{status:s(n).status.value,"settings-busy":s(n).settingsBusy.value,"permission-busy":s(n).permissionBusy.value,"permission-requests-allowed":s(n).permissionRequestsAllowed.value,onUpdateSetting:s(n).updateSetting,onRequestPermission:s(n).requestPermission},null,8,["status","settings-busy","permission-busy","permission-requests-allowed","onUpdateSetting","onRequestPermission"])]))}}),$t=X(vt,[["__scopeId","data-v-2084f1f6"]]);export{$t as default};
@@ -0,0 +1 @@
1
+ import{d as q,a as L,A as P,a5 as A,B,C as x,o as l,n as _,c as v,b as f,r as D,t as u,q as G,p as g,e as p,g as o,h,i as O,V as y,O as z,X as E,y as b,b8 as j,z as F,_ as H,j as J}from"./index-Dt-pWiW1.js";import{V as I}from"./VSwitch-C0XNj1lR.js";import{_ as X}from"./_plugin-vue_export-helper-DlAUqK2U.js";const K={class:"mcp-tools-view"},Q={class:"panel-header"},W={class:"panel-title"},Y={class:"mcp-tool-group-header"},Z={class:"min-w-0"},ee={class:"panel-title"},ae={class:"mcp-tool-list"},te=["title"],se={class:"mcp-tool-heading"},oe={class:"empty-inline"},ne=q({__name:"McpToolsView",setup(le){const i=L(),c=b([]),r=b(!1),d=b(""),n=j(new Set),m=P(),M=F(()=>{const e=new Map;for(const a of c.value){const t=e.get(a.pluginId)??[];t.push(a),e.set(a.pluginId,t)}return[...e.entries()].map(([a,t])=>({pluginId:a,tools:t}))});A(()=>{w()});async function w(){if(n.size)return;const e=m.begin();r.value=!0,d.value="";try{const a=await B("/mcp/tools",{signal:e.signal});m.isCurrent(e)&&(c.value=a)}catch(a){m.isCurrent(e)&&(d.value=x(a))}finally{m.isCurrent(e)&&(r.value=!1)}}async function V(e,a){if(!(n.has(e.name)||e.enabled===a)){m.invalidate(),r.value=!1,n.add(e.name),d.value="";try{const t=await B(`/mcp/tools/${encodeURIComponent(e.name)}`,{method:"PATCH",body:JSON.stringify({enabled:a})});c.value=c.value.map(s=>s.name===t.name?t:s)}catch(t){d.value=x(t)}finally{n.delete(e.name)}}}async function N(e,a){const t=e.tools.filter(s=>s.enabled!==a&&!n.has(s.name));await Promise.all(t.map(s=>V(s,a)))}function k(e){return["workspace","process","computer","agent"].includes(e)?i.t(`$vuetify.chatroom.mcpTools.plugins.${e}`):e}const T=new Set(["workspace_list","workspace_info","process_start","process_read","process_write","process_kill","computer_snapshot","computer_action","agent_providers","agent_provider_details","agent_models","agent_sessions","agent_create","agent_send","agent_steer","agent_review","agent_history","agent_configure","agent_respond","agent_interrupt","agent_switch_provider"]);function C(e){return T.has(e.name)?i.t("$vuetify.chatroom.mcpTools.tools."+e.name+".title"):e.title}function R(e){return T.has(e.name)?i.t("$vuetify.chatroom.mcpTools.tools."+e.name+".description"):e.description}function S(e){return e.tools.some(a=>a.enabled)}function $(e){return e.tools.every(a=>a.enabled)}return(e,a)=>(l(),_("div",K,[d.value?(l(),v(G,{key:0,type:"error",variant:"tonal",density:"compact"},{default:f(()=>[D(u(d.value),1)]),_:1})):g("",!0),p(y,{class:"panel-card"},{default:f(()=>[o("div",Q,[o("div",null,[o("div",W,u(h(i).t("$vuetify.chatroom.mcpTools.title")),1)]),p(O,{class:"mcp-tools-refresh",icon:"$mdiRefresh",size:"small",variant:"text",loading:r.value,disabled:n.size>0,"aria-label":h(i).t("$vuetify.chatroom.mcpTools.refresh"),onClick:w},null,8,["loading","disabled","aria-label"])])]),_:1}),r.value&&!c.value.length?(l(),v(H,{key:1,indeterminate:"",rounded:""})):g("",!0),(l(!0),_(z,null,E(M.value,t=>(l(),v(y,{key:t.pluginId,class:"panel-card mcp-tool-group"},{default:f(()=>[o("div",Y,[o("div",Z,[o("div",ee,u(k(t.pluginId)),1)]),p(I,{class:"mcp-tool-switch","model-value":$(t),indeterminate:S(t)&&!$(t),color:"primary",density:"compact","hide-details":"",inset:"",disabled:t.tools.some(s=>n.has(s.name)),"aria-label":h(i).t("$vuetify.chatroom.mcpTools.togglePlugin",k(t.pluginId)),"onUpdate:modelValue":s=>N(t,!!s)},null,8,["model-value","indeterminate","disabled","aria-label","onUpdate:modelValue"])]),p(J),o("div",ae,[(l(!0),_(z,null,E(t.tools,s=>(l(),_("div",{key:s.name,class:"mcp-tool-row"},[o("div",{class:"mcp-tool-copy",title:R(s)},[o("div",se,[o("strong",null,u(C(s)),1),o("code",null,u(s.name),1)])],8,te),p(I,{class:"mcp-tool-switch","model-value":s.enabled,color:"primary",density:"compact","hide-details":"",inset:"",loading:n.has(s.name),"aria-label":C(s),"onUpdate:modelValue":U=>V(s,!!U)},null,8,["model-value","loading","aria-label","onUpdate:modelValue"])]))),128))])]),_:2},1024))),128)),!r.value&&!c.value.length?(l(),v(y,{key:2,class:"panel-card"},{default:f(()=>[o("div",oe,u(h(i).t("$vuetify.chatroom.mcpTools.empty")),1)]),_:1})):g("",!0)]))}}),de=X(ne,[["__scopeId","data-v-448db2d1"]]);export{de as default};
@@ -0,0 +1 @@
1
+ .mcp-tools-view[data-v-448db2d1]{display:grid;gap:14px}.mcp-tools-refresh[data-v-448db2d1]{flex:0 0 auto}.mcp-tool-group-header[data-v-448db2d1],.mcp-tool-row[data-v-448db2d1]{display:grid;grid-template-columns:minmax(0,1fr) 52px;align-items:center;column-gap:18px}.mcp-tool-group-header[data-v-448db2d1]{min-height:56px;padding:10px 18px}.mcp-tool-list[data-v-448db2d1]{display:grid}.mcp-tool-row[data-v-448db2d1]{min-width:0;min-height:54px;padding:8px 18px;border-bottom:1px solid rgb(var(--v-theme-outline),.08)}.mcp-tool-row[data-v-448db2d1]:last-child{border-bottom:0}.mcp-tool-copy[data-v-448db2d1]{width:100%;min-width:0}.mcp-tool-heading[data-v-448db2d1]{display:flex;min-width:0;align-items:baseline;gap:12px}.mcp-tool-heading strong[data-v-448db2d1],.mcp-tool-heading code[data-v-448db2d1]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mcp-tool-heading strong[data-v-448db2d1]{flex:0 1 auto;font-size:13px;font-weight:650}.mcp-tool-heading code[data-v-448db2d1]{flex:1 1 0;color:rgb(var(--v-theme-on-surface),.52);font-size:11px}.mcp-tool-switch[data-v-448db2d1]{justify-self:end}.mcp-tool-switch[data-v-448db2d1] .v-input__control,.mcp-tool-switch[data-v-448db2d1] .v-selection-control{inline-size:max-content}.mcp-tool-switch[data-v-448db2d1] .v-selection-control{flex:0 0 auto}@media(max-width:640px){.mcp-tools-view[data-v-448db2d1]{gap:12px}.mcp-tool-group-header[data-v-448db2d1],.mcp-tool-row[data-v-448db2d1]{column-gap:10px;padding-inline:14px}.mcp-tool-group-header[data-v-448db2d1]{min-height:54px}.mcp-tool-row[data-v-448db2d1]{min-height:52px;padding-block:7px}.mcp-tool-heading[data-v-448db2d1]{gap:8px}}@media(max-width:380px){.mcp-tool-group-header[data-v-448db2d1],.mcp-tool-row[data-v-448db2d1]{column-gap:8px;padding-inline:12px}.mcp-tool-heading[data-v-448db2d1]{gap:6px}}
@@ -0,0 +1 @@
1
+ .operations-header{align-items:stretch;flex-direction:column;gap:10px}.operations-controls{display:flex;width:100%;min-width:0;flex:0 0 auto;align-items:center;justify-content:space-between;gap:8px}.operations-clear{flex:0 0 auto}.operations-clear.v-btn--disabled{opacity:.46}.responsive-record-list{display:grid;grid-template-columns:minmax(0,1fr) max-content max-content;container-type:inline-size}.operation-load-sentinel{display:grid;min-height:42px;place-items:center;border-top:1px solid rgb(var(--v-theme-outline),.06);color:rgb(var(--v-theme-on-surface),.48)}.responsive-record-row{display:grid;content-visibility:auto;contain-intrinsic-size:48px;grid-column:1 / -1;grid-template-columns:subgrid;grid-template-areas:"main meta side";width:100%;min-width:0;min-height:48px;gap:10px;align-items:center;padding:8px 12px;border:0;border-bottom:1px solid rgb(var(--v-theme-outline),.08);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.responsive-record-row:last-child{border-bottom:0}.responsive-record-row:hover,.responsive-record-row.selected-row{background:rgb(var(--v-theme-primary),.045)}.responsive-record-main{grid-area:main;display:flex;min-width:0;align-items:baseline;gap:8px}.responsive-record-title,.responsive-record-subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.responsive-record-title{flex:0 0 auto;max-width:42%;font-weight:650}.responsive-record-subtitle{flex:1 1 auto;min-width:0;margin-top:0;color:rgb(var(--v-theme-on-surface),.52);font-size:12px}.responsive-record-meta{grid-area:meta;display:flex;min-width:0;flex-wrap:nowrap;gap:8px;color:rgb(var(--v-theme-on-surface),.52);font-size:12px;white-space:nowrap}.responsive-record-side{grid-area:side;display:flex;width:100%;min-width:0;justify-self:stretch;align-items:center;justify-content:center;gap:4px}@container (max-width: 980px){.responsive-record-list{grid-template-columns:minmax(0,1fr)}.responsive-record-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main side" "meta side";min-height:0;gap:4px 8px;padding:8px 10px}.responsive-record-meta{overflow:hidden}}@container (max-width: 620px){.responsive-record-row{gap:3px 6px;padding:7px 9px}.responsive-record-title{max-width:36%}.responsive-record-meta{gap:6px;font-size:11px}}.operations-layout{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:640px){.operations-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.operations-clear.v-btn{min-height:34px;padding-inline:8px}}@media(max-width:430px){.operations-controls{gap:5px}.operations-clear.v-btn{min-height:32px;padding-inline:6px;font-size:11px}}@media(max-width:1100px){.operations-layout{grid-template-columns:minmax(0,1fr)}}.detail-tabs{padding:0 10px}.detail-tabs .v-slide-group__container{overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;touch-action:pan-x pan-y}.detail-tabs .v-slide-group__container::-webkit-scrollbar{display:none}.detail-tabs .v-tab{min-width:0;padding-inline:12px}@media(max-width:1100px){.operations-layout .detail-pane{position:static}}@media(max-width:640px){.detail-tabs{padding-inline:4px}.detail-tabs .v-tab{padding-inline:10px}}
@@ -0,0 +1,4 @@
1
+ import{A as te,a0 as Ie,w as Z,B as Q,C as W,a6 as de,y as V,d as oe,a as ie,o as m,c as M,b as r,g as i,i as F,h as e,p as O,t as n,a3 as _e,e as s,j as se,n as U,r as g,V as ee,z as ke,O as fe,X as we,U as be,G as Ce,a9 as Ve,aa as Ae,ae as Se,Z as xe,aY as Me,q as ae,af as Oe,f as Be,k as Le,s as Re,v as De}from"./index-Dt-pWiW1.js";import{c as Te}from"./entity-refresh-queue-wQii8Dl5.js";import{u as qe}from"./useMasterDetailFocus-D0j-KcXv.js";import{u as pe}from"./useOperationLabels-DR8r6Vrl.js";import{d as Ee,c as Ue,a as ze}from"./utils-rtPwWNel.js";import{_ as K}from"./CodeViewer.vue_vue_type_script_setup_true_lang-CiFNEpWo.js";import{_ as me}from"./StateChip.vue_vue_type_script_setup_true_lang-Bvc9wRyA.js";import{V as Pe,a as ne,b as Ne,c as le}from"./VTabs-CHj39Ket.js";import{V as Fe}from"./VSpacer-Cl-QiwaM.js";const X=50,H=1e3;function Ge(a,y){const o=V([]),l=V(null),h=V(null),$=V("all"),u=V(!1),B=V(!1),p=V(!1),v=V(!1),f=V(""),L=V(!1),I=te(),_=te(),R=te(),z=new Map;let w=!1,P=null,k=0,A=!1;const T=Te({keyOf:t=>t.operationId,merge:(t,c)=>c,isReady:()=>w,isLoading:()=>u.value,isDisposed:()=>A,refreshAll:G,applyBatch:C});Ie(()=>{A=!0,w=!1,T.reset(),z.clear(),I.invalidate(),_.invalidate(),R.invalidate()}),Z($,()=>{w=!1,P=null,T.reset(),R.invalidate(),G()},{immediate:!0}),Z(a,()=>{ge(y())}),Z(l,()=>{k+=1,re(k)});function Y(t,c=null){const d=new URLSearchParams({limit:String(t)});return $.value!=="all"&&d.set("status",$.value),c&&(d.set("beforeStartedAt",c.startedAt),d.set("beforeOperationId",c.operationId)),`/operations?${d}`}async function G(){if(A)return;w=!1;const t=I.begin();u.value=!0,B.value=!1,f.value="";try{const c=await Q(Y(X),{signal:t.signal});if(A||!I.isCurrent(t))return;if(o.value=c.slice(0,H),L.value=!1,P=ve(c),p.value=c.length===X,w=!0,l.value){const d=c.find(S=>S.operationId===l.value);d?(_.invalidate(),h.value=d):re(k)}}catch(c){I.isCurrent(t)&&(f.value=W(c))}finally{I.isCurrent(t)&&(u.value=!1,w&&T.drain())}}async function b(){if(u.value||B.value||!p.value)return;const t=I.begin(),c=P;B.value=!0;try{const d=await Q(Y(X,c),{signal:t.signal});if(A||!I.isCurrent(t))return;d.length&&(P=ve(d));const S=new Set(o.value.map(x=>x.operationId)),j=[...o.value,...d.filter(x=>!S.has(x.operationId))];o.value=j.slice(0,H),L.value=j.length>H||o.value.length>=H&&d.length===X,p.value=!L.value&&d.length===X}catch(d){I.isCurrent(t)&&(f.value=W(d))}finally{I.isCurrent(t)&&(B.value=!1)}}async function C(t){if(A||!t.length)return;const c=R.begin(),d=l.value,S=k,j=await Promise.allSettled(t.map(async E=>{try{return await Q(`/operations/${encodeURIComponent(E.operationId)}`,{signal:c.signal})}catch(D){if(D instanceof de&&D.status===404)return null;throw D}}));if(A||!R.isCurrent(c))return;let x=[...o.value];for(let E=0;E<j.length;E+=1){const D=j[E],ce=t[E];if(D.status==="rejected"){q(ce,D.reason);continue}z.delete(ce.operationId);const N=D.value;if(!N)continue;const J=x.findIndex($e=>$e.operationId===N.operationId);He(N,$.value)?J>=0?x[J]=N:x.push(N):J>=0&&x.splice(J,1),l.value===N.operationId&&d===N.operationId&&k===S&&(_.invalidate(),h.value=N)}x.sort((E,D)=>D.startedAt.localeCompare(E.startedAt)||D.operationId.localeCompare(E.operationId)),x.length>H&&(L.value=!0,p.value=!1),o.value=x.slice(0,H)}function q(t,c){const d=(z.get(t.operationId)??0)+1;if(d<=1&&!A){z.set(t.operationId,d),T.enqueue([t]);return}z.delete(t.operationId),f.value=W(c)}async function re(t=k){const c=l.value,d=_.begin();if(!c){h.value=null;return}try{const S=await Q(`/operations/${encodeURIComponent(c)}`,{signal:d.signal});_.isCurrent(d)&&l.value===c&&k===t&&(h.value=S)}catch(S){if(!_.isCurrent(d))return;if(S instanceof de&&S.status===404){l.value===c&&k===t&&ue();return}f.value=W(S)}}async function he(){if(v.value)return!1;v.value=!0,f.value="",I.invalidate(),R.invalidate(),_.invalidate();try{return await Q("/operations",{method:"DELETE"}),l.value=null,h.value=null,w=!1,P=null,await G(),!0}catch(t){return f.value=W(t),!1}finally{v.value=!1}}function ye(t){l.value=t.operationId,h.value=t}function ue(){l.value=null,h.value=null,_.invalidate()}function ge(t){if(!A){if(t===null){T.enqueue(null);return}if(!t.clearAll){T.enqueue(t.changes);return}R.invalidate(),z.clear(),T.reset(),l.value=null,h.value=null,_.invalidate(),o.value=[],P=null,p.value=!1,L.value=!1,w=!1,G()}}return{events:o,selected:l,detail:h,filter:$,loading:u,loadingMore:B,hasMore:p,clearing:v,error:f,limitReached:L,loadInitial:G,loadMore:b,select:ye,clearSelection:ue,clearHistory:he}}function ve(a){const y=a.at(-1);return y?{startedAt:y.startedAt,operationId:y.operationId}:null}function He(a,y){return y==="all"||a.status===y}const je={class:"panel-header operation-detail-header"},Qe={class:"min-w-0 detail-header-title"},We={class:"panel-title text-truncate"},Xe={class:"panel-subtitle"},Ze={class:"detail-facts"},Ye={class:"mono"},Je={key:0},Ke={class:"mono"},et={class:"empty-panel"},tt=oe({__name:"OperationDetail",props:{event:{},showBack:{type:Boolean}},emits:["back"],setup(a){const y=a,o=V("input"),l=ie(),{actionLabel:h,sourceLabel:$}=pe(),u=ke(()=>B(y.event?.output));function B(p){if(!p||typeof p!="object"||Array.isArray(p))return null;const v=p;if(typeof v.stdout!="string"&&typeof v.stderr!="string")return null;const f=typeof v.stdout=="string"?v.stdout:"",L=typeof v.stderr=="string"&&v.stderr?`
2
+
3
+ [stderr]
4
+ ${v.stderr}`:"";return`${f}${L}`}return(p,v)=>a.event?(m(),M(ee,{key:0,class:"panel-card"},{default:r(()=>[i("div",je,[a.showBack?(m(),M(F,{key:0,icon:"$mdiArrowLeft",size:"small",variant:"text","aria-label":e(l).t("$vuetify.chatroom.operations.back"),onClick:v[0]||(v[0]=f=>p.$emit("back"))},null,8,["aria-label"])):O("",!0),i("div",Qe,[i("div",We,n(e(h)(a.event.pluginId,a.event.action)),1),i("div",Xe,n(e($)(a.event.source))+" · "+n(e(Ee)(a.event.startedAt,e(_e)(e(l).current.value))),1)]),s(me,{value:a.event.status},null,8,["value"])]),s(se),i("div",Ze,[i("div",null,[i("span",null,n(e(l).t("$vuetify.chatroom.detail.plugin")),1),i("strong",Ye,n(a.event.pluginId),1)]),i("div",null,[i("span",null,n(e(l).t("$vuetify.chatroom.detail.duration")),1),i("strong",null,n(a.event.durationMs===null?e(l).t("$vuetify.chatroom.statuses.running"):`${a.event.durationMs} ms`),1)]),a.event.processId?(m(),U("div",Je,[i("span",null,n(e(l).t("$vuetify.chatroom.detail.process")),1),i("strong",Ke,n(a.event.processId.slice(0,16)),1)])):O("",!0)]),s(Pe,{modelValue:o.value,"onUpdate:modelValue":v[1]||(v[1]=f=>o.value=f),density:"compact",class:"detail-tabs"},{default:r(()=>[s(ne,{value:"input"},{default:r(()=>[g(n(e(l).t("$vuetify.chatroom.detail.input")),1)]),_:1}),s(ne,{value:"output"},{default:r(()=>[g(n(e(l).t("$vuetify.chatroom.detail.output")),1)]),_:1}),a.event.error?(m(),M(ne,{key:0,value:"failure"},{default:r(()=>[g(n(e(l).t("$vuetify.chatroom.detail.error")),1)]),_:1})):O("",!0)]),_:1},8,["modelValue"]),s(se),s(Ne,{modelValue:o.value,"onUpdate:modelValue":v[2]||(v[2]=f=>o.value=f),touch:!1},{default:r(()=>[s(le,{value:"input",class:"pa-3"},{default:r(()=>[s(K,{value:a.event.input},null,8,["value"])]),_:1}),s(le,{value:"output",class:"pa-3"},{default:r(()=>[u.value!==null?(m(),M(K,{key:0,text:u.value??"",filename:"operation-terminal.txt",highlight:a.event.status!=="running"},null,8,["text","highlight"])):(m(),M(K,{key:1,value:a.event.output,highlight:a.event.status!=="running"},null,8,["value","highlight"]))]),_:1}),a.event.error?(m(),M(le,{key:0,value:"failure",class:"pa-3"},{default:r(()=>[s(K,{value:a.event.error},null,8,["value"])]),_:1})):O("",!0)]),_:1},8,["modelValue"])]),_:1})):(m(),M(ee,{key:1,class:"panel-card"},{default:r(()=>[i("div",et,n(e(l).t("$vuetify.chatroom.operations.select")),1)]),_:1}))}}),at={key:0,class:"responsive-record-list"},nt=["aria-current","data-operation-id","onClick"],lt={class:"responsive-record-main"},st={class:"responsive-record-title"},ot={class:"responsive-record-subtitle mono"},it={class:"responsive-record-meta"},rt={class:"responsive-record-side"},ut={key:1,class:"empty-inline"},ct=oe({__name:"OperationTable",props:{events:{},selected:{}},emits:["select"],setup(a){const y=ie(),{actionLabel:o,sourceLabel:l}=pe();return(h,$)=>a.events.length?(m(),U("div",at,[(m(!0),U(fe,null,we(a.events,u=>(m(),U("button",{key:u.operationId,type:"button",class:be(["responsive-record-row",{"selected-row":a.selected===u.operationId}]),"aria-current":a.selected===u.operationId?"true":void 0,"data-operation-id":u.operationId,onClick:B=>h.$emit("select",u)},[i("div",lt,[i("div",st,n(e(o)(u.pluginId,u.action)),1),i("div",ot,n(u.pluginId),1)]),i("div",it,[i("span",null,n(e(Ue)(u.startedAt)),1),i("span",null,n(e(l)(u.source)),1),i("span",null,n(u.durationMs===null?e(y).t("$vuetify.chatroom.statuses.running"):e(ze)(u.durationMs)),1)]),i("div",rt,[s(me,{value:u.status},null,8,["value"])])],10,nt))),128))])):(m(),U("div",ut,n(e(y).t("$vuetify.chatroom.operations.empty")),1))}}),dt={ref:"layout",class:"master-detail-layout operations-layout"},vt={key:0,class:"master-pane"},ft={class:"panel-header operations-header"},pt={class:"panel-title"},mt={class:"panel-subtitle"},ht={class:"operations-controls"},yt={key:1,ref:"detailPane",class:"detail-pane",tabindex:"-1"},At=oe({__name:"OperationsView",props:{revision:{},changes:{}},setup(a){const y=a,o=ie(),{mdAndDown:l}=Ce(),h=Ve("loadSentinel"),$=V(!1),{focusDetail:u,focusMaster:B}=qe(l),p=Ge(()=>y.revision,()=>y.changes),{events:v,selected:f,detail:L,filter:I,loadingMore:_,hasMore:R,clearing:z,error:w,limitReached:P}=p;let k=null;Z(h,b=>{k?.disconnect(),k=null,b&&(k=new IntersectionObserver(C=>{C.some(q=>q.isIntersecting)&&p.loadMore()},{rootMargin:"240px 0px"}),k.observe(b))},{flush:"post"}),Z(()=>[v.value.length,R.value,_.value],()=>{A()},{flush:"post"}),Ae(()=>k?.disconnect());async function A(){await Se();const b=h.value;!b||_.value||!R.value||b.getBoundingClientRect().top<=window.innerHeight+240&&p.loadMore()}function T(b){p.select(b),u()}function Y(){const b=f.value;p.clearSelection(),b&&B(`[data-operation-id="${CSS.escape(b)}"]`)}async function G(){await p.clearHistory()&&($.value=!1)}return(b,C)=>(m(),U(fe,null,[i("div",dt,[!e(l)||!e(f)?(m(),U("div",vt,[s(ee,{class:"panel-card"},{default:r(()=>[i("div",ft,[i("div",null,[i("div",pt,n(e(o).t("$vuetify.chatroom.operations.title")),1),i("div",mt,n(e(o).t("$vuetify.chatroom.operations.subtitle")),1)]),i("div",ht,[s(xe,{modelValue:e(I),"onUpdate:modelValue":C[0]||(C[0]=q=>Me(I)?I.value=q:null),mandatory:"",variant:"text",class:"record-filters"},{default:r(()=>[s(F,{value:"all",size:"small"},{default:r(()=>[g(n(e(o).t("$vuetify.chatroom.operations.all")),1)]),_:1}),s(F,{value:"running",size:"small"},{default:r(()=>[g(n(e(o).t("$vuetify.chatroom.operations.running")),1)]),_:1}),s(F,{value:"error",size:"small"},{default:r(()=>[g(n(e(o).t("$vuetify.chatroom.operations.errors")),1)]),_:1}),s(F,{value:"success",size:"small"},{default:r(()=>[g(n(e(o).t("$vuetify.chatroom.operations.success")),1)]),_:1})]),_:1},8,["modelValue"]),s(F,{"prepend-icon":"$mdiDeleteSweepOutline",variant:"text",size:"small",class:"operations-clear",disabled:!e(v).length,onClick:C[1]||(C[1]=q=>$.value=!0)},{default:r(()=>[g(n(e(o).t("$vuetify.chatroom.operations.clear")),1)]),_:1},8,["disabled"])])]),s(se),e(w)?(m(),M(ae,{key:0,type:"error",variant:"tonal",density:"compact"},{default:r(()=>[g(n(e(w)),1)]),_:1})):O("",!0),s(ct,{events:e(v),selected:e(f),onSelect:T},null,8,["events","selected"]),e(P)?(m(),M(ae,{key:1,type:"info",variant:"tonal",density:"compact",class:"operation-window-limit"},{default:r(()=>[g(n(e(o).t("$vuetify.chatroom.operations.windowLimit")),1)]),_:1})):O("",!0),e(R)||e(_)?(m(),U("div",{key:2,ref_key:"loadSentinel",ref:h,class:"operation-load-sentinel","aria-hidden":"true"},[e(_)?(m(),M(Oe,{key:0,indeterminate:"",size:"20",width:"2"})):O("",!0)],512)):O("",!0)]),_:1})])):O("",!0),!e(l)||e(f)?(m(),U("div",yt,[e(l)&&e(f)&&e(w)?(m(),M(ae,{key:0,type:"error",variant:"tonal",density:"compact"},{default:r(()=>[g(n(e(w)),1)]),_:1})):O("",!0),s(tt,{event:e(L),"show-back":e(l),onBack:Y},null,8,["event","show-back"])],512)):O("",!0)],512),s(De,{modelValue:$.value,"onUpdate:modelValue":C[3]||(C[3]=q=>$.value=q),width:"auto","max-width":"90vw"},{default:r(()=>[s(ee,null,{default:r(()=>[s(Be,null,{default:r(()=>[g(n(e(o).t("$vuetify.chatroom.operations.clearTitle")),1)]),_:1}),s(Le,null,{default:r(()=>[g(n(e(o).t("$vuetify.chatroom.operations.clearDescription")),1)]),_:1}),s(Re,null,{default:r(()=>[s(Fe),s(F,{variant:"text",onClick:C[2]||(C[2]=q=>$.value=!1)},{default:r(()=>[g(n(e(o).t("$vuetify.chatroom.common.cancel")),1)]),_:1}),s(F,{color:"error",variant:"flat",loading:e(z),onClick:G},{default:r(()=>[g(n(e(o).t("$vuetify.chatroom.operations.clearConfirm")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}});export{At as default};
@@ -0,0 +1 @@
1
+ .process-record-list{display:grid;grid-template-columns:fit-content(25%) minmax(0,1fr) max-content max-content max-content;column-gap:12px;align-content:start;grid-auto-rows:max-content;container-type:inline-size}.process-record-header,.process-record-row{display:grid;grid-column:1 / -1;grid-template-columns:subgrid;column-gap:inherit;align-items:center}.process-record-header{min-height:32px;padding:6px 14px;border-bottom:1px solid rgb(var(--v-theme-outline),.08);background:rgb(var(--v-theme-on-surface),.018);color:rgb(var(--v-theme-on-surface),.46);font-size:11px;font-weight:600}.process-record-header>span{justify-self:start;text-align:left}.process-record-header>:nth-child(n+3){justify-self:center;text-align:center}.process-record-row{width:100%;min-width:0;padding:9px 14px;border-bottom:1px solid rgb(var(--v-theme-outline),.08);background:transparent;color:inherit;text-align:left;cursor:pointer}.process-record-row:last-child{border-bottom:0}.process-record-row:hover,.process-record-row.selected-row{background:rgb(var(--v-theme-primary),.045)}.process-record-main,.process-record-meta{display:contents}.process-record-command,.process-record-args,.process-record-started,.process-record-duration{min-width:0}.process-record-command,.process-record-args{justify-self:stretch;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.process-record-command{font-size:12px;font-weight:650}.process-record-args{color:rgb(var(--v-theme-on-surface),.5);font-size:11px}.process-record-started,.process-record-duration{justify-self:center;color:rgb(var(--v-theme-on-surface),.52);text-align:center;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.process-record-side{display:flex;width:100%;min-width:0;justify-self:stretch;align-items:center;justify-content:center;gap:4px}.process-record-side .process-actions{gap:2px}@container (min-width: 761px){.process-record-command,.process-record-header>:first-child{padding-inline-end:4px}.process-record-duration{padding-inline:12px}}@container (max-width: 520px){.process-record-header{display:none}.process-record-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main side" "meta side";min-height:66px;gap:4px 12px;padding:9px 12px}.process-record-main{grid-area:main;display:flex;min-width:0;align-items:baseline;justify-content:start;gap:8px}.process-record-command{flex:0 1 auto;max-inline-size:45%}.process-record-args{flex:1 1 0}.process-record-meta{grid-area:meta;display:grid;grid-template-columns:max-content max-content;min-width:0;align-items:center;justify-content:start;gap:10px}.process-record-side{grid-area:side;min-width:max-content;justify-self:center;align-self:center;justify-content:center;text-align:center}}@container (max-width: 420px){.process-record-row{grid-template-columns:minmax(0,1fr) max-content;gap:3px 8px;padding:8px 9px}.process-record-main{gap:6px}.process-record-args{font-size:10.5px}.process-record-meta{grid-template-columns:max-content max-content;gap:6px}.process-record-started,.process-record-duration{font-size:11px}}.process-output{padding:12px}.process-actions,.process-detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.process-detail-actions .detail-action-btn.v-btn{--v-btn-size: .75rem;min-width:0;padding:4px 10px;border-radius:9999px;font-size:.75rem;letter-spacing:0}.process-detail-actions .detail-action-btn .v-btn__content{font-size:inherit}.process-detail-actions .detail-action-btn .v-btn__prepend{margin-inline-start:-5px;margin-inline-end:5px}.process-detail-actions .detail-action-btn .v-icon{font-size:10.3px}.process-detail-header{flex-wrap:wrap}.process-full-command{padding:12px 18px}.processes-layout{grid-template-columns:minmax(0,1.75fr) minmax(0,.8fr)}@media(min-width:1101px){.processes-layout{flex:1 1 0;min-inline-size:0;grid-template-rows:minmax(0,1fr);min-height:0;align-items:stretch;overflow:hidden}.processes-layout .master-pane,.processes-layout .detail-pane{display:flex;flex-direction:column;min-height:0}.processes-layout .detail-pane{position:static}.processes-layout .master-pane>.panel-card,.processes-layout .detail-pane>.panel-card{flex:1 1 0;display:flex;flex-direction:column;min-height:0}.processes-layout .process-record-list{min-height:0;flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain}.processes-layout .process-record-header{position:sticky;z-index:1;top:0}.process-detail-card{display:flex;flex-direction:column}.process-detail-card .process-output{display:flex;min-height:0;flex:1 1 0;overflow:hidden}.process-detail-card .process-output>.code-viewer{display:flex;width:100%;min-height:0;flex:1 1 auto;flex-direction:column}.process-detail-card .process-output .code-block{min-height:0;max-height:none;flex:1 1 auto}.process-detail-card .process-full-command{display:flex;min-height:0;max-height:30%;flex:0 1 auto;flex-direction:column;overflow:hidden}.process-detail-card .process-full-command .code-viewer{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;overflow:hidden}.process-detail-card .process-full-command .code-block{min-height:0;max-height:none;flex:1 1 auto;overflow:auto}.process-detail-card .detail-facts,.process-detail-card .process-detail-header{flex:0 0 auto}.processes-layout .empty-panel{flex:1}}@media(max-width:1280px){.processes-layout{grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr)}}@media(max-width:1100px){.processes-layout{grid-template-columns:1fr}}@media(max-width:640px){.processes-layout .process-detail-header{gap:6px}.processes-layout .process-output{padding:10px}.processes-layout .process-full-command,.processes-layout .detail-facts{font-size:.92rem}.process-detail-actions{width:100%;justify-content:flex-start}}@media(max-width:1100px){.processes-layout .detail-pane{position:static}}
@@ -0,0 +1,4 @@
1
+ import{A as H,a0 as ve,w as X,B,C as U,y as R,a6 as ee,z as te,d as K,a as se,o as f,c as b,b as $,g as s,i as L,h as t,p as O,t as i,r as oe,a7 as ae,e as d,Y as re,$ as le,a8 as ne,j,V as G,n as w,Q as Y,O as ye,X as he,m as Z,ab as F,U as J,a3 as $e,af as ge,G as Ie,q as _e}from"./index-Dt-pWiW1.js";import{c as Ce}from"./entity-refresh-queue-wQii8Dl5.js";import{u as ke}from"./useMasterDetailFocus-D0j-KcXv.js";import{_ as W}from"./CodeViewer.vue_vue_type_script_setup_true_lang-CiFNEpWo.js";import{_ as ie}from"./StateChip.vue_vue_type_script_setup_true_lang-Bvc9wRyA.js";import{d as be,a as we}from"./utils-rtPwWNel.js";import"./VSpacer-Cl-QiwaM.js";function Ae(e,n){const r=R([]),c=R(null),o=R(null),a=R(""),h=R(!1),u=H(),A=H();let V=!1,x=!1;const S=new Map,D=new Set;let _=0,p=!1;const C=Ce({keyOf:l=>l.processId,merge:xe,isReady:()=>x,isLoading:()=>h.value,isDisposed:()=>p,refreshAll:M,applyBatch:de});ve(()=>{p=!0,x=!1,C.reset(),S.clear(),u.invalidate(),A.invalidate();for(const l of D)l.abort();D.clear()});const ce=te(()=>{if(!o.value)return"";const l=o.value.stderr?`
2
+
3
+ [stderr]
4
+ ${o.value.stderr}`:"";return`${o.value.stdout}${l}`});X(e,()=>{if(!V){V=!0,M();return}C.enqueue(n())},{immediate:!0}),X(c,()=>{_+=1,Q(_)});async function M(){if(p)return;x=!1;const l=u.begin();h.value=!0,a.value="";try{const y=await B("/processes",{signal:l.signal});if(p||!u.isCurrent(l))return;r.value=y,x=!0,c.value&&!y.some(v=>v.processId===c.value)?N():c.value&&Q()}catch(y){u.isCurrent(l)&&(a.value=U(y))}finally{u.isCurrent(l)&&(h.value=!1,x&&C.drain())}}async function de(l){if(p||!l.length)return;const y=u.begin();a.value="";const v=c.value,k=_,P=await Promise.allSettled(l.map(async m=>{if(m.deleted)return{processId:m.processId,deleted:!0};try{if(m.processId===v){const z=await B(`/processes/${encodeURIComponent(m.processId)}`,{signal:y.signal});return{processId:m.processId,deleted:!1,summary:Oe(z),snapshot:z}}if(m.output&&!m.summary)return{processId:m.processId,deleted:!1,summary:null,snapshot:null};const I=await B(`/processes/${encodeURIComponent(m.processId)}/summary`,{signal:y.signal});return{processId:m.processId,deleted:!1,summary:I,snapshot:null}}catch(I){if(E(I))return{processId:m.processId,deleted:!0};throw I}}));if(p||!u.isCurrent(y))return;let q=[...r.value];for(let m=0;m<P.length;m+=1){const I=P[m],z=l[m];if(I.status==="rejected"){ue(z,I.reason);continue}S.delete(z.processId);const g=I.value;if(g.deleted){q=q.filter(T=>T.processId!==g.processId),c.value===g.processId&&N();continue}if(g.summary){const T=q.findIndex(fe=>fe.processId===g.processId);T>=0?q[T]=g.summary:q.push(g.summary)}g.snapshot&&c.value===g.processId&&v===g.processId&&_===k&&(A.invalidate(),o.value=g.snapshot)}r.value=q.sort((m,I)=>I.startedAt.localeCompare(m.startedAt))}function ue(l,y){const v=(S.get(l.processId)??0)+1;if(v<=1&&!p){S.set(l.processId,v),C.enqueue([l]);return}S.delete(l.processId),a.value=U(y)}async function Q(l=_){const y=A.begin(),v=c.value;if(!v){o.value=null;return}try{const k=await B(`/processes/${encodeURIComponent(v)}`,{signal:y.signal});A.isCurrent(y)&&c.value===v&&_===l&&(o.value=k)}catch(k){if(!A.isCurrent(y))return;if(E(k)){N(),M();return}a.value=U(k)}}async function pe(l,y){if(p)return;a.value="";const v=new AbortController;D.add(v);let k=!1;try{await B(`/processes/${encodeURIComponent(l)}/${y?"kill":"terminate"}`,{method:"POST",signal:v.signal})}catch(P){if(p||v.signal.aborted)return;if(!E(P)){a.value=U(P);return}k=P instanceof ee&&P.code==="NOT_FOUND"}finally{D.delete(v)}p||v.signal.aborted||(C.enqueue([{processId:l,summary:!0,output:!0,deleted:k}]),x&&await C.drain())}function me(l){c.value!==l&&(o.value=null,c.value=l)}function N(){c.value=null,o.value=null,A.invalidate()}return{items:r,selected:c,detail:o,error:a,loading:h,processOutput:ce,loadInitial:M,select:me,clearSelection:N,stop:pe}}function xe(e,n){return{processId:n.processId,output:!!(e?.output||n.output),summary:!!(e?.summary||n.summary),deleted:!!(e?.deleted||n.deleted)}}function Oe(e){return{processId:e.processId,command:e.command,args:e.args,state:e.state,startedAt:e.startedAt,durationMs:e.durationMs}}function E(e){return e instanceof ee&&(e.code==="NOT_FOUND"||e.code==="CONFLICT")}const Se={class:"panel-header process-detail-header"},Pe={class:"min-w-0 detail-header-title"},Ve={class:"panel-title text-truncate"},De={class:"panel-subtitle mono text-truncate"},qe={class:"process-detail-actions"},ze={class:"process-output"},Be={class:"process-full-command"},Re={class:"detail-section-label"},Le={class:"detail-facts"},Me={class:"empty-panel"},Ne=K({__name:"ProcessDetail",props:{detail:{},output:{},compact:{type:Boolean}},emits:["back","stop"],setup(e){const n=e,r=se(),c=te(()=>n.detail?[n.detail.command,...n.detail.args].map(o).join(" "):"");function o(a){return a?/^[A-Za-z0-9_@%+=:,./-]+$/.test(a)?a:`'${a.replaceAll("'","'\\''")}'`:"''"}return(a,h)=>e.detail?(f(),b(G,{key:0,class:"panel-card process-detail-card"},{default:$(()=>[s("div",Se,[e.compact?(f(),b(L,{key:0,icon:"$mdiArrowLeft",size:"small",variant:"text","aria-label":t(r).t("$vuetify.chatroom.processes.back"),onClick:h[0]||(h[0]=u=>a.$emit("back"))},null,8,["aria-label"])):O("",!0),s("div",Pe,[s("div",Ve,i(e.detail.command),1),s("div",De,i(e.detail.processId),1)]),s("div",qe,[e.detail.state!=="running"?(f(),b(ie,{key:0,value:e.detail.state},null,8,["value"])):O("",!0),e.detail.state==="running"?(f(),b(L,{key:1,"prepend-icon":"$mdiStopCircleOutline",size:"x-small",variant:"tonal",color:"warning",class:"detail-action-btn",onClick:h[1]||(h[1]=u=>a.$emit("stop",e.detail.processId,!1))},{default:$(()=>[oe(i(t(r).t("$vuetify.chatroom.processes.terminate")),1)]),_:1})):O("",!0),e.detail.state==="running"?(f(),b(ae,{key:2},{activator:$(({props:u})=>[d(L,ne(u,{icon:"$mdiDotsHorizontal",size:"x-small",variant:"text",class:"detail-icon-btn","aria-label":t(r).t("$vuetify.chatroom.processes.moreActions")}),null,16,["aria-label"])]),default:$(()=>[d(re,{density:"compact"},{default:$(()=>[d(le,{title:t(r).t("$vuetify.chatroom.processes.kill"),"prepend-icon":"$mdiCloseOctagonOutline",onClick:h[2]||(h[2]=u=>a.$emit("stop",e.detail.processId,!0))},null,8,["title"])]),_:1})]),_:1})):O("",!0)])]),d(j),s("div",ze,[d(W,{text:e.output,filename:"output.txt",highlight:e.detail.state!=="running"},null,8,["text","highlight"])]),d(j),s("div",Be,[s("div",Re,i(t(r).t("$vuetify.chatroom.processes.fullCommand")),1),d(W,{text:c.value,filename:"command.sh",language:"bash",toolbar:!1},null,8,["text"])]),d(j),s("div",Le,[s("div",null,[s("span",null,i(t(r).t("$vuetify.chatroom.processes.pid")),1),s("strong",null,i(e.detail.pid??"—"),1)]),s("div",null,[s("span",null,i(t(r).t("$vuetify.chatroom.processes.exit")),1),s("strong",null,i(e.detail.exitCode??"—"),1)]),s("div",null,[s("span",null,i(t(r).t("$vuetify.chatroom.processes.timeout")),1),s("strong",null,i(e.detail.timedOut?t(r).t("$vuetify.chatroom.processes.yes"):t(r).t("$vuetify.chatroom.processes.no")),1)])])]),_:1})):(f(),b(G,{key:1,class:"panel-card"},{default:$(()=>[s("div",Me,i(t(r).t("$vuetify.chatroom.processes.select")),1)]),_:1}))}}),Te={class:"panel-header"},Ue={class:"panel-title"},je={class:"panel-subtitle"},Fe={key:0,class:"panel-error",role:"alert"},Ee={key:1,class:"process-record-list",role:"grid"},Ge={class:"process-record-header",role:"row"},Ke={role:"columnheader"},Qe={role:"columnheader"},He={role:"columnheader"},Xe={class:"process-record-duration",role:"columnheader"},Ye={role:"columnheader"},Ze=["aria-selected","data-process-id","onClick","onKeydown"],Je={class:"process-record-main"},We=["title"],et=["title"],tt={class:"process-record-meta"},st={class:"process-record-started",role:"gridcell"},ot={class:"process-record-duration",role:"gridcell"},at={class:"process-record-side",role:"gridcell"},rt={key:2,class:"empty-inline"},lt=K({__name:"ProcessList",props:{items:{},selected:{},error:{}},emits:["select","stop"],setup(e){const n=se();return(r,c)=>(f(),b(G,{class:"panel-card"},{default:$(()=>[s("div",Te,[s("div",null,[s("div",Ue,i(t(n).t("$vuetify.chatroom.processes.title")),1),s("div",je,i(t(n).t("$vuetify.chatroom.processes.subtitle")),1)])]),d(j),e.error?(f(),w("div",Fe,[d(Y,{icon:"$mdiAlertCircleOutline",size:"18"}),s("span",null,i(e.error),1)])):O("",!0),e.items.length?(f(),w("div",Ee,[s("div",Ge,[s("span",Ke,i(t(n).t("$vuetify.chatroom.processes.command")),1),s("span",Qe,i(t(n).t("$vuetify.chatroom.processes.arguments")),1),s("span",He,i(t(n).t("$vuetify.chatroom.processes.started")),1),s("span",Xe,i(t(n).t("$vuetify.chatroom.processes.duration")),1),s("span",Ye,i(t(n).t("$vuetify.chatroom.processes.state")),1)]),(f(!0),w(ye,null,he(e.items,o=>(f(),w("div",{key:o.processId,role:"row",tabindex:"0",class:J(["process-record-row",{"selected-row":e.selected===o.processId}]),"aria-selected":e.selected===o.processId,"data-process-id":o.processId,onClick:a=>r.$emit("select",o.processId),onKeydown:[Z(F(a=>r.$emit("select",o.processId),["self"]),["enter"]),Z(F(a=>r.$emit("select",o.processId),["self","prevent"]),["space"])]},[s("div",Je,[s("div",{class:"process-record-command mono",role:"gridcell",title:o.command},i(o.command),9,We),s("div",{class:J(["process-record-args mono",{muted:!o.args.length}]),role:"gridcell",title:o.args.join(" ")},i(o.args.length?o.args.join(" "):"—"),11,et)]),s("div",tt,[s("div",st,i(t(be)(o.startedAt,t($e)(t(n).current.value))),1),s("div",ot,i(t(we)(o.durationMs)),1)]),s("div",at,[o.state!=="running"?(f(),b(ie,{key:0,value:o.state},null,8,["value"])):(f(),w("div",{key:1,class:"process-actions",onClick:c[0]||(c[0]=F(()=>{},["stop"]))},[d(L,{size:"x-small",variant:"text",class:"table-action-btn","aria-label":t(n).t("$vuetify.chatroom.processes.terminate"),onClick:a=>r.$emit("stop",o.processId,!1)},{default:$(()=>[d(ge,{indeterminate:"",color:"warning",size:22,width:2},{default:$(()=>[d(Y,{icon:"$mdiStop",size:"12"})]),_:1})]),_:1},8,["aria-label","onClick"]),d(ae,null,{activator:$(({props:a})=>[d(L,ne({ref_for:!0},a,{icon:"$mdiDotsHorizontal",size:"x-small",variant:"text",class:"table-action-btn","aria-label":t(n).t("$vuetify.chatroom.processes.moreActions")}),null,16,["aria-label"])]),default:$(()=>[d(re,{density:"compact"},{default:$(()=>[d(le,{title:t(n).t("$vuetify.chatroom.processes.kill"),"prepend-icon":"$mdiCloseOctagonOutline",onClick:a=>r.$emit("stop",o.processId,!0)},null,8,["title","onClick"])]),_:2},1024)]),_:2},1024)]))])],42,Ze))),128))])):(f(),w("div",rt,i(t(n).t("$vuetify.chatroom.processes.empty")),1))]),_:1}))}}),nt={ref:"layout",class:"master-detail-layout processes-layout"},it={key:0,class:"master-pane"},ct={key:1,ref:"detailPane",class:"detail-pane",tabindex:"-1"},ht=K({__name:"ProcessesView",props:{revision:{},changes:{}},setup(e){const n=e,{mdAndDown:r}=Ie(),{focusDetail:c,focusMaster:o}=ke(r),a=Ae(()=>n.revision,()=>n.changes),{items:h,selected:u,detail:A,error:V,processOutput:x}=a;function S(p){a.select(p),c()}function D(){const p=u.value;a.clearSelection(),p&&o(`[data-process-id="${CSS.escape(p)}"]`)}function _(p,C){a.stop(p,C)}return(p,C)=>(f(),w("div",nt,[!t(r)||!t(u)?(f(),w("div",it,[d(lt,{items:t(h),selected:t(u),error:t(V),onSelect:S,onStop:_},null,8,["items","selected","error"])])):O("",!0),!t(r)||t(u)?(f(),w("div",ct,[t(r)&&t(u)&&t(V)?(f(),b(_e,{key:0,type:"error",variant:"tonal",density:"compact"},{default:$(()=>[oe(i(t(V)),1)]),_:1})):O("",!0),d(Ne,{detail:t(A),output:t(x),compact:t(r),onBack:D,onStop:_},null,8,["detail","output","compact"])],512)):O("",!0)],512))}});export{ht as default};
@@ -0,0 +1 @@
1
+ import{d as n,a as i,o as u,c as d,a4 as p,b as v,r as m,t as f,z as s,bR as C}from"./index-Dt-pWiW1.js";const h=n({__name:"StateChip",props:{value:{}},setup(l){const e=l,t=i(),c=s(()=>({running:"warning",success:"success",exited:"success",error:"error",failed:"error",cancelled:"default",killed:"default"})[e.value]??"default"),r=s(()=>e.value==="running"?"$mdiProgressClock":e.value==="success"||e.value==="exited"?"$mdiCheckCircleOutline":e.value==="error"||e.value==="failed"?"$mdiAlertCircleOutline":"$mdiCircleOutline"),o=s(()=>{const a=C(e.value);return a?t.t(a):e.value});return(a,_)=>(u(),d(p,{class:"state-chip",color:c.value,"prepend-icon":r.value,size:"small",variant:"tonal"},{default:v(()=>[m(f(o.value),1)]),_:1},8,["color","prepend-icon"]))}});export{h as _};
@@ -0,0 +1 @@
1
+ import{A as P,w as Q,a5 as Y,aa as H,B as J,C as W,y as k,d as ee,a as te,G as le,o as d,n as p,h as e,e as h,b as V,g as t,t as s,i as D,Z as se,aY as X,O as q,X as Z,c as I,r as B,j as F,Q as ae,p as b,U as oe,a4 as ne,q as ie,V as G,a3 as ue,z as T}from"./index-Dt-pWiW1.js";import{u as re}from"./useMasterDetailFocus-D0j-KcXv.js";import{c as ce,d as de}from"./utils-rtPwWNel.js";import{_ as me}from"./CodeViewer.vue_vue_type_script_setup_true_lang-CiFNEpWo.js";import{V as ve}from"./VSelect-BPRXx8KM.js";import"./VSpacer-Cl-QiwaM.js";const fe=100,x=1e3;function ge(){const u=k([]),r=k(null),l=k("all"),a=k("all"),v=k(null),S=k(!1),_=k(!1),L=k(""),o=k(!1),w=P(),f=P(),M=new Map;let C=null,E=!1;Q([l,a],()=>{E&&R()}),Y(()=>{E=!0,U(),R()}),H(()=>{E=!1,C?.close(),C=null});async function R(){f.invalidate(),_.value=!1,M.clear();const n=w.begin();S.value=!0,L.value="",o.value=!1;try{const g=await J(K(l.value,a.value),{signal:n.signal});if(!w.isCurrent(n))return;const c=j(g.items,[...M.values()]);u.value=c.slice(0,x),o.value=c.length>x||u.value.length>=x&&g.nextCursor!==null,v.value=o.value?null:g.nextCursor,r.value&&(r.value=u.value.find($=>$.id===r.value?.id)??null),M.clear()}catch(g){w.isCurrent(n)&&(L.value=W(g))}finally{w.isCurrent(n)&&(S.value=!1)}}async function N(){if(S.value||!v.value||_.value)return;const n=f.begin(),g=v.value;_.value=!0,L.value="";try{const c=await J(K(l.value,a.value,g),{signal:n.signal});if(!f.isCurrent(n))return;const $=j(u.value,c.items);u.value=$.slice(0,x),o.value=$.length>x||u.value.length>=x&&c.nextCursor!==null,v.value=o.value?null:c.nextCursor}catch(c){f.isCurrent(n)&&(L.value=W(c))}finally{f.isCurrent(n)&&(_.value=!1)}}function U(){C?.close();const n=new EventSource("/api/logs/stream");C=n,n.addEventListener("open",()=>{C===n&&R()}),n.addEventListener("log",g=>{if(C!==n)return;const c=ye(g);if(!c||!O(c))return;S.value&&M.set(c.id,c);const $=j([c],u.value);$.length>x&&(o.value=!0),u.value=$.slice(0,x),o.value&&(v.value=null),r.value?.id===c.id&&(r.value=c)})}function O(n){return(l.value==="all"||n.level===l.value)&&(a.value==="all"||n.module===a.value)}function z(n){r.value=n}function A(){r.value=null}return{records:u,selected:r,level:l,module:a,nextCursor:v,loading:S,loadingMore:_,error:L,limitReached:o,loadInitial:R,loadMore:N,select:z,clearSelection:A}}function j(u,r){const l=new Map;for(const a of r)l.set(a.id,a);for(const a of u)l.set(a.id,a);return[...l.values()].sort((a,v)=>v.timestamp.localeCompare(a.timestamp)||v.id.localeCompare(a.id))}function ye(u){if(!(u instanceof MessageEvent)||typeof u.data!="string")return null;try{const r=JSON.parse(u.data);return typeof r?.id=="string"&&typeof r?.message=="string"?r:null}catch{return null}}function K(u,r,l){const a=new URLSearchParams({limit:String(fe)});return u!=="all"&&a.set("level",u),r!=="all"&&a.set("module",r),l&&a.set("cursor",l),`/logs?${a}`}const pe={ref:"layout",class:"master-detail-layout system-logs-layout"},he={key:0,class:"master-pane"},_e={class:"panel-header system-logs-header"},Le={class:"panel-title"},Ce={class:"panel-subtitle"},$e={class:"system-log-controls"},ke={key:0,class:"panel-error",role:"alert"},we={key:1,class:"system-log-list"},Ve={class:"system-log-header","aria-hidden":"true"},be=["aria-current","data-log-id","onClick"],xe=["title"],Se={class:"system-log-level"},Re={class:"system-log-module mono"},Me={class:"system-log-message"},Ee={class:"mono"},Ie={key:2,class:"empty-inline"},De={key:4,class:"system-log-load-more"},Be={key:1,ref:"detailPane",class:"detail-pane",tabindex:"-1"},Ne={class:"panel-header compact-header"},Ue={class:"min-w-0 detail-header-title"},Oe={class:"panel-title text-truncate"},ze={class:"panel-subtitle mono text-truncate"},Ae={class:"detail-facts system-log-facts"},qe={class:"system-log-detail-data"},Fe={class:"detail-section-label"},Ge={class:"empty-panel"},Ke=ee({__name:"SystemLogsView",setup(u){const r=["app","http","auth","cloud","plugin","mcp"],l=te(),{mdAndDown:a}=le(),{focusDetail:v,focusMaster:S}=re(a),_=ge(),{records:L,selected:o,level:w,module:f,nextCursor:M,loading:C,loadingMore:E,error:R,limitReached:N,loadInitial:U,loadMore:O}=_,z=T(()=>[{title:l.t("$vuetify.chatroom.systemLogs.allLevels"),value:"all"},{title:"INFO",value:"info"},{title:"WARN",value:"warn"},{title:"ERROR",value:"error"},{title:"DEBUG",value:"debug"}]),A=T(()=>{const m=new Set(r);for(const y of L.value)m.add(y.module);return f.value!=="all"&&m.add(f.value),[{title:l.t("$vuetify.chatroom.systemLogs.allModules"),value:"all"},...[...m].sort((y,i)=>y.localeCompare(i)).map(y=>({title:y,value:y}))]}),n=T(()=>o.value?.data?JSON.stringify(o.value.data,null,2):"");function g(m){if(m==="error")return"error";if(m==="warn")return"warning";if(m==="info")return"primary"}function c(m){_.select(m),v()}function $(){const m=o.value?.id??null;_.clearSelection(),m&&S(`[data-log-id="${CSS.escape(m)}"]`)}return(m,y)=>(d(),p("div",pe,[!e(a)||!e(o)?(d(),p("div",he,[h(G,{class:"panel-card"},{default:V(()=>[t("div",_e,[t("div",null,[t("div",Le,s(e(l).t("$vuetify.chatroom.systemLogs.title")),1),t("div",Ce,s(e(l).t("$vuetify.chatroom.systemLogs.subtitle")),1)]),h(D,{icon:"$mdiRefresh",size:"small",variant:"text",loading:e(C),"aria-label":e(l).t("$vuetify.chatroom.systemLogs.refresh"),onClick:e(U)},null,8,["loading","aria-label","onClick"])]),t("div",$e,[h(se,{modelValue:e(w),"onUpdate:modelValue":y[0]||(y[0]=i=>X(w)?w.value=i:null),mandatory:"",variant:"text",class:"record-filters"},{default:V(()=>[(d(!0),p(q,null,Z(z.value,i=>(d(),I(D,{key:i.value,value:i.value,size:"small"},{default:V(()=>[B(s(i.title),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"]),h(ve,{modelValue:e(f),"onUpdate:modelValue":y[1]||(y[1]=i=>X(f)?f.value=i:null),items:A.value,"item-title":"title","item-value":"value","aria-label":e(l).t("$vuetify.chatroom.systemLogs.module"),density:"compact",variant:"outlined","hide-details":"",class:"system-log-module-filter"},null,8,["modelValue","items","aria-label"])]),h(F),e(R)?(d(),p("div",ke,[h(ae,{icon:"$mdiAlertCircleOutline",size:"18"}),t("span",null,s(e(R)),1)])):b("",!0),e(L).length?(d(),p("div",we,[t("div",Ve,[t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.time")),1),t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.level")),1),t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.module")),1),t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.message")),1)]),(d(!0),p(q,null,Z(e(L),i=>(d(),p("button",{key:i.id,type:"button",class:oe(["system-log-row",{"selected-row":e(o)?.id===i.id}]),"aria-current":e(o)?.id===i.id?"true":void 0,"data-log-id":i.id,onClick:Te=>c(i)},[t("span",{class:"system-log-time mono",title:i.timestamp},s(e(ce)(i.timestamp)),9,xe),t("span",Se,[h(ne,{size:"x-small",variant:"tonal",color:g(i.level)},{default:V(()=>[B(s(i.level.toUpperCase()),1)]),_:2},1032,["color"])]),t("span",Re,s(i.module),1),t("span",Me,[t("strong",null,s(i.message),1),t("small",Ee,s(i.event),1)])],10,be))),128))])):e(C)?b("",!0):(d(),p("div",Ie,s(e(l).t("$vuetify.chatroom.systemLogs.empty")),1)),e(N)?(d(),I(ie,{key:3,type:"info",variant:"tonal",density:"compact",class:"system-log-window-limit"},{default:V(()=>[B(s(e(l).t("$vuetify.chatroom.systemLogs.windowLimit")),1)]),_:1})):b("",!0),e(M)?(d(),p("div",De,[h(D,{variant:"text",size:"small",loading:e(E),onClick:e(O)},{default:V(()=>[B(s(e(l).t("$vuetify.chatroom.systemLogs.loadMore")),1)]),_:1},8,["loading","onClick"])])):b("",!0)]),_:1})])):b("",!0),!e(a)||e(o)?(d(),p("div",Be,[e(o)?(d(),I(G,{key:0,class:"panel-card"},{default:V(()=>[t("div",Ne,[e(a)?(d(),I(D,{key:0,icon:"$mdiArrowLeft",size:"small",variant:"text","aria-label":e(l).t("$vuetify.chatroom.systemLogs.back"),onClick:$},null,8,["aria-label"])):b("",!0),t("div",Ue,[t("div",Oe,s(e(o).message),1),t("div",ze,s(e(o).event),1)])]),h(F),t("div",Ae,[t("div",null,[t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.time")),1),t("strong",null,s(e(de)(e(o).timestamp,e(ue)(e(l).current.value))),1)]),t("div",null,[t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.level")),1),t("strong",null,s(e(o).level.toUpperCase()),1)]),t("div",null,[t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.module")),1),t("strong",null,s(e(o).module),1)]),t("div",null,[t("span",null,s(e(l).t("$vuetify.chatroom.systemLogs.event")),1),t("strong",null,s(e(o).event),1)])]),n.value?(d(),p(q,{key:0},[h(F),t("div",qe,[t("div",Fe,s(e(l).t("$vuetify.chatroom.systemLogs.data")),1),h(me,{text:n.value,filename:"log.json",language:"json",toolbar:!1},null,8,["text"])])],64)):b("",!0)]),_:1})):(d(),I(G,{key:1,class:"panel-card"},{default:V(()=>[t("div",Ge,s(e(l).t("$vuetify.chatroom.systemLogs.select")),1)]),_:1}))],512)):b("",!0)],512))}});export{Ke as default};
@@ -0,0 +1 @@
1
+ .system-logs-layout{grid-template-columns:minmax(0,1.65fr) minmax(0,.85fr)}.system-log-controls{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px}.system-log-controls .record-filters{min-width:0;overflow-x:auto;scrollbar-width:none}.system-log-controls .record-filters::-webkit-scrollbar{display:none}.system-log-module-filter{min-width:0;max-width:45%;flex:1 1 auto}.system-log-list{container-type:inline-size}.system-log-header,.system-log-row{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,.5fr) minmax(0,.65fr) minmax(0,3.15fr);column-gap:12px;align-items:center}.system-log-header{padding:6px 12px;border-bottom:1px solid rgb(var(--v-theme-outline),.08);background:rgb(var(--v-theme-on-surface),.018);color:rgb(var(--v-theme-on-surface),.46);font-size:11px;font-weight:600}.system-log-header>span:nth-child(2),.system-log-header>span:nth-child(3){justify-self:center;text-align:center}.system-log-row{width:100%;content-visibility:auto;contain-intrinsic-size:40px;min-width:0;padding:5px 12px;border:0;border-bottom:1px solid rgb(var(--v-theme-outline),.08);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.system-log-row:hover,.system-log-row.selected-row{background:rgb(var(--v-theme-primary),.045)}.system-log-time,.system-log-module{color:rgb(var(--v-theme-on-surface),.56);font-size:11px;white-space:nowrap}.system-log-module{min-inline-size:0;overflow:hidden;text-overflow:ellipsis}.system-log-level,.system-log-module{width:100%;justify-self:stretch;text-align:center}.system-log-message{display:flex;min-width:0;flex-direction:column;gap:2px;overflow:hidden}.system-log-message strong,.system-log-message small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.system-log-message strong{font-size:12px;font-weight:600}.system-log-message small{color:rgb(var(--v-theme-on-surface),.48);font-size:10.5px}.system-log-load-more{display:flex;justify-content:center;padding:8px 12px}.system-log-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.system-log-facts strong{overflow-wrap:anywhere}.system-log-detail-data{padding:12px 18px 18px}@container (max-width: 620px){.system-log-header{display:none}.system-log-row{grid-template-columns:max-content max-content minmax(0,1fr);grid-template-areas:"time level module" "message message message";gap:4px 8px}.system-log-time{grid-area:time}.system-log-level{grid-area:level}.system-log-module{grid-area:module;min-width:0;overflow:hidden;text-align:left;text-overflow:ellipsis}.system-log-message{grid-area:message}}@media(max-width:1100px){.system-logs-layout{grid-template-columns:minmax(0,1fr)}.system-logs-layout .detail-pane{position:static}}
@@ -0,0 +1 @@
1
+ import{D as xe,ba as Be,w as ae,H as Ae,g as A,O as fe,a8 as j,I as Z,N as Ee,G as Xe,a$ as Ie,y as G,a0 as Le,aD as ce,ad as X,bS as Je,z as L,ae as Ce,ao as ge,bT as Ke,bU as Ze,bf as et,a5 as tt,by as lt,e as x,S as ve,T as He,U as $e,ax as pe,W as nt,M as at,bV as J,ak as ye,bW as ot,ah as rt,bz as st,bX as ze,h as me,b9 as ut,a as it,ag as ct,aj as ke,al as ft,a_ as dt,ai as vt,av as mt,an as Se,bY as ht,bZ as gt,az as pt,aA as yt,J as bt,b_ as wt,l as Pe,Q as Fe,a7 as kt,Y as St,$ as Re,aq as Vt,j as It,ar as Ct,as as xt,at as At,a4 as Me,au as Tt,R as Pt,r as Ft,b7 as Rt,aw as _e,b$ as De}from"./index-Dt-pWiW1.js";import{V as Mt}from"./CodeViewer.vue_vue_type_script_setup_true_lang-CiFNEpWo.js";const _t=Z({renderless:Boolean,...Ee()},"VVirtualScrollItem"),Dt=xe()({name:"VVirtualScrollItem",inheritAttrs:!1,props:_t(),emits:{"update:height":e=>!0},setup(e,{attrs:t,emit:o,slots:l}){const{resizeRef:a,contentRect:u}=Be(void 0,"border");ae(()=>u.value?.height,i=>{i!=null&&o("update:height",i)}),Ae(()=>e.renderless?A(fe,null,[l.default?.({itemRef:a})]):A("div",j({ref:a,class:["v-virtual-scroll__item",e.class],style:e.style},t),[l.default?.()]))}}),Ot=-1,Bt=1,he=100,Et=Z({itemHeight:{type:[Number,String],default:null},itemKey:{type:[String,Array,Function],default:null},height:[Number,String]},"virtual");function Lt(e,t){const o=Xe(),l=G(0);Ie(()=>{l.value=parseFloat(e.itemHeight||0)});const a=G(0),u=G(Math.ceil((parseInt(e.height)||o.height.value)/(l.value||16))||1),i=G(0),r=G(0),s=X(),c=X();let w=0;const{resizeRef:g,contentRect:h}=Be();Ie(()=>{g.value=s.value});const m=L(()=>s.value===document.documentElement?o.height.value:h.value?.height||parseInt(e.height)||0),d=L(()=>!!(s.value&&c.value&&m.value&&l.value));let S=Array.from({length:t.value.length}),p=Array.from({length:t.value.length});const q=G(0);let P=-1;function F(f){return S[f]||l.value}const K=Je(()=>{const f=performance.now();p[0]=0;const b=t.value.length;for(let V=1;V<=b;V++)p[V]=(p[V-1]||0)+F(V-1);q.value=Math.max(q.value,performance.now()-f),H()},q),be=ae(d,f=>{f&&(be(),w=c.value.offsetTop,K.immediate(),H(),~P&&Ce(()=>{ge&&window.requestAnimationFrame(()=>{~P&&oe(P)})}))});Le(()=>{K.clear()});function z(f,b){const V=S[f],C=l.value;b>0&&(l.value=C?Math.min(C,b):b),(V!==b||C!==l.value)&&(S[f]=b,K())}function I(f){f=ce(f,0,t.value.length);const b=Math.floor(f),V=f%1,C=b+1,W=p[b]||0,R=p[C]||W;return W+(R-W)*V}function re(f){return Kt(p,f)}let N=0,O=0,_=0;ae(m,(f,b)=>{H(),f<b&&requestAnimationFrame(()=>{O=0,H()})});let ee=-1;function se(){if(!s.value||!c.value)return;const f=s.value.scrollTop,b=performance.now();b-_>500?(O=Math.sign(f-N),w=c.value.offsetTop):O=f-N,N=f,_=b,window.clearTimeout(ee),ee=window.setTimeout(k,500),H()}function k(){!s.value||!c.value||(O=0,_=0,window.clearTimeout(ee),H())}let de=-1;function H(){cancelAnimationFrame(de),de=requestAnimationFrame(we)}function we(){if(!s.value||!m.value||!l.value)return;const f=N-w,b=Math.sign(O),V=Math.max(0,f-he),C=ce(re(V),0,t.value.length),W=f+m.value+he,R=ce(re(W)+1,C+1,t.value.length);if((b!==Ot||C<a.value)&&(b!==Bt||R>u.value)){const te=I(a.value)-I(C),Y=I(R)-I(u.value);Math.max(te,Y)>he?(a.value=C,u.value=R):(C<=0&&(a.value=C),R>=t.value.length&&(u.value=R,a.value=C))}i.value=I(a.value),r.value=I(t.value.length)-I(u.value)}function oe(f){const b=I(f);if(!s.value||f&&!b){P=f;return}const V=l.value||16,C=Math.ceil(he/V),W=Math.max(1,Math.ceil((m.value||0)/V));a.value=ce(f-C,0,Math.max(0,t.value.length-1)),u.value=ce(f+W+C,a.value+1,t.value.length),i.value=I(a.value),r.value=I(t.value.length)-I(u.value),O=0,_=0,P=f,Ce(()=>{const R=s.value;if(!R||!~P||P!==f)return;const te=I(f);R.scrollTop=te,N=R.scrollTop;const Y=I(t.value.length)+w;f&&R.scrollTop<te-1&&R.scrollHeight<Y-1?ge&&requestAnimationFrame(()=>{P===f&&oe(f)}):(P=-1,H())})}const D=L(()=>t.value.slice(a.value,u.value).map((f,b)=>{const V=b+a.value;return{raw:f,index:V,key:Ke(f,e.itemKey,V)}}));return ae(t,()=>{S=Array.from({length:t.value.length}),p=Array.from({length:t.value.length}),K.immediate(),H()},{deep:1}),{calculateVisibleItems:H,containerRef:s,markerRef:c,computedItems:D,paddingTop:i,paddingBottom:r,scrollToIndex:oe,handleScroll:se,handleScrollend:k,handleItemResize:z}}function Kt(e,t){let o=e.length-1,l=0,a=0,u=null,i=-1;if(e[o]<t)return o;for(;l<=o;)if(a=l+o>>1,u=e[a],u>t)o=a-1;else if(u<t)i=a,l=a+1;else return u===t?a:l;return i}const Ht=Z({items:{type:Array,default:()=>[]},renderless:Boolean,...Et(),...Ee(),...at()},"VVirtualScroll"),$t=xe()({name:"VVirtualScroll",props:Ht(),setup(e,{slots:t}){const o=Ze("VVirtualScroll"),{dimensionStyles:l}=nt(e),{calculateVisibleItems:a,containerRef:u,markerRef:i,handleScroll:r,handleScrollend:s,handleItemResize:c,scrollToIndex:w,paddingTop:g,paddingBottom:h,computedItems:m}=Lt(e,pe(()=>e.items));return et(()=>e.renderless,()=>{function d(S=!1){const p=S?"addEventListener":"removeEventListener";ge&&(u.value===document.documentElement?(document[p]("scroll",r,{passive:!0}),document[p]("scrollend",s)):(u.value?.[p]("scroll",r,{passive:!0}),u.value?.[p]("scrollend",s)))}tt(()=>{u.value=lt(o.vnode.el,!0),d(!0)}),Le(d)}),Ae(()=>{const d=m.value.map(S=>x(Dt,{key:S.key,renderless:e.renderless,"onUpdate:height":p=>c(S.index,p)},{default:p=>t.default?.({item:S.raw,index:S.index,...p})}));return e.renderless?A(fe,null,[A("div",{ref:i,class:"v-virtual-scroll__spacer",style:{paddingTop:ve(g.value)}},null),d,A("div",{class:"v-virtual-scroll__spacer",style:{paddingBottom:ve(h.value)}},null)]):A("div",{ref:u,class:$e(["v-virtual-scroll",e.class]),onScrollPassive:r,onScrollend:s,style:He([l.value,e.style])},[A("div",{ref:i,class:"v-virtual-scroll__container",style:{paddingTop:ve(g.value),paddingBottom:ve(h.value)}},[d])])}),{calculateVisibleItems:a,scrollToIndex:w}}});function Ne(e){const t=e.filter(l=>l[0]<l[1]).toSorted((l,a)=>l[0]-a[0]),o=[];for(const l of t){const a=o.at(-1);a&&l[0]<=a[1]?a[1]=Math.max(a[1],l[1]):o.push([l[0],l[1]])}return o}function Oe(e,t){const o=[];let l=0;for(const[a,u]of t)l<a&&o.push({text:e.slice(l,a),match:!1}),o.push({text:e.slice(a,u),match:!0}),l=u;return l<e.length&&o.push({text:e.slice(l),match:!1}),o}function zt(e,t,o,l){const a=ye(t).filter(Boolean),u=l?e.toLocaleLowerCase():e,i=[];for(const r of a){const s=l?r.toLocaleLowerCase():r;let c=u.indexOf(s);if(c!==-1&&(i.push([c,c+r.length]),o))for(c=u.indexOf(s,c+r.length);c!==-1;)i.push([c,c+r.length]),c=u.indexOf(s,c+r.length)}return Ne(i)}function Nt(e,t,o={}){const l=J(e),a=J(t),u=J(o.matches),i=J(o.matchAll)??!1,r=J(o.ignoreCase)??!1;if(u?.length)return Oe(l,Ne(u));if(a){const s=zt(l,a,i,r);return s.length>0?Oe(l,s):[{text:l,match:!1}]}return[{text:l,match:!1}]}const Ut=Z({text:{type:String,default:""},query:[String,Array],matches:Array,matchAll:Boolean,ignoreCase:Boolean,color:String,opacity:[String,Number],markClass:String,...st({tag:"span"})},"VHighlight"),jt=ot({name:"VHighlight",props:Ut(),setup(e){const t=L(()=>Nt(()=>e.text,()=>e.query,{matches:()=>e.matches,matchAll:()=>e.matchAll,ignoreCase:()=>e.ignoreCase})),{textColorClasses:o,textColorStyles:l}=rt(()=>e.color);return()=>x(e.tag,{class:"v-highlight"},{default:()=>[t.value.map((a,u)=>a.match?A("mark",{key:u,class:$e(["v-highlight__mark",o.value,e.markClass]),style:He([l.value,{"--v-highlight-opacity":e.opacity}])},[a.text]):A("span",{key:u},[a.text]))]})}});function Gt(e,t,o){return function(a){return!a.relatedTarget&&document.activeElement===document.body&&e.value?(requestAnimationFrame(()=>{if(!e.value)return;const u=t();((u&&ze(u)[0])??o())?.focus({preventScroll:!0})}),!0):!1}}function Wt(e,t){const o=G(!1);let l;function a(r){cancelAnimationFrame(l),o.value=!0,l=requestAnimationFrame(()=>{l=requestAnimationFrame(()=>{o.value=!1})})}async function u(){await new Promise(r=>requestAnimationFrame(r)),await new Promise(r=>requestAnimationFrame(r)),await new Promise(r=>requestAnimationFrame(r)),await new Promise(r=>{if(o.value){const s=ae(o,()=>{s(),r()})}else r()})}async function i(r){if(r.key==="Tab"&&t.value?.focus(),!["PageDown","PageUp","Home","End"].includes(r.key))return;const s=e.value?.$el;if(!s)return;(r.key==="Home"||r.key==="End")&&s.scrollTo({top:r.key==="Home"?0:s.scrollHeight,behavior:"smooth"}),await u();const c=s.querySelectorAll(":scope > :not(.v-virtual-scroll__spacer)");if(r.key==="PageDown"||r.key==="Home"){const w=s.getBoundingClientRect().top;for(const g of c)if(g.getBoundingClientRect().top>=w){g.focus();break}}else{const w=s.getBoundingClientRect().bottom;for(const g of[...c].reverse())if(g.getBoundingClientRect().bottom<=w){g.focus();break}}}return{onScrollPassive:a,onKeydown:i}}function qt({groups:e,onLeave:t}){function o(i){return i.type==="list"?i.contentRef.value?.$el:i.contentRef.value}function l(i){const r=o(i);return r?ze(r):[]}function a(i){const r=i.target,s=i.shiftKey?"backward":"forward",c=e.map(l),w=e.map(h=>h.type==="list"?h.contentRef.value?.$el:h.contentRef.value).findIndex(h=>h?.contains(r)),g=u(c,w,s,r);if(g===null){const h=e[w],m=c[w];(h.type==="list"||(s==="forward"?m.at(-1)===i.target:m.at(0)===i.target))&&t()}else{i.preventDefault(),i.stopImmediatePropagation();const h=e[g];if(h.type==="list"&&J(h.displayItemsCount)>0)h.contentRef.value?.focus(0);else{const m=s==="forward";c[g].at(m?0:-1).focus()}}}function u(i,r,s,c){const w=e[r],g=i[r];if(w.type!=="list"&&!(s==="forward"?g.at(-1)===c:g.at(0)===c))return null;const h=s==="forward"?1:-1;for(let m=r+h;m>=0&&m<e.length;m+=h){const d=e[m];if(i[m].length>0||d.type==="list"&&J(d.displayItemsCount)>0)return m}return null}return{onTabKeydown:a}}const Yt=(e,t,o)=>{if(e==null||t==null)return-1;if(!t.length)return 0;e=e.toString().toLocaleLowerCase(),t=t.toString().toLocaleLowerCase();const l=[];let a=e.indexOf(t);for(;~a;)l.push([a,a+t.length]),a=e.indexOf(t,a+t.length);return l.length?l:-1};function Ve(e,t){if(!(e==null||typeof e=="boolean"||e===-1))return typeof e=="number"?[[e,e+t.length]]:Array.isArray(e[0])?e:[e]}const Qt=Z({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:"intersection"},noFilter:Boolean},"filter");function Xt(e,t,o){const l=[],a=o?.default??Yt,u=o?.filterKeys?ye(o.filterKeys):!1,i=Object.keys(o?.customKeyFilter??{}).length;if(!e?.length)return l;let r=[];e:for(let s=0;s<e.length;s++){const[c,w=c]=ye(e[s]),g={},h={};let m=-1;if((t||i>0)&&!o?.noFilter){let d=!1;if(typeof c=="object"){if(c.type==="divider"||c.type==="subheader"){(r.at(-1)?.type!=="divider"||c.type!=="subheader")&&(r=[]),r.push({index:s,matches:{},type:c.type});continue}const q=u||Object.keys(w);d=q.length===i;for(const P of q){const F=Ke(w,P),K=o?.customKeyFilter?.[P];if(m=K?K(F,t,c):a(F,t,c),m!==-1&&m!==!1)K?g[P]=Ve(m,t):h[P]=Ve(m,t);else if(o?.filterMode==="every")continue e}}else m=a(c,t,c),m!==-1&&m!==!1&&(h.title=Ve(m,t));const S=Object.keys(h).length,p=Object.keys(g).length;if(!S&&!p||o?.filterMode==="union"&&p!==i&&!S||o?.filterMode==="intersection"&&(p!==i||!S&&i>0&&!d))continue}r.length&&(l.push(...r),r=[]),l.push({index:s,matches:{...h,...g}})}return l}function Jt(e,t,o,l){const a=G([]),u=G(new Map),i=L(()=>me(t));Ie(()=>{const s=typeof o=="function"?o():me(o),c=typeof s!="string"&&typeof s!="number"?"":String(s),w=Xt(i.value,c,{customKeyFilter:{...e.customKeyFilter,...me(l?.customKeyFilter)},default:e.customFilter,filterKeys:e.filterKeys,filterMode:e.filterMode,noFilter:e.noFilter}),g=me(t),h=[],m=new Map;w.forEach(({index:d,matches:S})=>{const p=g[d];h.push(p),p.value!==void 0&&m.set(p.value,S)}),a.value=h,u.value=m});function r(s){return u.value.get(s.value)}return{filteredItems:a,filteredMatches:u,getMatches:r}}const Zt=Z({closeText:{type:String,default:"$vuetify.close"},openText:{type:String,default:"$vuetify.open"}},"autocomplete");function el(e,t){const o=ut(),l=L(()=>`menu-${o}`),a=pe(()=>J(t)),u=pe(()=>l.value);return{menuId:l,ariaExpanded:a,ariaControls:u}}const tl=Z({chips:Boolean,closableChips:Boolean,eager:Boolean,hideNoData:Boolean,hideSelected:Boolean,listProps:{type:Object},menu:Boolean,menuElevation:[Number,String],menuIcon:{type:bt,default:"$dropdown"},menuProps:{type:Object},multiple:Boolean,noDataText:{type:String,default:"$vuetify.noDataText"},openOnClear:Boolean,itemColor:String,noAutoScroll:Boolean,...Zt(),...wt({itemChildren:!1})},"Select"),ll=Z({search:String,...Qt({filterKeys:["title"]}),...tl(),...pt(yt({modelValue:null,role:"combobox"}),["validationValue","dirty"]),...ht({transition:{component:gt}})},"VSelect"),ol=xe()({name:"VSelect",props:ll(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:menu":e=>!0,"update:search":e=>!0},setup(e,{slots:t}){const{t:o}=it(),l=X(),a=X(),u=X(),i=X(),r=X(),{items:s,transformIn:c,transformOut:w}=ct(e),g=ke(e,"search",""),{filteredItems:h,getMatches:m}=Jt(e,s,()=>g.value),d=ke(e,"modelValue",[],n=>c(n===null?[null]:ye(n)),n=>{const y=w(n);return e.multiple?y:y[0]??null}),S=L(()=>typeof e.counterValue=="function"?e.counterValue(d.value):typeof e.counterValue=="number"?e.counterValue:d.value.length),p=ft(e),q=dt(e),P=L(()=>d.value.map(n=>n.value)),F=G(!1),K=pe(()=>e.closableChips&&!p.isReadonly.value&&!p.isDisabled.value),{InputIcon:be}=vt(e);let z="",I=0,re,N=!1,O=null;const _=L(()=>{const n=g.value?h.value:s.value;return e.hideSelected?n.filter(y=>!d.value.some(M=>(e.valueComparator||Se)(M,y))):n}),ee=L(()=>e.hideNoData&&!_.value.length||p.isReadonly.value||p.isDisabled.value),se=ke(e,"menu"),k=L({get:()=>se.value,set:n=>{se.value&&!n&&a.value?.ΨopenChildren.size||n&&ee.value||(se.value=n)}}),{menuId:de,ariaExpanded:H,ariaControls:we}=el(e,k),oe=L(()=>({...e.menuProps,activatorProps:{...e.menuProps?.activatorProps||{},"aria-haspopup":"listbox"}})),D=X(),f=Wt(D,l),b=Gt(k,()=>a.value?.contentEl,()=>l.value?.controlRef),{onTabKeydown:V}=qt({groups:[{type:"element",contentRef:u},{type:"list",contentRef:D,displayItemsCount:()=>_.value.length},{type:"element",contentRef:i}],onLeave:()=>{k.value=!1,l.value?.focus()}});function C(n){e.openOnClear&&(k.value=!0)}function W(){ee.value||(N=!1,O=null,k.value=!k.value)}function R(n){n.key==="Tab"&&V(n),D.value?.$el.contains(n.target)&&_e(n)&&te(n)}function te(n){if(!n.key||p.isReadonly.value)return;if(["Enter"," ","ArrowDown","ArrowUp","Home","End"].includes(n.key)&&n.preventDefault(),["ArrowDown","ArrowUp"].includes(n.key)?O=n.key==="ArrowDown"?"next":"prev":["Enter"," "].includes(n.key)&&(O=null),["Enter","ArrowDown"," "].includes(n.key)&&(N=!0,k.value=!0),["Escape","Tab"].includes(n.key)&&(k.value=!1),e.clearable&&n.key==="Backspace"){n.preventDefault(),d.value=[],C();return}n.key==="Home"?D.value?.focus("first"):n.key==="End"&&D.value?.focus("last");const y=1e3;if(!_e(n))return;const M=performance.now();M-re>y&&(z="",I=0),z+=n.key.toLowerCase(),re=M;const le=_.value;function Q(){let T=ne();return T||z.at(-1)===z.at(-2)&&(z=z.slice(0,-1),I++,T=ne(),T)||(I=0,T=ne(),T)?T:(z=n.key.toLowerCase(),ne())}function ne(){for(let T=I;T<le.length;T++){const U=le[T];if(U.title.toLowerCase().startsWith(z))return[U,T]}}const $=Q();if(!$)return;const[v,B]=$;I=B,D.value?.focus(B),e.multiple||(d.value=[v])}function Y(n,y=!0){if(!n.props.disabled)if(e.multiple){const M=d.value.findIndex(Q=>(e.valueComparator||Se)(Q.value,n.value)),le=y??!~M;if(~M){const Q=le?[...d.value,n]:[...d.value];Q.splice(M,1),d.value=Q}else le&&(d.value=[...d.value,n])}else{const M=y!==!1;d.value=M?[n]:[],Ce(()=>{k.value=!1})}}function Te(n){const y=n.target;l.value?.$el.contains(y)||(k.value=!1)}function Ue(){return _.value.findIndex(n=>d.value.some(y=>(e.valueComparator||Se)(y.value,n.value)))}function je(n){const y=D.value?.$el?.querySelector?.('[aria-selected="true"]');return y?(y.focus(n),!0):!1}function Ge(){if(e.eager&&r.value?.calculateVisibleItems(),!D.value||!F.value||D.value.$el?.contains(Rt()))return;const n={focusVisible:!1,preventScroll:e.noAutoScroll};if(O){D.value.focus(O,n);return}je(n)||N&&D.value.focus("first",n)}function We(){g.value="",F.value&&(a.value?.contentEl?._clickOutside?.lastMousedownWasOutside?F.value=!1:l.value?.focus())}function qe(n){F.value=!0}function Ye(n){if(!l.value?.$el.contains(n.relatedTarget)&&!n.currentTarget.contains(n.relatedTarget)){if(b(n))return;F.value=!1}}function Qe(n){if(n==null)d.value=[];else if(De(l.value,":autofill")||De(l.value,":-webkit-autofill")){const y=s.value.find(M=>M.title===n);y&&Y(y)}else l.value&&(l.value.value="")}return ae(k,n=>{if(n||(N=!1,O=null),!e.hideSelected&&k.value&&d.value.length){const y=Ue();ge&&!e.noAutoScroll&&window.requestAnimationFrame(()=>{y>=0&&r.value?.scrollToIndex(y)})}}),ae(s,(n,y)=>{k.value||F.value&&e.hideNoData&&!y.length&&n.length&&(k.value=!0)}),Ae(()=>{const n=!!(e.chips||t.chip),y=!!(!e.hideNoData||_.value.length||t["prepend-item"]||t["append-item"]||t["no-data"]),M=d.value.length>0,le=Pe.filterProps(e),Q=M||!F.value&&e.label&&!e.persistentPlaceholder?void 0:e.placeholder,ne={search:g,filteredItems:h.value};return x(Pe,j({ref:l},le,{modelValue:d.value.map($=>$.props.title).join(", "),name:void 0,"onUpdate:modelValue":Qe,focused:F.value,"onUpdate:focused":$=>F.value=$,validationValue:d.externalValue,counterValue:S.value,dirty:M,class:["v-select",{"v-select--active-menu":k.value,"v-select--chips":!!e.chips,[`v-select--${e.multiple?"multiple":"single"}`]:!0,"v-select--selected":d.value.length,"v-select--selection-slot":!!t.selection},e.class],style:e.style,inputmode:"none",placeholder:Q,"onClick:clear":C,"onMousedown:control":W,onBlur:Te,onKeydown:te,"aria-expanded":H.value,"aria-controls":we.value}),{...t,default:({id:$})=>A(fe,null,[A("select",{hidden:!0,multiple:e.multiple,name:q.fieldName.value},[s.value.map(v=>A("option",{key:v.value,value:v.value,selected:P.value.includes(v.value)},null))]),x(kt,j({id:de.value,ref:a,modelValue:k.value,"onUpdate:modelValue":v=>k.value=v,activator:"parent",captureFocus:!1,disabled:ee.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterEnter:Ge,onAfterLeave:We},oe.value,{contentClass:["v-select__content",oe.value.contentClass]}),{default:()=>[x(Mt,{elevation:e.menuElevation,onFocusin:qe,onFocusout:Ye,onKeydown:R},{default:()=>[t["menu-header"]&&A("header",{ref:u},[t["menu-header"](ne)]),y&&x(St,j({key:"select-list",ref:D,selected:P.value,selectStrategy:e.multiple?"independent":"single-independent",tabindex:"-1",selectable:!!_.value.length,"aria-live":"polite","aria-labelledby":`${$.value}-label`,"aria-multiselectable":e.multiple,color:e.itemColor??e.color},f,e.listProps),{default:()=>[t["prepend-item"]?.(),!_.value.length&&!e.hideNoData&&(t["no-data"]?.()??x(Re,{key:"no-data",title:o(e.noDataText)},null)),x($t,{ref:r,renderless:!0,items:_.value,itemKey:"value"},{default:({item:v,index:B,itemRef:T})=>{const U=Vt(v.props),ue=j(v.props,{ref:T,key:v.value,onClick:()=>Y(v,null),"aria-posinset":B+1,"aria-setsize":_.value.length});return v.type==="divider"?t.divider?.({props:v.raw,index:B})??x(It,j(v.props,{key:`divider-${B}`}),null):v.type==="subheader"?t.subheader?.({props:v.raw,index:B})??x(Ct,j(v.props,{key:`subheader-${B}`}),null):t.item?.({item:v.raw,internalItem:v,index:B,props:ue})??x(Re,j(ue,{role:"option"}),{prepend:({isSelected:ie})=>A(fe,null,[e.multiple&&!e.hideSelected?x(xt,{key:v.value,modelValue:ie,ripple:!1,tabindex:"-1","aria-hidden":!0,onClick:E=>E.preventDefault()},null):void 0,U.prependAvatar&&x(At,{image:U.prependAvatar},null),U.prependIcon&&x(Fe,{icon:U.prependIcon},null)]),title:()=>g.value?x(jt,{text:v.title,matches:m(v)?.title,markClass:"v-select__mask",matchAll:!0,ignoreCase:!0},null):v.title})}}),t["append-item"]?.()]}),t["menu-footer"]&&A("footer",{ref:i},[t["menu-footer"](ne)])]})]}),d.value.map((v,B)=>{function T(E){E.stopPropagation(),E.preventDefault(),Y(v,!1)}const U=j(Me.filterProps(v.props),{"onClick:close":T,onKeydown(E){E.key!=="Enter"&&E.key!==" "||(E.preventDefault(),E.stopPropagation(),T(E))},onMousedown(E){E.preventDefault(),E.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0}),ue=n?!!t.chip:!!t.selection,ie=ue?Tt(n?t.chip({item:v.raw,internalItem:v,index:B,props:U}):t.selection({item:v.raw,internalItem:v,index:B})):void 0;if(!(ue&&!ie))return A("div",{key:v.value,class:"v-select__selection"},[n?t.chip?x(Pt,{key:"chip-defaults",defaults:{VChip:{closable:K.value,size:"small",text:v.title}}},{default:()=>[ie]}):x(Me,j({key:"chip",closable:K.value,size:"small",text:v.title,disabled:v.props.disabled},U),null):ie??A("span",{class:"v-select__selection-text"},[v.title,e.multiple&&B<d.value.length-1&&A("span",{class:"v-select__selection-comma"},[Ft(",")])])])})]),"append-inner":(...$)=>A(fe,null,[t["append-inner"]?.(...$),e.menuIcon?x(Fe,{class:"v-select__menu-icon",color:l.value?.fieldIconColor,icon:e.menuIcon,"aria-hidden":!0},null):void 0,e.appendInnerIcon&&x(be,{key:"append-icon",name:"appendInner",color:$[0].iconColor.value},null)])})}),mt({isFocused:F,menu:k,search:g,filteredItems:h,select:Y},l)}});export{ol as V,el as a,$t as b,jt as c,Wt as d,Qt as e,qt as f,Gt as g,tl as m,Jt as u};
@@ -0,0 +1 @@
1
+ import{c4 as a}from"./index-Dt-pWiW1.js";const e=a("v-spacer","div","VSpacer");export{e as V};
@@ -0,0 +1 @@
1
+ import{D as Y,aj as _,bo as Z,aR as p,F as ee,bp as ae,b9 as te,H as le,av as ne,I as se,L as ue,bq as ie,az as oe,aS as re,aV as de,aU as x,br as A,e as n,a8 as I,g as i,T as w,U as k,R as ce,aO as ve,Q as fe,bs as me,af as he,O as ge,ad as F,ax as d}from"./index-Dt-pWiW1.js";const be=se({inset:{type:[Boolean,String],default:!1},flat:Boolean,thumbColor:String,loading:{type:[Boolean,String],default:!1},...oe(re(),["glow"]),...ie(),...ue()},"VSwitch"),we=["x-small","small","default","large","x-large"],ke={"x-small":11,small:14,default:16,large:18,"x-large":22},Ve=Y()({name:"VSwitch",inheritAttrs:!1,props:be(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,{attrs:M,slots:a}){const o=_(e,"indeterminate"),s=_(e,"modelValue"),{loaderClasses:R}=Z(e),{isFocused:B,focus:T,blur:U}=p(e),{backgroundColorClasses:q,backgroundColorStyles:D}=ee(()=>e.thumbColor),S=F(),V=F(),c=ae&&window.matchMedia("(forced-colors: active)").matches,N=d(()=>typeof e.loading=="string"&&e.loading!==""?e.loading:e.color),L=te(),O=d(()=>e.id||`switch-${L}`),v=d(()=>we.includes(e.size)),f=d(()=>v.value?ke[e.size]:Math.round(16*Number(e.size)/32));function H(){o.value&&(o.value=!1)}function $(r){r.stopPropagation(),r.preventDefault(),S.value?.input?.click()}return le(()=>{const[r,j]=de(M),E=x.filterProps(e),Q=A.filterProps(e),l=["material","square"].includes(String(e.inset)),C=!c&&!!e.thumbColor;return n(x,I({ref:V,class:["v-switch",{"v-switch--flat":e.flat},{"v-switch--inset":!!e.inset},{"v-switch--inset-material":l},{"v-switch--inset-square":e.inset==="square"},{"v-switch--indeterminate":o.value},v.value?`v-switch--size-${e.size}`:void 0,R.value,e.class]},r,E,{modelValue:s.value,"onUpdate:modelValue":m=>s.value=m,id:O.value,focused:B.value,style:[{"--v-switch-scale":v.value?void 0:Number(e.size)/32},e.style]}),{...a,default:({id:m,messagesId:G,isDisabled:J,isReadonly:K,isValid:y})=>{const h={model:s,isValid:y};return n(A,I({ref:S},Q,{modelValue:s.value,"onUpdate:modelValue":[u=>s.value=u,H],id:m.value,"aria-describedby":G.value,type:"checkbox","aria-checked":o.value?"mixed":void 0,disabled:J.value,readonly:K.value,onFocus:T,onBlur:U},j),{...a,default:({backgroundColorClasses:u,backgroundColorStyles:t})=>i("div",{class:k(["v-switch__track",c?void 0:u.value]),style:w(t.value),onClick:$},[a["track-true"]&&i("div",{key:"prepend",class:"v-switch__track-true"},[a["track-true"](h)]),a["track-false"]&&i("div",{key:"append",class:"v-switch__track-false"},[a["track-false"](h)])]),input:({inputNode:u,icon:t,model:z,backgroundColorClasses:g,backgroundColorStyles:P,textColorClasses:W,textColorStyles:X})=>i(ge,null,[u,i("div",{class:k(["v-switch__thumb",{"v-switch__thumb--filled":t||e.loading},c?void 0:C&&z.value?q.value:l?g.value:e.inset?void 0:g.value]),style:w([C&&z.value?D.value:l?g.value.length||P.value.backgroundColor?{backgroundColor:"currentColor"}:void 0:e.inset?void 0:P.value])},[a.thumb?n(ce,{defaults:{VIcon:{icon:t,size:l?f.value:"x-small"}}},{default:()=>[a.thumb({...h,icon:t})]}):n(ve,null,{default:()=>[e.loading?n(me,{name:"v-switch",active:!0,color:y.value===!1?void 0:N.value},{default:b=>a.loader?a.loader(b):n(he,{active:b.isActive,color:b.color,indeterminate:!0,size:f.value,width:"2"},null)}):t&&n(fe,{key:String(t),class:k(l?W.value:void 0),style:w(l?X.value:void 0),icon:t,size:l?f.value:"x-small"},null)]})])])})}})}),ne({},V)}});export{Ve as V};
@@ -1 +1 @@
1
- import{A as R,a_ as ve,C as J,E as W,aa as fe,F as $,ae as Z,a$ as he,i as D,e as x,g as P,Q as O,R as H,L as p,am as _,y as M,b0 as me,b1 as be,z as C,b2 as z,B as ge,b3 as we,a as ye,b4 as Te,w as Se,b5 as U,b6 as Ce,ab as X,ah as L,G as xe,b7 as ee,K as te,an as ne,b8 as Ve,P as I,aY as S,b9 as ke,ax as oe,a4 as ae,ba as Be,bb as Pe,bc as Ee,bd as _e,be as Ie,bf as Re,bg as We,bh as $e,aB as Ye,bi as Ae,bj as Xe,bk as De,bl as He,bm as K,bn as Me}from"./index-BegKQ3Yd.js";const F=Symbol.for("vuetify:v-tabs"),se=$({fixed:Boolean,sliderColor:String,sliderTransition:String,sliderTransitionDuration:[String,Number],hideSlider:Boolean,inset:Boolean,direction:{type:String,default:"horizontal"},...Z(he({selectedClass:"v-tab--selected",variant:"text"}),["active","block","flat","location","position","symbol"])},"VTab"),ze=R()({name:"VTab",props:se(),setup(e,{slots:n,attrs:t}){const{textColorClasses:a,textColorStyles:i}=ve(()=>e.sliderColor),{backgroundColorClasses:o,backgroundColorStyles:u}=J(()=>e.sliderColor),c=M(),v=M(),f=C(()=>e.direction==="horizontal"),m=C(()=>c.value?.group?.isSelected.value??!1);function l(g,w){return{opacity:[0,1]}}function E(g,w){return e.direction==="vertical"?{transform:["scaleY(0)","scaleY(1)"]}:{transform:["scaleX(0)","scaleX(1)"]}}function b(g,w){const h=w.getBoundingClientRect(),y=g.getBoundingClientRect(),k=f.value?"x":"y",T=f.value?"X":"Y",s=f.value?"right":"bottom",r=f.value?"width":"height",d=h[k],B=y[k],V=d>B?h[s]-y[s]:h[k]-y[k],A=Math.sign(V)>0?f.value?"right":"bottom":Math.sign(V)<0?f.value?"left":"top":"center",N=(Math.abs(V)+(Math.sign(V)<0?h[r]:y[r]))/Math.max(h[r],y[r])||0,de=h[r]/y[r]||0,j=1.5;return{transform:[`translate${T}(${V}px) scale${T}(${de})`,`translate${T}(${V/j}px) scale${T}(${(N-1)/j+1})`,"none"],transformOrigin:Array(3).fill(A)}}function Y({value:g}){if(g){const w=c.value?.$el.parentElement?.querySelector(".v-tab--selected .v-tab__slider"),h=v.value;if(!w||!h)return;const y=getComputedStyle(w).backgroundColor,k={fade:l,grow:E,shift:b}[e.sliderTransition??"shift"]??b,T=Number(e.sliderTransitionDuration)||({fade:400,grow:350,shift:225}[e.sliderTransition??"shift"]??225);me(h,{backgroundColor:[y,y],...k(h,w)},{duration:T,easing:be})}}return W(()=>{const g=D.filterProps(e);return x(D,_({symbol:F,ref:c,class:["v-tab",e.class,m.value&&e.inset?o.value:[]],style:[e.style,m.value&&e.inset?u.value:[],{backgroundColor:m.value&&e.inset?"transparent !important":void 0}],tabindex:m.value?0:-1,role:"tab","aria-selected":String(m.value),active:!1},g,t,{block:e.fixed,maxWidth:e.fixed?300:void 0,"onGroup:selected":Y}),{...n,default:()=>P(p,null,[n.default?.()??e.text,!e.hideSlider&&P("div",{ref:v,class:H(["v-tab__slider",e.inset?o.value:a.value]),style:O([i.value,e.inset?u.value:a.value])},null)])})}),fe({},c)}}),Le=e=>{const{touchstartX:n,touchendX:t,touchstartY:a,touchendY:i}=e,o=.5,u=16;e.offsetX=t-n,e.offsetY=i-a,Math.abs(e.offsetY)<o*Math.abs(e.offsetX)&&(e.left&&t<n-u&&e.left(e),e.right&&t>n+u&&e.right(e)),Math.abs(e.offsetX)<o*Math.abs(e.offsetY)&&(e.up&&i<a-u&&e.up(e),e.down&&i>a+u&&e.down(e))};function Ge(e,n){const t=e.changedTouches[0];n.touchstartX=t.clientX,n.touchstartY=t.clientY,n.start?.({originalEvent:e,...n})}function Oe(e,n){const t=e.changedTouches[0];n.touchendX=t.clientX,n.touchendY=t.clientY,n.end?.({originalEvent:e,...n}),Le(n)}function Fe(e,n){const t=e.changedTouches[0];n.touchmoveX=t.clientX,n.touchmoveY=t.clientY,n.move?.({originalEvent:e,...n})}function Ne(e={}){const n={touchstartX:0,touchstartY:0,touchendX:0,touchendY:0,touchmoveX:0,touchmoveY:0,offsetX:0,offsetY:0,left:e.left,right:e.right,up:e.up,down:e.down,start:e.start,move:e.move,end:e.end};return{touchstart:t=>Ge(t,n),touchend:t=>Oe(t,n),touchmove:t=>Fe(t,n)}}function je(e,n){const t=n.value,a=t?.parent?e.parentElement:e,i=t?.options??{passive:!0},o=n.instance?.$.uid;if(!a||o===void 0)return;const u=Ne(n.value);a._touchHandlers=a._touchHandlers??Object.create(null),a._touchHandlers[o]=u,z(u).forEach(c=>{a.addEventListener(c,u[c],i)})}function Ue(e,n){const t=n.value?.parent?e.parentElement:e,a=n.instance?.$.uid;if(!t?._touchHandlers||a===void 0)return;const i=t._touchHandlers[a];i&&(z(i).forEach(o=>{t.removeEventListener(o,i[o])}),delete t._touchHandlers[a],z(t._touchHandlers).length||delete t._touchHandlers)}const G={mounted:je,unmounted:Ue},ie=Symbol.for("vuetify:v-window"),le=Symbol.for("vuetify:v-window-group"),re=$({continuous:Boolean,nextIcon:{type:[Boolean,String,Function,Object],default:"$next"},prevIcon:{type:[Boolean,String,Function,Object],default:"$prev"},reverse:Boolean,showArrows:{type:[Boolean,String],validator:e=>typeof e=="boolean"||e==="hover"},verticalArrows:[Boolean,String],touch:{type:[Object,Boolean],default:void 0},direction:{type:String,default:"horizontal"},modelValue:null,disabled:Boolean,selectedClass:{type:String,default:"v-window-item--active"},mandatory:{type:[Boolean,String],default:"force"},crossfade:Boolean,transitionDuration:Number,...te(),...ee(),...xe()},"VWindow"),q=R()({name:"VWindow",directives:{vTouch:G},props:re(),emits:{"update:modelValue":e=>!0},setup(e,{slots:n}){const{themeClasses:t}=ge(e),{isRtl:a}=we(),{t:i}=ye(),o=Te(e,le),u=M(),c=C(()=>a.value?!e.reverse:e.reverse),v=L(!1),f=C(()=>{if(e.crossfade)return"v-window-crossfade-transition";const s=e.direction==="vertical"?"y":"x",d=(c.value?!v.value:v.value)?"-reverse":"";return`v-window-${s}${d}-transition`}),m=L(0),l=M(void 0),E=C(()=>o.items.value.findIndex(s=>o.selected.value.includes(s.id)));Se(E,(s,r)=>{let d;const B={left:0,top:0};U&&r>=0&&(d=Ce(u.value),B.left=d?.scrollLeft,B.top=d?.scrollTop);const V=o.items.value.length,A=V-1;V<=2?v.value=s<r:s===A&&r===0?v.value=!1:s===0&&r===A?v.value=!0:v.value=s<r,X(()=>{if(!U||!d)return;d.scrollTop!==B.top&&d.scrollTo({...B,behavior:"instant"}),requestAnimationFrame(()=>{if(!d)return;d.scrollTop!==B.top&&d.scrollTo({...B,behavior:"instant"})})})},{flush:"sync"}),ke(ie,{transition:f,isReversed:v,transitionCount:m,transitionHeight:l,rootRef:u});const b=S(()=>e.continuous||E.value!==0),Y=S(()=>e.continuous||E.value!==o.items.value.length-1);function g(){b.value&&o.prev()}function w(){Y.value&&o.next()}const h=C(()=>{const s=[],r={icon:a.value?e.nextIcon:e.prevIcon,class:`v-window__${c.value?"right":"left"}`,onClick:o.prev,"aria-label":i("$vuetify.carousel.prev")};s.push(b.value?n.prev?n.prev({props:r}):x(D,r,null):P("div",null,null));const d={icon:a.value?e.prevIcon:e.nextIcon,class:`v-window__${c.value?"left":"right"}`,onClick:o.next,"aria-label":i("$vuetify.carousel.next")};return s.push(Y.value?n.next?n.next({props:d}):x(D,d,null):P("div",null,null)),s}),y=C(()=>e.touch===!1?e.touch:{...{left:()=>{c.value?g():w()},right:()=>{c.value?w():g()},start:({originalEvent:r})=>{r.stopPropagation()}},...e.touch===!0?{}:e.touch});function k(s){(e.direction==="horizontal"&&s.key==="ArrowLeft"||e.direction==="vertical"&&s.key==="ArrowUp")&&(s.preventDefault(),g(),X(()=>{b.value?T(0):T(1)})),(e.direction==="horizontal"&&s.key==="ArrowRight"||e.direction==="vertical"&&s.key==="ArrowDown")&&(s.preventDefault(),w(),X(()=>{Y.value?T(1):T(0)}))}function T(s){const r=h.value[s];if(!r)return;(Array.isArray(r)?r[0]:r).el?.focus()}return W(()=>ne(x(e.tag,{ref:u,class:H(["v-window",{"v-window--show-arrows-on-hover":e.showArrows==="hover","v-window--vertical-arrows":!!e.verticalArrows,"v-window--crossfade":!!e.crossfade},t.value,e.class]),style:O([e.style,{"--v-window-transition-duration":Ve()?null:I(e.transitionDuration,"ms")}])},{default:()=>[P("div",{class:"v-window__container",style:{height:l.value}},[n.default?.({group:o}),e.showArrows!==!1&&P("div",{class:H(["v-window__controls",{"v-window__controls--left":e.verticalArrows==="left"||e.verticalArrows===!0},{"v-window__controls--right":e.verticalArrows==="right"}]),onKeydown:k},[h.value])]),n.additional?.({group:o})]}),[[G,y.value]])),{group:o}}}),Ke=$({...Z(re(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])},"VTabsWindow"),qe=R()({name:"VTabsWindow",props:Ke(),emits:{"update:modelValue":e=>!0},setup(e,{slots:n}){const t=oe(F,null),a=ae(e,"modelValue"),i=C({get(){return a.value!=null||!t?a.value:t.items.value.find(o=>t.selected.value.includes(o.id))?.value},set(o){a.value=o}});return W(()=>{const o=q.filterProps(e);return x(q,_({_as:"VTabsWindow"},o,{modelValue:i.value,"onUpdate:modelValue":u=>i.value=u,class:["v-tabs-window",e.class],style:e.style,mandatory:!1,touch:!1}),n)}),{}}}),ue=$({reverseTransition:{type:[Boolean,String],default:void 0},transition:{type:[Boolean,String],default:void 0},...te(),...Ie(),..._e()},"VWindowItem"),Q=R()({name:"VWindowItem",directives:{vTouch:G},props:ue(),emits:{"group:selected":e=>!0},setup(e,{slots:n}){const t=oe(ie),a=Be(e,le),{isBooted:i}=Pe();if(!t||!a)throw new Error("[Vuetify] VWindowItem must be used inside VWindow");const o=L(!1),u=C(()=>i.value&&(t.isReversed.value?e.reverseTransition!==!1:e.transition!==!1));function c(){!o.value||!t||(o.value=!1,t.transitionCount.value>0&&(t.transitionCount.value-=1,t.transitionCount.value===0&&(t.transitionHeight.value=void 0)))}function v(){o.value||!t||(o.value=!0,t.transitionCount.value===0&&(t.transitionHeight.value=I(t.rootRef.value?.clientHeight)),t.transitionCount.value+=1)}function f(){c()}function m(b){o.value&&X(()=>{!u.value||!o.value||!t||(t.transitionHeight.value=I(b.clientHeight))})}const l=C(()=>{const b=t.isReversed.value?e.reverseTransition:e.transition;return u.value?{name:typeof b!="string"?t.transition.value:b,onBeforeEnter:v,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:v,onAfterLeave:c,onLeaveCancelled:f,onEnter:m}:!1}),{hasContent:E}=Ee(e,a.isSelected);return W(()=>x(We,{transition:l.value,disabled:!i.value},{default:()=>[ne(P("div",{class:H(["v-window-item",a.selectedClass.value,e.class]),style:O(e.style)},[E.value&&n.default?.()]),[[Re,a.isSelected.value]])]})),{groupItem:a}}}),Qe=$({...ue()},"VTabsWindowItem"),Je=R()({name:"VTabsWindowItem",props:Qe(),setup(e,{slots:n}){return W(()=>{const t=Q.filterProps(e);return x(Q,_({_as:"VTabsWindowItem"},t,{class:["v-tabs-window-item",e.class],style:e.style}),n)}),{}}});function Ze(e){return e?e.map(n=>Me(n)?n:{text:n,value:n}):[]}const pe=$({alignTabs:{type:String,default:"start"},color:String,fixedTabs:Boolean,items:{type:Array,default:()=>[]},stacked:Boolean,bgColor:String,grow:Boolean,height:{type:[Number,String],default:void 0},hideSlider:Boolean,inset:Boolean,insetPadding:[String,Number],insetRadius:[String,Number],sliderColor:String,...He(se(),["spaced","sliderTransition","sliderTransitionDuration"]),...De({mandatory:"force",selectedClass:"v-tab-item--selected"}),...Xe(),...ee()},"VTabs"),tt=R()({name:"VTabs",props:pe(),emits:{"update:modelValue":e=>!0},setup(e,{attrs:n,slots:t}){const a=ae(e,"modelValue"),i=C(()=>Ze(e.items)),{densityClasses:o}=$e(e),{backgroundColorClasses:u,backgroundColorStyles:c}=J(()=>e.bgColor),{scopeId:v}=Ye();return Ae({VTab:{color:S(e,"color"),direction:S(e,"direction"),stacked:S(e,"stacked"),fixed:S(e,"fixedTabs"),inset:S(e,"inset"),sliderColor:S(e,"sliderColor"),sliderTransition:S(e,"sliderTransition"),sliderTransitionDuration:S(e,"sliderTransitionDuration"),hideSlider:S(e,"hideSlider")}}),W(()=>{const f=K.filterProps(e),m=!!(t.window||e.items.length>0);return P(p,null,[x(K,_(f,{modelValue:a.value,"onUpdate:modelValue":l=>a.value=l,class:["v-tabs",`v-tabs--${e.direction}`,`v-tabs--align-tabs-${e.alignTabs}`,{"v-tabs--fixed-tabs":e.fixedTabs,"v-tabs--grow":e.grow,"v-tabs--inset":e.inset,"v-tabs--stacked":e.stacked},o.value,u.value,e.class],style:[{"--v-tabs-height":I(e.height),"--v-tabs-inset-padding":e.inset?I(e.insetPadding):void 0,"--v-tabs-inset-radius":e.inset?I(e.insetRadius):void 0},c.value,e.style],role:"tablist",symbol:F},v,n),{default:t.default??(()=>i.value.map(l=>t.tab?.({item:l})??x(ze,_(l,{key:l.text,value:l.value,spaced:e.spaced}),{default:t[`tab.${l.value}`]?()=>t[`tab.${l.value}`]?.({item:l}):void 0}))),prev:t.prev,next:t.next}),m&&x(qe,_({modelValue:a.value,"onUpdate:modelValue":l=>a.value=l,key:"tabs-window"},v),{default:()=>[i.value.map(l=>t.item?.({item:l})??x(Je,{value:l.value},{default:()=>t[`item.${l.value}`]?.({item:l})})),t.window?.()]})])}),{}}});export{tt as V,ze as a,q as b,Q as c};
1
+ import{D as W,ah as ve,F as Q,H as R,av as fe,I as $,az as Z,bt as he,i as H,e as x,g as P,T as O,U as X,O as p,a8 as I,ad as M,bu as me,bv as be,z as C,bw as z,E as ge,aC as we,a as ye,bx as Te,w as Se,ao as U,by as Ce,ae as D,y as L,K as xe,bz as ee,N as te,aM as ne,bA as Ve,S as _,ax as S,aI as ke,aK as oe,aj as ae,bB as Be,bC as Pe,bD as Ee,bE as Ie,bF as _e,aN as We,bG as Re,bH as $e,bc as Ae,bI as Ye,bJ as De,bK as He,bL as Xe,bM as K,bN as Me}from"./index-Dt-pWiW1.js";const G=Symbol.for("vuetify:v-tabs"),se=$({fixed:Boolean,sliderColor:String,sliderTransition:String,sliderTransitionDuration:[String,Number],hideSlider:Boolean,inset:Boolean,direction:{type:String,default:"horizontal"},...Z(he({selectedClass:"v-tab--selected",variant:"text"}),["active","block","flat","location","position","symbol"])},"VTab"),ze=W()({name:"VTab",props:se(),setup(e,{slots:n,attrs:t}){const{textColorClasses:a,textColorStyles:i}=ve(()=>e.sliderColor),{backgroundColorClasses:o,backgroundColorStyles:u}=Q(()=>e.sliderColor),c=M(),v=M(),f=C(()=>e.direction==="horizontal"),m=C(()=>c.value?.group?.isSelected.value??!1);function l(g,w){return{opacity:[0,1]}}function E(g,w){return e.direction==="vertical"?{transform:["scaleY(0)","scaleY(1)"]}:{transform:["scaleX(0)","scaleX(1)"]}}function b(g,w){const h=w.getBoundingClientRect(),y=g.getBoundingClientRect(),k=f.value?"x":"y",T=f.value?"X":"Y",s=f.value?"right":"bottom",r=f.value?"width":"height",d=h[k],B=y[k],V=d>B?h[s]-y[s]:h[k]-y[k],Y=Math.sign(V)>0?f.value?"right":"bottom":Math.sign(V)<0?f.value?"left":"top":"center",F=(Math.abs(V)+(Math.sign(V)<0?h[r]:y[r]))/Math.max(h[r],y[r])||0,de=h[r]/y[r]||0,j=1.5;return{transform:[`translate${T}(${V}px) scale${T}(${de})`,`translate${T}(${V/j}px) scale${T}(${(F-1)/j+1})`,"none"],transformOrigin:Array(3).fill(Y)}}function A({value:g}){if(g){const w=c.value?.$el.parentElement?.querySelector(".v-tab--selected .v-tab__slider"),h=v.value;if(!w||!h)return;const y=getComputedStyle(w).backgroundColor,k={fade:l,grow:E,shift:b}[e.sliderTransition??"shift"]??b,T=Number(e.sliderTransitionDuration)||({fade:400,grow:350,shift:225}[e.sliderTransition??"shift"]??225);me(h,{backgroundColor:[y,y],...k(h,w)},{duration:T,easing:be})}}return R(()=>{const g=H.filterProps(e);return x(H,I({symbol:G,ref:c,class:["v-tab",e.class,m.value&&e.inset?o.value:[]],style:[e.style,m.value&&e.inset?u.value:[],{backgroundColor:m.value&&e.inset?"transparent !important":void 0}],tabindex:m.value?0:-1,role:"tab","aria-selected":String(m.value),active:!1},g,t,{block:e.fixed,maxWidth:e.fixed?300:void 0,"onGroup:selected":A}),{...n,default:()=>P(p,null,[n.default?.()??e.text,!e.hideSlider&&P("div",{ref:v,class:X(["v-tab__slider",e.inset?o.value:a.value]),style:O([i.value,e.inset?u.value:a.value])},null)])})}),fe({},c)}}),Le=e=>{const{touchstartX:n,touchendX:t,touchstartY:a,touchendY:i}=e,o=.5,u=16;e.offsetX=t-n,e.offsetY=i-a,Math.abs(e.offsetY)<o*Math.abs(e.offsetX)&&(e.left&&t<n-u&&e.left(e),e.right&&t>n+u&&e.right(e)),Math.abs(e.offsetX)<o*Math.abs(e.offsetY)&&(e.up&&i<a-u&&e.up(e),e.down&&i>a+u&&e.down(e))};function Ne(e,n){const t=e.changedTouches[0];n.touchstartX=t.clientX,n.touchstartY=t.clientY,n.start?.({originalEvent:e,...n})}function Oe(e,n){const t=e.changedTouches[0];n.touchendX=t.clientX,n.touchendY=t.clientY,n.end?.({originalEvent:e,...n}),Le(n)}function Ge(e,n){const t=e.changedTouches[0];n.touchmoveX=t.clientX,n.touchmoveY=t.clientY,n.move?.({originalEvent:e,...n})}function Fe(e={}){const n={touchstartX:0,touchstartY:0,touchendX:0,touchendY:0,touchmoveX:0,touchmoveY:0,offsetX:0,offsetY:0,left:e.left,right:e.right,up:e.up,down:e.down,start:e.start,move:e.move,end:e.end};return{touchstart:t=>Ne(t,n),touchend:t=>Oe(t,n),touchmove:t=>Ge(t,n)}}function je(e,n){const t=n.value,a=t?.parent?e.parentElement:e,i=t?.options??{passive:!0},o=n.instance?.$.uid;if(!a||o===void 0)return;const u=Fe(n.value);a._touchHandlers=a._touchHandlers??Object.create(null),a._touchHandlers[o]=u,z(u).forEach(c=>{a.addEventListener(c,u[c],i)})}function Ue(e,n){const t=n.value?.parent?e.parentElement:e,a=n.instance?.$.uid;if(!t?._touchHandlers||a===void 0)return;const i=t._touchHandlers[a];i&&(z(i).forEach(o=>{t.removeEventListener(o,i[o])}),delete t._touchHandlers[a],z(t._touchHandlers).length||delete t._touchHandlers)}const N={mounted:je,unmounted:Ue},ie=Symbol.for("vuetify:v-window"),le=Symbol.for("vuetify:v-window-group"),re=$({continuous:Boolean,nextIcon:{type:[Boolean,String,Function,Object],default:"$next"},prevIcon:{type:[Boolean,String,Function,Object],default:"$prev"},reverse:Boolean,showArrows:{type:[Boolean,String],validator:e=>typeof e=="boolean"||e==="hover"},verticalArrows:[Boolean,String],touch:{type:[Object,Boolean],default:void 0},direction:{type:String,default:"horizontal"},modelValue:null,disabled:Boolean,selectedClass:{type:String,default:"v-window-item--active"},mandatory:{type:[Boolean,String],default:"force"},crossfade:Boolean,transitionDuration:Number,...te(),...ee(),...xe()},"VWindow"),q=W()({name:"VWindow",directives:{vTouch:N},props:re(),emits:{"update:modelValue":e=>!0},setup(e,{slots:n}){const{themeClasses:t}=ge(e),{isRtl:a}=we(),{t:i}=ye(),o=Te(e,le),u=M(),c=C(()=>a.value?!e.reverse:e.reverse),v=L(!1),f=C(()=>{if(e.crossfade)return"v-window-crossfade-transition";const s=e.direction==="vertical"?"y":"x",d=(c.value?!v.value:v.value)?"-reverse":"";return`v-window-${s}${d}-transition`}),m=L(0),l=M(void 0),E=C(()=>o.items.value.findIndex(s=>o.selected.value.includes(s.id)));Se(E,(s,r)=>{let d;const B={left:0,top:0};U&&r>=0&&(d=Ce(u.value),B.left=d?.scrollLeft,B.top=d?.scrollTop);const V=o.items.value.length,Y=V-1;V<=2?v.value=s<r:s===Y&&r===0?v.value=!1:s===0&&r===Y?v.value=!0:v.value=s<r,D(()=>{if(!U||!d)return;d.scrollTop!==B.top&&d.scrollTo({...B,behavior:"instant"}),requestAnimationFrame(()=>{if(!d)return;d.scrollTop!==B.top&&d.scrollTo({...B,behavior:"instant"})})})},{flush:"sync"}),ke(ie,{transition:f,isReversed:v,transitionCount:m,transitionHeight:l,rootRef:u});const b=S(()=>e.continuous||E.value!==0),A=S(()=>e.continuous||E.value!==o.items.value.length-1);function g(){b.value&&o.prev()}function w(){A.value&&o.next()}const h=C(()=>{const s=[],r={icon:a.value?e.nextIcon:e.prevIcon,class:`v-window__${c.value?"right":"left"}`,onClick:o.prev,"aria-label":i("$vuetify.carousel.prev")};s.push(b.value?n.prev?n.prev({props:r}):x(H,r,null):P("div",null,null));const d={icon:a.value?e.prevIcon:e.nextIcon,class:`v-window__${c.value?"left":"right"}`,onClick:o.next,"aria-label":i("$vuetify.carousel.next")};return s.push(A.value?n.next?n.next({props:d}):x(H,d,null):P("div",null,null)),s}),y=C(()=>e.touch===!1?e.touch:{...{left:()=>{c.value?g():w()},right:()=>{c.value?w():g()},start:({originalEvent:r})=>{r.stopPropagation()}},...e.touch===!0?{}:e.touch});function k(s){(e.direction==="horizontal"&&s.key==="ArrowLeft"||e.direction==="vertical"&&s.key==="ArrowUp")&&(s.preventDefault(),g(),D(()=>{b.value?T(0):T(1)})),(e.direction==="horizontal"&&s.key==="ArrowRight"||e.direction==="vertical"&&s.key==="ArrowDown")&&(s.preventDefault(),w(),D(()=>{A.value?T(1):T(0)}))}function T(s){const r=h.value[s];if(!r)return;(Array.isArray(r)?r[0]:r).el?.focus()}return R(()=>ne(x(e.tag,{ref:u,class:X(["v-window",{"v-window--show-arrows-on-hover":e.showArrows==="hover","v-window--vertical-arrows":!!e.verticalArrows,"v-window--crossfade":!!e.crossfade},t.value,e.class]),style:O([e.style,{"--v-window-transition-duration":Ve()?null:_(e.transitionDuration,"ms")}])},{default:()=>[P("div",{class:"v-window__container",style:{height:l.value}},[n.default?.({group:o}),e.showArrows!==!1&&P("div",{class:X(["v-window__controls",{"v-window__controls--left":e.verticalArrows==="left"||e.verticalArrows===!0},{"v-window__controls--right":e.verticalArrows==="right"}]),onKeydown:k},[h.value])]),n.additional?.({group:o})]}),[[N,y.value]])),{group:o}}}),Ke=$({...Z(re(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])},"VTabsWindow"),qe=W()({name:"VTabsWindow",props:Ke(),emits:{"update:modelValue":e=>!0},setup(e,{slots:n}){const t=oe(G,null),a=ae(e,"modelValue"),i=C({get(){return a.value!=null||!t?a.value:t.items.value.find(o=>t.selected.value.includes(o.id))?.value},set(o){a.value=o}});return R(()=>{const o=q.filterProps(e);return x(q,I({_as:"VTabsWindow"},o,{modelValue:i.value,"onUpdate:modelValue":u=>i.value=u,class:["v-tabs-window",e.class],style:e.style,mandatory:!1,touch:!1}),n)}),{}}}),ue=$({reverseTransition:{type:[Boolean,String],default:void 0},transition:{type:[Boolean,String],default:void 0},...te(),..._e(),...Ie()},"VWindowItem"),J=W()({name:"VWindowItem",directives:{vTouch:N},props:ue(),emits:{"group:selected":e=>!0},setup(e,{slots:n}){const t=oe(ie),a=Be(e,le),{isBooted:i}=Pe();if(!t||!a)throw new Error("[Vuetify] VWindowItem must be used inside VWindow");const o=L(!1),u=C(()=>i.value&&(t.isReversed.value?e.reverseTransition!==!1:e.transition!==!1));function c(){!o.value||!t||(o.value=!1,t.transitionCount.value>0&&(t.transitionCount.value-=1,t.transitionCount.value===0&&(t.transitionHeight.value=void 0)))}function v(){o.value||!t||(o.value=!0,t.transitionCount.value===0&&(t.transitionHeight.value=_(t.rootRef.value?.clientHeight)),t.transitionCount.value+=1)}function f(){c()}function m(b){o.value&&D(()=>{!u.value||!o.value||!t||(t.transitionHeight.value=_(b.clientHeight))})}const l=C(()=>{const b=t.isReversed.value?e.reverseTransition:e.transition;return u.value?{name:typeof b!="string"?t.transition.value:b,onBeforeEnter:v,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:v,onAfterLeave:c,onLeaveCancelled:f,onEnter:m}:!1}),{hasContent:E}=Ee(e,a.isSelected);return R(()=>x(Re,{transition:l.value,disabled:!i.value},{default:()=>[ne(P("div",{class:X(["v-window-item",a.selectedClass.value,e.class]),style:O(e.style)},[E.value&&n.default?.()]),[[We,a.isSelected.value]])]})),{groupItem:a}}}),Je=$({...ue()},"VTabsWindowItem"),Qe=W()({name:"VTabsWindowItem",props:Je(),setup(e,{slots:n}){return R(()=>{const t=J.filterProps(e);return x(J,I({_as:"VTabsWindowItem"},t,{class:["v-tabs-window-item",e.class],style:e.style}),n)}),{}}});function Ze(e){return e?e.map(n=>Me(n)?n:{text:n,value:n}):[]}const pe=$({alignTabs:{type:String,default:"start"},color:String,fixedTabs:Boolean,items:{type:Array,default:()=>[]},stacked:Boolean,bgColor:String,grow:Boolean,height:{type:[Number,String],default:void 0},hideSlider:Boolean,inset:Boolean,insetPadding:[String,Number],insetRadius:[String,Number],sliderColor:String,...Xe(se(),["spaced","sliderTransition","sliderTransitionDuration"]),...He({mandatory:"force",selectedClass:"v-tab-item--selected"}),...De(),...ee()},"VTabs"),tt=W()({name:"VTabs",props:pe(),emits:{"update:modelValue":e=>!0},setup(e,{attrs:n,slots:t}){const a=ae(e,"modelValue"),i=C(()=>Ze(e.items)),{densityClasses:o}=$e(e),{backgroundColorClasses:u,backgroundColorStyles:c}=Q(()=>e.bgColor),{scopeId:v}=Ae();return Ye({VTab:{color:S(e,"color"),direction:S(e,"direction"),stacked:S(e,"stacked"),fixed:S(e,"fixedTabs"),inset:S(e,"inset"),sliderColor:S(e,"sliderColor"),sliderTransition:S(e,"sliderTransition"),sliderTransitionDuration:S(e,"sliderTransitionDuration"),hideSlider:S(e,"hideSlider")}}),R(()=>{const f=K.filterProps(e),m=!!(t.window||e.items.length>0);return P(p,null,[x(K,I(f,{modelValue:a.value,"onUpdate:modelValue":l=>a.value=l,class:["v-tabs",`v-tabs--${e.direction}`,`v-tabs--align-tabs-${e.alignTabs}`,{"v-tabs--fixed-tabs":e.fixedTabs,"v-tabs--grow":e.grow,"v-tabs--inset":e.inset,"v-tabs--stacked":e.stacked},o.value,u.value,e.class],style:[{"--v-tabs-height":_(e.height),"--v-tabs-inset-padding":e.inset?_(e.insetPadding):void 0,"--v-tabs-inset-radius":e.inset?_(e.insetRadius):void 0},c.value,e.style],role:"tablist",symbol:G},v,n),{default:t.default??(()=>i.value.map(l=>t.tab?.({item:l})??x(ze,I(l,{key:l.text,value:l.value,spaced:e.spaced}),{default:t[`tab.${l.value}`]?()=>t[`tab.${l.value}`]?.({item:l}):void 0}))),prev:t.prev,next:t.next}),m&&x(qe,I({modelValue:a.value,"onUpdate:modelValue":l=>a.value=l,key:"tabs-window"},v),{default:()=>[i.value.map(l=>t.item?.({item:l})??x(Qe,{value:l.value},{default:()=>t[`item.${l.value}`]?.({item:l})})),t.window?.()]})])}),{}}});export{tt as V,ze as a,q as b,J as c};