chainlesschain 0.162.69 → 0.162.71
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/package.json +2 -2
- package/src/assets/web-panel/assets/{AIOps-mRHaZd6j.js → AIOps-pes7_jGr.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-DKwlStrh.js → ActionButton-DiHWdeH1.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-JKNBk90h.js → Analytics-C51UX-V_.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-D_00au6T.js → AppLayout-BE6LJLw9.js} +4 -4
- package/src/assets/web-panel/assets/{Audit-COIvlSub.js → Audit-CtTkLTe2.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-DM0caJ_V.js → Backup-lmpVwPxc.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-BCcZwFqj.js → BaseInput-Dr7DR1E1.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-Mzs83VXS.js → Chat-DXph6klA.js} +5 -5
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-B3WgjkqK.js → ChatBubbleRenderer-RefrXxqp.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-BSK8NcWS.js → Checkbox-BF0aS5R9.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-CEZLn0zj.js → Codegen-B-oHWNTV.js} +1 -1
- package/src/assets/web-panel/assets/{Col-C3wDVrB5.js → Col-B6KdyRTE.js} +1 -1
- package/src/assets/web-panel/assets/{Community-DgGS3UTp.js → Community-D5ac0KyO.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-BYw2zw-v.js → Compact-Dc61O2eQ.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-DkkuY155.js → Compliance-a48qvNmd.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-CExycS2P.js → Cowork-CIF9lSRj.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-CIERLVft.js → Cron-C_gkf4xd.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-CsHN5kXa.js → Crosschain-CJt15PzW.js} +1 -1
- package/src/assets/web-panel/assets/{DID-BVSo2C6D.js → DID-D8I_okEj.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-DmC4cW02.js → Dashboard-O4q-qCF2.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-B73mSg7P.js → Dropdown-flRziiaw.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-B6m4si5I.js → EmailListRenderer-CnnkfGPw.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-DLcJUP1r.js → FamilyGuardDashboard-CYAJpGqd.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-gzFvFfqM.js → Federation-Dm3WqzQ_.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-CR4BrjCr.js → FormItemContext-CpAIter6.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-D-vZ_Mus.js → GenericCardRenderer-ChzXcyuN.js} +1 -1
- package/src/assets/web-panel/assets/{Git-Cy2qd9re.js → Git-DElmMsL4.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-CCxHR2cK.js → Governance-EWmgn9io.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-CPGRthgg.js → Inference-VtOR_sef.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-rNtsv5PI.js → KnowledgeGraph-OMqlGkMR.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-D2uSdTps.js → Logs-CTgYDsTZ.js} +2 -2
- package/src/assets/web-panel/assets/{Marketplace-fv9Y2P9i.js → Marketplace-DZIUTbn8.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-BXdt1OfF.js → McpTools-DWeOErCA.js} +5 -5
- package/src/assets/web-panel/assets/{Memory-uVwjHReb.js → Memory-DwFBp-ev.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-DUekknEV.js → MobileBridge-D42xBfE3.js} +2 -2
- package/src/assets/web-panel/assets/MobileProjects-BHCHauUl.js +1 -0
- package/src/assets/web-panel/assets/{Mtc-DU7qxB15.js → Mtc-CabnNsyS.js} +6 -6
- package/src/assets/web-panel/assets/{MtcAudit-D82jFkm-.js → MtcAudit-Ddx9Awu5.js} +6 -6
- package/src/assets/web-panel/assets/{Multisig-CbXPwmLK.js → Multisig-CJpYBZ8f.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-xinU-pAd.js → NLProgramming-BvPJskVG.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-CF695fi9.js → Notes-92ELvJM2.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-DqE8Uw97.js → NotificationSettings-CXz0SUzP.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-C6OcpNmv.js → OrderTableRenderer-4iWRkMr-.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BdSbVJSd.js → Organization-DblqJPeY.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-Cwd_BqS5.js → Overflow-CHfS3HwD.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-Cu9QkrOR.js → P2P-DIg0pLIG.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-B-qgBBLE.js → PdhVaultBrowser-BhD3DGjk.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-BM4iUYhq.js → Permissions-Ct7bwrz8.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-BFFOGNIt.js → PersonalDataHub-DG9c1eas.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-CfgXjou1.js → Pipeline-BwQnEqG0.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-B5BKvDsX.js → Privacy-BvWaf-Ba.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-YdvJ_Keh.js → ProjectInit-BFzMHtiW.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-2WrdaB3v.js → ProjectSettings-DDpokSpH.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-DIziui4g.js → Projects-3IL8lyPl.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-B6_KBUE6.js → Providers-C6BsEzSR.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-CrNUnzCS.js → QuickAsk-Mh6690Ey.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-C776RdRO.js → Recommend-CJbZ6wgA.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-RMht4VQm.js → Reputation-GDcyl6iQ.js} +1 -1
- package/src/assets/web-panel/assets/{Row-D0WYOsJu.js → Row-6p4DKFSi.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-BVPn-wVM.js → RssFeed-BLhrkoDq.js} +3 -3
- package/src/assets/web-panel/assets/{Search-5G03gU05.js → Search-Ckiyt35t.js} +1 -1
- package/src/assets/web-panel/assets/{Security-B7_HAVGp.js → Security-qhh-B5Qt.js} +4 -4
- package/src/assets/web-panel/assets/{Services-DG-gNQSw.js → Services-D7a2OwKm.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-DXUXpGp2.js → Skeleton-CSMxupKd.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-D19MUfuA.js → Skills-CGpMng8w.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-DZdS2c4B.js → Sla-CYtaU3Ar.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-DEWyi82O.js → SpeechSettings-BTCsu1uM.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-COwILO7T.js → SyncSettings-Cnzx2L5I.js} +2 -2
- package/src/assets/web-panel/assets/Tasks-BhnGtqaZ.js +1 -0
- package/src/assets/web-panel/assets/{Templates-CouCONlo.js → Templates-Ccdx_C3w.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-DJF8zjXy.js → Tenant-ZN8c86j3.js} +1 -1
- package/src/assets/web-panel/assets/Terminal-BfgM0oyN.js +3 -0
- package/src/assets/web-panel/assets/{TimelineRenderer-Hd1UCvLm.js → TimelineRenderer-CjgirE9d.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-DvR4eNpx.js → Tokens-QoRpi6Wf.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-CYslzJDF.js → Trigger-CEQKJkhs.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-Bje6U7_E.js → Trust-UTuAzV1q.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-Cz-GZJDg.js → UkeySign-JDs9I7fl.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-Bb1UWWOc.js → VideoEditing-BACYQQSd.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-B2ZGejOh.js → Wallet-C-SKluhH.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-CKJmoHdr.js → WebAuthn-9chizTFy.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-Whk2YLrb.js → WorkflowEditor-0mF-LAUo.js} +1 -1
- package/src/assets/web-panel/assets/{chat-RoIuy9Y2.js → chat-Di7QINiP.js} +1 -1
- package/src/assets/web-panel/assets/{colors-BhEd_bKZ.js → colors-SBmhHMM9.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-CidH0uK1.js → compact-item-BmbETbNj.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-C_rRS-Ds.js → createContext-C7hFnsJ7.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-gNvbyy4j.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-CmeIRIpe.js → hasIn-CFtthKDD.js} +1 -1
- package/src/assets/web-panel/assets/{index-ys4rkmSl.js → index-B4etIqbf.js} +1 -1
- package/src/assets/web-panel/assets/{index-dMw41BZp.js → index-BCcCs7LJ.js} +1 -1
- package/src/assets/web-panel/assets/index-BNXpMnIY.js +1 -0
- package/src/assets/web-panel/assets/{index-DLQQetVM.js → index-BT2uOwmA.js} +1 -1
- package/src/assets/web-panel/assets/{index-CcXsvVqO.js → index-BcRTX_WO.js} +1 -1
- package/src/assets/web-panel/assets/{index-Luxberfg.js → index-BcawAm_i.js} +1 -1
- package/src/assets/web-panel/assets/{index-_dSvONj9.js → index-Bpo7UVJe.js} +1 -1
- package/src/assets/web-panel/assets/{index-CNIuqDnx.js → index-C07kpleB.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ds3Cg0Ae.js → index-C2CN7coN.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ruva8uPi.js → index-C2fhXmhW.js} +1 -1
- package/src/assets/web-panel/assets/{index-CWd-l-yG.js → index-C6tZzsb9.js} +1 -1
- package/src/assets/web-panel/assets/{index-CoGpLFSs.js → index-CNpb8m5a.js} +1 -1
- package/src/assets/web-panel/assets/{index-DT1y-Y3f.js → index-CSnTUPQx.js} +3 -3
- package/src/assets/web-panel/assets/{index-qksnYfTn.js → index-CWDk3nDZ.js} +1 -1
- package/src/assets/web-panel/assets/{index-CX3pUViM.js → index-CcBhsVYn.js} +1 -1
- package/src/assets/web-panel/assets/{index-DjMeZpai.js → index-CgXQwqXr.js} +1 -1
- package/src/assets/web-panel/assets/{index-DPvldj2b.js → index-Cib-RTws.js} +1 -1
- package/src/assets/web-panel/assets/{index-DBkcH93B.js → index-ClIp4Vin.js} +1 -1
- package/src/assets/web-panel/assets/{index-DoZHyQzC.js → index-CovTrPpI.js} +1 -1
- package/src/assets/web-panel/assets/{index-CrfbYvUn.js → index-D0yO3vWh.js} +1 -1
- package/src/assets/web-panel/assets/{index-C6k3kLEx.js → index-D134XFWR.js} +1 -1
- package/src/assets/web-panel/assets/{index-r7fl2fJ5.js → index-D6vNUp6c.js} +1 -1
- package/src/assets/web-panel/assets/{index-D-_Hp7sk.js → index-D8CeUlN0.js} +1 -1
- package/src/assets/web-panel/assets/{index-CEQ-hwZR.js → index-DEYnWiq1.js} +1 -1
- package/src/assets/web-panel/assets/{index-B1mwMvn4.js → index-DI2xH1fU.js} +1 -1
- package/src/assets/web-panel/assets/{index-CONjSq4V.js → index-DRBc1Ewn.js} +1 -1
- package/src/assets/web-panel/assets/{index-Np_V608u.js → index-DWfObC0n.js} +1 -1
- package/src/assets/web-panel/assets/{index-CZHr43Om.js → index-Dk4ez5rf.js} +1 -1
- package/src/assets/web-panel/assets/{index-GjeCpE-O.js → index-Dps9xdE8.js} +1 -1
- package/src/assets/web-panel/assets/{index-BzUwFZ_8.js → index-Dww6gCzI.js} +1 -1
- package/src/assets/web-panel/assets/{index-C5PRk4sg.js → index-NxxQTlPJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-CNr2Jahq.js → index-PN02VlUB.js} +1 -1
- package/src/assets/web-panel/assets/{index-B6m1mhdz.js → index-WjZVyLn7.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bx_Je5Dv.js → index-_a2NG3iP.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cb96fe_j.js → index-_hO8-EnW.js} +1 -1
- package/src/assets/web-panel/assets/index-gfHxqT1Q.js +1 -0
- package/src/assets/web-panel/assets/{index-j5F0sAV-.js → index-lRVjtXeH.js} +1 -1
- package/src/assets/web-panel/assets/{index-CqGJIS-s.js → index-sA4vr5WV.js} +1 -1
- package/src/assets/web-panel/assets/{index-IGkFXvXp.js → index-sz0w-D-C.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DkSV8vgw.js → initDefaultProps-B1zCwkvT.js} +1 -1
- package/src/assets/web-panel/assets/{motion-Cp8NKUFr.js → motion-BDGIV9KA.js} +1 -1
- package/src/assets/web-panel/assets/{move-CLyMNWcC.js → move-BITqgluK.js} +1 -1
- package/src/assets/web-panel/assets/{omit-8eo0vufF.js → omit-uD97QKBF.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-DezDJBf9.js → pickAttrs-CZpXhSIE.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-MzOUG99n.js → placementArrow-ByUvT_08.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-BIM3OijT.js → responsiveObserve-BQG9LlBs.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BboGfin4.js → slide-Bx9TyeEE.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-B2H0FDx9.js → statusUtils-XWaMqYM8.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-BEkY7TC8.js → styleChecker-BZ-nMyDB.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-BsmYDsvA.js → useFlexGapSupport-D_iwA3vx.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-CO3oipa2.js → useFs-DuvW_aRX.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-C-yb9KXG.js → usePersonalDataHub-BO7orS0d.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-2w5Ks8oo.js → vnode-Cc_fqAL4.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-BbwfKB6m.js → zoom-BGkBp90M.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/agent.js +4 -0
- package/src/lib/agent-core.js +1 -0
- package/src/lib/cowork-workflow.js +344 -30
- package/src/lib/hook-manager.js +3 -2
- package/src/lib/workflow-state-reader.js +10 -1
- package/src/runtime/headless-stream.js +14 -2
- package/src/assets/web-panel/assets/MobileProjects-Dl8xYWOU.js +0 -1
- package/src/assets/web-panel/assets/Tasks-D-O2-bZx.js +0 -1
- package/src/assets/web-panel/assets/Terminal-BTXj0cal.js +0 -3
- package/src/assets/web-panel/assets/devWarning-CahsJx-O.js +0 -1
- package/src/assets/web-panel/assets/index-BpAHKzLk.js +0 -1
- package/src/assets/web-panel/assets/index-D-uS5svS.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as m,J as y,U as b,R as i,c as a,K as o,V as p,S as k,o as ut,a as ot,b as K,r as _,P as d,Q as u,F as S,Z as R,$ as It}from"./vendor-BvqAck49.js";import{_ as Dt,u as pt,b as ft,d as v}from"./index-DT1y-Y3f.js";import{s as Ut}from"./community-parser-CO25nZFt.js";import{a$ as Pt,f as Mt,ai as Jt,a4 as Bt,o as Vt,Q as Yt,as as qt,R as Gt}from"./icons-DP3uiYxy.js";function Y(e){const n=Ut(e);if(!n)return null;try{return JSON.parse(n)}catch{}const c=n.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!c)return null;try{return JSON.parse(c[0])}catch{return null}}const Ct=Object.freeze(["create_component","add_feature","fix_bug","refactor","add_api","add_test","update_style","configure","general"]),Kt=Object.freeze(["draft","complete","refined"]),Tt=Object.freeze(["naming","architecture","testing","style","imports","components"]);function j(e,n=0){return typeof e=="number"&&Number.isFinite(e)?e:n}function W(e,n){if(e==null)return n;if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function mt(e){const n=Y(e);return!n||typeof n!="object"||Array.isArray(n)?null:{intent:String(n.intent||"general"),confidence:j(n.confidence,0)}}function gt(e){const n=Y(e);if(!n||typeof n!="object"||Array.isArray(n))return null;const c=Array.isArray(n.entities)?n.entities.map(t=>t&&typeof t=="object"?{type:String(t.type||""),value:String(t.value||"")}:null).filter(Boolean):[];return{entities:c,count:j(n.count,c.length)}}function yt(e){const n=Y(e);if(!n||typeof n!="object"||Array.isArray(n))return null;const c=Array.isArray(n.detected)?n.detected.filter(t=>typeof t=="string"):[];return{detected:c,primary:n.primary?String(n.primary):c[0]||null}}function Wt(e,n=0){if(!e||typeof e!="object")return null;const c=e.id||"";return c?{key:c,id:c,inputText:e.inputText??e.input_text??"",intent:String(e.intent||"general"),entities:W(e.entities,[]),techStack:W(e.techStack??e.tech_stack,[]),spec:W(e.spec,null),completenessScore:j(e.completenessScore??e.completeness_score,0),ambiguities:W(e.ambiguities,[]),status:String(e.status||"draft").toLowerCase(),createdAt:e.createdAt??e.created_at??null,updatedAt:e.updatedAt??e.updated_at??null,_idx:n}:null}function vt(e){const n=Y(e);return Array.isArray(n)?n.map(Wt).filter(Boolean):[]}function bt(e){const n=Y(e);return!n||typeof n!="object"||Array.isArray(n)||n.translationId===void 0?null:{translated:!!n.translated,translationId:n.translationId,intent:String(n.intent||""),completeness:j(n.completeness,0)}}function _t(e){if(!e)return{noDb:!1,error:""};const n=/No ChainlessChain project database/i.test(e)||/Cannot read properties of undefined \(reading ['"]prepare['"]\)/i.test(e)||/TypeError.*prepare/i.test(e),c=e.match(/Error:\s*(No ChainlessChain project database[^\r\n]*)/i);if(c)return{noDb:!0,error:c[1].trim()};const t=e.match(/TypeError:\s*(.+?)(?:\r?\n|$)/i);return{noDb:n,error:t?t[1].trim():""}}function Qt(e,n=0){if(!e||typeof e!="object")return null;const c=e.id||"";return c?{key:c,id:c,category:String(e.category||""),pattern:String(e.pattern||""),examples:W(e.examples,[]),confidence:j(e.confidence,0),sourceFiles:W(e.sourceFiles??e.source_files,[]),createdAt:e.createdAt??e.created_at??null,_idx:n}:null}function kt(e){const n=Y(e);return Array.isArray(n)?n.map(Qt).filter(Boolean):[]}const Zt={translations:{total:0,byIntent:{},byStatus:{draft:0,complete:0,refined:0},avgCompleteness:0},conventions:{total:0,byCategory:{}}};function xt(e){const n=JSON.parse(JSON.stringify(Zt));for(const t of Ct)n.translations.byIntent[t]=0;for(const t of Tt)n.conventions.byCategory[t]=0;const c=Y(e);if(!c||typeof c!="object"||Array.isArray(c))return n;if(c.translations&&typeof c.translations=="object"){if(n.translations.total=j(c.translations.total,0),n.translations.avgCompleteness=j(c.translations.avgCompleteness??c.translations.avg_completeness,0),c.translations.byIntent&&typeof c.translations.byIntent=="object")for(const[t,z]of Object.entries(c.translations.byIntent))typeof z=="number"&&Number.isFinite(z)&&(n.translations.byIntent[t]=z);if(c.translations.byStatus&&typeof c.translations.byStatus=="object")for(const t of Object.keys(n.translations.byStatus))n.translations.byStatus[t]=j(c.translations.byStatus[t],0)}if(c.conventions&&typeof c.conventions=="object"&&(n.conventions.total=j(c.conventions.total,0),c.conventions.byCategory&&typeof c.conventions.byCategory=="object"))for(const[t,z]of Object.entries(c.conventions.byCategory))typeof z=="number"&&Number.isFinite(z)&&(n.conventions.byCategory[t]=z);return n}function Ht(e){if(e==null||e==="")return"—";const n=typeof e=="number"?new Date(e):new Date(String(e));return isNaN(n.getTime())?String(e):n.toLocaleString("zh-CN",{hour12:!1})}const Xt={__name:"NLProgramming",setup(e,{expose:n}){n();const c=pt(),{t}=ft(),z=_(!1),X=_(!1),F=_(!1),E=_(!1),q=_([]),P=_([]),G=_({translations:{total:0,byIntent:{},byStatus:{draft:0,complete:0,refined:0},avgCompleteness:0},conventions:{total:0,byCategory:{}}}),I=_("translations"),A=_(""),N=_(""),Q=_(""),C=_(!1),O=_(!1),M=_(!1),Z=_(!1),H=ot({text:""}),w=ot({text:"",intent:null}),x=ot({category:"naming",pattern:"",examples:"",confidence:.8}),J=_(null),L=_(null),T=_(null),D=_({noDb:!1,error:""}),B=_(null),$=K(()=>[{title:t("nlprog.translationCols.inputText"),key:"inputText"},{title:t("nlprog.translationCols.intent"),key:"intent",width:"140px"},{title:t("nlprog.translationCols.completeness"),key:"completeness",width:"160px"},{title:t("nlprog.translationCols.status"),key:"status",width:"100px"},{title:t("nlprog.translationCols.updatedAt"),key:"updatedAt",width:"160px"},{title:t("nlprog.translationCols.action"),key:"action",width:"210px"}]),tt=K(()=>[{title:t("nlprog.conventionCols.category"),key:"category",width:"120px"},{title:t("nlprog.conventionCols.pattern"),key:"pattern"},{title:t("nlprog.conventionCols.examples"),key:"examples",width:"220px"},{title:t("nlprog.conventionCols.confidence"),key:"confidence",width:"90px"},{title:t("nlprog.conventionCols.createdAt"),key:"createdAt",width:"160px"},{title:t("nlprog.conventionCols.action"),key:"action",width:"90px"}]),at=K(()=>G.value.translations.avgCompleteness*100),lt=K(()=>{let r=q.value;return A.value&&(r=r.filter(s=>s.intent===A.value)),N.value&&(r=r.filter(s=>s.status===N.value)),r}),rt=K(()=>Q.value?P.value.filter(r=>r.category===Q.value):P.value);function U(r){const s=`nlprog.intentLabels.${r}`,g=t(s);return g===s?r:g}function st(r){return{create_component:"blue",add_feature:"green",fix_bug:"red",refactor:"purple",add_api:"cyan",add_test:"orange",update_style:"magenta",configure:"gold",general:"default"}[r]||"default"}function l(r){const s=`nlprog.statusLabels.${r}`,g=t(s);return g===s?r:g}function f(r){return{draft:"default",complete:"green",refined:"cyan"}[r]||"default"}function h(r){const s=`nlprog.categoryLabels.${r}`,g=t(s);return g===s?r:g}function ht(r){return{naming:"blue",architecture:"purple",testing:"cyan",style:"magenta",imports:"orange",components:"green"}[r]||"default"}function St(r){return r>=.7?"#52c41a":r>=.4?"#faad14":"#ff4d4f"}function zt(r,s){return r?r.length>s?r.slice(0,s)+"...":r:""}function At(r){if(r==null)return"—";if(typeof r=="string")return r;try{return JSON.stringify(r,null,2)}catch{return String(r)}}function Ft({key:r}){r==="analyze"?(J.value=null,L.value=null,T.value=null,C.value=!0):r==="translate"?(D.value={noDb:!1,error:""},O.value=!0):r==="convention"&&(M.value=!0)}async function V(){z.value=!0;try{const[r,s,g]=await Promise.all([c.execute("nlprog list --limit 200 --json",1e4).catch(()=>({output:""})),c.execute("nlprog conventions --limit 200 --json",1e4).catch(()=>({output:""})),c.execute("nlprog stats --json",8e3).catch(()=>({output:""}))]);q.value=vt(r.output),P.value=kt(s.output),G.value=xt(g.output)}catch(r){v.error(t("nlprog.msg.loadFailed")+": "+(r?.message||r))}finally{z.value=!1}}async function Ot(){const r=H.text.trim();if(!r){v.warning(t("nlprog.msg.textEmpty"));return}X.value=!0,J.value=null,L.value=null,T.value=null;try{const s=r.replace(/"/g,'\\"'),[g,et,nt]=await Promise.all([c.execute(`nlprog classify "${s}" --json`,8e3).catch(()=>({output:""})),c.execute(`nlprog extract "${s}" --json`,8e3).catch(()=>({output:""})),c.execute(`nlprog detect-stack "${s}" --json`,8e3).catch(()=>({output:""}))]);J.value=mt(g.output),L.value=gt(et.output),T.value=yt(nt.output),!J.value&&!L.value&&!T.value&&v.error(t("nlprog.msg.analyzeFailed"))}catch(s){v.error(t("nlprog.msg.analyzeFailed")+": "+(s?.message||s))}finally{X.value=!1}}async function Rt(){const r=w.text.trim();if(!r){v.warning(t("nlprog.msg.translateTextEmpty"));return}F.value=!0,D.value={noDb:!1,error:""};try{const s=[`nlprog translate "${r.replace(/"/g,'\\"')}"`];w.intent&&s.push(`--intent ${w.intent}`),s.push("--json");const{output:g}=await c.execute(s.join(" "),12e3),et=_t(g);if(et.noDb){D.value=et;return}const nt=bt(g);if(!nt){v.error(t("nlprog.msg.translateFailed")+": "+g.slice(0,120));return}v.success(t("nlprog.msg.translateSuccess",{pct:(nt.completeness*100).toFixed(0)})),O.value=!1,it(),await V()}catch(s){v.error(t("nlprog.msg.translateFailed")+": "+(s?.message||s))}finally{F.value=!1}}async function Nt(r,s){if(s!==r.status)try{const{output:g}=await c.execute(`nlprog status ${r.id} ${s} --json`,8e3);if(/error|invalid/i.test(g)&&!/"updated"/.test(g)){v.error(t("nlprog.msg.transitionFailed")+": "+g.slice(0,120));return}v.success(t("nlprog.msg.transitionSuccess",{label:l(s)})),await V()}catch(g){v.error(t("nlprog.msg.transitionFailed")+": "+(g?.message||g))}}async function wt(r){try{const{output:s}=await c.execute(`nlprog remove ${r.id} --json`,8e3);if(/error/i.test(s)&&!/"removed"/.test(s)){v.error(t("nlprog.msg.deleteFailed")+": "+s.slice(0,120));return}v.success(t("nlprog.msg.deleteSuccess")),await V()}catch(s){v.error(t("nlprog.msg.deleteFailed")+": "+(s?.message||s))}}function Lt(r){B.value=r,Z.value=!0}async function jt(){const r=x.pattern.trim();if(!r){v.warning(t("nlprog.msg.patternEmpty"));return}if(x.examples.trim())try{JSON.parse(x.examples)}catch{v.warning(t("nlprog.msg.examplesBadJson"));return}E.value=!0;try{const s=[`nlprog convention-add --category ${x.category}`];s.push(`--pattern "${r.replace(/"/g,'\\"')}"`),x.examples.trim()&&s.push(`--examples '${x.examples.trim().replace(/'/g,"'\\''")}'`),x.confidence!=null&&s.push(`--confidence ${x.confidence}`),s.push("--json");const{output:g}=await c.execute(s.join(" "),1e4);if(/error|invalid|失败/i.test(g)&&!/"added"/.test(g)){v.error(t("nlprog.msg.addFailed")+": "+g.slice(0,120));return}v.success(t("nlprog.msg.addSuccess")),M.value=!1,ct(),I.value="conventions",await V()}catch(s){v.error(t("nlprog.msg.addFailed")+": "+(s?.message||s))}finally{E.value=!1}}async function Et(r){try{const{output:s}=await c.execute(`nlprog convention-remove ${r.id} --json`,8e3);if(/error/i.test(s)&&!/"removed"/.test(s)){v.error(t("nlprog.msg.deleteFailed")+": "+s.slice(0,120));return}v.success(t("nlprog.msg.deleteSuccess")),await V()}catch(s){v.error(t("nlprog.msg.deleteFailed")+": "+(s?.message||s))}}function it(){w.text="",w.intent=null}function ct(){x.category="naming",x.pattern="",x.examples="",x.confidence=.8}ut(V);const dt={ws:c,t,loading:z,analyzing:X,translating:F,adding:E,translations:q,conventions:P,stats:G,activeTab:I,intentFilter:A,statusFilter:N,categoryFilter:Q,showAnalyzeModal:C,showTranslateModal:O,showConventionModal:M,showDetailsModal:Z,analyzeForm:H,translateForm:w,conventionForm:x,classifyResult:J,extractResult:L,stackResult:T,translateError:D,currentTranslation:B,translationColumns:$,conventionColumns:tt,avgCompletenessPct:at,filteredTranslations:lt,filteredConventions:rt,intentLabel:U,intentColor:st,statusLabel:l,statusColor:f,categoryLabel:h,categoryColor:ht,completenessColor:St,truncate:zt,formatJson:At,handleNewClick:Ft,loadAll:V,runAnalyze:Ot,runTranslate:Rt,transitionStatus:Nt,removeTranslation:wt,showTranslationDetails:Lt,addConvention:jt,removeConvention:Et,resetTranslateForm:it,resetConventionForm:ct,ref:_,computed:K,onMounted:ut,reactive:ot,get ReloadOutlined(){return Gt},get PlusOutlined(){return qt},get CodeOutlined(){return Yt},get BulbOutlined(){return Vt},get FileTextOutlined(){return Bt},get EditOutlined(){return Jt},get CheckCircleOutlined(){return Mt},get RiseOutlined(){return Pt},get message(){return v},get useI18n(){return ft},get useWsStore(){return pt},get parseClassifyResult(){return mt},get parseExtractResult(){return gt},get parseStackResult(){return yt},get parseTranslations(){return vt},get parseTranslateResult(){return bt},get detectTranslateError(){return _t},get parseConventions(){return kt},get parseStats(){return xt},get formatNlprogTime(){return Ht},get INTENTS(){return Ct},get TRANSLATION_STATUSES(){return Kt},get STYLE_CATEGORIES(){return Tt}};return Object.defineProperty(dt,"__isScriptSetup",{enumerable:!1,value:!0}),dt}},$t={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},te={class:"page-title"},ee={class:"page-sub"},ne={class:"filter-bar"},oe={key:0,style:{color:"var(--text-primary)"}},ae={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},le={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},re={class:"filter-bar"},se={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},ie={key:0,style:{color:"var(--text-muted)"}},ce={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},de={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ue={key:0,style:{"margin-bottom":"12px"}},pe={style:{"font-size":"12px",color:"var(--text-secondary)","margin-bottom":"4px"}},fe={style:{color:"var(--text-secondary)","font-size":"12px"}},me={key:1,style:{"margin-bottom":"12px"}},ge={style:{"font-size":"12px",color:"var(--text-secondary)","margin-bottom":"4px"}},ye={key:0,style:{color:"var(--text-muted)"}},ve={key:2},be={style:{"font-size":"12px",color:"var(--text-secondary)","margin-bottom":"4px"}},_e={key:0,style:{color:"var(--text-muted)"}},ke={key:0,style:{"padding-top":"8px"}},xe={style:{"white-space":"pre-wrap",color:"var(--text-primary)"}},Ce={style:{"margin-top":"16px"}},Te={style:{color:"var(--text-primary)","font-size":"13px","margin-bottom":"8px"}},he={class:"json-block"},Se={style:{color:"var(--text-primary)","font-size":"13px","margin-bottom":"8px"}},ze={class:"json-block"},Ae={key:0},Fe={style:{color:"var(--text-primary)","font-size":"13px","margin-bottom":"8px"}},Oe={class:"json-block"};function Re(e,n,c,t,z,X){const F=m("a-button"),E=m("a-menu-item"),q=m("a-menu"),P=m("a-dropdown"),G=m("a-space"),I=m("a-statistic"),A=m("a-card"),N=m("a-col"),Q=m("a-row"),C=m("a-tag"),O=m("a-radio-button"),M=m("a-radio-group"),Z=m("a-progress"),H=m("a-popconfirm"),w=m("a-table"),x=m("a-tab-pane"),J=m("a-tabs"),L=m("a-textarea"),T=m("a-form-item"),D=m("a-form"),B=m("a-modal"),$=m("a-select-option"),tt=m("a-select"),at=m("a-alert"),lt=m("a-input"),rt=m("a-input-number"),U=m("a-descriptions-item"),st=m("a-descriptions");return d(),y("div",null,[b("div",$t,[b("div",null,[b("h2",te,i(e.$t("nlprog.title")),1),b("p",ee,i(e.$t("nlprog.subtitle")),1)]),a(G,null,{default:o(()=>[a(F,{loading:t.loading,onClick:t.loadAll},{icon:o(()=>[a(t.ReloadOutlined)]),default:o(()=>[u(" "+i(e.$t("nlprog.refresh")),1)]),_:1},8,["loading"]),a(P,{trigger:["click"]},{overlay:o(()=>[a(q,{onClick:t.handleNewClick},{default:o(()=>[a(E,{key:"analyze"},{default:o(()=>[a(t.BulbOutlined),u(" "+i(e.$t("nlprog.actions.analyze")),1)]),_:1}),a(E,{key:"translate"},{default:o(()=>[a(t.CodeOutlined),u(" "+i(e.$t("nlprog.actions.translate")),1)]),_:1}),a(E,{key:"convention"},{default:o(()=>[a(t.FileTextOutlined),u(" "+i(e.$t("nlprog.actions.convention")),1)]),_:1})]),_:1})]),default:o(()=>[a(F,{type:"primary"},{icon:o(()=>[a(t.PlusOutlined)]),default:o(()=>[u(" "+i(e.$t("nlprog.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),p(" Stat cards "),a(Q,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[a(N,{xs:12,sm:8,lg:5},{default:o(()=>[a(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(I,{title:e.$t("nlprog.stats.translations"),value:t.stats.translations.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[a(t.CodeOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(N,{xs:12,sm:8,lg:5},{default:o(()=>[a(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(I,{title:e.$t("nlprog.stats.avgCompleteness"),value:t.avgCompletenessPct,precision:1,suffix:"%","value-style":{color:t.stats.translations.avgCompleteness>=.7?"#52c41a":"#faad14",fontSize:"20px"}},{prefix:o(()=>[a(t.RiseOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(N,{xs:12,sm:8,lg:5},{default:o(()=>[a(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(I,{title:e.$t("nlprog.stats.drafts"),value:t.stats.translations.byStatus.draft,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:o(()=>[a(t.EditOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(N,{xs:12,sm:8,lg:5},{default:o(()=>[a(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(I,{title:e.$t("nlprog.stats.completed"),value:t.stats.translations.byStatus.complete,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[a(t.CheckCircleOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(N,{xs:24,sm:8,lg:4},{default:o(()=>[a(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(I,{title:e.$t("nlprog.stats.conventions"),value:t.stats.conventions.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[a(t.FileTextOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),p(" Intent breakdown "),t.stats.translations.total>0?(d(),k(A,{key:0,title:e.$t("nlprog.intentCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:o(()=>[a(G,{size:[12,8],wrap:""},{default:o(()=>[(d(!0),y(S,null,R(t.INTENTS,l=>(d(),k(C,{key:l,color:t.intentColor(l)},{default:o(()=>[u(i(t.intentLabel(l))+": "+i(t.stats.translations.byIntent[l]||0),1)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):p("v-if",!0),p(" Tabs "),a(J,{activeKey:t.activeTab,"onUpdate:activeKey":n[3]||(n[3]=l=>t.activeTab=l),class:"nlprog-tabs"},{default:o(()=>[p(" ── Translations tab ──────────────────────────────────────── "),a(x,{key:"translations",tab:e.$t("nlprog.tabs.translations")},{default:o(()=>[b("div",ne,[a(M,{value:t.intentFilter,"onUpdate:value":n[0]||(n[0]=l=>t.intentFilter=l),size:"small"},{default:o(()=>[a(O,{value:""},{default:o(()=>[u(i(e.$t("nlprog.filter.allIntents")),1)]),_:1}),(d(!0),y(S,null,R(t.INTENTS,l=>(d(),k(O,{key:l,value:l},{default:o(()=>[u(i(t.intentLabel(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(M,{value:t.statusFilter,"onUpdate:value":n[1]||(n[1]=l=>t.statusFilter=l),size:"small","button-style":"solid"},{default:o(()=>[a(O,{value:""},{default:o(()=>[u(i(e.$t("nlprog.filter.allStatuses")),1)]),_:1}),(d(!0),y(S,null,R(t.TRANSLATION_STATUSES,l=>(d(),k(O,{key:l,value:l},{default:o(()=>[u(i(t.statusLabel(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(w,{columns:t.translationColumns,"data-source":t.filteredTranslations,pagination:{pageSize:20,showTotal:l=>e.$t("nlprog.table.totalSuffix",{n:l})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:l,record:f})=>[l.key==="inputText"?(d(),y("span",oe,i(t.truncate(f.inputText,80)),1)):p("v-if",!0),l.key==="intent"?(d(),k(C,{key:1,color:t.intentColor(f.intent),style:{"font-size":"11px"}},{default:o(()=>[u(i(t.intentLabel(f.intent)),1)]),_:2},1032,["color"])):p("v-if",!0),l.key==="completeness"?(d(),k(Z,{key:2,percent:Math.round(f.completenessScore*100),size:"small","stroke-color":t.completenessColor(f.completenessScore),format:()=>(f.completenessScore*100).toFixed(0)+"%"},null,8,["percent","stroke-color","format"])):p("v-if",!0),l.key==="status"?(d(),k(C,{key:3,color:t.statusColor(f.status)},{default:o(()=>[u(i(t.statusLabel(f.status)),1)]),_:2},1032,["color"])):p("v-if",!0),l.key==="updatedAt"?(d(),y("span",ae,i(t.formatNlprogTime(f.updatedAt)),1)):p("v-if",!0),l.key==="action"?(d(),y(S,{key:5},[a(F,{size:"small",type:"link",onClick:h=>t.showTranslationDetails(f)},{default:o(()=>[u(i(e.$t("nlprog.table.actionDetails")),1)]),_:1},8,["onClick"]),a(P,{trigger:["click"]},{overlay:o(()=>[a(q,{onClick:h=>t.transitionStatus(f,h.key)},{default:o(()=>[(d(!0),y(S,null,R(t.TRANSLATION_STATUSES,h=>(d(),k(E,{key:h,disabled:h===f.status},{default:o(()=>[u(i(t.statusLabel(h)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:o(()=>[a(F,{size:"small",type:"link"},{default:o(()=>[u(i(e.$t("nlprog.table.actionStatusDropdown")),1)]),_:1})]),_:2},1024),a(H,{title:e.$t("nlprog.deleteTranslationConfirm.title"),"ok-text":e.$t("nlprog.deleteTranslationConfirm.ok"),"cancel-text":e.$t("nlprog.deleteTranslationConfirm.cancel"),onConfirm:h=>t.removeTranslation(f)},{default:o(()=>[a(F,{size:"small",type:"link",danger:""},{default:o(()=>[u(i(e.$t("nlprog.deleteTranslationConfirm.ok")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):p("v-if",!0)]),emptyText:o(()=>[b("div",le,[a(t.CodeOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),u(" "+i(t.intentFilter||t.statusFilter?e.$t("nlprog.table.emptyTranslationsFiltered"):e.$t("nlprog.table.emptyTranslations")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),p(" ── Conventions tab ──────────────────────────────────────── "),a(x,{key:"conventions",tab:e.$t("nlprog.tabs.conventions")},{default:o(()=>[b("div",re,[a(M,{value:t.categoryFilter,"onUpdate:value":n[2]||(n[2]=l=>t.categoryFilter=l),size:"small","button-style":"solid"},{default:o(()=>[a(O,{value:""},{default:o(()=>[u(i(e.$t("nlprog.filter.allCategories")),1)]),_:1}),(d(!0),y(S,null,R(t.STYLE_CATEGORIES,l=>(d(),k(O,{key:l,value:l},{default:o(()=>[u(i(t.categoryLabel(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(w,{columns:t.conventionColumns,"data-source":t.filteredConventions,pagination:{pageSize:20,showTotal:l=>e.$t("nlprog.table.totalSuffix",{n:l})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:l,record:f})=>[l.key==="category"?(d(),k(C,{key:0,color:t.categoryColor(f.category)},{default:o(()=>[u(i(t.categoryLabel(f.category)),1)]),_:2},1032,["color"])):p("v-if",!0),l.key==="pattern"?(d(),y("span",se,i(f.pattern),1)):p("v-if",!0),l.key==="examples"?(d(),y(S,{key:2},[(d(!0),y(S,null,R(Array.isArray(f.examples)?f.examples.slice(0,3):[],h=>(d(),k(C,{key:h,color:"default",style:{"font-size":"10px","font-family":"monospace",margin:"1px"}},{default:o(()=>[u(i(h),1)]),_:2},1024))),128)),!Array.isArray(f.examples)||f.examples.length===0?(d(),y("span",ie,"—")):p("v-if",!0)],64)):p("v-if",!0),l.key==="confidence"?(d(),y("span",{key:3,style:It({color:t.completenessColor(f.confidence),fontWeight:500})},i((f.confidence*100).toFixed(0))+"% ",5)):p("v-if",!0),l.key==="createdAt"?(d(),y("span",ce,i(t.formatNlprogTime(f.createdAt)),1)):p("v-if",!0),l.key==="action"?(d(),k(H,{key:5,title:e.$t("nlprog.deleteConventionConfirm.title"),"ok-text":e.$t("nlprog.deleteConventionConfirm.ok"),"cancel-text":e.$t("nlprog.deleteConventionConfirm.cancel"),onConfirm:h=>t.removeConvention(f)},{default:o(()=>[a(F,{size:"small",type:"link",danger:""},{default:o(()=>[u(i(e.$t("nlprog.deleteConventionConfirm.ok")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):p("v-if",!0)]),emptyText:o(()=>[b("div",de,[a(t.FileTextOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),u(" "+i(e.$t("nlprog.table.emptyConventions")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),p(" ── Analyze modal ────────────────────────────────────────── "),a(B,{open:t.showAnalyzeModal,"onUpdate:open":n[5]||(n[5]=l=>t.showAnalyzeModal=l),title:e.$t("nlprog.analyze_modal.title"),"confirm-loading":t.analyzing,width:600,"ok-text":e.$t("nlprog.analyze_modal.ok"),"cancel-text":e.$t("nlprog.analyze_modal.cancel"),onOk:t.runAnalyze},{default:o(()=>[a(D,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[a(T,{label:e.$t("nlprog.analyze_modal.textLabel"),required:""},{default:o(()=>[a(L,{value:t.analyzeForm.text,"onUpdate:value":n[4]||(n[4]=l=>t.analyzeForm.text=l),placeholder:e.$t("nlprog.analyze_modal.textPlaceholder"),"auto-size":{minRows:3,maxRows:6}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),t.classifyResult||t.extractResult||t.stackResult?(d(),k(A,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:o(()=>[t.classifyResult?(d(),y("div",ue,[b("div",pe,i(e.$t("nlprog.analyze_modal.intent")),1),a(C,{color:t.intentColor(t.classifyResult.intent),style:{"margin-right":"6px"}},{default:o(()=>[u(i(t.intentLabel(t.classifyResult.intent)),1)]),_:1},8,["color"]),b("span",fe,i(e.$t("nlprog.analyze_modal.confidenceLine",{pct:(t.classifyResult.confidence*100).toFixed(0)})),1)])):p("v-if",!0),t.extractResult?(d(),y("div",me,[b("div",ge,i(e.$t("nlprog.analyze_modal.entities",{n:t.extractResult.count})),1),t.extractResult.entities.length?p("v-if",!0):(d(),y("span",ye,i(e.$t("nlprog.analyze_modal.notDetected")),1)),(d(!0),y(S,null,R(t.extractResult.entities,(l,f)=>(d(),k(C,{key:f,color:"purple",style:{"font-family":"monospace","font-size":"11px",margin:"1px"}},{default:o(()=>[u(" ["+i(l.type)+"] "+i(l.value),1)]),_:2},1024))),128))])):p("v-if",!0),t.stackResult?(d(),y("div",ve,[b("div",be,i(e.$t("nlprog.analyze_modal.stack")),1),t.stackResult.detected.length?(d(),y(S,{key:1},[a(C,{color:"cyan",style:{"font-family":"monospace"}},{default:o(()=>[u(i(e.$t("nlprog.analyze_modal.stackPrimary",{name:t.stackResult.primary})),1)]),_:1}),(d(!0),y(S,null,R(t.stackResult.detected.filter(l=>l!==t.stackResult.primary),l=>(d(),k(C,{key:l,color:"default",style:{"font-family":"monospace","font-size":"11px"}},{default:o(()=>[u(i(l),1)]),_:2},1024))),128))],64)):(d(),y("span",_e,i(e.$t("nlprog.analyze_modal.notDetected")),1))])):p("v-if",!0)]),_:1})):p("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" ── Translate modal ──────────────────────────────────────── "),a(B,{open:t.showTranslateModal,"onUpdate:open":n[8]||(n[8]=l=>t.showTranslateModal=l),title:e.$t("nlprog.translate_modal.title"),"confirm-loading":t.translating,width:540,"ok-text":e.$t("nlprog.translate_modal.ok"),"cancel-text":e.$t("nlprog.translate_modal.cancel"),onOk:t.runTranslate,onCancel:t.resetTranslateForm},{default:o(()=>[a(D,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[a(T,{label:e.$t("nlprog.translate_modal.textLabel"),required:""},{default:o(()=>[a(L,{value:t.translateForm.text,"onUpdate:value":n[6]||(n[6]=l=>t.translateForm.text=l),placeholder:e.$t("nlprog.translate_modal.textPlaceholder"),"auto-size":{minRows:3,maxRows:6}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(T,{label:e.$t("nlprog.translate_modal.intentLabel")},{default:o(()=>[a(tt,{value:t.translateForm.intent,"onUpdate:value":n[7]||(n[7]=l=>t.translateForm.intent=l),"allow-clear":"",placeholder:e.$t("nlprog.translate_modal.intentPlaceholder")},{default:o(()=>[(d(!0),y(S,null,R(t.INTENTS,l=>(d(),k($,{key:l,value:l},{default:o(()=>[u(i(t.intentLabel(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),t.translateError.noDb?(d(),k(at,{key:0,type:"warning","show-icon":"",message:e.$t("nlprog.translate_modal.noDbMessage"),description:e.$t("nlprog.translate_modal.noDbDescription"),style:{"margin-top":"12px"}},null,8,["message","description"])):p("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" ── Add convention modal ─────────────────────────────────── "),a(B,{open:t.showConventionModal,"onUpdate:open":n[13]||(n[13]=l=>t.showConventionModal=l),title:e.$t("nlprog.convention_modal.title"),"confirm-loading":t.adding,width:540,"ok-text":e.$t("nlprog.convention_modal.ok"),"cancel-text":e.$t("nlprog.convention_modal.cancel"),onOk:t.addConvention,onCancel:t.resetConventionForm},{default:o(()=>[a(D,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[a(T,{label:e.$t("nlprog.convention_modal.categoryLabel"),required:""},{default:o(()=>[a(tt,{value:t.conventionForm.category,"onUpdate:value":n[9]||(n[9]=l=>t.conventionForm.category=l)},{default:o(()=>[(d(!0),y(S,null,R(t.STYLE_CATEGORIES,l=>(d(),k($,{key:l,value:l},{default:o(()=>[u(i(t.categoryLabel(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),a(T,{label:e.$t("nlprog.convention_modal.patternLabel"),required:""},{default:o(()=>[a(lt,{value:t.conventionForm.pattern,"onUpdate:value":n[10]||(n[10]=l=>t.conventionForm.pattern=l),placeholder:e.$t("nlprog.convention_modal.patternPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(T,{label:e.$t("nlprog.convention_modal.examplesLabel")},{default:o(()=>[a(L,{value:t.conventionForm.examples,"onUpdate:value":n[11]||(n[11]=l=>t.conventionForm.examples=l),placeholder:e.$t("nlprog.convention_modal.examplesPlaceholder"),"auto-size":{minRows:2,maxRows:4}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(T,{label:e.$t("nlprog.convention_modal.confidenceLabel")},{default:o(()=>[a(rt,{value:t.conventionForm.confidence,"onUpdate:value":n[12]||(n[12]=l=>t.conventionForm.confidence=l),min:0,max:1,step:.05,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" ── Translation details modal ────────────────────────────── "),a(B,{open:t.showDetailsModal,"onUpdate:open":n[14]||(n[14]=l=>t.showDetailsModal=l),title:e.$t("nlprog.details.title",{id:t.currentTranslation?.id?.slice(0,8)||""}),width:720,footer:null},{default:o(()=>[t.currentTranslation?(d(),y("div",ke,[a(st,{column:2,size:"small",bordered:""},{default:o(()=>[a(U,{label:e.$t("nlprog.details.intent")},{default:o(()=>[a(C,{color:t.intentColor(t.currentTranslation.intent)},{default:o(()=>[u(i(t.intentLabel(t.currentTranslation.intent)),1)]),_:1},8,["color"])]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.details.status")},{default:o(()=>[a(C,{color:t.statusColor(t.currentTranslation.status)},{default:o(()=>[u(i(t.statusLabel(t.currentTranslation.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.details.completeness"),span:2},{default:o(()=>[a(Z,{percent:Math.round(t.currentTranslation.completenessScore*100),"stroke-color":t.completenessColor(t.currentTranslation.completenessScore),size:"small"},null,8,["percent","stroke-color"])]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.details.createdAt")},{default:o(()=>[u(i(t.formatNlprogTime(t.currentTranslation.createdAt)),1)]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.details.updatedAt")},{default:o(()=>[u(i(t.formatNlprogTime(t.currentTranslation.updatedAt)),1)]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.details.inputText"),span:2},{default:o(()=>[b("span",xe,i(t.currentTranslation.inputText),1)]),_:1},8,["label"])]),_:1}),b("div",Ce,[b("h4",Te,i(e.$t("nlprog.details.entities")),1),b("pre",he,i(t.formatJson(t.currentTranslation.entities)),1)]),b("div",null,[b("h4",Se,i(e.$t("nlprog.details.techStack")),1),b("pre",ze,i(t.formatJson(t.currentTranslation.techStack)),1)]),t.currentTranslation.spec?(d(),y("div",Ae,[b("h4",Fe,i(e.$t("nlprog.details.spec")),1),b("pre",Oe,i(t.formatJson(t.currentTranslation.spec)),1)])):p("v-if",!0)])):p("v-if",!0)]),_:1},8,["open","title"])])}const Ee=Dt(Xt,[["render",Re],["__scopeId","data-v-4c4216b9"],["__file","/tmp/cc-web-panel-YJBpJd/repo/packages/web-panel/src/views/NLProgramming.vue"]]);export{Ee as default};
|
|
1
|
+
import{I as m,J as y,U as b,R as i,c as a,K as o,V as p,S as k,o as ut,a as ot,b as Y,r as _,P as d,Q as u,F as S,Z as R,$ as It}from"./vendor-BvqAck49.js";import{_ as Dt,u as pt,b as ft,d as v}from"./index-CSnTUPQx.js";import{s as Ut}from"./community-parser-CO25nZFt.js";import{a$ as Pt,f as Mt,ai as Jt,a4 as Bt,o as Gt,Q as Vt,as as qt,R as Kt}from"./icons-DP3uiYxy.js";function V(e){const n=Ut(e);if(!n)return null;try{return JSON.parse(n)}catch{}const c=n.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!c)return null;try{return JSON.parse(c[0])}catch{return null}}const Ct=Object.freeze(["create_component","add_feature","fix_bug","refactor","add_api","add_test","update_style","configure","general"]),Yt=Object.freeze(["draft","complete","refined"]),Tt=Object.freeze(["naming","architecture","testing","style","imports","components"]);function j(e,n=0){return typeof e=="number"&&Number.isFinite(e)?e:n}function Q(e,n){if(e==null)return n;if(typeof e!="string")return e;try{return JSON.parse(e)}catch{return e}}function mt(e){const n=V(e);return!n||typeof n!="object"||Array.isArray(n)?null:{intent:String(n.intent||"general"),confidence:j(n.confidence,0)}}function gt(e){const n=V(e);if(!n||typeof n!="object"||Array.isArray(n))return null;const c=Array.isArray(n.entities)?n.entities.map(t=>t&&typeof t=="object"?{type:String(t.type||""),value:String(t.value||"")}:null).filter(Boolean):[];return{entities:c,count:j(n.count,c.length)}}function yt(e){const n=V(e);if(!n||typeof n!="object"||Array.isArray(n))return null;const c=Array.isArray(n.detected)?n.detected.filter(t=>typeof t=="string"):[];return{detected:c,primary:n.primary?String(n.primary):c[0]||null}}function Qt(e,n=0){if(!e||typeof e!="object")return null;const c=e.id||"";return c?{key:c,id:c,inputText:e.inputText??e.input_text??"",intent:String(e.intent||"general"),entities:Q(e.entities,[]),techStack:Q(e.techStack??e.tech_stack,[]),spec:Q(e.spec,null),completenessScore:j(e.completenessScore??e.completeness_score,0),ambiguities:Q(e.ambiguities,[]),status:String(e.status||"draft").toLowerCase(),createdAt:e.createdAt??e.created_at??null,updatedAt:e.updatedAt??e.updated_at??null,_idx:n}:null}function vt(e){const n=V(e);return Array.isArray(n)?n.map(Qt).filter(Boolean):[]}function bt(e){const n=V(e);return!n||typeof n!="object"||Array.isArray(n)||n.translationId===void 0?null:{translated:!!n.translated,translationId:n.translationId,intent:String(n.intent||""),completeness:j(n.completeness,0)}}function _t(e){if(!e)return{noDb:!1,error:""};const n=/No ChainlessChain project database/i.test(e)||/Cannot read properties of undefined \(reading ['"]prepare['"]\)/i.test(e)||/TypeError.*prepare/i.test(e),c=e.match(/Error:\s*(No ChainlessChain project database[^\r\n]*)/i);if(c)return{noDb:!0,error:c[1].trim()};const t=e.match(/TypeError:\s*(.+?)(?:\r?\n|$)/i);return{noDb:n,error:t?t[1].trim():""}}function Wt(e,n=0){if(!e||typeof e!="object")return null;const c=e.id||"";return c?{key:c,id:c,category:String(e.category||""),pattern:String(e.pattern||""),examples:Q(e.examples,[]),confidence:j(e.confidence,0),sourceFiles:Q(e.sourceFiles??e.source_files,[]),createdAt:e.createdAt??e.created_at??null,_idx:n}:null}function kt(e){const n=V(e);return Array.isArray(n)?n.map(Wt).filter(Boolean):[]}const Zt={translations:{total:0,byIntent:{},byStatus:{draft:0,complete:0,refined:0},avgCompleteness:0},conventions:{total:0,byCategory:{}}};function xt(e){const n=JSON.parse(JSON.stringify(Zt));for(const t of Ct)n.translations.byIntent[t]=0;for(const t of Tt)n.conventions.byCategory[t]=0;const c=V(e);if(!c||typeof c!="object"||Array.isArray(c))return n;if(c.translations&&typeof c.translations=="object"){if(n.translations.total=j(c.translations.total,0),n.translations.avgCompleteness=j(c.translations.avgCompleteness??c.translations.avg_completeness,0),c.translations.byIntent&&typeof c.translations.byIntent=="object")for(const[t,z]of Object.entries(c.translations.byIntent))typeof z=="number"&&Number.isFinite(z)&&(n.translations.byIntent[t]=z);if(c.translations.byStatus&&typeof c.translations.byStatus=="object")for(const t of Object.keys(n.translations.byStatus))n.translations.byStatus[t]=j(c.translations.byStatus[t],0)}if(c.conventions&&typeof c.conventions=="object"&&(n.conventions.total=j(c.conventions.total,0),c.conventions.byCategory&&typeof c.conventions.byCategory=="object"))for(const[t,z]of Object.entries(c.conventions.byCategory))typeof z=="number"&&Number.isFinite(z)&&(n.conventions.byCategory[t]=z);return n}function Ht(e){if(e==null||e==="")return"—";const n=typeof e=="number"?new Date(e):new Date(String(e));return isNaN(n.getTime())?String(e):n.toLocaleString("zh-CN",{hour12:!1})}const Xt={__name:"NLProgramming",setup(e,{expose:n}){n();const c=pt(),{t}=ft(),z=_(!1),X=_(!1),F=_(!1),E=_(!1),q=_([]),P=_([]),K=_({translations:{total:0,byIntent:{},byStatus:{draft:0,complete:0,refined:0},avgCompleteness:0},conventions:{total:0,byCategory:{}}}),I=_("translations"),A=_(""),w=_(""),W=_(""),C=_(!1),O=_(!1),M=_(!1),Z=_(!1),H=ot({text:""}),N=ot({text:"",intent:null}),x=ot({category:"naming",pattern:"",examples:"",confidence:.8}),J=_(null),L=_(null),T=_(null),D=_({noDb:!1,error:""}),B=_(null),$=Y(()=>[{title:t("nlprog.translationCols.inputText"),key:"inputText"},{title:t("nlprog.translationCols.intent"),key:"intent",width:"140px"},{title:t("nlprog.translationCols.completeness"),key:"completeness",width:"160px"},{title:t("nlprog.translationCols.status"),key:"status",width:"100px"},{title:t("nlprog.translationCols.updatedAt"),key:"updatedAt",width:"160px"},{title:t("nlprog.translationCols.action"),key:"action",width:"210px"}]),tt=Y(()=>[{title:t("nlprog.conventionCols.category"),key:"category",width:"120px"},{title:t("nlprog.conventionCols.pattern"),key:"pattern"},{title:t("nlprog.conventionCols.examples"),key:"examples",width:"220px"},{title:t("nlprog.conventionCols.confidence"),key:"confidence",width:"90px"},{title:t("nlprog.conventionCols.createdAt"),key:"createdAt",width:"160px"},{title:t("nlprog.conventionCols.action"),key:"action",width:"90px"}]),at=Y(()=>K.value.translations.avgCompleteness*100),lt=Y(()=>{let r=q.value;return A.value&&(r=r.filter(s=>s.intent===A.value)),w.value&&(r=r.filter(s=>s.status===w.value)),r}),rt=Y(()=>W.value?P.value.filter(r=>r.category===W.value):P.value);function U(r){const s=`nlprog.intentLabels.${r}`,g=t(s);return g===s?r:g}function st(r){return{create_component:"blue",add_feature:"green",fix_bug:"red",refactor:"purple",add_api:"cyan",add_test:"orange",update_style:"magenta",configure:"gold",general:"default"}[r]||"default"}function l(r){const s=`nlprog.statusLabels.${r}`,g=t(s);return g===s?r:g}function f(r){return{draft:"default",complete:"green",refined:"cyan"}[r]||"default"}function h(r){const s=`nlprog.categoryLabels.${r}`,g=t(s);return g===s?r:g}function ht(r){return{naming:"blue",architecture:"purple",testing:"cyan",style:"magenta",imports:"orange",components:"green"}[r]||"default"}function St(r){return r>=.7?"#52c41a":r>=.4?"#faad14":"#ff4d4f"}function zt(r,s){return r?r.length>s?r.slice(0,s)+"...":r:""}function At(r){if(r==null)return"—";if(typeof r=="string")return r;try{return JSON.stringify(r,null,2)}catch{return String(r)}}function Ft({key:r}){r==="analyze"?(J.value=null,L.value=null,T.value=null,C.value=!0):r==="translate"?(D.value={noDb:!1,error:""},O.value=!0):r==="convention"&&(M.value=!0)}async function G(){z.value=!0;try{const[r,s,g]=await Promise.all([c.execute("nlprog list --limit 200 --json",1e4).catch(()=>({output:""})),c.execute("nlprog conventions --limit 200 --json",1e4).catch(()=>({output:""})),c.execute("nlprog stats --json",8e3).catch(()=>({output:""}))]);q.value=vt(r.output),P.value=kt(s.output),K.value=xt(g.output)}catch(r){v.error(t("nlprog.msg.loadFailed")+": "+(r?.message||r))}finally{z.value=!1}}async function Ot(){const r=H.text.trim();if(!r){v.warning(t("nlprog.msg.textEmpty"));return}X.value=!0,J.value=null,L.value=null,T.value=null;try{const s=r.replace(/"/g,'\\"'),[g,et,nt]=await Promise.all([c.execute(`nlprog classify "${s}" --json`,8e3).catch(()=>({output:""})),c.execute(`nlprog extract "${s}" --json`,8e3).catch(()=>({output:""})),c.execute(`nlprog detect-stack "${s}" --json`,8e3).catch(()=>({output:""}))]);J.value=mt(g.output),L.value=gt(et.output),T.value=yt(nt.output),!J.value&&!L.value&&!T.value&&v.error(t("nlprog.msg.analyzeFailed"))}catch(s){v.error(t("nlprog.msg.analyzeFailed")+": "+(s?.message||s))}finally{X.value=!1}}async function Rt(){const r=N.text.trim();if(!r){v.warning(t("nlprog.msg.translateTextEmpty"));return}F.value=!0,D.value={noDb:!1,error:""};try{const s=[`nlprog translate "${r.replace(/"/g,'\\"')}"`];N.intent&&s.push(`--intent ${N.intent}`),s.push("--json");const{output:g}=await c.execute(s.join(" "),12e3),et=_t(g);if(et.noDb){D.value=et;return}const nt=bt(g);if(!nt){v.error(t("nlprog.msg.translateFailed")+": "+g.slice(0,120));return}v.success(t("nlprog.msg.translateSuccess",{pct:(nt.completeness*100).toFixed(0)})),O.value=!1,it(),await G()}catch(s){v.error(t("nlprog.msg.translateFailed")+": "+(s?.message||s))}finally{F.value=!1}}async function wt(r,s){if(s!==r.status)try{const{output:g}=await c.execute(`nlprog status ${r.id} ${s} --json`,8e3);if(/error|invalid/i.test(g)&&!/"updated"/.test(g)){v.error(t("nlprog.msg.transitionFailed")+": "+g.slice(0,120));return}v.success(t("nlprog.msg.transitionSuccess",{label:l(s)})),await G()}catch(g){v.error(t("nlprog.msg.transitionFailed")+": "+(g?.message||g))}}async function Nt(r){try{const{output:s}=await c.execute(`nlprog remove ${r.id} --json`,8e3);if(/error/i.test(s)&&!/"removed"/.test(s)){v.error(t("nlprog.msg.deleteFailed")+": "+s.slice(0,120));return}v.success(t("nlprog.msg.deleteSuccess")),await G()}catch(s){v.error(t("nlprog.msg.deleteFailed")+": "+(s?.message||s))}}function Lt(r){B.value=r,Z.value=!0}async function jt(){const r=x.pattern.trim();if(!r){v.warning(t("nlprog.msg.patternEmpty"));return}if(x.examples.trim())try{JSON.parse(x.examples)}catch{v.warning(t("nlprog.msg.examplesBadJson"));return}E.value=!0;try{const s=[`nlprog convention-add --category ${x.category}`];s.push(`--pattern "${r.replace(/"/g,'\\"')}"`),x.examples.trim()&&s.push(`--examples '${x.examples.trim().replace(/'/g,"'\\''")}'`),x.confidence!=null&&s.push(`--confidence ${x.confidence}`),s.push("--json");const{output:g}=await c.execute(s.join(" "),1e4);if(/error|invalid|失败/i.test(g)&&!/"added"/.test(g)){v.error(t("nlprog.msg.addFailed")+": "+g.slice(0,120));return}v.success(t("nlprog.msg.addSuccess")),M.value=!1,ct(),I.value="conventions",await G()}catch(s){v.error(t("nlprog.msg.addFailed")+": "+(s?.message||s))}finally{E.value=!1}}async function Et(r){try{const{output:s}=await c.execute(`nlprog convention-remove ${r.id} --json`,8e3);if(/error/i.test(s)&&!/"removed"/.test(s)){v.error(t("nlprog.msg.deleteFailed")+": "+s.slice(0,120));return}v.success(t("nlprog.msg.deleteSuccess")),await G()}catch(s){v.error(t("nlprog.msg.deleteFailed")+": "+(s?.message||s))}}function it(){N.text="",N.intent=null}function ct(){x.category="naming",x.pattern="",x.examples="",x.confidence=.8}ut(G);const dt={ws:c,t,loading:z,analyzing:X,translating:F,adding:E,translations:q,conventions:P,stats:K,activeTab:I,intentFilter:A,statusFilter:w,categoryFilter:W,showAnalyzeModal:C,showTranslateModal:O,showConventionModal:M,showDetailsModal:Z,analyzeForm:H,translateForm:N,conventionForm:x,classifyResult:J,extractResult:L,stackResult:T,translateError:D,currentTranslation:B,translationColumns:$,conventionColumns:tt,avgCompletenessPct:at,filteredTranslations:lt,filteredConventions:rt,intentLabel:U,intentColor:st,statusLabel:l,statusColor:f,categoryLabel:h,categoryColor:ht,completenessColor:St,truncate:zt,formatJson:At,handleNewClick:Ft,loadAll:G,runAnalyze:Ot,runTranslate:Rt,transitionStatus:wt,removeTranslation:Nt,showTranslationDetails:Lt,addConvention:jt,removeConvention:Et,resetTranslateForm:it,resetConventionForm:ct,ref:_,computed:Y,onMounted:ut,reactive:ot,get ReloadOutlined(){return Kt},get PlusOutlined(){return qt},get CodeOutlined(){return Vt},get BulbOutlined(){return Gt},get FileTextOutlined(){return Bt},get EditOutlined(){return Jt},get CheckCircleOutlined(){return Mt},get RiseOutlined(){return Pt},get message(){return v},get useI18n(){return ft},get useWsStore(){return pt},get parseClassifyResult(){return mt},get parseExtractResult(){return gt},get parseStackResult(){return yt},get parseTranslations(){return vt},get parseTranslateResult(){return bt},get detectTranslateError(){return _t},get parseConventions(){return kt},get parseStats(){return xt},get formatNlprogTime(){return Ht},get INTENTS(){return Ct},get TRANSLATION_STATUSES(){return Yt},get STYLE_CATEGORIES(){return Tt}};return Object.defineProperty(dt,"__isScriptSetup",{enumerable:!1,value:!0}),dt}},$t={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},te={class:"page-title"},ee={class:"page-sub"},ne={class:"filter-bar"},oe={key:0,style:{color:"var(--text-primary)"}},ae={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},le={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},re={class:"filter-bar"},se={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},ie={key:0,style:{color:"var(--text-muted)"}},ce={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},de={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ue={key:0,style:{"margin-bottom":"12px"}},pe={style:{"font-size":"12px",color:"var(--text-secondary)","margin-bottom":"4px"}},fe={style:{color:"var(--text-secondary)","font-size":"12px"}},me={key:1,style:{"margin-bottom":"12px"}},ge={style:{"font-size":"12px",color:"var(--text-secondary)","margin-bottom":"4px"}},ye={key:0,style:{color:"var(--text-muted)"}},ve={key:2},be={style:{"font-size":"12px",color:"var(--text-secondary)","margin-bottom":"4px"}},_e={key:0,style:{color:"var(--text-muted)"}},ke={key:0,style:{"padding-top":"8px"}},xe={style:{"white-space":"pre-wrap",color:"var(--text-primary)"}},Ce={style:{"margin-top":"16px"}},Te={style:{color:"var(--text-primary)","font-size":"13px","margin-bottom":"8px"}},he={class:"json-block"},Se={style:{color:"var(--text-primary)","font-size":"13px","margin-bottom":"8px"}},ze={class:"json-block"},Ae={key:0},Fe={style:{color:"var(--text-primary)","font-size":"13px","margin-bottom":"8px"}},Oe={class:"json-block"};function Re(e,n,c,t,z,X){const F=m("a-button"),E=m("a-menu-item"),q=m("a-menu"),P=m("a-dropdown"),K=m("a-space"),I=m("a-statistic"),A=m("a-card"),w=m("a-col"),W=m("a-row"),C=m("a-tag"),O=m("a-radio-button"),M=m("a-radio-group"),Z=m("a-progress"),H=m("a-popconfirm"),N=m("a-table"),x=m("a-tab-pane"),J=m("a-tabs"),L=m("a-textarea"),T=m("a-form-item"),D=m("a-form"),B=m("a-modal"),$=m("a-select-option"),tt=m("a-select"),at=m("a-alert"),lt=m("a-input"),rt=m("a-input-number"),U=m("a-descriptions-item"),st=m("a-descriptions");return d(),y("div",null,[b("div",$t,[b("div",null,[b("h2",te,i(e.$t("nlprog.title")),1),b("p",ee,i(e.$t("nlprog.subtitle")),1)]),a(K,null,{default:o(()=>[a(F,{loading:t.loading,onClick:t.loadAll},{icon:o(()=>[a(t.ReloadOutlined)]),default:o(()=>[u(" "+i(e.$t("nlprog.refresh")),1)]),_:1},8,["loading"]),a(P,{trigger:["click"]},{overlay:o(()=>[a(q,{onClick:t.handleNewClick},{default:o(()=>[a(E,{key:"analyze"},{default:o(()=>[a(t.BulbOutlined),u(" "+i(e.$t("nlprog.actions.analyze")),1)]),_:1}),a(E,{key:"translate"},{default:o(()=>[a(t.CodeOutlined),u(" "+i(e.$t("nlprog.actions.translate")),1)]),_:1}),a(E,{key:"convention"},{default:o(()=>[a(t.FileTextOutlined),u(" "+i(e.$t("nlprog.actions.convention")),1)]),_:1})]),_:1})]),default:o(()=>[a(F,{type:"primary"},{icon:o(()=>[a(t.PlusOutlined)]),default:o(()=>[u(" "+i(e.$t("nlprog.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),p(" Stat cards "),a(W,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[a(w,{xs:12,sm:8,lg:5},{default:o(()=>[a(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(I,{title:e.$t("nlprog.stats.translations"),value:t.stats.translations.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[a(t.CodeOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(w,{xs:12,sm:8,lg:5},{default:o(()=>[a(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(I,{title:e.$t("nlprog.stats.avgCompleteness"),value:t.avgCompletenessPct,precision:1,suffix:"%","value-style":{color:t.stats.translations.avgCompleteness>=.7?"#52c41a":"#faad14",fontSize:"20px"}},{prefix:o(()=>[a(t.RiseOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(w,{xs:12,sm:8,lg:5},{default:o(()=>[a(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(I,{title:e.$t("nlprog.stats.drafts"),value:t.stats.translations.byStatus.draft,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:o(()=>[a(t.EditOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(w,{xs:12,sm:8,lg:5},{default:o(()=>[a(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(I,{title:e.$t("nlprog.stats.completed"),value:t.stats.translations.byStatus.complete,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[a(t.CheckCircleOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(w,{xs:24,sm:8,lg:4},{default:o(()=>[a(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(I,{title:e.$t("nlprog.stats.conventions"),value:t.stats.conventions.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[a(t.FileTextOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),p(" Intent breakdown "),t.stats.translations.total>0?(d(),k(A,{key:0,title:e.$t("nlprog.intentCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:o(()=>[a(K,{size:[12,8],wrap:""},{default:o(()=>[(d(!0),y(S,null,R(t.INTENTS,l=>(d(),k(C,{key:l,color:t.intentColor(l)},{default:o(()=>[u(i(t.intentLabel(l))+": "+i(t.stats.translations.byIntent[l]||0),1)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):p("v-if",!0),p(" Tabs "),a(J,{activeKey:t.activeTab,"onUpdate:activeKey":n[3]||(n[3]=l=>t.activeTab=l),class:"nlprog-tabs"},{default:o(()=>[p(" ── Translations tab ──────────────────────────────────────── "),a(x,{key:"translations",tab:e.$t("nlprog.tabs.translations")},{default:o(()=>[b("div",ne,[a(M,{value:t.intentFilter,"onUpdate:value":n[0]||(n[0]=l=>t.intentFilter=l),size:"small"},{default:o(()=>[a(O,{value:""},{default:o(()=>[u(i(e.$t("nlprog.filter.allIntents")),1)]),_:1}),(d(!0),y(S,null,R(t.INTENTS,l=>(d(),k(O,{key:l,value:l},{default:o(()=>[u(i(t.intentLabel(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(M,{value:t.statusFilter,"onUpdate:value":n[1]||(n[1]=l=>t.statusFilter=l),size:"small","button-style":"solid"},{default:o(()=>[a(O,{value:""},{default:o(()=>[u(i(e.$t("nlprog.filter.allStatuses")),1)]),_:1}),(d(!0),y(S,null,R(t.TRANSLATION_STATUSES,l=>(d(),k(O,{key:l,value:l},{default:o(()=>[u(i(t.statusLabel(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(N,{columns:t.translationColumns,"data-source":t.filteredTranslations,pagination:{pageSize:20,showTotal:l=>e.$t("nlprog.table.totalSuffix",{n:l})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:l,record:f})=>[l.key==="inputText"?(d(),y("span",oe,i(t.truncate(f.inputText,80)),1)):p("v-if",!0),l.key==="intent"?(d(),k(C,{key:1,color:t.intentColor(f.intent),style:{"font-size":"11px"}},{default:o(()=>[u(i(t.intentLabel(f.intent)),1)]),_:2},1032,["color"])):p("v-if",!0),l.key==="completeness"?(d(),k(Z,{key:2,percent:Math.round(f.completenessScore*100),size:"small","stroke-color":t.completenessColor(f.completenessScore),format:()=>(f.completenessScore*100).toFixed(0)+"%"},null,8,["percent","stroke-color","format"])):p("v-if",!0),l.key==="status"?(d(),k(C,{key:3,color:t.statusColor(f.status)},{default:o(()=>[u(i(t.statusLabel(f.status)),1)]),_:2},1032,["color"])):p("v-if",!0),l.key==="updatedAt"?(d(),y("span",ae,i(t.formatNlprogTime(f.updatedAt)),1)):p("v-if",!0),l.key==="action"?(d(),y(S,{key:5},[a(F,{size:"small",type:"link",onClick:h=>t.showTranslationDetails(f)},{default:o(()=>[u(i(e.$t("nlprog.table.actionDetails")),1)]),_:1},8,["onClick"]),a(P,{trigger:["click"]},{overlay:o(()=>[a(q,{onClick:h=>t.transitionStatus(f,h.key)},{default:o(()=>[(d(!0),y(S,null,R(t.TRANSLATION_STATUSES,h=>(d(),k(E,{key:h,disabled:h===f.status},{default:o(()=>[u(i(t.statusLabel(h)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:o(()=>[a(F,{size:"small",type:"link"},{default:o(()=>[u(i(e.$t("nlprog.table.actionStatusDropdown")),1)]),_:1})]),_:2},1024),a(H,{title:e.$t("nlprog.deleteTranslationConfirm.title"),"ok-text":e.$t("nlprog.deleteTranslationConfirm.ok"),"cancel-text":e.$t("nlprog.deleteTranslationConfirm.cancel"),onConfirm:h=>t.removeTranslation(f)},{default:o(()=>[a(F,{size:"small",type:"link",danger:""},{default:o(()=>[u(i(e.$t("nlprog.deleteTranslationConfirm.ok")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):p("v-if",!0)]),emptyText:o(()=>[b("div",le,[a(t.CodeOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),u(" "+i(t.intentFilter||t.statusFilter?e.$t("nlprog.table.emptyTranslationsFiltered"):e.$t("nlprog.table.emptyTranslations")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),p(" ── Conventions tab ──────────────────────────────────────── "),a(x,{key:"conventions",tab:e.$t("nlprog.tabs.conventions")},{default:o(()=>[b("div",re,[a(M,{value:t.categoryFilter,"onUpdate:value":n[2]||(n[2]=l=>t.categoryFilter=l),size:"small","button-style":"solid"},{default:o(()=>[a(O,{value:""},{default:o(()=>[u(i(e.$t("nlprog.filter.allCategories")),1)]),_:1}),(d(!0),y(S,null,R(t.STYLE_CATEGORIES,l=>(d(),k(O,{key:l,value:l},{default:o(()=>[u(i(t.categoryLabel(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(N,{columns:t.conventionColumns,"data-source":t.filteredConventions,pagination:{pageSize:20,showTotal:l=>e.$t("nlprog.table.totalSuffix",{n:l})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:l,record:f})=>[l.key==="category"?(d(),k(C,{key:0,color:t.categoryColor(f.category)},{default:o(()=>[u(i(t.categoryLabel(f.category)),1)]),_:2},1032,["color"])):p("v-if",!0),l.key==="pattern"?(d(),y("span",se,i(f.pattern),1)):p("v-if",!0),l.key==="examples"?(d(),y(S,{key:2},[(d(!0),y(S,null,R(Array.isArray(f.examples)?f.examples.slice(0,3):[],h=>(d(),k(C,{key:h,color:"default",style:{"font-size":"10px","font-family":"monospace",margin:"1px"}},{default:o(()=>[u(i(h),1)]),_:2},1024))),128)),!Array.isArray(f.examples)||f.examples.length===0?(d(),y("span",ie,"—")):p("v-if",!0)],64)):p("v-if",!0),l.key==="confidence"?(d(),y("span",{key:3,style:It({color:t.completenessColor(f.confidence),fontWeight:500})},i((f.confidence*100).toFixed(0))+"% ",5)):p("v-if",!0),l.key==="createdAt"?(d(),y("span",ce,i(t.formatNlprogTime(f.createdAt)),1)):p("v-if",!0),l.key==="action"?(d(),k(H,{key:5,title:e.$t("nlprog.deleteConventionConfirm.title"),"ok-text":e.$t("nlprog.deleteConventionConfirm.ok"),"cancel-text":e.$t("nlprog.deleteConventionConfirm.cancel"),onConfirm:h=>t.removeConvention(f)},{default:o(()=>[a(F,{size:"small",type:"link",danger:""},{default:o(()=>[u(i(e.$t("nlprog.deleteConventionConfirm.ok")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):p("v-if",!0)]),emptyText:o(()=>[b("div",de,[a(t.FileTextOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),u(" "+i(e.$t("nlprog.table.emptyConventions")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),p(" ── Analyze modal ────────────────────────────────────────── "),a(B,{open:t.showAnalyzeModal,"onUpdate:open":n[5]||(n[5]=l=>t.showAnalyzeModal=l),title:e.$t("nlprog.analyze_modal.title"),"confirm-loading":t.analyzing,width:600,"ok-text":e.$t("nlprog.analyze_modal.ok"),"cancel-text":e.$t("nlprog.analyze_modal.cancel"),onOk:t.runAnalyze},{default:o(()=>[a(D,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[a(T,{label:e.$t("nlprog.analyze_modal.textLabel"),required:""},{default:o(()=>[a(L,{value:t.analyzeForm.text,"onUpdate:value":n[4]||(n[4]=l=>t.analyzeForm.text=l),placeholder:e.$t("nlprog.analyze_modal.textPlaceholder"),"auto-size":{minRows:3,maxRows:6}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),t.classifyResult||t.extractResult||t.stackResult?(d(),k(A,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:o(()=>[t.classifyResult?(d(),y("div",ue,[b("div",pe,i(e.$t("nlprog.analyze_modal.intent")),1),a(C,{color:t.intentColor(t.classifyResult.intent),style:{"margin-right":"6px"}},{default:o(()=>[u(i(t.intentLabel(t.classifyResult.intent)),1)]),_:1},8,["color"]),b("span",fe,i(e.$t("nlprog.analyze_modal.confidenceLine",{pct:(t.classifyResult.confidence*100).toFixed(0)})),1)])):p("v-if",!0),t.extractResult?(d(),y("div",me,[b("div",ge,i(e.$t("nlprog.analyze_modal.entities",{n:t.extractResult.count})),1),t.extractResult.entities.length?p("v-if",!0):(d(),y("span",ye,i(e.$t("nlprog.analyze_modal.notDetected")),1)),(d(!0),y(S,null,R(t.extractResult.entities,(l,f)=>(d(),k(C,{key:f,color:"purple",style:{"font-family":"monospace","font-size":"11px",margin:"1px"}},{default:o(()=>[u(" ["+i(l.type)+"] "+i(l.value),1)]),_:2},1024))),128))])):p("v-if",!0),t.stackResult?(d(),y("div",ve,[b("div",be,i(e.$t("nlprog.analyze_modal.stack")),1),t.stackResult.detected.length?(d(),y(S,{key:1},[a(C,{color:"cyan",style:{"font-family":"monospace"}},{default:o(()=>[u(i(e.$t("nlprog.analyze_modal.stackPrimary",{name:t.stackResult.primary})),1)]),_:1}),(d(!0),y(S,null,R(t.stackResult.detected.filter(l=>l!==t.stackResult.primary),l=>(d(),k(C,{key:l,color:"default",style:{"font-family":"monospace","font-size":"11px"}},{default:o(()=>[u(i(l),1)]),_:2},1024))),128))],64)):(d(),y("span",_e,i(e.$t("nlprog.analyze_modal.notDetected")),1))])):p("v-if",!0)]),_:1})):p("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" ── Translate modal ──────────────────────────────────────── "),a(B,{open:t.showTranslateModal,"onUpdate:open":n[8]||(n[8]=l=>t.showTranslateModal=l),title:e.$t("nlprog.translate_modal.title"),"confirm-loading":t.translating,width:540,"ok-text":e.$t("nlprog.translate_modal.ok"),"cancel-text":e.$t("nlprog.translate_modal.cancel"),onOk:t.runTranslate,onCancel:t.resetTranslateForm},{default:o(()=>[a(D,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[a(T,{label:e.$t("nlprog.translate_modal.textLabel"),required:""},{default:o(()=>[a(L,{value:t.translateForm.text,"onUpdate:value":n[6]||(n[6]=l=>t.translateForm.text=l),placeholder:e.$t("nlprog.translate_modal.textPlaceholder"),"auto-size":{minRows:3,maxRows:6}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(T,{label:e.$t("nlprog.translate_modal.intentLabel")},{default:o(()=>[a(tt,{value:t.translateForm.intent,"onUpdate:value":n[7]||(n[7]=l=>t.translateForm.intent=l),"allow-clear":"",placeholder:e.$t("nlprog.translate_modal.intentPlaceholder")},{default:o(()=>[(d(!0),y(S,null,R(t.INTENTS,l=>(d(),k($,{key:l,value:l},{default:o(()=>[u(i(t.intentLabel(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),t.translateError.noDb?(d(),k(at,{key:0,type:"warning","show-icon":"",message:e.$t("nlprog.translate_modal.noDbMessage"),description:e.$t("nlprog.translate_modal.noDbDescription"),style:{"margin-top":"12px"}},null,8,["message","description"])):p("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" ── Add convention modal ─────────────────────────────────── "),a(B,{open:t.showConventionModal,"onUpdate:open":n[13]||(n[13]=l=>t.showConventionModal=l),title:e.$t("nlprog.convention_modal.title"),"confirm-loading":t.adding,width:540,"ok-text":e.$t("nlprog.convention_modal.ok"),"cancel-text":e.$t("nlprog.convention_modal.cancel"),onOk:t.addConvention,onCancel:t.resetConventionForm},{default:o(()=>[a(D,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[a(T,{label:e.$t("nlprog.convention_modal.categoryLabel"),required:""},{default:o(()=>[a(tt,{value:t.conventionForm.category,"onUpdate:value":n[9]||(n[9]=l=>t.conventionForm.category=l)},{default:o(()=>[(d(!0),y(S,null,R(t.STYLE_CATEGORIES,l=>(d(),k($,{key:l,value:l},{default:o(()=>[u(i(t.categoryLabel(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),a(T,{label:e.$t("nlprog.convention_modal.patternLabel"),required:""},{default:o(()=>[a(lt,{value:t.conventionForm.pattern,"onUpdate:value":n[10]||(n[10]=l=>t.conventionForm.pattern=l),placeholder:e.$t("nlprog.convention_modal.patternPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(T,{label:e.$t("nlprog.convention_modal.examplesLabel")},{default:o(()=>[a(L,{value:t.conventionForm.examples,"onUpdate:value":n[11]||(n[11]=l=>t.conventionForm.examples=l),placeholder:e.$t("nlprog.convention_modal.examplesPlaceholder"),"auto-size":{minRows:2,maxRows:4}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(T,{label:e.$t("nlprog.convention_modal.confidenceLabel")},{default:o(()=>[a(rt,{value:t.conventionForm.confidence,"onUpdate:value":n[12]||(n[12]=l=>t.conventionForm.confidence=l),min:0,max:1,step:.05,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" ── Translation details modal ────────────────────────────── "),a(B,{open:t.showDetailsModal,"onUpdate:open":n[14]||(n[14]=l=>t.showDetailsModal=l),title:e.$t("nlprog.details.title",{id:t.currentTranslation?.id?.slice(0,8)||""}),width:720,footer:null},{default:o(()=>[t.currentTranslation?(d(),y("div",ke,[a(st,{column:2,size:"small",bordered:""},{default:o(()=>[a(U,{label:e.$t("nlprog.details.intent")},{default:o(()=>[a(C,{color:t.intentColor(t.currentTranslation.intent)},{default:o(()=>[u(i(t.intentLabel(t.currentTranslation.intent)),1)]),_:1},8,["color"])]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.details.status")},{default:o(()=>[a(C,{color:t.statusColor(t.currentTranslation.status)},{default:o(()=>[u(i(t.statusLabel(t.currentTranslation.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.details.completeness"),span:2},{default:o(()=>[a(Z,{percent:Math.round(t.currentTranslation.completenessScore*100),"stroke-color":t.completenessColor(t.currentTranslation.completenessScore),size:"small"},null,8,["percent","stroke-color"])]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.details.createdAt")},{default:o(()=>[u(i(t.formatNlprogTime(t.currentTranslation.createdAt)),1)]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.details.updatedAt")},{default:o(()=>[u(i(t.formatNlprogTime(t.currentTranslation.updatedAt)),1)]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.details.inputText"),span:2},{default:o(()=>[b("span",xe,i(t.currentTranslation.inputText),1)]),_:1},8,["label"])]),_:1}),b("div",Ce,[b("h4",Te,i(e.$t("nlprog.details.entities")),1),b("pre",he,i(t.formatJson(t.currentTranslation.entities)),1)]),b("div",null,[b("h4",Se,i(e.$t("nlprog.details.techStack")),1),b("pre",ze,i(t.formatJson(t.currentTranslation.techStack)),1)]),t.currentTranslation.spec?(d(),y("div",Ae,[b("h4",Fe,i(e.$t("nlprog.details.spec")),1),b("pre",Oe,i(t.formatJson(t.currentTranslation.spec)),1)])):p("v-if",!0)])):p("v-if",!0)]),_:1},8,["open","title"])])}const Ee=Dt(Xt,[["render",Re],["__scopeId","data-v-4c4216b9"],["__file","/tmp/cc-web-panel-wQGCAD/repo/packages/web-panel/src/views/NLProgramming.vue"]]);export{Ee as default};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{I as f,P as w,S as T,K as a,J as V,c as n,V as x,w as F,b as A,a as K,r as u,U as L,Q as k,R as D,F as te,M as le,o as re,Z as se}from"./vendor-BvqAck49.js";import{u as Y,_ as ae,d as C}from"./index-DT1y-Y3f.js";import{u as ie}from"./useFs-CO3oipa2.js";import{u as de}from"./useShellMode-CgR0wCYM.js";import{aw as me,ax as ue,ay as pe,az as ge,a4 as ve,R as we,as as _e}from"./icons-DP3uiYxy.js";function ye(m){if(m&&m.ok===!1)throw new Error(m.error||"knowledge handler failed");return m?.result??m}function ne(m){return String(m).replace(/(["\\])/g,"\\$1")}function Z(){const m=Y();async function t({title:b,content:e,tags:h=[],type:g="note"}={}){if(typeof b!="string"||!b.trim())throw new Error("title is required");if(typeof e!="string")throw new Error("content is required");const r=Array.isArray(h)?h.filter(Boolean):[];if(de().isEmbedded){const i=await m.sendRaw({type:"knowledge.add-item",item:{title:b.trim(),content:e,tags:r,type:g}},2e4),_=ye(i);if(_?.success===!1)throw new Error(_.error||"knowledge.add-item failed");return _?.item??null}let s=`note add "${ne(b.trim())}" -c "${ne(e)}"`;r.length&&(s+=` -t "${ne(r.join(","))}"`);const{output:d}=await m.execute(s,15e3);if(d&&/^[\s\S]*✖|error/i.test(d))throw new Error(d.slice(0,200));return{title:b.trim(),content:e,tags:r,type:g}}return{addItem:t}}const he={__name:"ClipboardImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(m,{expose:t,emit:b}){t();const e=m,h=b,g=Z(),r=A({get:()=>e.modelValue,set:p=>h("update:modelValue",p)}),s=u(!1),d=u(""),i=K({title:"",content:"",tagsRaw:""}),_=()=>`剪贴板导入 - ${new Date().toLocaleString()}`;function S(){i.title=_(),i.content="",i.tagsRaw="",d.value=""}async function v(){if(d.value="",!navigator.clipboard?.readText){d.value="当前环境不支持剪贴板读取 API";return}try{const p=await navigator.clipboard.readText();i.content=p||"",p||(d.value="剪贴板为空")}catch(p){d.value="读取剪贴板失败:"+(p?.message||String(p))}}F(()=>e.modelValue,async p=>{p&&(S(),await v())},{immediate:!0});async function O(){if(!i.content.trim()){C.warning("内容为空,无法保存");return}s.value=!0;try{const p=i.tagsRaw.split(/[,,]/).map(c=>c.trim()).filter(Boolean),o=await g.addItem({title:i.title.trim()||_(),content:i.content,tags:p,type:"note"});C.success("已保存到知识库"),h("saved",o),r.value=!1}catch(p){C.error("保存失败:"+(p?.message||String(p)))}finally{s.value=!1}}function U(){r.value=!1}const E={props:e,emit:h,knowledge:g,open:r,loading:s,readError:d,formState:i,defaultTitle:_,resetForm:S,readClipboard:v,handleSave:O,handleCancel:U,ref:u,reactive:K,computed:A,watch:F,get message(){return C},get useKnowledge(){return Z}};return Object.defineProperty(E,"__isScriptSetup",{enumerable:!1,value:!0}),E}},be={key:0,style:{"margin-bottom":"16px"}};function Se(m,t,b,e,h,g){const r=f("a-alert"),s=f("a-input"),d=f("a-form-item"),i=f("a-textarea"),_=f("a-form"),S=f("a-modal");return w(),T(S,{open:e.open,"onUpdate:open":t[3]||(t[3]=v=>e.open=v),title:"剪贴板导入",width:640,"ok-text":e.loading?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:e.loading,disabled:!e.formState.content.trim()},onOk:e.handleSave,onCancel:e.handleCancel},{default:a(()=>[e.readError?(w(),V("div",be,[n(r,{type:"warning","show-icon":"",message:e.readError,description:"请确认浏览器/系统已授予剪贴板读取权限,或手动粘贴到下方输入框。"},null,8,["message"])])):x("v-if",!0),n(_,{layout:"vertical",model:e.formState},{default:a(()=>[n(d,{label:"标题"},{default:a(()=>[n(s,{value:e.formState.title,"onUpdate:value":t[0]||(t[0]=v=>e.formState.title=v),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),n(d,{label:"内容"},{default:a(()=>[n(i,{value:e.formState.content,"onUpdate:value":t[1]||(t[1]=v=>e.formState.content=v),placeholder:"粘贴或编辑要保存的内容…","auto-size":{minRows:10,maxRows:20},"show-count":""},null,8,["value"])]),_:1}),n(d,{label:"标签(逗号分隔,可选)"},{default:a(()=>[n(s,{value:e.formState.tagsRaw,"onUpdate:value":t[2]||(t[2]=v=>e.formState.tagsRaw=v),placeholder:"例如:素材, 链接","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["open","ok-text","ok-button-props"])}const xe=ae(he,[["render",Se],["__file","/tmp/cc-web-panel-YJBpJd/repo/packages/web-panel/src/components/ClipboardImportDialog.vue"]]);function oe(m){if(m&&m.ok===!1)throw new Error(m.error||"screenshot handler failed");return m?.result??m}function ce(){const m=Y();if(!de().isEmbedded)return{unsupported:!0,capture:async()=>{throw new Error("截图需要桌面壳;浏览器模式不支持")},ocr:async()=>{throw new Error("OCR 仅在桌面壳可用")},cleanup:async()=>{}};async function b({screenIndex:g}={}){const r=await m.sendRaw({type:"screenshot.capture",screenIndex:g},3e4),s=oe(r);if(s?.success===!1)throw new Error(s.error||"screenshot.capture failed");return s}async function e(g,r,s){if(!g)throw new Error("path is required");const d=await m.sendRaw({type:"screenshot.ocr",path:g,lang:r,engine:s},9e4),i=oe(d);if(i?.success===!1)throw new Error(i.error||"screenshot.ocr failed");return i}async function h(g){if(g)try{const r=await m.sendRaw({type:"screenshot.cleanup",path:g},1e4),s=oe(r);s?.success===!1&&console.warn("[useScreenshot] cleanup failed:",s.error)}catch(r){console.warn("[useScreenshot] cleanup error:",r?.message||r)}}return{unsupported:!1,capture:b,ocr:e,cleanup:h}}const ke={__name:"ScreenshotImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(m,{expose:t,emit:b}){t();const e=m,h=b,g=ce(),r=Z(),s=A({get:()=>e.modelValue,set:y=>h("update:modelValue",y)}),d=u(!1),i=u(!1),_=u(!1),S=u(""),v=u(null),O=u("auto"),U=u(null),E=u(""),p=u(""),o=u(null),c=K({title:"",content:"",tagsRaw:""}),N=A(()=>!!o.value&&(c.content.trim()||"").length>0),P=()=>`截图识别 - ${new Date().toLocaleString()}`;function q(){c.title=P(),c.content="",c.tagsRaw="",S.value="",v.value=null,U.value=null,E.value="",p.value="",o.value=null}async function B(){o.value?.path&&await g.cleanup(o.value.path)}async function J(){if(g.unsupported)return S.value="浏览器模式不支持截图,请用桌面壳",null;i.value=!0;try{return await g.capture({})}catch(y){return S.value=y?.message||String(y),null}finally{i.value=!1}}async function z(y){if(y){_.value=!0;try{const l=await g.ocr(y,void 0,O.value);c.content=l.text||"",v.value=typeof l.confidence=="number"?l.confidence:null,U.value=l.engine||null,E.value=l.model||"",p.value=l.fallbackReason||"",l.text||C.info("OCR 未识别到文本,可手动输入")}catch(l){C.warning("OCR 失败: "+(l?.message||String(l)))}finally{_.value=!1}}}async function j(){p.value=""}async function G(){await B(),q();const y=await J();y&&(o.value=y,await z(y.path))}async function Q(){o.value?.path&&await z(o.value.path)}F(()=>e.modelValue,async y=>{if(y){q();const l=await J();l&&(o.value=l,await z(l.path))}else await B(),o.value=null},{immediate:!0});async function H(){if(!N.value){C.warning("识别文本为空,无法保存");return}d.value=!0;try{const y=c.tagsRaw.split(/[,,]/).map(I=>I.trim()).filter(Boolean),l=await r.addItem({title:c.title.trim()||P(),content:c.content,tags:y,type:"note"});C.success("已保存到知识库"),h("saved",l),await B(),s.value=!1}catch(y){C.error("保存失败: "+(y?.message||String(y)))}finally{d.value=!1}}async function X(){await B(),s.value=!1}const W={props:e,emit:h,screenshot:g,knowledge:r,open:s,loading:d,capturing:i,ocrLoading:_,captureError:S,ocrConfidence:v,ocrEngine:O,engineUsed:U,ocrModel:E,ocrFallbackReason:p,shot:o,formState:c,canSave:N,defaultTitle:P,resetState:q,cleanupShot:B,runCapture:J,runOcr:z,handleEngineChange:j,handleRecapture:G,handleRerunOcr:Q,handleSave:H,handleCancel:X,ref:u,reactive:K,computed:A,watch:F,get message(){return C},get CameraOutlined(){return ue},get ScanOutlined(){return me},get useScreenshot(){return ce},get useKnowledge(){return Z}};return Object.defineProperty(W,"__isScriptSetup",{enumerable:!1,value:!0}),W}},Ce={key:0,style:{"margin-bottom":"16px"}},Oe={key:1,class:"ss-error"},Re={key:2},Ne={class:"ss-actions"},Ee={key:0,class:"ss-preview"},Ie=["src"];function Ve(m,t,b,e,h,g){const r=f("a-alert"),s=f("a-button"),d=f("a-select-option"),i=f("a-select"),_=f("a-tag"),S=f("a-tooltip"),v=f("a-input"),O=f("a-form-item"),U=f("a-spin"),E=f("a-textarea"),p=f("a-form"),o=f("a-modal");return w(),T(o,{open:e.open,"onUpdate:open":t[4]||(t[4]=c=>e.open=c),title:"截图识别",width:780,"ok-text":e.loading?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:e.loading,disabled:!e.canSave},onOk:e.handleSave,onCancel:e.handleCancel},{default:a(()=>[e.screenshot.unsupported?(w(),V("div",Ce,[n(r,{type:"warning","show-icon":"",message:"浏览器模式不支持截图",description:"screenshot-desktop 需要 OS 原生 API,请用桌面壳 (cc desktop) 打开本面板。"})])):e.captureError?(w(),V("div",Oe,[n(r,{type:"error","show-icon":"",message:e.captureError},null,8,["message"])])):(w(),V("div",Re,[L("div",Ne,[n(s,{size:"small",loading:e.capturing,onClick:e.handleRecapture},{icon:a(()=>[n(e.CameraOutlined)]),default:a(()=>[t[5]||(t[5]=k(" 重新截图 ",-1))]),_:1},8,["loading"]),n(s,{size:"small",loading:e.ocrLoading,disabled:!e.shot||e.ocrLoading,onClick:e.handleRerunOcr},{icon:a(()=>[n(e.ScanOutlined)]),default:a(()=>[t[6]||(t[6]=k(" 重跑 OCR ",-1))]),_:1},8,["loading","disabled"]),n(i,{value:e.ocrEngine,"onUpdate:value":t[0]||(t[0]=c=>e.ocrEngine=c),size:"small",style:{width:"140px"},disabled:e.ocrLoading,onChange:e.handleEngineChange},{default:a(()=>[n(d,{value:"auto"},{default:a(()=>[...t[7]||(t[7]=[k("自动 (推荐)",-1)])]),_:1}),n(d,{value:"llm"},{default:a(()=>[...t[8]||(t[8]=[k("视觉 LLM",-1)])]),_:1}),n(d,{value:"tesseract"},{default:a(()=>[...t[9]||(t[9]=[k("本地 Tesseract",-1)])]),_:1})]),_:1},8,["value","disabled"]),e.engineUsed==="llm"?(w(),T(_,{key:0,color:"blue"},{default:a(()=>[k(D(e.ocrModel||"豆包视觉"),1)]),_:1})):e.engineUsed==="tesseract"&&e.ocrConfidence!==null?(w(),T(_,{key:1},{default:a(()=>[k(" Tesseract · "+D(e.ocrConfidence)+"% ",1)]),_:1})):x("v-if",!0),e.ocrFallbackReason?(w(),T(S,{key:2,title:`LLM 识别失败已回落 Tesseract: ${e.ocrFallbackReason}`},{default:a(()=>[n(_,{color:"orange"},{default:a(()=>[...t[10]||(t[10]=[k("回落 Tesseract",-1)])]),_:1})]),_:1},8,["title"])):x("v-if",!0)]),e.shot?.dataUrl?(w(),V("div",Ee,[L("img",{src:e.shot.dataUrl,alt:"screenshot"},null,8,Ie)])):x("v-if",!0),n(p,{layout:"vertical",model:e.formState},{default:a(()=>[n(O,{label:"标题"},{default:a(()=>[n(v,{value:e.formState.title,"onUpdate:value":t[1]||(t[1]=c=>e.formState.title=c),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),n(O,null,{label:a(()=>[t[11]||(t[11]=L("span",null,"识别文本",-1)),e.ocrLoading?(w(),T(U,{key:0,size:"small",style:{"margin-left":"8px"}})):x("v-if",!0)]),default:a(()=>[n(E,{value:e.formState.content,"onUpdate:value":t[2]||(t[2]=c=>e.formState.content=c),placeholder:e.ocrLoading?"正在识别…":"识别结果,可手动编辑","auto-size":{minRows:8,maxRows:16},"show-count":""},null,8,["value","placeholder"])]),_:1}),n(O,{label:"标签 (逗号分隔, 可选)"},{default:a(()=>[n(v,{value:e.formState.tagsRaw,"onUpdate:value":t[3]||(t[3]=c=>e.formState.tagsRaw=c),placeholder:"例如: 截图, 参考","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]))]),_:1},8,["open","ok-text","ok-button-props"])}const Ue=ae(ke,[["render",Ve],["__scopeId","data-v-1d6234fd"],["__file","/tmp/cc-web-panel-YJBpJd/repo/packages/web-panel/src/components/ScreenshotImportDialog.vue"]]),Le={__name:"Notes",setup(m,{expose:t}){t();const b=Y(),e=ie(),h=le(),g=u(!1),r=u(!1),s=u(!1),d=u(!1),i=u(""),_=u([]),S=u([]),v=u(!1),O=u(""),U=u(!1),E=u(!1),p=u(!1),o=u(!1),c=u(null),N=u({title:"",content:"",tags:""});async function P(){C.success("剪贴板内容已保存到知识库"),await z()}async function q(){C.success("截图内容已保存到知识库"),await z()}const B=A(()=>v.value?S.value:_.value),J=[{title:"标题",dataIndex:"title",key:"title",width:"30%"},{title:"预览",key:"content",ellipsis:!0},{title:"标签",key:"tags",width:"20%"},{title:"操作",key:"actions",width:"80px"}];async function z(){r.value=!0,i.value="";try{const{output:l}=await b.execute("note list",2e4);_.value=j(l)}catch(l){i.value=`加载失败: ${l.message}`}finally{r.value=!1}}function j(l){const I=[],$=l.split(`
|
|
2
|
-
`);for(const ee of $){const R=ee.trim();if(!R||R.startsWith("─")||R.startsWith("Note")||R.match(/^\d+ note/i))continue;const M=R.match(/^(\d+)\.\s+(.+?)(?:\s+\[([^\]]+)\])?\s*(?:-\s*(.*))?$/);M?I.push({key:M[1],id:M[1],title:M[2].trim(),tags:M[3]?M[3].split(",").map(fe=>fe.trim()):[],preview:(M[4]||"").trim().slice(0,100),content:""}):R.length>2&&!R.startsWith("✖")&&!R.startsWith("[")&&I.push({key:I.length,id:String(I.length),title:R,tags:[],preview:"",content:""})}return I}async function
|
|
1
|
+
import{I as f,P as w,S as L,K as a,J as V,c as n,V as x,w as F,b as P,a as G,r as u,U as D,Q as k,R as z,F as te,M as le,o as re,Z as se}from"./vendor-BvqAck49.js";import{u as J,_ as ae,d as C}from"./index-CSnTUPQx.js";import{u as ie}from"./useFs-DuvW_aRX.js";import{u as de}from"./useShellMode-CgR0wCYM.js";import{aw as me,ax as ue,ay as pe,az as ge,a4 as ve,R as we,as as _e}from"./icons-DP3uiYxy.js";function ye(m){if(m&&m.ok===!1)throw new Error(m.error||"knowledge handler failed");return m?.result??m}function ne(m){return String(m).replace(/(["\\])/g,"\\$1")}function Z(){const m=J();async function t({title:b,content:e,tags:h=[],type:g="note"}={}){if(typeof b!="string"||!b.trim())throw new Error("title is required");if(typeof e!="string")throw new Error("content is required");const r=Array.isArray(h)?h.filter(Boolean):[];if(de().isEmbedded){const i=await m.sendRaw({type:"knowledge.add-item",item:{title:b.trim(),content:e,tags:r,type:g}},2e4),_=ye(i);if(_?.success===!1)throw new Error(_.error||"knowledge.add-item failed");return _?.item??null}let s=`note add "${ne(b.trim())}" -c "${ne(e)}"`;r.length&&(s+=` -t "${ne(r.join(","))}"`);const{output:d}=await m.execute(s,15e3);if(d&&/^[\s\S]*✖|error/i.test(d))throw new Error(d.slice(0,200));return{title:b.trim(),content:e,tags:r,type:g}}return{addItem:t}}const he={__name:"ClipboardImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(m,{expose:t,emit:b}){t();const e=m,h=b,g=Z(),r=P({get:()=>e.modelValue,set:p=>h("update:modelValue",p)}),s=u(!1),d=u(""),i=G({title:"",content:"",tagsRaw:""}),_=()=>`剪贴板导入 - ${new Date().toLocaleString()}`;function S(){i.title=_(),i.content="",i.tagsRaw="",d.value=""}async function v(){if(d.value="",!navigator.clipboard?.readText){d.value="当前环境不支持剪贴板读取 API";return}try{const p=await navigator.clipboard.readText();i.content=p||"",p||(d.value="剪贴板为空")}catch(p){d.value="读取剪贴板失败:"+(p?.message||String(p))}}F(()=>e.modelValue,async p=>{p&&(S(),await v())},{immediate:!0});async function O(){if(!i.content.trim()){C.warning("内容为空,无法保存");return}s.value=!0;try{const p=i.tagsRaw.split(/[,,]/).map(c=>c.trim()).filter(Boolean),o=await g.addItem({title:i.title.trim()||_(),content:i.content,tags:p,type:"note"});C.success("已保存到知识库"),h("saved",o),r.value=!1}catch(p){C.error("保存失败:"+(p?.message||String(p)))}finally{s.value=!1}}function U(){r.value=!1}const E={props:e,emit:h,knowledge:g,open:r,loading:s,readError:d,formState:i,defaultTitle:_,resetForm:S,readClipboard:v,handleSave:O,handleCancel:U,ref:u,reactive:G,computed:P,watch:F,get message(){return C},get useKnowledge(){return Z}};return Object.defineProperty(E,"__isScriptSetup",{enumerable:!1,value:!0}),E}},be={key:0,style:{"margin-bottom":"16px"}};function Se(m,t,b,e,h,g){const r=f("a-alert"),s=f("a-input"),d=f("a-form-item"),i=f("a-textarea"),_=f("a-form"),S=f("a-modal");return w(),L(S,{open:e.open,"onUpdate:open":t[3]||(t[3]=v=>e.open=v),title:"剪贴板导入",width:640,"ok-text":e.loading?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:e.loading,disabled:!e.formState.content.trim()},onOk:e.handleSave,onCancel:e.handleCancel},{default:a(()=>[e.readError?(w(),V("div",be,[n(r,{type:"warning","show-icon":"",message:e.readError,description:"请确认浏览器/系统已授予剪贴板读取权限,或手动粘贴到下方输入框。"},null,8,["message"])])):x("v-if",!0),n(_,{layout:"vertical",model:e.formState},{default:a(()=>[n(d,{label:"标题"},{default:a(()=>[n(s,{value:e.formState.title,"onUpdate:value":t[0]||(t[0]=v=>e.formState.title=v),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),n(d,{label:"内容"},{default:a(()=>[n(i,{value:e.formState.content,"onUpdate:value":t[1]||(t[1]=v=>e.formState.content=v),placeholder:"粘贴或编辑要保存的内容…","auto-size":{minRows:10,maxRows:20},"show-count":""},null,8,["value"])]),_:1}),n(d,{label:"标签(逗号分隔,可选)"},{default:a(()=>[n(s,{value:e.formState.tagsRaw,"onUpdate:value":t[2]||(t[2]=v=>e.formState.tagsRaw=v),placeholder:"例如:素材, 链接","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["open","ok-text","ok-button-props"])}const xe=ae(he,[["render",Se],["__file","/tmp/cc-web-panel-wQGCAD/repo/packages/web-panel/src/components/ClipboardImportDialog.vue"]]);function oe(m){if(m&&m.ok===!1)throw new Error(m.error||"screenshot handler failed");return m?.result??m}function ce(){const m=J();if(!de().isEmbedded)return{unsupported:!0,capture:async()=>{throw new Error("截图需要桌面壳;浏览器模式不支持")},ocr:async()=>{throw new Error("OCR 仅在桌面壳可用")},cleanup:async()=>{}};async function b({screenIndex:g}={}){const r=await m.sendRaw({type:"screenshot.capture",screenIndex:g},3e4),s=oe(r);if(s?.success===!1)throw new Error(s.error||"screenshot.capture failed");return s}async function e(g,r,s){if(!g)throw new Error("path is required");const d=await m.sendRaw({type:"screenshot.ocr",path:g,lang:r,engine:s},9e4),i=oe(d);if(i?.success===!1)throw new Error(i.error||"screenshot.ocr failed");return i}async function h(g){if(g)try{const r=await m.sendRaw({type:"screenshot.cleanup",path:g},1e4),s=oe(r);s?.success===!1&&console.warn("[useScreenshot] cleanup failed:",s.error)}catch(r){console.warn("[useScreenshot] cleanup error:",r?.message||r)}}return{unsupported:!1,capture:b,ocr:e,cleanup:h}}const ke={__name:"ScreenshotImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(m,{expose:t,emit:b}){t();const e=m,h=b,g=ce(),r=Z(),s=P({get:()=>e.modelValue,set:y=>h("update:modelValue",y)}),d=u(!1),i=u(!1),_=u(!1),S=u(""),v=u(null),O=u("auto"),U=u(null),E=u(""),p=u(""),o=u(null),c=G({title:"",content:"",tagsRaw:""}),N=P(()=>!!o.value&&(c.content.trim()||"").length>0),B=()=>`截图识别 - ${new Date().toLocaleString()}`;function Q(){c.title=B(),c.content="",c.tagsRaw="",S.value="",v.value=null,U.value=null,E.value="",p.value="",o.value=null}async function A(){o.value?.path&&await g.cleanup(o.value.path)}async function q(){if(g.unsupported)return S.value="浏览器模式不支持截图,请用桌面壳",null;i.value=!0;try{return await g.capture({})}catch(y){return S.value=y?.message||String(y),null}finally{i.value=!1}}async function T(y){if(y){_.value=!0;try{const l=await g.ocr(y,void 0,O.value);c.content=l.text||"",v.value=typeof l.confidence=="number"?l.confidence:null,U.value=l.engine||null,E.value=l.model||"",p.value=l.fallbackReason||"",l.text||C.info("OCR 未识别到文本,可手动输入")}catch(l){C.warning("OCR 失败: "+(l?.message||String(l)))}finally{_.value=!1}}}async function j(){p.value=""}async function H(){await A(),Q();const y=await q();y&&(o.value=y,await T(y.path))}async function W(){o.value?.path&&await T(o.value.path)}F(()=>e.modelValue,async y=>{if(y){Q();const l=await q();l&&(o.value=l,await T(l.path))}else await A(),o.value=null},{immediate:!0});async function X(){if(!N.value){C.warning("识别文本为空,无法保存");return}d.value=!0;try{const y=c.tagsRaw.split(/[,,]/).map(I=>I.trim()).filter(Boolean),l=await r.addItem({title:c.title.trim()||B(),content:c.content,tags:y,type:"note"});C.success("已保存到知识库"),h("saved",l),await A(),s.value=!1}catch(y){C.error("保存失败: "+(y?.message||String(y)))}finally{d.value=!1}}async function Y(){await A(),s.value=!1}const K={props:e,emit:h,screenshot:g,knowledge:r,open:s,loading:d,capturing:i,ocrLoading:_,captureError:S,ocrConfidence:v,ocrEngine:O,engineUsed:U,ocrModel:E,ocrFallbackReason:p,shot:o,formState:c,canSave:N,defaultTitle:B,resetState:Q,cleanupShot:A,runCapture:q,runOcr:T,handleEngineChange:j,handleRecapture:H,handleRerunOcr:W,handleSave:X,handleCancel:Y,ref:u,reactive:G,computed:P,watch:F,get message(){return C},get CameraOutlined(){return ue},get ScanOutlined(){return me},get useScreenshot(){return ce},get useKnowledge(){return Z}};return Object.defineProperty(K,"__isScriptSetup",{enumerable:!1,value:!0}),K}},Ce={key:0,style:{"margin-bottom":"16px"}},Oe={key:1,class:"ss-error"},Re={key:2},Ne={class:"ss-actions"},Ee={key:0,class:"ss-preview"},Ie=["src"];function Ve(m,t,b,e,h,g){const r=f("a-alert"),s=f("a-button"),d=f("a-select-option"),i=f("a-select"),_=f("a-tag"),S=f("a-tooltip"),v=f("a-input"),O=f("a-form-item"),U=f("a-spin"),E=f("a-textarea"),p=f("a-form"),o=f("a-modal");return w(),L(o,{open:e.open,"onUpdate:open":t[4]||(t[4]=c=>e.open=c),title:"截图识别",width:780,"ok-text":e.loading?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:e.loading,disabled:!e.canSave},onOk:e.handleSave,onCancel:e.handleCancel},{default:a(()=>[e.screenshot.unsupported?(w(),V("div",Ce,[n(r,{type:"warning","show-icon":"",message:"浏览器模式不支持截图",description:"screenshot-desktop 需要 OS 原生 API,请用桌面壳 (cc desktop) 打开本面板。"})])):e.captureError?(w(),V("div",Oe,[n(r,{type:"error","show-icon":"",message:e.captureError},null,8,["message"])])):(w(),V("div",Re,[D("div",Ne,[n(s,{size:"small",loading:e.capturing,onClick:e.handleRecapture},{icon:a(()=>[n(e.CameraOutlined)]),default:a(()=>[t[5]||(t[5]=k(" 重新截图 ",-1))]),_:1},8,["loading"]),n(s,{size:"small",loading:e.ocrLoading,disabled:!e.shot||e.ocrLoading,onClick:e.handleRerunOcr},{icon:a(()=>[n(e.ScanOutlined)]),default:a(()=>[t[6]||(t[6]=k(" 重跑 OCR ",-1))]),_:1},8,["loading","disabled"]),n(i,{value:e.ocrEngine,"onUpdate:value":t[0]||(t[0]=c=>e.ocrEngine=c),size:"small",style:{width:"140px"},disabled:e.ocrLoading,onChange:e.handleEngineChange},{default:a(()=>[n(d,{value:"auto"},{default:a(()=>[...t[7]||(t[7]=[k("自动 (推荐)",-1)])]),_:1}),n(d,{value:"llm"},{default:a(()=>[...t[8]||(t[8]=[k("视觉 LLM",-1)])]),_:1}),n(d,{value:"tesseract"},{default:a(()=>[...t[9]||(t[9]=[k("本地 Tesseract",-1)])]),_:1})]),_:1},8,["value","disabled"]),e.engineUsed==="llm"?(w(),L(_,{key:0,color:"blue"},{default:a(()=>[k(z(e.ocrModel||"豆包视觉"),1)]),_:1})):e.engineUsed==="tesseract"&&e.ocrConfidence!==null?(w(),L(_,{key:1},{default:a(()=>[k(" Tesseract · "+z(e.ocrConfidence)+"% ",1)]),_:1})):x("v-if",!0),e.ocrFallbackReason?(w(),L(S,{key:2,title:`LLM 识别失败已回落 Tesseract: ${e.ocrFallbackReason}`},{default:a(()=>[n(_,{color:"orange"},{default:a(()=>[...t[10]||(t[10]=[k("回落 Tesseract",-1)])]),_:1})]),_:1},8,["title"])):x("v-if",!0)]),e.shot?.dataUrl?(w(),V("div",Ee,[D("img",{src:e.shot.dataUrl,alt:"screenshot"},null,8,Ie)])):x("v-if",!0),n(p,{layout:"vertical",model:e.formState},{default:a(()=>[n(O,{label:"标题"},{default:a(()=>[n(v,{value:e.formState.title,"onUpdate:value":t[1]||(t[1]=c=>e.formState.title=c),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),n(O,null,{label:a(()=>[t[11]||(t[11]=D("span",null,"识别文本",-1)),e.ocrLoading?(w(),L(U,{key:0,size:"small",style:{"margin-left":"8px"}})):x("v-if",!0)]),default:a(()=>[n(E,{value:e.formState.content,"onUpdate:value":t[2]||(t[2]=c=>e.formState.content=c),placeholder:e.ocrLoading?"正在识别…":"识别结果,可手动编辑","auto-size":{minRows:8,maxRows:16},"show-count":""},null,8,["value","placeholder"])]),_:1}),n(O,{label:"标签 (逗号分隔, 可选)"},{default:a(()=>[n(v,{value:e.formState.tagsRaw,"onUpdate:value":t[3]||(t[3]=c=>e.formState.tagsRaw=c),placeholder:"例如: 截图, 参考","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]))]),_:1},8,["open","ok-text","ok-button-props"])}const Ue=ae(ke,[["render",Ve],["__scopeId","data-v-1d6234fd"],["__file","/tmp/cc-web-panel-wQGCAD/repo/packages/web-panel/src/components/ScreenshotImportDialog.vue"]]),De={__name:"Notes",setup(m,{expose:t}){t();const b=J(),e=ie(),h=le(),g=u(!1),r=u(!1),s=u(!1),d=u(!1),i=u(""),_=u([]),S=u([]),v=u(!1),O=u(""),U=u(!1),E=u(!1),p=u(!1),o=u(!1),c=u(null),N=u({title:"",content:"",tags:""});async function B(){C.success("剪贴板内容已保存到知识库"),await T()}async function Q(){C.success("截图内容已保存到知识库"),await T()}const A=P(()=>v.value?S.value:_.value),q=[{title:"标题",dataIndex:"title",key:"title",width:"30%"},{title:"预览",key:"content",ellipsis:!0},{title:"标签",key:"tags",width:"20%"},{title:"操作",key:"actions",width:"80px"}];async function T(){r.value=!0,i.value="";try{const{output:l}=await b.execute("note list",2e4);_.value=j(l)}catch(l){i.value=`加载失败: ${l.message}`}finally{r.value=!1}}function j(l){const I=[],$=l.split(`
|
|
2
|
+
`);for(const ee of $){const R=ee.trim();if(!R||R.startsWith("─")||R.startsWith("Note")||R.match(/^\d+ note/i))continue;const M=R.match(/^(\d+)\.\s+(.+?)(?:\s+\[([^\]]+)\])?\s*(?:-\s*(.*))?$/);M?I.push({key:M[1],id:M[1],title:M[2].trim(),tags:M[3]?M[3].split(",").map(fe=>fe.trim()):[],preview:(M[4]||"").trim().slice(0,100),content:""}):R.length>2&&!R.startsWith("✖")&&!R.startsWith("[")&&I.push({key:I.length,id:String(I.length),title:R,tags:[],preview:"",content:""})}return I}async function H(){if(!O.value.trim()){W();return}s.value=!0,v.value=!0;try{const{output:l}=await b.execute(`note search "${O.value}"`,15e3);S.value=j(l)}catch{S.value=[]}finally{s.value=!1}}function W(){O.value="",v.value=!1,S.value=[]}async function X(){if(!N.value.title.trim()){C.warning("请输入标题");return}d.value=!0;try{let l=`note add "${N.value.title}"`;N.value.content&&(l+=` -c "${N.value.content.replace(/"/g,'\\"')}"`),N.value.tags&&(l+=` -t "${N.value.tags}"`);const{output:I}=await b.execute(l,15e3);I.includes("✖")||I.toLowerCase().includes("error")?C.error("添加失败: "+I.slice(0,100)):(C.success("笔记已添加"),U.value=!1,N.value={title:"",content:"",tags:""},await T())}catch(l){C.error("添加失败: "+l.message)}finally{d.value=!1}}function Y(l){c.value=l,E.value=!0}async function K(){if(!c.value)return;const l=c.value,I=l.tags?.length?`tags: [${l.tags.join(", ")}]
|
|
3
3
|
|
|
4
4
|
`:"",$=`# ${l.title}
|
|
5
5
|
|
|
6
6
|
${I}${l.content||l.preview||""}
|
|
7
|
-
`,ee=(l.title||"note").replace(/[\\/:*?"<>|\x00-\x1f]+/g,"_").slice(0,80)||"note";g.value=!0;try{const R=await e.saveText($,{defaultPath:`${ee}.md`,filters:[{name:"Markdown",extensions:["md"]}]});if(R.canceled)return;C.success(R.path?`已导出到 ${R.path}`:"已导出")}catch(R){C.error(`导出失败: ${R.message||R}`)}finally{g.value=!1}}re(()=>{
|
|
7
|
+
`,ee=(l.title||"note").replace(/[\\/:*?"<>|\x00-\x1f]+/g,"_").slice(0,80)||"note";g.value=!0;try{const R=await e.saveText($,{defaultPath:`${ee}.md`,filters:[{name:"Markdown",extensions:["md"]}]});if(R.canceled)return;C.success(R.path?`已导出到 ${R.path}`:"已导出")}catch(R){C.error(`导出失败: ${R.message||R}`)}finally{g.value=!1}}re(()=>{T(),h.query.clipboardImport&&(p.value=!0),h.query.screenshotOcr&&(o.value=!0)}),F(()=>h.query.clipboardImport,l=>{l&&(p.value=!0)}),F(()=>h.query.screenshotOcr,l=>{l&&(o.value=!0)});const y={ws:b,fs:e,route:h,exporting:g,loading:r,searching:s,adding:d,error:i,notes:_,searchResults:S,isSearchMode:v,searchQuery:O,showAdd:U,showView:E,showClipboardImport:p,showScreenshotImport:o,viewingNote:c,newNote:N,onClipboardSaved:B,onScreenshotSaved:Q,displayNotes:A,columns:q,loadNotes:T,parseNoteList:j,doSearch:H,clearSearch:W,addNote:X,viewNote:Y,exportNote:K,ref:u,computed:P,onMounted:re,watch:F,get useRoute(){return le},get PlusOutlined(){return _e},get ReloadOutlined(){return we},get FileTextOutlined(){return ve},get DownloadOutlined(){return ge},get SnippetsOutlined(){return pe},get CameraOutlined(){return ue},get message(){return C},get useWsStore(){return J},get useFs(){return ie},ClipboardImportDialog:xe,ScreenshotImportDialog:Ue};return Object.defineProperty(y,"__isScriptSetup",{enumerable:!1,value:!0}),y}},Le={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Te={class:"page-sub"},ze={style:{"margin-bottom":"16px",display:"flex",gap:"10px"}},Ae={key:0,style:{"text-align":"center",padding:"60px"}},Me={key:0,style:{color:"#e0e0e0","font-weight":"500"}},Fe={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Pe={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Be={key:0,style:{"max-height":"60vh","overflow-y":"auto"}},Qe={style:{"margin-bottom":"10px"}},qe={style:{"white-space":"pre-wrap",color:"#ccc","font-family":"inherit","line-height":"1.7",background:"var(--bg-base)",padding:"16px","border-radius":"6px",border:"1px solid var(--border-color)"}};function je(m,t,b,e,h,g){const r=f("a-button"),s=f("a-space"),d=f("a-input-search"),i=f("a-tag"),_=f("a-spin"),S=f("a-table"),v=f("a-input"),O=f("a-form-item"),U=f("a-textarea"),E=f("a-form"),p=f("a-modal");return w(),V("div",null,[D("div",Le,[D("div",null,[t[12]||(t[12]=D("h2",{class:"page-title"},"笔记管理",-1)),D("p",Te,"个人知识库 · "+z(e.notes.length)+" 条笔记",1)]),n(s,null,{default:a(()=>[n(r,{onClick:t[0]||(t[0]=o=>e.showAdd=!0),type:"primary"},{icon:a(()=>[n(e.PlusOutlined)]),default:a(()=>[t[13]||(t[13]=k(" 新建笔记 ",-1))]),_:1}),n(r,{onClick:t[1]||(t[1]=o=>e.showClipboardImport=!0)},{icon:a(()=>[n(e.SnippetsOutlined)]),default:a(()=>[t[14]||(t[14]=k(" 剪贴板导入 ",-1))]),_:1}),n(r,{onClick:t[2]||(t[2]=o=>e.showScreenshotImport=!0)},{icon:a(()=>[n(e.CameraOutlined)]),default:a(()=>[t[15]||(t[15]=k(" 截图识别 ",-1))]),_:1}),n(r,{ghost:"",loading:e.loading,onClick:e.loadNotes},{icon:a(()=>[n(e.ReloadOutlined)]),default:a(()=>[t[16]||(t[16]=k(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),x(" Search "),D("div",ze,[n(d,{value:e.searchQuery,"onUpdate:value":t[3]||(t[3]=o=>e.searchQuery=o),placeholder:"搜索笔记...","allow-clear":"",style:{"max-width":"400px"},loading:e.searching,onSearch:e.doSearch,onClear:e.clearSearch},null,8,["value","loading"]),e.isSearchMode?(w(),L(i,{key:0,color:"blue",closable:"",onClose:e.clearSearch},{default:a(()=>[k(" 搜索: "+z(e.searchQuery),1)]),_:1})):x("v-if",!0)]),x(" Loading "),e.loading?(w(),V("div",Ae,[n(_,{size:"large"})])):(w(),V(te,{key:1},[x(" Notes Table "),n(S,{columns:e.columns,"data-source":e.displayNotes,pagination:{pageSize:20,showTotal:o=>`共 ${o} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"note-row"},{bodyCell:a(({column:o,record:c})=>[o.key==="title"?(w(),V("span",Me,z(c.title),1)):x("v-if",!0),o.key==="tags"?(w(!0),V(te,{key:1},se(c.tags,N=>(w(),L(i,{key:N,color:"blue",style:{"font-size":"10px",margin:"1px"}},{default:a(()=>[k(z(N),1)]),_:2},1024))),128)):x("v-if",!0),o.key==="content"?(w(),V("span",Fe,z(c.preview),1)):x("v-if",!0),o.key==="actions"?(w(),L(r,{key:3,size:"small",type:"link",onClick:N=>e.viewNote(c)},{default:a(()=>[...t[17]||(t[17]=[k("查看",-1)])]),_:1},8,["onClick"])):x("v-if",!0)]),emptyText:a(()=>[D("div",Pe,[n(e.FileTextOutlined,{style:{"font-size":"40px","margin-bottom":"12px",display:"block"}}),k(" "+z(e.error||'暂无笔记,点击"新建笔记"添加'),1)])]),_:1},8,["data-source","pagination"])],2112)),x(" Add Note Modal "),n(p,{open:e.showAdd,"onUpdate:open":t[7]||(t[7]=o=>e.showAdd=o),title:"新建笔记","confirm-loading":e.adding,onOk:e.addNote},{default:a(()=>[n(E,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:a(()=>[n(O,{label:"标题",required:""},{default:a(()=>[n(v,{value:e.newNote.title,"onUpdate:value":t[4]||(t[4]=o=>e.newNote.title=o),placeholder:"笔记标题"},null,8,["value"])]),_:1}),n(O,{label:"内容"},{default:a(()=>[n(U,{value:e.newNote.content,"onUpdate:value":t[5]||(t[5]=o=>e.newNote.content=o),rows:5,placeholder:"笔记内容..."},null,8,["value"])]),_:1}),n(O,{label:"标签"},{default:a(()=>[n(v,{value:e.newNote.tags,"onUpdate:value":t[6]||(t[6]=o=>e.newNote.tags=o),placeholder:"用逗号分隔,如: work,ideas"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"]),x(" Clipboard import modal "),n(e.ClipboardImportDialog,{modelValue:e.showClipboardImport,"onUpdate:modelValue":t[8]||(t[8]=o=>e.showClipboardImport=o),onSaved:e.onClipboardSaved},null,8,["modelValue"]),x(" Screenshot OCR modal "),n(e.ScreenshotImportDialog,{modelValue:e.showScreenshotImport,"onUpdate:modelValue":t[9]||(t[9]=o=>e.showScreenshotImport=o),onSaved:e.onScreenshotSaved},null,8,["modelValue"]),x(" View Note Modal "),n(p,{open:e.showView,"onUpdate:open":t[11]||(t[11]=o=>e.showView=o),title:e.viewingNote?.title,width:"700px"},{footer:a(()=>[n(r,{onClick:t[10]||(t[10]=o=>e.showView=!1)},{default:a(()=>[...t[18]||(t[18]=[k("关闭",-1)])]),_:1}),e.viewingNote?(w(),L(r,{key:0,type:"primary",loading:e.exporting,onClick:e.exportNote},{icon:a(()=>[n(e.DownloadOutlined)]),default:a(()=>[t[19]||(t[19]=k(" 导出 .md ",-1))]),_:1},8,["loading"])):x("v-if",!0)]),default:a(()=>[e.viewingNote?(w(),V("div",Be,[D("div",Qe,[(w(!0),V(te,null,se(e.viewingNote.tags,o=>(w(),L(i,{key:o,color:"blue"},{default:a(()=>[k(z(o),1)]),_:2},1024))),128))]),D("pre",qe,z(e.viewingNote.content||e.viewingNote.preview),1)])):x("v-if",!0)]),_:1},8,["open","title"])])}const He=ae(De,[["render",je],["__scopeId","data-v-7992c921"],["__file","/tmp/cc-web-panel-wQGCAD/repo/packages/web-panel/src/views/Notes.vue"]]);export{He as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as b,I as f,J as h,U as d,S as R,V as E,c as n,K as c,o as N,P as k,F as V,Q as
|
|
1
|
+
import{r as b,I as f,J as h,U as d,S as R,V as E,c as n,K as c,o as N,P as k,F as V,Q as O,R as B}from"./vendor-BvqAck49.js";import{u as D,_ as A,d as S}from"./index-CSnTUPQx.js";import{u as F}from"./useShellMode-CgR0wCYM.js";import{R as L}from"./icons-DP3uiYxy.js";const p={enabled:!0,sound:!0,badge:!0,desktop:!0};function x(s){if(s&&s.ok===!1)throw new Error(s.error||"notification-settings handler failed");return s?.result??s}const u={settings:b({...p})};function T(){const s=D(),t=F().isEmbedded;async function _(){if(!t)return u.settings.value={...p},u.settings.value;const a=await s.sendRaw({type:"notification-settings.get"},1e4),o=x(a);if(o?.success===!1)throw new Error(o.error||"notification-settings.get failed");return u.settings.value={...p,...o?.settings||{}},u.settings.value}async function e(a){if(!a||typeof a!="object")throw new Error("patch is required");if(!t)throw new Error("通知设置仅在嵌入式 web-shell 中可写");const o=await s.sendRaw({type:"notification-settings.update",settings:a},1e4),i=x(o);if(i?.success===!1)throw new Error(i.error||"notification-settings.update failed");return u.settings.value={...p,...i?.settings||{}},u.settings.value}return{settings:u.settings,isEmbedded:t,load:_,update:e,DEFAULTS:p}}const j={__name:"NotificationSettings",setup(s,{expose:t}){t();const{settings:_,isEmbedded:e,load:a,update:o}=T(),i=b(!1),l=b(!1),g=b("");async function v(){i.value=!0;try{await a()}catch(m){S.error("加载失败: "+(m?.message||String(m)))}finally{i.value=!1}}async function y(m,r){if(e){l.value=!0;try{await o({[m]:r}),g.value=new Date().toLocaleTimeString(),S.success("已保存")}catch(C){S.error("保存失败: "+(C?.message||String(C))),await a().catch(()=>{})}finally{l.value=!1}}}N(v);const w={settings:_,isEmbedded:e,load:a,update:o,loading:i,saving:l,lastSaved:g,reload:v,onToggle:y,ref:b,onMounted:N,get message(){return S},get ReloadOutlined(){return L},get useNotificationSettings(){return T}};return Object.defineProperty(w,"__isScriptSetup",{enumerable:!1,value:!0}),w}},I={class:"footer-row"},M={key:0,class:"last-saved"};function P(s,t,_,e,a,o){const i=f("a-alert"),l=f("a-switch"),g=f("a-form-item"),v=f("a-form"),y=f("a-divider"),w=f("a-button"),m=f("a-card");return k(),h("div",null,[t[9]||(t[9]=d("div",{class:"page-head"},[d("div",null,[d("h2",{class:"page-title"},"通知设置"),d("p",{class:"page-sub"},"控制应用通知行为 · 与桌面 V5/V6 设置同源")])],-1)),e.isEmbedded?E("v-if",!0):(k(),R(i,{key:0,type:"info","show-icon":"",style:{"margin-bottom":"16px"},message:"浏览器模式只读",description:"纯浏览器没有 Electron AppConfig 后端,本页只能展示默认值。请使用桌面壳 (cc desktop) 写入。"})),n(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:c(()=>[n(v,{layout:"horizontal","label-col":{span:6},"wrapper-col":{span:18}},{default:c(()=>[n(g,{label:"启用通知"},{default:c(()=>[n(l,{checked:e.settings.enabled,disabled:!e.isEmbedded||e.saving,onChange:t[0]||(t[0]=r=>e.onToggle("enabled",r))},null,8,["checked","disabled"]),t[4]||(t[4]=d("span",{class:"hint"},"关闭后所有通知静默",-1))]),_:1}),e.settings.enabled?(k(),h(V,{key:0},[n(g,{label:"通知声音"},{default:c(()=>[n(l,{checked:e.settings.sound,disabled:!e.isEmbedded||e.saving,onChange:t[1]||(t[1]=r=>e.onToggle("sound",r))},null,8,["checked","disabled"]),t[5]||(t[5]=d("span",{class:"hint"},"桌面通知伴随系统提示音",-1))]),_:1}),n(g,{label:"角标提示"},{default:c(()=>[n(l,{checked:e.settings.badge,disabled:!e.isEmbedded||e.saving,onChange:t[2]||(t[2]=r=>e.onToggle("badge",r))},null,8,["checked","disabled"]),t[6]||(t[6]=d("span",{class:"hint"},"在应用图标 / 任务栏角标显示未读数",-1))]),_:1}),n(g,{label:"桌面通知"},{default:c(()=>[n(l,{checked:e.settings.desktop,disabled:!e.isEmbedded||e.saving,onChange:t[3]||(t[3]=r=>e.onToggle("desktop",r))},null,8,["checked","disabled"]),t[7]||(t[7]=d("span",{class:"hint"},"系统级 toast (Windows / macOS / Linux 原生通知)",-1))]),_:1})],64)):E("v-if",!0)]),_:1}),n(y),d("div",I,[n(w,{loading:e.loading,onClick:e.reload},{icon:c(()=>[n(e.ReloadOutlined)]),default:c(()=>[t[8]||(t[8]=O(" 重新加载 ",-1))]),_:1},8,["loading"]),e.lastSaved?(k(),h("span",M,"最近保存: "+B(e.lastSaved),1)):E("v-if",!0)])]),_:1})])}const z=A(j,[["render",P],["__scopeId","data-v-ae0392e9"],["__file","/tmp/cc-web-panel-wQGCAD/repo/packages/web-panel/src/views/NotificationSettings.vue"]]);export{z as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as
|
|
1
|
+
import{I as h,P as l,J as u,U as s,R as n,c as i,K as v,Q as _,V as g,b as a}from"./vendor-BvqAck49.js";import{_ as S}from"./index-CSnTUPQx.js";import"./icons-DP3uiYxy.js";const k={__name:"OrderTableRenderer",props:{event:{type:Object,required:!0}},setup(p,{expose:r}){r();const o=p,e=a(()=>o.event.content||{}),d=a(()=>o.event.extra||{}),m=a(()=>d.value.merchant||e.value.merchant||e.value.counterparty||"—"),c=a(()=>e.value.title||e.value.name||e.value.itemName||e.value.text||"—"),y=a(()=>{const t=e.value.amount??e.value.price??e.value.total;return t==null?"—":`${e.value.currency||"¥"} ${typeof t=="number"?t.toFixed(2):t}`}),T=a(()=>d.value.orderNo||e.value.orderNo||e.value.orderId),f=a(()=>e.value.status||e.value.state),w=a(()=>{const t=(f.value||"").toLowerCase();return t.includes("成功")||t.includes("succe")||t.includes("paid")?"green":t.includes("退")||t.includes("refund")?"orange":t.includes("失败")||t.includes("fail")?"red":"default"}),b=a(()=>{if(!o.event.occurredAt)return"";const t=new Date(o.event.occurredAt);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")} ${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}),x={props:o,c:e,e:d,merchantText:m,itemText:c,amountText:y,orderNo:T,statusText:f,statusColor:w,formattedTime:b,computed:a};return Object.defineProperty(x,"__isScriptSetup",{enumerable:!1,value:!0}),x}},N={class:"order-card"},C={class:"head"},O={class:"time"},V={class:"row"},D={class:"val"},R={class:"row"},A={class:"val"},B={class:"row amount-row"},I={class:"val amount"},j={key:0,class:"row"},F={class:"val mono"},M={key:1,class:"row"};function P(p,r,o,e,d,m){const c=h("a-tag");return l(),u("div",N,[s("div",C,[s("span",O,n(e.formattedTime),1),i(c,{color:"gold"},{default:v(()=>[_(n(o.event.source.adapter),1)]),_:1}),i(c,null,{default:v(()=>[_(n(o.event.subtype),1)]),_:1})]),s("div",V,[r[0]||(r[0]=s("span",{class:"key"},"商户",-1)),s("span",D,n(e.merchantText),1)]),s("div",R,[r[1]||(r[1]=s("span",{class:"key"},"商品/项目",-1)),s("span",A,n(e.itemText),1)]),s("div",B,[r[2]||(r[2]=s("span",{class:"key"},"金额",-1)),s("span",I,n(e.amountText),1)]),e.orderNo?(l(),u("div",j,[r[3]||(r[3]=s("span",{class:"key"},"单号",-1)),s("span",F,n(e.orderNo),1)])):g("v-if",!0),e.statusText?(l(),u("div",M,[r[4]||(r[4]=s("span",{class:"key"},"状态",-1)),i(c,{color:e.statusColor},{default:v(()=>[_(n(e.statusText),1)]),_:1},8,["color"])])):g("v-if",!0)])}const H=S(k,[["render",P],["__scopeId","data-v-5ed5524d"],["__file","/tmp/cc-web-panel-wQGCAD/repo/packages/web-panel/src/components/pdh/renderers/OrderTableRenderer.vue"]]);export{H as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{I as z,J as f,U as S,R as d,c as t,K as l,o as be,b as F,r as m,P as c,Q as _,V as y,S as O,F as _e,a2 as we}from"./vendor-BvqAck49.js";import{_ as Fe,b as ze,u as xe,d as p}from"./index-
|
|
2
|
-
`);for(const g of n){const v=g.trim();if(!v||v.startsWith("─")||v.match(/^\d+ org/i))continue;const b=v.split(/\s*[|│]\s*/);b.length>=3&&i.push({key:i.length,id:b[0]||"-",name:b[1]||"-",owner:b[2]||"-",description:b[3]||"",memberCount:parseInt(b[4],10)||0})}return i}async function u(){if(!N.value.trim()){p.warning(r("organization.messages.orgNameRequired"));return}C.value=!0;try{const o=N.value.trim().replace(/"/g,'\\"'),i=I.value.trim().replace(/"/g,'\\"');let n=`org create "${o}" --json`;i&&(n=`org create "${o}" --description "${i}" --json`);const{output:g}=await e.execute(n,2e4);g.includes("error")||g.includes("失败")?p.error(r("organization.messages.orgCreateFailed",{err:g.slice(0,120)})):(p.success(r("organization.messages.orgCreateOk")),P.value=!1,N.value="",I.value="",await A())}catch(o){p.error(r("organization.messages.orgCreateFailed",{err:o.message}))}finally{C.value=!1}}async function
|
|
3
|
-
`);for(const g of n){const v=g.trim();if(!v||v.startsWith("─")||v.match(/^\d+ member/i))continue;const b=v.split(/\s*[|│]\s*/);b.length>=3&&i.push({key:i.length,userId:b[0]||"-",name:b[1]||"-",role:b[2]||"member",joinedAt:b[3]||"-"})}return i}async function
|
|
4
|
-
`);for(const g of n){const v=g.trim();if(!v||v.startsWith("─")||v.match(/^\d+ approval/i))continue;const b=v.split(/\s*[|│]\s*/);b.length>=4&&i.push({key:i.length,id:b[0]||"-",title:b[1]||"-",type:b[2]||"-",requester:b[3]||"-",status:b[4]||"pending",_approving:!1,_rejecting:!1})}return i}async function Ue(o){o._approving=!0;try{const{output:i}=await e.execute(`org approve ${o.id}`,15e3);i.includes("error")||i.includes("失败")?p.error(r("organization.messages.approveFailed",{err:i.slice(0,120)})):(p.success(r("organization.messages.approveOk")),await q())}catch(i){p.error(r("organization.messages.approveFailed",{err:i.message}))}finally{o._approving=!1}}async function Se(o){o._rejecting=!0;try{const{output:i}=await e.execute(`org reject ${o.id}`,15e3);i.includes("error")||i.includes("失败")?p.error(r("organization.messages.rejectFailed",{err:i.slice(0,120)})):(p.success(r("organization.messages.rejectOk")),await q())}catch(i){p.error(r("organization.messages.rejectFailed",{err:i.message}))}finally{o._rejecting=!1}}async function Pe(){if(!Y.value){p.warning(r("organization.messages.orgRequired"));return}if(!G.value.trim()){p.warning(r("organization.messages.approvalTitleRequired"));return}de.value=!0;try{const o=G.value.trim().replace(/"/g,'\\"'),i=me.value.trim().replace(/"/g,'\\"'),n=ce.value.trim().replace(/"/g,'\\"');let g=`org approve --submit --org ${Y.value} --title "${o}"`;i&&(g+=` --type "${i}"`),n&&(g+=` --description "${n}"`);const{output:v}=await e.execute(g,2e4);v.includes("error")||v.includes("失败")?p.error(r("organization.messages.submitFailed",{err:v.slice(0,120)})):(p.success(r("organization.messages.submitOk")),ve.value=!1,Y.value=null,G.value="",me.value="",ce.value="",await q())}catch(o){p.error(r("organization.messages.submitFailed",{err:o.message}))}finally{de.value=!1}}be(()=>{A()});const ye={t:r,ws:e,activeTab:D,refreshing:J,refreshCurrentTab:T,onTabChange:R,tryParseJson:x,orgLoading:M,orgList:k,showCreateOrgModal:P,creatingOrg:C,newOrgName:N,newOrgDesc:I,showDetailModal:h,detailLoading:w,detailOrg:U,detailRaw:L,orgColumns:B,orgSelectOptions:H,loadOrgList:A,parseOrgListText:a,createOrg:u,showOrgDetail:X,selectedOrgId:j,memberLoading:Z,memberList:$,teamLoading:ee,teamList:ae,showInviteModal:ge,inviting:te,inviteUserId:V,inviteName:oe,inviteRole:ne,showCreateTeamModal:ue,creatingTeam:le,newTeamName:W,newTeamDesc:ie,newTeamLead:re,roleOptions:he,memberColumns:Oe,teamColumns:Ce,roleColor:Te,onOrgSelected:Ie,loadMembers:K,parseMemberListText:pe,loadTeams:E,inviteMember:Le,createTeam:Ae,approvalLoading:se,approvalList:Q,showSubmitApprovalModal:ve,submittingApproval:de,approvalOrgId:Y,approvalTitle:G,approvalType:me,approvalDescription:ce,approvalColumns:je,approvalStatusColor:Me,loadApprovals:q,parseApprovalListText:fe,approveItem:Ue,rejectItem:Se,submitApproval:Pe,ref:m,computed:F,onMounted:be,get useI18n(){return ze},get TeamOutlined(){return Ve},get UserAddOutlined(){return Je},get AuditOutlined(){return Be},get ReloadOutlined(){return Re},get PlusOutlined(){return De},get CheckOutlined(){return qe},get CloseOutlined(){return Ne},get message(){return p},get useWsStore(){return xe}};return Object.defineProperty(ye,"__isScriptSetup",{enumerable:!1,value:!0}),ye}},Ke={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ee={class:"page-title"},Qe={class:"page-sub"},Ye={key:0,style:{"text-align":"center",padding:"60px"}},Ge={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},He={key:1,style:{color:"#1677ff"}},Xe={key:2,style:{color:"var(--text-secondary)"}},Ze={key:3,style:{color:"var(--text-muted)","font-size":"12px"}},$e={key:0,style:{"text-align":"center",padding:"40px"}},ea={key:1},aa={style:{"font-family":"monospace",color:"#ccc"}},ta={key:0,style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)","max-height":"300px","overflow-y":"auto"}},oa={style:{"margin-bottom":"16px",display:"flex","align-items":"center",gap:"12px"}},na={key:0,style:{"text-align":"center",padding:"60px"}},la={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},ia={key:1,style:{color:"#e0e0e0"}},ra={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},sa={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"12px"}},da={style:{color:"var(--text-primary)",margin:"0","font-size":"15px"}},ma={key:0,style:{"text-align":"center",padding:"40px"}},ca={key:0,style:{color:"#e0e0e0"}},ga={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},ua={key:2,style:{color:"var(--text-secondary)"}},pa={key:0,style:{"text-align":"center",padding:"60px"}},va={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},fa={key:1,style:{color:"#e0e0e0"}},ya={key:3,style:{color:"var(--text-secondary)"}},ba={key:1,style:{color:"var(--text-muted)","font-size":"12px"}};function _a(ke,s,r,e,D,J){const T=z("a-button"),R=z("a-space"),x=z("a-spin"),M=z("a-tag"),k=z("a-empty"),P=z("a-table"),C=z("a-descriptions-item"),N=z("a-descriptions"),I=z("a-modal"),h=z("a-input"),w=z("a-form-item"),U=z("a-form"),L=z("a-tab-pane"),B=z("a-select"),H=z("a-textarea"),A=z("a-tabs");return c(),f("div",null,[S("div",Ke,[S("div",null,[S("h2",Ee,d(e.t("organization.title")),1),S("p",Qe,d(e.t("organization.subtitle")),1)]),t(T,{type:"primary",ghost:"",loading:e.refreshing,onClick:e.refreshCurrentTab},{icon:l(()=>[t(e.ReloadOutlined)]),default:l(()=>[_(" "+d(e.t("organization.refresh")),1)]),_:1},8,["loading"])]),t(A,{activeKey:e.activeTab,"onUpdate:activeKey":s[22]||(s[22]=a=>e.activeTab=a),type:"card",onChange:e.onTabChange},{default:l(()=>[y(" Tab 1: Organization List "),t(L,{key:"orgs"},{tab:l(()=>[t(e.TeamOutlined),_(" "+d(e.t("organization.tabs.orgs")),1)]),default:l(()=>[t(R,{style:{"margin-bottom":"16px"}},{default:l(()=>[t(T,{type:"primary",onClick:s[0]||(s[0]=a=>e.showCreateOrgModal=!0)},{icon:l(()=>[t(e.PlusOutlined)]),default:l(()=>[_(" "+d(e.t("organization.orgs.createButton")),1)]),_:1})]),_:1}),e.orgLoading?(c(),f("div",Ye,[t(x,{size:"large"})])):(c(),O(P,{key:1,columns:e.orgColumns,"data-source":e.orgList,pagination:{pageSize:20,showTotal:a=>e.t("organization.totals.rows",{count:a})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row","custom-row":a=>({onClick:()=>e.showOrgDetail(a)})},{bodyCell:l(({column:a,record:u})=>[a.key==="id"?(c(),f("span",Ge,d(u.id),1)):y("v-if",!0),a.key==="name"?(c(),f("a",He,d(u.name),1)):y("v-if",!0),a.key==="owner"?(c(),f("span",Xe,d(u.owner),1)):y("v-if",!0),a.key==="description"?(c(),f("span",Ze,d(u.description),1)):y("v-if",!0),a.key==="memberCount"?(c(),O(M,{key:4,color:"blue"},{default:l(()=>[_(d(u.memberCount),1)]),_:2},1024)):y("v-if",!0)]),emptyText:l(()=>[t(k,{description:e.t("organization.orgs.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination","custom-row"])),t(I,{open:e.showDetailModal,"onUpdate:open":s[1]||(s[1]=a=>e.showDetailModal=a),title:e.t("organization.orgs.detailTitle",{name:e.detailOrg.name||""}),footer:null,width:"640px"},{default:l(()=>[e.detailLoading?(c(),f("div",$e,[t(x)])):(c(),f("div",ea,[t(N,{column:1,bordered:"",size:"small",style:{"margin-bottom":"16px"}},{default:l(()=>[t(C,{label:e.t("organization.orgs.detailLabels.id")},{default:l(()=>[S("span",aa,d(e.detailOrg.id),1)]),_:1},8,["label"]),t(C,{label:e.t("organization.orgs.detailLabels.name")},{default:l(()=>[_(d(e.detailOrg.name),1)]),_:1},8,["label"]),t(C,{label:e.t("organization.orgs.detailLabels.owner")},{default:l(()=>[_(d(e.detailOrg.owner),1)]),_:1},8,["label"]),t(C,{label:e.t("organization.orgs.detailLabels.description")},{default:l(()=>[_(d(e.detailOrg.description||"-"),1)]),_:1},8,["label"]),t(C,{label:e.t("organization.orgs.detailLabels.memberCount")},{default:l(()=>[_(d(e.detailOrg.memberCount),1)]),_:1},8,["label"]),e.detailOrg.createdAt?(c(),O(C,{key:0,label:e.t("organization.orgs.detailLabels.createdAt")},{default:l(()=>[_(d(e.detailOrg.createdAt),1)]),_:1},8,["label"])):y("v-if",!0)]),_:1}),e.detailRaw?(c(),f("pre",ta,d(e.detailRaw),1)):y("v-if",!0)]))]),_:1},8,["open","title"]),t(I,{open:e.showCreateOrgModal,"onUpdate:open":s[4]||(s[4]=a=>e.showCreateOrgModal=a),title:e.t("organization.orgs.createTitle"),"confirm-loading":e.creatingOrg,onOk:e.createOrg,"ok-text":e.t("organization.orgs.createOk"),"cancel-text":e.t("common.cancel")},{default:l(()=>[t(U,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:l(()=>[t(w,{label:e.t("organization.orgs.nameLabel"),required:""},{default:l(()=>[t(h,{value:e.newOrgName,"onUpdate:value":s[2]||(s[2]=a=>e.newOrgName=a),placeholder:e.t("organization.orgs.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.orgs.descriptionLabel")},{default:l(()=>[t(h,{value:e.newOrgDesc,"onUpdate:value":s[3]||(s[3]=a=>e.newOrgDesc=a),placeholder:e.t("organization.orgs.descriptionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),y(" Tab 2: Member Management "),t(L,{key:"members"},{tab:l(()=>[t(e.UserAddOutlined),_(" "+d(e.t("organization.tabs.members")),1)]),default:l(()=>[S("div",oa,[t(B,{value:e.selectedOrgId,"onUpdate:value":s[5]||(s[5]=a=>e.selectedOrgId=a),placeholder:e.t("organization.members.selectPlaceholder"),style:{width:"280px"},options:e.orgSelectOptions,onChange:e.onOrgSelected},null,8,["value","placeholder","options"]),t(T,{type:"primary",disabled:!e.selectedOrgId,onClick:s[6]||(s[6]=a=>e.showInviteModal=!0)},{icon:l(()=>[t(e.UserAddOutlined)]),default:l(()=>[_(" "+d(e.t("organization.members.inviteButton")),1)]),_:1},8,["disabled"])]),e.memberLoading?(c(),f("div",na,[t(x,{size:"large"})])):e.selectedOrgId?(c(),O(P,{key:1,columns:e.memberColumns,"data-source":e.memberList,pagination:{pageSize:20,showTotal:a=>e.t("organization.totals.rows",{count:a})},size:"small",style:{background:"var(--bg-card)","margin-bottom":"24px"},"row-class-name":()=>"org-row"},{bodyCell:l(({column:a,record:u})=>[a.key==="userId"?(c(),f("span",la,d(u.userId),1)):y("v-if",!0),a.key==="name"?(c(),f("span",ia,d(u.name),1)):y("v-if",!0),a.key==="role"?(c(),O(M,{key:2,color:e.roleColor(u.role)},{default:l(()=>[_(d(u.role),1)]),_:2},1032,["color"])):y("v-if",!0),a.key==="joinedAt"?(c(),f("span",ra,d(u.joinedAt),1)):y("v-if",!0)]),emptyText:l(()=>[t(k,{description:e.t("organization.members.emptyMembers")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])):(c(),O(k,{key:2,description:e.t("organization.members.selectFirst"),style:{padding:"60px 0"}},null,8,["description"])),e.selectedOrgId?(c(),f(_e,{key:3},[S("div",sa,[S("h3",da,d(e.t("organization.members.teamsTitle")),1),t(T,{size:"small",onClick:s[7]||(s[7]=a=>e.showCreateTeamModal=!0)},{icon:l(()=>[t(e.PlusOutlined)]),default:l(()=>[_(" "+d(e.t("organization.members.createTeamButton")),1)]),_:1})]),e.teamLoading?(c(),f("div",ma,[t(x)])):(c(),O(P,{key:1,columns:e.teamColumns,"data-source":e.teamList,pagination:!1,size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:l(({column:a,record:u})=>[a.key==="name"?(c(),f("span",ca,d(u.name),1)):y("v-if",!0),a.key==="description"?(c(),f("span",ga,d(u.description),1)):y("v-if",!0),a.key==="lead"?(c(),f("span",ua,d(u.lead),1)):y("v-if",!0)]),emptyText:l(()=>[t(k,{description:e.t("organization.members.emptyTeams")},null,8,["description"])]),_:1},8,["columns","data-source"]))],64)):y("v-if",!0),t(I,{open:e.showInviteModal,"onUpdate:open":s[11]||(s[11]=a=>e.showInviteModal=a),title:e.t("organization.members.inviteTitle"),"confirm-loading":e.inviting,onOk:e.inviteMember,"ok-text":e.t("organization.members.inviteOk"),"cancel-text":e.t("common.cancel")},{default:l(()=>[t(U,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[t(w,{label:e.t("organization.members.userIdLabel"),required:""},{default:l(()=>[t(h,{value:e.inviteUserId,"onUpdate:value":s[8]||(s[8]=a=>e.inviteUserId=a),placeholder:e.t("organization.members.userIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.nameLabel")},{default:l(()=>[t(h,{value:e.inviteName,"onUpdate:value":s[9]||(s[9]=a=>e.inviteName=a),placeholder:e.t("organization.members.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.roleLabel")},{default:l(()=>[t(B,{value:e.inviteRole,"onUpdate:value":s[10]||(s[10]=a=>e.inviteRole=a),options:e.roleOptions},null,8,["value","options"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(I,{open:e.showCreateTeamModal,"onUpdate:open":s[15]||(s[15]=a=>e.showCreateTeamModal=a),title:e.t("organization.members.createTeamTitle"),"confirm-loading":e.creatingTeam,onOk:e.createTeam,"ok-text":e.t("organization.members.createTeamOk"),"cancel-text":e.t("common.cancel")},{default:l(()=>[t(U,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[t(w,{label:e.t("organization.members.teamNameLabel"),required:""},{default:l(()=>[t(h,{value:e.newTeamName,"onUpdate:value":s[12]||(s[12]=a=>e.newTeamName=a),placeholder:e.t("organization.members.teamNamePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.teamDescLabel")},{default:l(()=>[t(h,{value:e.newTeamDesc,"onUpdate:value":s[13]||(s[13]=a=>e.newTeamDesc=a),placeholder:e.t("organization.members.teamDescPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.teamLeadLabel")},{default:l(()=>[t(h,{value:e.newTeamLead,"onUpdate:value":s[14]||(s[14]=a=>e.newTeamLead=a),placeholder:e.t("organization.members.teamLeadPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),y(" Tab 3: Approval Management "),t(L,{key:"approvals"},{tab:l(()=>[t(e.AuditOutlined),_(" "+d(e.t("organization.tabs.approvals")),1)]),default:l(()=>[t(R,{style:{"margin-bottom":"16px"}},{default:l(()=>[t(T,{type:"primary",onClick:s[16]||(s[16]=a=>e.showSubmitApprovalModal=!0)},{icon:l(()=>[t(e.PlusOutlined)]),default:l(()=>[_(" "+d(e.t("organization.approvals.submitButton")),1)]),_:1})]),_:1}),e.approvalLoading?(c(),f("div",pa,[t(x,{size:"large"})])):(c(),O(P,{key:1,columns:e.approvalColumns,"data-source":e.approvalList,pagination:{pageSize:20,showTotal:a=>e.t("organization.totals.rows",{count:a})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:l(({column:a,record:u})=>[a.key==="id"?(c(),f("span",va,d(u.id),1)):y("v-if",!0),a.key==="title"?(c(),f("span",fa,d(u.title),1)):y("v-if",!0),a.key==="type"?(c(),O(M,{key:2,color:"blue"},{default:l(()=>[_(d(u.type),1)]),_:2},1024)):y("v-if",!0),a.key==="requester"?(c(),f("span",ya,d(u.requester),1)):y("v-if",!0),a.key==="status"?(c(),O(M,{key:4,color:e.approvalStatusColor(u.status)},{default:l(()=>[_(d(u.status),1)]),_:2},1032,["color"])):y("v-if",!0),a.key==="actions"?(c(),f(_e,{key:5},[(u.status||"").toLowerCase()==="pending"?(c(),O(R,{key:0},{default:l(()=>[t(T,{type:"primary",size:"small",loading:u._approving,onClick:we(X=>e.approveItem(u),["stop"])},{icon:l(()=>[t(e.CheckOutlined)]),default:l(()=>[_(" "+d(e.t("organization.approvals.approve")),1)]),_:1},8,["loading","onClick"]),t(T,{danger:"",size:"small",loading:u._rejecting,onClick:we(X=>e.rejectItem(u),["stop"])},{icon:l(()=>[t(e.CloseOutlined)]),default:l(()=>[_(" "+d(e.t("organization.approvals.reject")),1)]),_:1},8,["loading","onClick"])]),_:2},1024)):(c(),f("span",ba,"-"))],64)):y("v-if",!0)]),emptyText:l(()=>[t(k,{description:e.t("organization.approvals.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),t(I,{open:e.showSubmitApprovalModal,"onUpdate:open":s[21]||(s[21]=a=>e.showSubmitApprovalModal=a),title:e.t("organization.approvals.submitTitle"),"confirm-loading":e.submittingApproval,onOk:e.submitApproval,"ok-text":e.t("organization.approvals.submitOk"),"cancel-text":e.t("common.cancel")},{default:l(()=>[t(U,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[t(w,{label:e.t("organization.approvals.orgLabel"),required:""},{default:l(()=>[t(B,{value:e.approvalOrgId,"onUpdate:value":s[17]||(s[17]=a=>e.approvalOrgId=a),placeholder:e.t("organization.approvals.orgPlaceholder"),options:e.orgSelectOptions},null,8,["value","placeholder","options"])]),_:1},8,["label"]),t(w,{label:e.t("organization.approvals.titleLabel"),required:""},{default:l(()=>[t(h,{value:e.approvalTitle,"onUpdate:value":s[18]||(s[18]=a=>e.approvalTitle=a),placeholder:e.t("organization.approvals.titlePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.approvals.typeLabel")},{default:l(()=>[t(h,{value:e.approvalType,"onUpdate:value":s[19]||(s[19]=a=>e.approvalType=a),placeholder:e.t("organization.approvals.typePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.approvals.descLabel")},{default:l(()=>[t(H,{value:e.approvalDescription,"onUpdate:value":s[20]||(s[20]=a=>e.approvalDescription=a),placeholder:e.t("organization.approvals.descPlaceholder"),rows:3},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1})]),_:1},8,["activeKey"])])}const ka=Fe(We,[["render",_a],["__scopeId","data-v-4900dc74"],["__file","/tmp/cc-web-panel-YJBpJd/repo/packages/web-panel/src/views/Organization.vue"]]);export{ka as default};
|
|
1
|
+
import{I as z,J as f,U as S,R as d,c as t,K as l,o as be,b as F,r as m,P as c,Q as _,V as y,S as O,F as _e,a2 as we}from"./vendor-BvqAck49.js";import{_ as Fe,b as ze,u as xe,d as p}from"./index-CSnTUPQx.js";import{b as Ne,aj as qe,as as De,R as Re,A as Be,aP as Ve,J as Je}from"./icons-DP3uiYxy.js";const We={__name:"Organization",setup(ke,{expose:s}){s();const{t:r}=ze(),e=xe(),D=m("orgs"),V=m(!1);async function T(){V.value=!0;try{D.value==="orgs"?await A():D.value==="members"?(await A(),j.value&&(await K(),await Q())):D.value==="approvals"&&await q()}finally{V.value=!1}}function R(o){o==="orgs"&&k.value.length===0&&A(),o==="members"&&k.value.length===0&&A(),o==="approvals"&&E.value.length===0&&q()}function x(o){try{const i=o.trim(),n=i.indexOf("["),g=i.indexOf("{"),v=n>=0&&(g<0||n<g)?n:g;return v>=0?JSON.parse(i.slice(v)):null}catch{return null}}const M=m(!1),k=m([]),P=m(!1),C=m(!1),N=m(""),I=m(""),h=m(!1),w=m(!1),U=m({}),L=m(""),B=F(()=>[{title:r("organization.orgColumns.id"),key:"id",dataIndex:"id",width:"100px"},{title:r("organization.orgColumns.name"),key:"name",dataIndex:"name",width:"180px"},{title:r("organization.orgColumns.owner"),key:"owner",dataIndex:"owner",width:"140px"},{title:r("organization.orgColumns.description"),key:"description",dataIndex:"description",ellipsis:!0},{title:r("organization.orgColumns.memberCount"),key:"memberCount",dataIndex:"memberCount",width:"90px"}]),X=F(()=>k.value.map(o=>({label:o.name,value:o.id})));async function A(){M.value=!0;try{const{output:o}=await e.execute("org list --json",15e3),i=x(o);Array.isArray(i)?k.value=i.map((n,g)=>({key:n.id||g,id:n.id||"-",name:n.name||"-",owner:n.owner||"-",description:n.description||"",memberCount:n.memberCount??n.members??0})):k.value=a(o)}catch(o){p.error(r("organization.messages.loadOrgsFailed",{err:o.message}))}finally{M.value=!1}}function a(o){const i=[],n=o.split(`
|
|
2
|
+
`);for(const g of n){const v=g.trim();if(!v||v.startsWith("─")||v.match(/^\d+ org/i))continue;const b=v.split(/\s*[|│]\s*/);b.length>=3&&i.push({key:i.length,id:b[0]||"-",name:b[1]||"-",owner:b[2]||"-",description:b[3]||"",memberCount:parseInt(b[4],10)||0})}return i}async function u(){if(!N.value.trim()){p.warning(r("organization.messages.orgNameRequired"));return}C.value=!0;try{const o=N.value.trim().replace(/"/g,'\\"'),i=I.value.trim().replace(/"/g,'\\"');let n=`org create "${o}" --json`;i&&(n=`org create "${o}" --description "${i}" --json`);const{output:g}=await e.execute(n,2e4);g.includes("error")||g.includes("失败")?p.error(r("organization.messages.orgCreateFailed",{err:g.slice(0,120)})):(p.success(r("organization.messages.orgCreateOk")),P.value=!1,N.value="",I.value="",await A())}catch(o){p.error(r("organization.messages.orgCreateFailed",{err:o.message}))}finally{C.value=!1}}async function Y(o){U.value={...o},L.value="",h.value=!0,w.value=!0;try{const{output:i}=await e.execute(`org show ${o.id} --json`,15e3),n=x(i);n&&typeof n=="object"?(U.value={id:n.id||o.id,name:n.name||o.name,owner:n.owner||o.owner,description:n.description||o.description,memberCount:n.memberCount??n.members??o.memberCount,createdAt:n.createdAt||n.created||""},L.value=JSON.stringify(n,null,2)):L.value=i}catch(i){L.value=r("organization.messages.loadDetailFailed",{err:i.message})}finally{w.value=!1}}const j=m(null),Z=m(!1),$=m([]),ee=m(!1),ae=m([]),ge=m(!1),te=m(!1),J=m(""),oe=m(""),ne=m("member"),ue=m(!1),le=m(!1),W=m(""),ie=m(""),re=m(""),he=F(()=>[{label:r("organization.members.roleAdmin"),value:"admin"},{label:r("organization.members.roleMember"),value:"member"},{label:r("organization.members.roleViewer"),value:"viewer"}]),Oe=F(()=>[{title:r("organization.memberColumns.userId"),key:"userId",dataIndex:"userId",width:"160px"},{title:r("organization.memberColumns.name"),key:"name",dataIndex:"name",width:"140px"},{title:r("organization.memberColumns.role"),key:"role",dataIndex:"role",width:"100px"},{title:r("organization.memberColumns.joinedAt"),key:"joinedAt",dataIndex:"joinedAt",width:"180px"}]),Ce=F(()=>[{title:r("organization.teamColumns.name"),key:"name",dataIndex:"name",width:"180px"},{title:r("organization.teamColumns.description"),key:"description",dataIndex:"description",ellipsis:!0},{title:r("organization.teamColumns.lead"),key:"lead",dataIndex:"lead",width:"140px"}]);function Te(o){return{admin:"gold",member:"blue",viewer:"default",owner:"purple"}[(o||"").toLowerCase()]||"default"}async function Ie(){j.value&&await Promise.all([K(),Q()])}async function K(){if(j.value){Z.value=!0;try{const{output:o}=await e.execute(`org members ${j.value} --json`,15e3),i=x(o);Array.isArray(i)?$.value=i.map((n,g)=>({key:n.userId||n.id||g,userId:n.userId||n.id||"-",name:n.name||n.displayName||"-",role:n.role||"member",joinedAt:n.joinedAt||n.joined||"-"})):$.value=pe(o)}catch(o){p.error(r("organization.messages.loadMembersFailed",{err:o.message}))}finally{Z.value=!1}}}function pe(o){const i=[],n=o.split(`
|
|
3
|
+
`);for(const g of n){const v=g.trim();if(!v||v.startsWith("─")||v.match(/^\d+ member/i))continue;const b=v.split(/\s*[|│]\s*/);b.length>=3&&i.push({key:i.length,userId:b[0]||"-",name:b[1]||"-",role:b[2]||"member",joinedAt:b[3]||"-"})}return i}async function Q(){if(j.value){ee.value=!0;try{const{output:o}=await e.execute(`org teams ${j.value} --json`,15e3),i=x(o);Array.isArray(i)?ae.value=i.map((n,g)=>({key:n.id||n.name||g,name:n.name||"-",description:n.description||"",lead:n.lead||n.leader||"-"})):ae.value=[]}catch(o){p.error(r("organization.messages.loadTeamsFailed",{err:o.message}))}finally{ee.value=!1}}}async function Le(){if(!J.value.trim()){p.warning(r("organization.messages.userIdRequired"));return}te.value=!0;try{const o=J.value.trim().replace(/"/g,'\\"'),i=oe.value.trim().replace(/"/g,'\\"');let n=`org invite ${j.value} ${o} --role ${ne.value}`;i&&(n+=` --name "${i}"`);const{output:g}=await e.execute(n,2e4);g.includes("error")||g.includes("失败")?p.error(r("organization.messages.inviteFailed",{err:g.slice(0,120)})):(p.success(r("organization.messages.inviteOk")),ge.value=!1,J.value="",oe.value="",ne.value="member",await K())}catch(o){p.error(r("organization.messages.inviteFailed",{err:o.message}))}finally{te.value=!1}}async function Ae(){if(!W.value.trim()){p.warning(r("organization.messages.teamNameRequired"));return}le.value=!0;try{const o=W.value.trim().replace(/"/g,'\\"'),i=ie.value.trim().replace(/"/g,'\\"'),n=re.value.trim().replace(/"/g,'\\"');let g=`org teams ${j.value} create "${o}"`;i&&(g+=` --description "${i}"`),n&&(g+=` --lead "${n}"`);const{output:v}=await e.execute(g,2e4);v.includes("error")||v.includes("失败")?p.error(r("organization.messages.teamCreateFailed",{err:v.slice(0,120)})):(p.success(r("organization.messages.teamCreateOk")),ue.value=!1,W.value="",ie.value="",re.value="",await Q())}catch(o){p.error(r("organization.messages.teamCreateFailed",{err:o.message}))}finally{le.value=!1}}const se=m(!1),E=m([]),ve=m(!1),de=m(!1),G=m(null),H=m(""),me=m(""),ce=m(""),je=F(()=>[{title:r("organization.approvalColumns.id"),key:"id",dataIndex:"id",width:"100px"},{title:r("organization.approvalColumns.title"),key:"title",dataIndex:"title",width:"200px"},{title:r("organization.approvalColumns.type"),key:"type",dataIndex:"type",width:"120px"},{title:r("organization.approvalColumns.requester"),key:"requester",dataIndex:"requester",width:"140px"},{title:r("organization.approvalColumns.status"),key:"status",dataIndex:"status",width:"100px"},{title:r("organization.approvalColumns.actions"),key:"actions",width:"180px"}]);function Me(o){return{pending:"orange",approved:"green",rejected:"red"}[(o||"").toLowerCase()]||"default"}async function q(){se.value=!0;try{const{output:o}=await e.execute("org approvals --json",15e3),i=x(o);Array.isArray(i)?E.value=i.map((n,g)=>({key:n.id||g,id:n.id||"-",title:n.title||"-",type:n.type||"-",requester:n.requester||n.requestedBy||"-",status:n.status||"pending",_approving:!1,_rejecting:!1})):E.value=fe(o)}catch(o){p.error(r("organization.messages.loadApprovalsFailed",{err:o.message}))}finally{se.value=!1}}function fe(o){const i=[],n=o.split(`
|
|
4
|
+
`);for(const g of n){const v=g.trim();if(!v||v.startsWith("─")||v.match(/^\d+ approval/i))continue;const b=v.split(/\s*[|│]\s*/);b.length>=4&&i.push({key:i.length,id:b[0]||"-",title:b[1]||"-",type:b[2]||"-",requester:b[3]||"-",status:b[4]||"pending",_approving:!1,_rejecting:!1})}return i}async function Ue(o){o._approving=!0;try{const{output:i}=await e.execute(`org approve ${o.id}`,15e3);i.includes("error")||i.includes("失败")?p.error(r("organization.messages.approveFailed",{err:i.slice(0,120)})):(p.success(r("organization.messages.approveOk")),await q())}catch(i){p.error(r("organization.messages.approveFailed",{err:i.message}))}finally{o._approving=!1}}async function Se(o){o._rejecting=!0;try{const{output:i}=await e.execute(`org reject ${o.id}`,15e3);i.includes("error")||i.includes("失败")?p.error(r("organization.messages.rejectFailed",{err:i.slice(0,120)})):(p.success(r("organization.messages.rejectOk")),await q())}catch(i){p.error(r("organization.messages.rejectFailed",{err:i.message}))}finally{o._rejecting=!1}}async function Pe(){if(!G.value){p.warning(r("organization.messages.orgRequired"));return}if(!H.value.trim()){p.warning(r("organization.messages.approvalTitleRequired"));return}de.value=!0;try{const o=H.value.trim().replace(/"/g,'\\"'),i=me.value.trim().replace(/"/g,'\\"'),n=ce.value.trim().replace(/"/g,'\\"');let g=`org approve --submit --org ${G.value} --title "${o}"`;i&&(g+=` --type "${i}"`),n&&(g+=` --description "${n}"`);const{output:v}=await e.execute(g,2e4);v.includes("error")||v.includes("失败")?p.error(r("organization.messages.submitFailed",{err:v.slice(0,120)})):(p.success(r("organization.messages.submitOk")),ve.value=!1,G.value=null,H.value="",me.value="",ce.value="",await q())}catch(o){p.error(r("organization.messages.submitFailed",{err:o.message}))}finally{de.value=!1}}be(()=>{A()});const ye={t:r,ws:e,activeTab:D,refreshing:V,refreshCurrentTab:T,onTabChange:R,tryParseJson:x,orgLoading:M,orgList:k,showCreateOrgModal:P,creatingOrg:C,newOrgName:N,newOrgDesc:I,showDetailModal:h,detailLoading:w,detailOrg:U,detailRaw:L,orgColumns:B,orgSelectOptions:X,loadOrgList:A,parseOrgListText:a,createOrg:u,showOrgDetail:Y,selectedOrgId:j,memberLoading:Z,memberList:$,teamLoading:ee,teamList:ae,showInviteModal:ge,inviting:te,inviteUserId:J,inviteName:oe,inviteRole:ne,showCreateTeamModal:ue,creatingTeam:le,newTeamName:W,newTeamDesc:ie,newTeamLead:re,roleOptions:he,memberColumns:Oe,teamColumns:Ce,roleColor:Te,onOrgSelected:Ie,loadMembers:K,parseMemberListText:pe,loadTeams:Q,inviteMember:Le,createTeam:Ae,approvalLoading:se,approvalList:E,showSubmitApprovalModal:ve,submittingApproval:de,approvalOrgId:G,approvalTitle:H,approvalType:me,approvalDescription:ce,approvalColumns:je,approvalStatusColor:Me,loadApprovals:q,parseApprovalListText:fe,approveItem:Ue,rejectItem:Se,submitApproval:Pe,ref:m,computed:F,onMounted:be,get useI18n(){return ze},get TeamOutlined(){return Je},get UserAddOutlined(){return Ve},get AuditOutlined(){return Be},get ReloadOutlined(){return Re},get PlusOutlined(){return De},get CheckOutlined(){return qe},get CloseOutlined(){return Ne},get message(){return p},get useWsStore(){return xe}};return Object.defineProperty(ye,"__isScriptSetup",{enumerable:!1,value:!0}),ye}},Ke={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Qe={class:"page-title"},Ee={class:"page-sub"},Ge={key:0,style:{"text-align":"center",padding:"60px"}},He={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Xe={key:1,style:{color:"#1677ff"}},Ye={key:2,style:{color:"var(--text-secondary)"}},Ze={key:3,style:{color:"var(--text-muted)","font-size":"12px"}},$e={key:0,style:{"text-align":"center",padding:"40px"}},ea={key:1},aa={style:{"font-family":"monospace",color:"#ccc"}},ta={key:0,style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)","max-height":"300px","overflow-y":"auto"}},oa={style:{"margin-bottom":"16px",display:"flex","align-items":"center",gap:"12px"}},na={key:0,style:{"text-align":"center",padding:"60px"}},la={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},ia={key:1,style:{color:"#e0e0e0"}},ra={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},sa={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"12px"}},da={style:{color:"var(--text-primary)",margin:"0","font-size":"15px"}},ma={key:0,style:{"text-align":"center",padding:"40px"}},ca={key:0,style:{color:"#e0e0e0"}},ga={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},ua={key:2,style:{color:"var(--text-secondary)"}},pa={key:0,style:{"text-align":"center",padding:"60px"}},va={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},fa={key:1,style:{color:"#e0e0e0"}},ya={key:3,style:{color:"var(--text-secondary)"}},ba={key:1,style:{color:"var(--text-muted)","font-size":"12px"}};function _a(ke,s,r,e,D,V){const T=z("a-button"),R=z("a-space"),x=z("a-spin"),M=z("a-tag"),k=z("a-empty"),P=z("a-table"),C=z("a-descriptions-item"),N=z("a-descriptions"),I=z("a-modal"),h=z("a-input"),w=z("a-form-item"),U=z("a-form"),L=z("a-tab-pane"),B=z("a-select"),X=z("a-textarea"),A=z("a-tabs");return c(),f("div",null,[S("div",Ke,[S("div",null,[S("h2",Qe,d(e.t("organization.title")),1),S("p",Ee,d(e.t("organization.subtitle")),1)]),t(T,{type:"primary",ghost:"",loading:e.refreshing,onClick:e.refreshCurrentTab},{icon:l(()=>[t(e.ReloadOutlined)]),default:l(()=>[_(" "+d(e.t("organization.refresh")),1)]),_:1},8,["loading"])]),t(A,{activeKey:e.activeTab,"onUpdate:activeKey":s[22]||(s[22]=a=>e.activeTab=a),type:"card",onChange:e.onTabChange},{default:l(()=>[y(" Tab 1: Organization List "),t(L,{key:"orgs"},{tab:l(()=>[t(e.TeamOutlined),_(" "+d(e.t("organization.tabs.orgs")),1)]),default:l(()=>[t(R,{style:{"margin-bottom":"16px"}},{default:l(()=>[t(T,{type:"primary",onClick:s[0]||(s[0]=a=>e.showCreateOrgModal=!0)},{icon:l(()=>[t(e.PlusOutlined)]),default:l(()=>[_(" "+d(e.t("organization.orgs.createButton")),1)]),_:1})]),_:1}),e.orgLoading?(c(),f("div",Ge,[t(x,{size:"large"})])):(c(),O(P,{key:1,columns:e.orgColumns,"data-source":e.orgList,pagination:{pageSize:20,showTotal:a=>e.t("organization.totals.rows",{count:a})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row","custom-row":a=>({onClick:()=>e.showOrgDetail(a)})},{bodyCell:l(({column:a,record:u})=>[a.key==="id"?(c(),f("span",He,d(u.id),1)):y("v-if",!0),a.key==="name"?(c(),f("a",Xe,d(u.name),1)):y("v-if",!0),a.key==="owner"?(c(),f("span",Ye,d(u.owner),1)):y("v-if",!0),a.key==="description"?(c(),f("span",Ze,d(u.description),1)):y("v-if",!0),a.key==="memberCount"?(c(),O(M,{key:4,color:"blue"},{default:l(()=>[_(d(u.memberCount),1)]),_:2},1024)):y("v-if",!0)]),emptyText:l(()=>[t(k,{description:e.t("organization.orgs.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination","custom-row"])),t(I,{open:e.showDetailModal,"onUpdate:open":s[1]||(s[1]=a=>e.showDetailModal=a),title:e.t("organization.orgs.detailTitle",{name:e.detailOrg.name||""}),footer:null,width:"640px"},{default:l(()=>[e.detailLoading?(c(),f("div",$e,[t(x)])):(c(),f("div",ea,[t(N,{column:1,bordered:"",size:"small",style:{"margin-bottom":"16px"}},{default:l(()=>[t(C,{label:e.t("organization.orgs.detailLabels.id")},{default:l(()=>[S("span",aa,d(e.detailOrg.id),1)]),_:1},8,["label"]),t(C,{label:e.t("organization.orgs.detailLabels.name")},{default:l(()=>[_(d(e.detailOrg.name),1)]),_:1},8,["label"]),t(C,{label:e.t("organization.orgs.detailLabels.owner")},{default:l(()=>[_(d(e.detailOrg.owner),1)]),_:1},8,["label"]),t(C,{label:e.t("organization.orgs.detailLabels.description")},{default:l(()=>[_(d(e.detailOrg.description||"-"),1)]),_:1},8,["label"]),t(C,{label:e.t("organization.orgs.detailLabels.memberCount")},{default:l(()=>[_(d(e.detailOrg.memberCount),1)]),_:1},8,["label"]),e.detailOrg.createdAt?(c(),O(C,{key:0,label:e.t("organization.orgs.detailLabels.createdAt")},{default:l(()=>[_(d(e.detailOrg.createdAt),1)]),_:1},8,["label"])):y("v-if",!0)]),_:1}),e.detailRaw?(c(),f("pre",ta,d(e.detailRaw),1)):y("v-if",!0)]))]),_:1},8,["open","title"]),t(I,{open:e.showCreateOrgModal,"onUpdate:open":s[4]||(s[4]=a=>e.showCreateOrgModal=a),title:e.t("organization.orgs.createTitle"),"confirm-loading":e.creatingOrg,onOk:e.createOrg,"ok-text":e.t("organization.orgs.createOk"),"cancel-text":e.t("common.cancel")},{default:l(()=>[t(U,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:l(()=>[t(w,{label:e.t("organization.orgs.nameLabel"),required:""},{default:l(()=>[t(h,{value:e.newOrgName,"onUpdate:value":s[2]||(s[2]=a=>e.newOrgName=a),placeholder:e.t("organization.orgs.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.orgs.descriptionLabel")},{default:l(()=>[t(h,{value:e.newOrgDesc,"onUpdate:value":s[3]||(s[3]=a=>e.newOrgDesc=a),placeholder:e.t("organization.orgs.descriptionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),y(" Tab 2: Member Management "),t(L,{key:"members"},{tab:l(()=>[t(e.UserAddOutlined),_(" "+d(e.t("organization.tabs.members")),1)]),default:l(()=>[S("div",oa,[t(B,{value:e.selectedOrgId,"onUpdate:value":s[5]||(s[5]=a=>e.selectedOrgId=a),placeholder:e.t("organization.members.selectPlaceholder"),style:{width:"280px"},options:e.orgSelectOptions,onChange:e.onOrgSelected},null,8,["value","placeholder","options"]),t(T,{type:"primary",disabled:!e.selectedOrgId,onClick:s[6]||(s[6]=a=>e.showInviteModal=!0)},{icon:l(()=>[t(e.UserAddOutlined)]),default:l(()=>[_(" "+d(e.t("organization.members.inviteButton")),1)]),_:1},8,["disabled"])]),e.memberLoading?(c(),f("div",na,[t(x,{size:"large"})])):e.selectedOrgId?(c(),O(P,{key:1,columns:e.memberColumns,"data-source":e.memberList,pagination:{pageSize:20,showTotal:a=>e.t("organization.totals.rows",{count:a})},size:"small",style:{background:"var(--bg-card)","margin-bottom":"24px"},"row-class-name":()=>"org-row"},{bodyCell:l(({column:a,record:u})=>[a.key==="userId"?(c(),f("span",la,d(u.userId),1)):y("v-if",!0),a.key==="name"?(c(),f("span",ia,d(u.name),1)):y("v-if",!0),a.key==="role"?(c(),O(M,{key:2,color:e.roleColor(u.role)},{default:l(()=>[_(d(u.role),1)]),_:2},1032,["color"])):y("v-if",!0),a.key==="joinedAt"?(c(),f("span",ra,d(u.joinedAt),1)):y("v-if",!0)]),emptyText:l(()=>[t(k,{description:e.t("organization.members.emptyMembers")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])):(c(),O(k,{key:2,description:e.t("organization.members.selectFirst"),style:{padding:"60px 0"}},null,8,["description"])),e.selectedOrgId?(c(),f(_e,{key:3},[S("div",sa,[S("h3",da,d(e.t("organization.members.teamsTitle")),1),t(T,{size:"small",onClick:s[7]||(s[7]=a=>e.showCreateTeamModal=!0)},{icon:l(()=>[t(e.PlusOutlined)]),default:l(()=>[_(" "+d(e.t("organization.members.createTeamButton")),1)]),_:1})]),e.teamLoading?(c(),f("div",ma,[t(x)])):(c(),O(P,{key:1,columns:e.teamColumns,"data-source":e.teamList,pagination:!1,size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:l(({column:a,record:u})=>[a.key==="name"?(c(),f("span",ca,d(u.name),1)):y("v-if",!0),a.key==="description"?(c(),f("span",ga,d(u.description),1)):y("v-if",!0),a.key==="lead"?(c(),f("span",ua,d(u.lead),1)):y("v-if",!0)]),emptyText:l(()=>[t(k,{description:e.t("organization.members.emptyTeams")},null,8,["description"])]),_:1},8,["columns","data-source"]))],64)):y("v-if",!0),t(I,{open:e.showInviteModal,"onUpdate:open":s[11]||(s[11]=a=>e.showInviteModal=a),title:e.t("organization.members.inviteTitle"),"confirm-loading":e.inviting,onOk:e.inviteMember,"ok-text":e.t("organization.members.inviteOk"),"cancel-text":e.t("common.cancel")},{default:l(()=>[t(U,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[t(w,{label:e.t("organization.members.userIdLabel"),required:""},{default:l(()=>[t(h,{value:e.inviteUserId,"onUpdate:value":s[8]||(s[8]=a=>e.inviteUserId=a),placeholder:e.t("organization.members.userIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.nameLabel")},{default:l(()=>[t(h,{value:e.inviteName,"onUpdate:value":s[9]||(s[9]=a=>e.inviteName=a),placeholder:e.t("organization.members.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.roleLabel")},{default:l(()=>[t(B,{value:e.inviteRole,"onUpdate:value":s[10]||(s[10]=a=>e.inviteRole=a),options:e.roleOptions},null,8,["value","options"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(I,{open:e.showCreateTeamModal,"onUpdate:open":s[15]||(s[15]=a=>e.showCreateTeamModal=a),title:e.t("organization.members.createTeamTitle"),"confirm-loading":e.creatingTeam,onOk:e.createTeam,"ok-text":e.t("organization.members.createTeamOk"),"cancel-text":e.t("common.cancel")},{default:l(()=>[t(U,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[t(w,{label:e.t("organization.members.teamNameLabel"),required:""},{default:l(()=>[t(h,{value:e.newTeamName,"onUpdate:value":s[12]||(s[12]=a=>e.newTeamName=a),placeholder:e.t("organization.members.teamNamePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.teamDescLabel")},{default:l(()=>[t(h,{value:e.newTeamDesc,"onUpdate:value":s[13]||(s[13]=a=>e.newTeamDesc=a),placeholder:e.t("organization.members.teamDescPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.members.teamLeadLabel")},{default:l(()=>[t(h,{value:e.newTeamLead,"onUpdate:value":s[14]||(s[14]=a=>e.newTeamLead=a),placeholder:e.t("organization.members.teamLeadPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),y(" Tab 3: Approval Management "),t(L,{key:"approvals"},{tab:l(()=>[t(e.AuditOutlined),_(" "+d(e.t("organization.tabs.approvals")),1)]),default:l(()=>[t(R,{style:{"margin-bottom":"16px"}},{default:l(()=>[t(T,{type:"primary",onClick:s[16]||(s[16]=a=>e.showSubmitApprovalModal=!0)},{icon:l(()=>[t(e.PlusOutlined)]),default:l(()=>[_(" "+d(e.t("organization.approvals.submitButton")),1)]),_:1})]),_:1}),e.approvalLoading?(c(),f("div",pa,[t(x,{size:"large"})])):(c(),O(P,{key:1,columns:e.approvalColumns,"data-source":e.approvalList,pagination:{pageSize:20,showTotal:a=>e.t("organization.totals.rows",{count:a})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:l(({column:a,record:u})=>[a.key==="id"?(c(),f("span",va,d(u.id),1)):y("v-if",!0),a.key==="title"?(c(),f("span",fa,d(u.title),1)):y("v-if",!0),a.key==="type"?(c(),O(M,{key:2,color:"blue"},{default:l(()=>[_(d(u.type),1)]),_:2},1024)):y("v-if",!0),a.key==="requester"?(c(),f("span",ya,d(u.requester),1)):y("v-if",!0),a.key==="status"?(c(),O(M,{key:4,color:e.approvalStatusColor(u.status)},{default:l(()=>[_(d(u.status),1)]),_:2},1032,["color"])):y("v-if",!0),a.key==="actions"?(c(),f(_e,{key:5},[(u.status||"").toLowerCase()==="pending"?(c(),O(R,{key:0},{default:l(()=>[t(T,{type:"primary",size:"small",loading:u._approving,onClick:we(Y=>e.approveItem(u),["stop"])},{icon:l(()=>[t(e.CheckOutlined)]),default:l(()=>[_(" "+d(e.t("organization.approvals.approve")),1)]),_:1},8,["loading","onClick"]),t(T,{danger:"",size:"small",loading:u._rejecting,onClick:we(Y=>e.rejectItem(u),["stop"])},{icon:l(()=>[t(e.CloseOutlined)]),default:l(()=>[_(" "+d(e.t("organization.approvals.reject")),1)]),_:1},8,["loading","onClick"])]),_:2},1024)):(c(),f("span",ba,"-"))],64)):y("v-if",!0)]),emptyText:l(()=>[t(k,{description:e.t("organization.approvals.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),t(I,{open:e.showSubmitApprovalModal,"onUpdate:open":s[21]||(s[21]=a=>e.showSubmitApprovalModal=a),title:e.t("organization.approvals.submitTitle"),"confirm-loading":e.submittingApproval,onOk:e.submitApproval,"ok-text":e.t("organization.approvals.submitOk"),"cancel-text":e.t("common.cancel")},{default:l(()=>[t(U,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[t(w,{label:e.t("organization.approvals.orgLabel"),required:""},{default:l(()=>[t(B,{value:e.approvalOrgId,"onUpdate:value":s[17]||(s[17]=a=>e.approvalOrgId=a),placeholder:e.t("organization.approvals.orgPlaceholder"),options:e.orgSelectOptions},null,8,["value","placeholder","options"])]),_:1},8,["label"]),t(w,{label:e.t("organization.approvals.titleLabel"),required:""},{default:l(()=>[t(h,{value:e.approvalTitle,"onUpdate:value":s[18]||(s[18]=a=>e.approvalTitle=a),placeholder:e.t("organization.approvals.titlePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.approvals.typeLabel")},{default:l(()=>[t(h,{value:e.approvalType,"onUpdate:value":s[19]||(s[19]=a=>e.approvalType=a),placeholder:e.t("organization.approvals.typePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(w,{label:e.t("organization.approvals.descLabel")},{default:l(()=>[t(X,{value:e.approvalDescription,"onUpdate:value":s[20]||(s[20]=a=>e.approvalDescription=a),placeholder:e.t("organization.approvals.descPlaceholder"),rows:3},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1})]),_:1},8,["activeKey"])])}const ka=Fe(We,[["render",_a],["__scopeId","data-v-4900dc74"],["__file","/tmp/cc-web-panel-wQGCAD/repo/packages/web-panel/src/views/Organization.vue"]]);export{ka as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{P,f as u,i as H,h as D}from"./index-
|
|
1
|
+
import{P,f as u,i as H,h as D}from"./index-CSnTUPQx.js";import{d as k,p as ge,b as c,i as pe,x as be,c as v,r as he,w as Oe,s as C}from"./vendor-BvqAck49.js";import{R as ee}from"./index-DWfObC0n.js";const te=Symbol("OverflowContextProviderKey"),X=k({compatConfig:{MODE:3},name:"OverflowContextProvider",inheritAttrs:!1,props:{value:{type:Object}},setup(e,o){let{slots:a}=o;return ge(te,c(()=>e.value)),()=>{var t;return(t=a.default)===null||t===void 0?void 0:t.call(a)}}}),Se=()=>pe(te,c(()=>null));var xe=function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(a[t[n]]=e[t[n]]);return a};const _=void 0,$=k({compatConfig:{MODE:3},name:"Item",props:{prefixCls:String,item:P.any,renderItem:Function,responsive:Boolean,itemKey:{type:[String,Number]},registerSize:Function,display:Boolean,order:Number,component:P.any,invalidate:Boolean},setup(e,o){let{slots:a,expose:t}=o;const n=c(()=>e.responsive&&!e.display),p=he();t({itemNodeRef:p});function b(i){e.registerSize(e.itemKey,i)}return be(()=>{b(null)}),()=>{var i;const{prefixCls:O,invalidate:w,item:m,renderItem:y,responsive:f,registerSize:z,itemKey:R,display:V,order:I,component:M="div"}=e,S=xe(e,["prefixCls","invalidate","item","renderItem","responsive","registerSize","itemKey","display","order","component"]),W=(i=a.default)===null||i===void 0?void 0:i.call(a),T=y&&m!==_?y(m):W;let h;w||(h={opacity:n.value?0:1,height:n.value?0:_,overflowY:n.value?"hidden":_,order:f?I:_,pointerEvents:n.value?"none":_,position:n.value?"absolute":_});const N={};return n.value&&(N["aria-hidden"]=!0),v(ee,{disabled:!f,onResize:E=>{let{offsetWidth:B}=E;b(B)}},{default:()=>v(M,u(u(u({class:H(!w&&O),style:h},N),S),{},{ref:p}),{default:()=>[T]})})}}});var U=function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(a[t[n]]=e[t[n]]);return a};const Ce=k({compatConfig:{MODE:3},name:"RawItem",inheritAttrs:!1,props:{component:P.any,title:P.any,id:String,onMouseenter:{type:Function},onMouseleave:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onFocus:{type:Function},role:String,tabindex:Number},setup(e,o){let{slots:a,attrs:t}=o;const n=Se();return()=>{var p;if(!n.value){const{component:y="div"}=e,f=U(e,["component"]);return v(y,u(u({},f),t),{default:()=>[(p=a.default)===null||p===void 0?void 0:p.call(a)]})}const b=n.value,{className:i}=b,O=U(b,["className"]),{class:w}=t,m=U(t,["class"]);return v(X,{value:null},{default:()=>[v($,u(u(u({class:H(i,w)},O),m),e),a)]})}}});var we=function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(a[t[n]]=e[t[n]]);return a};const ne="responsive",le="invalidate";function Re(e){return`+ ${e.length} ...`}const Ie=()=>({id:String,prefixCls:String,data:Array,itemKey:[String,Number,Function],itemWidth:{type:Number,default:10},renderItem:Function,renderRawItem:Function,maxCount:[Number,String],renderRest:Function,renderRawRest:Function,suffix:P.any,component:String,itemComponent:P.any,onVisibleChange:Function,ssr:String,onMousedown:Function,role:String}),Y=k({name:"Overflow",inheritAttrs:!1,props:Ie(),emits:["visibleChange"],setup(e,o){let{attrs:a,emit:t,slots:n}=o;const p=c(()=>e.ssr==="full"),b=C(null),i=c(()=>b.value||0),O=C(new Map),w=C(0),m=C(0),y=C(0),f=C(null),z=C(null),R=c(()=>z.value===null&&p.value?Number.MAX_SAFE_INTEGER:z.value||0),V=C(!1),I=c(()=>`${e.prefixCls}-item`),M=c(()=>Math.max(w.value,m.value)),S=c(()=>!!(e.data.length&&e.maxCount===ne)),W=c(()=>e.maxCount===le),T=c(()=>S.value||typeof e.maxCount=="number"&&e.data.length>e.maxCount),h=c(()=>{let l=e.data;return S.value?b.value===null&&p.value?l=e.data:l=e.data.slice(0,Math.min(e.data.length,i.value/e.itemWidth)):typeof e.maxCount=="number"&&(l=e.data.slice(0,e.maxCount)),l}),N=c(()=>S.value?e.data.slice(R.value+1):e.data.slice(h.value.length)),E=(l,r)=>{var s;return typeof e.itemKey=="function"?e.itemKey(l):(s=e.itemKey&&l?.[e.itemKey])!==null&&s!==void 0?s:r},B=c(()=>e.renderItem||(l=>l)),A=(l,r)=>{z.value=l,r||(V.value=l<e.data.length-1,t("visibleChange",l))},ae=(l,r)=>{b.value=r.clientWidth},q=(l,r)=>{const s=new Map(O.value);r===null?s.delete(l):s.set(l,r),O.value=s},re=(l,r)=>{w.value=m.value,m.value=r},oe=(l,r)=>{y.value=r},G=l=>O.value.get(E(h.value[l],l));return Oe([i,O,m,y,()=>e.itemKey,h],()=>{if(i.value&&M.value&&h.value){let l=y.value;const r=h.value.length,s=r-1;if(!r){A(0),f.value=null;return}for(let g=0;g<r;g+=1){const F=G(g);if(F===void 0){A(g-1,!0);break}if(l+=F,s===0&&l<=i.value||g===s-1&&l+G(s)<=i.value){A(s),f.value=null;break}else if(l+M.value>i.value){A(g-1),f.value=l-F-y.value+m.value;break}}e.suffix&&G(0)+y.value>i.value&&(f.value=null)}}),()=>{const l=V.value&&!!N.value.length,{itemComponent:r,renderRawItem:s,renderRawRest:g,renderRest:F,prefixCls:ie="rc-overflow",suffix:J,component:se="div",id:ue,onMousedown:de}=e,{class:ce,style:ve}=a,fe=we(a,["class","style"]);let Q={};f.value!==null&&S.value&&(Q={position:"absolute",left:`${f.value}px`,top:0});const j={prefixCls:I.value,responsive:S.value,component:r,invalidate:W.value},me=s?(d,x)=>{const K=E(d,x);return v(X,{key:K,value:D(D({},j),{order:x,item:d,itemKey:K,registerSize:q,display:x<=R.value})},{default:()=>[s(d,x)]})}:(d,x)=>{const K=E(d,x);return v($,u(u({},j),{},{order:x,key:K,item:d,renderItem:B.value,itemKey:K,registerSize:q,display:x<=R.value}),null)};let L=()=>null;const Z={order:l?R.value:Number.MAX_SAFE_INTEGER,className:`${I.value} ${I.value}-rest`,registerSize:re,display:l};if(g)g&&(L=()=>v(X,{value:D(D({},j),Z)},{default:()=>[g(N.value)]}));else{const d=F||Re;L=()=>v($,u(u({},j),Z),{default:()=>typeof d=="function"?d(N.value):d})}const ye=()=>{var d;return v(se,u({id:ue,class:H(!W.value&&ie,ce),style:ve,onMousedown:de,role:e.role},fe),{default:()=>[h.value.map(me),T.value?L():null,J&&v($,u(u({},j),{},{order:R.value,class:`${I.value}-suffix`,registerSize:oe,display:!0,style:Q}),{default:()=>J}),(d=n.default)===null||d===void 0?void 0:d.call(n)]})};return v(ee,{disabled:!S.value,onResize:ae},{default:ye})}}});Y.Item=Ce;Y.RESPONSIVE=ne;Y.INVALIDATE=le;export{Y as O};
|