@acedatacloud/nexior 3.298.0 → 3.299.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.
- package/dist/assets/{ApiCodeButton-CHgCSSti.js → ApiCodeButton-LAvku-Gl.js} +1 -1
- package/dist/assets/{AskUserQuestionCard-CVFwZF4c.js → AskUserQuestionCard-MnqVziSR.js} +1 -1
- package/dist/assets/{Auth-BcdFoFVe.js → Auth-Baup5ATA.js} +1 -1
- package/dist/assets/{Bare-_POFmVwJ.js → Bare-DdsiVQMK.js} +1 -1
- package/dist/assets/{BotPlaceholder-CbIQjOmI.js → BotPlaceholder-62eMvSj1.js} +1 -1
- package/dist/assets/{BottomFooter-V8_MH9ar.js → BottomFooter-BjrVVj0H.js} +1 -1
- package/dist/assets/{Callback-WeHJz5Zu.js → Callback-sBFjCGOF.js} +1 -1
- package/dist/assets/{CodeSnippet-DvMEs3zG.js → CodeSnippet-Co8Kb2Hi.js} +1 -1
- package/dist/assets/{Console-CzKCUmno.js → Console-BUzUh9Ru.js} +1 -1
- package/dist/assets/{Consumption-SKsEdfSL.js → Consumption-DxAedGAW.js} +1 -1
- package/dist/assets/{Conversation-BGlNtfUo.js → Conversation-DK0efEmT.js} +2 -2
- package/dist/assets/{CopyToClipboard-Ds9LKDk2.js → CopyToClipboard-BfdNvn25.js} +1 -1
- package/dist/assets/{Detail-DOyXO_mg.js → Detail-Fy5c4q8b.js} +2 -2
- package/dist/assets/{Extra-CreTwWQa.js → Extra-Io-J6WXf.js} +1 -1
- package/dist/assets/{FilePreview-46wZB-i4.js → FilePreview-jd1vgYDC.js} +1 -1
- package/dist/assets/{Hailuo-C6dSEH18.js → Hailuo-B7IYLAnT.js} +1 -1
- package/dist/assets/{History-Bv0xtBm9.js → History-BDu7nmrZ.js} +1 -1
- package/dist/assets/{ImagePreview-TvJjbc67.js → ImagePreview-D9p3hT3b.js} +1 -1
- package/dist/assets/{ImageWrapper-vkAGWf06.js → ImageWrapper-6vQtRv0Z.js} +1 -1
- package/dist/assets/{Index-D-qNxLPp.js → Index-BBx1CKmi.js} +1 -1
- package/dist/assets/{Index-BUnLK107.js → Index-BO4Gep8c.js} +1 -1
- package/dist/assets/{Index-nwUMZ-Wi.js → Index-BQqobEFg.js} +1 -1
- package/dist/assets/{Index-CVOdVhQQ.js → Index-BZMueNHf.js} +1 -1
- package/dist/assets/{Index-B8l6Ek2w.js → Index-BbdSpNO5.js} +1 -1
- package/dist/assets/{Index-DaglG8vQ.js → Index-BgTR7gSR.js} +1 -1
- package/dist/assets/{Index-BPluXz7_.js → Index-Bkk6ubKQ.js} +1 -1
- package/dist/assets/{Index-DoI-BFpr.js → Index-C0tEt6Sx.js} +1 -1
- package/dist/assets/{Index-D8AkWW-d.js → Index-CKZnRbrm.js} +1 -1
- package/dist/assets/{Index-C-spIW5D.js → Index-CXxbD7Tq.js} +1 -1
- package/dist/assets/{Index-CVKZmVEW.js → Index-Ca8SeAf6.js} +1 -1
- package/dist/assets/{Index--1LE9rsq.js → Index-CaY3FFnd.js} +1 -1
- package/dist/assets/{Index-C2Ep6B-A.js → Index-CepDUPOi.js} +1 -1
- package/dist/assets/{Index-BzOUGYB1.js → Index-Ci2CkX2a.js} +1 -1
- package/dist/assets/{Index-Dr_hdtJw.js → Index-Cu641ns8.js} +1 -1
- package/dist/assets/Index-D9RqIsAT.js +1 -0
- package/dist/assets/{Index-fn8g0pN0.js → Index-D9Tl2uW6.js} +1 -1
- package/dist/assets/{Index-CF-dcO_f.js → Index-DIO9isOx.js} +1 -1
- package/dist/assets/{Index-BRZzUcCH.js → Index-DRA8zulZ.js} +1 -1
- package/dist/assets/{Index--DOKH1w1.js → Index-DTi68AyG.js} +1 -1
- package/dist/assets/{Index-Cq2roPb2.css → Index-Dd5DwZbO.css} +1 -1
- package/dist/assets/{Index-CBTg5JVs.js → Index-DicALiRQ.js} +1 -1
- package/dist/assets/{Index-DnTA__8t.js → Index-Dn2P0GwJ.js} +1 -1
- package/dist/assets/{Index-CbUzZmCA.js → Index-DoC2hA0g.js} +1 -1
- package/dist/assets/{Index-DjWK-Zcx.js → Index-DyYXGqis.js} +1 -1
- package/dist/assets/{Index-DPEL9U86.js → Index-VS95_MVx.js} +1 -1
- package/dist/assets/{Index-ZQvKmIy0.js → Index-VupBWOlf.js} +1 -1
- package/dist/assets/{Index-BnXwmA_o.js → Index-pLXNYQyG.js} +1 -1
- package/dist/assets/{Index-D8vwQjXR.js → Index-xjN7koBM.js} +1 -1
- package/dist/assets/{Invitees-Cll-H_5F.js → Invitees-FIX5ecwA.js} +1 -1
- package/dist/assets/{List-Cg6wmGPS.js → List-3Qtz8FN_.js} +1 -1
- package/dist/assets/{List-DmdMphnE.js → List-BmCKuwWt.js} +1 -1
- package/dist/assets/{List-AJq8IceH.js → List-xQ58-7eU.js} +1 -1
- package/dist/assets/{LocalTools-DfCqN5BM.js → LocalTools-D4vu9de8.js} +1 -1
- package/dist/assets/{LocalTools-NU5DAAZo.js → LocalTools-SmkulGC4.js} +1 -1
- package/dist/assets/{Main-DQpVc1SJ.js → Main-D5xzWsRD.js} +1 -1
- package/dist/assets/{Model-DiUxdLN3.js → Model-B94Gs6NB.js} +1 -1
- package/dist/assets/{Navigator-D6Loe2eL.js → Navigator-DA-igilg.js} +2 -2
- package/dist/assets/{NoTasks-vRjyx9e_.js → NoTasks-jXU31a1L.js} +1 -1
- package/dist/assets/{NotFound-DRY6poQL.js → NotFound-B7QTpYKW.js} +1 -1
- package/dist/assets/{Pagination-DZOuYajR.js → Pagination-D0SC5Oxz.js} +1 -1
- package/dist/assets/{Pay-Ibb1VZfF.js → Pay-vLlFbqU1.js} +1 -1
- package/dist/assets/{Player-ByJCLlsb.js → Player-DaQQaF6S.js} +1 -1
- package/dist/assets/{PromptTextarea-DsvfmQWU.js → PromptTextarea-g3oF9Vvk.js} +1 -1
- package/dist/assets/{RealtimeCall-plkwIqr1.js → RealtimeCall-D8LyxPb6.js} +1 -1
- package/dist/assets/{ScheduledTasks-DXLhqev7.js → ScheduledTasks-DEYmSJKd.js} +1 -1
- package/dist/assets/{Status-C3hF5YBI.js → Status-cEqgNs2h.js} +1 -1
- package/dist/assets/{Subscribe-Bg9xyDFF.js → Subscribe-BJH3Y7Jg.js} +1 -1
- package/dist/assets/{TabSwitcher-DqUvZK6D.js → TabSwitcher-ClqNDKQ7.js} +1 -1
- package/dist/assets/{Tts-D-4ZJiSE.js → Tts-Cs-oCq5S.js} +1 -1
- package/dist/assets/{VideoPlayer-DfADP3bA.js → VideoPlayer-B6Sg5qJg.js} +1 -1
- package/dist/assets/{avatar-BURibYB6.js → avatar-DOiH7ypU.js} +1 -1
- package/dist/assets/{basic-CrN6NEP7.js → basic-BmghZrPU.js} +1 -1
- package/dist/assets/{chat-h-uTL-_8.js → chat-CK76fLCW.js} +1 -1
- package/dist/assets/codingBridge-CIetDFJS.js +2 -0
- package/dist/assets/{codingBridgeNotify-Dyre4a5u.js → codingBridgeNotify-CMwl3jMW.js} +2 -2
- package/dist/assets/{collapse-BxfWsP__.js → collapse-BpaTIXGR.js} +1 -1
- package/dist/assets/{constants-DCFVku39.js → constants-i23Cwi4Q.js} +1 -1
- package/dist/assets/{createTaskActions-iyTd7aTs.js → createTaskActions-BNZJm0x7.js} +1 -1
- package/dist/assets/{date-picker-CWU_QC7e.js → date-picker-BQF1xk_t.js} +1 -1
- package/dist/assets/{digitalhuman-CMkkSsln.js → digitalhuman-cHVtB_wP.js} +1 -1
- package/dist/assets/{dropdown-wDPMUQzY.js → dropdown-BOxZ4sm1.js} +1 -1
- package/dist/assets/{esm-HaSNLe6N.js → esm-0FG9CS73.js} +1 -1
- package/dist/assets/{esm-CD4l8aaq.js → esm-B3XgoG89.js} +2 -2
- package/dist/assets/{esm-BfctCBte.js → esm-B3cB6KFL.js} +2 -2
- package/dist/assets/{esm-DY3TG4t3.js → esm-BdmgF-C0.js} +1 -1
- package/dist/assets/esm-BrtlkCH_.js +1 -0
- package/dist/assets/{esm-BL_7wYH8.js → esm-C-CoZnBO.js} +1 -1
- package/dist/assets/{esm-TKr9B_D7.js → esm-Cf1qYwTK.js} +3 -3
- package/dist/assets/{fish-DhwkHrn3.js → fish-CdUjoNAV.js} +1 -1
- package/dist/assets/{flux-Dv97ge0v.js → flux-D1kCaaCZ.js} +1 -1
- package/dist/assets/{grokvideo-Dlaph8Ci.js → grokvideo-D0Wb_2Pk.js} +1 -1
- package/dist/assets/{hailuo-B49kc2C1.js → hailuo-DGHZsNAS.js} +1 -1
- package/dist/assets/{headshots-DR4ah_Z1.js → headshots-DaZTW6Xw.js} +1 -1
- package/dist/assets/{image-BDbA6ujR.js → image-1usZQRTH.js} +1 -1
- package/dist/assets/{index-C8VZRfvb.js → index-Cvj3R8n8.js} +5 -5
- package/dist/assets/{index.browser.esm-c00vc76i.js → index.browser.esm-Dku6iPU7.js} +1 -1
- package/dist/assets/{index.es-DiQg36vB.js → index.es-iPEvnXaP.js} +1 -1
- package/dist/assets/{input-number-iIUsxXHn.js → input-number-Bl62Blxv.js} +1 -1
- package/dist/assets/{kling-Pii7KZJ8.js → kling-vUX16B4V.js} +1 -1
- package/dist/assets/{luma-CMrhFYiK.js → luma-B7kqVb48.js} +1 -1
- package/dist/assets/{maestro-uEVuoBK5.js → maestro-Bgoh25W_.js} +1 -1
- package/dist/assets/{maestro-CumunqUD.js → maestro-Bsu274Ew.js} +1 -1
- package/dist/assets/{maestro-BFtxgPRq.js → maestro-CKesa63q.js} +1 -1
- package/dist/assets/{midjourney-Dz-yfJrL.js → midjourney-CtiUD856.js} +1 -1
- package/dist/assets/{nanobanana-CnjnKLlH.js → nanobanana-D5q8BVPC.js} +1 -1
- package/dist/assets/{openaiimage-BN41DmEn.js → openaiimage-CwGLdb7n.js} +1 -1
- package/dist/assets/{pagination-Im2bAxty.js → pagination-DkldOu5W.js} +1 -1
- package/dist/assets/{pika-QQehGRGg.js → pika-DiNuML23.js} +1 -1
- package/dist/assets/{pixverse-Dtgbcarb.js → pixverse-DDaVA2qz.js} +1 -1
- package/dist/assets/{popover-DnLAAoHK.js → popover-BUfCoLR7.js} +1 -1
- package/dist/assets/{producer-DdLwpcVf.js → producer-B6m41tIl.js} +1 -1
- package/dist/assets/{qrart-CFENy5AU.js → qrart-GA3nYYny.js} +1 -1
- package/dist/assets/{realtime-DDMMRAPa.js → realtime-BoWxE8ND.js} +1 -1
- package/dist/assets/{row-D_S4iKgK.js → row-DcQVU8mL.js} +1 -1
- package/dist/assets/{seedance-B1DrApnl.js → seedance-DN9vxkPV.js} +1 -1
- package/dist/assets/{seedream-BR5KFyE6.js → seedream-D0roCCnE.js} +1 -1
- package/dist/assets/{select-C13m6drR.js → select-B5GsgYo4.js} +1 -1
- package/dist/assets/{serp-zbUiVYLo.js → serp-BQUR1I74.js} +1 -1
- package/dist/assets/{slider-BFZImh9a.js → slider-2Tlosx1-.js} +1 -1
- package/dist/assets/{solana-wallets-DbN9c7pj.js → solana-wallets-Dn5xmcPT.js} +2 -2
- package/dist/assets/{solana-wallets-vue-C1VEAIng.js → solana-wallets-vue-mVaIE0JW.js} +1 -1
- package/dist/assets/{sora-DuNKpuVp.js → sora-DLEFyzU_.js} +1 -1
- package/dist/assets/{suno-VL29nfK2.js → suno-CNubnTSh.js} +1 -1
- package/dist/assets/{switch-CW1TXNSZ.js → switch-DppejUwp.js} +1 -1
- package/dist/assets/{tabs-BuxkFoW2.js → tabs-BuReRBYv.js} +1 -1
- package/dist/assets/{time-picker-DMEs6NHP.js → time-picker-BZJwtjoj.js} +1 -1
- package/dist/assets/{upload-BQ2F_Ks3.js → upload-DgTKYIS2.js} +1 -1
- package/dist/assets/{veo-Cfv3ZTaU.js → veo-D4luRwqd.js} +1 -1
- package/dist/assets/{wan-DY_32D9V.js → wan-X6XHBvYM.js} +1 -1
- package/dist/assets/{web-BqctuYFX.js → web-BfzjAyv7.js} +1 -1
- package/dist/assets/{web-D3hr8gb-.js → web-D-hzqlvD.js} +1 -1
- package/dist/assets/{web-CAg1edQV.js → web-DtF_C7DL.js} +1 -1
- package/dist/assets/{web-DqNFd0Cw.js → web-Ifk7Ryyw.js} +1 -1
- package/dist/assets/{web-CfN5yg8E.js → web-OPmN1owu.js} +1 -1
- package/dist/assets/{webextrator-BxbbdlOI.js → webextrator-FZMBS5p2.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/dist/assets/Index-BFZQeekm.js +0 -1
- package/dist/assets/codingBridge-x9W5cJUj.js +0 -2
- package/dist/assets/esm-CU6Fe-Zk.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{$ as e,A as t,D as n,F as r,N as i,O as a,P as o,S as s,Vt as c,Wt as l,Z as u,b as d,dt as f,k as p,nt as m,tt as h,ut as g,y as _}from"./vendor-chart-BJCvKk8-.js";import{t as v}from"./button-BydTr5nV.js";import{t as y}from"./upload-BQ2F_Ks3.js";import{t as b}from"./checkbox-BC1X4B2U.js";import{t as x}from"./drawer-R6pcaap2.js";import{n as S,r as C,t as w}from"./dropdown-wDPMUQzY.js";import{t as T}from"./popover-DnLAAoHK.js";import{n as E,t as D}from"./skeleton-BwNBivMN.js";import{$r as O,Gr as k,Gt as A,Ir as j,Kr as M,Nr as N,O as P,Ur as F,Vt as I,Yr as L}from"./index-C8VZRfvb.js";import"./vendor-highlight-BtIeKitL.js";import{t as R}from"./index.es-DiQg36vB.js";import{t as z}from"./CopyToClipboard-Ds9LKDk2.js";import{n as ee,t as te}from"./AskUserQuestionCard-CVFwZF4c.js";import{s as ne,t as re}from"./codingBridgeNotify-Dyre4a5u.js";import{t as ie}from"./CodeSnippet-DvMEs3zG.js";var ae=r({name:`CodingBridgeNotificationToggle`,components:{ElButton:v,FontAwesomeIcon:R},data(){return{enabled:!1,busy:!1}},computed:{supported(){return F()||ne()}},mounted(){this.enabled=!F()&&re()===`granted`},methods:{async onToggle(){this.busy=!0;try{if(this.enabled){await this.$store.dispatch(`codingBridge/disableNotifications`),this.enabled=!1,M.success(this.$t(`codingBridge.notify.disabled`));return}let e=await this.$store.dispatch(`codingBridge/enableNotifications`);e===`enabled`?(this.enabled=!0,M.success(this.$t(`codingBridge.notify.enabled`))):e===`denied`?M.warning(this.$t(`codingBridge.notify.denied`)):M.warning(this.$t(`codingBridge.notify.unsupported`))}catch{M.error(this.$t(`codingBridge.notify.failed`))}finally{this.busy=!1}}}});function oe(e,t,n,r,i,o){let s=h(`font-awesome-icon`),c=h(`el-button`);return e.supported?(u(),a(c,{key:0,circle:``,size:`small`,type:e.enabled?`primary`:`default`,title:e.enabled?e.$t(`codingBridge.notify.disable`):e.$t(`codingBridge.notify.enable`),disabled:e.busy,onClick:e.onToggle},{default:g(()=>[e.busy?(u(),a(s,{key:0,icon:`fa-solid fa-spinner`,spin:``})):(u(),a(s,{key:1,icon:e.enabled?`fa-solid fa-bell`:`fa-regular fa-bell`},null,8,[`icon`]))]),_:1},8,[`type`,`title`,`disabled`,`onClick`])):p(``,!0)}var se=r({name:`CodingBridgeNodeList`,components:{ElButton:v,FontAwesomeIcon:R,NotificationToggle:P(ae,[[`render`,oe]])},emits:[`pair`],computed:{nodes(){return this.$store.state.codingBridge?.nodes??[]},currentNodeId(){return this.$store.state.codingBridge?.currentNodeId},connection(){return this.$store.state.codingBridge?.connection??`disconnected`},connectionLabel(){return this.$t(`codingBridge.connection.${this.connection}`)},connectionDotClass(){switch(this.connection){case`connected`:return`bg-[var(--el-color-success)]`;case`connecting`:return`bg-[var(--el-color-warning)]`;case`error`:return`bg-[var(--el-color-danger)]`;default:return`bg-[var(--app-text-subtle)]`}}},methods:{onSelect(e){this.$store.dispatch(`codingBridge/selectNode`,e)},onRefresh(){this.$store.dispatch(`codingBridge/getNodes`)},async onDelete(e){try{await k.confirm(this.$t(`codingBridge.nodeList.removeConfirm`,{name:e.name}),this.$t(`codingBridge.nodeList.remove`),{confirmButtonText:this.$t(`codingBridge.nodeList.remove`),cancelButtonText:this.$t(`common.button.cancel`),type:`warning`})}catch{return}try{await this.$store.dispatch(`codingBridge/deleteNode`,e.node_id),M.success(this.$t(`codingBridge.nodeList.removeSuccess`))}catch{M.error(this.$t(`codingBridge.nodeList.removeFailed`))}}}}),ce={class:`node-list flex flex-col h-full bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},le={class:`flex items-center justify-between px-4 py-3 border-b border-[var(--app-border-subtle)]`},ue={class:`flex items-center gap-2 font-medium`},de={class:`flex items-center gap-1`},fe={class:`flex items-center gap-2 px-4 py-2 text-xs border-b border-[var(--app-border-subtle)]`},B={class:`text-[var(--app-text-subtle)]`},V={class:`flex-1 overflow-y-auto`},pe={key:0,class:`p-6 text-center text-sm text-[var(--app-text-subtle)]`},me={class:`mb-3`},he={key:1,class:`list-none m-0 p-0`},ge=[`onClick`],_e={class:`flex-1 min-w-0`},ve={class:`flex items-center gap-2`},ye={class:`truncate font-medium`},be=[`title`],xe={class:`text-xs text-[var(--app-text-subtle)] truncate`};function Se(r,a,f,p,m,_){let v=h(`font-awesome-icon`),y=h(`notification-toggle`),b=h(`el-button`);return u(),t(`div`,ce,[n(`div`,le,[n(`div`,ue,[o(v,{icon:`fa-solid fa-laptop-code`}),n(`span`,null,l(r.$t(`codingBridge.nodeList.title`)),1)]),n(`div`,de,[o(y),o(b,{circle:``,size:`small`,title:r.$t(`codingBridge.nodeList.refresh`),onClick:r.onRefresh},{default:g(()=>[o(v,{icon:`fa-solid fa-rotate-right`})]),_:1},8,[`title`,`onClick`]),o(b,{type:`primary`,circle:``,size:`small`,title:r.$t(`codingBridge.nodeList.pair`),onClick:a[0]||=e=>r.$emit(`pair`)},{default:g(()=>[o(v,{icon:`fa-solid fa-plus`})]),_:1},8,[`title`])])]),n(`div`,fe,[n(`span`,{class:c([`inline-block w-2 h-2 rounded-full`,r.connectionDotClass])},null,2),n(`span`,B,l(r.connectionLabel),1)]),n(`div`,V,[r.nodes.length?(u(),t(`ul`,he,[(u(!0),t(s,null,e(r.nodes,e=>(u(),t(`li`,{key:e.node_id,class:c([`group flex items-center gap-3 px-4 py-3 cursor-pointer border-b border-[var(--app-border-subtle)] hover:bg-[var(--app-content-bg)]`,{"bg-[var(--app-content-bg)]":e.node_id===r.currentNodeId}]),onClick:t=>r.onSelect(e.node_id)},[o(v,{icon:`fa-solid fa-desktop`,class:`text-[var(--app-text-subtle)]`}),n(`div`,_e,[n(`div`,ve,[n(`span`,ye,l(e.name),1),n(`span`,{class:c([`inline-block w-2 h-2 rounded-full flex-none`,e.status===`online`?`bg-[var(--el-color-success)]`:`bg-[var(--app-text-subtle)]`]),title:e.status===`online`?r.$t(`codingBridge.status.online`):r.$t(`codingBridge.status.offline`)},null,10,be)]),n(`div`,xe,l(e.status===`online`?r.$t(`codingBridge.status.online`):r.$t(`codingBridge.status.offline`)),1)]),o(b,{class:`opacity-0 group-hover:opacity-100`,text:``,circle:``,size:`small`,title:r.$t(`codingBridge.nodeList.remove`),onClick:d(t=>r.onDelete(e),[`stop`])},{default:g(()=>[o(v,{icon:`fa-solid fa-trash`})]),_:1},8,[`title`,`onClick`])],10,ge))),128))])):(u(),t(`div`,pe,[n(`p`,me,l(r.$t(`codingBridge.nodeList.empty`)),1),o(b,{type:`primary`,round:``,size:`small`,onClick:a[1]||=e=>r.$emit(`pair`)},{default:g(()=>[o(v,{icon:`fa-solid fa-plus`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.nodeList.pairFirst`)),1)]),_:1})]))])])}var Ce=P(se,[[`render`,Se]]),we=e=>{let t=e?.questions;return Array.isArray(t)&&t.length>0&&t.every(e=>e&&typeof e.question==`string`&&Array.isArray(e.options))},H=e=>e?(e.tool||``).toLowerCase()===`askuserquestion`?!0:we(e.input):!1,Te=e=>({questions:e.input?.questions??[]}),Ee=100,U=4e4,De=12e3,W=6e3,G=(e,t)=>{if(e.length<=t)return e;let n=((e.length-t)/1024).toFixed(1);return`${e.slice(0,t)}\n\n··· +${n} KB ···`},Oe=r({name:`CodingBridgeTranscriptItem`,directives:{highlight:A},components:{FontAwesomeIcon:R,VueMarkdown:ee,CodeSnippet:ie,CopyToClipboard:z},props:{event:{type:Object,required:!0},editable:{type:Boolean,default:!1}},emits:[`edit`],data(){return{renderedText:G(this.event.text||``,U),streamTimer:0}},computed:{commandText(){let e=this.event.input;if(!e)return``;for(let t of[`command`,`cmd`,`script`]){let n=e[t];if(typeof n==`string`&&n.trim())return G(n,W)}return``},filePath(){let e=this.event.input;if(!e)return``;for(let t of[`file_path`,`filePath`,`path`,`notebook_path`,`filename`]){let n=e[t];if(typeof n==`string`&&n.trim())return n}return``},toolDescription(){let e=this.event.input?.description;return typeof e==`string`?e:``},toolIcon(){if(this.commandText)return`fa-solid fa-terminal`;let e=(this.event.tool??``).toLowerCase();return/read|cat|view/.test(e)?`fa-solid fa-file-lines`:/write|edit|create|update|insert/.test(e)?`fa-solid fa-pen`:/grep|glob|search|find|list/.test(e)?`fa-solid fa-magnifying-glass`:`fa-solid fa-code`},questionLines(){let e=(this.event.tool??``).toLowerCase(),t=this.event.input?.questions;return!(e===`askuserquestion`||Array.isArray(t))||!Array.isArray(t)?[]:t.filter(e=>e&&typeof e.question==`string`).map(e=>({header:typeof e.header==`string`?e.header:``,question:e.question}))},inputText(){let e=this.event.input;if(!e)return``;let t={};for(let[n,r]of Object.entries(e))n===`timeout`||n===`description`||(t[n]=r);if(Object.keys(t).length===0)return``;try{return G(JSON.stringify(t,null,2),W)}catch{return G(String(e),W)}},thinkingText(){return G(this.event.text||``,U)},resultText(){let e=this.event.content;return typeof e==`string`&&e.length>0?e:`—`},resultDisplay(){return G(this.resultText,De)},resultLabel(){let e=[];return this.event.is_error?e.push(this.$t(`codingBridge.transcript.turnFailed`)):e.push(this.$t(`codingBridge.transcript.turnDone`)),typeof this.event.cost_usd==`number`&&this.event.cost_usd>0&&e.push(`$${this.event.cost_usd.toFixed(4)}`),e.join(` · `)},hasAttachments(){return!!this.event.attachments?.length},noticeText(){let e=this.event.subtype,t=this.event.command;if(t){if(e===`slash_unavailable`)return this.$t(`codingBridge.notice.slashUnavailable`,{command:t});if(e===`slash_codex_unsupported`)return this.$t(`codingBridge.notice.slashCodexUnsupported`,{command:t})}return this.event.text||``}},watch:{"event.text"(){this.scheduleRender()},"event.streaming"(e){e||this.flushRender()}},beforeUnmount(){this.streamTimer&&window.clearTimeout(this.streamTimer)},methods:{scheduleRender(){if(!this.event.streaming){this.flushRender();return}this.streamTimer||=window.setTimeout(()=>{this.streamTimer=0,this.renderedText=G(this.event.text||``,U)},Ee)},flushRender(){this.streamTimer&&=(window.clearTimeout(this.streamTimer),0),this.renderedText=G(this.event.text||``,U)}}}),ke={key:0,class:`group flex items-end justify-end gap-1.5`},Ae=[`title`,`aria-label`],je={class:`max-w-[85%] rounded-lg px-3 py-2 bg-[var(--el-color-primary)] text-white whitespace-pre-wrap break-words`},Me=[`src`],Ne=[`href`],Pe=[`src`],Fe={key:1,class:`flex h-9 w-9 items-center justify-center rounded bg-white/15`},Ie={class:`min-w-0 truncate`},Le={key:2},Re={key:2,class:`whitespace-pre-wrap break-words italic text-[var(--app-text-subtle)] border-l-2 border-[var(--app-border-subtle)] pl-3`},ze={key:3,class:`overflow-hidden rounded-md bg-[var(--app-sidebar-bg)] border border-[var(--app-border-subtle)]`},Be={class:`flex items-center gap-2 px-2.5 py-1.5 font-medium text-[var(--app-text-subtle)]`},Ve={key:0,class:`min-w-0 truncate text-xs font-normal opacity-70`},He={key:0,class:`flex flex-col gap-1.5 px-2.5 pb-2`},Ue={key:0,class:`font-medium text-[var(--app-text)]`},We={class:`whitespace-pre-wrap break-words text-[var(--app-text-subtle)]`},Ge={key:1,class:`px-2.5 pb-2`},Ke={key:2,class:`px-2.5 pb-2 font-mono text-xs break-all text-[var(--app-text-subtle)]`},qe={key:3,class:`px-2.5 pb-2`},Je={key:0,class:`absolute right-1.5 top-1.5 z-10 rounded bg-[var(--app-content-bg)] px-1 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100`},Ye={key:5,class:`flex items-center gap-2 text-xs text-[var(--app-text-subtle)]`},Xe={key:6,class:`flex items-start gap-2 rounded-md bg-[var(--app-sidebar-bg)] border border-[var(--app-border-subtle)] text-[var(--app-text-subtle)] px-3 py-2 text-xs`},Ze={class:`whitespace-pre-wrap break-words`},Qe={key:7,class:`rounded-md bg-[var(--el-color-danger-light-9)] text-[var(--el-color-danger)] px-3 py-2 whitespace-pre-wrap break-words`};function $e(r,i,a,d,g,_){let v=h(`font-awesome-icon`),y=h(`vue-markdown`),b=h(`code-snippet`),x=h(`copy-to-clipboard`),S=m(`highlight`);return u(),t(`div`,{class:c([`transcript-item text-sm leading-relaxed`,`kind-${r.event.kind}`])},[r.event.kind===`prompt`?(u(),t(`div`,ke,[r.editable?(u(),t(`button`,{key:0,type:`button`,class:`cb-edit-btn opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100`,title:r.$t(`codingBridge.session.editPrompt`),"aria-label":r.$t(`codingBridge.session.editPrompt`),onClick:i[0]||=e=>r.$emit(`edit`,r.event)},[o(v,{icon:`fa-solid fa-pen`})],8,Ae)):p(``,!0),n(`div`,je,[r.event.images&&r.event.images.length?(u(),t(`div`,{key:0,class:c([`flex flex-wrap gap-1.5`,{"mb-1.5":r.event.text||r.hasAttachments}])},[(u(!0),t(s,null,e(r.event.images,(e,n)=>(u(),t(`img`,{key:n,src:e,class:`w-16 h-16 rounded object-cover`,alt:``},null,8,Me))),128))],2)):p(``,!0),r.hasAttachments?(u(),t(`div`,{key:1,class:c([`flex flex-wrap gap-1.5`,{"mb-1.5":r.event.text}])},[(u(!0),t(s,null,e(r.event.attachments,(e,r)=>(u(),t(`a`,{key:`${e.url}-${r}`,href:e.url,target:`_blank`,rel:`noopener noreferrer`,class:`flex max-w-[220px] items-center gap-2 rounded-md bg-white/15 px-2 py-1.5 text-xs text-white hover:bg-white/20`},[e.type===`image`?(u(),t(`img`,{key:0,src:e.url,class:`h-9 w-9 rounded object-cover`,alt:``},null,8,Pe)):(u(),t(`span`,Fe,[o(v,{icon:`fa-solid fa-file`})])),n(`span`,Ie,l(e.name||e.url),1)],8,Ne))),128))],2)):p(``,!0),r.event.text?(u(),t(`span`,Le,l(r.event.text),1)):p(``,!0)])])):r.event.kind===`text`?(u(),t(`div`,{key:1,class:c([`cb-stream-text`,{"is-streaming":r.event.streaming}])},[f(o(y,{source:r.renderedText,class:`markdown-body bg-transparent text-[var(--app-text)]`},null,8,[`source`]),[[S]])],2)):r.event.kind===`thinking`?(u(),t(`div`,Re,l(r.thinkingText),1)):r.event.kind===`tool_use`?(u(),t(`div`,ze,[n(`div`,Be,[o(v,{icon:r.toolIcon,class:`text-[var(--el-color-primary)]`},null,8,[`icon`]),n(`span`,null,l(r.event.tool),1),r.toolDescription?(u(),t(`span`,Ve,l(r.toolDescription),1)):p(``,!0)]),r.questionLines.length?(u(),t(`div`,He,[(u(!0),t(s,null,e(r.questionLines,(e,r)=>(u(),t(`div`,{key:r,class:`rounded border border-[var(--app-border-subtle)] bg-[var(--app-content-bg)] px-2.5 py-1.5 text-xs`},[e.header?(u(),t(`div`,Ue,l(e.header),1)):p(``,!0),n(`div`,We,l(e.question),1)]))),128))])):r.commandText?(u(),t(`div`,Ge,[o(b,{code:r.commandText,lang:`bash`,copyable:``},null,8,[`code`])])):r.filePath?(u(),t(`div`,Ke,l(r.filePath),1)):r.inputText?(u(),t(`div`,qe,[o(b,{code:r.inputText,lang:`json`,copyable:``},null,8,[`code`])])):p(``,!0)])):r.event.kind===`tool_result`?(u(),t(`div`,{key:4,class:c([`group relative overflow-hidden rounded-md`,r.event.is_error?`bg-[var(--el-color-danger-light-9)]`:`bg-[var(--app-sidebar-bg)]`])},[r.event.content?(u(),t(`div`,Je,[o(x,{content:r.resultText},null,8,[`content`])])):p(``,!0),n(`pre`,{class:c([`m-0 max-h-72 overflow-auto whitespace-pre-wrap break-words px-2.5 py-2 font-mono text-xs`,r.event.is_error?`text-[var(--el-color-danger)]`:`text-[var(--app-text-subtle)]`])},l(r.resultDisplay),3)],2)):r.event.kind===`result`?(u(),t(`div`,Ye,[o(v,{icon:r.event.is_error?`fa-solid fa-xmark`:`fa-solid fa-check`},null,8,[`icon`]),n(`span`,null,l(r.resultLabel),1)])):r.event.kind===`notice`?(u(),t(`div`,Xe,[o(v,{icon:`fa-solid fa-circle-info`,class:`mt-0.5 flex-none text-[var(--el-color-primary)]`}),n(`span`,Ze,l(r.noticeText),1)])):r.event.kind===`error`?(u(),t(`div`,Qe,l(r.event.text),1)):p(``,!0)],2)}var et=P(Oe,[[`render`,$e],[`__scopeId`,`data-v-1b7ef381`]]),K=[`⠋`,`⠙`,`⠹`,`⠸`,`⠼`,`⠴`,`⠦`,`⠧`,`⠇`,`⠏`],tt=`Pondering.Noodling.Conjuring.Brewing.Cooking.Crafting.Churning.Simmering.Percolating.Ruminating.Musing.Marinating.Synthesizing.Computing.Hatching.Forging.Vibing.Working.Thinking.Cogitating.Mulling.Stewing.Tinkering.Wrangling.Spinning.Reticulating.Manifesting.Deliberating`.split(`.`),nt=[`思考中`,`酝酿中`,`沉思中`,`推敲中`,`构思中`,`计算中`,`琢磨中`,`捣鼓中`,`炼制中`,`召唤中`,`编织中`,`烹饪中`,`咀嚼中`,`盘算中`,`发酵中`,`运转中`,`冥想中`,`鼓捣中`,`熬制中`,`神游中`,`演算中`,`雕琢中`,`头脑风暴中`,`反复斟酌中`],rt=80,q=60,it=1500,J=28,at=r({name:`CodingBridgeThinkingIndicator`,data(){return{spinnerIndex:0,display:``,elapsed:0,charIndex:0,phase:`typing`,currentWord:``,spinnerTimer:0,elapsedTimer:0,typeTimer:0}},computed:{spinnerFrame(){return K[this.spinnerIndex]},words(){return this.$i18n.locale.startsWith(`zh`)?nt:tt}},mounted(){this.currentWord=this.pickWord(),this.spinnerTimer=window.setInterval(()=>{this.spinnerIndex=(this.spinnerIndex+1)%K.length},rt),this.elapsedTimer=window.setInterval(()=>{this.elapsed+=1},1e3),this.scheduleType(q)},beforeUnmount(){window.clearInterval(this.spinnerTimer),window.clearInterval(this.elapsedTimer),window.clearTimeout(this.typeTimer)},methods:{pickWord(){let e=this.words;if(e.length<=1)return e[0]??``;let t=this.currentWord;for(;t===this.currentWord;)t=e[Math.floor(Math.random()*e.length)];return t},scheduleType(e){this.typeTimer=window.setTimeout(this.advance,e)},advance(){let e=this.currentWord;this.phase===`typing`?(this.charIndex+=1,this.display=e.slice(0,this.charIndex),this.charIndex>=e.length?(this.phase=`holding`,this.scheduleType(it)):this.scheduleType(q)):this.phase===`holding`?(this.phase=`deleting`,this.scheduleType(J)):(--this.charIndex,this.display=e.slice(0,Math.max(0,this.charIndex)),this.charIndex<=0?(this.currentWord=this.pickWord(),this.phase=`typing`,this.scheduleType(q)):this.scheduleType(J))}}}),ot={class:`cb-thinking flex items-center gap-2 text-sm text-[var(--app-text-subtle)] py-1`},st={class:`cb-thinking__spinner text-[var(--el-color-primary)]`},ct={class:`cb-thinking__word`},lt={class:`cb-thinking__elapsed tabular-nums opacity-60`};function ut(e,r,a,o,s,c){return u(),t(`div`,ot,[n(`span`,st,l(e.spinnerFrame),1),n(`span`,ct,[i(l(e.display),1),r[0]||=n(`span`,{class:`cb-thinking__caret`},`▋`,-1)]),n(`span`,lt,`(`+l(e.elapsed)+`s)`,1)])}var dt=P(at,[[`render`,ut],[`__scopeId`,`data-v-6087e9e6`]]),ft=r({name:`CodingBridgeDirectoryDialog`,components:{ElDialog:L,ElButton:v,ElInput:O,FontAwesomeIcon:R},props:{visible:{type:Boolean,default:!1},initialPath:{type:String,default:``}},emits:[`update:visible`,`select`],data(){return{pathInput:``}},computed:{listing(){return this.$store.state.codingBridge?.directory},loading(){return this.$store.state.codingBridge?.directoryLoading===!0},directories(){return(this.listing?.entries??[]).filter(e=>e.type===`dir`)},files(){return(this.listing?.entries??[]).filter(e=>e.type===`file`)},isEmpty(){return!!this.listing&&!this.listing.error&&(this.listing.entries??[]).length===0}},watch:{"listing.path"(e){this.pathInput=e??``}},methods:{onOpen(){this.pathInput=this.initialPath||``,this.$store.dispatch(`codingBridge/browseDir`,this.initialPath||void 0)},goPath(){let e=this.pathInput.trim();e&&this.$store.dispatch(`codingBridge/browseDir`,e)},syncPathInput(){this.pathInput=this.listing?.path??``},onVisibleChange(e){this.$emit(`update:visible`,e),e||this.$store.dispatch(`codingBridge/clearDirectory`)},openDir(e){this.$store.dispatch(`codingBridge/browseDir`,e)},goParent(){this.listing?.parent&&this.$store.dispatch(`codingBridge/browseDir`,this.listing.parent)},refresh(){this.$store.dispatch(`codingBridge/browseDir`,this.listing?.path||this.initialPath||void 0)},chooseCurrent(){this.listing&&!this.listing.error&&(this.$emit(`select`,this.listing.path),this.onVisibleChange(!1))}}}),pt={class:`flex flex-col gap-2`},mt={class:`flex items-center gap-2 min-w-0`},ht={class:`h-72 overflow-y-auto border border-[var(--app-border-subtle)] rounded-md divide-y divide-[var(--app-border-subtle)]`},gt={key:0,class:`h-full flex items-center justify-center text-sm text-[var(--app-text-subtle)]`},_t={key:1,class:`h-full flex items-center justify-center text-sm text-[var(--el-color-danger)]`},vt=[`onClick`],yt={class:`truncate`,dir:`ltr`},bt={class:`truncate`,dir:`ltr`},xt={key:0,class:`h-full flex items-center justify-center text-sm text-[var(--app-text-subtle)] py-8`},St={key:0,class:`text-[11px] text-[var(--app-text-subtle)] px-1`},Ct={class:`flex items-center justify-end gap-2`};function wt(r,c,d,f,m,v){let y=h(`font-awesome-icon`),b=h(`el-button`),x=h(`el-input`),S=h(`el-dialog`);return u(),a(S,{"model-value":r.visible,title:r.$t(`codingBridge.directory.title`),width:`520px`,"append-to-body":``,"onUpdate:modelValue":r.onVisibleChange,onOpen:r.onOpen},{footer:g(()=>[n(`div`,Ct,[o(b,{round:``,onClick:c[1]||=e=>r.onVisibleChange(!1)},{default:g(()=>[i(l(r.$t(`common.button.cancel`)),1)]),_:1}),o(b,{type:`primary`,round:``,disabled:!r.listing||!!r.listing.error,onClick:r.chooseCurrent},{default:g(()=>[i(l(r.$t(`codingBridge.directory.choose`)),1)]),_:1},8,[`disabled`,`onClick`])])]),default:g(()=>[n(`div`,pt,[n(`div`,mt,[o(b,{size:`small`,circle:``,disabled:!r.listing||!r.listing.parent||r.loading,title:r.$t(`codingBridge.directory.up`),onClick:r.goParent},{default:g(()=>[o(y,{icon:`fa-solid fa-arrow-up`})]),_:1},8,[`disabled`,`title`,`onClick`]),o(x,{modelValue:r.pathInput,"onUpdate:modelValue":c[0]||=e=>r.pathInput=e,size:`small`,class:`flex-1 min-w-0`,dir:`ltr`,placeholder:r.$t(`codingBridge.directory.pathPlaceholder`),disabled:r.loading,onKeyup:_(r.goPath,[`enter`]),onBlur:r.syncPathInput},{append:g(()=>[o(b,{title:r.$t(`codingBridge.directory.go`),disabled:r.loading||!r.pathInput.trim(),onClick:r.goPath},{default:g(()=>[o(y,{icon:`fa-solid fa-arrow-right`})]),_:1},8,[`title`,`disabled`,`onClick`])]),_:1},8,[`modelValue`,`placeholder`,`disabled`,`onKeyup`,`onBlur`]),o(b,{size:`small`,circle:``,disabled:r.loading,title:r.$t(`codingBridge.directory.refresh`),onClick:r.refresh},{default:g(()=>[o(y,{icon:`fa-solid fa-rotate-right`,spin:r.loading},null,8,[`spin`])]),_:1},8,[`disabled`,`title`,`onClick`])]),n(`div`,ht,[r.loading&&!r.listing?(u(),t(`div`,gt,l(r.$t(`codingBridge.directory.loading`)),1)):r.listing&&r.listing.error?(u(),t(`div`,_t,l(r.listing.error),1)):(u(),t(s,{key:2},[(u(!0),t(s,null,e(r.directories,e=>(u(),t(`button`,{key:e.path,type:`button`,class:`w-full flex items-center gap-2 px-3 py-2 text-left text-sm hover:bg-[var(--app-content-hover-bg)]`,onClick:t=>r.openDir(e.path)},[o(y,{icon:`fa-solid fa-folder`,class:`text-[var(--el-color-warning)]`}),n(`span`,yt,l(e.name),1)],8,vt))),128)),(u(!0),t(s,null,e(r.files,e=>(u(),t(`div`,{key:e.path,class:`w-full flex items-center gap-2 px-3 py-2 text-sm text-[var(--app-text-subtle)]`},[o(y,{icon:`fa-solid fa-file`}),n(`span`,bt,l(e.name),1)]))),128)),r.isEmpty?(u(),t(`div`,xt,l(r.$t(`codingBridge.directory.empty`)),1)):p(``,!0)],64))]),r.listing&&r.listing.truncated?(u(),t(`p`,St,l(r.$t(`codingBridge.directory.truncated`)),1)):p(``,!0)])]),_:1},8,[`model-value`,`title`,`onUpdate:modelValue`,`onOpen`])}var Tt=P(ft,[[`render`,wt]]),Y=`data:image/svg+xml,%3csvg%20fill='%23D97757'%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClaude%3c/title%3e%3cpath%20d='m4.7144%2015.9555%204.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608%201.5179.1032%202.2767.1578%201.6514.0972%202.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973%209.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686%201.9064%201.4754%202.4893%201.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335%206.6997%200l.9957.1336.419.3642.6192%201.4147%201.0018%202.2282%201.5543%203.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853%201.8517-.5586%202.9021-.3643%201.9429h.2125l.2429-.2429.9835-1.3053%201.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759%201.1293-.34%201.1657-1.0625%201.3478-.8804%201.1414-1.2628%201.7-.7893%201.36.0729.1093.1882-.0183%202.8535-.607%201.5421-.2794%201.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607%201.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929%201.0686%202.0035%201.8092%202.5075%202.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496%202.3436%203.5214.1214%201.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38%2017.959l-1.1414-1.9428-.1397.079-.674%207.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328%201.9672-2.1796%202.9446-1.7243%201.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889%202.386-3.0357%201.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385%204.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429%201.9064-1.3114Z'/%3e%3c/svg%3e`,X=`data:image/svg+xml,%3csvg%20fill='%23000000'%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M22.282%209.821a5.985%205.985%200%200%200-.516-4.91%206.046%206.046%200%200%200-6.51-2.9A6.065%206.065%200%200%200%204.981%204.18a5.985%205.985%200%200%200-3.998%202.9%206.046%206.046%200%200%200%20.743%207.097%205.98%205.98%200%200%200%20.51%204.911%206.051%206.051%200%200%200%206.515%202.9A5.985%205.985%200%200%200%2013.26%2024a6.056%206.056%200%200%200%205.772-4.206%205.99%205.99%200%200%200%203.997-2.9%206.056%206.056%200%200%200-.747-7.073zM13.26%2022.43a4.476%204.476%200%200%201-2.876-1.04l.141-.081%204.779-2.758a.795.795%200%200%200%20.392-.681v-6.737l2.02%201.168a.071.071%200%200%201%20.038.052v5.583a4.504%204.504%200%200%201-4.494%204.494zM3.6%2018.304a4.47%204.47%200%200%201-.535-3.014l.142.085%204.783%202.759a.771.771%200%200%200%20.78%200l5.843-3.369v2.332a.08.08%200%200%201-.033.062L9.74%2019.95a4.5%204.5%200%200%201-6.14-1.646zM2.34%207.896a4.485%204.485%200%200%201%202.366-1.973V11.6a.766.766%200%200%200%20.388.676l5.815%203.355-2.02%201.168a.076.076%200%200%201-.071%200l-4.83-2.786A4.504%204.504%200%200%201%202.34%207.872zm16.597%203.855l-5.833-3.387L15.119%207.2a.076.076%200%200%201%20.071%200l4.83%202.791a4.494%204.494%200%200%201-.676%208.105v-5.678a.79.79%200%200%200-.407-.667zm2.01-3.023l-.141-.085-4.774-2.782a.776.776%200%200%200-.785%200L9.409%209.23V6.897a.066.066%200%200%201%20.028-.061l4.83-2.787a4.5%204.5%200%200%201%206.68%204.66zm-12.64%204.135l-2.02-1.164a.08.08%200%200%201-.038-.057V6.075a4.5%204.5%200%200%201%207.375-3.453l-.142.08L8.704%205.46a.795.795%200%200%200-.393.681zm1.097-2.365l2.602-1.5%202.607%201.5v2.999l-2.597%201.5-2.607-1.5z'/%3e%3c/svg%3e`,Et=50*1024*1024,Z=10,Q=60,Dt=60,Ot={claude:{src:Y,invertOnDark:!1},codex:{src:X,invertOnDark:!0}},kt=r({name:`CodingBridgeSessionView`,components:{ElInput:O,ElButton:v,ElPopover:T,ElDropdown:w,ElDropdownMenu:C,ElDropdownItem:S,ElUpload:y,ElCheckbox:b,ElSkeleton:D,ElSkeletonItem:E,FontAwesomeIcon:R,TranscriptItem:et,ThinkingIndicator:dt,DirectoryDialog:Tt,AskUserQuestionCard:te,CopyToClipboard:z},mixins:[I],emits:[`history`,`devices`],data(){return{prompt:``,cwd:``,model:``,customModelDraft:``,permissionMode:`bypassPermissions`,provider:`claude`,effort:``,directoryVisible:!1,slashMenuOpen:!1,slashActiveIndex:0,editingEventId:``,restoreCode:!1,attachmentFileList:[],uploadUrl:j()+`/api/v1/files/`,maxAttachments:Z,visibleCount:Q}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},currentNodeId(){return this.$store.state.codingBridge?.currentNodeId},lastComposer(){let e=this.currentNodeId;return(e?this.$store.state.codingBridge?.lastComposer?.[e]:void 0)??{}},currentNode(){return this.$store.state.codingBridge?.nodes?.find(e=>e.node_id===this.currentNodeId)},nodeOnline(){return this.currentNode?.status===`online`},currentSessionId(){return this.$store.state.codingBridge?.currentSessionId},currentSession(){let e=this.currentSessionId;return e?this.$store.state.codingBridge?.sessions?.[e]:void 0},events(){let e=this.currentSessionId;return e?this.$store.state.codingBridge?.events?.[e]??[]:[]},visibleEvents(){let e=this.events;return e.length>this.visibleCount?e.slice(-this.visibleCount):e},hiddenEventCount(){return Math.max(0,this.events.length-this.visibleCount)},historyLoading(){return this.$store.state.codingBridge?.status?.getHistoryDetail===N.Request},pendingQuestion(){let e=this.currentSessionId;if(!e)return;let t=(this.$store.state.codingBridge?.permissions??[]).find(t=>t.session_id===e&&H(t));return t?{request_id:t.request_id,payload:Te(t)}:void 0},isNewSession(){return!this.currentSessionId},canPickCwd(){return this.isNewSession||!this.currentSession?.started},readonly(){return this.currentSession?.readonly===!0},resumeHint(){return!!this.currentSession?.provider&&!this.currentSession?.started&&!this.readonly},replayLabel(){return!this.currentSession?.provider||this.currentSession?.started?``:this.currentSession.provider===`codex`?this.$t(`codingBridge.history.codexLabel`):this.currentSession.provider===`claude`?this.$t(`codingBridge.history.claudeLabel`):this.providerName(this.currentSession.provider)},running(){let e=this.currentSession?.status;return e===`running`||e===`starting`},thinking(){return this.running&&!this.pendingQuestion},connected(){return this.$store.state.codingBridge?.connection===`connected`},canRetry(){return this.currentSession?.status===`error`&&!this.readonly&&this.connected&&this.nodeOnline&&this.events.some(e=>e.kind===`prompt`)},attachments(){return(this.attachmentFileList||[]).map(e=>{let t=e.response?.file_url||(typeof e.url==`string`&&!e.url.startsWith(`blob:`)?e.url:``);if(!t)return;let n=e.raw,r=n?.type||e.mime_type||``;return{type:this.isImageAttachment(e)?`image`:`file`,url:t,name:e.name,mime_type:r,size:n?.size}}).filter(e=>!!e)},uploadingAttachments(){return(this.attachmentFileList||[]).some(e=>this.isAttachmentUploading(e))},canSend(){return(!!this.prompt.trim()||this.attachments.length>0)&&!this.uploadingAttachments&&this.connected&&this.nodeOnline},composerHint(){return this.uploadingAttachments?this.$t(`codingBridge.session.uploadingAttachment`):this.providerCaps.length&&!this.currentProviderAvailable?this.$t(`codingBridge.session.providerUnavailableHint`,{name:this.providerName(this.provider)}):this.resumeHint?this.$t(`codingBridge.history.resumeHint`):this.$t(`codingBridge.session.enterHint`)},nodeCapabilities(){let e=this.currentNodeId;return e?this.$store.state.codingBridge?.capabilities?.[e]:void 0},providerCaps(){return this.nodeCapabilities?.providers??[]},currentProviderCap(){return this.providerCaps.find(e=>e.name===this.provider)},canEdit(){return this.readonly?!1:!!this.providerCaps.find(e=>e.name===this.activeProviderName)?.supports_edit},canRestoreCode(){return!!this.providerCaps.find(e=>e.name===this.activeProviderName)?.supports_code_restore},editingActive(){return!!this.editingEventId},currentProviderAvailable(){return this.providerCaps.length?this.currentProviderCap?.available!==!1:!0},providerOptions(){return this.providerCaps.length?this.providerCaps.map(e=>({value:e.name,label:e.label,available:e.available!==!1})):[{label:this.$t(`codingBridge.session.providerClaude`),value:`claude`,available:!0},{label:this.$t(`codingBridge.session.providerCodex`),value:`codex`,available:!0},{label:`GitHub Copilot`,value:`copilot`,available:!0}]},modelOptions(){return this.currentProviderCap?.models??[]},allowCustomModel(){return this.currentProviderCap?.allow_custom_model??!0},effortOptions(){let e=this.currentProviderCap?.efforts;return(e&&e.length?e:[``]).map(e=>({value:e,label:this.effortLabel(e)}))},permissionModeOptions(){let e=this.currentProviderCap?.permission_modes;return(e&&e.length?e:[`default`,`acceptEdits`,`plan`,`bypassPermissions`]).map(e=>({value:e,label:this.permissionModeLabel(e)}))},sessionMeta(){let e=this.currentSession;if(!e)return``;let t=[];return e.provider&&t.push(this.providerName(e.provider)),e.cwd&&t.push(e.cwd),e.model&&t.push(e.model),t.join(` · `)},activeProviderName(){return this.currentSession?.provider||this.provider},slashCommands(){let e=this.activeProviderName;return this.providerCaps.find(t=>t.name===e)?.commands??[]},slashMatches(){let e=this.prompt.match(/^\/(\S*)$/);if(!e)return[];let t=e[1].toLowerCase();return this.slashCommands.filter(e=>[e.name,...e.aliases??[]].some(e=>e.toLowerCase().startsWith(t)))},slashMenuVisible(){return this.slashMenuOpen&&this.slashMatches.length>0},diagnostics(){let e=[];return this.currentNodeId&&e.push({label:this.$t(`codingBridge.session.nodeId`),value:this.currentNodeId}),this.currentSessionId&&e.push({label:this.$t(`codingBridge.session.sessionId`),value:this.currentSessionId}),this.currentSession?.trace_id&&e.push({label:this.$t(`codingBridge.session.traceId`),value:this.currentSession.trace_id}),e}},watch:{events(){this.scrollToBottom()},pendingQuestion(){this.scrollToBottom()},thinking(){this.scrollToBottom()},currentSessionId(){this.scrollToBottom(),this.visibleCount=Q,this.editingEventId=``,this.restoreCode=!1,this.syncSessionSettings()},currentNodeId(){this.requestCapabilities(),this.isNewSession&&this.restoreComposerPrefs()},providerCaps(){if(!this.isNewSession||!this.providerCaps.length)return;let e=this.providerCaps.find(e=>e.name===this.provider);if(!e||e.available===!1){let e=this.providerCaps.find(e=>e.available!==!1);e&&(this.provider=e.name)}},provider(){this.isNewSession&&(this.model=``,this.effort=``)},prompt(e){this.slashMenuOpen=/^\/\S*$/.test(e),this.slashActiveIndex>=this.slashMatches.length&&(this.slashActiveIndex=0)}},mounted(){this.requestCapabilities(),this.syncSessionSettings()},methods:{requestCapabilities(){this.currentNodeId&&this.$store.dispatch(`codingBridge/getCapabilities`,this.currentNodeId)},effortLabel(e){let t={"":`codingBridge.session.effortDefault`,low:`codingBridge.session.effortLow`,medium:`codingBridge.session.effortMedium`,high:`codingBridge.session.effortHigh`,max:`codingBridge.session.effortMax`}[e];return t?this.$t(t):e},permissionModeLabel(e){let t={default:`codingBridge.session.permissionModeDefault`,acceptEdits:`codingBridge.session.permissionModeAcceptEdits`,plan:`codingBridge.session.permissionModePlan`,bypassPermissions:`codingBridge.session.permissionModeBypass`}[e];return t?this.$t(t):e},providerName(e){let t=this.providerCaps.find(t=>t.name===e);return t?t.label:{claude:this.$t(`codingBridge.session.providerClaude`),codex:this.$t(`codingBridge.session.providerCodex`),copilot:`GitHub Copilot`}[e]??e},providerIcon(e){return Ot[e]??null},syncSessionSettings(){let e=this.currentSession;if(!e){this.restoreComposerPrefs();return}let t=this.lastComposer;e.provider&&(this.provider=e.provider),this.model=e.model??``,this.customModelDraft=``,this.cwd=e.cwd??t.cwd??``,this.effort=e.effort??t.effort??``,this.permissionMode=e.permission_mode??t.permissionMode??`bypassPermissions`},selectModel(e){this.model=e,this.customModelDraft=``,this.closeModelPopover()},applyCustomModel(){let e=this.customModelDraft.trim();e&&(this.model=e,this.customModelDraft=``,this.closeModelPopover())},closeModelPopover(){this.$refs.modelPopover?.hide?.()},onComposerEnter(e){let t=e;t.isComposing||t.keyCode===229||t.shiftKey||t.ctrlKey||t.metaKey||t.altKey||(t.preventDefault(),this.onSend())},onComposerKeydown(e){let t=e;if(this.slashMenuVisible&&!t.isComposing&&t.keyCode!==229){if(t.key===`ArrowDown`){t.preventDefault(),this.moveSlash(1);return}if(t.key===`ArrowUp`){t.preventDefault(),this.moveSlash(-1);return}if(t.key===`Escape`){t.preventDefault(),this.slashMenuOpen=!1;return}if(t.key===`Tab`||t.key===`Enter`&&!t.shiftKey){t.preventDefault(),this.applySlash(this.slashMatches[this.slashActiveIndex]);return}}t.key===`Enter`&&this.onComposerEnter(t)},moveSlash(e){let t=this.slashMatches.length;t&&(this.slashActiveIndex=(this.slashActiveIndex+e+t)%t,this.$nextTick(()=>{(this.$el?.querySelector?.(`.cb-slash-menu__item--active`))?.scrollIntoView({block:`nearest`})}))},applySlash(e){e&&(this.prompt=`/${e.name} `,this.slashMenuOpen=!1,this.slashActiveIndex=0)},onSend(){if(!this.canSend)return;let e=this.attachments;if(this.editingEventId){this.$store.dispatch(`codingBridge/editPrompt`,{eventId:this.editingEventId,prompt:this.prompt,model:this.model,permissionMode:this.permissionMode,effort:this.effort,attachments:e.length?e:void 0,restoreCode:this.restoreCode}),this.resetComposer();return}this.currentNodeId&&this.$store.commit(`codingBridge/setLastComposer`,{node_id:this.currentNodeId,prefs:{cwd:this.cwd,provider:this.provider,model:this.model,permissionMode:this.permissionMode,effort:this.effort}}),this.$store.dispatch(`codingBridge/sendPrompt`,{prompt:this.prompt,cwd:this.cwd,model:this.model,permissionMode:this.permissionMode,provider:this.provider,effort:this.effort,attachments:e.length?e:void 0}),this.resetComposer()},resetComposer(){this.prompt=``,this.slashMenuOpen=!1,this.slashActiveIndex=0,this.editingEventId=``,this.restoreCode=!1,this.clearAttachments()},cancelEdit(){this.resetComposer()},onAnswerQuestion(e){this.$store.dispatch(`codingBridge/answerQuestion`,{request_id:e.tool_use_id,output:e.output})},onSkipQuestion(e){this.$store.dispatch(`codingBridge/resolvePermission`,{request_id:e.tool_use_id,decision:`deny`})},beforeAttachmentUpload(e){return this.attachmentFileList.length>=Z?(M.warning(this.$t(`codingBridge.session.attachmentLimit`,{count:Z})),!1):e.size>Et?(M.warning(this.$t(`codingBridge.session.attachmentTooLarge`)),!1):!0},onAttachmentChange(e){if(!e.url&&e.raw&&this.isImageAttachment(e))try{e.url=URL.createObjectURL(e.raw)}catch{}},onAttachmentSuccess(e,t){e?.file_url&&(this.revokeBlobUrl(t),t.url=e.file_url,t.response=e)},onAttachmentError(){M.error(this.$t(`codingBridge.session.attachmentUploadError`))},onAttachmentExceed(){M.warning(this.$t(`codingBridge.session.attachmentLimit`,{count:Z}))},onTriggerAttachmentUpload(){this.$nextTick(()=>{let e=this.$refs.uploader?.$el;(e?.querySelector(`input.el-upload__input`)||e?.querySelector(`input[type="file"]`))?.click()})},isAttachmentUploading(e){return e.status===`ready`||e.status===`uploading`},isImageAttachment(e){return(e.raw?.type||``).startsWith(`image/`)?!0:/\.(png|jpe?g|gif|webp|bmp|svg)$/i.test(e.name||e.url||``)},attachmentPreviewUrl(e){return this.isImageAttachment(e)&&(e.url||e.response?.file_url)||``},removeAttachment(e,t){this.revokeBlobUrl(t),this.attachmentFileList.splice(e,1)},clearAttachments(){for(let e of this.attachmentFileList)this.revokeBlobUrl(e);this.attachmentFileList=[]},revokeBlobUrl(e){if(e.url?.startsWith(`blob:`))try{URL.revokeObjectURL(e.url)}catch{}},onInterrupt(){this.$store.dispatch(`codingBridge/interruptSession`)},onRetry(){this.$store.dispatch(`codingBridge/retryLastPrompt`)},onEditPrompt(e){this.canEdit&&(this.editingEventId=e.id,this.restoreCode=!1,this.prompt=e.text??``,this.slashMenuOpen=!1,this.slashActiveIndex=0,this.clearAttachments(),this.attachmentFileList=(e.attachments??[]).map((e,t)=>({name:e.name||e.url,url:e.url,status:`success`,percentage:100,uid:Date.now()+t,response:{file_url:e.url},mime_type:e.mime_type})),this.$nextTick(()=>{(this.$el?.querySelector?.(`.cb-composer__input textarea`))?.focus()}))},openDirectory(){this.directoryVisible=!0},onDirectorySelect(e){this.cwd=e},onNewSession(){this.$store.dispatch(`codingBridge/newSession`),this.restoreComposerPrefs(),this.resetComposer()},restoreComposerPrefs(){let e=this.lastComposer;this.cwd=e.cwd??``,this.provider=e.provider??`claude`,this.permissionMode=e.permissionMode??`bypassPermissions`,this.customModelDraft=``,this.$nextTick(()=>{this.model=e.model??``,this.effort=e.effort??``})},scrollToBottom(){this.$nextTick(()=>{let e=this.$refs.transcript;e&&(e.scrollTop=e.scrollHeight)})},loadEarlier(){let e=this.$refs.transcript,t=e?.scrollHeight??0;this.visibleCount+=Dt,this.$nextTick(()=>{e&&(e.scrollTop=e.scrollHeight-t+e.scrollTop)})}}}),At={class:`session-view flex flex-col h-full bg-[var(--app-content-bg)]`},jt={key:0,class:`flex-1 flex flex-col items-center justify-center text-center p-8 text-[var(--app-text-subtle)]`},Mt={class:`text-sm`},Nt={class:`flex items-center justify-between gap-3 px-5 py-3 border-b border-[var(--app-border-subtle)]`},Pt={class:`flex items-center gap-2 min-w-0`},Ft=[`title`,`aria-label`],It={class:`min-w-0`},Lt={class:`flex items-center gap-2 font-medium`},Rt={class:`truncate`},zt={key:0,class:`text-xs text-[var(--app-text-subtle)] truncate`},Bt={key:0,class:`text-[var(--el-color-primary)]`},Vt={class:`flex items-center gap-2 flex-none`},Ht={key:0,class:`px-5 py-2 text-xs bg-[var(--el-color-warning-light-9)] text-[var(--el-color-warning)] border-b border-[var(--app-border-subtle)]`},Ut={key:1,class:`flex flex-wrap items-center gap-x-4 gap-y-1 px-5 py-1.5 text-[11px] text-[var(--app-text-subtle)] border-b border-[var(--app-border-subtle)]`},Wt={class:`opacity-70 flex-none`},Gt=[`title`],Kt={ref:`transcript`,class:`flex-1 min-h-0 overflow-y-auto px-5 py-4 flex flex-col gap-3`},qt={key:0,class:`cb-skeleton`},Jt={class:`flex flex-col gap-4`},Yt={class:`flex justify-end`},Xt={class:`flex flex-col gap-1.5`},Zt={class:`flex justify-end`},Qt={class:`flex flex-col gap-1.5`},$t={key:1,class:`m-auto text-center text-sm text-[var(--app-text-subtle)]`},en=[`title`],tn={key:4,class:`flex justify-center pt-1`},nn={key:2,class:`cb-question-dock flex-none px-5`},rn={class:`border-t border-[var(--app-border-subtle)] p-3`},an={key:0,class:`flex items-center gap-2 text-xs text-[var(--app-text-subtle)] px-1 py-2`},on={key:0,class:`mb-2 flex flex-wrap items-center gap-x-3 gap-y-1.5 rounded-lg bg-[var(--el-color-primary-light-9)] px-3 py-2 text-xs text-[var(--app-text)]`},sn={class:`inline-flex items-center gap-1.5`},cn={class:`cb-composer rounded-2xl border border-[var(--app-border-subtle)] bg-[var(--app-content-bg)] px-3 py-2.5 transition-colors focus-within:border-[var(--el-color-primary-light-5)]`},ln={key:0,class:`flex flex-wrap gap-2 pb-2`},un=[`src`,`alt`],dn={key:1,class:`flex h-8 w-8 items-center justify-center rounded bg-[var(--app-content-bg)]`},fn=[`title`],pn={key:2,class:`text-[10px] text-[var(--app-text-subtle)]`},mn=[`title`,`onClick`],hn={key:1,class:`cb-slash-menu`},gn=[`onMousedown`,`onMouseenter`],_n={class:`cb-slash-menu__name`},vn={key:0,class:`cb-slash-menu__hint`},yn={key:1,class:`cb-slash-menu__desc`},bn={ref:`attachmentUploadTrigger`,class:`block h-0 w-0`,"aria-hidden":`true`},xn={class:`mt-1.5 flex items-center gap-1.5`},Sn=[`title`],Cn={class:`flex min-w-0 flex-1 flex-wrap items-center gap-1.5`},wn={type:`button`,class:`cb-pill`},Tn=[`src`],En={class:`truncate`},Dn=[`src`],On={key:1,class:`ml-1 text-xs opacity-60`},kn={key:1,class:`cb-pill cb-pill--static`},An=[`src`],jn={class:`truncate`},Mn={type:`button`,class:`cb-pill`},Nn={class:`truncate`},Pn={class:`cb-model-menu`},Fn={class:`truncate`},In=[`onClick`],Ln={class:`truncate`},Rn={key:0,class:`cb-model-custom`},zn={type:`button`,class:`cb-pill`},Bn={class:`truncate`},Vn={type:`button`,class:`cb-pill`},Hn={class:`truncate`},Un={type:`button`,class:`cb-pill`},Wn={class:`truncate`},Gn=[`title`,`aria-label`],Kn={key:4,class:`cb-pill cb-pill--static`},qn={class:`truncate`},Jn={class:`text-[11px] text-[var(--app-text-subtle)] mt-1 px-1`};function Yn(r,f,m,v,y,b){let x=h(`font-awesome-icon`),S=h(`el-button`),C=h(`copy-to-clipboard`),w=h(`el-skeleton-item`),T=h(`el-skeleton`),E=h(`transcript-item`),D=h(`thinking-indicator`),O=h(`ask-user-question-card`),k=h(`el-checkbox`),A=h(`el-input`),j=h(`el-upload`),M=h(`el-dropdown-item`),N=h(`el-dropdown-menu`),P=h(`el-dropdown`),F=h(`el-popover`),I=h(`directory-dialog`);return u(),t(`div`,At,[r.currentNode?(u(),t(s,{key:1},[n(`div`,Nt,[n(`div`,Pt,[n(`button`,{type:`button`,class:`cb-devices-btn md:hidden`,title:r.$t(`codingBridge.nodeList.title`),"aria-label":r.$t(`codingBridge.nodeList.title`),onClick:f[1]||=e=>r.$emit(`devices`)},[o(x,{icon:`fa-solid fa-laptop-code`})],8,Ft),n(`div`,It,[n(`div`,Lt,[n(`span`,Rt,l(r.currentNode.name),1),n(`span`,{class:c([`inline-block w-2 h-2 rounded-full flex-none`,r.nodeOnline?`bg-[var(--el-color-success)]`:`bg-[var(--app-text-subtle)]`])},null,2)]),r.currentSession?(u(),t(`div`,zt,[n(`span`,null,l(r.sessionMeta),1),r.replayLabel?(u(),t(`span`,Bt,` · `+l(r.replayLabel),1)):p(``,!0)])):p(``,!0)])]),n(`div`,Vt,[o(S,{size:`small`,round:``,onClick:f[2]||=e=>r.$emit(`history`)},{default:g(()=>[o(x,{icon:`fa-solid fa-clock-rotate-left`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.history.button`)),1)]),_:1}),r.currentSessionId?(u(),a(S,{key:0,size:`small`,round:``,onClick:r.onNewSession},{default:g(()=>[o(x,{icon:`fa-solid fa-plus`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.session.newSession`)),1)]),_:1},8,[`onClick`])):p(``,!0)])]),r.nodeOnline?p(``,!0):(u(),t(`div`,Ht,l(r.$t(`codingBridge.session.deviceOffline`)),1)),r.diagnostics.length?(u(),t(`div`,Ut,[(u(!0),t(s,null,e(r.diagnostics,e=>(u(),t(`span`,{key:e.label,class:`inline-flex items-center gap-1 min-w-0`},[n(`span`,Wt,l(e.label)+`:`,1),n(`span`,{class:`font-mono break-all`,title:e.value},l(e.value),9,Gt),o(C,{content:e.value,class:`inline-block flex-none`},null,8,[`content`])]))),128))])):p(``,!0),n(`div`,Kt,[r.historyLoading&&!r.events.length?(u(),t(`div`,qt,[o(T,{animated:``},{template:g(()=>[n(`div`,Jt,[n(`div`,Yt,[o(w,{variant:`rect`,class:`cb-sk cb-sk--user`})]),n(`div`,Xt,[o(w,{variant:`text`,style:{width:`55%`}}),o(w,{variant:`text`,style:{width:`88%`}}),o(w,{variant:`text`,style:{width:`70%`}})]),o(w,{variant:`rect`,class:`cb-sk cb-sk--tool`}),n(`div`,Zt,[o(w,{variant:`rect`,class:`cb-sk cb-sk--user-sm`})]),n(`div`,Qt,[o(w,{variant:`text`,style:{width:`80%`}}),o(w,{variant:`text`,style:{width:`45%`}})])])]),_:1})])):r.events.length?p(``,!0):(u(),t(`div`,$t,l(r.$t(`codingBridge.session.startHint`)),1)),r.hiddenEventCount>0?(u(),t(`button`,{key:2,type:`button`,class:`cb-load-earlier mx-auto mb-1 flex items-center gap-1.5 rounded-full border border-[var(--app-border-subtle)] bg-[var(--app-content-bg)] px-3 py-1 text-xs text-[var(--app-text-subtle)] hover:text-[var(--el-color-primary)]`,title:`+${r.hiddenEventCount}`,onClick:f[3]||=(...e)=>r.loadEarlier&&r.loadEarlier(...e)},[o(x,{icon:`fa-solid fa-arrow-up`}),i(` `+l(r.hiddenEventCount),1)],8,en)):p(``,!0),(u(!0),t(s,null,e(r.visibleEvents,e=>(u(),a(E,{key:e.id,event:e,editable:r.canEdit,onEdit:r.onEditPrompt},null,8,[`event`,`editable`,`onEdit`]))),128)),r.thinking?(u(),a(D,{key:3})):p(``,!0),r.canRetry?(u(),t(`div`,tn,[o(S,{size:`small`,round:``,onClick:r.onRetry},{default:g(()=>[o(x,{icon:`fa-solid fa-rotate-right`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.session.retry`)),1)]),_:1},8,[`onClick`])])):p(``,!0)],512),r.pendingQuestion?(u(),t(`div`,nn,[(u(),a(O,{key:r.pendingQuestion.request_id,"tool-use-id":r.pendingQuestion.request_id,payload:r.pendingQuestion.payload,onSubmit:r.onAnswerQuestion,onSkip:r.onSkipQuestion},null,8,[`tool-use-id`,`payload`,`onSubmit`,`onSkip`]))])):p(``,!0),n(`div`,rn,[r.readonly?(u(),t(`div`,an,[o(x,{icon:`fa-solid fa-eye`}),n(`span`,null,l(r.$t(`codingBridge.history.readonly`)),1),o(S,{class:`ml-auto`,size:`small`,round:``,onClick:r.onNewSession},{default:g(()=>[i(l(r.$t(`codingBridge.session.newSession`)),1)]),_:1},8,[`onClick`])])):(u(),t(s,{key:1},[r.editingActive?(u(),t(`div`,on,[n(`span`,sn,[o(x,{icon:`fa-solid fa-pen`,class:`text-[var(--el-color-primary)]`}),i(` `+l(r.$t(`codingBridge.session.editingBanner`)),1)]),r.canRestoreCode?(u(),a(k,{key:0,modelValue:r.restoreCode,"onUpdate:modelValue":f[4]||=e=>r.restoreCode=e,size:`small`,class:`cb-restore-code`},{default:g(()=>[i(l(r.$t(`codingBridge.session.editRestoreCode`)),1)]),_:1},8,[`modelValue`])):p(``,!0),n(`button`,{type:`button`,class:`ml-auto cb-edit-cancel`,onClick:f[5]||=(...e)=>r.cancelEdit&&r.cancelEdit(...e)},l(r.$t(`codingBridge.session.editCancel`)),1)])):p(``,!0),n(`div`,cn,[r.attachmentFileList.length?(u(),t(`div`,ln,[(u(!0),t(s,null,e(r.attachmentFileList,(e,i)=>(u(),t(`div`,{key:e.uid||e.name||i,class:`group relative flex max-w-[220px] items-center gap-2 rounded-md border border-[var(--app-border-subtle)] bg-[var(--app-sidebar-bg)] px-2 py-1.5 text-xs`},[r.attachmentPreviewUrl(e)?(u(),t(`img`,{key:0,src:r.attachmentPreviewUrl(e),class:`h-8 w-8 rounded object-cover`,alt:r.$t(`codingBridge.session.attachmentImageAlt`)},null,8,un)):(u(),t(`span`,dn,[o(x,{icon:`fa-solid fa-file`})])),n(`span`,{class:`min-w-0 flex-1 truncate`,title:e.name},l(e.name),9,fn),r.isAttachmentUploading(e)?(u(),t(`span`,pn,l(Math.round(e.percentage||0))+`% `,1)):p(``,!0),n(`button`,{type:`button`,class:`flex h-5 w-5 items-center justify-center rounded-full text-[var(--app-text-subtle)] hover:bg-[var(--app-content-hover-bg)] hover:text-[var(--el-color-danger)]`,title:r.$t(`codingBridge.session.removeAttachment`),onClick:t=>r.removeAttachment(i,e)},[o(x,{icon:`fa-solid fa-xmark`})],8,mn)]))),128))])):p(``,!0),r.slashMenuVisible?(u(),t(`ul`,hn,[(u(!0),t(s,null,e(r.slashMatches,(e,i)=>(u(),t(`li`,{key:e.name,class:c([`cb-slash-menu__item`,{"cb-slash-menu__item--active":i===r.slashActiveIndex}]),onMousedown:d(t=>r.applySlash(e),[`prevent`]),onMouseenter:e=>r.slashActiveIndex=i},[n(`span`,_n,`/`+l(e.name),1),e.argument_hint?(u(),t(`span`,vn,l(e.argument_hint),1)):p(``,!0),e.description?(u(),t(`span`,yn,l(e.description),1)):p(``,!0)],42,gn))),128))])):p(``,!0),o(A,{modelValue:r.prompt,"onUpdate:modelValue":f[6]||=e=>r.prompt=e,type:`textarea`,autosize:{minRows:2,maxRows:12},resize:`none`,class:`cb-composer__input`,placeholder:r.$t(`codingBridge.session.promptPlaceholder`),onKeydown:r.onComposerKeydown},null,8,[`modelValue`,`placeholder`,`onKeydown`]),o(j,{ref:`uploader`,"file-list":r.attachmentFileList,"onUpdate:fileList":f[7]||=e=>r.attachmentFileList=e,class:`h-0 w-0 overflow-hidden opacity-0`,name:`file`,action:r.uploadUrl,headers:r.headers,multiple:!0,limit:r.maxAttachments,"show-file-list":!1,"before-upload":r.beforeAttachmentUpload,"on-change":r.onAttachmentChange,"on-success":r.onAttachmentSuccess,"on-error":r.onAttachmentError,"on-exceed":r.onAttachmentExceed},{default:g(()=>[n(`span`,bn,null,512)]),_:1},8,[`file-list`,`action`,`headers`,`limit`,`before-upload`,`on-change`,`on-success`,`on-error`,`on-exceed`]),n(`div`,xn,[n(`button`,{type:`button`,class:`cb-icon-btn`,title:r.$t(`codingBridge.session.attachFile`),onClick:f[8]||=(...e)=>r.onTriggerAttachmentUpload&&r.onTriggerAttachmentUpload(...e)},[o(x,{icon:`fa-solid fa-paperclip`})],8,Sn),n(`div`,Cn,[r.isNewSession?(u(),a(P,{key:0,trigger:`click`,onCommand:f[9]||=e=>r.provider=e},{dropdown:g(()=>[o(N,null,{default:g(()=>[(u(!0),t(s,null,e(r.providerOptions,e=>(u(),a(M,{key:e.value,command:e.value,disabled:!e.available},{default:g(()=>[o(x,{icon:`fa-solid fa-check`,class:c([`mr-2`,e.value===r.provider?`opacity-100`:`opacity-0`])},null,8,[`class`]),r.providerIcon(e.value)?(u(),t(`img`,{key:0,src:r.providerIcon(e.value).src,class:c([`cb-pill__brand mr-1.5`,{"cb-pill__brand--invert":r.providerIcon(e.value).invertOnDark}]),alt:``},null,10,Dn)):p(``,!0),i(` `+l(e.label)+` `,1),e.available?p(``,!0):(u(),t(`span`,On,l(r.$t(`codingBridge.session.providerUnavailable`)),1))]),_:2},1032,[`command`,`disabled`]))),128))]),_:1})]),default:g(()=>[n(`button`,wn,[r.providerIcon(r.provider)?(u(),t(`img`,{key:0,src:r.providerIcon(r.provider).src,class:c([`cb-pill__brand`,{"cb-pill__brand--invert":r.providerIcon(r.provider).invertOnDark}]),alt:``},null,10,Tn)):(u(),a(x,{key:1,icon:`fa-solid fa-code`,class:`cb-pill__icon`})),n(`span`,En,l(r.providerName(r.provider)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),_:1})):(u(),t(`span`,kn,[r.providerIcon(r.currentSession?.provider||`claude`)?(u(),t(`img`,{key:0,src:r.providerIcon(r.currentSession?.provider||`claude`).src,class:c([`cb-pill__brand`,{"cb-pill__brand--invert":r.providerIcon(r.currentSession?.provider||`claude`).invertOnDark}]),alt:``},null,10,An)):(u(),a(x,{key:1,icon:`fa-solid fa-code`,class:`cb-pill__icon`})),n(`span`,jn,l(r.providerName(r.currentSession?.provider||`claude`)),1)])),o(F,{ref:`modelPopover`,trigger:`click`,placement:`top-start`,width:260},{reference:g(()=>[n(`button`,Mn,[o(x,{icon:`fa-solid fa-brain`,class:`cb-pill__icon`}),n(`span`,Nn,l(r.model||r.$t(`codingBridge.session.modelDefault`)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),default:g(()=>[n(`div`,Pn,[n(`button`,{type:`button`,class:`cb-model-option`,onClick:f[10]||=e=>r.selectModel(``)},[o(x,{icon:`fa-solid fa-check`,class:c([`cb-model-option__check`,r.model?`opacity-0`:`opacity-100`])},null,8,[`class`]),n(`span`,Fn,l(r.$t(`codingBridge.session.modelDefault`)),1)]),(u(!0),t(s,null,e(r.modelOptions,e=>(u(),t(`button`,{key:e.value,type:`button`,class:`cb-model-option`,onClick:t=>r.selectModel(e.value)},[o(x,{icon:`fa-solid fa-check`,class:c([`cb-model-option__check`,e.value===r.model?`opacity-100`:`opacity-0`])},null,8,[`class`]),n(`span`,Ln,l(e.label),1)],8,In))),128)),r.allowCustomModel?(u(),t(`div`,Rn,[o(A,{modelValue:r.customModelDraft,"onUpdate:modelValue":f[11]||=e=>r.customModelDraft=e,size:`small`,placeholder:r.$t(`codingBridge.session.modelPlaceholder`),onKeyup:_(r.applyCustomModel,[`enter`])},{append:g(()=>[o(S,{disabled:!r.customModelDraft.trim(),onClick:r.applyCustomModel},{default:g(()=>[o(x,{icon:`fa-solid fa-check`})]),_:1},8,[`disabled`,`onClick`])]),_:1},8,[`modelValue`,`placeholder`,`onKeyup`])])):p(``,!0)])]),_:1},512),r.effortOptions.length>1?(u(),a(P,{key:2,trigger:`click`,onCommand:f[12]||=e=>r.effort=e},{dropdown:g(()=>[o(N,null,{default:g(()=>[(u(!0),t(s,null,e(r.effortOptions,e=>(u(),a(M,{key:e.value,command:e.value},{default:g(()=>[o(x,{icon:`fa-solid fa-check`,class:c([`mr-2`,e.value===r.effort?`opacity-100`:`opacity-0`])},null,8,[`class`]),i(` `+l(e.label),1)]),_:2},1032,[`command`]))),128))]),_:1})]),default:g(()=>[n(`button`,zn,[o(x,{icon:`fa-solid fa-gauge-high`,class:`cb-pill__icon`}),n(`span`,Bn,l(r.effortLabel(r.effort)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),_:1})):p(``,!0),o(P,{trigger:`click`,onCommand:f[13]||=e=>r.permissionMode=e},{dropdown:g(()=>[o(N,null,{default:g(()=>[(u(!0),t(s,null,e(r.permissionModeOptions,e=>(u(),a(M,{key:e.value,command:e.value},{default:g(()=>[o(x,{icon:`fa-solid fa-check`,class:c([`mr-2`,e.value===r.permissionMode?`opacity-100`:`opacity-0`])},null,8,[`class`]),i(` `+l(e.label),1)]),_:2},1032,[`command`]))),128))]),_:1})]),default:g(()=>[n(`button`,Vn,[o(x,{icon:`fa-solid fa-shield-halved`,class:`cb-pill__icon`}),n(`span`,Hn,l(r.permissionModeLabel(r.permissionMode)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),_:1}),r.canPickCwd?(u(),a(F,{key:3,trigger:`click`,placement:`top-start`,width:320},{reference:g(()=>[n(`button`,Un,[o(x,{icon:`fa-solid fa-folder-open`,class:`cb-pill__icon`}),n(`span`,Wn,l(r.cwd||r.$t(`codingBridge.session.cwdDefault`)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),default:g(()=>[o(A,{modelValue:r.cwd,"onUpdate:modelValue":f[17]||=e=>r.cwd=e,size:`small`,clearable:``,class:`cb-cwd-input`,placeholder:r.$t(`codingBridge.session.cwdPlaceholder`)},{suffix:g(()=>[n(`span`,{class:`cb-cwd-browse`,role:`button`,tabindex:`0`,title:r.$t(`codingBridge.directory.title`),"aria-label":r.$t(`codingBridge.directory.title`),onClick:f[14]||=(...e)=>r.openDirectory&&r.openDirectory(...e),onKeydown:[f[15]||=_(d((...e)=>r.openDirectory&&r.openDirectory(...e),[`prevent`]),[`enter`]),f[16]||=_(d((...e)=>r.openDirectory&&r.openDirectory(...e),[`prevent`]),[`space`])]},[o(x,{icon:`fa-solid fa-folder-open`})],40,Gn)]),_:1},8,[`modelValue`,`placeholder`])]),_:1})):r.currentSession?.cwd?(u(),t(`span`,Kn,[o(x,{icon:`fa-solid fa-folder-open`,class:`cb-pill__icon`}),n(`span`,qn,l(r.currentSession?.cwd),1)])):p(``,!0)]),r.running?(u(),a(S,{key:0,circle:``,onClick:r.onInterrupt},{default:g(()=>[o(x,{icon:`fa-solid fa-stop`})]),_:1},8,[`onClick`])):p(``,!0),o(S,{type:`primary`,round:``,disabled:!r.canSend,onClick:r.onSend},{default:g(()=>[i(l(r.editingActive?r.$t(`codingBridge.session.editSubmit`):r.$t(`codingBridge.session.send`)),1)]),_:1},8,[`disabled`,`onClick`])])]),n(`p`,Jn,l(r.composerHint),1)],64))])],64)):(u(),t(`div`,jt,[o(x,{icon:`fa-solid fa-laptop-code`,class:`text-4xl mb-3`}),n(`p`,Mt,l(r.$t(`codingBridge.session.noDevice`)),1),o(S,{class:`md:hidden mt-4`,round:``,onClick:f[0]||=e=>r.$emit(`devices`)},{default:g(()=>[o(x,{icon:`fa-solid fa-laptop-code`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.nodeList.title`)),1)]),_:1})])),o(I,{visible:r.directoryVisible,"onUpdate:visible":f[18]||=e=>r.directoryVisible=e,"initial-path":r.cwd,onSelect:r.onDirectorySelect},null,8,[`visible`,`initial-path`,`onSelect`])])}var Xn=P(kt,[[`render`,Yn],[`__scopeId`,`data-v-f49f4ab0`]]),Zn=r({name:`CodingBridgePairDialog`,components:{ElDialog:L,ElInput:O,ElButton:v,FontAwesomeIcon:R},props:{visible:{type:Boolean,default:!1},initialCode:{type:String,default:``}},emits:[`update:visible`],data(){return{code:``}},computed:{claiming(){return this.$store.state.codingBridge?.status?.claimPair===N.Request}},watch:{visible(e){e&&this.initialCode&&(this.code=this.initialCode)},initialCode(e){e&&(this.code=e)}},methods:{async onClaim(){let e=this.code.trim();if(e)try{let t=await this.$store.dispatch(`codingBridge/claimPair`,e);M.success(this.$t(`codingBridge.pair.success`,{name:t})),this.code=``,this.$emit(`update:visible`,!1)}catch(e){let t=e?.response?.status;t===404?M.error(this.$t(`codingBridge.pair.invalidCode`)):t===409?M.error(this.$t(`codingBridge.pair.usedCode`)):M.error(this.$t(`codingBridge.pair.failed`))}}}}),Qn={class:`content`},$n={class:`text-sm text-[var(--app-text-subtle)] mb-4`},er={class:`steps list-none m-0 p-0 mb-4`},tr={class:`flex gap-3 mb-3`},nr={class:`flex-1 min-w-0`},rr={class:`text-sm mb-1`},ir={class:`flex gap-3 mb-3`},ar={class:`flex-1 min-w-0`},or={class:`text-sm mb-1`},sr={class:`flex gap-3`},cr={class:`flex-1 min-w-0`},lr={class:`text-sm`};function ur(e,t,r,s,c,d){let f=h(`el-input`),p=h(`font-awesome-icon`),m=h(`el-button`),v=h(`el-dialog`);return u(),a(v,{"model-value":e.visible,width:`520px`,title:e.$t(`codingBridge.pair.title`),center:``,"onUpdate:modelValue":t[1]||=t=>e.$emit(`update:visible`,t)},{default:g(()=>[n(`div`,Qn,[n(`p`,$n,l(e.$t(`codingBridge.pair.intro`)),1),n(`ol`,er,[n(`li`,tr,[t[3]||=n(`span`,{class:`step-index`},`1`,-1),n(`div`,nr,[n(`p`,rr,l(e.$t(`codingBridge.pair.step1`)),1),t[2]||=n(`code`,{class:`cmd`},`pip install coding-bridge`,-1)])]),n(`li`,ir,[t[5]||=n(`span`,{class:`step-index`},`2`,-1),n(`div`,ar,[n(`p`,or,l(e.$t(`codingBridge.pair.step2`)),1),t[4]||=n(`code`,{class:`cmd`},`coding-bridge up`,-1)])]),n(`li`,sr,[t[6]||=n(`span`,{class:`step-index`},`3`,-1),n(`div`,cr,[n(`p`,lr,l(e.$t(`codingBridge.pair.step3`)),1)])])]),o(f,{modelValue:e.code,"onUpdate:modelValue":t[0]||=t=>e.code=t,size:`large`,class:`mb-3`,placeholder:e.$t(`codingBridge.pair.codePlaceholder`),clearable:``,onKeyup:_(e.onClaim,[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeyup`]),o(m,{type:`primary`,round:``,class:`w-full`,loading:e.claiming,disabled:!e.code.trim(),onClick:e.onClaim},{default:g(()=>[o(p,{icon:`fa-solid fa-link`,class:`mr-1`}),i(` `+l(e.$t(`codingBridge.pair.claim`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])])]),_:1},8,[`model-value`,`title`])}var dr=P(Zn,[[`render`,ur],[`__scopeId`,`data-v-085c4083`]]),fr=r({name:`CodingBridgePermissionDialog`,components:{ElDialog:L,ElButton:v,FontAwesomeIcon:R},computed:{request(){return(this.$store.state.codingBridge?.permissions??[]).find(e=>!H(e))},hasInput(){return!!this.request?.input&&Object.keys(this.request.input).length>0},inputText(){try{return JSON.stringify(this.request?.input,null,2)}catch{return String(this.request?.input??``)}}},methods:{onAllow(){this.request&&this.$store.dispatch(`codingBridge/resolvePermission`,{request_id:this.request.request_id,decision:`allow`})},onDeny(){this.request&&this.$store.dispatch(`codingBridge/resolvePermission`,{request_id:this.request.request_id,decision:`deny`})}}}),pr={key:0,class:`content`},mr={class:`text-sm text-[var(--app-text-subtle)] mb-3`},hr={class:`rounded-md border border-[var(--app-border-subtle)] p-3 mb-3`},gr={class:`flex items-center gap-2 font-medium`},_r={key:0,class:`text-xs text-[var(--app-text-subtle)] mt-1`},vr={key:1,class:`mt-2 text-xs overflow-x-auto whitespace-pre-wrap break-words text-[var(--app-text-subtle)] max-h-[200px]`},yr={class:`flex justify-end gap-2`};function br(e,r,s,c,d,f){let m=h(`font-awesome-icon`),_=h(`el-button`),v=h(`el-dialog`);return u(),a(v,{"model-value":!!e.request,width:`480px`,title:e.$t(`codingBridge.permission.title`),"close-on-click-modal":!1,"show-close":!1,center:``},{footer:g(()=>[n(`div`,yr,[o(_,{round:``,onClick:e.onDeny},{default:g(()=>[o(m,{icon:`fa-solid fa-xmark`,class:`mr-1`}),i(` `+l(e.$t(`codingBridge.permission.deny`)),1)]),_:1},8,[`onClick`]),o(_,{type:`primary`,round:``,onClick:e.onAllow},{default:g(()=>[o(m,{icon:`fa-solid fa-check`,class:`mr-1`}),i(` `+l(e.$t(`codingBridge.permission.allow`)),1)]),_:1},8,[`onClick`])])]),default:g(()=>[e.request?(u(),t(`div`,pr,[n(`p`,mr,l(e.$t(`codingBridge.permission.subtitle`)),1),n(`div`,hr,[n(`div`,gr,[o(m,{icon:`fa-solid fa-code`}),n(`span`,null,l(e.request.display_name||e.request.title||e.request.tool),1)]),e.request.description?(u(),t(`p`,_r,l(e.request.description),1)):p(``,!0),e.hasInput?(u(),t(`pre`,vr,l(e.inputText),1)):p(``,!0)])])):p(``,!0)]),_:1},8,[`model-value`,`title`])}var xr=P(fr,[[`render`,br]]),Sr={claude:{src:Y,invertOnDark:!1},codex:{src:X,invertOnDark:!0}},Cr=r({name:`CodingBridgeHistoryDrawer`,components:{ElDrawer:x,ElButton:v,FontAwesomeIcon:R},props:{visible:{type:Boolean,default:!1}},emits:[`update:visible`],computed:{currentNodeId(){return this.$store.state.codingBridge?.currentNodeId},loading(){return this.$store.state.codingBridge?.status?.getHistory===N.Request},sessions(){let e=this.currentNodeId;return[...e?this.$store.state.codingBridge?.history?.[e]??[]:[]].sort((e,t)=>(t.updated_at??0)-(e.updated_at??0))}},watch:{visible(e){e&&this.currentNodeId&&this.$store.dispatch(`codingBridge/getHistory`,this.currentNodeId)}},methods:{providerLabel(e){return{claude:`Claude Code`,codex:`Codex`,copilot:`GitHub Copilot`}[e]??e},providerIcon(e){return Sr[e]??null},refresh(){this.currentNodeId&&this.$store.dispatch(`codingBridge/getHistory`,this.currentNodeId)},open(e){this.currentNodeId&&(this.$store.dispatch(`codingBridge/reattachSession`,{node_id:this.currentNodeId,provider:e.provider,session_id:e.session_id}),this.$emit(`update:visible`,!1))},formatTime(e){try{return new Date(e).toLocaleString()}catch{return``}}}}),wr={class:`flex flex-col h-full`},Tr={class:`flex items-center justify-between mb-3`},$={class:`text-xs text-[var(--app-text-subtle)] m-0`},Er={key:0,class:`m-auto text-sm text-[var(--app-text-subtle)]`},Dr={key:1,class:`m-auto text-sm text-[var(--app-text-subtle)]`},Or={key:2,class:`m-auto text-sm text-[var(--app-text-subtle)] text-center`},kr={key:3,class:`list-none m-0 p-0 flex-1 overflow-y-auto flex flex-col gap-2`},Ar=[`onClick`],jr={class:`flex items-center gap-2 mb-1`},Mr=[`src`,`alt`],Nr={class:`text-sm font-medium truncate flex-1`},Pr=[`title`],Fr={class:`text-[11px] text-[var(--app-text-subtle)] truncate`},Ir={key:0},Lr={key:1},Rr={class:`text-[11px] text-[var(--app-text-subtle)] mt-0.5`},zr={key:0},Br={key:1};function Vr(r,d,f,m,_,v){let y=h(`font-awesome-icon`),b=h(`el-button`),x=h(`el-drawer`);return u(),a(x,{"model-value":r.visible,direction:`rtl`,size:`380px`,title:r.$t(`codingBridge.history.title`),"onUpdate:modelValue":d[0]||=e=>r.$emit(`update:visible`,e)},{default:g(()=>[n(`div`,wr,[n(`div`,Tr,[n(`p`,$,l(r.$t(`codingBridge.history.intro`)),1),o(b,{size:`small`,round:``,loading:r.loading,onClick:r.refresh},{default:g(()=>[r.loading?p(``,!0):(u(),a(y,{key:0,icon:`fa-solid fa-rotate-right`,class:`mr-1`})),i(` `+l(r.$t(`codingBridge.history.refresh`)),1)]),_:1},8,[`loading`,`onClick`])]),r.currentNodeId?r.loading&&!r.sessions.length?(u(),t(`div`,Dr,l(r.$t(`codingBridge.history.loading`)),1)):r.sessions.length?(u(),t(`ul`,kr,[(u(!0),t(s,null,e(r.sessions,e=>(u(),t(`li`,{key:e.provider+`:`+e.session_id,class:`item rounded-lg p-3 cursor-pointer border border-[var(--app-border-subtle)]`,onClick:t=>r.open(e)},[n(`div`,jr,[r.providerIcon(e.provider)?(u(),t(`img`,{key:0,src:r.providerIcon(e.provider).src,class:c([`provider-icon`,{"provider-icon--invert":r.providerIcon(e.provider).invertOnDark}]),alt:r.providerLabel(e.provider)},null,10,Mr)):(u(),a(y,{key:1,icon:`fa-solid fa-code`,class:`provider-icon`,title:r.providerLabel(e.provider)},null,8,[`title`])),n(`span`,Nr,l(e.title),1),e.running?(u(),t(`span`,{key:2,class:`running-dot`,title:r.$t(`codingBridge.history.running`)},null,8,Pr)):p(``,!0)]),n(`div`,Fr,[e.cwd?(u(),t(`span`,Ir,l(e.cwd),1)):p(``,!0),e.git_branch?(u(),t(`span`,Lr,` · `+l(e.git_branch),1)):p(``,!0)]),n(`div`,Rr,[e.updated_at?(u(),t(`span`,zr,l(r.formatTime(e.updated_at)),1)):p(``,!0),e.message_count?(u(),t(`span`,Br,` · `+l(r.$t(`codingBridge.history.messages`,{count:e.message_count})),1)):p(``,!0)])],8,Ar))),128))])):(u(),t(`div`,Or,l(r.$t(`codingBridge.history.empty`)),1)):(u(),t(`div`,Er,l(r.$t(`codingBridge.session.noDevice`)),1))])]),_:1},8,[`model-value`,`title`])}var Hr=r({name:`CodingBridgeIndex`,components:{ElDrawer:x,NodeList:Ce,SessionView:Xn,PairDialog:dr,PermissionDialog:xr,HistoryDrawer:P(Cr,[[`render`,Vr],[`__scopeId`,`data-v-ac1b9c7e`]])},data(){return{drawer:!1,pairVisible:!1,historyVisible:!1,initialCode:``}},mounted(){this.$store.dispatch(`codingBridge/connect`),this.$store.dispatch(`codingBridge/getNodes`);let e=this.$route.query.code;typeof e==`string`&&e&&(this.initialCode=e,this.pairVisible=!0),this.restoreFromUrl(),this.handleNotificationDeepLink(),this.cleanUrl()},beforeUnmount(){this.$store.dispatch(`codingBridge/disconnect`)},methods:{openPair(){this.initialCode=``,this.pairVisible=!0},openPairFromDrawer(){this.drawer=!1,this.openPair()},restoreFromUrl(){let e=this.$route.query,t=typeof e.session==`string`?e.session:``,n=typeof e.node==`string`?e.node:``;if(!t||!n)return;let r=e.provider===`codex`||e.provider===`copilot`?e.provider:`claude`;this.$store.commit(`codingBridge/setCurrentNode`,n),this.$store.commit(`codingBridge/setHistoryRef`,{node_id:n,provider:r,session_id:t}),this.$store.dispatch(`codingBridge/getHistory`,n),this.$store.dispatch(`codingBridge/requestSessions`,n)},cleanUrl(){let e=this.$route.query,t=[`session`,`node`,`provider`,`request`,`code`];if(!t.some(t=>t in e))return;let n={...e};t.forEach(e=>delete n[e]),this.$router.replace({query:n}).catch(()=>{})},handleNotificationDeepLink(){let e=this.$route.query.node;typeof e==`string`&&e&&(this.$route.query.session||this.$store.dispatch(`codingBridge/selectNode`,e),this.$store.dispatch(`codingBridge/requestPendingPermissions`,e))}}}),Ur={class:`coding-bridge flex flex-row h-full relative`};function Wr(e,n,r,i,a,s){let c=h(`node-list`),l=h(`session-view`),d=h(`el-drawer`),f=h(`pair-dialog`),p=h(`permission-dialog`),m=h(`history-drawer`);return u(),t(`div`,Ur,[o(c,{class:`sidebar w-[300px] flex-none`,onPair:e.openPair},null,8,[`onPair`]),o(l,{class:`flex-1 min-w-0`,onHistory:n[0]||=t=>e.historyVisible=!0,onDevices:n[1]||=t=>e.drawer=!0}),o(d,{modelValue:e.drawer,"onUpdate:modelValue":n[2]||=t=>e.drawer=t,direction:`ltr`,"with-header":!1,size:`300px`,class:`drawer`},{default:g(()=>[o(c,{onPair:e.openPairFromDrawer},null,8,[`onPair`])]),_:1},8,[`modelValue`]),o(f,{visible:e.pairVisible,"onUpdate:visible":n[3]||=t=>e.pairVisible=t,"initial-code":e.initialCode},null,8,[`visible`,`initial-code`]),o(p),o(m,{visible:e.historyVisible,"onUpdate:visible":n[4]||=t=>e.historyVisible=t},null,8,[`visible`])])}var Gr=P(Hr,[[`render`,Wr],[`__scopeId`,`data-v-2879fe0f`]]);export{Gr as default};
|
|
1
|
+
import"./rolldown-runtime--c01j_DQ.js";import{$ as e,A as t,D as n,F as r,N as i,O as a,P as o,S as s,Vt as c,Wt as l,Z as u,b as d,dt as f,k as p,nt as m,tt as h,ut as g,y as _}from"./vendor-chart-BJCvKk8-.js";import{t as v}from"./button-BydTr5nV.js";import{t as y}from"./upload-DgTKYIS2.js";import{t as b}from"./checkbox-BC1X4B2U.js";import{t as x}from"./drawer-R6pcaap2.js";import{n as S,r as C,t as w}from"./dropdown-BOxZ4sm1.js";import{t as T}from"./popover-BUfCoLR7.js";import{n as E,t as D}from"./skeleton-BwNBivMN.js";import{$r as O,Gr as k,Gt as A,Ir as j,Kr as M,Nr as N,O as P,Ur as F,Vt as I,Yr as L}from"./index-Cvj3R8n8.js";import"./vendor-highlight-BtIeKitL.js";import{t as R}from"./index.es-iPEvnXaP.js";import{t as z}from"./CopyToClipboard-BfdNvn25.js";import{n as ee,t as te}from"./AskUserQuestionCard-MnqVziSR.js";import{s as ne,t as re}from"./codingBridgeNotify-CMwl3jMW.js";import{t as ie}from"./CodeSnippet-Co8Kb2Hi.js";var ae=r({name:`CodingBridgeNotificationToggle`,components:{ElButton:v,FontAwesomeIcon:R},data(){return{enabled:!1,busy:!1}},computed:{supported(){return F()||ne()}},mounted(){this.enabled=!F()&&re()===`granted`},methods:{async onToggle(){this.busy=!0;try{if(this.enabled){await this.$store.dispatch(`codingBridge/disableNotifications`),this.enabled=!1,M.success(this.$t(`codingBridge.notify.disabled`));return}let e=await this.$store.dispatch(`codingBridge/enableNotifications`);e===`enabled`?(this.enabled=!0,M.success(this.$t(`codingBridge.notify.enabled`))):e===`denied`?M.warning(this.$t(`codingBridge.notify.denied`)):M.warning(this.$t(`codingBridge.notify.unsupported`))}catch{M.error(this.$t(`codingBridge.notify.failed`))}finally{this.busy=!1}}}});function oe(e,t,n,r,i,o){let s=h(`font-awesome-icon`),c=h(`el-button`);return e.supported?(u(),a(c,{key:0,circle:``,size:`small`,type:e.enabled?`primary`:`default`,title:e.enabled?e.$t(`codingBridge.notify.disable`):e.$t(`codingBridge.notify.enable`),disabled:e.busy,onClick:e.onToggle},{default:g(()=>[e.busy?(u(),a(s,{key:0,icon:`fa-solid fa-spinner`,spin:``})):(u(),a(s,{key:1,icon:e.enabled?`fa-solid fa-bell`:`fa-regular fa-bell`},null,8,[`icon`]))]),_:1},8,[`type`,`title`,`disabled`,`onClick`])):p(``,!0)}var se=r({name:`CodingBridgeNodeList`,components:{ElButton:v,FontAwesomeIcon:R,NotificationToggle:P(ae,[[`render`,oe]])},emits:[`pair`],computed:{nodes(){return this.$store.state.codingBridge?.nodes??[]},currentNodeId(){return this.$store.state.codingBridge?.currentNodeId},connection(){return this.$store.state.codingBridge?.connection??`disconnected`},connectionLabel(){return this.$t(`codingBridge.connection.${this.connection}`)},connectionDotClass(){switch(this.connection){case`connected`:return`bg-[var(--el-color-success)]`;case`connecting`:return`bg-[var(--el-color-warning)]`;case`error`:return`bg-[var(--el-color-danger)]`;default:return`bg-[var(--app-text-subtle)]`}}},methods:{onSelect(e){this.$store.dispatch(`codingBridge/selectNode`,e)},onRefresh(){this.$store.dispatch(`codingBridge/getNodes`)},async onDelete(e){try{await k.confirm(this.$t(`codingBridge.nodeList.removeConfirm`,{name:e.name}),this.$t(`codingBridge.nodeList.remove`),{confirmButtonText:this.$t(`codingBridge.nodeList.remove`),cancelButtonText:this.$t(`common.button.cancel`),type:`warning`})}catch{return}try{await this.$store.dispatch(`codingBridge/deleteNode`,e.node_id),M.success(this.$t(`codingBridge.nodeList.removeSuccess`))}catch{M.error(this.$t(`codingBridge.nodeList.removeFailed`))}}}}),ce={class:`node-list flex flex-col h-full bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},le={class:`flex items-center justify-between px-4 py-3 border-b border-[var(--app-border-subtle)]`},ue={class:`flex items-center gap-2 font-medium`},de={class:`flex items-center gap-1`},fe={class:`flex items-center gap-2 px-4 py-2 text-xs border-b border-[var(--app-border-subtle)]`},B={class:`text-[var(--app-text-subtle)]`},V={class:`flex-1 overflow-y-auto`},pe={key:0,class:`p-6 text-center text-sm text-[var(--app-text-subtle)]`},me={class:`mb-3`},he={key:1,class:`list-none m-0 p-0`},ge=[`onClick`],_e={class:`flex-1 min-w-0`},ve={class:`flex items-center gap-2`},ye={class:`truncate font-medium`},be=[`title`],xe={class:`text-xs text-[var(--app-text-subtle)] truncate`};function Se(r,a,f,p,m,_){let v=h(`font-awesome-icon`),y=h(`notification-toggle`),b=h(`el-button`);return u(),t(`div`,ce,[n(`div`,le,[n(`div`,ue,[o(v,{icon:`fa-solid fa-laptop-code`}),n(`span`,null,l(r.$t(`codingBridge.nodeList.title`)),1)]),n(`div`,de,[o(y),o(b,{circle:``,size:`small`,title:r.$t(`codingBridge.nodeList.refresh`),onClick:r.onRefresh},{default:g(()=>[o(v,{icon:`fa-solid fa-rotate-right`})]),_:1},8,[`title`,`onClick`]),o(b,{type:`primary`,circle:``,size:`small`,title:r.$t(`codingBridge.nodeList.pair`),onClick:a[0]||=e=>r.$emit(`pair`)},{default:g(()=>[o(v,{icon:`fa-solid fa-plus`})]),_:1},8,[`title`])])]),n(`div`,fe,[n(`span`,{class:c([`inline-block w-2 h-2 rounded-full`,r.connectionDotClass])},null,2),n(`span`,B,l(r.connectionLabel),1)]),n(`div`,V,[r.nodes.length?(u(),t(`ul`,he,[(u(!0),t(s,null,e(r.nodes,e=>(u(),t(`li`,{key:e.node_id,class:c([`group flex items-center gap-3 px-4 py-3 cursor-pointer border-b border-[var(--app-border-subtle)] hover:bg-[var(--app-content-bg)]`,{"bg-[var(--app-content-bg)]":e.node_id===r.currentNodeId}]),onClick:t=>r.onSelect(e.node_id)},[o(v,{icon:`fa-solid fa-desktop`,class:`text-[var(--app-text-subtle)]`}),n(`div`,_e,[n(`div`,ve,[n(`span`,ye,l(e.name),1),n(`span`,{class:c([`inline-block w-2 h-2 rounded-full flex-none`,e.status===`online`?`bg-[var(--el-color-success)]`:`bg-[var(--app-text-subtle)]`]),title:e.status===`online`?r.$t(`codingBridge.status.online`):r.$t(`codingBridge.status.offline`)},null,10,be)]),n(`div`,xe,l(e.status===`online`?r.$t(`codingBridge.status.online`):r.$t(`codingBridge.status.offline`)),1)]),o(b,{class:`opacity-0 group-hover:opacity-100`,text:``,circle:``,size:`small`,title:r.$t(`codingBridge.nodeList.remove`),onClick:d(t=>r.onDelete(e),[`stop`])},{default:g(()=>[o(v,{icon:`fa-solid fa-trash`})]),_:1},8,[`title`,`onClick`])],10,ge))),128))])):(u(),t(`div`,pe,[n(`p`,me,l(r.$t(`codingBridge.nodeList.empty`)),1),o(b,{type:`primary`,round:``,size:`small`,onClick:a[1]||=e=>r.$emit(`pair`)},{default:g(()=>[o(v,{icon:`fa-solid fa-plus`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.nodeList.pairFirst`)),1)]),_:1})]))])])}var Ce=P(se,[[`render`,Se]]),we=e=>{let t=e?.questions;return Array.isArray(t)&&t.length>0&&t.every(e=>e&&typeof e.question==`string`&&Array.isArray(e.options))},H=e=>e?(e.tool||``).toLowerCase()===`askuserquestion`?!0:we(e.input):!1,Te=e=>({questions:e.input?.questions??[]}),Ee=100,U=4e4,De=12e3,W=6e3,G=(e,t)=>{if(e.length<=t)return e;let n=((e.length-t)/1024).toFixed(1);return`${e.slice(0,t)}\n\n··· +${n} KB ···`},Oe=r({name:`CodingBridgeTranscriptItem`,directives:{highlight:A},components:{FontAwesomeIcon:R,VueMarkdown:ee,CodeSnippet:ie,CopyToClipboard:z},props:{event:{type:Object,required:!0},editable:{type:Boolean,default:!1}},emits:[`edit`],data(){return{renderedText:G(this.event.text||``,U),streamTimer:0}},computed:{commandText(){let e=this.event.input;if(!e)return``;for(let t of[`command`,`cmd`,`script`]){let n=e[t];if(typeof n==`string`&&n.trim())return G(n,W)}return``},filePath(){let e=this.event.input;if(!e)return``;for(let t of[`file_path`,`filePath`,`path`,`notebook_path`,`filename`]){let n=e[t];if(typeof n==`string`&&n.trim())return n}return``},toolDescription(){let e=this.event.input?.description;return typeof e==`string`?e:``},toolIcon(){if(this.commandText)return`fa-solid fa-terminal`;let e=(this.event.tool??``).toLowerCase();return/read|cat|view/.test(e)?`fa-solid fa-file-lines`:/write|edit|create|update|insert/.test(e)?`fa-solid fa-pen`:/grep|glob|search|find|list/.test(e)?`fa-solid fa-magnifying-glass`:`fa-solid fa-code`},questionLines(){let e=(this.event.tool??``).toLowerCase(),t=this.event.input?.questions;return!(e===`askuserquestion`||Array.isArray(t))||!Array.isArray(t)?[]:t.filter(e=>e&&typeof e.question==`string`).map(e=>({header:typeof e.header==`string`?e.header:``,question:e.question}))},inputText(){let e=this.event.input;if(!e)return``;let t={};for(let[n,r]of Object.entries(e))n===`timeout`||n===`description`||(t[n]=r);if(Object.keys(t).length===0)return``;try{return G(JSON.stringify(t,null,2),W)}catch{return G(String(e),W)}},thinkingText(){return G(this.event.text||``,U)},resultText(){let e=this.event.content;return typeof e==`string`&&e.length>0?e:`—`},resultDisplay(){return G(this.resultText,De)},resultLabel(){let e=[];return this.event.is_error?e.push(this.$t(`codingBridge.transcript.turnFailed`)):e.push(this.$t(`codingBridge.transcript.turnDone`)),typeof this.event.cost_usd==`number`&&this.event.cost_usd>0&&e.push(`$${this.event.cost_usd.toFixed(4)}`),e.join(` · `)},hasAttachments(){return!!this.event.attachments?.length},noticeText(){let e=this.event.subtype,t=this.event.command;if(t){if(e===`slash_unavailable`)return this.$t(`codingBridge.notice.slashUnavailable`,{command:t});if(e===`slash_codex_unsupported`)return this.$t(`codingBridge.notice.slashCodexUnsupported`,{command:t})}return this.event.text||``}},watch:{"event.text"(){this.scheduleRender()},"event.streaming"(e){e||this.flushRender()}},beforeUnmount(){this.streamTimer&&window.clearTimeout(this.streamTimer)},methods:{scheduleRender(){if(!this.event.streaming){this.flushRender();return}this.streamTimer||=window.setTimeout(()=>{this.streamTimer=0,this.renderedText=G(this.event.text||``,U)},Ee)},flushRender(){this.streamTimer&&=(window.clearTimeout(this.streamTimer),0),this.renderedText=G(this.event.text||``,U)}}}),ke={key:0,class:`group flex items-end justify-end gap-1.5`},Ae=[`title`,`aria-label`],je={class:`max-w-[85%] rounded-lg px-3 py-2 bg-[var(--el-color-primary)] text-white whitespace-pre-wrap break-words`},Me=[`src`],Ne=[`href`],Pe=[`src`],Fe={key:1,class:`flex h-9 w-9 items-center justify-center rounded bg-white/15`},Ie={class:`min-w-0 truncate`},Le={key:2},Re={key:2,class:`whitespace-pre-wrap break-words italic text-[var(--app-text-subtle)] border-l-2 border-[var(--app-border-subtle)] pl-3`},ze={key:3,class:`overflow-hidden rounded-md bg-[var(--app-sidebar-bg)] border border-[var(--app-border-subtle)]`},Be={class:`flex items-center gap-2 px-2.5 py-1.5 font-medium text-[var(--app-text-subtle)]`},Ve={key:0,class:`min-w-0 truncate text-xs font-normal opacity-70`},He={key:0,class:`flex flex-col gap-1.5 px-2.5 pb-2`},Ue={key:0,class:`font-medium text-[var(--app-text)]`},We={class:`whitespace-pre-wrap break-words text-[var(--app-text-subtle)]`},Ge={key:1,class:`px-2.5 pb-2`},Ke={key:2,class:`px-2.5 pb-2 font-mono text-xs break-all text-[var(--app-text-subtle)]`},qe={key:3,class:`px-2.5 pb-2`},Je={key:0,class:`absolute right-1.5 top-1.5 z-10 rounded bg-[var(--app-content-bg)] px-1 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100`},Ye={key:5,class:`flex items-center gap-2 text-xs text-[var(--app-text-subtle)]`},Xe={key:6,class:`flex items-start gap-2 rounded-md bg-[var(--app-sidebar-bg)] border border-[var(--app-border-subtle)] text-[var(--app-text-subtle)] px-3 py-2 text-xs`},Ze={class:`whitespace-pre-wrap break-words`},Qe={key:7,class:`rounded-md bg-[var(--el-color-danger-light-9)] text-[var(--el-color-danger)] px-3 py-2 whitespace-pre-wrap break-words`};function $e(r,i,a,d,g,_){let v=h(`font-awesome-icon`),y=h(`vue-markdown`),b=h(`code-snippet`),x=h(`copy-to-clipboard`),S=m(`highlight`);return u(),t(`div`,{class:c([`transcript-item text-sm leading-relaxed`,`kind-${r.event.kind}`])},[r.event.kind===`prompt`?(u(),t(`div`,ke,[r.editable?(u(),t(`button`,{key:0,type:`button`,class:`cb-edit-btn opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100`,title:r.$t(`codingBridge.session.editPrompt`),"aria-label":r.$t(`codingBridge.session.editPrompt`),onClick:i[0]||=e=>r.$emit(`edit`,r.event)},[o(v,{icon:`fa-solid fa-pen`})],8,Ae)):p(``,!0),n(`div`,je,[r.event.images&&r.event.images.length?(u(),t(`div`,{key:0,class:c([`flex flex-wrap gap-1.5`,{"mb-1.5":r.event.text||r.hasAttachments}])},[(u(!0),t(s,null,e(r.event.images,(e,n)=>(u(),t(`img`,{key:n,src:e,class:`w-16 h-16 rounded object-cover`,alt:``},null,8,Me))),128))],2)):p(``,!0),r.hasAttachments?(u(),t(`div`,{key:1,class:c([`flex flex-wrap gap-1.5`,{"mb-1.5":r.event.text}])},[(u(!0),t(s,null,e(r.event.attachments,(e,r)=>(u(),t(`a`,{key:`${e.url}-${r}`,href:e.url,target:`_blank`,rel:`noopener noreferrer`,class:`flex max-w-[220px] items-center gap-2 rounded-md bg-white/15 px-2 py-1.5 text-xs text-white hover:bg-white/20`},[e.type===`image`?(u(),t(`img`,{key:0,src:e.url,class:`h-9 w-9 rounded object-cover`,alt:``},null,8,Pe)):(u(),t(`span`,Fe,[o(v,{icon:`fa-solid fa-file`})])),n(`span`,Ie,l(e.name||e.url),1)],8,Ne))),128))],2)):p(``,!0),r.event.text?(u(),t(`span`,Le,l(r.event.text),1)):p(``,!0)])])):r.event.kind===`text`?(u(),t(`div`,{key:1,class:c([`cb-stream-text`,{"is-streaming":r.event.streaming}])},[f(o(y,{source:r.renderedText,class:`markdown-body bg-transparent text-[var(--app-text)]`},null,8,[`source`]),[[S]])],2)):r.event.kind===`thinking`?(u(),t(`div`,Re,l(r.thinkingText),1)):r.event.kind===`tool_use`?(u(),t(`div`,ze,[n(`div`,Be,[o(v,{icon:r.toolIcon,class:`text-[var(--el-color-primary)]`},null,8,[`icon`]),n(`span`,null,l(r.event.tool),1),r.toolDescription?(u(),t(`span`,Ve,l(r.toolDescription),1)):p(``,!0)]),r.questionLines.length?(u(),t(`div`,He,[(u(!0),t(s,null,e(r.questionLines,(e,r)=>(u(),t(`div`,{key:r,class:`rounded border border-[var(--app-border-subtle)] bg-[var(--app-content-bg)] px-2.5 py-1.5 text-xs`},[e.header?(u(),t(`div`,Ue,l(e.header),1)):p(``,!0),n(`div`,We,l(e.question),1)]))),128))])):r.commandText?(u(),t(`div`,Ge,[o(b,{code:r.commandText,lang:`bash`,copyable:``},null,8,[`code`])])):r.filePath?(u(),t(`div`,Ke,l(r.filePath),1)):r.inputText?(u(),t(`div`,qe,[o(b,{code:r.inputText,lang:`json`,copyable:``},null,8,[`code`])])):p(``,!0)])):r.event.kind===`tool_result`?(u(),t(`div`,{key:4,class:c([`group relative overflow-hidden rounded-md`,r.event.is_error?`bg-[var(--el-color-danger-light-9)]`:`bg-[var(--app-sidebar-bg)]`])},[r.event.content?(u(),t(`div`,Je,[o(x,{content:r.resultText},null,8,[`content`])])):p(``,!0),n(`pre`,{class:c([`m-0 max-h-72 overflow-auto whitespace-pre-wrap break-words px-2.5 py-2 font-mono text-xs`,r.event.is_error?`text-[var(--el-color-danger)]`:`text-[var(--app-text-subtle)]`])},l(r.resultDisplay),3)],2)):r.event.kind===`result`?(u(),t(`div`,Ye,[o(v,{icon:r.event.is_error?`fa-solid fa-xmark`:`fa-solid fa-check`},null,8,[`icon`]),n(`span`,null,l(r.resultLabel),1)])):r.event.kind===`notice`?(u(),t(`div`,Xe,[o(v,{icon:`fa-solid fa-circle-info`,class:`mt-0.5 flex-none text-[var(--el-color-primary)]`}),n(`span`,Ze,l(r.noticeText),1)])):r.event.kind===`error`?(u(),t(`div`,Qe,l(r.event.text),1)):p(``,!0)],2)}var et=P(Oe,[[`render`,$e],[`__scopeId`,`data-v-1b7ef381`]]),K=[`⠋`,`⠙`,`⠹`,`⠸`,`⠼`,`⠴`,`⠦`,`⠧`,`⠇`,`⠏`],tt=`Pondering.Noodling.Conjuring.Brewing.Cooking.Crafting.Churning.Simmering.Percolating.Ruminating.Musing.Marinating.Synthesizing.Computing.Hatching.Forging.Vibing.Working.Thinking.Cogitating.Mulling.Stewing.Tinkering.Wrangling.Spinning.Reticulating.Manifesting.Deliberating`.split(`.`),nt=[`思考中`,`酝酿中`,`沉思中`,`推敲中`,`构思中`,`计算中`,`琢磨中`,`捣鼓中`,`炼制中`,`召唤中`,`编织中`,`烹饪中`,`咀嚼中`,`盘算中`,`发酵中`,`运转中`,`冥想中`,`鼓捣中`,`熬制中`,`神游中`,`演算中`,`雕琢中`,`头脑风暴中`,`反复斟酌中`],rt=80,q=60,it=1500,J=28,at=r({name:`CodingBridgeThinkingIndicator`,data(){return{spinnerIndex:0,display:``,elapsed:0,charIndex:0,phase:`typing`,currentWord:``,spinnerTimer:0,elapsedTimer:0,typeTimer:0}},computed:{spinnerFrame(){return K[this.spinnerIndex]},words(){return this.$i18n.locale.startsWith(`zh`)?nt:tt}},mounted(){this.currentWord=this.pickWord(),this.spinnerTimer=window.setInterval(()=>{this.spinnerIndex=(this.spinnerIndex+1)%K.length},rt),this.elapsedTimer=window.setInterval(()=>{this.elapsed+=1},1e3),this.scheduleType(q)},beforeUnmount(){window.clearInterval(this.spinnerTimer),window.clearInterval(this.elapsedTimer),window.clearTimeout(this.typeTimer)},methods:{pickWord(){let e=this.words;if(e.length<=1)return e[0]??``;let t=this.currentWord;for(;t===this.currentWord;)t=e[Math.floor(Math.random()*e.length)];return t},scheduleType(e){this.typeTimer=window.setTimeout(this.advance,e)},advance(){let e=this.currentWord;this.phase===`typing`?(this.charIndex+=1,this.display=e.slice(0,this.charIndex),this.charIndex>=e.length?(this.phase=`holding`,this.scheduleType(it)):this.scheduleType(q)):this.phase===`holding`?(this.phase=`deleting`,this.scheduleType(J)):(--this.charIndex,this.display=e.slice(0,Math.max(0,this.charIndex)),this.charIndex<=0?(this.currentWord=this.pickWord(),this.phase=`typing`,this.scheduleType(q)):this.scheduleType(J))}}}),ot={class:`cb-thinking flex items-center gap-2 text-sm text-[var(--app-text-subtle)] py-1`},st={class:`cb-thinking__spinner text-[var(--el-color-primary)]`},ct={class:`cb-thinking__word`},lt={class:`cb-thinking__elapsed tabular-nums opacity-60`};function ut(e,r,a,o,s,c){return u(),t(`div`,ot,[n(`span`,st,l(e.spinnerFrame),1),n(`span`,ct,[i(l(e.display),1),r[0]||=n(`span`,{class:`cb-thinking__caret`},`▋`,-1)]),n(`span`,lt,`(`+l(e.elapsed)+`s)`,1)])}var dt=P(at,[[`render`,ut],[`__scopeId`,`data-v-6087e9e6`]]),ft=r({name:`CodingBridgeDirectoryDialog`,components:{ElDialog:L,ElButton:v,ElInput:O,FontAwesomeIcon:R},props:{visible:{type:Boolean,default:!1},initialPath:{type:String,default:``}},emits:[`update:visible`,`select`],data(){return{pathInput:``}},computed:{listing(){return this.$store.state.codingBridge?.directory},loading(){return this.$store.state.codingBridge?.directoryLoading===!0},directories(){return(this.listing?.entries??[]).filter(e=>e.type===`dir`)},files(){return(this.listing?.entries??[]).filter(e=>e.type===`file`)},isEmpty(){return!!this.listing&&!this.listing.error&&(this.listing.entries??[]).length===0}},watch:{"listing.path"(e){this.pathInput=e??``}},methods:{onOpen(){this.pathInput=this.initialPath||``,this.$store.dispatch(`codingBridge/browseDir`,this.initialPath||void 0)},goPath(){let e=this.pathInput.trim();e&&this.$store.dispatch(`codingBridge/browseDir`,e)},syncPathInput(){this.pathInput=this.listing?.path??``},onVisibleChange(e){this.$emit(`update:visible`,e),e||this.$store.dispatch(`codingBridge/clearDirectory`)},openDir(e){this.$store.dispatch(`codingBridge/browseDir`,e)},goParent(){this.listing?.parent&&this.$store.dispatch(`codingBridge/browseDir`,this.listing.parent)},refresh(){this.$store.dispatch(`codingBridge/browseDir`,this.listing?.path||this.initialPath||void 0)},chooseCurrent(){this.listing&&!this.listing.error&&(this.$emit(`select`,this.listing.path),this.onVisibleChange(!1))}}}),pt={class:`flex flex-col gap-2`},mt={class:`flex items-center gap-2 min-w-0`},ht={class:`h-72 overflow-y-auto border border-[var(--app-border-subtle)] rounded-md divide-y divide-[var(--app-border-subtle)]`},gt={key:0,class:`h-full flex items-center justify-center text-sm text-[var(--app-text-subtle)]`},_t={key:1,class:`h-full flex items-center justify-center text-sm text-[var(--el-color-danger)]`},vt=[`onClick`],yt={class:`truncate`,dir:`ltr`},bt={class:`truncate`,dir:`ltr`},xt={key:0,class:`h-full flex items-center justify-center text-sm text-[var(--app-text-subtle)] py-8`},St={key:0,class:`text-[11px] text-[var(--app-text-subtle)] px-1`},Ct={class:`flex items-center justify-end gap-2`};function wt(r,c,d,f,m,v){let y=h(`font-awesome-icon`),b=h(`el-button`),x=h(`el-input`),S=h(`el-dialog`);return u(),a(S,{"model-value":r.visible,title:r.$t(`codingBridge.directory.title`),width:`520px`,"append-to-body":``,"onUpdate:modelValue":r.onVisibleChange,onOpen:r.onOpen},{footer:g(()=>[n(`div`,Ct,[o(b,{round:``,onClick:c[1]||=e=>r.onVisibleChange(!1)},{default:g(()=>[i(l(r.$t(`common.button.cancel`)),1)]),_:1}),o(b,{type:`primary`,round:``,disabled:!r.listing||!!r.listing.error,onClick:r.chooseCurrent},{default:g(()=>[i(l(r.$t(`codingBridge.directory.choose`)),1)]),_:1},8,[`disabled`,`onClick`])])]),default:g(()=>[n(`div`,pt,[n(`div`,mt,[o(b,{size:`small`,circle:``,disabled:!r.listing||!r.listing.parent||r.loading,title:r.$t(`codingBridge.directory.up`),onClick:r.goParent},{default:g(()=>[o(y,{icon:`fa-solid fa-arrow-up`})]),_:1},8,[`disabled`,`title`,`onClick`]),o(x,{modelValue:r.pathInput,"onUpdate:modelValue":c[0]||=e=>r.pathInput=e,size:`small`,class:`flex-1 min-w-0`,dir:`ltr`,placeholder:r.$t(`codingBridge.directory.pathPlaceholder`),disabled:r.loading,onKeyup:_(r.goPath,[`enter`]),onBlur:r.syncPathInput},{append:g(()=>[o(b,{title:r.$t(`codingBridge.directory.go`),disabled:r.loading||!r.pathInput.trim(),onClick:r.goPath},{default:g(()=>[o(y,{icon:`fa-solid fa-arrow-right`})]),_:1},8,[`title`,`disabled`,`onClick`])]),_:1},8,[`modelValue`,`placeholder`,`disabled`,`onKeyup`,`onBlur`]),o(b,{size:`small`,circle:``,disabled:r.loading,title:r.$t(`codingBridge.directory.refresh`),onClick:r.refresh},{default:g(()=>[o(y,{icon:`fa-solid fa-rotate-right`,spin:r.loading},null,8,[`spin`])]),_:1},8,[`disabled`,`title`,`onClick`])]),n(`div`,ht,[r.loading&&!r.listing?(u(),t(`div`,gt,l(r.$t(`codingBridge.directory.loading`)),1)):r.listing&&r.listing.error?(u(),t(`div`,_t,l(r.listing.error),1)):(u(),t(s,{key:2},[(u(!0),t(s,null,e(r.directories,e=>(u(),t(`button`,{key:e.path,type:`button`,class:`w-full flex items-center gap-2 px-3 py-2 text-left text-sm hover:bg-[var(--app-content-hover-bg)]`,onClick:t=>r.openDir(e.path)},[o(y,{icon:`fa-solid fa-folder`,class:`text-[var(--el-color-warning)]`}),n(`span`,yt,l(e.name),1)],8,vt))),128)),(u(!0),t(s,null,e(r.files,e=>(u(),t(`div`,{key:e.path,class:`w-full flex items-center gap-2 px-3 py-2 text-sm text-[var(--app-text-subtle)]`},[o(y,{icon:`fa-solid fa-file`}),n(`span`,bt,l(e.name),1)]))),128)),r.isEmpty?(u(),t(`div`,xt,l(r.$t(`codingBridge.directory.empty`)),1)):p(``,!0)],64))]),r.listing&&r.listing.truncated?(u(),t(`p`,St,l(r.$t(`codingBridge.directory.truncated`)),1)):p(``,!0)])]),_:1},8,[`model-value`,`title`,`onUpdate:modelValue`,`onOpen`])}var Tt=P(ft,[[`render`,wt]]),Y=`data:image/svg+xml,%3csvg%20fill='%23D97757'%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClaude%3c/title%3e%3cpath%20d='m4.7144%2015.9555%204.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608%201.5179.1032%202.2767.1578%201.6514.0972%202.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973%209.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686%201.9064%201.4754%202.4893%201.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335%206.6997%200l.9957.1336.419.3642.6192%201.4147%201.0018%202.2282%201.5543%203.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853%201.8517-.5586%202.9021-.3643%201.9429h.2125l.2429-.2429.9835-1.3053%201.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759%201.1293-.34%201.1657-1.0625%201.3478-.8804%201.1414-1.2628%201.7-.7893%201.36.0729.1093.1882-.0183%202.8535-.607%201.5421-.2794%201.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607%201.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929%201.0686%202.0035%201.8092%202.5075%202.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496%202.3436%203.5214.1214%201.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38%2017.959l-1.1414-1.9428-.1397.079-.674%207.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328%201.9672-2.1796%202.9446-1.7243%201.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889%202.386-3.0357%201.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385%204.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429%201.9064-1.3114Z'/%3e%3c/svg%3e`,X=`data:image/svg+xml,%3csvg%20fill='%23000000'%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M22.282%209.821a5.985%205.985%200%200%200-.516-4.91%206.046%206.046%200%200%200-6.51-2.9A6.065%206.065%200%200%200%204.981%204.18a5.985%205.985%200%200%200-3.998%202.9%206.046%206.046%200%200%200%20.743%207.097%205.98%205.98%200%200%200%20.51%204.911%206.051%206.051%200%200%200%206.515%202.9A5.985%205.985%200%200%200%2013.26%2024a6.056%206.056%200%200%200%205.772-4.206%205.99%205.99%200%200%200%203.997-2.9%206.056%206.056%200%200%200-.747-7.073zM13.26%2022.43a4.476%204.476%200%200%201-2.876-1.04l.141-.081%204.779-2.758a.795.795%200%200%200%20.392-.681v-6.737l2.02%201.168a.071.071%200%200%201%20.038.052v5.583a4.504%204.504%200%200%201-4.494%204.494zM3.6%2018.304a4.47%204.47%200%200%201-.535-3.014l.142.085%204.783%202.759a.771.771%200%200%200%20.78%200l5.843-3.369v2.332a.08.08%200%200%201-.033.062L9.74%2019.95a4.5%204.5%200%200%201-6.14-1.646zM2.34%207.896a4.485%204.485%200%200%201%202.366-1.973V11.6a.766.766%200%200%200%20.388.676l5.815%203.355-2.02%201.168a.076.076%200%200%201-.071%200l-4.83-2.786A4.504%204.504%200%200%201%202.34%207.872zm16.597%203.855l-5.833-3.387L15.119%207.2a.076.076%200%200%201%20.071%200l4.83%202.791a4.494%204.494%200%200%201-.676%208.105v-5.678a.79.79%200%200%200-.407-.667zm2.01-3.023l-.141-.085-4.774-2.782a.776.776%200%200%200-.785%200L9.409%209.23V6.897a.066.066%200%200%201%20.028-.061l4.83-2.787a4.5%204.5%200%200%201%206.68%204.66zm-12.64%204.135l-2.02-1.164a.08.08%200%200%201-.038-.057V6.075a4.5%204.5%200%200%201%207.375-3.453l-.142.08L8.704%205.46a.795.795%200%200%200-.393.681zm1.097-2.365l2.602-1.5%202.607%201.5v2.999l-2.597%201.5-2.607-1.5z'/%3e%3c/svg%3e`,Et=50*1024*1024,Z=10,Q=60,Dt=60,Ot={claude:{src:Y,invertOnDark:!1},codex:{src:X,invertOnDark:!0}},kt=r({name:`CodingBridgeSessionView`,components:{ElInput:O,ElButton:v,ElPopover:T,ElDropdown:w,ElDropdownMenu:C,ElDropdownItem:S,ElUpload:y,ElCheckbox:b,ElSkeleton:D,ElSkeletonItem:E,FontAwesomeIcon:R,TranscriptItem:et,ThinkingIndicator:dt,DirectoryDialog:Tt,AskUserQuestionCard:te,CopyToClipboard:z},mixins:[I],emits:[`history`,`devices`],data(){return{prompt:``,cwd:``,model:``,customModelDraft:``,permissionMode:`bypassPermissions`,provider:`claude`,effort:``,directoryVisible:!1,slashMenuOpen:!1,slashActiveIndex:0,editingEventId:``,restoreCode:!1,attachmentFileList:[],uploadUrl:j()+`/api/v1/files/`,maxAttachments:Z,visibleCount:Q}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},currentNodeId(){return this.$store.state.codingBridge?.currentNodeId},lastComposer(){let e=this.currentNodeId;return(e?this.$store.state.codingBridge?.lastComposer?.[e]:void 0)??{}},currentNode(){return this.$store.state.codingBridge?.nodes?.find(e=>e.node_id===this.currentNodeId)},nodeOnline(){return this.currentNode?.status===`online`},currentSessionId(){return this.$store.state.codingBridge?.currentSessionId},currentSession(){let e=this.currentSessionId;return e?this.$store.state.codingBridge?.sessions?.[e]:void 0},events(){let e=this.currentSessionId;return e?this.$store.state.codingBridge?.events?.[e]??[]:[]},visibleEvents(){let e=this.events;return e.length>this.visibleCount?e.slice(-this.visibleCount):e},hiddenEventCount(){return Math.max(0,this.events.length-this.visibleCount)},historyLoading(){return this.$store.state.codingBridge?.status?.getHistoryDetail===N.Request},pendingQuestion(){let e=this.currentSessionId;if(!e)return;let t=(this.$store.state.codingBridge?.permissions??[]).find(t=>t.session_id===e&&H(t));return t?{request_id:t.request_id,payload:Te(t)}:void 0},isNewSession(){return!this.currentSessionId},canPickCwd(){return this.isNewSession||!this.currentSession?.started},readonly(){return this.currentSession?.readonly===!0},resumeHint(){return!!this.currentSession?.provider&&!this.currentSession?.started&&!this.readonly},replayLabel(){return!this.currentSession?.provider||this.currentSession?.started?``:this.currentSession.provider===`codex`?this.$t(`codingBridge.history.codexLabel`):this.currentSession.provider===`claude`?this.$t(`codingBridge.history.claudeLabel`):this.providerName(this.currentSession.provider)},running(){let e=this.currentSession?.status;return e===`running`||e===`starting`},thinking(){return this.running&&!this.pendingQuestion},connected(){return this.$store.state.codingBridge?.connection===`connected`},canRetry(){return this.currentSession?.status===`error`&&!this.readonly&&this.connected&&this.nodeOnline&&this.events.some(e=>e.kind===`prompt`)},attachments(){return(this.attachmentFileList||[]).map(e=>{let t=e.response?.file_url||(typeof e.url==`string`&&!e.url.startsWith(`blob:`)?e.url:``);if(!t)return;let n=e.raw,r=n?.type||e.mime_type||``;return{type:this.isImageAttachment(e)?`image`:`file`,url:t,name:e.name,mime_type:r,size:n?.size}}).filter(e=>!!e)},uploadingAttachments(){return(this.attachmentFileList||[]).some(e=>this.isAttachmentUploading(e))},canSend(){return(!!this.prompt.trim()||this.attachments.length>0)&&!this.uploadingAttachments&&this.connected&&this.nodeOnline},composerHint(){return this.uploadingAttachments?this.$t(`codingBridge.session.uploadingAttachment`):this.providerCaps.length&&!this.currentProviderAvailable?this.$t(`codingBridge.session.providerUnavailableHint`,{name:this.providerName(this.provider)}):this.resumeHint?this.$t(`codingBridge.history.resumeHint`):this.$t(`codingBridge.session.enterHint`)},nodeCapabilities(){let e=this.currentNodeId;return e?this.$store.state.codingBridge?.capabilities?.[e]:void 0},providerCaps(){return this.nodeCapabilities?.providers??[]},currentProviderCap(){return this.providerCaps.find(e=>e.name===this.provider)},canEdit(){return this.readonly?!1:!!this.providerCaps.find(e=>e.name===this.activeProviderName)?.supports_edit},canRestoreCode(){return!!this.providerCaps.find(e=>e.name===this.activeProviderName)?.supports_code_restore},editingActive(){return!!this.editingEventId},currentProviderAvailable(){return this.providerCaps.length?this.currentProviderCap?.available!==!1:!0},providerOptions(){return this.providerCaps.length?this.providerCaps.map(e=>({value:e.name,label:e.label,available:e.available!==!1})):[{label:this.$t(`codingBridge.session.providerClaude`),value:`claude`,available:!0},{label:this.$t(`codingBridge.session.providerCodex`),value:`codex`,available:!0},{label:`GitHub Copilot`,value:`copilot`,available:!0}]},modelOptions(){return this.currentProviderCap?.models??[]},allowCustomModel(){return this.currentProviderCap?.allow_custom_model??!0},effortOptions(){let e=this.currentProviderCap?.efforts;return(e&&e.length?e:[``]).map(e=>({value:e,label:this.effortLabel(e)}))},permissionModeOptions(){let e=this.currentProviderCap?.permission_modes;return(e&&e.length?e:[`default`,`acceptEdits`,`plan`,`bypassPermissions`]).map(e=>({value:e,label:this.permissionModeLabel(e)}))},sessionMeta(){let e=this.currentSession;if(!e)return``;let t=[];return e.provider&&t.push(this.providerName(e.provider)),e.cwd&&t.push(e.cwd),e.model&&t.push(e.model),t.join(` · `)},activeProviderName(){return this.currentSession?.provider||this.provider},slashCommands(){let e=this.activeProviderName;return this.providerCaps.find(t=>t.name===e)?.commands??[]},slashMatches(){let e=this.prompt.match(/^\/(\S*)$/);if(!e)return[];let t=e[1].toLowerCase();return this.slashCommands.filter(e=>[e.name,...e.aliases??[]].some(e=>e.toLowerCase().startsWith(t)))},slashMenuVisible(){return this.slashMenuOpen&&this.slashMatches.length>0},diagnostics(){let e=[];return this.currentNodeId&&e.push({label:this.$t(`codingBridge.session.nodeId`),value:this.currentNodeId}),this.currentSessionId&&e.push({label:this.$t(`codingBridge.session.sessionId`),value:this.currentSessionId}),this.currentSession?.trace_id&&e.push({label:this.$t(`codingBridge.session.traceId`),value:this.currentSession.trace_id}),e}},watch:{events(){this.scrollToBottom()},pendingQuestion(){this.scrollToBottom()},thinking(){this.scrollToBottom()},currentSessionId(){this.scrollToBottom(),this.visibleCount=Q,this.editingEventId=``,this.restoreCode=!1,this.syncSessionSettings()},currentNodeId(){this.requestCapabilities(),this.isNewSession&&this.restoreComposerPrefs()},providerCaps(){if(!this.isNewSession||!this.providerCaps.length)return;let e=this.providerCaps.find(e=>e.name===this.provider);if(!e||e.available===!1){let e=this.providerCaps.find(e=>e.available!==!1);e&&(this.provider=e.name)}},provider(){this.isNewSession&&(this.model=``,this.effort=``)},prompt(e){this.slashMenuOpen=/^\/\S*$/.test(e),this.slashActiveIndex>=this.slashMatches.length&&(this.slashActiveIndex=0)}},mounted(){this.requestCapabilities(),this.syncSessionSettings()},methods:{requestCapabilities(){this.currentNodeId&&this.$store.dispatch(`codingBridge/getCapabilities`,this.currentNodeId)},effortLabel(e){let t={"":`codingBridge.session.effortDefault`,low:`codingBridge.session.effortLow`,medium:`codingBridge.session.effortMedium`,high:`codingBridge.session.effortHigh`,max:`codingBridge.session.effortMax`}[e];return t?this.$t(t):e},permissionModeLabel(e){let t={default:`codingBridge.session.permissionModeDefault`,acceptEdits:`codingBridge.session.permissionModeAcceptEdits`,plan:`codingBridge.session.permissionModePlan`,bypassPermissions:`codingBridge.session.permissionModeBypass`}[e];return t?this.$t(t):e},providerName(e){let t=this.providerCaps.find(t=>t.name===e);return t?t.label:{claude:this.$t(`codingBridge.session.providerClaude`),codex:this.$t(`codingBridge.session.providerCodex`),copilot:`GitHub Copilot`}[e]??e},providerIcon(e){return Ot[e]??null},syncSessionSettings(){let e=this.currentSession;if(!e){this.restoreComposerPrefs();return}let t=this.lastComposer;e.provider&&(this.provider=e.provider),this.model=e.model??``,this.customModelDraft=``,this.cwd=e.cwd??t.cwd??``,this.effort=e.effort??t.effort??``,this.permissionMode=e.permission_mode??t.permissionMode??`bypassPermissions`},selectModel(e){this.model=e,this.customModelDraft=``,this.closeModelPopover()},applyCustomModel(){let e=this.customModelDraft.trim();e&&(this.model=e,this.customModelDraft=``,this.closeModelPopover())},closeModelPopover(){this.$refs.modelPopover?.hide?.()},onComposerEnter(e){let t=e;t.isComposing||t.keyCode===229||t.shiftKey||t.ctrlKey||t.metaKey||t.altKey||(t.preventDefault(),this.onSend())},onComposerKeydown(e){let t=e;if(this.slashMenuVisible&&!t.isComposing&&t.keyCode!==229){if(t.key===`ArrowDown`){t.preventDefault(),this.moveSlash(1);return}if(t.key===`ArrowUp`){t.preventDefault(),this.moveSlash(-1);return}if(t.key===`Escape`){t.preventDefault(),this.slashMenuOpen=!1;return}if(t.key===`Tab`||t.key===`Enter`&&!t.shiftKey){t.preventDefault(),this.applySlash(this.slashMatches[this.slashActiveIndex]);return}}t.key===`Enter`&&this.onComposerEnter(t)},moveSlash(e){let t=this.slashMatches.length;t&&(this.slashActiveIndex=(this.slashActiveIndex+e+t)%t,this.$nextTick(()=>{(this.$el?.querySelector?.(`.cb-slash-menu__item--active`))?.scrollIntoView({block:`nearest`})}))},applySlash(e){e&&(this.prompt=`/${e.name} `,this.slashMenuOpen=!1,this.slashActiveIndex=0)},onSend(){if(!this.canSend)return;let e=this.attachments;if(this.editingEventId){this.$store.dispatch(`codingBridge/editPrompt`,{eventId:this.editingEventId,prompt:this.prompt,model:this.model,permissionMode:this.permissionMode,effort:this.effort,attachments:e.length?e:void 0,restoreCode:this.restoreCode}),this.resetComposer();return}this.currentNodeId&&this.$store.commit(`codingBridge/setLastComposer`,{node_id:this.currentNodeId,prefs:{cwd:this.cwd,provider:this.provider,model:this.model,permissionMode:this.permissionMode,effort:this.effort}}),this.$store.dispatch(`codingBridge/sendPrompt`,{prompt:this.prompt,cwd:this.cwd,model:this.model,permissionMode:this.permissionMode,provider:this.provider,effort:this.effort,attachments:e.length?e:void 0}),this.resetComposer()},resetComposer(){this.prompt=``,this.slashMenuOpen=!1,this.slashActiveIndex=0,this.editingEventId=``,this.restoreCode=!1,this.clearAttachments()},cancelEdit(){this.resetComposer()},onAnswerQuestion(e){this.$store.dispatch(`codingBridge/answerQuestion`,{request_id:e.tool_use_id,output:e.output})},onSkipQuestion(e){this.$store.dispatch(`codingBridge/resolvePermission`,{request_id:e.tool_use_id,decision:`deny`})},beforeAttachmentUpload(e){return this.attachmentFileList.length>=Z?(M.warning(this.$t(`codingBridge.session.attachmentLimit`,{count:Z})),!1):e.size>Et?(M.warning(this.$t(`codingBridge.session.attachmentTooLarge`)),!1):!0},onAttachmentChange(e){if(!e.url&&e.raw&&this.isImageAttachment(e))try{e.url=URL.createObjectURL(e.raw)}catch{}},onAttachmentSuccess(e,t){e?.file_url&&(this.revokeBlobUrl(t),t.url=e.file_url,t.response=e)},onAttachmentError(){M.error(this.$t(`codingBridge.session.attachmentUploadError`))},onAttachmentExceed(){M.warning(this.$t(`codingBridge.session.attachmentLimit`,{count:Z}))},onTriggerAttachmentUpload(){this.$nextTick(()=>{let e=this.$refs.uploader?.$el;(e?.querySelector(`input.el-upload__input`)||e?.querySelector(`input[type="file"]`))?.click()})},isAttachmentUploading(e){return e.status===`ready`||e.status===`uploading`},isImageAttachment(e){return(e.raw?.type||``).startsWith(`image/`)?!0:/\.(png|jpe?g|gif|webp|bmp|svg)$/i.test(e.name||e.url||``)},attachmentPreviewUrl(e){return this.isImageAttachment(e)&&(e.url||e.response?.file_url)||``},removeAttachment(e,t){this.revokeBlobUrl(t),this.attachmentFileList.splice(e,1)},clearAttachments(){for(let e of this.attachmentFileList)this.revokeBlobUrl(e);this.attachmentFileList=[]},revokeBlobUrl(e){if(e.url?.startsWith(`blob:`))try{URL.revokeObjectURL(e.url)}catch{}},onInterrupt(){this.$store.dispatch(`codingBridge/interruptSession`)},onRetry(){this.$store.dispatch(`codingBridge/retryLastPrompt`)},onEditPrompt(e){this.canEdit&&(this.editingEventId=e.id,this.restoreCode=!1,this.prompt=e.text??``,this.slashMenuOpen=!1,this.slashActiveIndex=0,this.clearAttachments(),this.attachmentFileList=(e.attachments??[]).map((e,t)=>({name:e.name||e.url,url:e.url,status:`success`,percentage:100,uid:Date.now()+t,response:{file_url:e.url},mime_type:e.mime_type})),this.$nextTick(()=>{(this.$el?.querySelector?.(`.cb-composer__input textarea`))?.focus()}))},openDirectory(){this.directoryVisible=!0},onDirectorySelect(e){this.cwd=e},onNewSession(){this.$store.dispatch(`codingBridge/newSession`),this.restoreComposerPrefs(),this.resetComposer()},restoreComposerPrefs(){let e=this.lastComposer;this.cwd=e.cwd??``,this.provider=e.provider??`claude`,this.permissionMode=e.permissionMode??`bypassPermissions`,this.customModelDraft=``,this.$nextTick(()=>{this.model=e.model??``,this.effort=e.effort??``})},scrollToBottom(){this.$nextTick(()=>{let e=this.$refs.transcript;e&&(e.scrollTop=e.scrollHeight)})},loadEarlier(){let e=this.$refs.transcript,t=e?.scrollHeight??0;this.visibleCount+=Dt,this.$nextTick(()=>{e&&(e.scrollTop=e.scrollHeight-t+e.scrollTop)})}}}),At={class:`session-view flex flex-col h-full bg-[var(--app-content-bg)]`},jt={key:0,class:`flex-1 flex flex-col items-center justify-center text-center p-8 text-[var(--app-text-subtle)]`},Mt={class:`text-sm`},Nt={class:`flex items-center justify-between gap-3 px-5 py-3 border-b border-[var(--app-border-subtle)]`},Pt={class:`flex items-center gap-2 min-w-0`},Ft=[`title`,`aria-label`],It={class:`min-w-0`},Lt={class:`flex items-center gap-2 font-medium`},Rt={class:`truncate`},zt={key:0,class:`text-xs text-[var(--app-text-subtle)] truncate`},Bt={key:0,class:`text-[var(--el-color-primary)]`},Vt={class:`flex items-center gap-2 flex-none`},Ht={key:0,class:`px-5 py-2 text-xs bg-[var(--el-color-warning-light-9)] text-[var(--el-color-warning)] border-b border-[var(--app-border-subtle)]`},Ut={key:1,class:`flex flex-wrap items-center gap-x-4 gap-y-1 px-5 py-1.5 text-[11px] text-[var(--app-text-subtle)] border-b border-[var(--app-border-subtle)]`},Wt={class:`opacity-70 flex-none`},Gt=[`title`],Kt={ref:`transcript`,class:`flex-1 min-h-0 overflow-y-auto px-5 py-4 flex flex-col gap-3`},qt={key:0,class:`cb-skeleton`},Jt={class:`flex flex-col gap-4`},Yt={class:`flex justify-end`},Xt={class:`flex flex-col gap-1.5`},Zt={class:`flex justify-end`},Qt={class:`flex flex-col gap-1.5`},$t={key:1,class:`m-auto text-center text-sm text-[var(--app-text-subtle)]`},en=[`title`],tn={key:4,class:`flex justify-center pt-1`},nn={key:2,class:`cb-question-dock flex-none px-5`},rn={class:`border-t border-[var(--app-border-subtle)] p-3`},an={key:0,class:`flex items-center gap-2 text-xs text-[var(--app-text-subtle)] px-1 py-2`},on={key:0,class:`mb-2 flex flex-wrap items-center gap-x-3 gap-y-1.5 rounded-lg bg-[var(--el-color-primary-light-9)] px-3 py-2 text-xs text-[var(--app-text)]`},sn={class:`inline-flex items-center gap-1.5`},cn={class:`cb-composer rounded-2xl border border-[var(--app-border-subtle)] bg-[var(--app-content-bg)] px-3 py-2.5 transition-colors focus-within:border-[var(--el-color-primary-light-5)]`},ln={key:0,class:`flex flex-wrap gap-2 pb-2`},un=[`src`,`alt`],dn={key:1,class:`flex h-8 w-8 items-center justify-center rounded bg-[var(--app-content-bg)]`},fn=[`title`],pn={key:2,class:`text-[10px] text-[var(--app-text-subtle)]`},mn=[`title`,`onClick`],hn={key:1,class:`cb-slash-menu`},gn=[`onMousedown`,`onMouseenter`],_n={class:`cb-slash-menu__name`},vn={key:0,class:`cb-slash-menu__hint`},yn={key:1,class:`cb-slash-menu__desc`},bn={ref:`attachmentUploadTrigger`,class:`block h-0 w-0`,"aria-hidden":`true`},xn={class:`mt-1.5 flex items-center gap-1.5`},Sn=[`title`],Cn={class:`flex min-w-0 flex-1 flex-wrap items-center gap-1.5`},wn={type:`button`,class:`cb-pill`},Tn=[`src`],En={class:`truncate`},Dn=[`src`],On={key:1,class:`ml-1 text-xs opacity-60`},kn={key:1,class:`cb-pill cb-pill--static`},An=[`src`],jn={class:`truncate`},Mn={type:`button`,class:`cb-pill`},Nn={class:`truncate`},Pn={class:`cb-model-menu`},Fn={class:`truncate`},In=[`onClick`],Ln={class:`truncate`},Rn={key:0,class:`cb-model-custom`},zn={type:`button`,class:`cb-pill`},Bn={class:`truncate`},Vn={type:`button`,class:`cb-pill`},Hn={class:`truncate`},Un={type:`button`,class:`cb-pill`},Wn={class:`truncate`},Gn=[`title`,`aria-label`],Kn={key:4,class:`cb-pill cb-pill--static`},qn={class:`truncate`},Jn={class:`text-[11px] text-[var(--app-text-subtle)] mt-1 px-1`};function Yn(r,f,m,v,y,b){let x=h(`font-awesome-icon`),S=h(`el-button`),C=h(`copy-to-clipboard`),w=h(`el-skeleton-item`),T=h(`el-skeleton`),E=h(`transcript-item`),D=h(`thinking-indicator`),O=h(`ask-user-question-card`),k=h(`el-checkbox`),A=h(`el-input`),j=h(`el-upload`),M=h(`el-dropdown-item`),N=h(`el-dropdown-menu`),P=h(`el-dropdown`),F=h(`el-popover`),I=h(`directory-dialog`);return u(),t(`div`,At,[r.currentNode?(u(),t(s,{key:1},[n(`div`,Nt,[n(`div`,Pt,[n(`button`,{type:`button`,class:`cb-devices-btn md:hidden`,title:r.$t(`codingBridge.nodeList.title`),"aria-label":r.$t(`codingBridge.nodeList.title`),onClick:f[1]||=e=>r.$emit(`devices`)},[o(x,{icon:`fa-solid fa-laptop-code`})],8,Ft),n(`div`,It,[n(`div`,Lt,[n(`span`,Rt,l(r.currentNode.name),1),n(`span`,{class:c([`inline-block w-2 h-2 rounded-full flex-none`,r.nodeOnline?`bg-[var(--el-color-success)]`:`bg-[var(--app-text-subtle)]`])},null,2)]),r.currentSession?(u(),t(`div`,zt,[n(`span`,null,l(r.sessionMeta),1),r.replayLabel?(u(),t(`span`,Bt,` · `+l(r.replayLabel),1)):p(``,!0)])):p(``,!0)])]),n(`div`,Vt,[o(S,{size:`small`,round:``,onClick:f[2]||=e=>r.$emit(`history`)},{default:g(()=>[o(x,{icon:`fa-solid fa-clock-rotate-left`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.history.button`)),1)]),_:1}),r.currentSessionId?(u(),a(S,{key:0,size:`small`,round:``,onClick:r.onNewSession},{default:g(()=>[o(x,{icon:`fa-solid fa-plus`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.session.newSession`)),1)]),_:1},8,[`onClick`])):p(``,!0)])]),r.nodeOnline?p(``,!0):(u(),t(`div`,Ht,l(r.$t(`codingBridge.session.deviceOffline`)),1)),r.diagnostics.length?(u(),t(`div`,Ut,[(u(!0),t(s,null,e(r.diagnostics,e=>(u(),t(`span`,{key:e.label,class:`inline-flex items-center gap-1 min-w-0`},[n(`span`,Wt,l(e.label)+`:`,1),n(`span`,{class:`font-mono break-all`,title:e.value},l(e.value),9,Gt),o(C,{content:e.value,class:`inline-block flex-none`},null,8,[`content`])]))),128))])):p(``,!0),n(`div`,Kt,[r.historyLoading&&!r.events.length?(u(),t(`div`,qt,[o(T,{animated:``},{template:g(()=>[n(`div`,Jt,[n(`div`,Yt,[o(w,{variant:`rect`,class:`cb-sk cb-sk--user`})]),n(`div`,Xt,[o(w,{variant:`text`,style:{width:`55%`}}),o(w,{variant:`text`,style:{width:`88%`}}),o(w,{variant:`text`,style:{width:`70%`}})]),o(w,{variant:`rect`,class:`cb-sk cb-sk--tool`}),n(`div`,Zt,[o(w,{variant:`rect`,class:`cb-sk cb-sk--user-sm`})]),n(`div`,Qt,[o(w,{variant:`text`,style:{width:`80%`}}),o(w,{variant:`text`,style:{width:`45%`}})])])]),_:1})])):r.events.length?p(``,!0):(u(),t(`div`,$t,l(r.$t(`codingBridge.session.startHint`)),1)),r.hiddenEventCount>0?(u(),t(`button`,{key:2,type:`button`,class:`cb-load-earlier mx-auto mb-1 flex items-center gap-1.5 rounded-full border border-[var(--app-border-subtle)] bg-[var(--app-content-bg)] px-3 py-1 text-xs text-[var(--app-text-subtle)] hover:text-[var(--el-color-primary)]`,title:`+${r.hiddenEventCount}`,onClick:f[3]||=(...e)=>r.loadEarlier&&r.loadEarlier(...e)},[o(x,{icon:`fa-solid fa-arrow-up`}),i(` `+l(r.hiddenEventCount),1)],8,en)):p(``,!0),(u(!0),t(s,null,e(r.visibleEvents,e=>(u(),a(E,{key:e.id,event:e,editable:r.canEdit,onEdit:r.onEditPrompt},null,8,[`event`,`editable`,`onEdit`]))),128)),r.thinking?(u(),a(D,{key:3})):p(``,!0),r.canRetry?(u(),t(`div`,tn,[o(S,{size:`small`,round:``,onClick:r.onRetry},{default:g(()=>[o(x,{icon:`fa-solid fa-rotate-right`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.session.retry`)),1)]),_:1},8,[`onClick`])])):p(``,!0)],512),r.pendingQuestion?(u(),t(`div`,nn,[(u(),a(O,{key:r.pendingQuestion.request_id,"tool-use-id":r.pendingQuestion.request_id,payload:r.pendingQuestion.payload,onSubmit:r.onAnswerQuestion,onSkip:r.onSkipQuestion},null,8,[`tool-use-id`,`payload`,`onSubmit`,`onSkip`]))])):p(``,!0),n(`div`,rn,[r.readonly?(u(),t(`div`,an,[o(x,{icon:`fa-solid fa-eye`}),n(`span`,null,l(r.$t(`codingBridge.history.readonly`)),1),o(S,{class:`ml-auto`,size:`small`,round:``,onClick:r.onNewSession},{default:g(()=>[i(l(r.$t(`codingBridge.session.newSession`)),1)]),_:1},8,[`onClick`])])):(u(),t(s,{key:1},[r.editingActive?(u(),t(`div`,on,[n(`span`,sn,[o(x,{icon:`fa-solid fa-pen`,class:`text-[var(--el-color-primary)]`}),i(` `+l(r.$t(`codingBridge.session.editingBanner`)),1)]),r.canRestoreCode?(u(),a(k,{key:0,modelValue:r.restoreCode,"onUpdate:modelValue":f[4]||=e=>r.restoreCode=e,size:`small`,class:`cb-restore-code`},{default:g(()=>[i(l(r.$t(`codingBridge.session.editRestoreCode`)),1)]),_:1},8,[`modelValue`])):p(``,!0),n(`button`,{type:`button`,class:`ml-auto cb-edit-cancel`,onClick:f[5]||=(...e)=>r.cancelEdit&&r.cancelEdit(...e)},l(r.$t(`codingBridge.session.editCancel`)),1)])):p(``,!0),n(`div`,cn,[r.attachmentFileList.length?(u(),t(`div`,ln,[(u(!0),t(s,null,e(r.attachmentFileList,(e,i)=>(u(),t(`div`,{key:e.uid||e.name||i,class:`group relative flex max-w-[220px] items-center gap-2 rounded-md border border-[var(--app-border-subtle)] bg-[var(--app-sidebar-bg)] px-2 py-1.5 text-xs`},[r.attachmentPreviewUrl(e)?(u(),t(`img`,{key:0,src:r.attachmentPreviewUrl(e),class:`h-8 w-8 rounded object-cover`,alt:r.$t(`codingBridge.session.attachmentImageAlt`)},null,8,un)):(u(),t(`span`,dn,[o(x,{icon:`fa-solid fa-file`})])),n(`span`,{class:`min-w-0 flex-1 truncate`,title:e.name},l(e.name),9,fn),r.isAttachmentUploading(e)?(u(),t(`span`,pn,l(Math.round(e.percentage||0))+`% `,1)):p(``,!0),n(`button`,{type:`button`,class:`flex h-5 w-5 items-center justify-center rounded-full text-[var(--app-text-subtle)] hover:bg-[var(--app-content-hover-bg)] hover:text-[var(--el-color-danger)]`,title:r.$t(`codingBridge.session.removeAttachment`),onClick:t=>r.removeAttachment(i,e)},[o(x,{icon:`fa-solid fa-xmark`})],8,mn)]))),128))])):p(``,!0),r.slashMenuVisible?(u(),t(`ul`,hn,[(u(!0),t(s,null,e(r.slashMatches,(e,i)=>(u(),t(`li`,{key:e.name,class:c([`cb-slash-menu__item`,{"cb-slash-menu__item--active":i===r.slashActiveIndex}]),onMousedown:d(t=>r.applySlash(e),[`prevent`]),onMouseenter:e=>r.slashActiveIndex=i},[n(`span`,_n,`/`+l(e.name),1),e.argument_hint?(u(),t(`span`,vn,l(e.argument_hint),1)):p(``,!0),e.description?(u(),t(`span`,yn,l(e.description),1)):p(``,!0)],42,gn))),128))])):p(``,!0),o(A,{modelValue:r.prompt,"onUpdate:modelValue":f[6]||=e=>r.prompt=e,type:`textarea`,autosize:{minRows:2,maxRows:12},resize:`none`,class:`cb-composer__input`,placeholder:r.$t(`codingBridge.session.promptPlaceholder`),onKeydown:r.onComposerKeydown},null,8,[`modelValue`,`placeholder`,`onKeydown`]),o(j,{ref:`uploader`,"file-list":r.attachmentFileList,"onUpdate:fileList":f[7]||=e=>r.attachmentFileList=e,class:`h-0 w-0 overflow-hidden opacity-0`,name:`file`,action:r.uploadUrl,headers:r.headers,multiple:!0,limit:r.maxAttachments,"show-file-list":!1,"before-upload":r.beforeAttachmentUpload,"on-change":r.onAttachmentChange,"on-success":r.onAttachmentSuccess,"on-error":r.onAttachmentError,"on-exceed":r.onAttachmentExceed},{default:g(()=>[n(`span`,bn,null,512)]),_:1},8,[`file-list`,`action`,`headers`,`limit`,`before-upload`,`on-change`,`on-success`,`on-error`,`on-exceed`]),n(`div`,xn,[n(`button`,{type:`button`,class:`cb-icon-btn`,title:r.$t(`codingBridge.session.attachFile`),onClick:f[8]||=(...e)=>r.onTriggerAttachmentUpload&&r.onTriggerAttachmentUpload(...e)},[o(x,{icon:`fa-solid fa-paperclip`})],8,Sn),n(`div`,Cn,[r.isNewSession?(u(),a(P,{key:0,trigger:`click`,onCommand:f[9]||=e=>r.provider=e},{dropdown:g(()=>[o(N,null,{default:g(()=>[(u(!0),t(s,null,e(r.providerOptions,e=>(u(),a(M,{key:e.value,command:e.value,disabled:!e.available},{default:g(()=>[o(x,{icon:`fa-solid fa-check`,class:c([`mr-2`,e.value===r.provider?`opacity-100`:`opacity-0`])},null,8,[`class`]),r.providerIcon(e.value)?(u(),t(`img`,{key:0,src:r.providerIcon(e.value).src,class:c([`cb-pill__brand mr-1.5`,{"cb-pill__brand--invert":r.providerIcon(e.value).invertOnDark}]),alt:``},null,10,Dn)):p(``,!0),i(` `+l(e.label)+` `,1),e.available?p(``,!0):(u(),t(`span`,On,l(r.$t(`codingBridge.session.providerUnavailable`)),1))]),_:2},1032,[`command`,`disabled`]))),128))]),_:1})]),default:g(()=>[n(`button`,wn,[r.providerIcon(r.provider)?(u(),t(`img`,{key:0,src:r.providerIcon(r.provider).src,class:c([`cb-pill__brand`,{"cb-pill__brand--invert":r.providerIcon(r.provider).invertOnDark}]),alt:``},null,10,Tn)):(u(),a(x,{key:1,icon:`fa-solid fa-code`,class:`cb-pill__icon`})),n(`span`,En,l(r.providerName(r.provider)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),_:1})):(u(),t(`span`,kn,[r.providerIcon(r.currentSession?.provider||`claude`)?(u(),t(`img`,{key:0,src:r.providerIcon(r.currentSession?.provider||`claude`).src,class:c([`cb-pill__brand`,{"cb-pill__brand--invert":r.providerIcon(r.currentSession?.provider||`claude`).invertOnDark}]),alt:``},null,10,An)):(u(),a(x,{key:1,icon:`fa-solid fa-code`,class:`cb-pill__icon`})),n(`span`,jn,l(r.providerName(r.currentSession?.provider||`claude`)),1)])),o(F,{ref:`modelPopover`,trigger:`click`,placement:`top-start`,width:260},{reference:g(()=>[n(`button`,Mn,[o(x,{icon:`fa-solid fa-brain`,class:`cb-pill__icon`}),n(`span`,Nn,l(r.model||r.$t(`codingBridge.session.modelDefault`)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),default:g(()=>[n(`div`,Pn,[n(`button`,{type:`button`,class:`cb-model-option`,onClick:f[10]||=e=>r.selectModel(``)},[o(x,{icon:`fa-solid fa-check`,class:c([`cb-model-option__check`,r.model?`opacity-0`:`opacity-100`])},null,8,[`class`]),n(`span`,Fn,l(r.$t(`codingBridge.session.modelDefault`)),1)]),(u(!0),t(s,null,e(r.modelOptions,e=>(u(),t(`button`,{key:e.value,type:`button`,class:`cb-model-option`,onClick:t=>r.selectModel(e.value)},[o(x,{icon:`fa-solid fa-check`,class:c([`cb-model-option__check`,e.value===r.model?`opacity-100`:`opacity-0`])},null,8,[`class`]),n(`span`,Ln,l(e.label),1)],8,In))),128)),r.allowCustomModel?(u(),t(`div`,Rn,[o(A,{modelValue:r.customModelDraft,"onUpdate:modelValue":f[11]||=e=>r.customModelDraft=e,size:`small`,placeholder:r.$t(`codingBridge.session.modelPlaceholder`),onKeyup:_(r.applyCustomModel,[`enter`])},{append:g(()=>[o(S,{disabled:!r.customModelDraft.trim(),onClick:r.applyCustomModel},{default:g(()=>[o(x,{icon:`fa-solid fa-check`})]),_:1},8,[`disabled`,`onClick`])]),_:1},8,[`modelValue`,`placeholder`,`onKeyup`])])):p(``,!0)])]),_:1},512),r.effortOptions.length>1?(u(),a(P,{key:2,trigger:`click`,onCommand:f[12]||=e=>r.effort=e},{dropdown:g(()=>[o(N,null,{default:g(()=>[(u(!0),t(s,null,e(r.effortOptions,e=>(u(),a(M,{key:e.value,command:e.value},{default:g(()=>[o(x,{icon:`fa-solid fa-check`,class:c([`mr-2`,e.value===r.effort?`opacity-100`:`opacity-0`])},null,8,[`class`]),i(` `+l(e.label),1)]),_:2},1032,[`command`]))),128))]),_:1})]),default:g(()=>[n(`button`,zn,[o(x,{icon:`fa-solid fa-gauge-high`,class:`cb-pill__icon`}),n(`span`,Bn,l(r.effortLabel(r.effort)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),_:1})):p(``,!0),o(P,{trigger:`click`,onCommand:f[13]||=e=>r.permissionMode=e},{dropdown:g(()=>[o(N,null,{default:g(()=>[(u(!0),t(s,null,e(r.permissionModeOptions,e=>(u(),a(M,{key:e.value,command:e.value},{default:g(()=>[o(x,{icon:`fa-solid fa-check`,class:c([`mr-2`,e.value===r.permissionMode?`opacity-100`:`opacity-0`])},null,8,[`class`]),i(` `+l(e.label),1)]),_:2},1032,[`command`]))),128))]),_:1})]),default:g(()=>[n(`button`,Vn,[o(x,{icon:`fa-solid fa-shield-halved`,class:`cb-pill__icon`}),n(`span`,Hn,l(r.permissionModeLabel(r.permissionMode)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),_:1}),r.canPickCwd?(u(),a(F,{key:3,trigger:`click`,placement:`top-start`,width:320},{reference:g(()=>[n(`button`,Un,[o(x,{icon:`fa-solid fa-folder-open`,class:`cb-pill__icon`}),n(`span`,Wn,l(r.cwd||r.$t(`codingBridge.session.cwdDefault`)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),default:g(()=>[o(A,{modelValue:r.cwd,"onUpdate:modelValue":f[17]||=e=>r.cwd=e,size:`small`,clearable:``,class:`cb-cwd-input`,placeholder:r.$t(`codingBridge.session.cwdPlaceholder`)},{suffix:g(()=>[n(`span`,{class:`cb-cwd-browse`,role:`button`,tabindex:`0`,title:r.$t(`codingBridge.directory.title`),"aria-label":r.$t(`codingBridge.directory.title`),onClick:f[14]||=(...e)=>r.openDirectory&&r.openDirectory(...e),onKeydown:[f[15]||=_(d((...e)=>r.openDirectory&&r.openDirectory(...e),[`prevent`]),[`enter`]),f[16]||=_(d((...e)=>r.openDirectory&&r.openDirectory(...e),[`prevent`]),[`space`])]},[o(x,{icon:`fa-solid fa-folder-open`})],40,Gn)]),_:1},8,[`modelValue`,`placeholder`])]),_:1})):r.currentSession?.cwd?(u(),t(`span`,Kn,[o(x,{icon:`fa-solid fa-folder-open`,class:`cb-pill__icon`}),n(`span`,qn,l(r.currentSession?.cwd),1)])):p(``,!0)]),r.running?(u(),a(S,{key:0,circle:``,onClick:r.onInterrupt},{default:g(()=>[o(x,{icon:`fa-solid fa-stop`})]),_:1},8,[`onClick`])):p(``,!0),o(S,{type:`primary`,round:``,disabled:!r.canSend,onClick:r.onSend},{default:g(()=>[i(l(r.editingActive?r.$t(`codingBridge.session.editSubmit`):r.$t(`codingBridge.session.send`)),1)]),_:1},8,[`disabled`,`onClick`])])]),n(`p`,Jn,l(r.composerHint),1)],64))])],64)):(u(),t(`div`,jt,[o(x,{icon:`fa-solid fa-laptop-code`,class:`text-4xl mb-3`}),n(`p`,Mt,l(r.$t(`codingBridge.session.noDevice`)),1),o(S,{class:`md:hidden mt-4`,round:``,onClick:f[0]||=e=>r.$emit(`devices`)},{default:g(()=>[o(x,{icon:`fa-solid fa-laptop-code`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.nodeList.title`)),1)]),_:1})])),o(I,{visible:r.directoryVisible,"onUpdate:visible":f[18]||=e=>r.directoryVisible=e,"initial-path":r.cwd,onSelect:r.onDirectorySelect},null,8,[`visible`,`initial-path`,`onSelect`])])}var Xn=P(kt,[[`render`,Yn],[`__scopeId`,`data-v-f49f4ab0`]]),Zn=r({name:`CodingBridgePairDialog`,components:{ElDialog:L,ElInput:O,ElButton:v,FontAwesomeIcon:R},props:{visible:{type:Boolean,default:!1},initialCode:{type:String,default:``}},emits:[`update:visible`],data(){return{code:``}},computed:{claiming(){return this.$store.state.codingBridge?.status?.claimPair===N.Request}},watch:{visible(e){e&&this.initialCode&&(this.code=this.initialCode)},initialCode(e){e&&(this.code=e)}},methods:{async onClaim(){let e=this.code.trim();if(e)try{let t=await this.$store.dispatch(`codingBridge/claimPair`,e);M.success(this.$t(`codingBridge.pair.success`,{name:t})),this.code=``,this.$emit(`update:visible`,!1)}catch(e){let t=e?.response?.status;t===404?M.error(this.$t(`codingBridge.pair.invalidCode`)):t===409?M.error(this.$t(`codingBridge.pair.usedCode`)):M.error(this.$t(`codingBridge.pair.failed`))}}}}),Qn={class:`content`},$n={class:`text-sm text-[var(--app-text-subtle)] mb-4`},er={class:`steps list-none m-0 p-0 mb-4`},tr={class:`flex gap-3 mb-3`},nr={class:`flex-1 min-w-0`},rr={class:`text-sm mb-1`},ir={class:`flex gap-3 mb-3`},ar={class:`flex-1 min-w-0`},or={class:`text-sm mb-1`},sr={class:`flex gap-3`},cr={class:`flex-1 min-w-0`},lr={class:`text-sm`};function ur(e,t,r,s,c,d){let f=h(`el-input`),p=h(`font-awesome-icon`),m=h(`el-button`),v=h(`el-dialog`);return u(),a(v,{"model-value":e.visible,width:`520px`,title:e.$t(`codingBridge.pair.title`),center:``,"onUpdate:modelValue":t[1]||=t=>e.$emit(`update:visible`,t)},{default:g(()=>[n(`div`,Qn,[n(`p`,$n,l(e.$t(`codingBridge.pair.intro`)),1),n(`ol`,er,[n(`li`,tr,[t[3]||=n(`span`,{class:`step-index`},`1`,-1),n(`div`,nr,[n(`p`,rr,l(e.$t(`codingBridge.pair.step1`)),1),t[2]||=n(`code`,{class:`cmd`},`pip install coding-bridge`,-1)])]),n(`li`,ir,[t[5]||=n(`span`,{class:`step-index`},`2`,-1),n(`div`,ar,[n(`p`,or,l(e.$t(`codingBridge.pair.step2`)),1),t[4]||=n(`code`,{class:`cmd`},`coding-bridge up`,-1)])]),n(`li`,sr,[t[6]||=n(`span`,{class:`step-index`},`3`,-1),n(`div`,cr,[n(`p`,lr,l(e.$t(`codingBridge.pair.step3`)),1)])])]),o(f,{modelValue:e.code,"onUpdate:modelValue":t[0]||=t=>e.code=t,size:`large`,class:`mb-3`,placeholder:e.$t(`codingBridge.pair.codePlaceholder`),clearable:``,onKeyup:_(e.onClaim,[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeyup`]),o(m,{type:`primary`,round:``,class:`w-full`,loading:e.claiming,disabled:!e.code.trim(),onClick:e.onClaim},{default:g(()=>[o(p,{icon:`fa-solid fa-link`,class:`mr-1`}),i(` `+l(e.$t(`codingBridge.pair.claim`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])])]),_:1},8,[`model-value`,`title`])}var dr=P(Zn,[[`render`,ur],[`__scopeId`,`data-v-085c4083`]]),fr=r({name:`CodingBridgePermissionDialog`,components:{ElDialog:L,ElButton:v,FontAwesomeIcon:R},computed:{request(){return(this.$store.state.codingBridge?.permissions??[]).find(e=>!H(e))},hasInput(){return!!this.request?.input&&Object.keys(this.request.input).length>0},inputText(){try{return JSON.stringify(this.request?.input,null,2)}catch{return String(this.request?.input??``)}}},methods:{onAllow(){this.request&&this.$store.dispatch(`codingBridge/resolvePermission`,{request_id:this.request.request_id,decision:`allow`})},onDeny(){this.request&&this.$store.dispatch(`codingBridge/resolvePermission`,{request_id:this.request.request_id,decision:`deny`})}}}),pr={key:0,class:`content`},mr={class:`text-sm text-[var(--app-text-subtle)] mb-3`},hr={class:`rounded-md border border-[var(--app-border-subtle)] p-3 mb-3`},gr={class:`flex items-center gap-2 font-medium`},_r={key:0,class:`text-xs text-[var(--app-text-subtle)] mt-1`},vr={key:1,class:`mt-2 text-xs overflow-x-auto whitespace-pre-wrap break-words text-[var(--app-text-subtle)] max-h-[200px]`},yr={class:`flex justify-end gap-2`};function br(e,r,s,c,d,f){let m=h(`font-awesome-icon`),_=h(`el-button`),v=h(`el-dialog`);return u(),a(v,{"model-value":!!e.request,width:`480px`,title:e.$t(`codingBridge.permission.title`),"close-on-click-modal":!1,"show-close":!1,center:``},{footer:g(()=>[n(`div`,yr,[o(_,{round:``,onClick:e.onDeny},{default:g(()=>[o(m,{icon:`fa-solid fa-xmark`,class:`mr-1`}),i(` `+l(e.$t(`codingBridge.permission.deny`)),1)]),_:1},8,[`onClick`]),o(_,{type:`primary`,round:``,onClick:e.onAllow},{default:g(()=>[o(m,{icon:`fa-solid fa-check`,class:`mr-1`}),i(` `+l(e.$t(`codingBridge.permission.allow`)),1)]),_:1},8,[`onClick`])])]),default:g(()=>[e.request?(u(),t(`div`,pr,[n(`p`,mr,l(e.$t(`codingBridge.permission.subtitle`)),1),n(`div`,hr,[n(`div`,gr,[o(m,{icon:`fa-solid fa-code`}),n(`span`,null,l(e.request.display_name||e.request.title||e.request.tool),1)]),e.request.description?(u(),t(`p`,_r,l(e.request.description),1)):p(``,!0),e.hasInput?(u(),t(`pre`,vr,l(e.inputText),1)):p(``,!0)])])):p(``,!0)]),_:1},8,[`model-value`,`title`])}var xr=P(fr,[[`render`,br]]),Sr={claude:{src:Y,invertOnDark:!1},codex:{src:X,invertOnDark:!0}},Cr=r({name:`CodingBridgeHistoryDrawer`,components:{ElDrawer:x,ElButton:v,FontAwesomeIcon:R},props:{visible:{type:Boolean,default:!1}},emits:[`update:visible`],computed:{currentNodeId(){return this.$store.state.codingBridge?.currentNodeId},loading(){return this.$store.state.codingBridge?.status?.getHistory===N.Request},sessions(){let e=this.currentNodeId;return[...e?this.$store.state.codingBridge?.history?.[e]??[]:[]].sort((e,t)=>(t.updated_at??0)-(e.updated_at??0))}},watch:{visible(e){e&&this.currentNodeId&&this.$store.dispatch(`codingBridge/getHistory`,this.currentNodeId)}},methods:{providerLabel(e){return{claude:`Claude Code`,codex:`Codex`,copilot:`GitHub Copilot`}[e]??e},providerIcon(e){return Sr[e]??null},refresh(){this.currentNodeId&&this.$store.dispatch(`codingBridge/getHistory`,this.currentNodeId)},open(e){this.currentNodeId&&(this.$store.dispatch(`codingBridge/reattachSession`,{node_id:this.currentNodeId,provider:e.provider,session_id:e.session_id}),this.$emit(`update:visible`,!1))},formatTime(e){try{return new Date(e).toLocaleString()}catch{return``}}}}),wr={class:`flex flex-col h-full`},Tr={class:`flex items-center justify-between mb-3`},$={class:`text-xs text-[var(--app-text-subtle)] m-0`},Er={key:0,class:`m-auto text-sm text-[var(--app-text-subtle)]`},Dr={key:1,class:`m-auto text-sm text-[var(--app-text-subtle)]`},Or={key:2,class:`m-auto text-sm text-[var(--app-text-subtle)] text-center`},kr={key:3,class:`list-none m-0 p-0 flex-1 overflow-y-auto flex flex-col gap-2`},Ar=[`onClick`],jr={class:`flex items-center gap-2 mb-1`},Mr=[`src`,`alt`],Nr={class:`text-sm font-medium truncate flex-1`},Pr=[`title`],Fr={class:`text-[11px] text-[var(--app-text-subtle)] truncate`},Ir={key:0},Lr={key:1},Rr={class:`text-[11px] text-[var(--app-text-subtle)] mt-0.5`},zr={key:0},Br={key:1};function Vr(r,d,f,m,_,v){let y=h(`font-awesome-icon`),b=h(`el-button`),x=h(`el-drawer`);return u(),a(x,{"model-value":r.visible,direction:`rtl`,size:`380px`,title:r.$t(`codingBridge.history.title`),"onUpdate:modelValue":d[0]||=e=>r.$emit(`update:visible`,e)},{default:g(()=>[n(`div`,wr,[n(`div`,Tr,[n(`p`,$,l(r.$t(`codingBridge.history.intro`)),1),o(b,{size:`small`,round:``,loading:r.loading,onClick:r.refresh},{default:g(()=>[r.loading?p(``,!0):(u(),a(y,{key:0,icon:`fa-solid fa-rotate-right`,class:`mr-1`})),i(` `+l(r.$t(`codingBridge.history.refresh`)),1)]),_:1},8,[`loading`,`onClick`])]),r.currentNodeId?r.loading&&!r.sessions.length?(u(),t(`div`,Dr,l(r.$t(`codingBridge.history.loading`)),1)):r.sessions.length?(u(),t(`ul`,kr,[(u(!0),t(s,null,e(r.sessions,e=>(u(),t(`li`,{key:e.provider+`:`+e.session_id,class:`item rounded-lg p-3 cursor-pointer border border-[var(--app-border-subtle)]`,onClick:t=>r.open(e)},[n(`div`,jr,[r.providerIcon(e.provider)?(u(),t(`img`,{key:0,src:r.providerIcon(e.provider).src,class:c([`provider-icon`,{"provider-icon--invert":r.providerIcon(e.provider).invertOnDark}]),alt:r.providerLabel(e.provider)},null,10,Mr)):(u(),a(y,{key:1,icon:`fa-solid fa-code`,class:`provider-icon`,title:r.providerLabel(e.provider)},null,8,[`title`])),n(`span`,Nr,l(e.title),1),e.running?(u(),t(`span`,{key:2,class:`running-dot`,title:r.$t(`codingBridge.history.running`)},null,8,Pr)):p(``,!0)]),n(`div`,Fr,[e.cwd?(u(),t(`span`,Ir,l(e.cwd),1)):p(``,!0),e.git_branch?(u(),t(`span`,Lr,` · `+l(e.git_branch),1)):p(``,!0)]),n(`div`,Rr,[e.updated_at?(u(),t(`span`,zr,l(r.formatTime(e.updated_at)),1)):p(``,!0),e.message_count?(u(),t(`span`,Br,` · `+l(r.$t(`codingBridge.history.messages`,{count:e.message_count})),1)):p(``,!0)])],8,Ar))),128))])):(u(),t(`div`,Or,l(r.$t(`codingBridge.history.empty`)),1)):(u(),t(`div`,Er,l(r.$t(`codingBridge.session.noDevice`)),1))])]),_:1},8,[`model-value`,`title`])}var Hr=r({name:`CodingBridgeIndex`,components:{ElDrawer:x,NodeList:Ce,SessionView:Xn,PairDialog:dr,PermissionDialog:xr,HistoryDrawer:P(Cr,[[`render`,Vr],[`__scopeId`,`data-v-ac1b9c7e`]])},data(){return{drawer:!1,pairVisible:!1,historyVisible:!1,initialCode:``}},mounted(){this.$store.dispatch(`codingBridge/connect`),this.$store.dispatch(`codingBridge/getNodes`);let e=this.$route.query.code;typeof e==`string`&&e&&(this.initialCode=e,this.pairVisible=!0),this.restoreFromUrl(),this.handleNotificationDeepLink(),this.cleanUrl()},beforeUnmount(){this.$store.dispatch(`codingBridge/disconnect`)},methods:{openPair(){this.initialCode=``,this.pairVisible=!0},openPairFromDrawer(){this.drawer=!1,this.openPair()},restoreFromUrl(){let e=this.$route.query,t=typeof e.session==`string`?e.session:``,n=typeof e.node==`string`?e.node:``;if(!t||!n)return;let r=e.provider===`codex`||e.provider===`copilot`?e.provider:`claude`;this.$store.commit(`codingBridge/setCurrentNode`,n),this.$store.commit(`codingBridge/setHistoryRef`,{node_id:n,provider:r,session_id:t}),this.$store.dispatch(`codingBridge/getHistory`,n),this.$store.dispatch(`codingBridge/requestSessions`,n)},cleanUrl(){let e=this.$route.query,t=[`session`,`node`,`provider`,`request`,`code`];if(!t.some(t=>t in e))return;let n={...e};t.forEach(e=>delete n[e]),this.$router.replace({query:n}).catch(()=>{})},handleNotificationDeepLink(){let e=this.$route.query.node;typeof e==`string`&&e&&(this.$route.query.session||this.$store.dispatch(`codingBridge/selectNode`,e),this.$store.dispatch(`codingBridge/requestPendingPermissions`,e))}}}),Ur={class:`coding-bridge flex flex-row h-full relative`};function Wr(e,n,r,i,a,s){let c=h(`node-list`),l=h(`session-view`),d=h(`el-drawer`),f=h(`pair-dialog`),p=h(`permission-dialog`),m=h(`history-drawer`);return u(),t(`div`,Ur,[o(c,{class:`sidebar w-[300px] flex-none`,onPair:e.openPair},null,8,[`onPair`]),o(l,{class:`flex-1 min-w-0`,onHistory:n[0]||=t=>e.historyVisible=!0,onDevices:n[1]||=t=>e.drawer=!0}),o(d,{modelValue:e.drawer,"onUpdate:modelValue":n[2]||=t=>e.drawer=t,direction:`ltr`,"with-header":!1,size:`300px`,class:`drawer`},{default:g(()=>[o(c,{onPair:e.openPairFromDrawer},null,8,[`onPair`])]),_:1},8,[`modelValue`]),o(f,{visible:e.pairVisible,"onUpdate:visible":n[3]||=t=>e.pairVisible=t,"initial-code":e.initialCode},null,8,[`visible`,`initial-code`]),o(p),o(m,{visible:e.historyVisible,"onUpdate:visible":n[4]||=t=>e.historyVisible=t},null,8,[`visible`])])}var Gr=P(Hr,[[`render`,Wr],[`__scopeId`,`data-v-2879fe0f`]]);export{Gr as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{D as e,F as t,O as n,P as r,Wt as i,Z as a,dt as o,nt as s,tt as c,ut as l}from"./vendor-chart-BJCvKk8-.js";import{n as u,t as d}from"./table-BJr3w4hQ.js";import{t as f}from"./card-DjyfNde2.js";import{n as p,t as m}from"./row-
|
|
1
|
+
import"./rolldown-runtime--c01j_DQ.js";import{D as e,F as t,O as n,P as r,Wt as i,Z as a,dt as o,nt as s,tt as c,ut as l}from"./vendor-chart-BJCvKk8-.js";import{n as u,t as d}from"./table-BJr3w4hQ.js";import{t as f}from"./card-DjyfNde2.js";import{n as p,t as m}from"./row-DcQVU8mL.js";import{t as h}from"./Pagination-D0SC5Oxz.js";import{Hn as g,O as _}from"./index-Cvj3R8n8.js";import{t as v}from"./CopyToClipboard-BfdNvn25.js";var y=t({name:`ConsoleDistributionInvitees`,components:{Pagination:h,CopyToClipboard:v,ElRow:m,ElCol:p,ElTable:d,ElTableColumn:u,ElCard:f},data(){return{invitees:[],loading:!1,total:void 0,limit:10}},computed:{redirect(){return this.$route.query.redirect},page(){return parseInt(this.$route.query.page?.toString()||`1`)}},watch:{page:{handler(){this.onFetchData()}}},mounted(){this.onFetchData()},methods:{onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{page:e}})},onFetchData(){this.loading=!0,Promise.all([this.onFetchInvitees()]).finally(()=>{this.loading=!1})},async onFetchInvitees(){let{data:e}=await g.getInvitees({limit:this.limit,offset:(this.page-1)*this.limit,ordering:`-created_at`});this.invitees=e.items,this.total=e.count}}}),b={class:`title`},x={class:`key`},S={class:`copy`},C={class:`description`},w={class:`description`},T={class:`description`},E={class:`created-at`},D={class:`pagination m-v-lg`};function O(t,u,d,f,p,m){let h=c(`el-col`),g=c(`el-row`),_=c(`copy-to-clipboard`),v=c(`el-table-column`),y=c(`el-table`),O=c(`el-card`),k=c(`pagination`),A=s(`loading`);return a(),n(g,{class:`panel`},{default:l(()=>[r(h,{span:24},{default:l(()=>[r(g,null,{default:l(()=>[r(h,{span:24},{default:l(()=>[e(`h2`,b,i(t.$t(`common.title.invitee`)),1)]),_:1})]),_:1}),r(g,null,{default:l(()=>[r(h,{span:24},{default:l(()=>[r(O,{shadow:`hover`},{default:l(()=>[o((a(),n(y,{data:t.invitees,stripe:``},{default:l(()=>[r(v,{prop:`id`,label:t.$t(`user.field.id`),"class-name":`text-center`,width:`350px`},{default:l(t=>[e(`span`,x,i(t.row.id),1),e(`span`,S,[r(_,{content:t.row.id},null,8,[`content`])])]),_:1},8,[`label`]),r(v,{label:t.$t(`user.field.username`),width:`300px`},{default:l(t=>[e(`span`,C,i(t.row?.username),1)]),_:1},8,[`label`]),r(v,{label:t.$t(`user.field.email`),width:`300px`},{default:l(t=>[e(`span`,w,i(t.row?.email),1)]),_:1},8,[`label`]),r(v,{label:t.$t(`user.field.nickname`),width:`200px`},{default:l(t=>[e(`span`,T,i(t.row.nickname),1)]),_:1},8,[`label`]),r(v,{label:t.$t(`user.field.dateJoined`)},{default:l(n=>[e(`span`,E,i(t.$dayjs.format(n.row.date_joined)),1)]),_:1},8,[`label`])]),_:1},8,[`data`])),[[A,t.loading]])]),_:1})]),_:1})]),_:1}),r(g,null,{default:l(()=>[r(h,{span:10,offset:14},{default:l(()=>[e(`div`,D,[r(k,{"current-page":t.page,"page-size":t.limit,total:t.total,onChange:t.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var k=_(y,[[`render`,O],[`__scopeId`,`data-v-4556864d`]]);export{k as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{$ as e,A as t,D as n,F as r,N as i,O as a,P as o,S as s,Wt as c,Z as l,dt as u,k as d,nt as f,tt as p,ut as m}from"./vendor-chart-BJCvKk8-.js";import{t as h}from"./button-BydTr5nV.js";import{n as g,t as ee}from"./table-BJr3w4hQ.js";import{t as _}from"./card-DjyfNde2.js";import{n as v,t as y}from"./row-D_S4iKgK.js";import{t as b}from"./empty-CdsD8g84.js";import{t as x}from"./Pagination-DZOuYajR.js";import{t as S}from"./skeleton-BwNBivMN.js";import{t as C}from"./switch-CW1TXNSZ.js";import{Ar as w,B as T,Br as E,Cr as D,K as O,Kr as k,O as A,Un as j,Zr as M,jr as N,wr as P}from"./index-C8VZRfvb.js";import{t as F}from"./index.es-DiQg36vB.js";import{t as I}from"./CopyToClipboard-Ds9LKDk2.js";var L=r({name:`ConsoleApplicationList`,components:{Pagination:x,CopyToClipboard:I,ElTable:ee,ElRow:y,ElButton:h,ElCol:v,ElTag:M,ElSkeleton:S,ElSwitch:C,ElEmpty:b,ElTableColumn:g,ElCard:_,FontAwesomeIcon:F},data(){return{credentialType:D,serviceType:P,individualApplications:[],globalApplications:[],individualApplicationsTotal:void 0,globalApplicationsTotal:void 0,loading:!1,buying:!1,limit:10,form:{amount:1},active:{service:void 0,application:void 0}}},computed:{redirect(){return this.$route.query?.redirect},page(){return parseInt(this.$route.query.page?.toString()||`1`)},showGlobalPayment(){return!0}},watch:{page:{handler(){this.onFetchData()}}},mounted(){this.onInitializeGlobalApplication(),this.onFetchData()},methods:{rowCanPay(e){return E()?(e?.packages||[]).some(e=>e?.metadata?.apple_product_id):!0},updateAllowConsumeGlobal(e,t){!e||!e.id||j.updateAllConsumeGlobal(e.id,{...e,allow_consume_global:!!t}).then(()=>{k.success(this.$t(`application.message.updateSuccessfully`).toString())}).catch(()=>{k.error(this.$t(`application.message.updateFailed`).toString())})},onGoUsage(e){this.$router.push({name:O,query:{application_id:e.id,type:e?.service?.type}})},onBuyMore(e){e?.id&&this.$router.push({name:T,params:{id:e.id}})},onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,page:e}})},onFetchApplications(e=w.INDIVIDUAL){return new Promise((t,n)=>{j.getAll({limit:this.limit,...e===w.INDIVIDUAL?{offset:(this.page-1)*this.limit}:{},user_id:this.$store.getters.user.id,ordering:`-created_at`,type:N.USAGE,scope:e}).then(({data:n})=>{e===w.INDIVIDUAL?(this.individualApplications=n.items,this.individualApplicationsTotal=n.count):(this.globalApplications=n.items,this.globalApplicationsTotal=n.count),t(n)}).catch(e=>{k.error(this.$t(`application.message.fetchFailed`).toString()),n(e)})})},onFetchData(){this.loading=!0,Promise.all([this.onFetchApplications(w.INDIVIDUAL),this.onFetchApplications(w.GLOBAL)]).then(()=>{this.loading=!1}).catch(()=>{this.loading=!1})},onInitializeGlobalApplication(){j.create({type:N.USAGE,scope:w.GLOBAL,user_id:this.$store.getters.user.id}).finally(()=>{this.onFetchApplications(w.GLOBAL)})},getRemainingAmount(e){if(e.remaining_amount===void 0||e.remaining_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.remaining_amount?.toFixed(6)} ${t}`},getUsedAmount(e){if(e.used_amount===void 0||e.used_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.used_amount?.toFixed(6)} ${t}`}}}),R={class:`title`},z={key:1,class:`summary-card`},B={class:`icon-wrapper`},V={class:`label`},H={class:`value`},U={class:`description`},W={key:1,class:`flex flex-row justify-between items-center gap-3`},G={class:`summary-card min-w-0 flex-1`},K={class:`flex justify-start items-center gap-2 mb-2 w-full`},q={class:`icon-wrapper !mb-0`},J={class:`text-[var(--el-text-color-regular)] text-[14px] truncate`},te={class:`label`},Y={class:`value`},X={class:`description`},Z={class:`flex flex-col items-end gap-2 shrink-0`},Q={class:`copy`},ne={key:0,class:`expired-at`},re={class:`flex flex-wrap items-center justify-end gap-1`},ie={class:`application-cards block sm:hidden`},ae={class:`flex items-center gap-2 flex-wrap`},oe={class:`application-card__name`},se={class:`application-card__id`},ce={class:`truncate`},le={class:`application-card__row`},ue={class:`label`},de={class:`value`},fe={key:0,class:`application-card__row`},pe={class:`label`},$={class:`value`},me={key:1,class:`application-card__row`},he={class:`label`},ge={class:`flex items-center justify-end gap-2 mt-3`},_e={class:`pagination`};function ve(r,h,g,ee,_,v){let y=p(`el-col`),b=p(`el-row`),x=p(`el-skeleton`),S=p(`font-awesome-icon`),C=p(`el-card`),w=p(`copy-to-clipboard`),T=p(`el-button`),E=p(`el-table-column`),D=p(`el-tag`),O=p(`el-switch`),k=p(`el-table`),A=p(`el-empty`),j=p(`pagination`),M=f(`loading`);return l(),a(b,{class:`application-list`},{default:m(()=>[o(y,{span:24},{default:m(()=>[o(b,null,{default:m(()=>[o(y,{span:24},{default:m(()=>[n(`h2`,R,c(r.$t(`common.title.allApplications`)),1)]),_:1})]),_:1}),o(b,{gutter:15,class:`mb-3`},{default:m(()=>[o(y,{md:12,xs:24},{default:m(()=>[o(C,{shadow:`hover`,class:`relative min-h-[180px] mb-2`,"body-style":{padding:`18px 20px`}},{default:m(()=>[r.loading?(l(),a(x,{key:0})):(l(),t(`div`,z,[n(`div`,B,[o(S,{icon:`fa-solid fa-cubes-stacked`})]),n(`p`,V,c(r.$t(`application.title.count`)),1),n(`p`,H,c(r.individualApplicationsTotal),1),n(`p`,U,c(r.$t(`application.message.countDescription`)),1)]))]),_:1})]),_:1}),r.showGlobalPayment&&r.globalApplications?.length>0?(l(),a(y,{key:0,md:12,xs:24},{default:m(()=>[o(C,{shadow:`hover`,class:`relative min-h-[180px] mb-2`,"body-style":{padding:`18px 20px`}},{default:m(()=>[r.loading?(l(),a(x,{key:0})):(l(),t(`div`,W,[n(`div`,G,[n(`div`,K,[n(`div`,q,[o(S,{icon:`fa-solid fa-wallet`})]),n(`span`,J,[i(c(r.$t(`application.field.id`))+`: `+c(r.globalApplications?.[0]?.id)+` `,1),r.globalApplications?.[0]?.id?(l(),a(w,{key:0,content:r.globalApplications?.[0]?.id,class:`inline-block`},null,8,[`content`])):d(``,!0)])]),n(`p`,te,c(r.$t(`application.title.globalBalance`)),1),n(`p`,Y,c(r.globalApplications?.[0]?.remaining_amount?.toFixed(6)||`0.000000`)+` `+c(r.$t(`service.unit.credits`)),1),n(`p`,X,c(r.$t(`application.message.globalBalanceDescription`)),1)]),n(`div`,Z,[o(T,{class:`!m-0 !px-2`,size:`small`,round:``,onClick:h[0]||=e=>r.onGoUsage(r.globalApplications?.[0])},{default:m(()=>[o(S,{icon:`fa-solid fa-chart-line`,class:`mr-1 text-[12px]`}),i(` `+c(r.$t(`application.button.usage`)),1)]),_:1}),r.showGlobalPayment?(l(),a(T,{key:0,class:`!m-0 !px-2`,type:`primary`,round:``,size:`small`,onClick:h[1]||=e=>r.onBuyMore(r.globalApplications?.[0])},{default:m(()=>[o(S,{icon:`fa-solid fa-coins`,class:`mr-1 text-[12px]`}),i(` `+c(r.$t(`application.button.buyMore`)),1)]),_:1})):d(``,!0)])]))]),_:1})]),_:1})):d(``,!0)]),_:1}),o(b,null,{default:m(()=>[o(y,{span:24},{default:m(()=>[o(C,{shadow:`hover`,class:`applications-table-card hidden sm:block`},{default:m(()=>[u((l(),a(k,{data:r.individualApplications,stripe:``,class:`applications-table !min-h-[calc(100vh-420px)]`,"table-layout":`fixed`,"empty-text":r.$t(`common.message.noData`)},{default:m(()=>[o(E,{prop:`id`,label:r.$t(`application.field.id`),width:`200px`,"class-name":`text-center`},{default:m(e=>[n(`span`,null,c(e.row.id),1),n(`span`,Q,[o(w,{content:e?.row?.id,class:`inline-block`},null,8,[`content`])])]),_:1},8,[`label`]),o(E,{label:r.$t(`application.field.type`),width:`90px`,"class-name":`hidden sm:table-cell`,"label-class-name":`hidden sm:table-cell`},{default:m(e=>[e.row?.type===`Period`?(l(),a(D,{key:0,type:`success`,effect:`dark`,round:``},{default:m(()=>[i(c(r.$t(`application.type.period`)),1)]),_:1})):e.row?.type===`Usage`?(l(),a(D,{key:1,effect:`dark`,round:``},{default:m(()=>[i(c(r.$t(`application.type.usage`)),1)]),_:1})):d(``,!0)]),_:1},8,[`label`]),o(E,{label:r.$t(`application.field.name`),width:`180px`},{default:m(e=>[n(`span`,null,c(e.row?.service?.title),1),e.row?.role===`grantee`?(l(),a(D,{key:0,type:`info`,size:`small`,round:``,class:`ml-2`},{default:m(()=>[i(c(r.$t(`application.badge.shared`)),1)]),_:1})):d(``,!0)]),_:1},8,[`label`]),o(E,{prop:`remaining_amount`,label:r.$t(`application.field.remainingAmount`),width:`150px`,"class-name":`text-center`},{default:m(e=>[n(`span`,null,c(r.getRemainingAmount(e.row)),1)]),_:1},8,[`label`]),o(E,{prop:`used_amount`,label:r.$t(`application.field.usedAmount`),width:`150px`,"class-name":`hidden sm:table-cell text-center`,"label-class-name":`hidden sm:table-cell`},{default:m(e=>[n(`span`,null,c(r.getUsedAmount(e.row)),1)]),_:1},8,[`label`]),o(E,{prop:`allow_consume_global`,label:r.$t(`application.field.allowConsumeGlobal`),width:`120px`,"class-name":`hidden sm:table-cell text-center`,"label-class-name":`hidden sm:table-cell`},{default:m(e=>[e.row.service?.type===r.serviceType.API?(l(),a(O,{key:0,modelValue:e.row.allow_consume_global,"onUpdate:modelValue":t=>e.row.allow_consume_global=t,"active-value":!0,"inactive-value":!1,onChange:t=>r.updateAllowConsumeGlobal(e.row,t)},null,8,[`modelValue`,`onUpdate:modelValue`,`onChange`])):d(``,!0)]),_:1},8,[`label`]),o(E,{label:r.$t(`application.field.expiredAt`),width:`180px`,"class-name":`hidden sm:table-cell`,"label-class-name":`hidden sm:table-cell`},{default:m(e=>[e.row.expired_at?(l(),t(`span`,ne,c(r.$dayjs.format(e.row.expired_at)),1)):d(``,!0)]),_:1},8,[`label`]),o(E,{fixed:`right`,width:`200px`},{default:m(e=>[n(`div`,re,[o(T,{class:`!m-0 !px-2`,size:`small`,round:``,onClick:t=>r.onGoUsage(e?.row)},{default:m(()=>[o(S,{icon:`fa-solid fa-chart-line`,class:`mr-1 text-[12px]`}),i(` `+c(r.$t(`application.button.usage`)),1)]),_:1},8,[`onClick`]),r.rowCanPay(e?.row)?(l(),a(T,{key:0,class:`!m-0 !px-2`,type:`primary`,round:``,size:`small`,onClick:t=>r.onBuyMore(e?.row)},{default:m(()=>[o(S,{icon:`fa-solid fa-coins`,class:`mr-1 text-[12px]`}),i(` `+c(r.$t(`application.button.buyMore`)),1)]),_:1},8,[`onClick`])):d(``,!0)])]),_:1})]),_:1},8,[`data`,`empty-text`])),[[M,r.loading]])]),_:1}),n(`div`,ie,[r.loading?(l(),a(x,{key:0,rows:4,animated:``})):(l(),t(s,{key:1},[r.individualApplications?.length?(l(!0),t(s,{key:1},e(r.individualApplications,e=>(l(),a(C,{key:e.id,shadow:`hover`,class:`application-card mb-2`,"body-style":{padding:`14px 16px`}},{default:m(()=>[n(`div`,ae,[n(`span`,oe,c(e?.service?.title),1),e?.type===`Period`?(l(),a(D,{key:0,type:`success`,effect:`dark`,size:`small`,round:``},{default:m(()=>[i(c(r.$t(`application.type.period`)),1)]),_:1})):e?.type===`Usage`?(l(),a(D,{key:1,effect:`dark`,size:`small`,round:``},{default:m(()=>[i(c(r.$t(`application.type.usage`)),1)]),_:1})):d(``,!0),e?.role===`grantee`?(l(),a(D,{key:2,type:`info`,size:`small`,round:``},{default:m(()=>[i(c(r.$t(`application.badge.shared`)),1)]),_:1})):d(``,!0)]),n(`div`,se,[n(`span`,ce,c(r.$t(`application.field.id`))+`: `+c(e.id),1),o(w,{content:e.id,class:`inline-block shrink-0`},null,8,[`content`])]),n(`div`,le,[n(`span`,ue,c(r.$t(`application.field.remainingAmount`)),1),n(`span`,de,c(r.getRemainingAmount(e)),1)]),e?.expired_at?(l(),t(`div`,fe,[n(`span`,pe,c(r.$t(`application.field.expiredAt`)),1),n(`span`,$,c(r.$dayjs.format(e.expired_at)),1)])):d(``,!0),e.service?.type===r.serviceType.API?(l(),t(`div`,me,[n(`span`,he,c(r.$t(`application.field.allowConsumeGlobal`)),1),o(O,{modelValue:e.allow_consume_global,"onUpdate:modelValue":t=>e.allow_consume_global=t,"active-value":!0,"inactive-value":!1,onChange:t=>r.updateAllowConsumeGlobal(e,t)},null,8,[`modelValue`,`onUpdate:modelValue`,`onChange`])])):d(``,!0),n(`div`,ge,[o(T,{class:`!m-0 !px-3`,size:`small`,round:``,onClick:t=>r.onGoUsage(e)},{default:m(()=>[o(S,{icon:`fa-solid fa-chart-line`,class:`mr-1 text-[12px]`}),i(` `+c(r.$t(`application.button.usage`)),1)]),_:1},8,[`onClick`]),r.rowCanPay(e)?(l(),a(T,{key:0,class:`!m-0 !px-3`,type:`primary`,round:``,size:`small`,onClick:t=>r.onBuyMore(e)},{default:m(()=>[o(S,{icon:`fa-solid fa-coins`,class:`mr-1 text-[12px]`}),i(` `+c(r.$t(`application.button.buyMore`)),1)]),_:1},8,[`onClick`])):d(``,!0)])]),_:2},1024))),128)):(l(),a(A,{key:0,description:r.$t(`common.message.noData`)},null,8,[`description`]))],64))])]),_:1})]),_:1}),o(b,null,{default:m(()=>[o(y,{span:24},{default:m(()=>[n(`div`,_e,[o(j,{"current-page":r.page,"page-size":r.limit,total:r.individualApplicationsTotal,onChange:r.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var ye=A(L,[[`render`,ve],[`__scopeId`,`data-v-b4164ed9`]]);export{ye as default};
|
|
1
|
+
import"./rolldown-runtime--c01j_DQ.js";import{$ as e,A as t,D as n,F as r,N as i,O as a,P as o,S as s,Wt as c,Z as l,dt as u,k as d,nt as f,tt as p,ut as m}from"./vendor-chart-BJCvKk8-.js";import{t as h}from"./button-BydTr5nV.js";import{n as g,t as ee}from"./table-BJr3w4hQ.js";import{t as _}from"./card-DjyfNde2.js";import{n as v,t as y}from"./row-DcQVU8mL.js";import{t as b}from"./empty-CdsD8g84.js";import{t as x}from"./Pagination-D0SC5Oxz.js";import{t as S}from"./skeleton-BwNBivMN.js";import{t as C}from"./switch-DppejUwp.js";import{Ar as w,B as T,Br as E,Cr as D,K as O,Kr as k,O as A,Un as j,Zr as M,jr as N,wr as P}from"./index-Cvj3R8n8.js";import{t as F}from"./index.es-iPEvnXaP.js";import{t as I}from"./CopyToClipboard-BfdNvn25.js";var L=r({name:`ConsoleApplicationList`,components:{Pagination:x,CopyToClipboard:I,ElTable:ee,ElRow:y,ElButton:h,ElCol:v,ElTag:M,ElSkeleton:S,ElSwitch:C,ElEmpty:b,ElTableColumn:g,ElCard:_,FontAwesomeIcon:F},data(){return{credentialType:D,serviceType:P,individualApplications:[],globalApplications:[],individualApplicationsTotal:void 0,globalApplicationsTotal:void 0,loading:!1,buying:!1,limit:10,form:{amount:1},active:{service:void 0,application:void 0}}},computed:{redirect(){return this.$route.query?.redirect},page(){return parseInt(this.$route.query.page?.toString()||`1`)},showGlobalPayment(){return!0}},watch:{page:{handler(){this.onFetchData()}}},mounted(){this.onInitializeGlobalApplication(),this.onFetchData()},methods:{rowCanPay(e){return E()?(e?.packages||[]).some(e=>e?.metadata?.apple_product_id):!0},updateAllowConsumeGlobal(e,t){!e||!e.id||j.updateAllConsumeGlobal(e.id,{...e,allow_consume_global:!!t}).then(()=>{k.success(this.$t(`application.message.updateSuccessfully`).toString())}).catch(()=>{k.error(this.$t(`application.message.updateFailed`).toString())})},onGoUsage(e){this.$router.push({name:O,query:{application_id:e.id,type:e?.service?.type}})},onBuyMore(e){e?.id&&this.$router.push({name:T,params:{id:e.id}})},onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,page:e}})},onFetchApplications(e=w.INDIVIDUAL){return new Promise((t,n)=>{j.getAll({limit:this.limit,...e===w.INDIVIDUAL?{offset:(this.page-1)*this.limit}:{},user_id:this.$store.getters.user.id,ordering:`-created_at`,type:N.USAGE,scope:e}).then(({data:n})=>{e===w.INDIVIDUAL?(this.individualApplications=n.items,this.individualApplicationsTotal=n.count):(this.globalApplications=n.items,this.globalApplicationsTotal=n.count),t(n)}).catch(e=>{k.error(this.$t(`application.message.fetchFailed`).toString()),n(e)})})},onFetchData(){this.loading=!0,Promise.all([this.onFetchApplications(w.INDIVIDUAL),this.onFetchApplications(w.GLOBAL)]).then(()=>{this.loading=!1}).catch(()=>{this.loading=!1})},onInitializeGlobalApplication(){j.create({type:N.USAGE,scope:w.GLOBAL,user_id:this.$store.getters.user.id}).finally(()=>{this.onFetchApplications(w.GLOBAL)})},getRemainingAmount(e){if(e.remaining_amount===void 0||e.remaining_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.remaining_amount?.toFixed(6)} ${t}`},getUsedAmount(e){if(e.used_amount===void 0||e.used_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.used_amount?.toFixed(6)} ${t}`}}}),R={class:`title`},z={key:1,class:`summary-card`},B={class:`icon-wrapper`},V={class:`label`},H={class:`value`},U={class:`description`},W={key:1,class:`flex flex-row justify-between items-center gap-3`},G={class:`summary-card min-w-0 flex-1`},K={class:`flex justify-start items-center gap-2 mb-2 w-full`},q={class:`icon-wrapper !mb-0`},J={class:`text-[var(--el-text-color-regular)] text-[14px] truncate`},te={class:`label`},Y={class:`value`},X={class:`description`},Z={class:`flex flex-col items-end gap-2 shrink-0`},Q={class:`copy`},ne={key:0,class:`expired-at`},re={class:`flex flex-wrap items-center justify-end gap-1`},ie={class:`application-cards block sm:hidden`},ae={class:`flex items-center gap-2 flex-wrap`},oe={class:`application-card__name`},se={class:`application-card__id`},ce={class:`truncate`},le={class:`application-card__row`},ue={class:`label`},de={class:`value`},fe={key:0,class:`application-card__row`},pe={class:`label`},$={class:`value`},me={key:1,class:`application-card__row`},he={class:`label`},ge={class:`flex items-center justify-end gap-2 mt-3`},_e={class:`pagination`};function ve(r,h,g,ee,_,v){let y=p(`el-col`),b=p(`el-row`),x=p(`el-skeleton`),S=p(`font-awesome-icon`),C=p(`el-card`),w=p(`copy-to-clipboard`),T=p(`el-button`),E=p(`el-table-column`),D=p(`el-tag`),O=p(`el-switch`),k=p(`el-table`),A=p(`el-empty`),j=p(`pagination`),M=f(`loading`);return l(),a(b,{class:`application-list`},{default:m(()=>[o(y,{span:24},{default:m(()=>[o(b,null,{default:m(()=>[o(y,{span:24},{default:m(()=>[n(`h2`,R,c(r.$t(`common.title.allApplications`)),1)]),_:1})]),_:1}),o(b,{gutter:15,class:`mb-3`},{default:m(()=>[o(y,{md:12,xs:24},{default:m(()=>[o(C,{shadow:`hover`,class:`relative min-h-[180px] mb-2`,"body-style":{padding:`18px 20px`}},{default:m(()=>[r.loading?(l(),a(x,{key:0})):(l(),t(`div`,z,[n(`div`,B,[o(S,{icon:`fa-solid fa-cubes-stacked`})]),n(`p`,V,c(r.$t(`application.title.count`)),1),n(`p`,H,c(r.individualApplicationsTotal),1),n(`p`,U,c(r.$t(`application.message.countDescription`)),1)]))]),_:1})]),_:1}),r.showGlobalPayment&&r.globalApplications?.length>0?(l(),a(y,{key:0,md:12,xs:24},{default:m(()=>[o(C,{shadow:`hover`,class:`relative min-h-[180px] mb-2`,"body-style":{padding:`18px 20px`}},{default:m(()=>[r.loading?(l(),a(x,{key:0})):(l(),t(`div`,W,[n(`div`,G,[n(`div`,K,[n(`div`,q,[o(S,{icon:`fa-solid fa-wallet`})]),n(`span`,J,[i(c(r.$t(`application.field.id`))+`: `+c(r.globalApplications?.[0]?.id)+` `,1),r.globalApplications?.[0]?.id?(l(),a(w,{key:0,content:r.globalApplications?.[0]?.id,class:`inline-block`},null,8,[`content`])):d(``,!0)])]),n(`p`,te,c(r.$t(`application.title.globalBalance`)),1),n(`p`,Y,c(r.globalApplications?.[0]?.remaining_amount?.toFixed(6)||`0.000000`)+` `+c(r.$t(`service.unit.credits`)),1),n(`p`,X,c(r.$t(`application.message.globalBalanceDescription`)),1)]),n(`div`,Z,[o(T,{class:`!m-0 !px-2`,size:`small`,round:``,onClick:h[0]||=e=>r.onGoUsage(r.globalApplications?.[0])},{default:m(()=>[o(S,{icon:`fa-solid fa-chart-line`,class:`mr-1 text-[12px]`}),i(` `+c(r.$t(`application.button.usage`)),1)]),_:1}),r.showGlobalPayment?(l(),a(T,{key:0,class:`!m-0 !px-2`,type:`primary`,round:``,size:`small`,onClick:h[1]||=e=>r.onBuyMore(r.globalApplications?.[0])},{default:m(()=>[o(S,{icon:`fa-solid fa-coins`,class:`mr-1 text-[12px]`}),i(` `+c(r.$t(`application.button.buyMore`)),1)]),_:1})):d(``,!0)])]))]),_:1})]),_:1})):d(``,!0)]),_:1}),o(b,null,{default:m(()=>[o(y,{span:24},{default:m(()=>[o(C,{shadow:`hover`,class:`applications-table-card hidden sm:block`},{default:m(()=>[u((l(),a(k,{data:r.individualApplications,stripe:``,class:`applications-table !min-h-[calc(100vh-420px)]`,"table-layout":`fixed`,"empty-text":r.$t(`common.message.noData`)},{default:m(()=>[o(E,{prop:`id`,label:r.$t(`application.field.id`),width:`200px`,"class-name":`text-center`},{default:m(e=>[n(`span`,null,c(e.row.id),1),n(`span`,Q,[o(w,{content:e?.row?.id,class:`inline-block`},null,8,[`content`])])]),_:1},8,[`label`]),o(E,{label:r.$t(`application.field.type`),width:`90px`,"class-name":`hidden sm:table-cell`,"label-class-name":`hidden sm:table-cell`},{default:m(e=>[e.row?.type===`Period`?(l(),a(D,{key:0,type:`success`,effect:`dark`,round:``},{default:m(()=>[i(c(r.$t(`application.type.period`)),1)]),_:1})):e.row?.type===`Usage`?(l(),a(D,{key:1,effect:`dark`,round:``},{default:m(()=>[i(c(r.$t(`application.type.usage`)),1)]),_:1})):d(``,!0)]),_:1},8,[`label`]),o(E,{label:r.$t(`application.field.name`),width:`180px`},{default:m(e=>[n(`span`,null,c(e.row?.service?.title),1),e.row?.role===`grantee`?(l(),a(D,{key:0,type:`info`,size:`small`,round:``,class:`ml-2`},{default:m(()=>[i(c(r.$t(`application.badge.shared`)),1)]),_:1})):d(``,!0)]),_:1},8,[`label`]),o(E,{prop:`remaining_amount`,label:r.$t(`application.field.remainingAmount`),width:`150px`,"class-name":`text-center`},{default:m(e=>[n(`span`,null,c(r.getRemainingAmount(e.row)),1)]),_:1},8,[`label`]),o(E,{prop:`used_amount`,label:r.$t(`application.field.usedAmount`),width:`150px`,"class-name":`hidden sm:table-cell text-center`,"label-class-name":`hidden sm:table-cell`},{default:m(e=>[n(`span`,null,c(r.getUsedAmount(e.row)),1)]),_:1},8,[`label`]),o(E,{prop:`allow_consume_global`,label:r.$t(`application.field.allowConsumeGlobal`),width:`120px`,"class-name":`hidden sm:table-cell text-center`,"label-class-name":`hidden sm:table-cell`},{default:m(e=>[e.row.service?.type===r.serviceType.API?(l(),a(O,{key:0,modelValue:e.row.allow_consume_global,"onUpdate:modelValue":t=>e.row.allow_consume_global=t,"active-value":!0,"inactive-value":!1,onChange:t=>r.updateAllowConsumeGlobal(e.row,t)},null,8,[`modelValue`,`onUpdate:modelValue`,`onChange`])):d(``,!0)]),_:1},8,[`label`]),o(E,{label:r.$t(`application.field.expiredAt`),width:`180px`,"class-name":`hidden sm:table-cell`,"label-class-name":`hidden sm:table-cell`},{default:m(e=>[e.row.expired_at?(l(),t(`span`,ne,c(r.$dayjs.format(e.row.expired_at)),1)):d(``,!0)]),_:1},8,[`label`]),o(E,{fixed:`right`,width:`200px`},{default:m(e=>[n(`div`,re,[o(T,{class:`!m-0 !px-2`,size:`small`,round:``,onClick:t=>r.onGoUsage(e?.row)},{default:m(()=>[o(S,{icon:`fa-solid fa-chart-line`,class:`mr-1 text-[12px]`}),i(` `+c(r.$t(`application.button.usage`)),1)]),_:1},8,[`onClick`]),r.rowCanPay(e?.row)?(l(),a(T,{key:0,class:`!m-0 !px-2`,type:`primary`,round:``,size:`small`,onClick:t=>r.onBuyMore(e?.row)},{default:m(()=>[o(S,{icon:`fa-solid fa-coins`,class:`mr-1 text-[12px]`}),i(` `+c(r.$t(`application.button.buyMore`)),1)]),_:1},8,[`onClick`])):d(``,!0)])]),_:1})]),_:1},8,[`data`,`empty-text`])),[[M,r.loading]])]),_:1}),n(`div`,ie,[r.loading?(l(),a(x,{key:0,rows:4,animated:``})):(l(),t(s,{key:1},[r.individualApplications?.length?(l(!0),t(s,{key:1},e(r.individualApplications,e=>(l(),a(C,{key:e.id,shadow:`hover`,class:`application-card mb-2`,"body-style":{padding:`14px 16px`}},{default:m(()=>[n(`div`,ae,[n(`span`,oe,c(e?.service?.title),1),e?.type===`Period`?(l(),a(D,{key:0,type:`success`,effect:`dark`,size:`small`,round:``},{default:m(()=>[i(c(r.$t(`application.type.period`)),1)]),_:1})):e?.type===`Usage`?(l(),a(D,{key:1,effect:`dark`,size:`small`,round:``},{default:m(()=>[i(c(r.$t(`application.type.usage`)),1)]),_:1})):d(``,!0),e?.role===`grantee`?(l(),a(D,{key:2,type:`info`,size:`small`,round:``},{default:m(()=>[i(c(r.$t(`application.badge.shared`)),1)]),_:1})):d(``,!0)]),n(`div`,se,[n(`span`,ce,c(r.$t(`application.field.id`))+`: `+c(e.id),1),o(w,{content:e.id,class:`inline-block shrink-0`},null,8,[`content`])]),n(`div`,le,[n(`span`,ue,c(r.$t(`application.field.remainingAmount`)),1),n(`span`,de,c(r.getRemainingAmount(e)),1)]),e?.expired_at?(l(),t(`div`,fe,[n(`span`,pe,c(r.$t(`application.field.expiredAt`)),1),n(`span`,$,c(r.$dayjs.format(e.expired_at)),1)])):d(``,!0),e.service?.type===r.serviceType.API?(l(),t(`div`,me,[n(`span`,he,c(r.$t(`application.field.allowConsumeGlobal`)),1),o(O,{modelValue:e.allow_consume_global,"onUpdate:modelValue":t=>e.allow_consume_global=t,"active-value":!0,"inactive-value":!1,onChange:t=>r.updateAllowConsumeGlobal(e,t)},null,8,[`modelValue`,`onUpdate:modelValue`,`onChange`])])):d(``,!0),n(`div`,ge,[o(T,{class:`!m-0 !px-3`,size:`small`,round:``,onClick:t=>r.onGoUsage(e)},{default:m(()=>[o(S,{icon:`fa-solid fa-chart-line`,class:`mr-1 text-[12px]`}),i(` `+c(r.$t(`application.button.usage`)),1)]),_:1},8,[`onClick`]),r.rowCanPay(e)?(l(),a(T,{key:0,class:`!m-0 !px-3`,type:`primary`,round:``,size:`small`,onClick:t=>r.onBuyMore(e)},{default:m(()=>[o(S,{icon:`fa-solid fa-coins`,class:`mr-1 text-[12px]`}),i(` `+c(r.$t(`application.button.buyMore`)),1)]),_:1},8,[`onClick`])):d(``,!0)])]),_:2},1024))),128)):(l(),a(A,{key:0,description:r.$t(`common.message.noData`)},null,8,[`description`]))],64))])]),_:1})]),_:1}),o(b,null,{default:m(()=>[o(y,{span:24},{default:m(()=>[n(`div`,_e,[o(j,{"current-page":r.page,"page-size":r.limit,total:r.individualApplicationsTotal,onChange:r.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var ye=A(L,[[`render`,ve],[`__scopeId`,`data-v-b4164ed9`]]);export{ye as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{$ as e,A as t,D as n,F as r,N as i,O as a,P as o,S as s,Wt as c,Z as l,a as u,c as d,dt as f,i as p,k as m,n as ee,nt as h,o as g,r as _,s as v,t as y,tt as b,ut as x,v as S}from"./vendor-chart-BJCvKk8-.js";import{t as C}from"./button-BydTr5nV.js";import{r as w,t as T}from"./select-C13m6drR.js";import{n as E,t as D}from"./table-BJr3w4hQ.js";import{n as O,t as k}from"./tabs-BuxkFoW2.js";import{t as A}from"./card-DjyfNde2.js";import{n as j,r as M}from"./radio-3Hz7h3DR.js";import{t as N}from"./date-picker-CWU_QC7e.js";import{n as P,t as F}from"./row-D_S4iKgK.js";import{t as I}from"./Pagination-DZOuYajR.js";import{n as L,t as R}from"./skeleton-BwNBivMN.js";import{Cr as z,Ln as B,O as V,Rn as H,Un as U,Yr as W,Zr as G,jr as K,wr as q,zn as J}from"./index-C8VZRfvb.js";import{t as Y}from"./index.es-DiQg36vB.js";import{t as X}from"./CopyToClipboard-Ds9LKDk2.js";p.register(_,u,ee,v,d,g);var Z=r({name:`ConsoleUsageList`,components:{Pagination:I,ElTag:G,ElDatePicker:N,ElTable:D,ElSelect:w,ElOption:T,CopyToClipboard:X,ElRow:F,ElCol:P,ElTableColumn:E,ElCard:A,ElRadioButton:j,ElRadioGroup:M,ElSkeleton:R,ElSkeletonItem:L,ElDialog:W,ElTabs:O,ElTabPane:k,ElButton:C,FontAwesomeIcon:Y,BarChart:y},data(){return{applicationIds:this.$route.query.application_id?.toString()?this.$route.query.application_id?.toString().split(`,`):[],apiIds:this.$route.query.api_id?.toString()?this.$route.query.api_id?.toString().split(`,`):[],applications:[],apis:[],apisLoading:!1,credentialType:z,serviceType:q,apiUsages:[],proxyUsages:[],createdAtRange:(()=>{let e=this.$route.query.created_at_to?.toString(),t=this.$route.query.created_at_from?.toString();if(t&&e)return[new Date(t),new Date(e)];let n=new Date,r=new Date;return r.setDate(1),r.setHours(0,0,0,0),[r,n]})(),shortcuts:[{text:this.$t(`usage.shortcuts.thisMonth`),value:()=>{let e=new Date,t=new Date;return t.setDate(1),t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.today`),value:()=>{let e=new Date,t=new Date;return t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.last1Day`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-1),[t,e]}},{text:this.$t(`usage.shortcuts.last3Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-3),[t,e]}},{text:this.$t(`usage.shortcuts.last7Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-7),[t,e]}},{text:this.$t(`usage.shortcuts.last1Month`),value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-1),[t,e]}}],type:this.$route.query.type?.toString()||q.API,loading:!1,total:void 0,limit:15,totalUsed:0,barChartLabels:[],barChartSeries:[],aggLoading:!1,detailDialogVisible:!1,detailRow:null,detailActiveTab:`request`,detailLoading:!1,exporting:!1,statusCodeFilter:this.$route.query.status_code?.toString()||``,statusCodeOptions:[],statusCodeOptionsLoading:!1}},computed:{redirect(){return this.$route.query?.redirect},page(){return parseInt(this.$route.query.page?.toString()||`1`)},totalUsedString(){return`${(this.totalUsed||0).toFixed(2)}`},barChartData(){return{labels:this.barChartLabels,datasets:this.barChartSeries.map(e=>({label:e.label,data:e.data,backgroundColor:e.color}))}},barChartOptions(){return{responsive:!0,plugins:{legend:{position:`top`,onClick:(e,t,n)=>{let r=n?.chart;if(!r||t?.datasetIndex===void 0)return;let i=t.datasetIndex,a=r.data?.datasets||[];a.some((e,t)=>t!==i&&r.isDatasetVisible(t))?a.forEach((e,t)=>r.setDatasetVisibility(t,t===i)):a.forEach((e,t)=>r.setDatasetVisibility(t,!0)),r.update()}},title:{display:!0,text:this.$t(`usage.title.usageTrend`)}},scales:{x:{stacked:!0},y:{stacked:!0,beginAtZero:!0}}}}},watch:{page:{handler(){this.onFetchUsages()}},type:{handler(){this.applicationIds=[],this.apiIds=[],this.onApplicationsChange(this.applicationIds),this.onFetchApplications(),this.onFetchApis(),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions()}}},mounted(){this.onFetchApplications(),this.onFetchApis(),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions()},methods:{async onFetchUsages(){this.type===q.API?this.onFetchApiUsages():this.type===q.Proxy&&this.onFetchProxyUsages()},async onApiChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,api_id:e}}),this.onFetchApiUsages(),this.onFetchAggregate()},async onApisChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,api_id:e&&e.length?e.join(`,`):``}}),this.onFetchApiUsages(),this.onFetchAggregate()},async onTimeRangeChanged(){console.log(`onTimeRangeChanged`,this.createdAtRange),await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,created_at_from:this.createdAtRange?this.$dayjs.format(this.createdAtRange[0].toString(),`YYYY-MM-DDTHH:mm:ss.SSSSSSZ`):``,created_at_to:this.createdAtRange?this.$dayjs.format(this.createdAtRange[1].toString(),`YYYY-MM-DDTHH:mm:ss.SSSSSSZ`):``}}),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions()},async onApplicationChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,application_id:e}}),this.onFetchUsages(),this.onFetchAggregate()},async onApplicationsChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,application_id:e&&e.length?e.join(`,`):``}}),this.onFetchUsages(),this.onFetchAggregate()},onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,page:e}})},getRemainingAmount(e){if(e.remaining_amount===void 0||e.remaining_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.remaining_amount?.toFixed(6)} ${t}`},getUsedAmount(e){if(e.used_amount===void 0||e.used_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.used_amount?.toFixed(6)} ${t}`},getDeductedAmount(e){if(e?.deducted_amount===void 0||e?.deducted_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.deducted_amount?.toFixed(6)} ${t}`},getOriginalAmount(e){if(e?.original_amount===void 0||e?.original_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.original_amount?.toFixed(6)} ${t}`},onStatusCodeChange(e){let t={...this.$route.query},n=(e||``).trim();n?t.status_code=n:delete t.status_code,delete t.status_code_filter,this.$router.push({name:this.$route.name?.toString(),query:t}),this.onFetchUsages(),this.onFetchAggregate()},async onFetchStatusCodeOptions(){this.statusCodeOptionsLoading=!0;try{let{data:e}=await H.getStatusCodes({user_id:this.$store.getters.user.id,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{}});this.statusCodeOptions=(e?.items||[]).slice().sort((e,t)=>e-t)}catch{this.statusCodeOptions=[]}finally{this.statusCodeOptionsLoading=!1}},formatElapsed(e){return e==null||Number.isNaN(e)?`-`:e<1?`${Math.round(e*1e3)} ms`:`${e.toFixed(2)} s`},getSimpleMetadata(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))n===`request`||n===`response`||typeof r==`object`&&r||(t[n]=r);return t},onShowDetail(e){this.detailRow={...e,metadata:void 0},this.detailActiveTab=`request`,this.detailDialogVisible=!0,this.detailLoading=!0,e.id&&H.get(e.id).then(e=>{this.detailRow=e.data}).finally(()=>{this.detailLoading=!1})},formatJson(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}},onFetchApplications(){U.getAll({limit:100,offset:0,user_id:this.$store.getters.user.id,ordering:`-created_at`,type:K.USAGE}).then(({data:e})=>{this.applications=e.items.filter(e=>e?.service?.type===this.type)}).catch(()=>{})},onFetchApis(){this.apisLoading=!0,B.getAll({limit:100,offset:0,ordering:`-created_at`}).then(({data:e})=>{this.apis=e.items}).catch(()=>{}).finally(()=>{this.apisLoading=!1})},onFetchApiUsages(){console.log(`onFetchApiUsages`,this.createdAtRange),this.loading=!0,H.getAll({limit:this.limit,offset:(this.page-1)*this.limit,user_id:this.$store.getters.user.id,ordering:`-created_at`,...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{},...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.statusCodeFilter?{status_code:this.statusCodeFilter}:{}}).then(({data:e})=>{this.apiUsages=e.items,this.loading=!1,this.total=e.count}).catch(()=>{this.loading=!1})},onFetchProxyUsages(){this.loading=!0,J.getAll({limit:this.limit,offset:(this.page-1)*this.limit,user_id:this.$store.getters.user.id,ordering:`-created_at`,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{}}).then(({data:e})=>{this.proxyUsages=e.items,this.loading=!1,this.total=e.count}).catch(()=>{this.loading=!1})},onExport(){this.exporting=!0,H.exportCsv({user_id:this.$store.getters.user.id,...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{},...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.statusCodeFilter?{status_code:this.statusCodeFilter}:{}}).then(({data:e})=>{let t=window.URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`usages.csv`,n.click(),window.URL.revokeObjectURL(t)}).catch(()=>{}).finally(()=>{this.exporting=!1})},async onFetchAggregate(){if(this.aggLoading=!0,this.type!==this.serviceType.API)return;let e={user_id:this.$store.getters.user.id,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{}};try{let{data:t}=await H.getAggregate(e);this.totalUsed=t.total||0;let n=Array.from(new Set((t.items||[]).map(e=>e.date))).sort(),r=Array.from(new Set((t.items||[]).map(e=>e.api_id))),i=e=>`hsl(${e*57%360}, 70%, 60%)`,a=r.map((e,r)=>{let a=t.apis?.[e]?.title||e,o={};return(t.items||[]).filter(t=>t.api_id===e).forEach(e=>{o[e.date]=e.amount||0}),{key:e,label:a,data:n.map(e=>o[e]||0),color:i(r)}});this.barChartLabels=n,this.barChartSeries=a}finally{this.aggLoading=!1}}}}),Q={class:`text-[26px] font-bold mb-5 text-[var(--el-text-color-primary)]`},$={class:`inline-block w-9`},te={class:`inline-block`},ne={key:1,class:`summary-card`},re={class:`icon-wrapper`},ie={class:`text-left`},ae={class:`description`},oe={class:`value`},se={class:`chart-wrapper`},ce={key:0},le={key:1},ue={class:`flex flex-wrap gap-2`},de={class:`key`},fe={key:0,class:`cursor-pointer`},pe={class:`created-at`},me={class:`created-at`},he={key:1,class:`detail-json`},ge={key:2,class:`text-gray-400`},_e={key:1,class:`detail-json`},ve={key:2,class:`text-gray-400`},ye={class:`float-right`};function be(r,u,d,p,ee,g){let _=b(`el-col`),v=b(`el-row`),y=b(`el-radio-button`),C=b(`el-radio-group`),w=b(`el-option`),T=b(`el-select`),E=b(`el-skeleton-item`),D=b(`el-skeleton`),O=b(`el-date-picker`),k=b(`font-awesome-icon`),A=b(`el-button`),j=b(`el-card`),M=b(`bar-chart`),N=b(`el-table-column`),P=b(`el-tag`),F=b(`copy-to-clipboard`),I=b(`el-table`),L=b(`el-tab-pane`),R=b(`el-tabs`),z=b(`el-dialog`),B=b(`pagination`),V=h(`loading`);return l(),a(v,null,{default:x(()=>[o(_,{span:24},{default:x(()=>[o(v,null,{default:x(()=>[o(_,{span:24},{default:x(()=>[n(`h2`,Q,c(r.$t(`common.title.allUsages`)),1)]),_:1})]),_:1}),o(v,null,{default:x(()=>[o(_,{md:4,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[n(`span`,null,c(r.$t(`application.field.type`)),1),o(C,{modelValue:r.type,"onUpdate:modelValue":u[0]||=e=>r.type=e},{default:x(()=>[o(y,{value:r.serviceType.API,label:r.$t(`application.field.api`)},null,8,[`value`,`label`]),o(y,{value:r.serviceType.Proxy,label:r.$t(`application.field.proxy`)},null,8,[`value`,`label`])]),_:1},8,[`modelValue`])]),_:1}),f(o(_,{md:6,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[n(`span`,$,c(r.$t(`usage.field.application`)),1),o(T,{modelValue:r.applicationIds,"onUpdate:modelValue":u[1]||=e=>r.applicationIds=e,placeholder:r.$t(`usage.field.application`),clearable:``,multiple:``,"collapse-tags":``,"collapse-tags-tooltip":``,class:`w-full`,onChange:r.onApplicationsChange},{default:x(()=>[(l(!0),t(s,null,e(r.applications,e=>(l(),a(w,{key:e.id,label:e.service?.title,value:e?.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`])]),_:1},512),[[S,!1]]),r.type===r.serviceType.API?(l(),a(_,{key:0,md:6,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[n(`span`,te,c(r.$t(`usage.field.api`)),1),r.apisLoading?(l(),a(D,{key:0,animated:``,class:`w-full`},{template:x(()=>[o(E,{variant:`rect`,style:{height:`32px`,"border-radius":`4px`}})]),_:1})):(l(),a(T,{key:1,modelValue:r.apiIds,"onUpdate:modelValue":u[2]||=e=>r.apiIds=e,placeholder:r.$t(`usage.field.api`),clearable:``,filterable:``,multiple:``,"collapse-tags":``,"collapse-tags-tooltip":``,class:`w-full`,onChange:r.onApisChange},{default:x(()=>[(l(!0),t(s,null,e(r.apis,e=>(l(),a(w,{key:e?.id,label:e?.title,value:e?.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`]))]),_:1})):m(``,!0),r.type===r.serviceType.API?(l(),a(_,{key:1,md:8,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[o(O,{modelValue:r.createdAtRange,"onUpdate:modelValue":u[3]||=e=>r.createdAtRange=e,type:`datetimerange`,class:`w-full`,shortcuts:r.shortcuts,"range-separator":r.$t(`usage.placeholder.to`),"start-placeholder":r.$t(`usage.placeholder.startDate`),"end-placeholder":r.$t(`usage.placeholder.endDate`),onChange:r.onTimeRangeChanged},null,8,[`modelValue`,`shortcuts`,`range-separator`,`start-placeholder`,`end-placeholder`,`onChange`])]),_:1})):m(``,!0),r.type===r.serviceType.API?(l(),a(_,{key:2,md:3,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[o(T,{modelValue:r.statusCodeFilter,"onUpdate:modelValue":u[4]||=e=>r.statusCodeFilter=e,placeholder:r.$t(`usage.option.statusCodeAll`),class:`w-full`,clearable:``,filterable:``,"allow-create":``,"default-first-option":``,loading:r.statusCodeOptionsLoading,onChange:r.onStatusCodeChange},{default:x(()=>[(l(!0),t(s,null,e(r.statusCodeOptions,e=>(l(),a(w,{key:e,label:String(e),value:String(e)},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`loading`,`onChange`])]),_:1})):m(``,!0),r.type===r.serviceType.API?(l(),a(_,{key:3,md:3,xs:24,class:`mb-5 flex px-2 gap-2 items-center justify-end`},{default:x(()=>[o(A,{type:`primary`,plain:``,loading:r.exporting,class:`w-full whitespace-nowrap`,onClick:r.onExport},{default:x(()=>[o(k,{icon:`fa-solid fa-file-export`,class:`mr-1`}),i(` `+c(r.$t(`usage.button.export`)),1)]),_:1},8,[`loading`,`onClick`])]),_:1})):m(``,!0)]),_:1}),o(v,null,{default:x(()=>[o(_,{span:24},{default:x(()=>[r.type===r.serviceType.API?(l(),a(v,{key:0,gutter:24,class:`mb-5`},{default:x(()=>[o(_,{md:6,xs:24},{default:x(()=>[o(j,{shadow:`hover`,class:`h-full`},{default:x(()=>[r.aggLoading?(l(),a(D,{key:0})):(l(),t(`div`,ne,[n(`div`,re,[o(k,{icon:`fa-solid fa-cubes`,class:`icon`})]),n(`div`,ie,[n(`p`,ae,c(r.$t(`usage.title.totalUsed`)),1),n(`p`,oe,c(r.totalUsedString),1)])]))]),_:1})]),_:1}),o(_,{md:18,xs:24},{default:x(()=>[o(j,{shadow:`hover`,class:`h-full`},{default:x(()=>[n(`div`,se,[r.aggLoading?(l(),a(D,{key:0,class:`w-full`})):(l(),a(M,{key:1,data:r.barChartData,options:r.barChartOptions,class:`chart`},null,8,[`data`,`options`]))])]),_:1})]),_:1})]),_:1})):m(``,!0),o(j,{shadow:`hover`},{default:x(()=>[r.type===r.serviceType.API?f((l(),a(I,{key:0,data:r.apiUsages,stripe:``,"table-layout":`fixed`,"empty-text":r.$t(`common.message.noData`),class:`min-h-[calc(100vh-350px)] mb-5`},{default:x(()=>[o(N,{label:r.$t(`application.field.name`),width:`160px`},{default:x(e=>[n(`span`,null,c(e.row?.api?.title),1)]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.statusCode`),width:`120px`},{default:x(e=>[n(`span`,null,c(e.row.status_code),1)]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.elapsed`),width:`120px`},{default:x(e=>[n(`span`,null,c(r.formatElapsed(e.row.elapsed)),1)]),_:1},8,[`label`]),o(N,{prop:`deducted_amount`,label:r.$t(`usage.field.deductedAmount`),width:`150px`,"class-name":`text-center`},{default:x(e=>[r.getDeductedAmount(e.row)===r.getOriginalAmount(e.row)?(l(),t(`div`,ce,[n(`span`,null,c(r.getDeductedAmount(e.row)),1)])):(l(),t(`div`,le,[u[7]||=n(`p`,null,null,-1),n(`p`,null,[n(`span`,null,c(r.getDeductedAmount(e.row)),1)]),n(`p`,null,[n(`del`,null,c(r.getOriginalAmount(e.row)),1)])]))]),_:1},8,[`label`]),o(N,{prop:`remaining_amount`,label:r.$t(`usage.field.balanceAfter`),width:`160px`,"class-name":`text-center`},{default:x(e=>[n(`span`,null,c(r.getRemainingAmount(e.row)),1)]),_:1},8,[`label`]),o(N,{prop:`metadata`,label:r.$t(`usage.field.metadata`),width:`260px`,"class-name":`text-center`},{default:x(o=>[n(`div`,ue,[o.row.original_amount>o.row.deducted_amount&&o.row.original_amount>0?(l(),a(P,{key:0,type:`success`,style:{textWrap:`wrap`,height:`fit-content`,lineHeight:`20px`,borderRadius:`10px`}},{default:x(()=>[i(c(((o.row.original_amount-o.row.deducted_amount)*100/o.row.original_amount).toFixed(0)+`% OFF`),1)]),_:2},1024)):m(``,!0),(l(!0),t(s,null,e(r.getSimpleMetadata(o.row.metadata),(e,t)=>(l(),a(P,{key:t,style:{textWrap:`wrap`,height:`fit-content`,lineHeight:`20px`,borderRadius:`10px`}},{default:x(()=>[i(c(t)+`: `+c(e),1)]),_:2},1024))),128))])]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.button.viewDetail`),width:`120px`,"class-name":`text-center`},{default:x(e=>[e.row.id?(l(),a(A,{key:0,type:`primary`,plain:``,size:`small`,class:`!px-2 !py-1 !text-xs !h-auto !min-h-0`,onClick:t=>r.onShowDetail(e.row)},{default:x(()=>[i(c(r.$t(`usage.button.viewDetail`)),1)]),_:1},8,[`onClick`])):m(``,!0)]),_:1},8,[`label`]),o(N,{prop:`trace_id`,label:r.$t(`application.field.traceId`),width:`200px`,"class-name":`text-center`},{default:x(e=>[n(`span`,de,c(e.row.trace_id),1),e.row.trace_id?(l(),t(`span`,fe,[o(F,{content:e.row.trace_id,class:`inline-block`},null,8,[`content`])])):m(``,!0)]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.createdAt`),width:`200px`},{default:x(e=>[n(`span`,pe,c(r.$dayjs.format(e.row.created_at)),1)]),_:1},8,[`label`])]),_:1},8,[`data`,`empty-text`])),[[V,r.loading]]):m(``,!0),r.type===r.serviceType.Proxy?f((l(),a(I,{key:1,data:r.proxyUsages,stripe:``,"table-layout":`fixed`,"empty-text":r.$t(`common.message.noData`),class:`min-h-[calc(100vh-350px)] mb-5`},{default:x(()=>[o(N,{label:r.$t(`application.field.name`),width:`160px`},{default:x(e=>[n(`span`,null,c(e.row?.service?.title),1)]),_:1},8,[`label`]),o(N,{prop:`remaining_amount`,label:r.$t(`usage.field.remainingAmount`),width:`160px`,"class-name":`text-center`},{default:x(e=>[n(`span`,null,c(r.getRemainingAmount(e.row)),1),n(`span`,null,c(r.getOriginalAmount(e.row)),1)]),_:1},8,[`label`]),o(N,{prop:`deducted_amount`,label:r.$t(`usage.field.deductedAmount`),width:`150px`,"class-name":`text-center`},{default:x(e=>[n(`span`,null,c(r.getDeductedAmount(e.row)),1)]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.balanceAfter`),width:`160px`,"class-name":`text-center`},{default:x(e=>[n(`span`,null,c(r.getRemainingAmount(e.row)),1)]),_:1},8,[`label`]),o(N,{prop:`metadata`,label:r.$t(`usage.field.metadata`),width:`200px`,"class-name":`text-center`},{default:x(n=>[(l(!0),t(s,null,e(n.row.metadata,(e,t)=>(l(),a(P,{key:t,class:`mb-2`},{default:x(()=>[i(c(t)+`: `+c(e),1)]),_:2},1024))),128))]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.createdAt`),width:`200px`},{default:x(e=>[n(`span`,me,c(r.$dayjs.format(e.row.created_at)),1)]),_:1},8,[`label`])]),_:1},8,[`data`,`empty-text`])),[[V,r.loading]]):m(``,!0)]),_:1})]),_:1})]),_:1}),o(z,{modelValue:r.detailDialogVisible,"onUpdate:modelValue":u[6]||=e=>r.detailDialogVisible=e,title:r.$t(`usage.dialog.detailTitle`),width:`70%`,top:`5vh`,"destroy-on-close":``},{default:x(()=>[o(R,{modelValue:r.detailActiveTab,"onUpdate:modelValue":u[5]||=e=>r.detailActiveTab=e},{default:x(()=>[o(L,{label:r.$t(`usage.dialog.request`),name:`request`},{default:x(()=>[r.detailLoading?(l(),a(D,{key:0,rows:6,animated:``})):r.detailRow?.metadata?.request?(l(),t(`pre`,he,c(r.formatJson(r.detailRow.metadata.request)),1)):(l(),t(`p`,ge,c(r.$t(`usage.dialog.noData`)),1))]),_:1},8,[`label`]),o(L,{label:r.$t(`usage.dialog.response`),name:`response`},{default:x(()=>[r.detailLoading?(l(),a(D,{key:0,rows:6,animated:``})):r.detailRow?.metadata?.response?(l(),t(`pre`,_e,c(r.formatJson(r.detailRow.metadata.response)),1)):(l(),t(`p`,ve,c(r.$t(`usage.dialog.noData`)),1))]),_:1},8,[`label`])]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`,`title`]),o(v,null,{default:x(()=>[o(_,{span:10,offset:14},{default:x(()=>[n(`div`,ye,[o(B,{"current-page":r.page,"page-size":r.limit,total:r.total,onChange:r.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var xe=V(Z,[[`render`,be],[`__scopeId`,`data-v-38f1845c`]]);export{xe as default};
|
|
1
|
+
import"./rolldown-runtime--c01j_DQ.js";import{$ as e,A as t,D as n,F as r,N as i,O as a,P as o,S as s,Wt as c,Z as l,a as u,c as d,dt as f,i as p,k as m,n as ee,nt as h,o as g,r as _,s as v,t as y,tt as b,ut as x,v as S}from"./vendor-chart-BJCvKk8-.js";import{t as C}from"./button-BydTr5nV.js";import{r as w,t as T}from"./select-B5GsgYo4.js";import{n as E,t as D}from"./table-BJr3w4hQ.js";import{n as O,t as k}from"./tabs-BuReRBYv.js";import{t as A}from"./card-DjyfNde2.js";import{n as j,r as M}from"./radio-3Hz7h3DR.js";import{t as N}from"./date-picker-BQF1xk_t.js";import{n as P,t as F}from"./row-DcQVU8mL.js";import{t as I}from"./Pagination-D0SC5Oxz.js";import{n as L,t as R}from"./skeleton-BwNBivMN.js";import{Cr as z,Ln as B,O as V,Rn as H,Un as U,Yr as W,Zr as G,jr as K,wr as q,zn as J}from"./index-Cvj3R8n8.js";import{t as Y}from"./index.es-iPEvnXaP.js";import{t as X}from"./CopyToClipboard-BfdNvn25.js";p.register(_,u,ee,v,d,g);var Z=r({name:`ConsoleUsageList`,components:{Pagination:I,ElTag:G,ElDatePicker:N,ElTable:D,ElSelect:w,ElOption:T,CopyToClipboard:X,ElRow:F,ElCol:P,ElTableColumn:E,ElCard:A,ElRadioButton:j,ElRadioGroup:M,ElSkeleton:R,ElSkeletonItem:L,ElDialog:W,ElTabs:O,ElTabPane:k,ElButton:C,FontAwesomeIcon:Y,BarChart:y},data(){return{applicationIds:this.$route.query.application_id?.toString()?this.$route.query.application_id?.toString().split(`,`):[],apiIds:this.$route.query.api_id?.toString()?this.$route.query.api_id?.toString().split(`,`):[],applications:[],apis:[],apisLoading:!1,credentialType:z,serviceType:q,apiUsages:[],proxyUsages:[],createdAtRange:(()=>{let e=this.$route.query.created_at_to?.toString(),t=this.$route.query.created_at_from?.toString();if(t&&e)return[new Date(t),new Date(e)];let n=new Date,r=new Date;return r.setDate(1),r.setHours(0,0,0,0),[r,n]})(),shortcuts:[{text:this.$t(`usage.shortcuts.thisMonth`),value:()=>{let e=new Date,t=new Date;return t.setDate(1),t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.today`),value:()=>{let e=new Date,t=new Date;return t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.last1Day`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-1),[t,e]}},{text:this.$t(`usage.shortcuts.last3Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-3),[t,e]}},{text:this.$t(`usage.shortcuts.last7Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-7),[t,e]}},{text:this.$t(`usage.shortcuts.last1Month`),value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-1),[t,e]}}],type:this.$route.query.type?.toString()||q.API,loading:!1,total:void 0,limit:15,totalUsed:0,barChartLabels:[],barChartSeries:[],aggLoading:!1,detailDialogVisible:!1,detailRow:null,detailActiveTab:`request`,detailLoading:!1,exporting:!1,statusCodeFilter:this.$route.query.status_code?.toString()||``,statusCodeOptions:[],statusCodeOptionsLoading:!1}},computed:{redirect(){return this.$route.query?.redirect},page(){return parseInt(this.$route.query.page?.toString()||`1`)},totalUsedString(){return`${(this.totalUsed||0).toFixed(2)}`},barChartData(){return{labels:this.barChartLabels,datasets:this.barChartSeries.map(e=>({label:e.label,data:e.data,backgroundColor:e.color}))}},barChartOptions(){return{responsive:!0,plugins:{legend:{position:`top`,onClick:(e,t,n)=>{let r=n?.chart;if(!r||t?.datasetIndex===void 0)return;let i=t.datasetIndex,a=r.data?.datasets||[];a.some((e,t)=>t!==i&&r.isDatasetVisible(t))?a.forEach((e,t)=>r.setDatasetVisibility(t,t===i)):a.forEach((e,t)=>r.setDatasetVisibility(t,!0)),r.update()}},title:{display:!0,text:this.$t(`usage.title.usageTrend`)}},scales:{x:{stacked:!0},y:{stacked:!0,beginAtZero:!0}}}}},watch:{page:{handler(){this.onFetchUsages()}},type:{handler(){this.applicationIds=[],this.apiIds=[],this.onApplicationsChange(this.applicationIds),this.onFetchApplications(),this.onFetchApis(),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions()}}},mounted(){this.onFetchApplications(),this.onFetchApis(),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions()},methods:{async onFetchUsages(){this.type===q.API?this.onFetchApiUsages():this.type===q.Proxy&&this.onFetchProxyUsages()},async onApiChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,api_id:e}}),this.onFetchApiUsages(),this.onFetchAggregate()},async onApisChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,api_id:e&&e.length?e.join(`,`):``}}),this.onFetchApiUsages(),this.onFetchAggregate()},async onTimeRangeChanged(){console.log(`onTimeRangeChanged`,this.createdAtRange),await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,created_at_from:this.createdAtRange?this.$dayjs.format(this.createdAtRange[0].toString(),`YYYY-MM-DDTHH:mm:ss.SSSSSSZ`):``,created_at_to:this.createdAtRange?this.$dayjs.format(this.createdAtRange[1].toString(),`YYYY-MM-DDTHH:mm:ss.SSSSSSZ`):``}}),this.onFetchUsages(),this.onFetchAggregate(),this.onFetchStatusCodeOptions()},async onApplicationChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,application_id:e}}),this.onFetchUsages(),this.onFetchAggregate()},async onApplicationsChange(e){await this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,application_id:e&&e.length?e.join(`,`):``}}),this.onFetchUsages(),this.onFetchAggregate()},onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,page:e}})},getRemainingAmount(e){if(e.remaining_amount===void 0||e.remaining_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.remaining_amount?.toFixed(6)} ${t}`},getUsedAmount(e){if(e.used_amount===void 0||e.used_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.used_amount?.toFixed(6)} ${t}`},getDeductedAmount(e){if(e?.deducted_amount===void 0||e?.deducted_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.deducted_amount?.toFixed(6)} ${t}`},getOriginalAmount(e){if(e?.original_amount===void 0||e?.original_amount===null)return``;let t=this.$t(`service.unit.${e?.service?.unit||`credit`}s`);return`${e.original_amount?.toFixed(6)} ${t}`},onStatusCodeChange(e){let t={...this.$route.query},n=(e||``).trim();n?t.status_code=n:delete t.status_code,delete t.status_code_filter,this.$router.push({name:this.$route.name?.toString(),query:t}),this.onFetchUsages(),this.onFetchAggregate()},async onFetchStatusCodeOptions(){this.statusCodeOptionsLoading=!0;try{let{data:e}=await H.getStatusCodes({user_id:this.$store.getters.user.id,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{}});this.statusCodeOptions=(e?.items||[]).slice().sort((e,t)=>e-t)}catch{this.statusCodeOptions=[]}finally{this.statusCodeOptionsLoading=!1}},formatElapsed(e){return e==null||Number.isNaN(e)?`-`:e<1?`${Math.round(e*1e3)} ms`:`${e.toFixed(2)} s`},getSimpleMetadata(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))n===`request`||n===`response`||typeof r==`object`&&r||(t[n]=r);return t},onShowDetail(e){this.detailRow={...e,metadata:void 0},this.detailActiveTab=`request`,this.detailDialogVisible=!0,this.detailLoading=!0,e.id&&H.get(e.id).then(e=>{this.detailRow=e.data}).finally(()=>{this.detailLoading=!1})},formatJson(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}},onFetchApplications(){U.getAll({limit:100,offset:0,user_id:this.$store.getters.user.id,ordering:`-created_at`,type:K.USAGE}).then(({data:e})=>{this.applications=e.items.filter(e=>e?.service?.type===this.type)}).catch(()=>{})},onFetchApis(){this.apisLoading=!0,B.getAll({limit:100,offset:0,ordering:`-created_at`}).then(({data:e})=>{this.apis=e.items}).catch(()=>{}).finally(()=>{this.apisLoading=!1})},onFetchApiUsages(){console.log(`onFetchApiUsages`,this.createdAtRange),this.loading=!0,H.getAll({limit:this.limit,offset:(this.page-1)*this.limit,user_id:this.$store.getters.user.id,ordering:`-created_at`,...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{},...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.statusCodeFilter?{status_code:this.statusCodeFilter}:{}}).then(({data:e})=>{this.apiUsages=e.items,this.loading=!1,this.total=e.count}).catch(()=>{this.loading=!1})},onFetchProxyUsages(){this.loading=!0,J.getAll({limit:this.limit,offset:(this.page-1)*this.limit,user_id:this.$store.getters.user.id,ordering:`-created_at`,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{}}).then(({data:e})=>{this.proxyUsages=e.items,this.loading=!1,this.total=e.count}).catch(()=>{this.loading=!1})},onExport(){this.exporting=!0,H.exportCsv({user_id:this.$store.getters.user.id,...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{},...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.statusCodeFilter?{status_code:this.statusCodeFilter}:{}}).then(({data:e})=>{let t=window.URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`usages.csv`,n.click(),window.URL.revokeObjectURL(t)}).catch(()=>{}).finally(()=>{this.exporting=!1})},async onFetchAggregate(){if(this.aggLoading=!0,this.type!==this.serviceType.API)return;let e={user_id:this.$store.getters.user.id,...this.applicationIds&&this.applicationIds.length?{application_id:this.applicationIds}:{},...this.apiIds&&this.apiIds.length?{api_id:this.apiIds}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0]}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1]}:{}};try{let{data:t}=await H.getAggregate(e);this.totalUsed=t.total||0;let n=Array.from(new Set((t.items||[]).map(e=>e.date))).sort(),r=Array.from(new Set((t.items||[]).map(e=>e.api_id))),i=e=>`hsl(${e*57%360}, 70%, 60%)`,a=r.map((e,r)=>{let a=t.apis?.[e]?.title||e,o={};return(t.items||[]).filter(t=>t.api_id===e).forEach(e=>{o[e.date]=e.amount||0}),{key:e,label:a,data:n.map(e=>o[e]||0),color:i(r)}});this.barChartLabels=n,this.barChartSeries=a}finally{this.aggLoading=!1}}}}),Q={class:`text-[26px] font-bold mb-5 text-[var(--el-text-color-primary)]`},$={class:`inline-block w-9`},te={class:`inline-block`},ne={key:1,class:`summary-card`},re={class:`icon-wrapper`},ie={class:`text-left`},ae={class:`description`},oe={class:`value`},se={class:`chart-wrapper`},ce={key:0},le={key:1},ue={class:`flex flex-wrap gap-2`},de={class:`key`},fe={key:0,class:`cursor-pointer`},pe={class:`created-at`},me={class:`created-at`},he={key:1,class:`detail-json`},ge={key:2,class:`text-gray-400`},_e={key:1,class:`detail-json`},ve={key:2,class:`text-gray-400`},ye={class:`float-right`};function be(r,u,d,p,ee,g){let _=b(`el-col`),v=b(`el-row`),y=b(`el-radio-button`),C=b(`el-radio-group`),w=b(`el-option`),T=b(`el-select`),E=b(`el-skeleton-item`),D=b(`el-skeleton`),O=b(`el-date-picker`),k=b(`font-awesome-icon`),A=b(`el-button`),j=b(`el-card`),M=b(`bar-chart`),N=b(`el-table-column`),P=b(`el-tag`),F=b(`copy-to-clipboard`),I=b(`el-table`),L=b(`el-tab-pane`),R=b(`el-tabs`),z=b(`el-dialog`),B=b(`pagination`),V=h(`loading`);return l(),a(v,null,{default:x(()=>[o(_,{span:24},{default:x(()=>[o(v,null,{default:x(()=>[o(_,{span:24},{default:x(()=>[n(`h2`,Q,c(r.$t(`common.title.allUsages`)),1)]),_:1})]),_:1}),o(v,null,{default:x(()=>[o(_,{md:4,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[n(`span`,null,c(r.$t(`application.field.type`)),1),o(C,{modelValue:r.type,"onUpdate:modelValue":u[0]||=e=>r.type=e},{default:x(()=>[o(y,{value:r.serviceType.API,label:r.$t(`application.field.api`)},null,8,[`value`,`label`]),o(y,{value:r.serviceType.Proxy,label:r.$t(`application.field.proxy`)},null,8,[`value`,`label`])]),_:1},8,[`modelValue`])]),_:1}),f(o(_,{md:6,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[n(`span`,$,c(r.$t(`usage.field.application`)),1),o(T,{modelValue:r.applicationIds,"onUpdate:modelValue":u[1]||=e=>r.applicationIds=e,placeholder:r.$t(`usage.field.application`),clearable:``,multiple:``,"collapse-tags":``,"collapse-tags-tooltip":``,class:`w-full`,onChange:r.onApplicationsChange},{default:x(()=>[(l(!0),t(s,null,e(r.applications,e=>(l(),a(w,{key:e.id,label:e.service?.title,value:e?.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`])]),_:1},512),[[S,!1]]),r.type===r.serviceType.API?(l(),a(_,{key:0,md:6,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[n(`span`,te,c(r.$t(`usage.field.api`)),1),r.apisLoading?(l(),a(D,{key:0,animated:``,class:`w-full`},{template:x(()=>[o(E,{variant:`rect`,style:{height:`32px`,"border-radius":`4px`}})]),_:1})):(l(),a(T,{key:1,modelValue:r.apiIds,"onUpdate:modelValue":u[2]||=e=>r.apiIds=e,placeholder:r.$t(`usage.field.api`),clearable:``,filterable:``,multiple:``,"collapse-tags":``,"collapse-tags-tooltip":``,class:`w-full`,onChange:r.onApisChange},{default:x(()=>[(l(!0),t(s,null,e(r.apis,e=>(l(),a(w,{key:e?.id,label:e?.title,value:e?.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`]))]),_:1})):m(``,!0),r.type===r.serviceType.API?(l(),a(_,{key:1,md:8,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[o(O,{modelValue:r.createdAtRange,"onUpdate:modelValue":u[3]||=e=>r.createdAtRange=e,type:`datetimerange`,class:`w-full`,shortcuts:r.shortcuts,"range-separator":r.$t(`usage.placeholder.to`),"start-placeholder":r.$t(`usage.placeholder.startDate`),"end-placeholder":r.$t(`usage.placeholder.endDate`),onChange:r.onTimeRangeChanged},null,8,[`modelValue`,`shortcuts`,`range-separator`,`start-placeholder`,`end-placeholder`,`onChange`])]),_:1})):m(``,!0),r.type===r.serviceType.API?(l(),a(_,{key:2,md:3,xs:24,class:`mb-5 flex px-2 gap-2 items-center`},{default:x(()=>[o(T,{modelValue:r.statusCodeFilter,"onUpdate:modelValue":u[4]||=e=>r.statusCodeFilter=e,placeholder:r.$t(`usage.option.statusCodeAll`),class:`w-full`,clearable:``,filterable:``,"allow-create":``,"default-first-option":``,loading:r.statusCodeOptionsLoading,onChange:r.onStatusCodeChange},{default:x(()=>[(l(!0),t(s,null,e(r.statusCodeOptions,e=>(l(),a(w,{key:e,label:String(e),value:String(e)},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`loading`,`onChange`])]),_:1})):m(``,!0),r.type===r.serviceType.API?(l(),a(_,{key:3,md:3,xs:24,class:`mb-5 flex px-2 gap-2 items-center justify-end`},{default:x(()=>[o(A,{type:`primary`,plain:``,loading:r.exporting,class:`w-full whitespace-nowrap`,onClick:r.onExport},{default:x(()=>[o(k,{icon:`fa-solid fa-file-export`,class:`mr-1`}),i(` `+c(r.$t(`usage.button.export`)),1)]),_:1},8,[`loading`,`onClick`])]),_:1})):m(``,!0)]),_:1}),o(v,null,{default:x(()=>[o(_,{span:24},{default:x(()=>[r.type===r.serviceType.API?(l(),a(v,{key:0,gutter:24,class:`mb-5`},{default:x(()=>[o(_,{md:6,xs:24},{default:x(()=>[o(j,{shadow:`hover`,class:`h-full`},{default:x(()=>[r.aggLoading?(l(),a(D,{key:0})):(l(),t(`div`,ne,[n(`div`,re,[o(k,{icon:`fa-solid fa-cubes`,class:`icon`})]),n(`div`,ie,[n(`p`,ae,c(r.$t(`usage.title.totalUsed`)),1),n(`p`,oe,c(r.totalUsedString),1)])]))]),_:1})]),_:1}),o(_,{md:18,xs:24},{default:x(()=>[o(j,{shadow:`hover`,class:`h-full`},{default:x(()=>[n(`div`,se,[r.aggLoading?(l(),a(D,{key:0,class:`w-full`})):(l(),a(M,{key:1,data:r.barChartData,options:r.barChartOptions,class:`chart`},null,8,[`data`,`options`]))])]),_:1})]),_:1})]),_:1})):m(``,!0),o(j,{shadow:`hover`},{default:x(()=>[r.type===r.serviceType.API?f((l(),a(I,{key:0,data:r.apiUsages,stripe:``,"table-layout":`fixed`,"empty-text":r.$t(`common.message.noData`),class:`min-h-[calc(100vh-350px)] mb-5`},{default:x(()=>[o(N,{label:r.$t(`application.field.name`),width:`160px`},{default:x(e=>[n(`span`,null,c(e.row?.api?.title),1)]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.statusCode`),width:`120px`},{default:x(e=>[n(`span`,null,c(e.row.status_code),1)]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.elapsed`),width:`120px`},{default:x(e=>[n(`span`,null,c(r.formatElapsed(e.row.elapsed)),1)]),_:1},8,[`label`]),o(N,{prop:`deducted_amount`,label:r.$t(`usage.field.deductedAmount`),width:`150px`,"class-name":`text-center`},{default:x(e=>[r.getDeductedAmount(e.row)===r.getOriginalAmount(e.row)?(l(),t(`div`,ce,[n(`span`,null,c(r.getDeductedAmount(e.row)),1)])):(l(),t(`div`,le,[u[7]||=n(`p`,null,null,-1),n(`p`,null,[n(`span`,null,c(r.getDeductedAmount(e.row)),1)]),n(`p`,null,[n(`del`,null,c(r.getOriginalAmount(e.row)),1)])]))]),_:1},8,[`label`]),o(N,{prop:`remaining_amount`,label:r.$t(`usage.field.balanceAfter`),width:`160px`,"class-name":`text-center`},{default:x(e=>[n(`span`,null,c(r.getRemainingAmount(e.row)),1)]),_:1},8,[`label`]),o(N,{prop:`metadata`,label:r.$t(`usage.field.metadata`),width:`260px`,"class-name":`text-center`},{default:x(o=>[n(`div`,ue,[o.row.original_amount>o.row.deducted_amount&&o.row.original_amount>0?(l(),a(P,{key:0,type:`success`,style:{textWrap:`wrap`,height:`fit-content`,lineHeight:`20px`,borderRadius:`10px`}},{default:x(()=>[i(c(((o.row.original_amount-o.row.deducted_amount)*100/o.row.original_amount).toFixed(0)+`% OFF`),1)]),_:2},1024)):m(``,!0),(l(!0),t(s,null,e(r.getSimpleMetadata(o.row.metadata),(e,t)=>(l(),a(P,{key:t,style:{textWrap:`wrap`,height:`fit-content`,lineHeight:`20px`,borderRadius:`10px`}},{default:x(()=>[i(c(t)+`: `+c(e),1)]),_:2},1024))),128))])]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.button.viewDetail`),width:`120px`,"class-name":`text-center`},{default:x(e=>[e.row.id?(l(),a(A,{key:0,type:`primary`,plain:``,size:`small`,class:`!px-2 !py-1 !text-xs !h-auto !min-h-0`,onClick:t=>r.onShowDetail(e.row)},{default:x(()=>[i(c(r.$t(`usage.button.viewDetail`)),1)]),_:1},8,[`onClick`])):m(``,!0)]),_:1},8,[`label`]),o(N,{prop:`trace_id`,label:r.$t(`application.field.traceId`),width:`200px`,"class-name":`text-center`},{default:x(e=>[n(`span`,de,c(e.row.trace_id),1),e.row.trace_id?(l(),t(`span`,fe,[o(F,{content:e.row.trace_id,class:`inline-block`},null,8,[`content`])])):m(``,!0)]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.createdAt`),width:`200px`},{default:x(e=>[n(`span`,pe,c(r.$dayjs.format(e.row.created_at)),1)]),_:1},8,[`label`])]),_:1},8,[`data`,`empty-text`])),[[V,r.loading]]):m(``,!0),r.type===r.serviceType.Proxy?f((l(),a(I,{key:1,data:r.proxyUsages,stripe:``,"table-layout":`fixed`,"empty-text":r.$t(`common.message.noData`),class:`min-h-[calc(100vh-350px)] mb-5`},{default:x(()=>[o(N,{label:r.$t(`application.field.name`),width:`160px`},{default:x(e=>[n(`span`,null,c(e.row?.service?.title),1)]),_:1},8,[`label`]),o(N,{prop:`remaining_amount`,label:r.$t(`usage.field.remainingAmount`),width:`160px`,"class-name":`text-center`},{default:x(e=>[n(`span`,null,c(r.getRemainingAmount(e.row)),1),n(`span`,null,c(r.getOriginalAmount(e.row)),1)]),_:1},8,[`label`]),o(N,{prop:`deducted_amount`,label:r.$t(`usage.field.deductedAmount`),width:`150px`,"class-name":`text-center`},{default:x(e=>[n(`span`,null,c(r.getDeductedAmount(e.row)),1)]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.balanceAfter`),width:`160px`,"class-name":`text-center`},{default:x(e=>[n(`span`,null,c(r.getRemainingAmount(e.row)),1)]),_:1},8,[`label`]),o(N,{prop:`metadata`,label:r.$t(`usage.field.metadata`),width:`200px`,"class-name":`text-center`},{default:x(n=>[(l(!0),t(s,null,e(n.row.metadata,(e,t)=>(l(),a(P,{key:t,class:`mb-2`},{default:x(()=>[i(c(t)+`: `+c(e),1)]),_:2},1024))),128))]),_:1},8,[`label`]),o(N,{label:r.$t(`usage.field.createdAt`),width:`200px`},{default:x(e=>[n(`span`,me,c(r.$dayjs.format(e.row.created_at)),1)]),_:1},8,[`label`])]),_:1},8,[`data`,`empty-text`])),[[V,r.loading]]):m(``,!0)]),_:1})]),_:1})]),_:1}),o(z,{modelValue:r.detailDialogVisible,"onUpdate:modelValue":u[6]||=e=>r.detailDialogVisible=e,title:r.$t(`usage.dialog.detailTitle`),width:`70%`,top:`5vh`,"destroy-on-close":``},{default:x(()=>[o(R,{modelValue:r.detailActiveTab,"onUpdate:modelValue":u[5]||=e=>r.detailActiveTab=e},{default:x(()=>[o(L,{label:r.$t(`usage.dialog.request`),name:`request`},{default:x(()=>[r.detailLoading?(l(),a(D,{key:0,rows:6,animated:``})):r.detailRow?.metadata?.request?(l(),t(`pre`,he,c(r.formatJson(r.detailRow.metadata.request)),1)):(l(),t(`p`,ge,c(r.$t(`usage.dialog.noData`)),1))]),_:1},8,[`label`]),o(L,{label:r.$t(`usage.dialog.response`),name:`response`},{default:x(()=>[r.detailLoading?(l(),a(D,{key:0,rows:6,animated:``})):r.detailRow?.metadata?.response?(l(),t(`pre`,_e,c(r.formatJson(r.detailRow.metadata.response)),1)):(l(),t(`p`,ve,c(r.$t(`usage.dialog.noData`)),1))]),_:1},8,[`label`])]),_:1},8,[`modelValue`])]),_:1},8,[`modelValue`,`title`]),o(v,null,{default:x(()=>[o(_,{span:10,offset:14},{default:x(()=>[n(`div`,ye,[o(B,{"current-page":r.page,"page-size":r.limit,total:r.total,onChange:r.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var xe=V(Z,[[`render`,be],[`__scopeId`,`data-v-38f1845c`]]);export{xe as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{$ as e,A as t,D as n,F as r,N as i,O as a,P as o,S as s,Wt as c,Z as l,dt as u,nt as d,tt as f,ut as p}from"./vendor-chart-BJCvKk8-.js";import{t as m}from"./button-BydTr5nV.js";import{r as h,t as g}from"./select-C13m6drR.js";import{n as _,t as v}from"./table-BJr3w4hQ.js";import{t as y}from"./card-DjyfNde2.js";import{t as b}from"./date-picker-CWU_QC7e.js";import{n as x,t as S}from"./row-D_S4iKgK.js";import{t as C}from"./Pagination-DZOuYajR.js";import{t as w}from"./skeleton-BwNBivMN.js";import{In as T,O as E,Tr as D,Wt as O,Zr as k}from"./index-C8VZRfvb.js";import{t as A}from"./index.es-DiQg36vB.js";import{t as j}from"./CopyToClipboard-Ds9LKDk2.js";var M={total_count:0,total_spent:0,state_counts:{}},N=r({name:`ConsoleOrderList`,components:{Pagination:C,CopyToClipboard:j,ElRow:S,ElCol:x,ElTable:v,ElTableColumn:_,ElButton:m,ElTag:k,ElCard:y,ElSelect:h,ElOption:g,ElDatePicker:b,ElSkeleton:w,FontAwesomeIcon:A},data(){return{OrderState:D,orders:[],loading:!1,total:void 0,limit:10,filterState:this.$route.query.state?.toString()||``,filterPayWay:this.$route.query.pay_way?.toString()||``,createdAtRange:(()=>{let e=this.$route.query.created_at_from?.toString(),t=this.$route.query.created_at_to?.toString();if(e&&t)return[new Date(e),new Date(t)]})(),summary:{...M},summaryLoading:!1,exporting:!1,shortcuts:[{text:this.$t(`usage.shortcuts.today`),value:()=>{let e=new Date,t=new Date;return t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.last7Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-7),[t,e]}},{text:this.$t(`usage.shortcuts.last1Month`),value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-1),[t,e]}}]}},computed:{page(){return parseInt(this.$route.query.page?.toString()||`1`)},stateOptions(){return[{value:D.PENDING,label:this.$t(`order.state.pending`)},{value:D.FINISHED,label:this.$t(`order.state.finished`)},{value:D.PAID,label:this.$t(`order.state.paid`)},{value:D.EXPIRED,label:this.$t(`order.state.expired`)},{value:D.FAILED,label:this.$t(`order.state.failed`)},{value:D.REFUNDED,label:this.$t(`order.state.refunded`)}]},payWayOptions(){return[{value:`WechatPay`,label:this.$t(`order.title.wechatPay`)},{value:`Stripe`,label:this.$t(`order.title.stripe`)},{value:`AliPay`,label:this.$t(`order.title.aliPay`)},{value:`X402`,label:this.$t(`order.title.x402`)},{value:`PayPal`,label:this.$t(`order.title.paypal`)}]},filterQuery(){let e={user_id:this.$store.getters.user?.id};return this.filterState&&(e.state=this.filterState),this.filterPayWay&&(e.pay_way=this.filterPayWay),this.createdAtRange?.[0]&&(e.created_at_from=this.createdAtRange[0]),this.createdAtRange?.[1]&&(e.created_at_to=this.createdAtRange[1]),e}},watch:{page:{handler(){this.onFetchData()}}},mounted(){this.onFetchData(),this.onFetchSummary()},methods:{getPriceString:O,stateTagType(e){return e===D.FINISHED||e===D.PAID?`success`:e===D.EXPIRED||e===D.FAILED?`danger`:e===D.REFUNDED?`warning`:`info`},stateLabel(e){return{[D.PENDING]:this.$t(`order.state.pending`),[D.PAID]:this.$t(`order.state.paid`),[D.FINISHED]:this.$t(`order.state.finished`),[D.EXPIRED]:this.$t(`order.state.expired`),[D.FAILED]:this.$t(`order.state.failed`),[D.REFUNDED]:this.$t(`order.state.refunded`)}[e]||e},isPendingAction(e){return e!==D.PAID&&e!==D.FINISHED&&e!==D.EXPIRED&&e!==D.FAILED&&e!==D.REFUNDED},goToDetail(e){this.$router.push({name:`console-order-detail`,params:{id:e}})},async onFilterChange(){await this.$router.push({name:this.$route.name?.toString(),query:{page:1,...this.filterState?{state:this.filterState}:{},...this.filterPayWay?{pay_way:this.filterPayWay}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0].toISOString()}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1].toISOString()}:{}}}),this.onFetchData(),this.onFetchSummary()},onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,page:e}})},onFetchData(){this.loading=!0,T.getAll({ordering:`-created_at`,limit:this.limit,offset:(this.page-1)*this.limit,...this.filterQuery}).then(({data:e})=>{this.orders=e.items,this.total=e.count}).catch(()=>{}).finally(()=>{this.loading=!1})},onFetchSummary(){this.summaryLoading=!0,T.getSummary(this.filterQuery).then(({data:e})=>{this.summary=e}).catch(()=>{this.summary={...M}}).finally(()=>{this.summaryLoading=!1})},onExport(){this.exporting=!0,T.exportCsv(this.filterQuery).then(({data:e})=>{let t=window.URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`orders.csv`,n.click(),window.URL.revokeObjectURL(t)}).catch(()=>{}).finally(()=>{this.exporting=!1})}}}),P={class:`title`},F={key:1,class:`card-content`},I={class:`icon-wrapper`},L={class:`description`},R={class:`value`},z={key:1,class:`card-content`},B={class:`icon-wrapper`},V={class:`description`},H={class:`value`},U={key:1,class:`card-content`},W={class:`icon-wrapper`},ee={class:`description`},G={class:`value`},K={key:1,class:`card-content`},q={class:`icon-wrapper`},J={class:`description`},Y={class:`value`},X={class:`filter-row mb-3`},Z={class:`key`},Q={class:`cursor-pointer`},$={class:`price`},te={class:`description`},ne={class:`text-gray-500`},re={class:`created-at`},ie={class:`flex items-center justify-center flex-wrap`},ae={class:`float-right`};function oe(r,m,h,g,_,v){let y=f(`el-col`),b=f(`el-row`),x=f(`el-skeleton`),S=f(`font-awesome-icon`),C=f(`el-card`),w=f(`el-option`),T=f(`el-select`),E=f(`el-date-picker`),D=f(`el-button`),O=f(`copy-to-clipboard`),k=f(`el-table-column`),A=f(`el-tag`),j=f(`el-table`),M=f(`pagination`),N=d(`loading`);return l(),a(b,{class:`panel`},{default:p(()=>[o(y,{span:24},{default:p(()=>[o(b,null,{default:p(()=>[o(y,{span:24},{default:p(()=>[n(`h2`,P,c(r.$t(`common.title.allOrders`)),1)]),_:1})]),_:1}),o(b,{gutter:16},{default:p(()=>[o(y,{md:6,sm:12,xs:24},{default:p(()=>[o(C,{shadow:`hover`,class:`item-mini mb-3`},{default:p(()=>[r.summaryLoading?(l(),a(x,{key:0})):(l(),t(`div`,F,[n(`div`,I,[o(S,{icon:`fa-solid fa-receipt`,class:`icon`})]),n(`p`,L,c(r.$t(`order.title.totalOrders`)),1),n(`p`,R,c(r.summary.total_count),1)]))]),_:1})]),_:1}),o(y,{md:6,sm:12,xs:24},{default:p(()=>[o(C,{shadow:`hover`,class:`item-mini mb-3`},{default:p(()=>[r.summaryLoading?(l(),a(x,{key:0})):(l(),t(`div`,z,[n(`div`,B,[o(S,{icon:`fa-solid fa-dollar-sign`,class:`icon`})]),n(`p`,V,c(r.$t(`order.title.totalSpent`)),1),n(`p`,H,c(r.getPriceString({value:r.summary.total_spent})),1)]))]),_:1})]),_:1}),o(y,{md:6,sm:12,xs:24},{default:p(()=>[o(C,{shadow:`hover`,class:`item-mini mb-3`},{default:p(()=>[r.summaryLoading?(l(),a(x,{key:0})):(l(),t(`div`,U,[n(`div`,W,[o(S,{icon:`fa-solid fa-check-circle`,class:`icon`})]),n(`p`,ee,c(r.$t(`order.title.finishedOrders`)),1),n(`p`,G,c(r.summary.state_counts?.Finished||0),1)]))]),_:1})]),_:1}),o(y,{md:6,sm:12,xs:24},{default:p(()=>[o(C,{shadow:`hover`,class:`item-mini mb-3`},{default:p(()=>[r.summaryLoading?(l(),a(x,{key:0})):(l(),t(`div`,K,[n(`div`,q,[o(S,{icon:`fa-solid fa-clock`,class:`icon`})]),n(`p`,J,c(r.$t(`order.title.pendingOrders`)),1),n(`p`,Y,c(r.summary.state_counts?.Pending||0),1)]))]),_:1})]),_:1})]),_:1}),n(`div`,X,[o(T,{modelValue:r.filterState,"onUpdate:modelValue":m[0]||=e=>r.filterState=e,clearable:``,placeholder:r.$t(`order.field.allStates`),class:`filter-select`,onChange:r.onFilterChange},{default:p(()=>[(l(!0),t(s,null,e(r.stateOptions,e=>(l(),a(w,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`]),o(T,{modelValue:r.filterPayWay,"onUpdate:modelValue":m[1]||=e=>r.filterPayWay=e,clearable:``,placeholder:r.$t(`order.field.allPayWays`),class:`filter-select`,onChange:r.onFilterChange},{default:p(()=>[(l(!0),t(s,null,e(r.payWayOptions,e=>(l(),a(w,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`]),o(E,{modelValue:r.createdAtRange,"onUpdate:modelValue":m[2]||=e=>r.createdAtRange=e,type:`datetimerange`,shortcuts:r.shortcuts,"range-separator":r.$t(`usage.placeholder.to`),"start-placeholder":r.$t(`usage.placeholder.startDate`),"end-placeholder":r.$t(`usage.placeholder.endDate`),onChange:r.onFilterChange},null,8,[`modelValue`,`shortcuts`,`range-separator`,`start-placeholder`,`end-placeholder`,`onChange`]),o(D,{type:`primary`,plain:``,loading:r.exporting,onClick:r.onExport},{default:p(()=>[o(S,{icon:`fa-solid fa-file-export`,class:`mr-1`}),i(` `+c(r.$t(`order.button.export`)),1)]),_:1},8,[`loading`,`onClick`])]),o(b,null,{default:p(()=>[o(y,{span:24},{default:p(()=>[o(C,{shadow:`hover`},{default:p(()=>[u((l(),a(j,{data:r.orders,stripe:``,"empty-text":r.$t(`common.message.noData`),class:`min-h-[calc(100vh-450px)] mb-[20px]`},{default:p(()=>[o(k,{prop:`id`,label:r.$t(`order.field.id`),"class-name":`text-center`,width:`200px`},{default:p(e=>[n(`span`,Z,c(e.row.id),1),n(`span`,Q,[o(O,{content:e.row.id,class:`inline-block`},null,8,[`content`])])]),_:1},8,[`label`]),o(k,{label:r.$t(`order.field.price`),width:`110px`,align:`center`},{default:p(e=>[n(`span`,$,c(r.getPriceString({value:e.row?.price})),1)]),_:1},8,[`label`]),o(k,{label:r.$t(`order.field.description`),"min-width":`220px`,"class-name":`hidden md:table-cell`,"label-class-name":`hidden md:table-cell`},{default:p(e=>[n(`span`,te,c(e.row.description),1)]),_:1},8,[`label`]),o(k,{prop:`state`,label:r.$t(`order.field.state`),width:`130px`,align:`center`},{default:p(e=>[o(A,{type:r.stateTagType(e.row.state),class:`mx-1`,effect:`dark`,round:``,size:`small`},{default:p(()=>[i(c(r.stateLabel(e.row.state)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),o(k,{label:r.$t(`order.field.payWay`),width:`120px`,align:`center`,"class-name":`hidden md:table-cell`,"label-class-name":`hidden md:table-cell`},{default:p(e=>[n(`span`,ne,c(e.row.pay_way||`-`),1)]),_:1},8,[`label`]),o(k,{label:r.$t(`order.field.createdAt`),width:`200px`,"class-name":`hidden sm:table-cell`,"label-class-name":`hidden sm:table-cell`},{default:p(e=>[n(`span`,re,c(r.$dayjs.format(e.row.created_at)),1)]),_:1},8,[`label`]),o(k,{"min-width":`130px`,fixed:`right`},{default:p(e=>[n(`div`,ie,[r.isPendingAction(e.row.state)?(l(),a(D,{key:0,type:`primary`,size:`small`,onClick:t=>r.goToDetail(e.row.id)},{default:p(()=>[i(c(r.$t(`order.button.continuePay`)),1)]),_:1},8,[`onClick`])):(l(),a(D,{key:1,size:`small`,onClick:t=>r.goToDetail(e.row.id)},{default:p(()=>[i(c(r.$t(`order.button.checkDetail`)),1)]),_:1},8,[`onClick`]))])]),_:1})]),_:1},8,[`data`,`empty-text`])),[[N,r.loading]])]),_:1})]),_:1})]),_:1}),o(b,null,{default:p(()=>[o(y,{span:10,offset:14},{default:p(()=>[n(`div`,ae,[o(M,{"current-page":r.page,"page-size":r.limit,total:r.total,onChange:r.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var se=E(N,[[`render`,oe],[`__scopeId`,`data-v-350ab467`]]);export{se as default};
|
|
1
|
+
import"./rolldown-runtime--c01j_DQ.js";import{$ as e,A as t,D as n,F as r,N as i,O as a,P as o,S as s,Wt as c,Z as l,dt as u,nt as d,tt as f,ut as p}from"./vendor-chart-BJCvKk8-.js";import{t as m}from"./button-BydTr5nV.js";import{r as h,t as g}from"./select-B5GsgYo4.js";import{n as _,t as v}from"./table-BJr3w4hQ.js";import{t as y}from"./card-DjyfNde2.js";import{t as b}from"./date-picker-BQF1xk_t.js";import{n as x,t as S}from"./row-DcQVU8mL.js";import{t as C}from"./Pagination-D0SC5Oxz.js";import{t as w}from"./skeleton-BwNBivMN.js";import{In as T,O as E,Tr as D,Wt as O,Zr as k}from"./index-Cvj3R8n8.js";import{t as A}from"./index.es-iPEvnXaP.js";import{t as j}from"./CopyToClipboard-BfdNvn25.js";var M={total_count:0,total_spent:0,state_counts:{}},N=r({name:`ConsoleOrderList`,components:{Pagination:C,CopyToClipboard:j,ElRow:S,ElCol:x,ElTable:v,ElTableColumn:_,ElButton:m,ElTag:k,ElCard:y,ElSelect:h,ElOption:g,ElDatePicker:b,ElSkeleton:w,FontAwesomeIcon:A},data(){return{OrderState:D,orders:[],loading:!1,total:void 0,limit:10,filterState:this.$route.query.state?.toString()||``,filterPayWay:this.$route.query.pay_way?.toString()||``,createdAtRange:(()=>{let e=this.$route.query.created_at_from?.toString(),t=this.$route.query.created_at_to?.toString();if(e&&t)return[new Date(e),new Date(t)]})(),summary:{...M},summaryLoading:!1,exporting:!1,shortcuts:[{text:this.$t(`usage.shortcuts.today`),value:()=>{let e=new Date,t=new Date;return t.setHours(0,0,0,0),[t,e]}},{text:this.$t(`usage.shortcuts.last7Days`),value:()=>{let e=new Date,t=new Date;return t.setDate(t.getDate()-7),[t,e]}},{text:this.$t(`usage.shortcuts.last1Month`),value:()=>{let e=new Date,t=new Date;return t.setMonth(t.getMonth()-1),[t,e]}}]}},computed:{page(){return parseInt(this.$route.query.page?.toString()||`1`)},stateOptions(){return[{value:D.PENDING,label:this.$t(`order.state.pending`)},{value:D.FINISHED,label:this.$t(`order.state.finished`)},{value:D.PAID,label:this.$t(`order.state.paid`)},{value:D.EXPIRED,label:this.$t(`order.state.expired`)},{value:D.FAILED,label:this.$t(`order.state.failed`)},{value:D.REFUNDED,label:this.$t(`order.state.refunded`)}]},payWayOptions(){return[{value:`WechatPay`,label:this.$t(`order.title.wechatPay`)},{value:`Stripe`,label:this.$t(`order.title.stripe`)},{value:`AliPay`,label:this.$t(`order.title.aliPay`)},{value:`X402`,label:this.$t(`order.title.x402`)},{value:`PayPal`,label:this.$t(`order.title.paypal`)}]},filterQuery(){let e={user_id:this.$store.getters.user?.id};return this.filterState&&(e.state=this.filterState),this.filterPayWay&&(e.pay_way=this.filterPayWay),this.createdAtRange?.[0]&&(e.created_at_from=this.createdAtRange[0]),this.createdAtRange?.[1]&&(e.created_at_to=this.createdAtRange[1]),e}},watch:{page:{handler(){this.onFetchData()}}},mounted(){this.onFetchData(),this.onFetchSummary()},methods:{getPriceString:O,stateTagType(e){return e===D.FINISHED||e===D.PAID?`success`:e===D.EXPIRED||e===D.FAILED?`danger`:e===D.REFUNDED?`warning`:`info`},stateLabel(e){return{[D.PENDING]:this.$t(`order.state.pending`),[D.PAID]:this.$t(`order.state.paid`),[D.FINISHED]:this.$t(`order.state.finished`),[D.EXPIRED]:this.$t(`order.state.expired`),[D.FAILED]:this.$t(`order.state.failed`),[D.REFUNDED]:this.$t(`order.state.refunded`)}[e]||e},isPendingAction(e){return e!==D.PAID&&e!==D.FINISHED&&e!==D.EXPIRED&&e!==D.FAILED&&e!==D.REFUNDED},goToDetail(e){this.$router.push({name:`console-order-detail`,params:{id:e}})},async onFilterChange(){await this.$router.push({name:this.$route.name?.toString(),query:{page:1,...this.filterState?{state:this.filterState}:{},...this.filterPayWay?{pay_way:this.filterPayWay}:{},...this.createdAtRange?.[0]?{created_at_from:this.createdAtRange[0].toISOString()}:{},...this.createdAtRange?.[1]?{created_at_to:this.createdAtRange[1].toISOString()}:{}}}),this.onFetchData(),this.onFetchSummary()},onPageChange(e){this.$router.push({name:this.$route.name?.toString(),query:{...this.$route.query,page:e}})},onFetchData(){this.loading=!0,T.getAll({ordering:`-created_at`,limit:this.limit,offset:(this.page-1)*this.limit,...this.filterQuery}).then(({data:e})=>{this.orders=e.items,this.total=e.count}).catch(()=>{}).finally(()=>{this.loading=!1})},onFetchSummary(){this.summaryLoading=!0,T.getSummary(this.filterQuery).then(({data:e})=>{this.summary=e}).catch(()=>{this.summary={...M}}).finally(()=>{this.summaryLoading=!1})},onExport(){this.exporting=!0,T.exportCsv(this.filterQuery).then(({data:e})=>{let t=window.URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`orders.csv`,n.click(),window.URL.revokeObjectURL(t)}).catch(()=>{}).finally(()=>{this.exporting=!1})}}}),P={class:`title`},F={key:1,class:`card-content`},I={class:`icon-wrapper`},L={class:`description`},R={class:`value`},z={key:1,class:`card-content`},B={class:`icon-wrapper`},V={class:`description`},H={class:`value`},U={key:1,class:`card-content`},W={class:`icon-wrapper`},ee={class:`description`},G={class:`value`},K={key:1,class:`card-content`},q={class:`icon-wrapper`},J={class:`description`},Y={class:`value`},X={class:`filter-row mb-3`},Z={class:`key`},Q={class:`cursor-pointer`},$={class:`price`},te={class:`description`},ne={class:`text-gray-500`},re={class:`created-at`},ie={class:`flex items-center justify-center flex-wrap`},ae={class:`float-right`};function oe(r,m,h,g,_,v){let y=f(`el-col`),b=f(`el-row`),x=f(`el-skeleton`),S=f(`font-awesome-icon`),C=f(`el-card`),w=f(`el-option`),T=f(`el-select`),E=f(`el-date-picker`),D=f(`el-button`),O=f(`copy-to-clipboard`),k=f(`el-table-column`),A=f(`el-tag`),j=f(`el-table`),M=f(`pagination`),N=d(`loading`);return l(),a(b,{class:`panel`},{default:p(()=>[o(y,{span:24},{default:p(()=>[o(b,null,{default:p(()=>[o(y,{span:24},{default:p(()=>[n(`h2`,P,c(r.$t(`common.title.allOrders`)),1)]),_:1})]),_:1}),o(b,{gutter:16},{default:p(()=>[o(y,{md:6,sm:12,xs:24},{default:p(()=>[o(C,{shadow:`hover`,class:`item-mini mb-3`},{default:p(()=>[r.summaryLoading?(l(),a(x,{key:0})):(l(),t(`div`,F,[n(`div`,I,[o(S,{icon:`fa-solid fa-receipt`,class:`icon`})]),n(`p`,L,c(r.$t(`order.title.totalOrders`)),1),n(`p`,R,c(r.summary.total_count),1)]))]),_:1})]),_:1}),o(y,{md:6,sm:12,xs:24},{default:p(()=>[o(C,{shadow:`hover`,class:`item-mini mb-3`},{default:p(()=>[r.summaryLoading?(l(),a(x,{key:0})):(l(),t(`div`,z,[n(`div`,B,[o(S,{icon:`fa-solid fa-dollar-sign`,class:`icon`})]),n(`p`,V,c(r.$t(`order.title.totalSpent`)),1),n(`p`,H,c(r.getPriceString({value:r.summary.total_spent})),1)]))]),_:1})]),_:1}),o(y,{md:6,sm:12,xs:24},{default:p(()=>[o(C,{shadow:`hover`,class:`item-mini mb-3`},{default:p(()=>[r.summaryLoading?(l(),a(x,{key:0})):(l(),t(`div`,U,[n(`div`,W,[o(S,{icon:`fa-solid fa-check-circle`,class:`icon`})]),n(`p`,ee,c(r.$t(`order.title.finishedOrders`)),1),n(`p`,G,c(r.summary.state_counts?.Finished||0),1)]))]),_:1})]),_:1}),o(y,{md:6,sm:12,xs:24},{default:p(()=>[o(C,{shadow:`hover`,class:`item-mini mb-3`},{default:p(()=>[r.summaryLoading?(l(),a(x,{key:0})):(l(),t(`div`,K,[n(`div`,q,[o(S,{icon:`fa-solid fa-clock`,class:`icon`})]),n(`p`,J,c(r.$t(`order.title.pendingOrders`)),1),n(`p`,Y,c(r.summary.state_counts?.Pending||0),1)]))]),_:1})]),_:1})]),_:1}),n(`div`,X,[o(T,{modelValue:r.filterState,"onUpdate:modelValue":m[0]||=e=>r.filterState=e,clearable:``,placeholder:r.$t(`order.field.allStates`),class:`filter-select`,onChange:r.onFilterChange},{default:p(()=>[(l(!0),t(s,null,e(r.stateOptions,e=>(l(),a(w,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`]),o(T,{modelValue:r.filterPayWay,"onUpdate:modelValue":m[1]||=e=>r.filterPayWay=e,clearable:``,placeholder:r.$t(`order.field.allPayWays`),class:`filter-select`,onChange:r.onFilterChange},{default:p(()=>[(l(!0),t(s,null,e(r.payWayOptions,e=>(l(),a(w,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`onChange`]),o(E,{modelValue:r.createdAtRange,"onUpdate:modelValue":m[2]||=e=>r.createdAtRange=e,type:`datetimerange`,shortcuts:r.shortcuts,"range-separator":r.$t(`usage.placeholder.to`),"start-placeholder":r.$t(`usage.placeholder.startDate`),"end-placeholder":r.$t(`usage.placeholder.endDate`),onChange:r.onFilterChange},null,8,[`modelValue`,`shortcuts`,`range-separator`,`start-placeholder`,`end-placeholder`,`onChange`]),o(D,{type:`primary`,plain:``,loading:r.exporting,onClick:r.onExport},{default:p(()=>[o(S,{icon:`fa-solid fa-file-export`,class:`mr-1`}),i(` `+c(r.$t(`order.button.export`)),1)]),_:1},8,[`loading`,`onClick`])]),o(b,null,{default:p(()=>[o(y,{span:24},{default:p(()=>[o(C,{shadow:`hover`},{default:p(()=>[u((l(),a(j,{data:r.orders,stripe:``,"empty-text":r.$t(`common.message.noData`),class:`min-h-[calc(100vh-450px)] mb-[20px]`},{default:p(()=>[o(k,{prop:`id`,label:r.$t(`order.field.id`),"class-name":`text-center`,width:`200px`},{default:p(e=>[n(`span`,Z,c(e.row.id),1),n(`span`,Q,[o(O,{content:e.row.id,class:`inline-block`},null,8,[`content`])])]),_:1},8,[`label`]),o(k,{label:r.$t(`order.field.price`),width:`110px`,align:`center`},{default:p(e=>[n(`span`,$,c(r.getPriceString({value:e.row?.price})),1)]),_:1},8,[`label`]),o(k,{label:r.$t(`order.field.description`),"min-width":`220px`,"class-name":`hidden md:table-cell`,"label-class-name":`hidden md:table-cell`},{default:p(e=>[n(`span`,te,c(e.row.description),1)]),_:1},8,[`label`]),o(k,{prop:`state`,label:r.$t(`order.field.state`),width:`130px`,align:`center`},{default:p(e=>[o(A,{type:r.stateTagType(e.row.state),class:`mx-1`,effect:`dark`,round:``,size:`small`},{default:p(()=>[i(c(r.stateLabel(e.row.state)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),o(k,{label:r.$t(`order.field.payWay`),width:`120px`,align:`center`,"class-name":`hidden md:table-cell`,"label-class-name":`hidden md:table-cell`},{default:p(e=>[n(`span`,ne,c(e.row.pay_way||`-`),1)]),_:1},8,[`label`]),o(k,{label:r.$t(`order.field.createdAt`),width:`200px`,"class-name":`hidden sm:table-cell`,"label-class-name":`hidden sm:table-cell`},{default:p(e=>[n(`span`,re,c(r.$dayjs.format(e.row.created_at)),1)]),_:1},8,[`label`]),o(k,{"min-width":`130px`,fixed:`right`},{default:p(e=>[n(`div`,ie,[r.isPendingAction(e.row.state)?(l(),a(D,{key:0,type:`primary`,size:`small`,onClick:t=>r.goToDetail(e.row.id)},{default:p(()=>[i(c(r.$t(`order.button.continuePay`)),1)]),_:1},8,[`onClick`])):(l(),a(D,{key:1,size:`small`,onClick:t=>r.goToDetail(e.row.id)},{default:p(()=>[i(c(r.$t(`order.button.checkDetail`)),1)]),_:1},8,[`onClick`]))])]),_:1})]),_:1},8,[`data`,`empty-text`])),[[N,r.loading]])]),_:1})]),_:1})]),_:1}),o(b,null,{default:p(()=>[o(y,{span:10,offset:14},{default:p(()=>[n(`div`,ae,[o(M,{"current-page":r.page,"page-size":r.limit,total:r.total,onChange:r.onPageChange},null,8,[`current-page`,`page-size`,`total`,`onChange`])])]),_:1})]),_:1})]),_:1})]),_:1})}var se=E(N,[[`render`,oe],[`__scopeId`,`data-v-350ab467`]]);export{se as default};
|