coding-tool-x 3.8.9 → 3.8.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +56 -388
  2. package/dist/web/assets/AgentsDrawer-Bam7kBjG.js +1 -0
  3. package/dist/web/assets/Analytics-D5dUWXEa.js +1 -0
  4. package/dist/web/assets/AssetPathField-CLqalYv-.js +1 -0
  5. package/dist/web/assets/{ChatHistoryDrawer-BTmQ1aQr.js → ChatHistoryDrawer-C1At65O3.js} +1 -1
  6. package/dist/web/assets/{CollapseItem-CwqJk3bE.js → CollapseItem-CVWojShK.js} +1 -1
  7. package/dist/web/assets/CommandsDrawer-BEoypGBf.js +1 -0
  8. package/dist/web/assets/ConfigExportDrawer-DBvFDDWK.js +1 -0
  9. package/dist/web/assets/{ConfigTemplates-gyERg9iC.js → ConfigTemplates-BpaWG-iC.js} +1 -1
  10. package/dist/web/assets/{ConfigTemplatesDrawer-B17RqFi4.js → ConfigTemplatesDrawer-C2lvyKMf.js} +1 -1
  11. package/dist/web/assets/ConfigTemplatesPanel-CorOY7kY.js +1 -0
  12. package/dist/web/assets/{Divider-DsdbkHrG.js → Divider-BLLhMTSt.js} +1 -1
  13. package/dist/web/assets/FavoritesDrawer-uW88N6te.js +1 -0
  14. package/dist/web/assets/GatewayConvertDrawer-i5Wt9Dd9.js +1 -0
  15. package/dist/web/assets/Home-BIxWvm29.js +1 -0
  16. package/dist/web/assets/{MarkdownEditor-9TTwTS-U.js → MarkdownEditor-Ul0bSGj-.js} +1 -1
  17. package/dist/web/assets/McpDrawer-Cc2xq77I.js +1 -0
  18. package/dist/web/assets/McpFormDrawer-DLHX_nrI.js +1 -0
  19. package/dist/web/assets/{PluginManager-BuRcWuBj.js → PluginManager-BGQ0xF2F.js} +1 -1
  20. package/dist/web/assets/{PluginsDrawer-_zZENaQn.js → PluginsDrawer-STwHEqiF.js} +1 -1
  21. package/dist/web/assets/PluginsPanel-1zuNP7da.js +1 -0
  22. package/dist/web/assets/ProjectList-_pe2nk9c.js +1 -0
  23. package/dist/web/assets/PromptsDrawer-CJN1xZk7.js +1 -0
  24. package/dist/web/assets/RecentSessionsDrawer-DX1HI8Nm.js +1 -0
  25. package/dist/web/assets/SessionCard-Op6PHvi0.js +1 -0
  26. package/dist/web/assets/SessionList-Da_TAEYr.js +1 -0
  27. package/dist/web/assets/SettingsDrawer-DKLd4Sjy.js +1 -0
  28. package/dist/web/assets/{SkillManager-S698Hns8.js → SkillManager-PcAa5EbF.js} +1 -1
  29. package/dist/web/assets/{SkillsDrawer-Ms4lPCow.js → SkillsDrawer-DPdU4p6C.js} +1 -1
  30. package/dist/web/assets/SkillsPanel-B9qzRqjd.js +1 -0
  31. package/dist/web/assets/Upload-e1M9Yp5z.js +1 -0
  32. package/dist/web/assets/{WorkspaceDrawer-L7HJRc6u.js → WorkspaceDrawer-oS6mB1VZ.js} +1 -1
  33. package/dist/web/assets/{WorkspaceManager-DsoNg2z8.js → WorkspaceManager-6VvRWe3r.js} +1 -1
  34. package/dist/web/assets/WorkspacePanel-CYq0Z8iY.js +1 -0
  35. package/dist/web/assets/client-BgcNg4Bt.js +1 -0
  36. package/dist/web/assets/{headers-B5JWGn3v.js → headers-DbowkmZJ.js} +1 -1
  37. package/dist/web/assets/{icons-DmFe4b5j.js → icons-B-AzZoeE.js} +1 -1
  38. package/dist/web/assets/index-BlUXw84U.js +2 -0
  39. package/dist/web/assets/index-Bn8BUnwP.css +1 -0
  40. package/dist/web/assets/{light-0eavxNvt.js → light-C2X7hegj.js} +1 -1
  41. package/dist/web/assets/platforms-DrzAtnjY.js +1 -0
  42. package/dist/web/assets/platforms-mqqe_82d.js +1 -0
  43. package/dist/web/assets/project-config-BVt5s-pH.js +1 -0
  44. package/dist/web/assets/sessions-53-Fr68H.js +1 -0
  45. package/dist/web/assets/{sessions-D4yQtfKb.js → sessions-CaWUaysM.js} +1 -1
  46. package/dist/web/assets/use-message-DBsCm7FJ.js +1 -0
  47. package/dist/web/assets/{useResponsiveDrawer-V_onl9NV.js → useResponsiveDrawer-ChHZrTfl.js} +1 -1
  48. package/dist/web/assets/{workspaces-mjyPVGS8.js → workspaces-DQuZd4qw.js} +1 -1
  49. package/dist/web/index.html +8 -8
  50. package/package.json +4 -2
  51. package/src/commands/export-config.js +17 -211
  52. package/src/config/model-metadata.json +180 -16
  53. package/src/platforms/channel-auth-service.js +1 -1
  54. package/src/platforms/commands-service.js +28 -0
  55. package/src/platforms/driver-registry.js +1 -0
  56. package/src/platforms/drivers/claude/channels-implementation.js +79 -90
  57. package/src/platforms/drivers/claude/native-config-implementation.js +3 -4
  58. package/src/platforms/drivers/codex/channels-implementation.js +34 -49
  59. package/src/platforms/drivers/codex/native-config-implementation.js +3 -51
  60. package/src/platforms/drivers/dsh/api-operations.js +1 -1
  61. package/src/platforms/drivers/dsh/channels-implementation.js +28 -8
  62. package/src/platforms/drivers/dsh/channels.js +0 -18
  63. package/src/platforms/drivers/dsh/common.js +7 -0
  64. package/src/platforms/drivers/dsh/native-config.js +7 -2
  65. package/src/platforms/drivers/gemini/channels-implementation.js +47 -55
  66. package/src/platforms/drivers/gemini/native-config-implementation.js +8 -20
  67. package/src/platforms/drivers/generic-native-config.js +20 -0
  68. package/src/platforms/drivers/native-config-snapshot.js +30 -4
  69. package/src/platforms/drivers/omp/channels-implementation.js +51 -17
  70. package/src/platforms/drivers/omp/native-config-implementation.js +10 -17
  71. package/src/platforms/drivers/opencode/channels-implementation.js +6 -0
  72. package/src/platforms/drivers/opencode/native-config-implementation.js +3 -67
  73. package/src/platforms/manifest-schema.js +35 -2
  74. package/src/platforms/manifests/claude.json +0 -8
  75. package/src/platforms/manifests/codex.json +0 -8
  76. package/src/platforms/manifests/dsh.json +6 -9
  77. package/src/platforms/manifests/gemini.json +0 -8
  78. package/src/platforms/manifests/omp.json +0 -8
  79. package/src/platforms/manifests/opencode.json +0 -8
  80. package/src/platforms/native-oauth-adapters.js +33 -33
  81. package/src/server/index.js +2 -0
  82. package/src/server/services/bounded-content.js +60 -0
  83. package/src/server/services/channel-balance.js +10 -4
  84. package/src/server/services/config-export-service.js +2 -2
  85. package/src/server/services/config-templates-service.js +5 -1
  86. package/src/server/services/plugins-service.js +162 -85
  87. package/src/server/services/session-history-maintenance-worker.js +71 -0
  88. package/src/server/services/session-history-maintenance.js +166 -0
  89. package/src/server/services/skill-service.js +23 -3
  90. package/src/server/services/speed-test.js +0 -72
  91. package/src/shared/channel-driver.js +16 -0
  92. package/src/shared/driver-factories/api.js +1 -0
  93. package/src/utils/native-config-patcher.js +474 -0
  94. package/dist/web/assets/AgentsDrawer-Cj5CJ4d9.js +0 -1
  95. package/dist/web/assets/Analytics-1doS-8uC.js +0 -1
  96. package/dist/web/assets/AssetPathField-C9TOPl7o.js +0 -1
  97. package/dist/web/assets/CommandsDrawer-CaZWDI_G.js +0 -1
  98. package/dist/web/assets/ConfigExportDrawer-C3vSZEsS.js +0 -1
  99. package/dist/web/assets/ConfigTemplatesPanel-DKIC_FqG.js +0 -1
  100. package/dist/web/assets/FavoritesDrawer-DaziQmBp.js +0 -1
  101. package/dist/web/assets/GatewayConvertDrawer-OMgWUUSc.js +0 -1
  102. package/dist/web/assets/Home-DOSUTfrE.js +0 -1
  103. package/dist/web/assets/McpDrawer-I8rl8lGH.js +0 -1
  104. package/dist/web/assets/McpFormDrawer-DEP3C7ut.js +0 -1
  105. package/dist/web/assets/PluginsPanel-Bs5qZ-TK.js +0 -1
  106. package/dist/web/assets/ProjectList-BSxuL2td.js +0 -1
  107. package/dist/web/assets/PromptsDrawer-CoZ-ZtsY.js +0 -1
  108. package/dist/web/assets/RecentSessionsDrawer-B_17aJBG.js +0 -1
  109. package/dist/web/assets/SessionCard-BL_x0d3t.js +0 -1
  110. package/dist/web/assets/SessionList-DhRYZ6vl.js +0 -1
  111. package/dist/web/assets/SettingsDrawer-fYb0DU7X.js +0 -1
  112. package/dist/web/assets/SkillsPanel-rqnqAOGL.js +0 -1
  113. package/dist/web/assets/SpeedTestDrawer-Bbn38SfV.js +0 -1
  114. package/dist/web/assets/SpeedTestDrawer-Dc0WToJ_.css +0 -1
  115. package/dist/web/assets/Upload-CdyVHxCI.js +0 -1
  116. package/dist/web/assets/WorkspacePanel-Be8PVZah.js +0 -1
  117. package/dist/web/assets/client-UDwXBP9i.js +0 -1
  118. package/dist/web/assets/index-3Lp6z8TQ.css +0 -1
  119. package/dist/web/assets/index-BKlAWTH-.js +0 -2
  120. package/dist/web/assets/platforms-BmzzwnSw.js +0 -1
  121. package/dist/web/assets/platforms-DWXgmy2w.js +0 -1
  122. package/dist/web/assets/project-config-B2baPzYL.js +0 -1
  123. package/dist/web/assets/sessions-CC0j-KH_.js +0 -1
  124. package/dist/web/assets/use-message-DqCwefG6.js +0 -1
@@ -0,0 +1 @@
1
+ import{E as e,F as a,I as t,Mt as l,N as s,P as n,bt as i,gn as o,gt as r,hn as u,ht as d,i as c,m as p,p as v,s as f,t as m,vn as y,xn as g,xt as h,yn as b}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as w,C as x,D as k,I as _,K as z,M as C,O as P,S,V as O,W as U,Y as j,Z as N,_t as I,b as A,dt as L,et as $,f as B,g as T,ht as M,l as E,m as D,mt as R,rt as W,st as Y,tt as J,u as q,w as F,x as H}from"./vue-vendor-BqZbbXHA.js";import{t as V}from"./client-BgcNg4Bt.js";import{a as X,c as Z,l as K,o as G,t as Q,u as ee}from"./platforms-mqqe_82d.js";import{N as ae,Nt as te,P as le,_ as se,_t as ne,d as ie,ht as oe,j as re,m as ue,o as de,ot as ce,p as pe,r as ve,t as fe,vt as me,yt as ye}from"./icons-B-AzZoeE.js";import{h as ge}from"./use-message-DBsCm7FJ.js";import{l as he}from"./light-C2X7hegj.js";import{t as be}from"./Divider-BLLhMTSt.js";import{n as we,t as xe}from"./useResponsiveDrawer-ChHZrTfl.js";import{t as ke}from"./DrawerContent-ChXgZ1Xm.js";import{$ as _e,A as ze,D as Ce,E as Pe,H as Se,M as Oe,P as Ue,St as je,X as Ne,Z as Ie,at as Ae,ct as Le,ft as $e,j as Be,k as Te,rt as Me,st as Ee,ut as De,y as Re}from"./index-BlUXw84U.js";var We=w({name:"SlotMachineNumber",props:{clsPrefix:{type:String,required:!0},value:{type:[Number,String],required:!0},oldOriginalNumber:{type:Number,default:void 0},newOriginalNumber:{type:Number,default:void 0}},setup(e){const a=Y(null),t=Y(e.value),l=Y(e.value),s=Y("up"),n=Y(!1),i=A(()=>n.value?`${e.clsPrefix}-base-slot-machine-current-number--${s.value}-scroll`:null),o=A(()=>n.value?`${e.clsPrefix}-base-slot-machine-old-number--${s.value}-scroll`:null);function r(){const a=e.newOriginalNumber,t=e.oldOriginalNumber;void 0!==t&&void 0!==a&&(a>t?u("up"):t>a&&u("down"))}function u(e){s.value=e,n.value=!1,_(()=>{var e;null===(e=a.value)||void 0===e||e.offsetWidth,n.value=!0})}return N(L(e,"value"),(e,a)=>{t.value=a,l.value=e,_(r)}),()=>{const{clsPrefix:s}=e;return C("span",{ref:a,class:`${s}-base-slot-machine-number`},null!==t.value?C("span",{class:[`${s}-base-slot-machine-old-number ${s}-base-slot-machine-old-number--top`,o.value]},t.value):null,C("span",{class:[`${s}-base-slot-machine-current-number`,i.value]},C("span",{ref:"numberWrapper",class:[`${s}-base-slot-machine-current-number__inner`,"number"!=typeof e.value&&`${s}-base-slot-machine-current-number__inner--not-number`]},l.value)),null!==t.value?C("span",{class:[`${s}-base-slot-machine-old-number ${s}-base-slot-machine-old-number--bottom`,o.value]},t.value):null)}}}),{cubicBezierEaseOut:Ye}=a;var Je=u([u("@keyframes n-base-slot-machine-fade-up-in","\n from {\n transform: translateY(60%);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n "),u("@keyframes n-base-slot-machine-fade-down-in","\n from {\n transform: translateY(-60%);\n opacity: 0;\n }\n to {\n transform: translateY(0);\n opacity: 1;\n }\n "),u("@keyframes n-base-slot-machine-fade-up-out","\n from {\n transform: translateY(0%);\n opacity: 1;\n }\n to {\n transform: translateY(-60%);\n opacity: 0;\n }\n "),u("@keyframes n-base-slot-machine-fade-down-out","\n from {\n transform: translateY(0%);\n opacity: 1;\n }\n to {\n transform: translateY(60%);\n opacity: 0;\n }\n "),o("base-slot-machine","\n overflow: hidden;\n white-space: nowrap;\n display: inline-block;\n height: 18px;\n line-height: 18px;\n ",[o("base-slot-machine-number","\n display: inline-block;\n position: relative;\n height: 18px;\n width: .6em;\n max-width: .6em;\n ",[function({duration:e=".2s"}={}){return[u("&.fade-up-width-expand-transition-leave-active",{transition:`\n opacity ${e} ${Ye},\n max-width ${e} ${Ye},\n transform ${e} ${Ye}\n `}),u("&.fade-up-width-expand-transition-enter-active",{transition:`\n opacity ${e} ${Ye},\n max-width ${e} ${Ye},\n transform ${e} ${Ye}\n `}),u("&.fade-up-width-expand-transition-enter-to",{opacity:1,transform:"translateX(0) translateY(0)"}),u("&.fade-up-width-expand-transition-enter-from",{maxWidth:"0 !important",opacity:0,transform:"translateY(60%)"}),u("&.fade-up-width-expand-transition-leave-from",{opacity:1,transform:"translateY(0)"}),u("&.fade-up-width-expand-transition-leave-to",{maxWidth:"0 !important",opacity:0,transform:"translateY(60%)"})]}({duration:".2s"}),p({duration:".2s",delay:"0s"}),o("base-slot-machine-old-number","\n display: inline-block;\n opacity: 0;\n position: absolute;\n left: 0;\n right: 0;\n ",[b("top",{transform:"translateY(-100%)"}),b("bottom",{transform:"translateY(100%)"}),b("down-scroll",{animation:"n-base-slot-machine-fade-down-out .2s cubic-bezier(0, 0, .2, 1)",animationIterationCount:1}),b("up-scroll",{animation:"n-base-slot-machine-fade-up-out .2s cubic-bezier(0, 0, .2, 1)",animationIterationCount:1})]),o("base-slot-machine-current-number","\n display: inline-block;\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n opacity: 1;\n transform: translateY(0);\n width: .6em;\n ",[b("down-scroll",{animation:"n-base-slot-machine-fade-down-in .2s cubic-bezier(0, 0, .2, 1)",animationIterationCount:1}),b("up-scroll",{animation:"n-base-slot-machine-fade-up-in .2s cubic-bezier(0, 0, .2, 1)",animationIterationCount:1}),y("inner","\n display: inline-block;\n position: absolute;\n right: 0;\n top: 0;\n width: .6em;\n ",[b("not-number","\n right: unset;\n left: 0;\n ")])])])])]),qe=w({name:"BaseSlotMachine",props:{clsPrefix:{type:String,required:!0},value:{type:[Number,String],default:0},max:{type:Number,default:void 0},appeared:{type:Boolean,required:!0}},setup(a){n("-base-slot-machine",Je,L(a,"clsPrefix"));const t=Y(),l=Y(),s=A(()=>{if("string"==typeof a.value)return[];if(a.value<1)return[0];const e=[];let t=a.value;for(void 0!==a.max&&(t=Math.min(a.max,t));t>=1;)e.push(t%10),t/=10,t=Math.floor(t);return e.reverse(),e});return N(L(a,"value"),(e,a)=>{"string"==typeof e?(l.value=void 0,t.value=void 0):"string"==typeof a?(l.value=e,t.value=void 0):(l.value=e,t.value=a)}),()=>{const{value:n,clsPrefix:i}=a;return"number"==typeof n?C("span",{class:`${i}-base-slot-machine`},C(q,{name:"fade-up-width-expand-transition",tag:"span"},{default:()=>s.value.map((e,a)=>C(We,{clsPrefix:i,key:s.value.length-a-1,oldOriginalNumber:t.value,newOriginalNumber:l.value,value:e}))}),C(e,{key:"+",width:!0},{default:()=>void 0!==a.max&&a.max<n?C(We,{clsPrefix:i,value:"+"}):null})):C("span",{class:`${i}-base-slot-machine`},n)}}}),Fe=u([u("@keyframes badge-wave-spread",{from:{boxShadow:"0 0 0.5px 0px var(--n-ripple-color)",opacity:.6},to:{boxShadow:"0 0 0.5px 4.5px var(--n-ripple-color)",opacity:0}}),o("badge","\n display: inline-flex;\n position: relative;\n vertical-align: middle;\n font-family: var(--n-font-family);\n ",[b("as-is",[o("badge-sup",{position:"static",transform:"translateX(0)"},[ge({transformOrigin:"left bottom",originalTransform:"translateX(0)"})])]),b("dot",[o("badge-sup","\n height: 8px;\n width: 8px;\n padding: 0;\n min-width: 8px;\n left: 100%;\n bottom: calc(100% - 4px);\n ",[u("::before","border-radius: 4px;")])]),o("badge-sup","\n background: var(--n-color);\n transition:\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n color: #FFF;\n position: absolute;\n height: 18px;\n line-height: 18px;\n border-radius: 9px;\n padding: 0 6px;\n text-align: center;\n font-size: var(--n-font-size);\n transform: translateX(-50%);\n left: 100%;\n bottom: calc(100% - 9px);\n font-variant-numeric: tabular-nums;\n z-index: 2;\n display: flex;\n align-items: center;\n ",[ge({transformOrigin:"left bottom",originalTransform:"translateX(-50%)"}),o("base-wave",{zIndex:1,animationDuration:"2s",animationIterationCount:"infinite",animationDelay:"1s",animationTimingFunction:"var(--n-ripple-bezier)",animationName:"badge-wave-spread"}),u("&::before",'\n opacity: 0;\n transform: scale(1);\n border-radius: 9px;\n content: "";\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n ')])])]),He=w({name:"Badge",props:Object.assign(Object.assign({},s.props),{value:[String,Number],max:Number,dot:Boolean,type:{type:String,default:"default"},show:{type:Boolean,default:!0},showZero:Boolean,processing:Boolean,color:String,offset:Array}),setup(e,{slots:a}){const{mergedClsPrefixRef:n,inlineThemeDisabled:o,mergedRtlRef:u}=r(e),c=s("Badge","-badge",Fe,Ae,e,n),p=Y(!1),v=A(()=>e.show&&(e.dot||void 0!==e.value&&!(!e.showZero&&Number(e.value)<=0)||!i(a.value)));O(()=>{v.value&&(p.value=!0)});const f=t("Badge",u,n),m=A(()=>{const{type:a,color:t}=e,{common:{cubicBezierEaseInOut:l,cubicBezierEaseOut:s},self:{[g("color",a)]:n,fontFamily:i,fontSize:o}}=c.value;return{"--n-font-size":o,"--n-font-family":i,"--n-color":t||n,"--n-ripple-color":t||n,"--n-bezier":l,"--n-ripple-bezier":s}}),y=o?d("badge",A(()=>{let a="";const{type:t,color:s}=e;return t&&(a+=t[0]),s&&(a+=l(s)),a}),m,e):void 0,h=A(()=>{const{offset:a}=e;if(!a)return;const[t,l]=a,s="number"==typeof t?`${t}px`:t,n="number"==typeof l?`${l}px`:l;return{transform:`translate(calc(${(null==f?void 0:f.value)?"50%":"-50%"} + ${s}), ${n})`}});return{rtlEnabled:f,mergedClsPrefix:n,appeared:p,showBadge:v,handleAfterEnter:()=>{p.value=!0},handleAfterLeave:()=>{p.value=!1},cssVars:o?void 0:m,themeClass:null==y?void 0:y.themeClass,onRender:null==y?void 0:y.onRender,offsetStyle:h}},render(){var e;const{mergedClsPrefix:a,onRender:t,themeClass:l,$slots:s}=this;null==t||t();const n=null===(e=s.default)||void 0===e?void 0:e.call(s);return C("div",{class:[`${a}-badge`,this.rtlEnabled&&`${a}-badge--rtl`,l,{[`${a}-badge--dot`]:this.dot,[`${a}-badge--as-is`]:!n}],style:this.cssVars},n,C(E,{name:"fade-in-scale-up-transition",onAfterEnter:this.handleAfterEnter,onAfterLeave:this.handleAfterLeave},{default:()=>this.showBadge?C("sup",{class:`${a}-badge-sup`,title:je(this.value),style:this.offsetStyle},h(s.value,()=>[this.dot?null:C(qe,{clsPrefix:a,appeared:this.appeared,max:this.max,value:this.value})]),this.processing?C(v,{clsPrefix:a}):null):null}))}}),Ve={class:"remote-provider-fields"},Xe={class:"remote-field-label"},Ze=m({__name:"RemoteProviderFields",props:{provider:{type:Object,required:!0},definition:{type:Object,default:null}},setup(e){const a=e,t=A(()=>Array.isArray(a.definition?.fields)?a.definition.fields:[]);function l(e){const t=e?.visibleWhen;return!t||"object"!=typeof t||a.provider?.config?.[t.key]===t.equals}function s(e){return"secret"===e.type?"password":"text"}return(a,n)=>(U(),F("div",Ve,[(U(!0),F(T,null,z(t.value,a=>J((U(),F("div",{key:a.key,class:M(["remote-field",{"remote-field-wide":!0===a.wide}])},[H("span",Xe,I(a.label),1),"select"===a.type?(U(),S(R(_e),{key:0,value:e.provider.config[a.key],"onUpdate:value":t=>e.provider.config[a.key]=t,size:"small",options:a.options||[],placeholder:a.placeholder},null,8,["value","onUpdate:value","options","placeholder"])):(U(),S(R(Ee),{key:1,value:e.provider.config[a.key],"onUpdate:value":t=>e.provider.config[a.key]=t,size:"small",type:s(a),"show-password-on":"secret"===a.type?"click":void 0,placeholder:a.placeholder},null,8,["value","onUpdate:value","type","show-password-on","placeholder"]))],2)),[[B,l(a)]])),128))]))}},[["__scopeId","data-v-44913e2a"]]);var Ke={class:"settings-container"},Ge={class:"settings-sidebar"},Qe={class:"sidebar-header"},ea={class:"settings-menu"},aa=["onClick"],ta={class:"menu-label"},la={class:"settings-content"},sa={class:"settings-panel"},na={class:"panel-header"},ia={class:"panel-title-row"},oa={class:"panel-body"},ra={class:"setting-group"},ua={class:"setting-item"},da={class:"setting-label"},ca={class:"visibility-options"},pa={class:"visibility-item"},va={class:"visibility-info"},fa={class:"visibility-item"},ma={class:"visibility-info"},ya={class:"visibility-item"},ga={class:"visibility-info"},ha={class:"setting-item"},ba={class:"setting-label"},wa={class:"home-cli-settings"},xa={class:"platform-catalog-list"},ka={key:0,class:"platform-order-actions"},_a={class:"home-cli-actions"},za={class:"setting-item"},Ca={class:"setting-label"},Pa={class:"simple-theme-options"},Sa={class:"theme-text"},Oa={key:0,class:"theme-check"},Ua={class:"theme-text"},ja={key:0,class:"theme-check"},Na={class:"settings-panel"},Ia={class:"panel-header"},Aa={class:"panel-title-row"},La={class:"panel-body"},$a={class:"setting-group"},Ba={class:"setting-item"},Ta={class:"setting-label"},Ma={class:"notification-options"},Ea={class:"visibility-item"},Da={class:"visibility-info"},Ra={key:1,class:"notification-type-section"},Wa={class:"radio-content"},Ya={class:"radio-content"},Ja={class:"radio-content"},qa={style:{"font-size":"13px"}},Fa={class:"setting-item"},Ha={class:"setting-label"},Va={class:"notification-options"},Xa={class:"remote-provider-toolbar"},Za={class:"remote-provider-header"},Ka={class:"remote-provider-title-row"},Ga={class:"remote-provider-avatar"},Qa={class:"remote-provider-title"},et={class:"remote-provider-name-row"},at={class:"remote-provider-fields"},tt={class:"remote-field remote-field-wide"},lt={class:"remote-fields-descriptor"},st={class:"remote-provider-actions"},nt={class:"panel-footer"},it={class:"settings-panel"},ot={class:"panel-header"},rt={class:"panel-title-row"},ut={class:"panel-body"},dt={class:"setting-group"},ct={class:"setting-item"},pt={class:"setting-label"},vt={class:"ports-grid"},ft={class:"setting-item"},mt={class:"setting-label"},yt={class:"advanced-options"},gt={class:"option-field"},ht={class:"option-label"},bt={class:"setting-item"},wt={class:"setting-label"},xt={class:"advanced-options"},kt={class:"option-field"},_t={class:"option-label"},zt={class:"option-field"},Ct={class:"option-label"},Pt={class:"option-field"},St={class:"option-label"},Ot={class:"option-field"},Ut={class:"option-label"},jt={class:"setting-item"},Nt={class:"setting-label"},It={style:{"margin-top":"16px"}},At={style:{background:"var(--bg-secondary)",padding:"16px","border-radius":"8px","border-left":"3px solid var(--border-secondary)"}},Lt={style:{display:"flex","align-items":"center",gap:"12px","margin-bottom":"12px"}},$t={class:"panel-footer"},Bt={class:"settings-panel"},Tt={class:"panel-header"},Mt={class:"panel-title-row"},Et={class:"panel-body"},Dt={class:"setting-group"},Rt={class:"setting-item"},Wt={class:"setting-label"},Yt={class:"security-status"},Jt={class:"setting-item"},qt={class:"setting-label"},Ft={class:"security-form"},Ht={class:"panel-footer"},Vt={class:"settings-panel"},Xt={class:"panel-header"},Zt={class:"panel-title-row"},Kt={class:"panel-body"},Gt={class:"setting-item",style:{"margin-bottom":"12px"}},Qt={class:"model-meta-section"},el={class:"speed-test-defaults"},al={class:"speed-test-default-label"},tl={class:"model-toolbar"},ll={class:"model-filter-row"},sl={key:0,class:"setting-item"},nl={key:1,class:"model-list"},il=["onClick"],ol={class:"model-card-id"},rl={key:0,class:"model-card-body"},ul={class:"model-meta-editor"},dl={class:"model-meta-section"},cl={style:{display:"grid","grid-template-columns":"1fr 1fr",gap:"8px"}},pl={class:"model-meta-section",style:{"margin-top":"8px"}},vl={style:{display:"grid","grid-template-columns":"1fr 1fr",gap:"8px"}},fl={class:"panel-footer"},ml={style:{display:"grid","grid-template-columns":"1fr 1fr",gap:"12px"}},yl={style:{display:"grid","grid-template-columns":"1fr 1fr",gap:"12px"}},gl={style:{display:"grid","grid-template-columns":"1fr 1fr",gap:"12px"}},hl=m({__name:"SettingsDrawer",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(e,{emit:a}){const{drawerWidth:t,isMobile:l}=xe(720),s=Q(),{uiConfig:n}=X();async function i(e){return(await V.post("/settings/model-settings",e)).data}async function o(e){return(await V.delete(`/settings/model-settings/${encodeURIComponent(e)}`)).data}const r=e,u=a,d=A({get:()=>r.visible,set:e=>u("update:visible",e)}),p=Y("appearance"),{isDark:v,toggleTheme:m}=Re(),y=Y(!0),g=Y(!0),h=Y(!1),b=Y({webUI:19999}),w=Y({webUI:19999}),_=A(()=>[{key:"webUI",label:"Web UI",defaultPort:19999},...s.all.filter(e=>e.portKey&&Number.isFinite(e.defaultPort)).sort((e,a)=>(e.sortOrder||0)-(a.sortOrder||0)).map(e=>({key:e.portKey,label:e.portLabel||e.label||e.key,defaultPort:e.defaultPort}))]),C=Y(!1),L=Y([...G]),E=Y([...G]),q=Y(!1),ge=Y(!1),je=Y(!1),Ae=A(()=>ge.value?"[v] 已启用":"未启用"),We=A(()=>ge.value?"重启电脑时 coding-tool-x 会自动启动。如需禁用,点击下方按钮":"启用后,重启电脑时 coding-tool-x 会自动启动");function Ye(e={}){const a=(e?.omp&&"object"==typeof e.omp&&!Array.isArray(e.omp)?e.omp:null)||e,t=Number.isInteger(a.intervalSeconds)&&a.intervalSeconds>=1&&a.intervalSeconds<=60?a.intervalSeconds:5;return{enabled:"boolean"!=typeof a.enabled||a.enabled,intervalSeconds:t}}function Je(e={}){return{maxLogs:e.maxLogs??100,statsInterval:e.statsInterval??30,enableSessionBinding:!1!==e.enableSessionBinding,nativeCliLogs:Ye(e.nativeCliLogs)}}const qe=Y(Je()),Fe=Y(Je()),Ve=Y([]),Xe=Y([]);function hl(e={}){const a=String(e.key||"").trim();return a?{key:a,label:String(e.label||a),description:"string"==typeof e.description?e.description:"",implementation:"string"==typeof e.implementation?e.implementation:"",externalMessage:"string"==typeof e.externalMessage?e.externalMessage:"",hints:Array.isArray(e.hints)?e.hints.filter(e=>"string"==typeof e):[]}:null}function bl(e={}){return{enabled:!0===e.enabled,type:"dialog"===e.type||"browser"===e.type?e.type:"notification",external:!0===e.external}}function wl(e,a=Xe.value){return a.find(a=>a.type===e)||null}function xl(e){return wl(e)?.label||e||"远程通知"}function kl(e){const a=xl(e).trim();return Array.from(a)[0]||"通"}function _l(e={},a=Ve.value,t=Xe.value){const l={enabled:e?.stopHook?.enabled,type:e?.stopHook?.type},s=e.platforms&&"object"==typeof e.platforms&&!Array.isArray(e.platforms)?e.platforms:{};return{platforms:Object.fromEntries(a.map(e=>[e.key,bl(s[e.key]||("claude"===e.key?l:{}))])),remoteNotifications:{providers:Array.isArray(e?.remoteNotifications?.providers)?e.remoteNotifications.providers.map(e=>function(e={},a=Xe.value){const t=String(e.type||"").trim(),l=wl(t,a)||a[0],s=l?.type||t;if(!s)return null;const n=l?.defaults&&"object"==typeof l.defaults?l.defaults:{};return{id:e.id||`${s}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:s,name:e.name||l?.label||s,enabled:!0===e.enabled,config:{...n,...e.config&&"object"==typeof e.config?e.config:{}}}}(e,t)).filter(Boolean):[]}}}const zl=Y(_l()),Cl=Y(_l()),Pl=Y(!1),Sl=Y(""),Ol=Y(""),Ul=A(()=>Xe.value.map(e=>({label:e.label||e.type,value:e.type}))),jl=Y(""),Nl=Y("default"),Il=A(()=>"undefined"!=typeof window&&"undefined"!=typeof Notification&&(!!window.isSecureContext||["localhost","127.0.0.1","::1"].includes(window.location.hostname))),Al=A(()=>Il.value?"granted"===Nl.value?"已授权":"denied"===Nl.value?"已被浏览器拒绝,请在浏览器站点设置里重新开启":"尚未授权,保存时会请求浏览器权限":"当前环境不支持浏览器通知,请使用 localhost 或 HTTPS 页面");function Ll(e="notification"){if("browser"===e)return"浏览器通知";if("dialog"===e)return"确认式弹窗";switch(jl.value){case"win32":return"右上角悬浮卡片";case"darwin":return"角落横幅通知";case"linux":return"桌面环境通知";default:return"轻提醒卡片"}}function $l(e="notification"){return"browser"===e?Il.value?"granted"===Nl.value?"通过当前打开的 Web 页面显示浏览器原生通知":"denied"===Nl.value?"浏览器通知权限已被拒绝,需要先在浏览器中重新授权":"通过当前打开的 Web 页面显示原生通知,保存时会请求权限":"当前页面环境不支持浏览器通知":"dialog"===e?"强制提醒,需要手动点击确认才能关闭":"win32"===jl.value?"轻量提醒,几秒后自动消失,带提示音(Windows 使用系统 Toast 风格提醒)":"轻量提醒,几秒后自动消失,带提示音"}function Bl(){"undefined"!=typeof Notification?Nl.value=Notification.permission:Nl.value="unsupported"}function Tl(){const e=function(e=Xe.value[0]?.type){const a=wl(e);return a?{id:`${e}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,type:e,name:xl(e),enabled:!1,config:{...a.defaults&&"object"==typeof a.defaults?a.defaults:{}}}:null}(Ol.value);e&&zl.value.remoteNotifications.providers.push(e)}const Ml=Y({hasPassword:!1}),El=Y(!1),Dl=Y(!1),Rl=Y({currentPassword:"",newPassword:"",confirmPassword:""}),Wl=Y(!1),Yl=A(()=>{const e=Rl.value.currentPassword.trim(),a=Rl.value.newPassword,t=Rl.value.confirmPassword;return Ml.value.hasPassword&&!e?"请输入当前密码":a?a.length<4?"新密码至少需要 4 位":t&&a!==t?"两次输入的新密码不一致":"":""}),Jl=A(()=>{const e=Rl.value;return(!Ml.value.hasPassword||Boolean(e.currentPassword.trim()))&&e.newPassword.length>=4&&e.newPassword===e.confirmPassword});let ql=null;const Fl=Y({name:"Models.dev",url:"",lastUpdated:""}),Hl=Y(!1),Vl=Y(!1),Xl=Y({}),Zl=Y({}),Kl=Y({}),Gl=Y(""),Ql=Y("all"),es=Y(!1),as=Y({modelId:"",context:128e3,output:8192,inputPrice:0,outputPrice:0,cacheCreationPrice:0,cacheReadPrice:0}),ts=Y(new Set),ls=Y({}),ss=Y({}),ns=A(()=>Object.keys(ls.value).map(e=>{const a="function"==typeof s.get?s.get(e):null;return{key:e,label:a?.label||a?.title||e}})),is=Y(new Set),os=A(()=>Object.keys(Kl.value).length>0),rs=A(()=>os.value||JSON.stringify(ls.value)!==JSON.stringify(ss.value)),us=A(()=>{const e=String(as.value.modelId||"").trim();if(!e)return"请输入模型 ID";const a=Object.keys(Xl.value).find(a=>a.toLowerCase()===e.toLowerCase());return a?`模型已存在:${a}`:!Number.isFinite(as.value.context)||as.value.context<=0?"Context 窗口必须为正数":!Number.isFinite(as.value.output)||as.value.output<=0?"Max Output 必须为正数":as.value.inputPrice<0||as.value.outputPrice<0||as.value.cacheCreationPrice<0||as.value.cacheReadPrice<0?"价格不能为负数":""});function ds(){as.value={modelId:"",context:128e3,output:8192,inputPrice:0,outputPrice:0,cacheCreationPrice:0,cacheReadPrice:0},es.value=!0}function cs(){es.value=!1}function ps(){if(us.value)return;const e=String(as.value.modelId||"").trim(),a={limit:{context:as.value.context,output:as.value.output},pricing:{input:as.value.inputPrice,output:as.value.outputPrice,cacheCreation:as.value.cacheCreationPrice,cacheRead:as.value.cacheReadPrice}};Xl.value[e]=a,Kl.value[e]={limit:{...a.limit},pricing:{...a.pricing}},Gl.value=e,es.value=!1,Te.success("模型已新增,请点击“保存设置”使其生效")}function vs(e){return ts.value.has(e)}function fs(e){return!vs(e)}const ms={claude:"claude",openai:"codex",gemini:"gemini"},ys=A(()=>{const e=Object.keys(Xl.value),a=Gl.value.trim().toLowerCase(),t=Ql.value,l=ms[t];return e.filter(e=>{if(a&&!e.toLowerCase().includes(a))return!1;const s=Xl.value[e];return"compatible"===t?!!Array.isArray(s?.toolTypes)&&(s.toolTypes.includes("opencode")||s.toolTypes.includes("omp")):l?Array.isArray(s?.toolTypes)?s.toolTypes.includes(l):gs(e,s)===l:"overrides"!==t||!!Zl.value[e]})});function gs(e,a=Xl.value[e]){const t=String(e||"").trim().toLowerCase(),l=hs(a);return l.length>0?l[0]:t.startsWith("claude-")?"claude":t.startsWith("gemini-")?"gemini":t.startsWith("gpt-")||t.startsWith("o1")||t.startsWith("o3")||t.startsWith("o4")?"codex":""}function hs(e={}){return Array.isArray(e?.toolTypes)?[...new Set(e.toolTypes.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(Boolean))]:[]}const bs=A(()=>{const e=Object.fromEntries(ns.value.map(e=>[e.key,[]]));for(const[a,t]of Object.entries(Xl.value||{})){if(!t||"object"!=typeof t||!t.limit||!t.pricing)continue;const l=hs(t),s=l.length>0?"":gs(a,t);for(const t of l.length>0?l:[s])t&&e[t]&&e[t].push({label:a,value:a})}for(const a of Object.keys(e))e[a].sort((e,a)=>e.label.localeCompare(a.label));for(const a of ns.value){const t=String(ls.value[a.key]||"").trim();t&&e[a.key]&&(e[a.key].some(e=>e.value===t)||e[a.key].push({label:`${t}(自定义)`,value:t}))}return e});function ws(e,a,t){return void 0!==Kl.value[e]?.[a]?.[t]?Kl.value[e][a][t]:Xl.value[e]?.[a]?.[t]??null}function xs(e,a,t,l){if(!Kl.value[e]){const a=Xl.value[e]||{};Kl.value[e]={limit:{...a.limit||{}},pricing:{...a.pricing||{}}}}Kl.value[e][a]||(Kl.value[e][a]={}),Kl.value[e][a][t]=l}async function ks(){Hl.value=!0;try{const e=await async function(){return(await V.get("/settings/model-settings")).data}(),a=e.metadataSource||{};Fl.value={name:a.name||"Models.dev",url:a.url||"",lastUpdated:a.lastUpdated||""},Xl.value=e.models&&"object"==typeof e.models&&!Array.isArray(e.models)?e.models:{};const t=e.overrides??e.modelMetadataOverrides;Zl.value={...t&&"object"==typeof t&&!Array.isArray(t)?t:{}};const l=Array.isArray(e.builtinModelIds)?e.builtinModelIds:Object.keys(Xl.value);ts.value=new Set(l.filter(e=>"string"==typeof e&&e.trim())),ls.value=Object.fromEntries(Object.entries(e.defaultSpeedTestModels||{}).filter(([,e])=>"string"==typeof e&&e.trim())),function(){const e={...ls.value};let a=!1;for(const t of ns.value){const l=bs.value[t.key]||[];0!==l.length&&(new Set(l.map(e=>e.value)).has(e[t.key])||(e[t.key]=l[0].value,a=!0))}a&&(ls.value=e)}(),ss.value={...ls.value},Kl.value={}}catch(e){}finally{Hl.value=!1}}async function _s(){Vl.value=!0;try{const e={...Zl.value};for(const[a,t]of Object.entries(Kl.value)){const l=e[a]||{};e[a]={limit:{...l.limit||{},...t.limit||{}},pricing:{...l.pricing||{},...t.pricing||{}}}}await i({overrides:e,defaultSpeedTestModels:ls.value}),Zl.value=e,ss.value={...ls.value},Kl.value={},await ks(),Te.success("模型设置已保存")}catch(e){Te.error("保存失败:"+e.message)}finally{Vl.value=!1}}async function zs(){try{await i({overrides:{},defaultSpeedTestModels:ls.value}),Zl.value={},Kl.value={},await ks(),Te.success("全部模型设置已重置为内置默认值")}catch(e){Te.error("重置失败:"+e.message)}}const Cs=A(()=>{const e=Object.keys(b.value).some(e=>b.value[e]!==w.value[e]),a=qe.value.nativeCliLogs.enabled!==Fe.value.nativeCliLogs.enabled||qe.value.nativeCliLogs.intervalSeconds!==Fe.value.nativeCliLogs.intervalSeconds;return e||qe.value.maxLogs!==Fe.value.maxLogs||qe.value.statsInterval!==Fe.value.statsInterval||qe.value.enableSessionBinding!==Fe.value.enableSessionBinding||a}),Ps=A(()=>[{key:"appearance",label:"外观设置",icon:W(ce)},{key:"notification",label:"通知设置",icon:W(ae)},{key:"advanced",label:"高级设置",icon:W(re)},{key:"security",label:"安全设置",icon:W(pe)},{key:"model-settings",label:"模型设置",icon:W(ie)}]),Ss=A(()=>{const e=Array.isArray(s.all)?s.all:[],a=new Map(e.map(e=>[e.key,e])),t=L.value.map(e=>a.get(e)).filter(Boolean),l=new Set(t.map(e=>e.key)),n=e.filter(e=>!l.has(e.key));return[...t,...n]});function Os(e){return String(e||"").trim().toLowerCase()}function Us(e=Ve.value){const a=new Set((Array.isArray(s.all)?s.all:[]).map(e=>Os(e.key)).filter(Boolean)),t=new Set(L.value.map(Os).filter(Boolean));return e.filter(e=>{const l=Os(e.key);return!a.has(l)||t.has(l)})}const js=A(()=>Us());const Ns=A(()=>JSON.stringify(L.value)!==JSON.stringify(E.value));function Is(e){return L.value.indexOf(e)}function As(e,a){const t=Is(e),l=t+a;if(t<0||l<0||l>=L.value.length)return;const s=[...L.value],[n]=s.splice(t,1);s.splice(l,0,n),L.value=s}function Ls(){L.value=[...G]}async function $s(){try{const e=await Z();if(e.success&&e.config){y.value=!1!==e.config.panelVisibility?.showChannels,g.value=!1!==e.config.panelVisibility?.showLogs,h.value=!0===e.config.channelBalance?.showRemaining;const a=Array.isArray(e.config.enabledCliPlatforms)?e.config.enabledCliPlatforms:G;L.value=[...a],E.value=[...a]}}catch(e){}}async function Bs(){q.value=!0;try{const e=await K({enabledCliPlatforms:[...L.value]});if(!e.success)throw new Error(e.message||"保存失败");const a=Array.isArray(e.config?.enabledCliPlatforms)?[...e.config.enabledCliPlatforms]:[...L.value];L.value=[...a],E.value=[...a],n.value={...n.value,enabledCliPlatforms:[...a]},window.dispatchEvent(new CustomEvent("enabled-cli-platforms-change",{detail:{enabledCliPlatforms:[...a]}})),Te.success("首页 CLI 显示已保存")}catch(e){Te.error("保存失败: "+e.message)}finally{q.value=!1}}async function Ts(){try{await ee("panelVisibility","showChannels",y.value),await ee("panelVisibility","showLogs",g.value),await ee("channelBalance","showRemaining",h.value)}catch(e){}}function Ms(e){y.value=e,Ts(),window.dispatchEvent(new CustomEvent("panel-visibility-change",{detail:{showChannels:e,showLogs:g.value}}))}function Es(e){g.value=e,Ts(),window.dispatchEvent(new CustomEvent("panel-visibility-change",{detail:{showChannels:y.value,showLogs:e}}))}function Ds(e){h.value=e,Ts(),window.dispatchEvent(new CustomEvent("channel-balance-visibility-change",{detail:{showRemaining:e}}))}async function Rs(e){try{(await fetch("/api/config/advanced",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ports:b.value,maxLogs:qe.value.maxLogs,statsInterval:qe.value.statsInterval,enableSessionBinding:e,nativeCliLogs:qe.value.nativeCliLogs})})).ok?(Fe.value=Je(qe.value),Te.success(e?"会话绑定已开启":"会话绑定已关闭")):(qe.value.enableSessionBinding=!e,Te.error("保存失���"))}catch(a){qe.value.enableSessionBinding=!e,Te.error("保存失败: "+a.message)}}function Ws(e={}){const a=function(e={}){const a=Array.isArray(e.platformDefinitions)?e.platformDefinitions.map(hl).filter(Boolean):[];if(a.length>0)return a;const t=e.platforms&&"object"==typeof e.platforms&&!Array.isArray(e.platforms)?e.platforms:{},l=Object.keys(t);return 0===l.length&&e.stopHook&&"object"==typeof e.stopHook&&l.push("claude"),l.map(e=>hl({key:e,label:e})).filter(Boolean)}(e),t=function(e={}){const a=Array.isArray(e.remoteProviderTypes)?e.remoteProviderTypes.map(e=>({...e,type:String(e?.type||"").trim()})).filter(e=>e.type):[],t=new Set(a.map(e=>e.type)),l=Array.isArray(e.remoteNotifications?.providers)?e.remoteNotifications.providers:[];for(const s of l){const e=String(s?.type||"").trim();e&&!t.has(e)&&(a.push({type:e,label:e,description:"",hint:"",defaults:{},fields:[]}),t.add(e))}return a}(e);return Ve.value=a,Xe.value=t,t.some(e=>e.type===Ol.value)||(Ol.value=t[0]?.type||""),{definitions:a,providerDefinitions:t}}async function Ys(){try{const e=await fetch("/api/hooks");if(e.ok){const a=await e.json(),{definitions:t,providerDefinitions:l}=Ws(a),s=_l(a,Us(t),l);zl.value=s,Cl.value=JSON.parse(JSON.stringify(s)),jl.value=a.platform||"",Bl()}}catch(e){}}async function Js(){Pl.value=!0;try{const e=new Set(js.value.map(e=>e.key));Object.entries(zl.value.platforms||{}).filter(([a])=>e.has(a)).some(([,e])=>!0===e?.enabled&&"browser"===e.type)&&await async function(){if(!Il.value)throw new Error("当前页面环境不支持浏览器通知,请改用 HTTPS 或 localhost 页面");if(Bl(),"granted"===Nl.value)return;const e=await Notification.requestPermission();if(Nl.value=e,"granted"!==e)throw new Error("浏览器通知权限未授予")}();const a=await fetch("/api/hooks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({platforms:Object.fromEntries(Object.entries(zl.value.platforms||{}).filter(([a])=>e.has(a)).map(([e,a])=>[e,{enabled:a.enabled,type:a.type}])),remoteNotifications:{providers:zl.value.remoteNotifications.providers}})});if(a.ok){const e=await a.json(),{definitions:t,providerDefinitions:l}=Ws(e),s=_l(e,Us(t),l);zl.value=s,Cl.value=JSON.parse(JSON.stringify(s)),jl.value=e.platform||jl.value,Te.success("通知设置已保存")}else{const e=await a.json();Te.error("保存失败:"+(e.error||"未知错误"))}}catch(e){Te.error("保存失败:"+e.message)}finally{Pl.value=!1}}function qs(){Rl.value={currentPassword:"",newPassword:"",confirmPassword:""}}async function Fs(e=!1){return Dl.value&&ql?ql:El.value&&!e?Promise.resolve():(Dl.value=!0,ql=(async()=>{try{const e=await Pe();e.success&&(Ml.value={hasPassword:Boolean(e.hasPassword)},El.value=!0)}catch(e){}finally{Dl.value=!1,ql=null}})(),ql)}async function Hs(){if(!Jl.value)return void Te.warning("请完善密码信息");const e=Ml.value.hasPassword;Wl.value=!0;try{const a={newPassword:Rl.value.newPassword};Ml.value.hasPassword&&(a.currentPassword=Rl.value.currentPassword);const t=await Ce(a);t.success?(Ml.value.hasPassword=!0,El.value=!0,qs(),Te.success(e?"密码已更新":"密码已设置")):Te.error(t.error||"保存失败")}catch(a){Te.error(a.response?.data?.error||"保存失败")}finally{Wl.value=!1}}async function Vs(){C.value=!0;try{const e=await fetch("/api/config/advanced",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({ports:b.value,maxLogs:qe.value.maxLogs,statsInterval:qe.value.statsInterval,enableSessionBinding:qe.value.enableSessionBinding,nativeCliLogs:qe.value.nativeCliLogs})});if(e.ok)w.value={...b.value},Fe.value=Je(qe.value),window.dispatchEvent(new CustomEvent("advanced-config-change",{detail:{maxLogs:qe.value.maxLogs,statsInterval:qe.value.statsInterval}})),Te.success("配置已保存,端口修改需要重启服务器生效;OMP 原生会话日志配置立即生效");else{const a=await e.json();Te.error("保存失败:"+(a.error||"未知错误"))}}catch(e){Te.error("保存失败:"+e.message)}finally{C.value=!1}}async function Xs(){try{const e=await async function(){return(await V.get("/pm2-autostart")).data}();e&&e.success?ge.value=e.data?.enabled||!1:ge.value=!1}catch(e){ge.value=!1}}async function Zs(){je.value=!0;try{const e=await async function(){return(await V.post("/pm2-autostart",{action:"enable"})).data}();if(e.success)ge.value=!0,Te.success("开机自启已启用");else{const a=e.message||"未知错误";a.includes("暂无运行中的进程")||a.includes("请先启动")?Te.warning(a):Te.error(a)}}catch(e){Te.error(e.message||"启用失败:未知错误")}finally{je.value=!1}}async function Ks(){je.value=!0;try{const e=await async function(){return(await V.post("/pm2-autostart",{action:"disable"})).data}();if(e.success)ge.value=!1,Te.success("开机自启已禁用");else{const a=e.message||"未知错误";a.includes("未启用")||a.includes("不存在")?Te.warning(a):Te.error(a)}}catch(e){Te.error(e.message||"禁用失败:未知错误")}finally{je.value=!1}}return O(()=>{"function"==typeof s.load&&s.load(),$s(),Fs(),ks(),r.visible&&Ys()}),N(d,e=>{e?($s(),async function(){try{"function"==typeof s.load&&await s.load();const e=await fetch("/api/config/advanced");if(e.ok){const a=await e.json(),t={};for(const e of _.value)t[e.key]=a.ports?.[e.key]||e.defaultPort;b.value=t,w.value={...b.value},qe.value=Je({maxLogs:a.maxLogs||100,statsInterval:a.statsInterval||30,enableSessionBinding:!1!==a.enableSessionBinding,nativeCliLogs:a.nativeCliLogs}),Fe.value=Je(qe.value)}}catch(e){}}(),Xs(),Ys(),ks(),Fs(!0)):qs()}),N(p,(e,a)=>{"security"===e&&Fs(),"security"===a&&"security"!==e&&qs()}),(e,a)=>(U(),S(R(we),{show:d.value,"onUpdate:show":a[25]||(a[25]=e=>d.value=e),width:R(t),placement:"right","show-mask":!0},{default:$(()=>[P(R(ke),{"show-header":!1,closable:"","native-scrollbar":!1},{default:$(()=>[H("div",Ke,[H("div",Ge,[H("div",Qe,[P(R(c),{size:"20",color:"var(--text-secondary)"},{default:$(()=>[P(R(ue))]),_:1}),a[26]||(a[26]=H("span",{class:"sidebar-title"},"设置分类",-1))]),H("div",ea,[(U(!0),F(T,null,z(Ps.value,e=>(U(),F("div",{key:e.key,class:M(["menu-item",{active:p.value===e.key}]),onClick:a=>p.value=e.key},[P(R(c),{size:18,class:"menu-icon"},{default:$(()=>[(U(),S(j(e.icon)))]),_:2},1024),H("span",ta,I(e.label),1),e.badge?(U(),S(R(He),{key:0,value:e.badge,type:e.badgeType||"info","show-zero":!1},null,8,["value","type"])):x("",!0)],10,aa))),128))])]),H("div",la,[J(H("div",sa,[H("div",na,[H("div",ia,[P(R(c),{size:"24",color:"var(--text-secondary)"},{default:$(()=>[P(R(ce))]),_:1}),H("div",null,[a[28]||(a[28]=H("h3",{class:"panel-title"},"外观设置",-1)),P(R(ze),{depth:"3",class:"panel-subtitle"},{default:$(()=>[...a[27]||(a[27]=[k("自定义界面外观和主题",-1)])]),_:1})])])]),H("div",oa,[H("div",ra,[H("div",ua,[H("div",da,[P(R(ze),{strong:""},{default:$(()=>[...a[29]||(a[29]=[k("面板显示",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px","margin-top":"4px"}},{default:$(()=>[...a[30]||(a[30]=[k(" 控制右侧面板中各个区域的显示 ",-1)])]),_:1})]),H("div",ca,[H("div",pa,[H("div",va,[P(R(ze),{strong:""},{default:$(()=>[...a[31]||(a[31]=[k("显示渠道列表",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px"}},{default:$(()=>[...a[32]||(a[32]=[k(" 在右侧面板显示 API 渠道管理区域 ",-1)])]),_:1})]),P(R(Be),{value:y.value,"onUpdate:value":Ms},null,8,["value"])]),H("div",fa,[H("div",ma,[P(R(ze),{strong:""},{default:$(()=>[...a[33]||(a[33]=[k("显示实时日志",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px"}},{default:$(()=>[...a[34]||(a[34]=[k(" 在 Dashboard 显示实时日志区域 ",-1)])]),_:1})]),P(R(Be),{value:g.value,"onUpdate:value":Es},null,8,["value"])]),H("div",ya,[H("div",ga,[P(R(ze),{strong:""},{default:$(()=>[...a[35]||(a[35]=[k("显示剩余金额",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px"}},{default:$(()=>[...a[36]||(a[36]=[k(" 在渠道卡片显示可识别 API 网关的余额 ",-1)])]),_:1})]),P(R(Be),{value:h.value,"onUpdate:value":Ds},null,8,["value"])])])]),P(R(be)),H("div",ha,[H("div",ba,[P(R(ze),{strong:""},{default:$(()=>[...a[37]||(a[37]=[k("首页 CLI 显示",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px","margin-top":"4px"}},{default:$(()=>[...a[38]||(a[38]=[k(" 从已注册的平台目录中选择并排序首页显示的 CLI ",-1)])]),_:1})]),H("div",wa,[H("div",xa,[(U(!0),F(T,null,z(Ss.value,e=>(U(),F("div",{key:e.key,class:"platform-catalog-item"},[P(R(Me),{checked:L.value.includes(e.key),"onUpdate:checked":a=>function(e,a){const t=L.value.filter(a=>a!==e);a&&t.push(e),L.value=t}(e.key,a)},{default:$(()=>[k(I(e.label||e.title||e.key),1)]),_:2},1032,["checked","onUpdate:checked"]),L.value.includes(e.key)?(U(),F("div",ka,[P(R(f),{text:"",size:"small",disabled:0===Is(e.key),"aria-label":"上移",onClick:a=>As(e.key,-1)},{icon:$(()=>[P(R(c),null,{default:$(()=>[P(R(oe))]),_:1})]),_:1},8,["disabled","onClick"]),P(R(f),{text:"",size:"small",disabled:Is(e.key)===L.value.length-1,"aria-label":"下移",onClick:a=>As(e.key,1)},{icon:$(()=>[P(R(c),null,{default:$(()=>[P(R(me))]),_:1})]),_:1},8,["disabled","onClick"])])):x("",!0)]))),128))]),H("div",_a,[P(R(f),{size:"small",onClick:Ls},{default:$(()=>[...a[39]||(a[39]=[k("恢复默认显示",-1)])]),_:1}),P(R(f),{type:"primary",size:"small",loading:q.value,disabled:!Ns.value,onClick:Bs},{default:$(()=>[...a[40]||(a[40]=[k(" 保存首页显示 ",-1)])]),_:1},8,["loading","disabled"])])])]),P(R(be)),H("div",za,[H("div",Ca,[P(R(ze),{strong:""},{default:$(()=>[...a[41]||(a[41]=[k("界面主题",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px","margin-top":"4px"}},{default:$(()=>[...a[42]||(a[42]=[k(" 选择你喜欢的界面主题风格 ",-1)])]),_:1})]),H("div",Pa,[H("div",{class:M(["simple-theme-item",{active:!R(v)}]),onClick:a[0]||(a[0]=e=>R(v)&&R(m)())},[P(R(c),{size:20,class:"theme-icon"},{default:$(()=>[P(R(de))]),_:1}),H("div",Sa,[P(R(ze),{strong:""},{default:$(()=>[...a[43]||(a[43]=[k("亮色模式",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[44]||(a[44]=[k("经典的浅色主题",-1)])]),_:1})]),R(v)?x("",!0):(U(),F("div",Oa,[P(R(c),{size:20,color:"#18a058"},{default:$(()=>[P(R(ye))]),_:1})]))],2),H("div",{class:M(["simple-theme-item",{active:R(v)}]),onClick:a[1]||(a[1]=e=>!R(v)&&R(m)())},[P(R(c),{size:20,class:"theme-icon"},{default:$(()=>[P(R(le))]),_:1}),H("div",Ua,[P(R(ze),{strong:""},{default:$(()=>[...a[45]||(a[45]=[k("暗色模式",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[46]||(a[46]=[k("护眼的深色主题",-1)])]),_:1})]),R(v)?(U(),F("div",ja,[P(R(c),{size:20,color:"#18a058"},{default:$(()=>[P(R(ye))]),_:1})])):x("",!0)],2)])])])])],512),[[B,"appearance"===p.value]]),J(H("div",Na,[H("div",Ia,[H("div",Aa,[P(R(c),{size:"24",color:"var(--text-secondary)"},{default:$(()=>[P(R(ae))]),_:1}),H("div",null,[a[48]||(a[48]=H("h3",{class:"panel-title"},"通知设置",-1)),P(R(ze),{depth:"3",class:"panel-subtitle"},{default:$(()=>[...a[47]||(a[47]=[k("配置任务完成时的系统通知",-1)])]),_:1})])])]),H("div",La,[H("div",$a,[(U(!0),F(T,null,z(js.value,(e,t)=>(U(),F(T,{key:e.key},[H("div",Ba,[H("div",Ta,[P(R(ze),{strong:""},{default:$(()=>[k(I(e.label),1)]),_:2},1024),P(R(ze),{depth:"3",style:{"font-size":"13px","margin-top":"4px"}},{default:$(()=>[k(I(e.description),1)]),_:2},1024)]),H("div",Ma,[H("div",Ea,[H("div",Da,[P(R(ze),{strong:""},{default:$(()=>[...a[49]||(a[49]=[k("启用任务完成通知",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px"}},{default:$(()=>[k(I(e.implementation),1)]),_:2},1024)]),P(R(Be),{value:zl.value.platforms[e.key].enabled,"onUpdate:value":a=>zl.value.platforms[e.key].enabled=a},null,8,["value","onUpdate:value"])]),zl.value.platforms[e.key].external?(U(),S(R(Le),{key:0,type:"warning",bordered:!1,style:{"margin-top":"16px"}},{default:$(()=>[k(I(e.externalMessage),1)]),_:2},1024)):x("",!0),zl.value.platforms[e.key].enabled?(U(),F("div",Ra,[P(R(ze),{depth:"2",style:{"font-size":"13px","margin-bottom":"12px",display:"block"}},{default:$(()=>[...a[50]||(a[50]=[k(" 选择通知方式 ",-1)])]),_:1}),P(R(Ne),{value:zl.value.platforms[e.key].type,"onUpdate:value":a=>zl.value.platforms[e.key].type=a},{default:$(()=>[P(R(Se),{vertical:""},{default:$(()=>[P(R(Ie),{value:"notification"},{default:$(()=>[H("div",Wa,[P(R(ze),{strong:""},{default:$(()=>[k(I(Ll("notification")),1)]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"12px",display:"block"}},{default:$(()=>[k(I($l("notification")),1)]),_:1})])]),_:1}),P(R(Ie),{value:"browser",disabled:!Il.value},{default:$(()=>[H("div",Ya,[P(R(ze),{strong:""},{default:$(()=>[k(I(Ll("browser")),1)]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"12px",display:"block"}},{default:$(()=>[k(I($l("browser")),1)]),_:1})])]),_:1},8,["disabled"]),P(R(Ie),{value:"dialog"},{default:$(()=>[H("div",Ja,[P(R(ze),{strong:""},{default:$(()=>[k(I(Ll("dialog")),1)]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"12px",display:"block"}},{default:$(()=>[k(I($l("dialog")),1)]),_:1})])]),_:1})]),_:1})]),_:1},8,["value","onUpdate:value"]),"claude"===e.key&&"darwin"===jl.value?(U(),S(R(Le),{key:0,type:"info",bordered:!1,style:{"margin-top":"16px"},"show-icon":!1},{default:$(()=>[H("div",qa,[P(R(ze),{strong:""},{default:$(()=>[...a[51]||(a[51]=[k("[TIP] 更好的通知体验",-1)])]),_:1}),P(R(ze),{depth:"3",style:{display:"block","margin-top":"4px","font-size":"12px"}},{default:$(()=>[...a[52]||(a[52]=[k(" 安装 terminal-notifier 后,点击通知可自动打开终端 ",-1)])]),_:1}),P(R(ze),{code:"",style:{display:"block","margin-top":"8px","font-size":"12px"}},{default:$(()=>[...a[53]||(a[53]=[k(" brew install terminal-notifier ",-1)])]),_:1})])]),_:1})):x("",!0),"browser"===zl.value.platforms[e.key].type?(U(),S(R(Le),{key:1,type:"info",bordered:!1,style:{"margin-top":"16px"}},{default:$(()=>[k(" 当前权限状态:"+I(Al.value),1)]),_:1})):x("",!0)])):x("",!0)])]),t<js.value.length-1?(U(),S(R(be),{key:0})):x("",!0)],64))),128)),P(R(be)),H("div",Fa,[H("div",Ha,[P(R(ze),{strong:""},{default:$(()=>[...a[54]||(a[54]=[k("远程通知渠道",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px","margin-top":"4px"}},{default:$(()=>[...a[55]||(a[55]=[k(" 支持服务端注册的远程通知渠道 ",-1)])]),_:1})]),H("div",Va,[H("div",Xa,[P(R(_e),{value:Ol.value,"onUpdate:value":a[2]||(a[2]=e=>Ol.value=e),options:Ul.value,size:"small",style:{"max-width":"220px"}},null,8,["value","options"]),P(R(f),{size:"small",secondary:"",type:"primary",onClick:Tl},{icon:$(()=>[P(R(c),null,{default:$(()=>[P(R(te))]),_:1})]),default:$(()=>[a[56]||(a[56]=k(" 添加渠道 ",-1))]),_:1})]),0===zl.value.remoteNotifications.providers.length?(U(),S(R($e),{key:0,description:"还没有远程通知渠道",style:{padding:"20px 0"}})):x("",!0),(U(!0),F(T,null,z(zl.value.remoteNotifications.providers,e=>(U(),F("div",{key:e.id,class:"remote-provider-card"},[H("div",Za,[H("div",Ka,[H("div",Ga,I(kl(e.type)),1),H("div",Qa,[H("div",et,[P(R(ze),{strong:""},{default:$(()=>[k(I(e.name||xl(e.type)),1)]),_:2},1024),P(R(De),{size:"tiny",bordered:!1,type:e.enabled?"success":"default"},{default:$(()=>[k(I(e.enabled?"已启用":"未启用"),1)]),_:2},1032,["type"])]),P(R(ze),{depth:"3",style:{"font-size":"12px",display:"block"}},{default:$(()=>{return[k(I((a=e.type,wl(a)?.description||"")),1)];var a}),_:2},1024)])]),P(R(Se),{size:"small",align:"center"},{default:$(()=>[P(R(Be),{value:e.enabled,"onUpdate:value":a=>e.enabled=a,size:"small"},null,8,["value","onUpdate:value"]),P(R(f),{size:"small",quaternary:"",circle:"",type:"error",onClick:a=>{return t=e.id,void(zl.value.remoteNotifications.providers=zl.value.remoteNotifications.providers.filter(e=>e.id!==t));var t}},{icon:$(()=>[P(R(c),null,{default:$(()=>[P(R(ve))]),_:1})]),_:1},8,["onClick"])]),_:2},1024)]),H("div",at,[H("div",tt,[a[57]||(a[57]=H("span",{class:"remote-field-label"},"渠道名称",-1)),P(R(Ee),{value:e.name,"onUpdate:value":a=>e.name=a,size:"small",placeholder:"例如:我的飞书"},null,8,["value","onUpdate:value"])]),H("div",lt,[P(Ze,{provider:e,definition:wl(e.type)},null,8,["provider","definition"])])]),H("div",st,[P(R(f),{size:"small",secondary:"",loading:Sl.value===e.id,onClick:a=>async function(e){Sl.value=e.id;try{const a=await fetch("/api/hooks/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})}),t=await a.json().catch(()=>({}));if(!a.ok)throw new Error(t.error||"测试通知发送失败");Te.success(t.message||"测试通知已发送")}catch(a){Te.error("测试失败:"+a.message)}finally{Sl.value=""}}(e)},{default:$(()=>[...a[58]||(a[58]=[k(" 测试 ",-1)])]),_:1},8,["loading","onClick"]),P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>{return[k(I((a=e.type,wl(a)?.hint||"")),1)];var a}),_:2},1024)])]))),128))])])])]),H("div",nt,[P(R(Se),{justify:"end"},{default:$(()=>[P(R(f),{size:"large",onClick:a[3]||(a[3]=e=>d.value=!1)},{default:$(()=>[...a[59]||(a[59]=[k(" 取消 ",-1)])]),_:1}),P(R(f),{type:"primary",size:"large",loading:Pl.value,disabled:JSON.stringify(zl.value)===JSON.stringify(Cl.value),onClick:Js},{icon:$(()=>[P(R(c),null,{default:$(()=>[P(R(se))]),_:1})]),default:$(()=>[a[60]||(a[60]=k(" 保存设置 ",-1))]),_:1},8,["loading","disabled"])]),_:1})])],512),[[B,"notification"===p.value]]),J(H("div",it,[H("div",ot,[H("div",rt,[P(R(c),{size:"24",color:"var(--text-secondary)"},{default:$(()=>[P(R(re))]),_:1}),H("div",null,[a[62]||(a[62]=H("h3",{class:"panel-title"},"高级设置",-1)),P(R(ze),{depth:"3",class:"panel-subtitle"},{default:$(()=>[...a[61]||(a[61]=[k("端口配置和高级选项",-1)])]),_:1})])])]),H("div",ut,[H("div",dt,[H("div",ct,[H("div",pt,[P(R(ze),{strong:""},{default:$(()=>[...a[63]||(a[63]=[k("端口配置",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px","margin-top":"4px"}},{default:$(()=>[...a[64]||(a[64]=[k(" 修改后需要重启服务器才能生效 ",-1)])]),_:1})]),H("div",vt,[(U(!0),F(T,null,z(_.value,e=>(U(),F("div",{key:e.key,class:"port-field"},[P(R(ze),{depth:"3",style:{"font-size":"13px","margin-bottom":"6px"}},{default:$(()=>[k(I(e.label),1)]),_:2},1024),P(R(Ue),{value:b.value[e.key],"onUpdate:value":a=>b.value[e.key]=a,min:1024,max:65535,"show-button":!1,placeholder:String(e.defaultPort)},{prefix:$(()=>[P(R(c),null,{default:$(()=>[P(R(re))]),_:1})]),_:1},8,["value","onUpdate:value","placeholder"])]))),128))])]),P(R(be)),H("div",ft,[H("div",mt,[P(R(ze),{strong:""},{default:$(()=>[...a[65]||(a[65]=[k("负载均衡",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px","margin-top":"4px"}},{default:$(()=>[...a[66]||(a[66]=[k(" 多渠道负载均衡时的分配策略 ",-1)])]),_:1})]),H("div",yt,[H("div",gt,[H("div",ht,[P(R(ze),{depth:"2",style:{"font-size":"13px"}},{default:$(()=>[...a[67]||(a[67]=[k("多渠道负载会话绑定",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[68]||(a[68]=[k("开启后同一对话始终使用同一渠道,保证上下文连续性",-1)])]),_:1})]),P(R(Be),{value:qe.value.enableSessionBinding,"onUpdate:value":[a[4]||(a[4]=e=>qe.value.enableSessionBinding=e),Rs],size:"medium"},null,8,["value"])])])]),P(R(be)),H("div",bt,[H("div",wt,[P(R(ze),{strong:""},{default:$(()=>[...a[69]||(a[69]=[k("日志和性能",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px","margin-top":"4px"}},{default:$(()=>[...a[70]||(a[70]=[k(" 控制日志显示和数据刷新行为 ",-1)])]),_:1})]),H("div",xt,[H("div",kt,[H("div",_t,[P(R(ze),{depth:"2",style:{"font-size":"13px"}},{default:$(()=>[...a[71]||(a[71]=[k("实时日志保留数量",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[72]||(a[72]=[k("超过此数量将自动清理旧日志",-1)])]),_:1})]),P(R(Ue),{value:qe.value.maxLogs,"onUpdate:value":a[5]||(a[5]=e=>qe.value.maxLogs=e),min:50,max:500,step:10,style:{width:"140px"}},{suffix:$(()=>[P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[73]||(a[73]=[k("条",-1)])]),_:1})]),_:1},8,["value"])]),H("div",zt,[H("div",Ct,[P(R(ze),{depth:"2",style:{"font-size":"13px"}},{default:$(()=>[...a[74]||(a[74]=[k("统计数据刷新间隔",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[75]||(a[75]=[k("自动刷新今日统计的时间间隔",-1)])]),_:1})]),P(R(Ue),{value:qe.value.statsInterval,"onUpdate:value":a[6]||(a[6]=e=>qe.value.statsInterval=e),min:10,max:300,step:5,style:{width:"140px"}},{suffix:$(()=>[P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[76]||(a[76]=[k("秒",-1)])]),_:1})]),_:1},8,["value"])]),H("div",Pt,[H("div",St,[P(R(ze),{depth:"2",style:{"font-size":"13px"}},{default:$(()=>[...a[77]||(a[77]=[k("CLI 原生会话日志",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[78]||(a[78]=[k("读取各 CLI 工具自己的会话日志,配置保存后立即生效",-1)])]),_:1})]),P(R(Be),{value:qe.value.nativeCliLogs.enabled,"onUpdate:value":a[7]||(a[7]=e=>qe.value.nativeCliLogs.enabled=e),size:"medium"},null,8,["value"])]),H("div",Ot,[H("div",Ut,[P(R(ze),{depth:"2",style:{"font-size":"13px"}},{default:$(()=>[...a[79]||(a[79]=[k("CLI 原生日志读取间隔",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[80]||(a[80]=[k("轮询原生会话日志的时间间隔",-1)])]),_:1})]),P(R(Ue),{value:qe.value.nativeCliLogs.intervalSeconds,"onUpdate:value":a[8]||(a[8]=e=>qe.value.nativeCliLogs.intervalSeconds=e),min:1,max:60,step:1,style:{width:"140px"}},{suffix:$(()=>[P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[81]||(a[81]=[k("秒",-1)])]),_:1})]),_:1},8,["value"])])])]),P(R(be)),H("div",jt,[H("div",Nt,[P(R(ze),{strong:""},{default:$(()=>[...a[82]||(a[82]=[k("开机自启",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px","margin-top":"4px"}},{default:$(()=>[...a[83]||(a[83]=[k(" 启用此选项后,重启电脑时 coding-tool-x 会自动启动 ",-1)])]),_:1})]),H("div",It,[H("div",At,[H("div",Lt,[P(R(ze),{strong:"",style:{flex:"1"}},{default:$(()=>[k(I(Ae.value),1)]),_:1}),ge.value?(U(),S(R(f),{key:1,type:"warning",size:"small",loading:je.value,onClick:Ks},{icon:$(()=>[P(R(c),null,{default:$(()=>[P(R(fe))]),_:1})]),default:$(()=>[a[85]||(a[85]=k(" 禁用自启 ",-1))]),_:1},8,["loading"])):(U(),S(R(f),{key:0,type:"primary",size:"small",loading:je.value,onClick:Zs},{icon:$(()=>[P(R(c),null,{default:$(()=>[P(R(ye))]),_:1})]),default:$(()=>[a[84]||(a[84]=k(" 启用自启 ",-1))]),_:1},8,["loading"]))]),P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[k(I(We.value),1)]),_:1})])])])])]),H("div",$t,[P(R(Se),{justify:"end"},{default:$(()=>[P(R(f),{size:"large",onClick:a[9]||(a[9]=e=>d.value=!1)},{default:$(()=>[...a[86]||(a[86]=[k(" 取消 ",-1)])]),_:1}),P(R(f),{type:"primary",size:"large",loading:C.value,disabled:!Cs.value,onClick:Vs},{icon:$(()=>[P(R(c),null,{default:$(()=>[P(R(se))]),_:1})]),default:$(()=>[a[87]||(a[87]=k(" 保存端口配置 ",-1))]),_:1},8,["loading","disabled"])]),_:1})])],512),[[B,"advanced"===p.value]]),J(H("div",Bt,[H("div",Tt,[H("div",Mt,[P(R(c),{size:"24",color:"var(--text-secondary)"},{default:$(()=>[P(R(pe))]),_:1}),H("div",null,[a[89]||(a[89]=H("h3",{class:"panel-title"},"安全设置",-1)),P(R(ze),{depth:"3",class:"panel-subtitle"},{default:$(()=>[...a[88]||(a[88]=[k("设置访问密码,保护面板访问",-1)])]),_:1})])])]),H("div",Et,[H("div",Dt,[H("div",Rt,[H("div",Wt,[P(R(ze),{strong:""},{default:$(()=>[...a[90]||(a[90]=[k("访问保护",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px","margin-top":"4px"}},{default:$(()=>[...a[91]||(a[91]=[k(" 启用后,重新打开面板时需要先输入访问密码 ",-1)])]),_:1})]),H("div",Yt,[Ml.value.hasPassword?(U(),S(R(De),{key:0,type:"success",bordered:!1},{default:$(()=>[...a[92]||(a[92]=[k(" 已启用 ",-1)])]),_:1})):(U(),S(R(De),{key:1,type:"warning",bordered:!1},{default:$(()=>[...a[93]||(a[93]=[k(" 未启用 ",-1)])]),_:1}))])]),P(R(be)),H("div",Jt,[H("div",qt,[P(R(ze),{strong:""},{default:$(()=>[k(I(Ml.value.hasPassword?"修改密码":"设置密码"),1)]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"13px","margin-top":"4px"}},{default:$(()=>[...a[94]||(a[94]=[k(" 密码至少 4 位,建议包含数字与字母 ",-1)])]),_:1}),P(R(ze),{depth:"3",style:{"font-size":"12px","margin-top":"4px"}},{default:$(()=>[a[96]||(a[96]=k(" 忘记密码可在终端执行 ",-1)),P(R(ze),{code:""},{default:$(()=>[...a[95]||(a[95]=[k("ctx security reset",-1)])]),_:1}),a[97]||(a[97]=k(" 关闭密码 ",-1))]),_:1})]),H("div",Ft,[Ml.value.hasPassword?(U(),S(R(Ee),{key:0,value:Rl.value.currentPassword,"onUpdate:value":a[10]||(a[10]=e=>Rl.value.currentPassword=e),type:"password",placeholder:"当前密码","show-password-on":"click"},null,8,["value"])):x("",!0),P(R(Ee),{value:Rl.value.newPassword,"onUpdate:value":a[11]||(a[11]=e=>Rl.value.newPassword=e),type:"password",placeholder:"新密码","show-password-on":"click"},null,8,["value"]),P(R(Ee),{value:Rl.value.confirmPassword,"onUpdate:value":a[12]||(a[12]=e=>Rl.value.confirmPassword=e),type:"password",placeholder:"确认新密码","show-password-on":"click"},null,8,["value"]),Yl.value?(U(),S(R(ze),{key:1,depth:"3",class:"security-error"},{default:$(()=>[k(I(Yl.value),1)]),_:1})):x("",!0)])])])]),H("div",Ht,[P(R(Se),{justify:"end"},{default:$(()=>[P(R(f),{size:"large",onClick:a[13]||(a[13]=e=>d.value=!1)},{default:$(()=>[...a[98]||(a[98]=[k(" 取消 ",-1)])]),_:1}),P(R(f),{type:"primary",size:"large",loading:Wl.value,disabled:!Jl.value,onClick:Hs},{icon:$(()=>[P(R(c),null,{default:$(()=>[P(R(se))]),_:1})]),default:$(()=>[a[99]||(a[99]=k(" 保存密码 ",-1))]),_:1},8,["loading","disabled"])]),_:1})])],512),[[B,"security"===p.value]]),J(H("div",Vt,[H("div",Xt,[H("div",Zt,[P(R(c),{size:"24",color:"var(--text-secondary)"},{default:$(()=>[P(R(ie))]),_:1}),H("div",null,[a[101]||(a[101]=H("h3",{class:"panel-title"},"模型设置",-1)),P(R(ze),{depth:"3",class:"panel-subtitle"},{default:$(()=>[...a[100]||(a[100]=[k("管理默认测速模型、模型上下文窗口和定价信息",-1)])]),_:1}),P(R(ze),{depth:"3",class:"panel-subtitle"},{default:$(()=>[k(" 价格来源:Models.dev 参考价格(离线快照) · "+I(Fl.value.lastUpdated||"日期未知"),1)]),_:1})])])]),H("div",Kt,[P(R(Oe),{show:Hl.value},{default:$(()=>[H("div",Gt,[H("div",Qt,[P(R(ze),{strong:"",style:{"font-size":"12px",display:"block","margin-bottom":"8px"}},{default:$(()=>[...a[102]||(a[102]=[k("默认测速模型",-1)])]),_:1}),H("div",el,[(U(!0),F(T,null,z(ns.value,e=>(U(),F("div",{key:e.key,class:"speed-test-default-row"},[H("div",al,[P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[k(I(e.label),1)]),_:2},1024)]),P(R(_e),{value:ls.value[e.key],"onUpdate:value":a=>ls.value[e.key]=a,options:bs.value[e.key],placeholder:`选择或输入${e.label}默认测速模型`,disabled:0===(bs.value[e.key]||[]).length,size:"small",filterable:"",tag:""},null,8,["value","onUpdate:value","options","placeholder","disabled"])]))),128))])])]),H("div",tl,[P(R(Ee),{value:Gl.value,"onUpdate:value":a[14]||(a[14]=e=>Gl.value=e),placeholder:"搜索模型 ID...",clearable:"",size:"small",style:{flex:"1","min-width":"0"}},null,8,["value"]),P(R(f),{size:"small",type:"primary",onClick:ds},{icon:$(()=>[P(R(c),null,{default:$(()=>[P(R(te))]),_:1})]),default:$(()=>[a[103]||(a[103]=k(" 新增 ",-1))]),_:1})]),H("div",ll,[P(R(Ne),{value:Ql.value,"onUpdate:value":a[15]||(a[15]=e=>Ql.value=e),size:"small"},{default:$(()=>[P(R(Ie),{value:"all"},{default:$(()=>[...a[104]||(a[104]=[k("全部",-1)])]),_:1}),P(R(Ie),{value:"claude"},{default:$(()=>[...a[105]||(a[105]=[k("Claude",-1)])]),_:1}),P(R(Ie),{value:"openai"},{default:$(()=>[...a[106]||(a[106]=[k("OpenAI",-1)])]),_:1}),P(R(Ie),{value:"gemini"},{default:$(()=>[...a[107]||(a[107]=[k("Gemini",-1)])]),_:1}),P(R(Ie),{value:"compatible"},{default:$(()=>[...a[108]||(a[108]=[k("OpenCode / OMP",-1)])]),_:1}),P(R(Ie),{value:"overrides"},{default:$(()=>[...a[109]||(a[109]=[k("自定义",-1)])]),_:1})]),_:1},8,["value"])]),0===ys.value.length?(U(),F("div",sl,[P(R($e),{description:"没有匹配的模型"})])):(U(),F("div",nl,[(U(!0),F(T,null,z(ys.value,e=>(U(),F("div",{key:e,class:M(["model-card",{expanded:is.value.has(e)}])},[H("div",{class:"model-card-header",onClick:a=>(e=>{is.value.has(e)?is.value.delete(e):is.value.add(e),is.value=new Set(is.value)})(e)},[P(R(c),{size:"14",class:"expand-icon"},{default:$(()=>[P(R(ne))]),_:1}),H("span",ol,I(e),1),Zl.value[e]?(U(),S(R(De),{key:0,type:"warning",size:"tiny",bordered:!1},{default:$(()=>[...a[110]||(a[110]=[k("自定义",-1)])]),_:1})):x("",!0),H("div",{class:"model-card-actions",onClick:a[16]||(a[16]=D(()=>{},["stop"]))},[Zl.value[e]&&vs(e)?(U(),S(R(f),{key:0,size:"tiny",quaternary:"",type:"warning",onClick:a=>async function(e){try{await o(e),delete Zl.value[e],delete Kl.value[e],await ks(),Te.success(`${e} 已重置为内置默认值`)}catch(a){Te.error("重置失败:"+a.message)}}(e)},{default:$(()=>[...a[111]||(a[111]=[k(" 重置 ",-1)])]),_:1},8,["onClick"])):x("",!0),fs(e)?(U(),S(R(f),{key:1,size:"tiny",quaternary:"",type:"error",onClick:a=>async function(e){try{const a=!!Zl.value[e];a&&(await o(e),delete Zl.value[e]),delete Kl.value[e],fs(e)?delete Xl.value[e]:a&&await ks(),Te.success(`已删除模型:${e}`)}catch(a){Te.error("删除失败:"+a.message)}}(e)},{default:$(()=>[...a[112]||(a[112]=[k(" 删除 ",-1)])]),_:1},8,["onClick"])):x("",!0)])],8,il),is.value.has(e)?(U(),F("div",rl,[H("div",ul,[H("div",dl,[P(R(ze),{strong:"",style:{"font-size":"12px",display:"block","margin-bottom":"8px"}},{default:$(()=>[...a[113]||(a[113]=[k("上下文限制",-1)])]),_:1}),H("div",cl,[H("div",null,[P(R(ze),{depth:"3",style:{"font-size":"11px"}},{default:$(()=>[...a[114]||(a[114]=[k("Context 窗口 (tokens)",-1)])]),_:1}),P(R(Ue),{value:ws(e,"limit","context"),"onUpdate:value":a=>xs(e,"limit","context",a),min:1e3,step:1e3,size:"small","show-button":!1,style:{width:"100%"}},null,8,["value","onUpdate:value"])]),H("div",null,[P(R(ze),{depth:"3",style:{"font-size":"11px"}},{default:$(()=>[...a[115]||(a[115]=[k("Max Output (tokens)",-1)])]),_:1}),P(R(Ue),{value:ws(e,"limit","output"),"onUpdate:value":a=>xs(e,"limit","output",a),min:100,step:1e3,size:"small","show-button":!1,style:{width:"100%"}},null,8,["value","onUpdate:value"])])])]),H("div",pl,[P(R(ze),{strong:"",style:{"font-size":"12px",display:"block","margin-bottom":"8px"}},{default:$(()=>[...a[116]||(a[116]=[k("定价(USD / 百万 tokens)",-1)])]),_:1}),H("div",vl,[H("div",null,[P(R(ze),{depth:"3",style:{"font-size":"11px"}},{default:$(()=>[...a[117]||(a[117]=[k("输入价格",-1)])]),_:1}),P(R(Ue),{value:ws(e,"pricing","input"),"onUpdate:value":a=>xs(e,"pricing","input",a),min:0,step:.1,precision:4,size:"small","show-button":!1,style:{width:"100%"}},null,8,["value","onUpdate:value"])]),H("div",null,[P(R(ze),{depth:"3",style:{"font-size":"11px"}},{default:$(()=>[...a[118]||(a[118]=[k("输出价格",-1)])]),_:1}),P(R(Ue),{value:ws(e,"pricing","output"),"onUpdate:value":a=>xs(e,"pricing","output",a),min:0,step:.1,precision:4,size:"small","show-button":!1,style:{width:"100%"}},null,8,["value","onUpdate:value"])]),H("div",null,[P(R(ze),{depth:"3",style:{"font-size":"11px"}},{default:$(()=>[...a[119]||(a[119]=[k("缓存写入价格",-1)])]),_:1}),P(R(Ue),{value:ws(e,"pricing","cacheCreation"),"onUpdate:value":a=>xs(e,"pricing","cacheCreation",a),min:0,step:.1,precision:4,size:"small","show-button":!1,style:{width:"100%"}},null,8,["value","onUpdate:value"])]),H("div",null,[P(R(ze),{depth:"3",style:{"font-size":"11px"}},{default:$(()=>[...a[120]||(a[120]=[k("缓存读取价格",-1)])]),_:1}),P(R(Ue),{value:ws(e,"pricing","cacheRead"),"onUpdate:value":a=>xs(e,"pricing","cacheRead",a),min:0,step:.01,precision:4,size:"small","show-button":!1,style:{width:"100%"}},null,8,["value","onUpdate:value"])])])])])])):x("",!0)],2))),128))]))]),_:1},8,["show"])]),H("div",fl,[P(R(Se),{justify:"end"},{default:$(()=>[P(R(f),{size:"large",onClick:zs,disabled:0===Object.keys(Zl.value).length},{default:$(()=>[...a[121]||(a[121]=[k(" 重置全部 ",-1)])]),_:1},8,["disabled"]),P(R(f),{type:"primary",size:"large",loading:Vl.value,disabled:!rs.value,onClick:_s},{icon:$(()=>[P(R(c),null,{default:$(()=>[P(R(se))]),_:1})]),default:$(()=>[a[122]||(a[122]=k(" 保存设置 ",-1))]),_:1},8,["loading","disabled"])]),_:1})])],512),[[B,"model-settings"===p.value]])])]),P(R(he),{show:es.value,"onUpdate:show":a[24]||(a[24]=e=>es.value=e),preset:"card",title:"新增模型设置",style:{width:"560px"},"mask-closable":!1},{default:$(()=>[P(R(Se),{vertical:"",size:12},{default:$(()=>[H("div",null,[P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[123]||(a[123]=[k("模型 ID",-1)])]),_:1}),P(R(Ee),{value:as.value.modelId,"onUpdate:value":a[17]||(a[17]=e=>as.value.modelId=e),placeholder:"例如:gpt-4.1-mini",clearable:""},null,8,["value"])]),H("div",ml,[H("div",null,[P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[124]||(a[124]=[k("Context 窗口",-1)])]),_:1}),P(R(Ue),{value:as.value.context,"onUpdate:value":a[18]||(a[18]=e=>as.value.context=e),min:1e3,step:1e3,"show-button":!1,style:{width:"100%"}},null,8,["value"])]),H("div",null,[P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[125]||(a[125]=[k("Max Output",-1)])]),_:1}),P(R(Ue),{value:as.value.output,"onUpdate:value":a[19]||(a[19]=e=>as.value.output=e),min:100,step:100,"show-button":!1,style:{width:"100%"}},null,8,["value"])])]),H("div",yl,[H("div",null,[P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[126]||(a[126]=[k("输入价格",-1)])]),_:1}),P(R(Ue),{value:as.value.inputPrice,"onUpdate:value":a[20]||(a[20]=e=>as.value.inputPrice=e),min:0,step:.1,precision:4,"show-button":!1,style:{width:"100%"}},null,8,["value"])]),H("div",null,[P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[127]||(a[127]=[k("输出价格",-1)])]),_:1}),P(R(Ue),{value:as.value.outputPrice,"onUpdate:value":a[21]||(a[21]=e=>as.value.outputPrice=e),min:0,step:.1,precision:4,"show-button":!1,style:{width:"100%"}},null,8,["value"])])]),H("div",gl,[H("div",null,[P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[128]||(a[128]=[k("缓存写入价格",-1)])]),_:1}),P(R(Ue),{value:as.value.cacheCreationPrice,"onUpdate:value":a[22]||(a[22]=e=>as.value.cacheCreationPrice=e),min:0,step:.1,precision:4,"show-button":!1,style:{width:"100%"}},null,8,["value"])]),H("div",null,[P(R(ze),{depth:"3",style:{"font-size":"12px"}},{default:$(()=>[...a[129]||(a[129]=[k("缓存读取价格",-1)])]),_:1}),P(R(Ue),{value:as.value.cacheReadPrice,"onUpdate:value":a[23]||(a[23]=e=>as.value.cacheReadPrice=e),min:0,step:.01,precision:4,"show-button":!1,style:{width:"100%"}},null,8,["value"])])]),us.value?(U(),S(R(ze),{key:0,depth:"3",class:"security-error"},{default:$(()=>[k(I(us.value),1)]),_:1})):x("",!0),P(R(Se),{justify:"end"},{default:$(()=>[P(R(f),{onClick:cs},{default:$(()=>[...a[130]||(a[130]=[k("取消",-1)])]),_:1}),P(R(f),{type:"primary",disabled:!!us.value,onClick:ps},{default:$(()=>[...a[131]||(a[131]=[k(" 新增 ",-1)])]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["show"])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-f0261ba5"]]);export{hl as default};
@@ -1 +1 @@
1
- import{t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{O as r,W as e,b as s,et as l,mt as t,r as o,w as i}from"./vue-vendor-BqZbbXHA.js";import{O as m}from"./light-0eavxNvt.js";import{t as p}from"./SkillsPanel-rqnqAOGL.js";import{jt as u}from"./index-BKlAWTH-.js";var f={class:"skill-manager"},n=a({__name:"SkillManager",setup(a){const n=o(),{byCapability:d}=u(),v=s(()=>d("skills").map(a=>a.key)),y=s(()=>{const a=Array.isArray(n.query.platform)?n.query.platform[0]:n.query.platform;return v.value.includes(a)?a:""});return(a,s)=>(e(),i("div",f,[r(t(m),{title:"Skills 技能管理",bordered:!1},{default:l(()=>[r(p,{"in-drawer":!1,"hide-back":!0,platform:y.value},null,8,["platform"])]),_:1})]))}},[["__scopeId","data-v-350fb0fd"]]);export{n as default};
1
+ import{t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{O as r,W as e,b as s,et as l,mt as t,r as o,w as i}from"./vue-vendor-BqZbbXHA.js";import{O as m}from"./light-C2X7hegj.js";import{t as p}from"./SkillsPanel-B9qzRqjd.js";import{Et as u}from"./index-BlUXw84U.js";var f={class:"skill-manager"},n=a({__name:"SkillManager",setup(a){const n=o(),{byCapability:d}=u(),v=s(()=>d("skills").map(a=>a.key)),y=s(()=>{const a=Array.isArray(n.query.platform)?n.query.platform[0]:n.query.platform;return v.value.includes(a)?a:""});return(a,s)=>(e(),i("div",f,[r(t(m),{title:"Skills 技能管理",bordered:!1},{default:l(()=>[r(p,{"in-drawer":!1,"hide-back":!0,platform:y.value},null,8,["platform"])]),_:1})]))}},[["__scopeId","data-v-350fb0fd"]]);export{n as default};
@@ -1 +1 @@
1
- import{t as e}from"./_plugin-vue_export-helper-BeLZJZij.js";import{O as a,S as t,W as r,b as s,et as l,mt as o,x as i}from"./vue-vendor-BqZbbXHA.js";import{n as p,t as d}from"./useResponsiveDrawer-V_onl9NV.js";import{t as n}from"./DrawerContent-ChXgZ1Xm.js";import{t as m}from"./SkillsPanel-rqnqAOGL.js";var u=e({__name:"SkillsDrawer",props:{visible:{type:Boolean,default:!1},platform:{type:String,default:""},projectPath:{type:String,default:""}},emits:["update:visible"],setup(e,{emit:u}){const f=e,v=u,{drawerWidth:c}=d(720),h=s({get:()=>f.visible,set:e=>v("update:visible",e)}),w={padding:0,display:"flex",flexDirection:"column",overflow:"hidden"};return(e,s)=>(r(),t(o(p),{show:h.value,"onUpdate:show":s[1]||(s[1]=e=>h.value=e),width:o(c),placement:"right","mask-closable":!0},{default:l(()=>[a(o(n),{closable:"","native-scrollbar":!1,"body-content-style":w},{header:l(()=>[...s[2]||(s[2]=[i("div",{class:"drawer-header"},"技能管理",-1)])]),default:l(()=>[a(m,{"in-drawer":!0,"hide-back":!0,"drawer-visible":h.value,platform:f.platform,"project-path":f.projectPath,onBack:s[0]||(s[0]=e=>h.value=!1)},null,8,["drawer-visible","platform","project-path"])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-a4957f96"]]);export{u as default};
1
+ import{t as e}from"./_plugin-vue_export-helper-BeLZJZij.js";import{O as a,S as t,W as r,b as s,et as l,mt as o,x as i}from"./vue-vendor-BqZbbXHA.js";import{n as p,t as d}from"./useResponsiveDrawer-ChHZrTfl.js";import{t as n}from"./DrawerContent-ChXgZ1Xm.js";import{t as m}from"./SkillsPanel-B9qzRqjd.js";var u=e({__name:"SkillsDrawer",props:{visible:{type:Boolean,default:!1},platform:{type:String,default:""},projectPath:{type:String,default:""}},emits:["update:visible"],setup(e,{emit:u}){const f=e,v=u,{drawerWidth:c}=d(720),h=s({get:()=>f.visible,set:e=>v("update:visible",e)}),w={padding:0,display:"flex",flexDirection:"column",overflow:"hidden"};return(e,s)=>(r(),t(o(p),{show:h.value,"onUpdate:show":s[1]||(s[1]=e=>h.value=e),width:o(c),placement:"right","mask-closable":!0},{default:l(()=>[a(o(n),{closable:"","native-scrollbar":!1,"body-content-style":w},{header:l(()=>[...s[2]||(s[2]=[i("div",{class:"drawer-header"},"技能管理",-1)])]),default:l(()=>[a(m,{"in-drawer":!0,"hide-back":!0,"drawer-visible":h.value,platform:f.platform,"project-path":f.projectPath,onBack:s[0]||(s[0]=e=>h.value=!1)},null,8,["drawer-visible","platform","project-path"])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-a4957f96"]]);export{u as default};
@@ -0,0 +1 @@
1
+ import{N as e,gn as a,gt as l,hn as t,ht as s,i,s as r,t as o}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as n,C as u,D as c,K as d,M as v,O as p,S as f,V as m,W as y,Z as b,_t as h,at as k,b as g,et as w,g as _,ht as j,m as C,mt as P,p as S,r as x,st as z,w as U,x as $}from"./vue-vendor-BqZbbXHA.js";import{r as L,s as T,t as O}from"./platforms-mqqe_82d.js";import{$ as B,At as K,G,K as A,Mt as M,Nt as E,R as H,S as I,U as D,Y as R,et as N,g as q,m as V,rt as F,ut as W}from"./icons-B-AzZoeE.js";import{t as J}from"./use-message-DBsCm7FJ.js";import{O as Z,l as Q,n as Y}from"./light-C2X7hegj.js";import{c as X,n as ee,s as ae,t as le}from"./AssetPathField-CLqalYv-.js";import{n as te,t as se}from"./Upload-e1M9Yp5z.js";import{n as ie,t as re}from"./useResponsiveDrawer-ChHZrTfl.js";import{t as oe}from"./DrawerContent-ChXgZ1Xm.js";import{$ as ne,A as ue,Et as ce,H as de,I as ve,L as pe,M as fe,a as me,c as ye,ct as be,d as he,f as ke,ft as ge,h as we,i as _e,j as je,k as Ce,l as Pe,m as Se,n as xe,o as ze,p as Ue,r as $e,s as Le,st as Te,t as Oe,u as Be,ut as Ke}from"./index-BlUXw84U.js";import{t as Ge}from"./clipboard-B46yyoz_.js";import{t as Ae}from"./markdown-u082bbtj.js";import{t as Me}from"./MarkdownEditor-Ul0bSGj-.js";import{a as Ee,c as He}from"./project-config-BVt5s-pH.js";import{n as Ie,t as De}from"./skill-repo-input-B_fkGlUK.js";var Re=a("p","\n box-sizing: border-box;\n transition: color .3s var(--n-bezier);\n margin: var(--n-margin);\n font-size: var(--n-font-size);\n line-height: var(--n-line-height);\n color: var(--n-text-color);\n",[t("&:first-child","margin-top: 0;"),t("&:last-child","margin-bottom: 0;")]),Ne=n({name:"P",props:Object.assign(Object.assign({},e.props),{depth:[String,Number]}),setup(a){const{mergedClsPrefixRef:t,inlineThemeDisabled:i}=l(a),r=e("Typography","-p",Re,Y,a,t),o=g(()=>{const{depth:e}=a,l=e||"1",{common:{cubicBezierEaseInOut:t},self:{pFontSize:s,pLineHeight:i,pMargin:o,pTextColor:n,[`pTextColor${l}Depth`]:u}}=r.value;return{"--n-bezier":t,"--n-font-size":s,"--n-line-height":i,"--n-margin":o,"--n-text-color":void 0===e?n:u}}),n=i?s("p",g(()=>`${a.depth||""}`),o,a):void 0;return{mergedClsPrefix:t,cssVars:i?void 0:o,themeClass:null==n?void 0:n.themeClass,onRender:null==n?void 0:n.onRender}},render(){var e;return null===(e=this.onRender)||void 0===e||e.call(this),v("p",{class:[`${this.mergedClsPrefix}-p`,this.themeClass],style:this.cssVars},this.$slots)}});function qe(e={}){return Boolean(e?.isLocal||"local"===e?.source)}function Ve(e={}){return Boolean("local-repo"===e?.source||"local"===e?.repoProvider||e?.repoLocalPath)}function Fe(e={}){return Boolean("gitlab"===e?.repoProvider||e?.repoProjectPath)}function We(e={}){return Boolean("github"===e?.repoProvider||(e?.repoOwner||e?.repoName)&&!Fe(e)&&!Ve(e))}function Je(e={}){return e?.protected||"system-installed"===e?.source?"系统":e?.sourceProvider?`${{native:"OMP 原生","omp-plugins":"OMP 插件",claude:"Claude","claude-plugins":"Claude 插件",agents:"Agents",codex:"Codex",opencode:"OpenCode",github:"GitHub",gitlab:"GitLab","local-repo":"本地仓库",remote:"远端",custom:"自定义","cc-tool":"本地技能"}[e.sourceProvider]||e.sourceProvider} · ${"project"===e.sourceScope?"项目":"全局"}`:"native-installed"===e?.source?"原生":Ve(e)?"本地仓库":qe(e)?"本地技能":Fe(e)?"GitLab":We(e)?"GitHub":""}function Ze(e={}){return qe(e)&&!Ve(e)?"":Ve(e)?e?.repoLocalPath||"":Fe(e)?e?.repoProjectPath||[e?.repoOwner,e?.repoName].filter(Boolean).join("/"):We(e)?[e?.repoOwner,e?.repoName].filter(Boolean).join("/"):""}function Qe(e={}){return qe(e)||Ve(e)?null:e?.readmeUrl||e?.repoUrl||null}function Ye(e={}){return Fe(e)?"GitLab":We(e)?"GitHub":"仓库"}function Xe(e={}){const a=Je(e),l=Ze(e);return a&&l?`${a} · ${l}`:a||"未知来源"}var ea={class:"asset-card-main"},aa={class:"asset-card-top"},la={class:"asset-card-title-stack"},ta={class:"asset-card-title-row"},sa={class:"asset-name"},ia={class:"asset-tags"},ra={key:0,class:"asset-description"},oa={class:"asset-meta"},na={class:"asset-meta-item mono"},ua=["title"],ca=["href"],da=o({__name:"SkillCard",props:{skill:{type:Object,required:!0},toggling:{type:Boolean,default:!1},panelScope:{type:String,default:"user"}},emits:["click","toggle","approve"],setup:e=>(a,l)=>{return y(),U("div",{class:j(["skill-card asset-card",{"is-enabled":e.skill.enabled,"is-protected":e.skill.protected}]),onClick:l[4]||(l[4]=l=>a.$emit("click",e.skill))},[$("div",ea,[$("div",aa,[$("div",la,[$("div",ta,[$("span",{class:j(["asset-status-dot",{active:e.skill.enabled}])},null,2),$("span",sa,h(e.skill.name),1)]),$("div",ia,[e.skill.enabled?(y(),f(P(Ke),{key:0,type:"success",size:"tiny",bordered:!1},{default:w(()=>[...l[5]||(l[5]=[c("已启用",-1)])]),_:1})):(y(),f(P(Ke),{key:1,type:"default",size:"tiny",bordered:!1},{default:w(()=>[...l[6]||(l[6]=[c("已关闭",-1)])]),_:1})),e.skill.cached?(y(),f(P(Ke),{key:2,type:"info",size:"tiny",bordered:!1},{default:w(()=>[...l[7]||(l[7]=[c("已缓存",-1)])]),_:1})):u("",!0),"approved"===e.skill.trust?(y(),f(P(Ke),{key:3,type:"success",size:"tiny",bordered:!1},{default:w(()=>[...l[8]||(l[8]=[c("已批准",-1)])]),_:1})):u("",!0),"blocked"===e.skill.trust?(y(),f(P(Ke),{key:4,type:"error",size:"tiny",bordered:!1},{default:w(()=>[...l[9]||(l[9]=[c("已阻止",-1)])]),_:1})):u("",!0),"pending"===e.skill.trust?(y(),f(P(Ke),{key:5,type:"warning",size:"tiny",bordered:!1},{default:w(()=>[...l[10]||(l[10]=[c("待审批",-1)])]),_:1})):u("",!0),"needs_review"===e.skill.trust?(y(),f(P(Ke),{key:6,type:"warning",size:"tiny",bordered:!1},{default:w(()=>[...l[11]||(l[11]=[c("需复审",-1)])]),_:1})):u("",!0),e.skill.protected?(y(),f(P(Ke),{key:7,type:"default",size:"tiny",bordered:!1},{default:w(()=>[...l[12]||(l[12]=[c("受保护",-1)])]),_:1})):u("",!0),"unsupported"===e.skill.projection?.state?(y(),f(P(Ke),{key:8,type:"warning",size:"tiny",bordered:!1},{default:w(()=>[...l[13]||(l[13]=[c("不支持投影",-1)])]),_:1})):u("",!0),P(Je)(e.skill)?(y(),f(P(Ke),{key:9,type:"info",size:"tiny",bordered:!1},{default:w(()=>[c(h(P(Je)(e.skill)),1)]),_:1})):u("",!0)])])]),e.skill.description?(y(),U("div",ra,h((t=e.skill.description,s=120,t?.length>s?t.slice(0,s)+"...":t)),1)):u("",!0),$("div",oa,[$("span",na,h(e.skill.directory),1),P(Ze)(e.skill)?(y(),U("span",{key:0,class:"asset-meta-item source-item",title:P(Ze)(e.skill)},h(P(Ze)(e.skill)),9,ua)):u("",!0),P(Qe)(e.skill)?(y(),U("a",{key:1,class:"asset-link",href:P(Qe)(e.skill),target:"_blank",rel:"noopener noreferrer",onClick:l[0]||(l[0]=C(()=>{},["stop"]))},h(P(Ye)(e.skill)),9,ca)):u("",!0)])]),$("div",{class:"asset-card-actions",onClick:l[3]||(l[3]=C(()=>{},["stop"]))},[!["pending","needs_review"].includes(e.skill.trust)||"project"===e.panelScope&&"project"!==e.skill.sourceScope?u("",!0):(y(),f(P(r),{key:0,size:"small",tertiary:"",type:"warning",onClick:l[1]||(l[1]=l=>a.$emit("approve",e.skill))},{default:w(()=>[...l[14]||(l[14]=[c("审批",-1)])]),_:1})),p(P(je),{value:e.skill.enabled,loading:e.toggling,disabled:e.skill.protected||e.skill.readonly||!1===e.skill.managed||!e.skill.cached||"approved"!==e.skill.trust||"unsupported"===e.skill.projection?.state||"project"===e.panelScope&&"project"!==e.skill.sourceScope,"aria-label":`${e.skill.name} 开关`,"onUpdate:value":l[2]||(l[2]=l=>a.$emit("toggle",e.skill,l))},null,8,["value","loading","disabled","aria-label"])])],2);var t,s}},[["__scopeId","data-v-f428a4a6"]]),va={class:"repo-manager"},pa={class:"repo-list"},fa={class:"repo-main"},ma={class:"repo-info"},ya={class:"repo-name-row"},ba={class:"repo-name"},ha={class:"repo-branch"},ka={key:0,class:"repo-auth-hint"},ga={class:"repo-actions"},wa={key:0,class:"empty-hint"},_a={class:"add-repo"},ja={class:"add-form"},Ca={class:"tips"},Pa={class:"recommended"},Sa={class:"recommended-list"},xa=["onClick"],za={class:"rec-info"},Ua={class:"rec-name"},$a={class:"rec-desc"},La={key:0,class:"auth-manager"},Ta={class:"auth-meta"},Oa={class:"auth-meta-row"},Ba={class:"auth-value"},Ka={class:"auth-meta-row"},Ga={class:"auth-value"},Aa={class:"auth-meta-row"},Ma={class:"auth-value"},Ea={class:"auth-actions"},Ha=o({__name:"SkillRepoManager",props:{visible:Boolean,platform:{type:String,default:"claude"}},emits:["update:visible","updated"],setup(e,{emit:a}){const l=e,t=a,s=g({get:()=>l.visible,set:e=>t("update:visible",e)}),o=z([]),n=z(!1),v=z(!1),k=z(!1),C=z(null),x=z(!1),L=z(!1),T=z({token:""}),O=z({input:"",branch:"main"}),B=g(()=>C.value?("gitlab"===C.value.provider?"GitLab":"GitHub")+" 仓库认证":"仓库认证"),K=g(()=>"codex"===l.platform?[{provider:"github",owner:"openai",name:"skills",description:"Codex 官方技能库",branch:"main",directory:"skills/.curated"}]:"opencode"===l.platform?[{provider:"github",owner:"Shakudo-io",name:"opencode-skills",description:"OpenCode 官方技能库(46个技能)",branch:"main",directory:""}]:"gemini"===l.platform?[{provider:"github",owner:"google-gemini",name:"gemini-cli",description:"Gemini 官方技能库",branch:"main",directory:".gemini/skills"}]:[{provider:"github",owner:"anthropics",name:"skills",description:"官方技能库",branch:"main",directory:"skills"},{provider:"github",owner:"ComposioHQ",name:"awesome-claude-skills",description:"社区精选",branch:"master"},{provider:"github",owner:"cexll",name:"myclaude",description:"多智能体工作流",branch:"master"}]);function G(e){const a=e.provider||(e.localPath?"local":e.projectPath?"gitlab":"github"),l=De(e.directory),t=e.branch||"main";return"local"===a?`local:${e.localPath||""}::${l}`:"gitlab"===a?`gitlab:${e.host||"https://gitlab.com"}::${e.projectPath||""}::${t}::${l}`:`github:${e.host||"https://github.com"}::${e.owner||""}/${e.name||""}::${t}::${l}`}function A(e){return"local"===e.provider?e.localPath||e.name||"本地仓库":"gitlab"===e.provider&&e.projectPath||[e.owner,e.name].filter(Boolean).join("/")}function M(e){const a=[];return"local"===e.provider?a.push("本地仓库"):"gitlab"===e.provider?(a.push("GitLab"),e.host&&a.push(e.host.replace(/^https?:\/\//,""))):a.push("GitHub"),e.branch&&a.push(e.branch),e.directory&&a.push(`目录: ${e.directory}`),a.join(" · ")}function H(e){return"github"===e?.provider||"gitlab"===e?.provider}function I(e){return H(e)?e.hasToken?`仓库 Token: ${e.tokenPreview||"已配置"}`:"gitlab"===e.provider?"未配置仓库 Token,将回退到全局 Token、glab 或 git credential":"未配置仓库 Token,可选配置后优先用于 GitHub API 访问":""}function D(){k.value=!1,C.value=null,T.value.token="",x.value=!1,L.value=!1}const R=g(()=>Ie(O.value.input)),N=g(()=>!!R.value);async function q(){n.value=!0;try{const e=await Le(l.platform);e.success&&(o.value=e.repos||[])}catch(e){Ce.error("加载仓库失败: "+e.message)}finally{n.value=!1}}async function V(){if(!N.value)return;const e=R.value;v.value=!0;try{const a=await Oe({...e,branch:O.value.branch||"main",enabled:!0},l.platform);a.success&&(o.value=a.repos,O.value.input="",O.value.branch="main",Ce.success("仓库已保存,请手动点击“刷新远端”获取 Skill"),t("updated"))}catch(a){Ce.error("添加失败: "+a.message)}finally{v.value=!1}}async function F(){const e=C.value,a=T.value.token.trim();if(e&&a){x.value=!0;try{const s=await we(e,{token:a},l.platform);s.success&&(o.value=s.repos||[],Ce.success("仓库 Token 已保存"),t("updated"),D())}catch(s){Ce.error("保存 Token 失败: "+s.message)}finally{x.value=!1}}}async function W(){const e=C.value;if(e){L.value=!0;try{const a=await we(e,{clearToken:!0},l.platform);a.success&&(o.value=a.repos||[],Ce.success("仓库 Token 已清除"),t("updated"),D())}catch(a){Ce.error("清除 Token 失败: "+a.message)}finally{L.value=!1}}}function J(e){const a=G(e);return o.value.some(e=>G(e)===a)}function Z(){D(),t("update:visible",!1)}return b(()=>l.visible,e=>{e&&q()}),b(()=>l.platform,()=>{l.visible&&q()}),m(()=>{l.visible&&q()}),(e,a)=>(y(),U(_,null,[p(P(Q),{show:s.value,"onUpdate:show":a[2]||(a[2]=e=>s.value=e),preset:"card",title:"技能仓库管理",bordered:!1,closable:!0,style:{width:"480px","max-width":"90vw"},onClose:Z},{default:w(()=>[$("div",va,[$("div",pa,[p(P(fe),{show:n.value},{default:w(()=>[(y(!0),U(_,null,d(o.value,e=>(y(),U("div",{key:e.id||`${e.owner}/${e.name}/${e.directory||""}`,class:"repo-item"},[$("div",fa,[p(P(je),{value:e.enabled,size:"small","onUpdate:value":a=>async function(e,a){try{const s=await Ue(e,a,l.platform);s.success&&(o.value=s.repos,t("updated"))}catch(s){Ce.error("操作失败: "+s.message)}}(e,a)},null,8,["value","onUpdate:value"]),$("div",ma,[$("div",ya,[$("div",ba,h(A(e)),1),H(e)?(y(),f(P(Ke),{key:0,size:"tiny",type:e.hasToken?"success":"default",bordered:!1},{default:w(()=>[c(h(e.hasToken?"已配 Token":"未配 Token"),1)]),_:2},1032,["type"])):u("",!0)]),$("div",ha,h(M(e)),1),H(e)?(y(),U("div",ka,h(I(e)),1)):u("",!0)])]),$("div",ga,[H(e)?(y(),f(P(r),{key:0,text:"",type:"primary",size:"tiny",focusable:!1,onClick:a=>function(e){H(e)&&(C.value=e,T.value.token="",k.value=!0)}(e)},{default:w(()=>[...a[5]||(a[5]=[c(" 认证 ",-1)])]),_:1},8,["onClick"])):u("",!0),p(P(r),{text:"",type:"error",size:"tiny",focusable:!1,onClick:a=>async function(e){try{const a=await Be(e,l.platform);a.success&&(o.value=a.repos,Ce.success("仓库已删除"),t("updated"))}catch(a){Ce.error("删除失败: "+a.message)}}(e)},{default:w(()=>[...a[6]||(a[6]=[c(" 删除 ",-1)])]),_:1},8,["onClick"])])]))),128)),0===o.value.length?(y(),U("div",wa," 暂无仓库,请添加 ")):u("",!0)]),_:1},8,["show"])]),$("div",_a,[a[8]||(a[8]=$("div",{class:"add-title"},"添加仓库",-1)),$("div",ja,[p(P(Te),{value:O.value.input,"onUpdate:value":a[0]||(a[0]=e=>O.value.input=e),placeholder:"GitHub/GitLab 仓库地址,或本地路径",size:"small",class:"repo-input",onKeyup:S(V,["enter"])},null,8,["value"]),p(P(Te),{value:O.value.branch,"onUpdate:value":a[1]||(a[1]=e=>O.value.branch=e),placeholder:"分支(本地可忽略)",size:"small",class:"branch-input"},null,8,["value"]),p(P(r),{type:"primary",size:"small",disabled:!N.value,loading:v.value,focusable:!1,onClick:V},{default:w(()=>[...a[7]||(a[7]=[c(" 添加 ",-1)])]),_:1},8,["disabled","loading"])]),a[9]||(a[9]=$("div",{class:"add-hint"}," 支持 `owner/repo`、GitHub/GitLab URL 或 SSH、以及本地路径 ",-1))]),$("div",Ca,[p(P(be),{type:"info",bordered:!1,size:"small"},{default:w(()=>[...a[10]||(a[10]=[c(" 支持 GitHub、GitLab 和本地仓库路径;远程仓库可按仓库单独配置 Token。 ",-1)])]),_:1})]),$("div",Pa,[a[12]||(a[12]=$("div",{class:"recommended-title"},"推荐仓库",-1)),$("div",Sa,[(y(!0),U(_,null,d(K.value,e=>(y(),U("div",{key:e.id||`${e.owner}/${e.name}/${e.directory||""}`,class:j(["recommended-item",{added:J(e)}]),onClick:a=>!J(e)&&async function(e){v.value=!0;try{const a=await Oe({...e,branch:e.branch||"main",directory:e.directory||"",enabled:!0},l.platform);a.success&&(Ce.success("仓库已保存,请手动点击“刷新远端”获取 Skill"),o.value=a.repos,t("updated"))}catch(a){Ce.error("添加失败: "+a.message)}finally{v.value=!1}}(e)},[$("div",za,[$("span",Ua,h(A(e)),1),$("span",$a,h(e.description),1)]),J(e)?(y(),f(P(Ke),{key:0,size:"tiny",type:"success",bordered:!1},{default:w(()=>[...a[11]||(a[11]=[c(" 已添加 ",-1)])]),_:1})):(y(),f(P(i),{key:1,class:"add-icon"},{default:w(()=>[p(P(E))]),_:1}))],10,xa))),128))])])])]),_:1},8,["show"]),p(P(Q),{show:k.value,"onUpdate:show":a[4]||(a[4]=e=>k.value=e),preset:"card",title:B.value,bordered:!1,style:{width:"460px","max-width":"92vw"},onClose:D},{default:w(()=>[C.value?(y(),U("div",La,[p(P(be),{type:"info",bordered:!1,size:"small"},{default:w(()=>{return[c(h((e=C.value,"gitlab"===e?.provider?"私有 GitLab 仓库建议配置仓库级 Private Token;保存后会优先使用当前仓库 Token,再回退到全局环境变量、glab 和 git credential。":"GitHub 仓库可选配置 Personal Access Token;保存后会优先使用当前仓库 Token,再回退到全局环境变量、gh 和 git credential。")),1)];var e}),_:1}),$("div",Ta,[$("div",Oa,[a[13]||(a[13]=$("span",{class:"auth-label"},"仓库",-1)),$("span",Ba,h(A(C.value)),1)]),$("div",Ka,[a[14]||(a[14]=$("span",{class:"auth-label"},"来源",-1)),$("span",Ga,h("gitlab"===C.value.provider?"GitLab":"GitHub"),1)]),$("div",Aa,[a[15]||(a[15]=$("span",{class:"auth-label"},"当前状态",-1)),$("span",Ma,h(C.value.hasToken?`已配置 ${C.value.tokenPreview||""}`:"未配置仓库 Token"),1)])]),p(P(Te),{value:T.value.token,"onUpdate:value":a[3]||(a[3]=e=>T.value.token=e),type:"password","show-password-on":"click",clearable:"",placeholder:"输入此仓库专属 Token",onKeyup:S(F,["enter"])},null,8,["value"]),a[19]||(a[19]=$("div",{class:"auth-footnote"}," 仓库 Token 会优先于全局环境变量、CLI 登录和系统 Git 凭据。 ",-1)),$("div",Ea,[p(P(r),{focusable:!1,onClick:D},{default:w(()=>[...a[16]||(a[16]=[c(" 取消 ",-1)])]),_:1}),C.value.hasToken?(y(),f(P(r),{key:0,type:"warning",secondary:"",focusable:!1,loading:L.value,onClick:W},{default:w(()=>[...a[17]||(a[17]=[c(" 清除 Token ",-1)])]),_:1},8,["loading"])):u("",!0),p(P(r),{type:"primary",focusable:!1,disabled:!T.value.token.trim(),loading:x.value,onClick:F},{default:w(()=>[...a[18]||(a[18]=[c(" 保存 Token ",-1)])]),_:1},8,["disabled","loading"])])])):u("",!0)]),_:1},8,["show","title"])],64))}},[["__scopeId","data-v-059e6be9"]]),Ia={style:{"margin-bottom":"12px"}},Da={class:"file-list"},Ra={class:"file-item"},Na={class:"file-info"},qa={class:"file-path"},Va={key:1,class:"file-size"},Fa={class:"file-actions"},Wa={class:"modal-footer"},Ja=o({__name:"SkillCreateModal",props:{visible:Boolean,platform:{type:String,default:"claude"},scope:{type:String,default:"user"},projectPath:{type:String,default:""}},emits:["update:visible","created"],setup(e,{emit:a}){const l=e,t=g(()=>({...l.projectPath?{cwd:l.projectPath}:{},...l.scope&&"user"!==l.scope?{scope:l.scope}:{}})),s=a,o=g({get:()=>l.visible,set:e=>s("update:visible",e)}),n=z("simple"),v=z(null),m=z({directory:"",name:"",description:"",content:""}),k={directory:[{required:!0,message:"请输入目录名称",trigger:"blur"},{pattern:/^[a-zA-Z0-9_-]+$/,message:"只能包含英文、数字、横杠和下划线",trigger:"blur"}],content:[{required:!0,message:"请输入技能内容",trigger:"blur"}]},C=z(null),S=z({directory:"",files:[]}),x={directory:[{required:!0,message:"请输入目录名称",trigger:"blur"},{pattern:/^[a-zA-Z0-9_-]+$/,message:"只能包含英文、数字、横杠和下划线",trigger:"blur"}]},L=z(!1),T=z(!1),O=z(null),K=z(""),M=z(-1),H=z(!1),I=z(""),D=z(""),R=g(()=>S.value.files.some(e=>"SKILL.md"===e.path));function q(e){const a=e.toLowerCase().substring(e.lastIndexOf("."));return[".md",".txt",".json",".js",".ts",".py",".sh",".yaml",".yml",".toml",".xml",".html",".css"].includes(a)}function V({file:e}){return!0}async function F({file:e,onFinish:a,onError:l}){try{const t=new FileReader;t.onload=l=>{const t=q(e.name);let s=e.name;e.file?.webkitRelativePath&&(s=e.file.webkitRelativePath.split("/").slice(1).join("/")),S.value.files.push({path:s,content:t?l.target.result:btoa(l.target.result),isBase64:!t,size:e.file.size}),a()},t.onerror=l,q(e.name)?t.readAsText(e.file):t.readAsBinaryString(e.file)}catch(t){l()}}function W(){M.value>=0&&(S.value.files[M.value].content=K.value),T.value=!1,O.value=null,K.value="",M.value=-1}function J(){I.value.trim()?S.value.files.some(e=>e.path===I.value)?Ce.warning("文件已存在"):(S.value.files.push({path:I.value,content:D.value,isBase64:!1,size:new Blob([D.value]).size}),H.value=!1,I.value="",D.value=""):Ce.warning("请输入文件路径")}function Y(){const e=`---\nname: "${S.value.directory||"我的技能"}"\ndescription: "技能描述"\n---\n\n# 技能指令\n\n在这里编写你的技能内容...\n`;S.value.files.unshift({path:"SKILL.md",content:e,isBase64:!1,size:new Blob([e]).size})}async function ee(){"simple"===n.value?await async function(){try{await(v.value?.validate())}catch(e){return}L.value=!0;try{const e=await xe({name:m.value.name||m.value.directory,directory:m.value.directory,description:m.value.description,content:m.value.content,...t.value},l.platform);e.success?(Ce.success("技能已缓存,当前为关闭状态,审批后可启用"),s("created"),le()):Ce.error(e.message||"创建失败")}catch(e){Ce.error("创建失败: "+(e.response?.data?.message||e.message))}finally{L.value=!1}}():await async function(){try{await(C.value?.validate())}catch(e){return}if(!R.value)return void Ce.error("必须包含 SKILL.md 文件");L.value=!0;try{const e=await $e({directory:S.value.directory,files:S.value.files.map(e=>({path:e.path,content:e.content,isBase64:e.isBase64})),...t.value},l.platform);e.success?(Ce.success(`技能已缓存,当前为关闭状态,包含 ${e.fileCount} 个文件`),s("created"),le()):Ce.error(e.message||"创建失败")}catch(e){Ce.error("创建失败: "+(e.response?.data?.message||e.message))}finally{L.value=!1}}()}function le(){s("update:visible",!1)}return b(()=>l.visible,e=>{e||(n.value="simple",m.value={directory:"",name:"",description:"",content:""},S.value={directory:"",files:[]},O.value=null,K.value="",M.value=-1,I.value="",D.value="")}),(e,a)=>(y(),f(P(Q),{show:o.value,"onUpdate:show":a[14]||(a[14]=e=>o.value=e),preset:"card",title:"创建自定义技能",bordered:!1,closable:!0,style:{width:"680px","max-width":"90vw"},onClose:le},{footer:w(()=>[$("div",Wa,[p(P(r),{onClick:le},{default:w(()=>[...a[24]||(a[24]=[c("取消",-1)])]),_:1}),p(P(r),{type:"primary",loading:L.value,onClick:ee},{default:w(()=>[...a[25]||(a[25]=[c(" 创建 ",-1)])]),_:1},8,["loading"])])]),default:w(()=>[p(P(ae),{value:n.value,"onUpdate:value":a[6]||(a[6]=e=>n.value=e),type:"line",animated:""},{default:w(()=>[p(P(X),{name:"simple",tab:"简单模式"},{default:w(()=>[p(P(pe),{ref_key:"simpleFormRef",ref:v,model:m.value,rules:k,"label-placement":"top","label-width":"auto"},{default:w(()=>[p(P(ve),{label:"目录名称",path:"directory"},{feedback:w(()=>[...a[15]||(a[15]=[c(" 只能包含英文、数字、横杠和下划线 ",-1)])]),default:w(()=>[p(P(Te),{value:m.value.directory,"onUpdate:value":a[0]||(a[0]=e=>m.value.directory=e),placeholder:"例如: my-custom-skill",maxlength:50},null,8,["value"])]),_:1}),p(P(ve),{label:"技能名称",path:"name"},{default:w(()=>[p(P(Te),{value:m.value.name,"onUpdate:value":a[1]||(a[1]=e=>m.value.name=e),placeholder:"显示名称,可以是中文",maxlength:100},null,8,["value"])]),_:1}),p(P(ve),{label:"描述",path:"description"},{default:w(()=>[p(P(Te),{value:m.value.description,"onUpdate:value":a[2]||(a[2]=e=>m.value.description=e),type:"textarea",placeholder:"简短描述这个技能的用途",rows:2,maxlength:200},null,8,["value"])]),_:1}),p(P(ve),{label:"技能内容 (提示词,支持 Markdown)",path:"content"},{default:w(()=>[p(Me,{modelValue:m.value.content,"onUpdate:modelValue":a[3]||(a[3]=e=>m.value.content=e),rows:10,"min-height":200,placeholder:"输入技能的详细指令内容,支持 Markdown 格式..."},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1}),p(P(X),{name:"advanced",tab:"高级模式 (多文件)"},{default:w(()=>[p(P(pe),{ref_key:"advancedFormRef",ref:C,model:S.value,rules:x,"label-placement":"top","label-width":"auto"},{default:w(()=>[p(P(ve),{label:"目录名称",path:"directory"},{feedback:w(()=>[...a[16]||(a[16]=[c(" 只能包含英文、数字、横杠和下划线 ",-1)])]),default:w(()=>[p(P(Te),{value:S.value.directory,"onUpdate:value":a[4]||(a[4]=e=>S.value.directory=e),placeholder:"例如: my-custom-skill",maxlength:50},null,8,["value"])]),_:1}),p(P(ve),{label:"文件上传"},{default:w(()=>[p(P(se),{multiple:"","directory-dnd":"","show-file-list":!1,"custom-request":F,onBeforeUpload:V},{default:w(()=>[p(P(te),null,{default:w(()=>[$("div",Ia,[p(P(i),{size:"48",depth:3},{default:w(()=>[p(P(A))]),_:1})]),p(P(ue),{style:{"font-size":"16px"}},{default:w(()=>[...a[17]||(a[17]=[c(" 拖放文件或文件夹到此处,或点击选择 ",-1)])]),_:1}),p(P(Ne),{depth:"3",style:{margin:"8px 0 0 0"}},{default:w(()=>[...a[18]||(a[18]=[c(" 必须包含 SKILL.md 文件 ",-1)])]),_:1})]),_:1})]),_:1})]),_:1}),S.value.files.length>0?(y(),f(P(ve),{key:0,label:"已添加的文件"},{default:w(()=>[$("div",Da,[(y(!0),U(_,null,d(S.value.files,(e,l)=>(y(),f(P(Z),{key:e.path,size:"small",class:j({"skill-md":"SKILL.md"===e.path})},{default:w(()=>{return[$("div",Ra,[$("div",Na,[p(P(i),{size:16,class:"file-icon"},{default:w(()=>[e.isDirectory?(y(),f(P(G),{key:1})):(y(),f(P(N),{key:0}))]),_:2},1024),$("span",qa,h(e.path),1),"SKILL.md"===e.path?(y(),f(P(Ke),{key:0,size:"small",type:"primary"},{default:w(()=>[...a[19]||(a[19]=[c("必需",-1)])]),_:1})):u("",!0),e.size?(y(),U("span",Va,h((t=e.size,t<1024?t+" B":t<1048576?(t/1024).toFixed(1)+" KB":(t/1048576).toFixed(1)+" MB")),1)):u("",!0)]),$("div",Fa,[q(e.path)?(y(),f(P(r),{key:0,size:"small",text:"",onClick:e=>function(e){const a=S.value.files[e];O.value=a,K.value=a.content,M.value=e,T.value=!0}(l)},{default:w(()=>[...a[20]||(a[20]=[c(" 编辑 ",-1)])]),_:1},8,["onClick"])):u("",!0),"SKILL.md"!==e.path?(y(),f(P(r),{key:1,size:"small",text:"",type:"error",onClick:e=>function(e){S.value.files.splice(e,1)}(l)},{default:w(()=>[...a[21]||(a[21]=[c(" 删除 ",-1)])]),_:1},8,["onClick"])):u("",!0)])])];var t}),_:2},1032,["class"]))),128))])]),_:1})):u("",!0),p(P(ve),null,{default:w(()=>[p(P(de),null,{default:w(()=>[p(P(r),{onClick:a[5]||(a[5]=e=>H.value=!0)},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(E))]),_:1})]),default:w(()=>[a[22]||(a[22]=c(" 添加文件 ",-1))]),_:1}),R.value?u("",!0):(y(),f(P(r),{key:0,onClick:Y},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(B))]),_:1})]),default:w(()=>[a[23]||(a[23]=c(" 添加 SKILL.md 模板 ",-1))]),_:1}))]),_:1})]),_:1})]),_:1},8,["model"])]),_:1})]),_:1},8,["value"]),p(P(Q),{show:T.value,"onUpdate:show":a[9]||(a[9]=e=>T.value=e),preset:"card",title:"编辑文件",style:{width:"600px","max-width":"90vw"}},{footer:w(()=>[p(P(de),{justify:"end"},{default:w(()=>[p(P(r),{onClick:a[8]||(a[8]=e=>T.value=!1)},{default:w(()=>[...a[26]||(a[26]=[c("取消",-1)])]),_:1}),p(P(r),{type:"primary",onClick:W},{default:w(()=>[...a[27]||(a[27]=[c("保存",-1)])]),_:1})]),_:1})]),default:w(()=>[p(P(ve),{label:O.value?.path||"文件内容"},{default:w(()=>[p(P(Te),{value:K.value,"onUpdate:value":a[7]||(a[7]=e=>K.value=e),type:"textarea",rows:15,placeholder:"输入文件内容...",style:{"font-family":"monospace"}},null,8,["value"])]),_:1},8,["label"])]),_:1},8,["show"]),p(P(Q),{show:H.value,"onUpdate:show":a[13]||(a[13]=e=>H.value=e),preset:"card",title:"添加新文件",style:{width:"600px","max-width":"90vw"}},{footer:w(()=>[p(P(de),{justify:"end"},{default:w(()=>[p(P(r),{onClick:a[12]||(a[12]=e=>H.value=!1)},{default:w(()=>[...a[29]||(a[29]=[c("取消",-1)])]),_:1}),p(P(r),{type:"primary",onClick:J},{default:w(()=>[...a[30]||(a[30]=[c("添加",-1)])]),_:1})]),_:1})]),default:w(()=>[p(P(pe),{"label-placement":"top"},{default:w(()=>[p(P(ve),{label:"文件路径"},{feedback:w(()=>[...a[28]||(a[28]=[c(" 可以包含子目录,如 scripts/helper.sh ",-1)])]),default:w(()=>[p(P(Te),{value:I.value,"onUpdate:value":a[10]||(a[10]=e=>I.value=e),placeholder:"例如: scripts/helper.sh 或 README.md"},null,8,["value"])]),_:1}),p(P(ve),{label:"文件内容"},{default:w(()=>[p(P(Te),{value:D.value,"onUpdate:value":a[11]||(a[11]=e=>D.value=e),type:"textarea",rows:10,placeholder:"输入文件内容...",style:{"font-family":"monospace"}},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["show"])]),_:1},8,["show"]))}},[["__scopeId","data-v-d5c75ec8"]]),Za={class:"asset-detail-drawer-header"},Qa={class:"asset-detail-identity"},Ya={class:"asset-detail-heading"},Xa={class:"asset-detail-name"},el={class:"asset-detail-meta"},al={key:3,class:"asset-detail-subtle"},ll={class:"asset-detail-body"},tl={key:0,class:"asset-detail-loading"},sl={key:1,class:"asset-detail-error"},il={class:"asset-detail-container"},rl={class:"asset-detail-info-section"},ol={class:"asset-detail-description"},nl={key:0,class:"asset-detail-info-section"},ul={class:"asset-detail-box"},cl=["href"],dl={key:1},vl={class:"asset-detail-info-section"},pl={class:"asset-detail-actions"},fl=["innerHTML"],ml={key:1,class:"asset-detail-empty"},yl={__name:"SkillDetailDrawer",props:{visible:{type:Boolean,default:!1},skill:{type:Object,default:null},platform:{type:String,default:"claude"},scope:{type:String,default:"user"},projectPath:{type:String,default:""}},emits:["update:visible","updated"],setup(e,{emit:a}){const{drawerWidth:l}=re(600),t=e,s=a,o=g({get:()=>t.visible,set:e=>s("update:visible",e)}),n=z(!1),d=z(""),v=z(null),m=z(!1),k=z(0),_={height:"100%",minHeight:0,overflow:"hidden"};function j(e){const a=String(e);if("undefined"==typeof document)return a.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi,"").replace(/\son[a-z]+\s*=\s*(['"])[\s\S]*?\1/gi,"").replace(/\s(?:href|src)\s*=\s*(['"])\s*(?:javascript|vbscript|data):[\s\S]*?\1/gi,"");const l=new Set(["a","abbr","b","blockquote","br","code","del","div","em","h1","h2","h3","h4","h5","h6","hr","i","img","input","li","ol","p","pre","span","strong","sub","sup","table","tbody","td","tfoot","th","thead","tr","ul"]),t=new Set(["alt","checked","class","disabled","href","id","rel","src","target","title","type"]),s=(e,a)=>{const l=String(e||"").trim();return!(!l.startsWith("#")&&!l.startsWith("/"))||(!("a"!==a||!/^mailto:/i.test(l))||/^https?:\/\//i.test(l))},i=document.createElement("template");return i.innerHTML=a,i.content.querySelectorAll("*").forEach(e=>{const a=e.tagName.toLowerCase();if(l.has(a))for(const l of[...e.attributes]){const i=l.name.toLowerCase();t.has(i)&&!/^on/i.test(i)?"href"!==i&&"src"!==i||s(l.value,a)||e.removeAttribute(l.name):e.removeAttribute(l.name)}else e.remove()}),i.innerHTML}const C=g(()=>{if(!v.value?.content)return"";try{return j(Ae(v.value.content,{breaks:!0,gfm:!0}))}catch{return j(v.value.content)}}),S=g(()=>v.value?Ze(v.value):""),x=g(()=>v.value?Qe(v.value):""),L=g(()=>v.value?Ye(v.value):""),T=g(()=>v.value?.installPath||v.value?.path||v.value?.fullPath||""),O=g(()=>({...t.projectPath?{cwd:t.projectPath}:{},...t.scope&&"user"!==t.scope?{scope:t.scope}:{}}));async function K(){if(!t.skill?.directory)return;const e=++k.value;n.value=!0,d.value="";try{const l=await me(t.skill.directory,t.platform,(a=t.skill,{id:a.repoId,provider:a.repoProvider,host:a.repoHost,owner:a.repoOwner,name:a.repoName,branch:a.repoBranch||"main",directory:a.repoDirectory||"",projectPath:a.repoProjectPath,localPath:a.repoLocalPath,repoUrl:a.repoUrl}),t.skill.fullDirectory||null,O.value);if(e!==k.value)return;l.success?v.value={...t.skill,...l,source:l.source||t.skill?.source,repoProvider:l.repoProvider||t.skill?.repoProvider,repoOwner:l.repoOwner||t.skill?.repoOwner,repoName:l.repoName||t.skill?.repoName,repoProjectPath:l.repoProjectPath||t.skill?.repoProjectPath,repoLocalPath:l.repoLocalPath||t.skill?.repoLocalPath,repoUrl:l.repoUrl||t.skill?.repoUrl}:d.value=l.message||"加载失败"}catch(l){if(e!==k.value)return;d.value=l.response?.data?.message||l.message||"加载失败"}finally{e===k.value&&(n.value=!1)}var a}async function G(){if(!m.value&&v.value&&v.value.controlKey&&!v.value.protected&&!v.value.readonly&&!1!==v.value.managed&&"approved"===v.value.trust&&"unsupported"!==v.value.projection?.state&&v.value.cached&&("project"!==t.scope||"project"===v.value.sourceScope)){m.value=!0;try{const e="project"===t.scope?await He(t.projectPath,t.platform,v.value.controlKey,!v.value.enabled):await ke(v.value.controlKey,!v.value.enabled,t.platform,O.value);if("needs_approval"===e.status)return void Ce.warning("该技能需要先审批");if("unsupported"===e.status)return void Ce.error("当前平台不支持安全投影");if("conflict"===e.status)return void Ce.warning("目标 Skill 目录已被其他来源占用");if("projection_failed"===e.status)return void Ce.error(e.lastError||"Skill 投影失败");v.value.enabled=e.enabled,v.value.projection=e.projection||v.value.projection,Ce.success(e.enabled?"技能已启用":"技能已关闭"),s("updated")}catch(e){Ce.error("切换失败: "+(e.response?.data?.message||e.message))}finally{m.value=!1}}}async function A(){if(v.value?.controlKey&&["pending","needs_review"].includes(v.value.trust)){m.value=!0;try{const e=await he(v.value.controlKey,"approved",t.platform,O.value);v.value.trust=e.trust,Ce.success("技能已批准,当前仍保持关闭"),s("updated")}catch(e){Ce.error("审批失败: "+(e.response?.data?.message||e.message))}finally{m.value=!1}}}async function E(){if(v.value?.content)try{if("manual"===(await Ge(v.value.content))?.method)return void Ce.warning("自动复制失败,已弹出手动复制框");Ce.success("已复制到剪贴板")}catch{Ce.error("复制失败")}}return b(()=>[t.visible,t.skill],([e,a])=>{e&&a?K():(k.value+=1,n.value=!1,v.value=null,d.value="")}),(a,t)=>(y(),f(P(ie),{show:o.value,"onUpdate:show":t[0]||(t[0]=e=>o.value=e),width:P(l),placement:"right","show-mask":!0},{default:w(()=>[p(P(oe),{closable:"","native-scrollbar":!1,"body-content-style":_},{header:w(()=>[$("div",Za,[$("div",Qa,[p(P(i),{size:20,class:"asset-detail-icon"},{default:w(()=>[p(P(R))]),_:1}),$("div",Ya,[$("span",Xa,h(v.value?.name||e.skill?.name||"技能详情"),1),$("div",el,[v.value?.enabled?(y(),f(P(Ke),{key:0,type:"success",size:"tiny",bordered:!1},{default:w(()=>[...t[1]||(t[1]=[c("已启用",-1)])]),_:1})):(y(),f(P(Ke),{key:1,type:"default",size:"tiny",bordered:!1},{default:w(()=>[...t[2]||(t[2]=[c("已关闭",-1)])]),_:1})),v.value?.protected?(y(),f(P(Ke),{key:2,type:"default",size:"tiny",bordered:!1},{default:w(()=>[...t[3]||(t[3]=[c("受保护",-1)])]),_:1})):u("",!0),v.value?(y(),U("span",al,h(P(Xe)(v.value)),1)):u("",!0)])])])])]),default:w(()=>[$("div",ll,[n.value?(y(),U("div",tl,[p(P(fe),{size:"medium"}),t[4]||(t[4]=$("p",null,"加载技能详情中...",-1))])):d.value?(y(),U("div",sl,[p(P(i),{size:44,class:"asset-detail-error-icon"},{default:w(()=>[p(P(M))]),_:1}),$("p",null,h(d.value),1),p(P(r),{size:"small",onClick:K},{default:w(()=>[...t[5]||(t[5]=[c("重试",-1)])]),_:1})])):v.value?(y(),f(P(ae),{key:2,type:"line",animated:"",class:"asset-detail-tabs"},{default:w(()=>[p(P(X),{name:"overview",tab:"概览"},{default:w(()=>[$("div",il,[$("div",rl,[t[6]||(t[6]=$("h3",{class:"asset-detail-section-title"},"描述",-1)),$("p",ol,h(v.value.description||"暂无描述"),1)]),p(le,{path:T.value},null,8,["path"]),S.value||x.value?(y(),U("div",nl,[t[7]||(t[7]=$("h3",{class:"asset-detail-section-title"},"来源",-1)),$("div",ul,[p(P(i),{size:16},{default:w(()=>[p(P(D))]),_:1}),x.value?(y(),U("a",{key:0,class:"asset-detail-link",href:x.value,target:"_blank",rel:"noopener noreferrer"},h(L.value),9,cl)):(y(),U("code",dl,h(S.value),1))])])):u("",!0),$("div",vl,[t[12]||(t[12]=$("h3",{class:"asset-detail-section-title"},"操作",-1)),$("div",pl,[!v.value.controlKey||"approved"!==v.value.trust||!v.value.cached||v.value.protected||"unsupported"===v.value.projection?.state||"project"===e.scope&&"project"!==v.value.sourceScope?v.value.controlKey&&["pending","needs_review"].includes(v.value.trust)&&("project"!==e.scope||"project"===v.value.sourceScope)?(y(),f(P(r),{key:1,tertiary:"",type:"warning",size:"small",loading:m.value,onClick:A},{default:w(()=>[...t[8]||(t[8]=[c(" 审批 ",-1)])]),_:1},8,["loading"])):v.value.protected?(y(),f(P(r),{key:2,tertiary:"",size:"small",disabled:""},{default:w(()=>[...t[9]||(t[9]=[c(" 受保护 ",-1)])]),_:1})):"unsupported"===v.value.projection?.state?(y(),f(P(r),{key:3,tertiary:"",size:"small",disabled:""},{default:w(()=>[...t[10]||(t[10]=[c(" 不支持投影 ",-1)])]),_:1})):["pending","needs_review"].includes(v.value.trust)?(y(),f(P(r),{key:4,tertiary:"",size:"small",disabled:""},{default:w(()=>[c(h("needs_review"===v.value.trust?"需复审":"待审批"),1)]),_:1})):u("",!0):(y(),f(P(r),{key:0,type:"primary",size:"small",loading:m.value,onClick:G},{default:w(()=>[c(h(v.value.enabled?"关闭此技能":"启用此技能"),1)]),_:1},8,["loading"])),p(P(r),{text:"",size:"small",disabled:!v.value.content,onClick:E},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(F))]),_:1})]),default:w(()=>[t[11]||(t[11]=c(" 复制内容 ",-1))]),_:1},8,["disabled"])])])])]),_:1}),p(P(X),{name:"content",tab:"内容"},{default:w(()=>[v.value.content?(y(),U("div",{key:0,class:"asset-detail-content",innerHTML:C.value},null,8,fl)):(y(),U("div",ml,[p(P(i),{size:44,class:"asset-detail-empty-icon"},{default:w(()=>[p(P(B))]),_:1}),t[13]||(t[13]=$("p",null,"暂无技能内容",-1))]))]),_:1})]),_:1})):u("",!0)])]),_:1})]),_:1},8,["show","width"]))}},bl=["enableCodexUser","enableClaudeUser","enablePiUser","enablePiProject"];function hl(e){if(null===e||"object"!=typeof e)return!1;const a=Object.getPrototypeOf(e);return a===Object.prototype||null===a}function kl(e){if(!hl(e)||!0!==e.success)throw new Error("响应未明确标记成功");if(!hl(e.settings)||!bl.every(a=>"boolean"==typeof e.settings[a]))throw new Error("响应 settings 必须包含四个布尔字段");return Object.fromEntries(bl.map(a=>[a,e.settings[a]]))}function gl(e){return"omp"===e}async function wl(e,a){return function(e,a){const l=kl(e);if(!bl.every(e=>l[e]===a[e]))throw new Error("响应 settings 与提交值不一致");return l}(await a(e),e)}var _l={key:1,class:"scan-settings"},jl={class:"setting-copy"},Cl=["id"],Pl={class:"setting-description"},Sl={class:"modal-actions"},xl=o({__name:"OmpSkillSettingsModal",props:{visible:Boolean,operationToken:{type:Number,default:0}},emits:["update:visible","saved"],setup(e,{emit:a}){const l=e,t=a,s=J(),i=z(!1),o=z(!1),n=z(""),u=bl,v=k(Object.fromEntries(u.map(e=>[e,!0])));let m=0,j=0;const C=[{key:"enableCodexUser",label:"Codex 用户",description:"扫描 Codex 用户技能目录"},{key:"enableClaudeUser",label:"Claude 用户与插件",description:"扫描 Claude 用户目录和插件技能"},{key:"enablePiUser",label:"OMP 用户与插件",description:"扫描 OMP 用户目录和插件技能"},{key:"enablePiProject",label:"当前项目 .omp/skills",description:"扫描当前项目的 OMP 技能目录"}],S=g({get:()=>l.visible,set:e=>{o.value||t("update:visible",e)}});function x(e){try{if(e instanceof Error)return e.message;if("string"==typeof e)return e;if(null==e)return"未知错误";if("object"==typeof e&&"string"==typeof e.message)return e.message}catch{}try{const a=JSON.stringify(e);if("string"==typeof a)return a}catch{}try{return String(e)}catch{return"未知错误"}}async function L(){const e=++m;i.value=!0,n.value="";try{const a=kl(await _e());if(e!==m||!l.visible)return;Object.assign(v,a)}catch(a){if(e!==m||!l.visible)return;n.value=`加载技能扫描设置失败: ${x(a)}`,s.error(n.value)}finally{e===m&&(i.value=!1)}}async function T(){if(i.value||o.value||n.value)return;const e=++j,a=l.operationToken,r=Object.fromEntries(u.map(e=>[e,v[e]]));o.value=!0;try{const s=await wl(r,Se);if(e!==j||a!==l.operationToken||!l.visible)return;t("saved",s,a)}catch(c){if(e!==j||a!==l.operationToken||!l.visible)return;s.error(`保存技能扫描设置失败: ${x(c)}`)}finally{e===j&&a===l.operationToken&&l.visible&&(o.value=!1)}}return b(()=>l.visible,e=>{e?L():(m+=1,j+=1,o.value=!1,i.value=!1,n.value="")},{immediate:!0}),(e,a)=>(y(),f(P(Q),{show:S.value,"onUpdate:show":a[1]||(a[1]=e=>S.value=e),preset:"card",title:"技能扫描设置",bordered:!1,closable:!o.value,"mask-closable":!o.value,"close-on-esc":!o.value,style:{width:"420px","max-width":"92vw"}},{footer:w(()=>[$("div",Sl,[p(P(r),{disabled:o.value,onClick:a[0]||(a[0]=e=>S.value=!1)},{default:w(()=>[...a[4]||(a[4]=[c("取消",-1)])]),_:1},8,["disabled"]),p(P(r),{type:"primary",loading:o.value,disabled:i.value||o.value||!!n.value,onClick:T},{default:w(()=>[...a[5]||(a[5]=[c(" 保存 ",-1)])]),_:1},8,["loading","disabled"])])]),default:w(()=>[p(P(fe),{show:i.value},{default:w(()=>[n.value?(y(),f(P(be),{key:0,type:"error","show-icon":!0},{action:w(()=>[p(P(r),{size:"small",disabled:i.value||o.value,onClick:L},{default:w(()=>[...a[2]||(a[2]=[c("重试",-1)])]),_:1},8,["disabled"])]),default:w(()=>[c(h(n.value)+" ",1)]),_:1})):(y(),U("div",_l,[a[3]||(a[3]=$("div",{class:"section-title"},"扫描来源",-1)),(y(),U(_,null,d(C,e=>$("div",{key:e.key,class:"setting-row"},[$("div",jl,[$("div",{id:`${e.key}-label`,class:"setting-label"},h(e.label),9,Cl),$("div",Pl,h(e.description),1)]),p(P(je),{value:v[e.key],"onUpdate:value":a=>v[e.key]=a,disabled:i.value||o.value,"aria-labelledby":`${e.key}-label`},null,8,["value","onUpdate:value","disabled","aria-labelledby"])])),64))]))]),_:1},8,["show"])]),_:1},8,["show","closable","mask-closable","close-on-esc"]))}},[["__scopeId","data-v-c6883975"]]),zl={key:0,class:"asset-panel-header"},Ul={class:"asset-title-group"},$l={class:"asset-heading"},Ll={class:"asset-title-row"},Tl={class:"asset-platform-pill"},Ol={key:0,class:"asset-action-row"},Bl={key:1,class:"asset-drawer-toolbar"},Kl={key:0,class:"asset-action-row"},Gl={class:"asset-summary"},Al={class:"asset-summary-item"},Ml={class:"asset-summary-value"},El={class:"asset-summary-item"},Hl={class:"asset-summary-value"},Il={class:"asset-summary-item"},Dl={class:"asset-summary-value"},Rl={class:"asset-filter-bar"},Nl={class:"asset-panel-content"},ql={key:0,class:"asset-empty"},Vl={class:"asset-list"},Fl={key:2,class:"asset-footer"},Wl={key:3,class:"asset-refresh-status"},Jl={key:0},Zl={key:1},Ql=o({__name:"SkillsPanel",props:{inDrawer:{type:Boolean,default:!1},hideBack:{type:Boolean,default:!1},drawerVisible:{type:Boolean,default:!1},platform:{type:String,default:""},projectPath:{type:String,default:""},scope:{type:String,default:"user"}},emits:["back","updated"],setup(e){const a=e,l=x(),t=O(),s=J(),o=z(!1),n=z([]),v=z(""),k=z("all"),C=z(!1),S=z(!1),B=z(!1),G=z(!1),A=z(0),M=z(null),N=z({}),F=z(!1),Z=z(null),Q=z(!1),Y=z(0),X=z(0),{byCapability:ae}=ce(),le=g(()=>ae("skills").map(e=>e.key)),te=g(()=>le.value.includes(ve.value)),se=g(()=>t.get(ve.value)||T(ve.value)),ie=g(()=>se.value?.resourceActions?.skills||{}),re=g(()=>!1!==ie.value.create),oe=g(()=>!1!==ie.value.repositories),ue=g(()=>!1!==ie.value.import),de=g(()=>!1!==ie.value.refresh),ve=g(()=>String(a.platform||L(l)||"claude").trim().toLowerCase()),pe=g(()=>({...a.projectPath?{cwd:a.projectPath}:{},...a.scope&&"user"!==a.scope?{scope:a.scope}:{}})),me=g(()=>gl(ve.value)),be=g(()=>{const e=t.get(ve.value)||T(ve.value);return e.label||e.title||"Claude Code"}),we=[{label:"全部",value:"all"},{label:"已启用",value:"enabled"},{label:"已关闭",value:"disabled"},{label:"待审批 / 需复审",value:"pending"}],_e=g(()=>n.value.filter(e=>e.enabled).length),je=g(()=>({never_fetched:"从未刷新",queued:"排队中",running:"刷新中",succeeded:"已完成",partial:"部分成功",failed:"失败",interrupted:"已中断",idle:"已完成"}[Z.value?.status||Z.value?.state]||"")),Ce=g(()=>n.value.filter(e=>["pending","needs_review"].includes(e.trust)).length),Se=g(()=>{let e=n.value;if("enabled"===k.value?e=e.filter(e=>e.enabled):"disabled"===k.value?e=e.filter(e=>!e.enabled):"pending"===k.value&&(e=e.filter(e=>["pending","needs_review"].includes(e.trust))),v.value.trim()){const a=v.value.toLowerCase();e=e.filter(e=>e.name?.toLowerCase().includes(a)||e.description?.toLowerCase().includes(a))}return[...e].sort((e,a)=>e.enabled===a.enabled?0:e.enabled?-1:1)}),xe=g(()=>v.value?"没有匹配的技能":"enabled"===k.value?"暂无已启用的技能":"disabled"===k.value?"暂无已关闭的技能":"pending"===k.value?"暂无待审批的技能":te.value?re.value||oe.value||de.value?"暂无可用技能,请配置仓库源":`${be.value} 当前没有可管理的技能`:`${be.value} 暂未提供 Skills 能力`);async function Ue({notifyError:e=!0}={}){const l=++Y.value,t=ve.value;if(!te.value)return n.value=[],o.value=!1,!1;o.value=!0;try{const e="project"===a.scope?await Ee(a.projectPath,t):await ye(t,pe.value),s="project"===a.scope?[...Array.isArray(e?.project)?e.project:[],...Array.isArray(e?.inherited)?e.inherited:[]]:function(e){if(!hl(e))throw new Error("技能列表响应必须是普通对象");if(!0!==e.success)throw new Error("string"==typeof e.message&&e.message?e.message:"技能列表响应未明确标记成功");if(!Array.isArray(e.skills))throw new Error("技能列表响应 skills 必须是数组");return e.skills}(e);return l===Y.value&&t===ve.value&&(n.value=s,Z.value=e.refresh||null,!0)}catch(i){return l!==Y.value||t!==ve.value||e&&s.error("加载技能失败: "+(i?.message||String(i))),!1}finally{l===Y.value&&t===ve.value&&(o.value=!1)}}async function $e(){if(te.value&&ue.value&&"claude"===ve.value){Q.value=!0;try{const e=await ee("skills");e.success?(s.success(`成功导入 ${e.imported} 个技能`),await Ue()):s.error(e.message||"导入失败")}catch(e){s.error("导入失败: "+e.message)}finally{Q.value=!1}}}async function Le(e,l){if(!te.value)return;if(!e.controlKey||e.protected||e.readonly||!1===e.managed||"project"===a.scope&&"project"!==e.sourceScope)return;if(l&&"approved"!==e.trust)return void s.warning("blocked"===e.trust?"该技能已被阻止":"该技能需要先审批");if("unsupported"===e.projection?.state)return void s.error("当前平台不支持安全投影,无法切换该项目技能");if(l&&!e.cached)return void s.warning("该技能尚无完整缓存,请先手动刷新远端");const t=e.controlKey;N.value[t]=!0;try{const i="project"===a.scope?await He(a.projectPath,ve.value,t,l):await ke(t,l,ve.value,pe.value);if("needs_approval"===i.status)return void s.warning("该技能需要先审批");if("blocked"===i.status)return void s.error("该技能已被阻止");if("unsupported"===i.status)return void s.error("当前平台不支持安全投影");if("conflict"===i.status)return void s.warning("目标 Skill 目录已被其他来源占用");if("projection_failed"===i.status)return void s.error(i.lastError||"Skill 投影失败");const r=n.value.find(e=>e.controlKey===t);r&&(r.enabled=i.enabled,r.installed=i.enabled,r.projection=i.projection||r.projection),s.success(l?`技能 "${e.name}" 已启用`:`技能 "${e.name}" 已关闭`)}catch(i){s.error("切换失败: "+(i.response?.data?.message||i.message))}finally{delete N.value[t]}}async function Oe(e){if(!te.value)return;if(!e.controlKey||!["pending","needs_review"].includes(e.trust))return;if("project"===a.scope&&"project"!==e.sourceScope)return;const l=e.controlKey;N.value[l]=!0;try{const a=await he(l,"approved",ve.value,pe.value),t=n.value.find(e=>e.controlKey===l);t&&(t.trust=a.trust),s.success(`技能 "${e.name}" 已批准,当前仍保持关闭`)}catch(t){s.error("审批失败: "+(t.response?.data?.message||t.message))}finally{delete N.value[l]}}async function Be(){if(!te.value||!de.value||F.value)return;const e=X.value,l=JSON.stringify({platform:ve.value,scope:a.scope||"user",projectPath:a.projectPath||""}),t=()=>e===X.value&&l===JSON.stringify({platform:ve.value,scope:a.scope||"user",projectPath:a.projectPath||""});F.value=!0;try{const e=ve.value,a=await Pe(e,pe.value);if(!t())return;Z.value=a.task||null;let l=a.task;for(;l&&["queued","running"].includes(l.status);){await new Promise(e=>setTimeout(e,250));const e=await ze(l.id,{...pe.value,platform:ve.value});if(!t())return;l=e.task,Z.value=l}if(!t())return;"failed"===l?.status?s.error(l.error||"远端刷新失败"):"partial"===l?.status?s.warning("远端刷新部分成功"):s.success("远端 Skill 刷新完成"),await Ue()}catch(i){t()&&s.error("刷新失败: "+(i.response?.data?.message||i.message))}finally{t()&&(F.value=!1)}}function Ke(){me.value&&(A.value+=1,G.value=!0)}async function Ge(e,a){if("omp"!==ve.value||!G.value||a!==A.value)return;const l=ve.value;G.value=!1;const t=await async function(e,a){return e(),a({notifyError:!1})}(()=>{},Ue);l===ve.value&&a===A.value&&(t?s.success("技能扫描设置已保存"):s.error("设置已保存,但技能列表刷新失败"))}function Ae(e){M.value=e,B.value=!0}return m(()=>{a.inDrawer&&!a.drawerVisible||Ue()}),b(()=>a.drawerVisible,e=>{e&&Ue()}),b([()=>ve.value,()=>a.scope,()=>a.projectPath],([e])=>{X.value+=1,F.value=!1,Z.value=null,A.value+=1,gl(e)||(G.value=!1),Ue()}),(l,t)=>(y(),U("div",{class:j(["skills-panel asset-panel",{"in-drawer":e.inDrawer}])},[e.inDrawer?u("",!0):(y(),U("div",zl,[$("div",Ul,[e.hideBack?u("",!0):(y(),f(P(r),{key:0,text:"",onClick:t[0]||(t[0]=e=>l.$emit("back")),class:"back-btn"},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(K))]),_:1})]),_:1})),$("div",$l,[$("div",Ll,[t[12]||(t[12]=$("span",{class:"asset-title"},"技能管理",-1)),$("span",Tl,h(be.value),1)]),t[13]||(t[13]=$("div",{class:"asset-subtitle"},"缓存并控制当前平台可用的技能",-1))])]),te.value?(y(),U("div",Ol,[re.value?(y(),f(P(r),{key:0,text:"",focusable:!1,onClick:t[1]||(t[1]=e=>S.value=!0),class:"action-btn"},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(E))]),_:1})]),default:w(()=>[t[14]||(t[14]=c(" 创建 ",-1))]),_:1})):u("",!0),oe.value?(y(),f(P(r),{key:1,text:"",focusable:!1,onClick:t[2]||(t[2]=e=>C.value=!0),class:"action-btn"},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(D))]),_:1})]),default:w(()=>[t[15]||(t[15]=c(" 仓库 ",-1))]),_:1})):u("",!0),ue.value?(y(),f(P(r),{key:2,text:"",focusable:!1,onClick:$e,loading:Q.value,disabled:"claude"!==ve.value,class:"action-btn"},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(W))]),_:1})]),default:w(()=>[t[16]||(t[16]=c(" 导入 ",-1))]),_:1},8,["loading","disabled"])):u("",!0),me.value?(y(),f(P(r),{key:3,text:"","aria-label":"OMP 技能设置",onClick:Ke,class:"action-btn"},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(V))]),_:1})]),default:w(()=>[t[17]||(t[17]=c(" 设置 ",-1))]),_:1})):u("",!0),de.value?(y(),f(P(r),{key:4,text:"",focusable:!1,onClick:Be,loading:F.value||o.value,class:"action-btn"},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(I))]),_:1})]),default:w(()=>[t[18]||(t[18]=c(" 刷新远端 ",-1))]),_:1},8,["loading"])):u("",!0)])):u("",!0)])),e.inDrawer?(y(),U("div",Bl,[te.value?(y(),U("div",Kl,[re.value?(y(),f(P(r),{key:0,text:"",focusable:!1,onClick:t[3]||(t[3]=e=>S.value=!0),class:"action-btn"},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(E))]),_:1})]),default:w(()=>[t[19]||(t[19]=c(" 创建 ",-1))]),_:1})):u("",!0),oe.value?(y(),f(P(r),{key:1,text:"",focusable:!1,onClick:t[4]||(t[4]=e=>C.value=!0),class:"action-btn"},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(D))]),_:1})]),default:w(()=>[t[20]||(t[20]=c(" 仓库 ",-1))]),_:1})):u("",!0),ue.value?(y(),f(P(r),{key:2,text:"",focusable:!1,onClick:$e,loading:Q.value,disabled:"claude"!==ve.value,class:"action-btn"},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(W))]),_:1})]),default:w(()=>[t[21]||(t[21]=c(" 导入 ",-1))]),_:1},8,["loading","disabled"])):u("",!0),me.value?(y(),f(P(r),{key:3,text:"","aria-label":"OMP 技能设置",onClick:Ke,class:"action-btn"},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(V))]),_:1})]),default:w(()=>[t[22]||(t[22]=c(" 设置 ",-1))]),_:1})):u("",!0),de.value?(y(),f(P(r),{key:4,text:"",focusable:!1,onClick:Be,loading:F.value||o.value,class:"action-btn"},{icon:w(()=>[p(P(i),null,{default:w(()=>[p(P(I))]),_:1})]),default:w(()=>[t[23]||(t[23]=c(" 刷新远端 ",-1))]),_:1},8,["loading"])):u("",!0)])):u("",!0)])):u("",!0),$("div",Gl,[$("span",Al,[t[24]||(t[24]=$("span",{class:"asset-summary-label"},"全部",-1)),$("span",Ml,h(n.value.length),1)]),$("span",El,[t[25]||(t[25]=$("span",{class:"asset-summary-label"},"已启用",-1)),$("span",Hl,h(_e.value),1)]),$("span",Il,[t[26]||(t[26]=$("span",{class:"asset-summary-label"},"待审批",-1)),$("span",Dl,h(Ce.value),1)])]),$("div",Rl,[p(P(Te),{value:v.value,"onUpdate:value":t[5]||(t[5]=e=>v.value=e),placeholder:"搜索技能名称或描述",clearable:"",size:"small",class:"asset-search"},{prefix:w(()=>[p(P(i),null,{default:w(()=>[p(P(q))]),_:1})]),_:1},8,["value"]),p(P(ne),{value:k.value,"onUpdate:value":t[6]||(t[6]=e=>k.value=e),options:we,size:"small",class:"asset-filter"},null,8,["value"])]),$("div",Nl,[p(P(fe),{show:o.value},{default:w(()=>[0!==Se.value.length||o.value?u("",!0):(y(),U("div",ql,[p(P(ge),{description:xe.value},{icon:w(()=>[p(P(i),{size:"48",color:"var(--text-quaternary)"},{default:w(()=>[p(P(R))]),_:1})]),extra:w(()=>[te.value&&oe.value&&0===n.value.length?(y(),f(P(r),{key:0,size:"small",onClick:t[7]||(t[7]=e=>C.value=!0)},{default:w(()=>[...t[27]||(t[27]=[c("配置仓库源",-1)])]),_:1})):u("",!0)]),_:1},8,["description"])])),$("div",Vl,[(y(!0),U(_,null,d(Se.value,e=>(y(),f(da,{key:e.controlKey||e.key,skill:e,toggling:!!N.value[e.controlKey||e.key],"panel-scope":a.scope,onClick:Ae,onToggle:Le,onApprove:Oe},null,8,["skill","toggling","panel-scope"]))),128))])]),_:1},8,["show"])]),de.value?(y(),U("div",Fl,[p(P(i),{size:"14",class:"asset-info-icon"},{default:w(()=>[p(P(H))]),_:1}),$("span",null,"开关变更后需重启 "+h(be.value)+" 生效;远端刷新只在手动点击后执行",1)])):u("",!0),je.value?(y(),U("div",Wl,[c(" 刷新任务:"+h(je.value)+" ",1),void 0!==Z.value?.fetchedSkills?(y(),U("span",Jl," · 已处理 "+h(Z.value.fetchedSkills)+" 个 Skill",1)):u("",!0),Z.value?.failedRepos?.length?(y(),U("span",Zl," · 失败仓库 "+h(Z.value.failedRepos.length),1)):u("",!0)])):u("",!0),p(Ha,{visible:C.value,"onUpdate:visible":t[8]||(t[8]=e=>C.value=e),platform:ve.value,onUpdated:Ue},null,8,["visible","platform"]),p(Ja,{visible:S.value,"onUpdate:visible":t[9]||(t[9]=e=>S.value=e),platform:ve.value,scope:a.scope,"project-path":a.projectPath,onCreated:Ue},null,8,["visible","platform","scope","project-path"]),p(yl,{visible:B.value,"onUpdate:visible":t[10]||(t[10]=e=>B.value=e),skill:M.value,platform:ve.value,scope:a.scope,"project-path":a.projectPath,onUpdated:Ue},null,8,["visible","skill","platform","scope","project-path"]),p(xl,{visible:G.value,"onUpdate:visible":t[11]||(t[11]=e=>G.value=e),"operation-token":A.value,onSaved:Ge},null,8,["visible","operation-token"])],2))}},[["__scopeId","data-v-efda7d55"]]);export{Ql as t};
@@ -0,0 +1 @@
1
+ import{$t as e,A as n,Dt as t,E as r,Et as o,H as i,Ht as l,I as a,It as s,L as d,N as u,O as c,Ot as p,Qt as h,Rt as f,Tn as g,Tt as v,Yt as m,Zt as w,bn as b,gn as x,gt as y,hn as C,ht as R,j as k,jt as P,k as S,mt as O,nn as L,rn as z,s as $,tn as T,vn as B,w as D,xn as j,xt as I,yn as A}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as U,G as M,I as E,M as F,N as H,Q as N,V as W,Z,_ as q,b as _,dt as V,f as X,ft as G,g as Y,gt as J,l as Q,st as K,tt as ee,z as ne}from"./vue-vendor-BqZbbXHA.js";import{F as te,h as re,v as oe}from"./use-message-DBsCm7FJ.js";import{M as ie,N as le,P as ae,j as se}from"./light-C2X7hegj.js";import{F as de,R as ue,V as ce,Y as pe,_t as he,lt as fe}from"./index-BlUXw84U.js";function ge(e,n){if(!e)return;const t=document.createElement("a");t.href=e,void 0!==n&&(t.download=n),document.body.appendChild(t),t.click(),document.body.removeChild(t)}var ve,me=(ve={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},function(e){return null==ve?void 0:ve[e]}),we=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,be=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");var xe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var ye=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var Ce="\\ud800-\\udfff",Re="\\u2700-\\u27bf",ke="a-z\\xdf-\\xf6\\xf8-\\xff",Pe="A-Z\\xc0-\\xd6\\xd8-\\xde",Se="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Oe="["+Se+"]",Le="\\d+",ze="["+Re+"]",$e="["+ke+"]",Te="[^"+Ce+Se+Le+Re+ke+Pe+"]",Be="(?:\\ud83c[\\udde6-\\uddff]){2}",De="[\\ud800-\\udbff][\\udc00-\\udfff]",je="["+Pe+"]",Ie="(?:"+$e+"|"+Te+")",Ae="(?:"+je+"|"+Te+")",Ue="(?:['’](?:d|ll|m|re|s|t|ve))?",Me="(?:['’](?:D|LL|M|RE|S|T|VE))?",Ee="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",Fe="[\\ufe0e\\ufe0f]?",He=Fe+Ee+("(?:\\u200d(?:"+["[^"+Ce+"]",Be,De].join("|")+")"+Fe+Ee+")*"),Ne="(?:"+[ze,Be,De].join("|")+")"+He,We=RegExp([je+"?"+$e+"+"+Ue+"(?="+[Oe,je,"$"].join("|")+")",Ae+"+"+Me+"(?="+[Oe,je+Ie,"$"].join("|")+")",je+"?"+Ie+"+"+Ue,je+"+"+Me,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Le,Ne].join("|"),"g");function Ze(e,n,t){return e=i(e),void 0===(n=t?void 0:n)?function(e){return ye.test(e)}(e)?function(e){return e.match(We)||[]}(e):function(e){return e.match(xe)||[]}(e):e.match(n)||[]}var qe=RegExp("['’]","g");var _e,Ve=(_e=function(e,n,t){return e+(t?"-":"")+n.toLowerCase()},function(e){return function(e,n,t,r){var o=-1,i=null==e?0:e.length;for(r&&i&&(t=e[++o]);++o<i;)t=n(t,e[o],o,e);return t}(Ze(function(e){return(e=i(e))&&e.replace(we,me).replace(be,"")}(e).replace(qe,"")),_e,"")}),Xe=S("attach",()=>F("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},F("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},F("g",{fill:"currentColor","fill-rule":"nonzero"},F("path",{d:"M3.25735931,8.70710678 L7.85355339,4.1109127 C8.82986412,3.13460197 10.4127766,3.13460197 11.3890873,4.1109127 C12.365398,5.08722343 12.365398,6.67013588 11.3890873,7.64644661 L6.08578644,12.9497475 C5.69526215,13.3402718 5.06209717,13.3402718 4.67157288,12.9497475 C4.28104858,12.5592232 4.28104858,11.9260582 4.67157288,11.5355339 L9.97487373,6.23223305 C10.1701359,6.0369709 10.1701359,5.72038841 9.97487373,5.52512627 C9.77961159,5.32986412 9.4630291,5.32986412 9.26776695,5.52512627 L3.96446609,10.8284271 C3.18341751,11.6094757 3.18341751,12.8758057 3.96446609,13.6568542 C4.74551468,14.4379028 6.01184464,14.4379028 6.79289322,13.6568542 L12.0961941,8.35355339 C13.4630291,6.98671837 13.4630291,4.77064094 12.0961941,3.40380592 C10.7293591,2.0369709 8.51328163,2.0369709 7.14644661,3.40380592 L2.55025253,8 C2.35499039,8.19526215 2.35499039,8.51184464 2.55025253,8.70710678 C2.74551468,8.90236893 3.06209717,8.90236893 3.25735931,8.70710678 Z"}))))),Ge=S("cancel",()=>F("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},F("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},F("g",{fill:"currentColor","fill-rule":"nonzero"},F("path",{d:"M2.58859116,2.7156945 L2.64644661,2.64644661 C2.82001296,2.47288026 3.08943736,2.45359511 3.2843055,2.58859116 L3.35355339,2.64644661 L8,7.293 L12.6464466,2.64644661 C12.8417088,2.45118446 13.1582912,2.45118446 13.3535534,2.64644661 C13.5488155,2.84170876 13.5488155,3.15829124 13.3535534,3.35355339 L8.707,8 L13.3535534,12.6464466 C13.5271197,12.820013 13.5464049,13.0894374 13.4114088,13.2843055 L13.3535534,13.3535534 C13.179987,13.5271197 12.9105626,13.5464049 12.7156945,13.4114088 L12.6464466,13.3535534 L8,8.707 L3.35355339,13.3535534 C3.15829124,13.5488155 2.84170876,13.5488155 2.64644661,13.3535534 C2.45118446,13.1582912 2.45118446,12.8417088 2.64644661,12.6464466 L7.293,8 L2.64644661,3.35355339 C2.47288026,3.17998704 2.45359511,2.91056264 2.58859116,2.7156945 L2.64644661,2.64644661 L2.58859116,2.7156945 Z"}))))),Ye=S("download",()=>F("svg",{viewBox:"0 0 16 16",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},F("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},F("g",{fill:"currentColor","fill-rule":"nonzero"},F("path",{d:"M3.5,13 L12.5,13 C12.7761424,13 13,13.2238576 13,13.5 C13,13.7454599 12.8231248,13.9496084 12.5898756,13.9919443 L12.5,14 L3.5,14 C3.22385763,14 3,13.7761424 3,13.5 C3,13.2545401 3.17687516,13.0503916 3.41012437,13.0080557 L3.5,13 L12.5,13 L3.5,13 Z M7.91012437,1.00805567 L8,1 C8.24545989,1 8.44960837,1.17687516 8.49194433,1.41012437 L8.5,1.5 L8.5,10.292 L11.1819805,7.6109127 C11.3555469,7.43734635 11.6249713,7.4180612 11.8198394,7.55305725 L11.8890873,7.6109127 C12.0626536,7.78447906 12.0819388,8.05390346 11.9469427,8.2487716 L11.8890873,8.31801948 L8.35355339,11.8535534 C8.17998704,12.0271197 7.91056264,12.0464049 7.7156945,11.9114088 L7.64644661,11.8535534 L4.1109127,8.31801948 C3.91565056,8.12275734 3.91565056,7.80617485 4.1109127,7.6109127 C4.28447906,7.43734635 4.55390346,7.4180612 4.7487716,7.55305725 L4.81801948,7.6109127 L7.5,10.292 L7.5,1.5 C7.5,1.25454011 7.67687516,1.05039163 7.91012437,1.00805567 L8,1 L7.91012437,1.00805567 Z"}))))),Je=U({name:"ResizeSmall",render:()=>F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20"},F("g",{fill:"none"},F("path",{d:"M5.5 4A1.5 1.5 0 0 0 4 5.5v1a.5.5 0 0 1-1 0v-1A2.5 2.5 0 0 1 5.5 3h1a.5.5 0 0 1 0 1h-1zM16 5.5A1.5 1.5 0 0 0 14.5 4h-1a.5.5 0 0 1 0-1h1A2.5 2.5 0 0 1 17 5.5v1a.5.5 0 0 1-1 0v-1zm0 9a1.5 1.5 0 0 1-1.5 1.5h-1a.5.5 0 0 0 0 1h1a2.5 2.5 0 0 0 2.5-2.5v-1a.5.5 0 0 0-1 0v1zm-12 0A1.5 1.5 0 0 0 5.5 16h1.25a.5.5 0 0 1 0 1H5.5A2.5 2.5 0 0 1 3 14.5v-1.25a.5.5 0 0 1 1 0v1.25zM8.5 7A1.5 1.5 0 0 0 7 8.5v3A1.5 1.5 0 0 0 8.5 13h3a1.5 1.5 0 0 0 1.5-1.5v-3A1.5 1.5 0 0 0 11.5 7h-3zM8 8.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-3z",fill:"currentColor"})))}),Qe=S("retry",()=>F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},F("path",{d:"M320,146s24.36-12-64-12A160,160,0,1,0,416,294",style:"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: 32px;"}),F("polyline",{points:"256 58 336 138 256 218",style:"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;"}))),Ke=S("rotateClockwise",()=>F("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},F("path",{d:"M3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10C17 12.7916 15.3658 15.2026 13 16.3265V14.5C13 14.2239 12.7761 14 12.5 14C12.2239 14 12 14.2239 12 14.5V17.5C12 17.7761 12.2239 18 12.5 18H15.5C15.7761 18 16 17.7761 16 17.5C16 17.2239 15.7761 17 15.5 17H13.8758C16.3346 15.6357 18 13.0128 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10C2 10.2761 2.22386 10.5 2.5 10.5C2.77614 10.5 3 10.2761 3 10Z",fill:"currentColor"}),F("path",{d:"M10 12C11.1046 12 12 11.1046 12 10C12 8.89543 11.1046 8 10 8C8.89543 8 8 8.89543 8 10C8 11.1046 8.89543 12 10 12ZM10 11C9.44772 11 9 10.5523 9 10C9 9.44772 9.44772 9 10 9C10.5523 9 11 9.44772 11 10C11 10.5523 10.5523 11 10 11Z",fill:"currentColor"}))),en=S("rotateClockwise",()=>F("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},F("path",{d:"M17 10C17 6.13401 13.866 3 10 3C6.13401 3 3 6.13401 3 10C3 12.7916 4.63419 15.2026 7 16.3265V14.5C7 14.2239 7.22386 14 7.5 14C7.77614 14 8 14.2239 8 14.5V17.5C8 17.7761 7.77614 18 7.5 18H4.5C4.22386 18 4 17.7761 4 17.5C4 17.2239 4.22386 17 4.5 17H6.12422C3.66539 15.6357 2 13.0128 2 10C2 5.58172 5.58172 2 10 2C14.4183 2 18 5.58172 18 10C18 10.2761 17.7761 10.5 17.5 10.5C17.2239 10.5 17 10.2761 17 10Z",fill:"currentColor"}),F("path",{d:"M10 12C8.89543 12 8 11.1046 8 10C8 8.89543 8.89543 8 10 8C11.1046 8 12 8.89543 12 10C12 11.1046 11.1046 12 10 12ZM10 11C10.5523 11 11 10.5523 11 10C11 9.44772 10.5523 9 10 9C9.44772 9 9 9.44772 9 10C9 10.5523 9.44772 11 10 11Z",fill:"currentColor"}))),nn=S("trash",()=>F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},F("path",{d:"M432,144,403.33,419.74A32,32,0,0,1,371.55,448H140.46a32,32,0,0,1-31.78-28.26L80,144",style:"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;"}),F("rect",{x:"32",y:"64",width:"448",height:"80",rx:"16",ry:"16",style:"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;"}),F("line",{x1:"312",y1:"240",x2:"200",y2:"352",style:"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;"}),F("line",{x1:"312",y1:"352",x2:"200",y2:"240",style:"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;"}))),tn=S("zoomIn",()=>F("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},F("path",{d:"M11.5 8.5C11.5 8.22386 11.2761 8 11 8H9V6C9 5.72386 8.77614 5.5 8.5 5.5C8.22386 5.5 8 5.72386 8 6V8H6C5.72386 8 5.5 8.22386 5.5 8.5C5.5 8.77614 5.72386 9 6 9H8V11C8 11.2761 8.22386 11.5 8.5 11.5C8.77614 11.5 9 11.2761 9 11V9H11C11.2761 9 11.5 8.77614 11.5 8.5Z",fill:"currentColor"}),F("path",{d:"M8.5 3C11.5376 3 14 5.46243 14 8.5C14 9.83879 13.5217 11.0659 12.7266 12.0196L16.8536 16.1464C17.0488 16.3417 17.0488 16.6583 16.8536 16.8536C16.68 17.0271 16.4106 17.0464 16.2157 16.9114L16.1464 16.8536L12.0196 12.7266C11.0659 13.5217 9.83879 14 8.5 14C5.46243 14 3 11.5376 3 8.5C3 5.46243 5.46243 3 8.5 3ZM8.5 4C6.01472 4 4 6.01472 4 8.5C4 10.9853 6.01472 13 8.5 13C10.9853 13 13 10.9853 13 8.5C13 6.01472 10.9853 4 8.5 4Z",fill:"currentColor"}))),rn=S("zoomOut",()=>F("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},F("path",{d:"M11 8C11.2761 8 11.5 8.22386 11.5 8.5C11.5 8.77614 11.2761 9 11 9H6C5.72386 9 5.5 8.77614 5.5 8.5C5.5 8.22386 5.72386 8 6 8H11Z",fill:"currentColor"}),F("path",{d:"M14 8.5C14 5.46243 11.5376 3 8.5 3C5.46243 3 3 5.46243 3 8.5C3 11.5376 5.46243 14 8.5 14C9.83879 14 11.0659 13.5217 12.0196 12.7266L16.1464 16.8536L16.2157 16.9114C16.4106 17.0464 16.68 17.0271 16.8536 16.8536C17.0488 16.6583 17.0488 16.3417 16.8536 16.1464L12.7266 12.0196C13.5217 11.0659 14 9.83879 14 8.5ZM4 8.5C4 6.01472 6.01472 4 8.5 4C10.9853 4 13 6.01472 13 8.5C13 10.9853 10.9853 13 8.5 13C6.01472 13 4 10.9853 4 8.5Z",fill:"currentColor"}))),on=l&&"loading"in document.createElement("img");var ln=new WeakMap,an=new WeakMap,sn=new WeakMap,dn=(e,n,t)=>{if(!e)return()=>{};const r=function(e={}){var n;const{root:t=null}=e;return{hash:`${e.rootMargin||"0px 0px 0px 0px"}-${Array.isArray(e.threshold)?e.threshold.join(","):null!==(n=e.threshold)&&void 0!==n?n:"0"}`,options:Object.assign(Object.assign({},e),{root:("string"==typeof t?document.querySelector(t):t)||document.documentElement})}}(n),{root:o}=r.options;let i;const l=ln.get(o);let a,s;l?i=l:(i=new Map,ln.set(o,i)),i.has(r.hash)?(s=i.get(r.hash),s[1].has(e)||(a=s[0],s[1].add(e),a.observe(e))):(a=new IntersectionObserver(e=>{e.forEach(e=>{if(e.isIntersecting){const n=an.get(e.target),t=sn.get(e.target);n&&n(),t&&(t.value=!0)}})},r.options),a.observe(e),s=[a,new Set([e])],i.set(r.hash,s));let d=!1;const u=()=>{d||(an.delete(e),sn.delete(e),d=!0,s[1].has(e)&&(s[0].unobserve(e),s[1].delete(e)),s[1].size<=0&&i.delete(r.hash),i.size||ln.delete(o))};return an.set(e,u),sn.set(e,t),u};function un(){return F("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},F("path",{d:"M6 5C5.75454 5 5.55039 5.17688 5.50806 5.41012L5.5 5.5V14.5C5.5 14.7761 5.72386 15 6 15C6.24546 15 6.44961 14.8231 6.49194 14.5899L6.5 14.5V5.5C6.5 5.22386 6.27614 5 6 5ZM13.8536 5.14645C13.68 4.97288 13.4106 4.9536 13.2157 5.08859L13.1464 5.14645L8.64645 9.64645C8.47288 9.82001 8.4536 10.0894 8.58859 10.2843L8.64645 10.3536L13.1464 14.8536C13.3417 15.0488 13.6583 15.0488 13.8536 14.8536C14.0271 14.68 14.0464 14.4106 13.9114 14.2157L13.8536 14.1464L9.70711 10L13.8536 5.85355C14.0488 5.65829 14.0488 5.34171 13.8536 5.14645Z",fill:"currentColor"}))}function cn(){return F("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},F("path",{d:"M13.5 5C13.7455 5 13.9496 5.17688 13.9919 5.41012L14 5.5V14.5C14 14.7761 13.7761 15 13.5 15C13.2545 15 13.0504 14.8231 13.0081 14.5899L13 14.5V5.5C13 5.22386 13.2239 5 13.5 5ZM5.64645 5.14645C5.82001 4.97288 6.08944 4.9536 6.28431 5.08859L6.35355 5.14645L10.8536 9.64645C11.0271 9.82001 11.0464 10.0894 10.9114 10.2843L10.8536 10.3536L6.35355 14.8536C6.15829 15.0488 5.84171 15.0488 5.64645 14.8536C5.47288 14.68 5.4536 14.4106 5.58859 14.2157L5.64645 14.1464L9.79289 10L5.64645 5.85355C5.45118 5.65829 5.45118 5.34171 5.64645 5.14645Z",fill:"currentColor"}))}function pn(){return F("svg",{viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},F("path",{d:"M4.089 4.216l.057-.07a.5.5 0 0 1 .638-.057l.07.057L10 9.293l5.146-5.147a.5.5 0 0 1 .638-.057l.07.057a.5.5 0 0 1 .057.638l-.057.07L10.707 10l5.147 5.146a.5.5 0 0 1 .057.638l-.057.07a.5.5 0 0 1-.638.057l-.07-.057L10 10.707l-5.146 5.147a.5.5 0 0 1-.638.057l-.07-.057a.5.5 0 0 1-.057-.638l.057-.07L9.293 10L4.146 4.854a.5.5 0 0 1-.057-.638l.057-.07l-.057.07z",fill:"currentColor"}))}var hn=Object.assign(Object.assign({},u.props),{onPreviewPrev:Function,onPreviewNext:Function,showToolbar:{type:Boolean,default:!0},showToolbarTooltip:Boolean,renderToolbar:Function}),fn=m("n-image"),gn=C([C("body >",[x("image-container","position: fixed;")]),x("image-preview-container","\n position: fixed;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n "),x("image-preview-overlay","\n z-index: -1;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(0, 0, 0, .3);\n ",[D()]),x("image-preview-toolbar","\n z-index: 1;\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n border-radius: var(--n-toolbar-border-radius);\n height: 48px;\n bottom: 40px;\n padding: 0 12px;\n background: var(--n-toolbar-color);\n box-shadow: var(--n-toolbar-box-shadow);\n color: var(--n-toolbar-icon-color);\n transition: color .3s var(--n-bezier);\n display: flex;\n align-items: center;\n ",[x("base-icon","\n padding: 0 8px;\n font-size: 28px;\n cursor: pointer;\n "),D()]),x("image-preview-wrapper","\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n pointer-events: none;\n ",[re()]),x("image-preview","\n user-select: none;\n -webkit-user-select: none;\n pointer-events: all;\n margin: auto;\n max-height: calc(100vh - 32px);\n max-width: calc(100vw - 32px);\n transition: transform .3s var(--n-bezier);\n "),x("image","\n display: inline-flex;\n max-height: 100%;\n max-width: 100%;\n ",[b("preview-disabled","\n cursor: pointer;\n "),C("img","\n border-radius: inherit;\n ")])]),vn=U({name:"ImagePreview",props:Object.assign(Object.assign({},hn),{src:String,show:{type:Boolean,default:void 0},defaultShow:Boolean,"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],onNext:Function,onPrev:Function,onClose:[Function,Array]}),setup(e){const{src:n}=G(e),{mergedClsPrefixRef:t}=y(e),r=u("Image","-image",gn,de,e,t);let o=null;const i=K(null),l=K(null),a=K(!1),{localeRef:s}=d("Image"),c=K(e.defaultShow),p=V(e,"show"),f=h(p,c);function g(n){var t,r;switch(n.key){case" ":n.preventDefault();break;case"ArrowLeft":null===(t=e.onPrev)||void 0===t||t.call(e);break;case"ArrowRight":null===(r=e.onNext)||void 0===r||r.call(e);break;case"ArrowUp":n.preventDefault(),W();break;case"ArrowDown":n.preventDefault(),q();break;case"Escape":Y()}}function m(n){const{onUpdateShow:t,"onUpdate:show":r}=e;t&&v(t,n),r&&v(r,n),c.value=n,a.value=!0}Z(f,e=>{e?L("keydown",document,g):T("keydown",document,g)}),ne(()=>{T("keydown",document,g)});let b=0,x=0,C=0,k=0,P=0,S=0,O=0,z=0,$=!1;function B(e){const{clientX:n,clientY:t}=e;C=n-b,k=t-x,te(X)}function D(e){const{value:n}=i;if(!n)return{offsetX:0,offsetY:0};const t=n.getBoundingClientRect(),{moveVerticalDirection:r,moveHorizontalDirection:o,deltaHorizontal:l,deltaVertical:a}=e||{};let s=0,d=0;return s=t.width<=window.innerWidth?0:t.left>0?(t.width-window.innerWidth)/2:t.right<window.innerWidth?-(t.width-window.innerWidth)/2:"horizontalRight"===o?Math.min((t.width-window.innerWidth)/2,P-(null!=l?l:0)):Math.max(-(t.width-window.innerWidth)/2,P-(null!=l?l:0)),d=t.height<=window.innerHeight?0:t.top>0?(t.height-window.innerHeight)/2:t.bottom<window.innerHeight?-(t.height-window.innerHeight)/2:"verticalBottom"===r?Math.min((t.height-window.innerHeight)/2,S-(null!=a?a:0)):Math.max(-(t.height-window.innerHeight)/2,S-(null!=a?a:0)),{offsetX:s,offsetY:d}}function j(e){T("mousemove",document,B),T("mouseup",document,j);const{clientX:n,clientY:t}=e;$=!1;const r=D(function(e){const{mouseUpClientX:n,mouseUpClientY:t,mouseDownClientX:r,mouseDownClientY:o}=e,i=r-n,l=o-t;return{moveVerticalDirection:"vertical"+(l>0?"Top":"Bottom"),moveHorizontalDirection:"horizontal"+(i>0?"Left":"Right"),deltaHorizontal:i,deltaVertical:l}}({mouseUpClientX:n,mouseUpClientY:t,mouseDownClientX:O,mouseDownClientY:z}));C=r.offsetX,k=r.offsetY,X()}const I=H(fn,null);let A=0,U=1,M=0;function E(){U=1,A=0}function N(){const{value:e}=i;if(!e)return 1;const{innerWidth:n,innerHeight:t}=window,r=e.naturalHeight/(t-32),o=e.naturalWidth/(n-32);return r<1&&o<1?1:Math.max(r,o)}function W(){const e=function(){const{value:e}=i;if(!e)return 1;const{innerWidth:n,innerHeight:t}=window,r=Math.max(1,e.naturalHeight/(t-32)),o=Math.max(1,e.naturalWidth/(n-32));return Math.max(3,2*r,2*o)}();U<e&&(A+=1,U=Math.min(e,Math.pow(1.5,A)),X())}function q(){if(U>.5){const e=U;A-=1,U=Math.max(.5,Math.pow(1.5,A));const n=e-U;X(!1);const t=D();U+=n,X(!1),U-=n,C=t.offsetX,k=t.offsetY,X()}}function X(e=!0){var n;const{value:t}=i;if(!t)return;const{style:r}=t,o=J(null===(n=null==I?void 0:I.previewedImgPropsRef.value)||void 0===n?void 0:n.style);let l="";if("string"==typeof o)l=`${o};`;else for(const i in o)l+=`${Ve(i)}: ${o[i]};`;const a=`transform-origin: center; transform: translateX(${C}px) translateY(${k}px) rotate(${M}deg) scale(${U});`;r.cssText=$?`${l}cursor: grabbing; transition: none;${a}`:`${l}cursor: grab;${a}${e?"":"transition: none;"}`,e||t.offsetHeight}function Y(){if(f.value){const{onClose:n}=e;n&&v(n),m(!1),c.value=!1}}const Q={setThumbnailEl:e=>{o=e}};const ee=_(()=>{const{common:{cubicBezierEaseInOut:e},self:{toolbarIconColor:n,toolbarBorderRadius:t,toolbarBoxShadow:o,toolbarColor:i}}=r.value;return{"--n-bezier":e,"--n-toolbar-icon-color":n,"--n-toolbar-color":i,"--n-toolbar-border-radius":t,"--n-toolbar-box-shadow":o}}),{inlineThemeDisabled:re}=y(),oe=re?R("image-preview",void 0,ee,e):void 0;return Object.assign({clsPrefix:t,previewRef:i,previewWrapperRef:l,previewSrc:n,mergedShow:f,appear:w(),displayed:a,previewedImgProps:null==I?void 0:I.previewedImgPropsRef,handleWheel:function(e){e.preventDefault()},handlePreviewMousedown:function(e){var n,t;if(null===(t=null===(n=null==I?void 0:I.previewedImgPropsRef.value)||void 0===n?void 0:n.onMousedown)||void 0===t||t.call(n,e),0!==e.button)return;const{clientX:r,clientY:o}=e;$=!0,b=r-C,x=o-k,P=C,S=k,O=r,z=o,X(),L("mousemove",document,B),L("mouseup",document,j)},handlePreviewDblclick:function(e){var n,t;null===(t=null===(n=null==I?void 0:I.previewedImgPropsRef.value)||void 0===n?void 0:n.onDblclick)||void 0===t||t.call(n,e);const r=N();U=U===r?1:r,X()},syncTransformOrigin:function(){const{value:e}=l;if(!o||!e)return;const{style:n}=e,t=o.getBoundingClientRect();n.transformOrigin=`${t.left+t.width/2}px ${t.top+t.height/2}px`},handleAfterLeave:()=>{E(),M=0,a.value=!1},handleDragStart:e=>{var n,t;null===(t=null===(n=null==I?void 0:I.previewedImgPropsRef.value)||void 0===n?void 0:n.onDragstart)||void 0===t||t.call(n,e),e.preventDefault()},zoomIn:W,zoomOut:q,handleDownloadClick:function(){const e=n.value;e&&ge(e,void 0)},rotateCounterclockwise:function(){M-=90,X()},rotateClockwise:function(){M+=90,X()},handleSwitchPrev:function(){var n;E(),M=0,null===(n=e.onPrev)||void 0===n||n.call(e)},handleSwitchNext:function(){var n;E(),M=0,null===(n=e.onNext)||void 0===n||n.call(e)},withTooltip:function(n,t){if(e.showToolbarTooltip){const{value:e}=r;return F(pe,{to:!1,theme:e.peers.Tooltip,themeOverrides:e.peerOverrides.Tooltip,keepAliveOnHover:!1},{default:()=>s.value[t],trigger:()=>n})}return n},resizeToOrignalImageSize:function(){U=N(),A=Math.ceil(Math.log(U)/Math.log(1.5)),C=0,k=0,X()},cssVars:re?void 0:ee,themeClass:null==oe?void 0:oe.themeClass,onRender:null==oe?void 0:oe.onRender,doUpdateShow:m,close:Y},Q)},render(){var e,n;const{clsPrefix:t,renderToolbar:r,withTooltip:o}=this,i=o(F(k,{clsPrefix:t,onClick:this.handleSwitchPrev},{default:un}),"tipPrevious"),l=o(F(k,{clsPrefix:t,onClick:this.handleSwitchNext},{default:cn}),"tipNext"),a=o(F(k,{clsPrefix:t,onClick:this.rotateCounterclockwise},{default:()=>F(en,null)}),"tipCounterclockwise"),d=o(F(k,{clsPrefix:t,onClick:this.rotateClockwise},{default:()=>F(Ke,null)}),"tipClockwise"),u=o(F(k,{clsPrefix:t,onClick:this.resizeToOrignalImageSize},{default:()=>F(Je,null)}),"tipOriginalSize"),c=o(F(k,{clsPrefix:t,onClick:this.zoomOut},{default:()=>F(rn,null)}),"tipZoomOut"),p=o(F(k,{clsPrefix:t,onClick:this.handleDownloadClick},{default:()=>F(Ye,null)}),"tipDownload"),h=o(F(k,{clsPrefix:t,onClick:()=>this.close()},{default:pn}),"tipClose"),g=o(F(k,{clsPrefix:t,onClick:this.zoomIn},{default:()=>F(tn,null)}),"tipZoomIn");return F(Y,null,null===(n=(e=this.$slots).default)||void 0===n?void 0:n.call(e),F(s,{show:this.mergedShow},{default:()=>{var e;return this.mergedShow||this.displayed?(null===(e=this.onRender)||void 0===e||e.call(this),ee(F("div",{ref:"containerRef",class:[`${t}-image-preview-container`,this.themeClass],style:this.cssVars,onWheel:this.handleWheel},F(Q,{name:"fade-in-transition",appear:this.appear},{default:()=>this.mergedShow?F("div",{class:`${t}-image-preview-overlay`,onClick:()=>this.close()}):null}),this.showToolbar?F(Q,{name:"fade-in-transition",appear:this.appear},{default:()=>this.mergedShow?F("div",{class:`${t}-image-preview-toolbar`},r?r({nodes:{prev:i,next:l,rotateCounterclockwise:a,rotateClockwise:d,resizeToOriginalSize:u,zoomOut:c,zoomIn:g,download:p,close:h}}):F(Y,null,this.onPrev?F(Y,null,i,l):null,a,d,u,c,g,p,h)):null}):null,F(Q,{name:"fade-in-scale-up-transition",onAfterLeave:this.handleAfterLeave,appear:this.appear,onEnter:this.syncTransformOrigin,onBeforeLeave:this.syncTransformOrigin},{default:()=>{const{previewedImgProps:e={}}=this;return ee(F("div",{class:`${t}-image-preview-wrapper`,ref:"previewWrapperRef"},F("img",Object.assign({},e,{draggable:!1,onMousedown:this.handlePreviewMousedown,onDblclick:this.handlePreviewDblclick,class:[`${t}-image-preview`,e.class],key:this.previewSrc,src:this.previewSrc,ref:"previewRef",onDragstart:this.handleDragStart}))),[[X,this.mergedShow]])}})),[[f,{enabled:this.mergedShow}]])):null}}))}}),mn=m("n-image-group"),wn=U({name:"ImageGroup",props:Object.assign(Object.assign({},hn),{srcList:Array,current:Number,defaultCurrent:{type:Number,default:0},show:{type:Boolean,default:void 0},defaultShow:Boolean,onUpdateShow:[Function,Array],"onUpdate:show":[Function,Array],onUpdateCurrent:[Function,Array],"onUpdate:current":[Function,Array]}),setup(e){const{mergedClsPrefixRef:n}=y(e),r=`c${z()}`,o=K(null),i=K(e.defaultShow),l=V(e,"show"),a=h(l,i),s=K(new Map),d=_(()=>{if(e.srcList){const n=new Map;return e.srcList.forEach((e,t)=>{n.set(`p${t}`,e)}),n}return s.value}),u=_(()=>Array.from(d.value.keys())),c=()=>u.value.length;const p=K(e.defaultCurrent),f=V(e,"current"),g=h(f,p),m=n=>{if(n!==g.value){const{onUpdateCurrent:t,"onUpdate:current":r}=e;t&&v(t,n),r&&v(r,n),p.value=n}},w=_(()=>u.value[g.value]),b=_(()=>d.value.get(w.value));function x(n){const{onUpdateShow:t,"onUpdate:show":r}=e;t&&v(t,n),r&&v(r,n),i.value=n}const C=_(()=>{const e=(e,n)=>{for(let t=e;t<=n;t++){const e=u.value[t];if(d.value.get(e))return t}},n=e(g.value+1,c()-1);return void 0===n?e(0,g.value-1):n}),R=_(()=>{const e=(e,n)=>{for(let t=e;t>=n;t--){const e=u.value[t];if(d.value.get(e))return t}},n=e(g.value-1,0);return void 0===n?e(c()-1,g.value+1):n});function k(n){var t,r;1===n?(void 0!==R.value&&m(C.value),null===(t=e.onPreviewNext)||void 0===t||t.call(e)):(void 0!==C.value&&m(R.value),null===(r=e.onPreviewPrev)||void 0===r||r.call(e))}return M(mn,{mergedClsPrefixRef:n,registerImageUrl:function(n,r){e.srcList&&t("image-group","`n-image` can't be placed inside `n-image-group` when image group's `src-list` prop is set.");const o=`r${n}`;return s.value.has(`r${o}`)||s.value.set(o,r),function(){s.value.has(o)||s.value.delete(o)}},setThumbnailEl:e=>{var n;null===(n=o.value)||void 0===n||n.setThumbnailEl(e)},toggleShow:e=>{x(!0),(e=>{const n=u.value.indexOf(e);n!==g.value&&m(n)})(e)},groupId:r,renderToolbarRef:V(e,"renderToolbar")}),{mergedClsPrefix:n,previewInstRef:o,mergedShow:a,src:b,onClose:function(){x(!1)},next:()=>{k(1)},prev:()=>{k(-1)}}},render(){return F(vn,{theme:this.theme,themeOverrides:this.themeOverrides,ref:"previewInstRef",onPrev:this.prev,onNext:this.next,src:this.src,show:this.mergedShow,showToolbar:this.showToolbar,showToolbarTooltip:this.showToolbarTooltip,renderToolbar:this.renderToolbar,onClose:this.onClose},this.$slots)}}),bn=Object.assign({alt:String,height:[String,Number],imgProps:Object,previewedImgProps:Object,lazy:Boolean,intersectionObserverOptions:Object,objectFit:{type:String,default:"fill"},previewSrc:String,fallbackSrc:String,width:[String,Number],src:String,previewDisabled:Boolean,loadDescription:String,onError:Function,onLoad:Function},hn),xn=0,yn=U({name:"Image",props:bn,slots:Object,inheritAttrs:!1,setup(e){const n=K(null),t=K(!1),r=K(null),o=H(mn,null),{mergedClsPrefixRef:i}=o||y(e),l=_(()=>e.previewSrc||e.src),a=K(!1),s=xn++,d=()=>{if(e.previewDisabled||t.value)return;if(o)return o.setThumbnailEl(n.value),void o.toggleShow(`r${s}`);const{value:i}=r;i&&(i.setThumbnailEl(n.value),a.value=!0)},u={click:()=>{d()},showPreview:d},c=K(!e.lazy);W(()=>{var e;null===(e=n.value)||void 0===e||e.setAttribute("data-group-id",(null==o?void 0:o.groupId)||"")}),W(()=>{if(e.lazy&&e.intersectionObserverOptions){let t;const r=N(()=>{null==t||t(),t=void 0,t=dn(n.value,e.intersectionObserverOptions,c)});ne(()=>{r(),null==t||t()})}}),N(()=>{var n;e.src||null===(n=e.imgProps)||void 0===n||n.src,t.value=!1}),N(e=>{var n;const t=null===(n=null==o?void 0:o.registerImageUrl)||void 0===n?void 0:n.call(o,s,l.value||"");e(()=>{null==t||t()})});const p=K(!1);return M(fn,{previewedImgPropsRef:V(e,"previewedImgProps")}),Object.assign({mergedClsPrefix:i,groupId:null==o?void 0:o.groupId,previewInstRef:r,imageRef:n,mergedPreviewSrc:l,showError:t,shouldStartLoading:c,loaded:p,mergedOnClick:n=>{!function(n){var t,r;u.showPreview(),null===(r=null===(t=e.imgProps)||void 0===t?void 0:t.onClick)||void 0===r||r.call(t,n)}(n)},onPreviewClose:function(){a.value=!1},mergedOnError:n=>{if(!c.value)return;t.value=!0;const{onError:r,imgProps:{onError:o}={}}=e;null==r||r(n),null==o||o(n)},mergedOnLoad:n=>{const{onLoad:t,imgProps:{onLoad:r}={}}=e;null==t||t(n),null==r||r(n),p.value=!0},previewShow:a},u)},render(){var e,n;const{mergedClsPrefix:t,imgProps:r={},loaded:o,$attrs:i,lazy:l}=this,a=I(this.$slots.error,()=>[]),s=null===(n=(e=this.$slots).placeholder)||void 0===n?void 0:n.call(e),d=this.src||r.src,u=this.showError&&a.length?a:F("img",Object.assign(Object.assign({},r),{ref:"imageRef",width:this.width||r.width,height:this.height||r.height,src:this.showError?this.fallbackSrc:l&&this.intersectionObserverOptions?this.shouldStartLoading?d:void 0:d,alt:this.alt||r.alt,"aria-label":this.alt||r.alt,onClick:this.mergedOnClick,onError:this.mergedOnError,onLoad:this.mergedOnLoad,loading:on&&l&&!this.intersectionObserverOptions?"lazy":"eager",style:[r.style||"",s&&!o?{height:"0",width:"0",visibility:"hidden"}:"",{objectFit:this.objectFit}],"data-error":this.showError,"data-preview-src":this.previewSrc||this.src}));return F("div",Object.assign({},i,{role:"none",class:[i.class,`${t}-image`,(this.previewDisabled||this.showError)&&`${t}-image--preview-disabled`]}),this.groupId?u:F(vn,{theme:this.theme,themeOverrides:this.themeOverrides,ref:"previewInstRef",showToolbar:this.showToolbar,showToolbarTooltip:this.showToolbarTooltip,renderToolbar:this.renderToolbar,src:this.mergedPreviewSrc,show:!this.previewDisabled&&this.previewShow,onClose:this.onPreviewClose},{default:()=>u}),!o&&s)}}),Cn={success:F(ie,null),error:F(ae,null),warning:F(se,null),info:F(le,null)},Rn=U({name:"ProgressCircle",props:{clsPrefix:{type:String,required:!0},status:{type:String,required:!0},strokeWidth:{type:Number,required:!0},fillColor:[String,Object],railColor:String,railStyle:[String,Object],percentage:{type:Number,default:0},offsetDegree:{type:Number,default:0},showIndicator:{type:Boolean,required:!0},indicatorTextColor:String,unit:String,viewBoxWidth:{type:Number,required:!0},gapDegree:{type:Number,required:!0},gapOffsetDegree:{type:Number,default:0}},setup(e,{slots:n}){const t=_(()=>{const n="gradient",{fillColor:t}=e;return"object"==typeof t?`${n}-${g(JSON.stringify(t))}`:n});function r(n,r,o,i){const{gapDegree:l,viewBoxWidth:a,strokeWidth:s}=e,d=50,u=50+s/2,c=`M ${u},${u} m 0,50\n a 50,50 0 1 1 0,-100\n a 50,50 0 1 1 0,100`,p=2*Math.PI*d;return{pathString:c,pathStyle:{stroke:"rail"===i?o:"object"==typeof e.fillColor?`url(#${t.value})`:o,strokeDasharray:`${Math.min(n,100)/100*(p-l)}px ${8*a}px`,strokeDashoffset:`-${l/2}px`,transformOrigin:r?"center":void 0,transform:r?`rotate(${r}deg)`:void 0}}}return()=>{const{fillColor:o,railColor:i,strokeWidth:l,offsetDegree:a,status:s,percentage:d,showIndicator:u,indicatorTextColor:c,unit:p,gapOffsetDegree:h,clsPrefix:f}=e,{pathString:g,pathStyle:v}=r(100,0,i,"rail"),{pathString:m,pathStyle:w}=r(d,a,o,"fill"),b=100+l;return F("div",{class:`${f}-progress-content`,role:"none"},F("div",{class:`${f}-progress-graph`,"aria-hidden":!0},F("div",{class:`${f}-progress-graph-circle`,style:{transform:h?`rotate(${h}deg)`:void 0}},F("svg",{viewBox:`0 0 ${b} ${b}`},(()=>{const n="object"==typeof e.fillColor,r=n?e.fillColor.stops[0]:"",o=n?e.fillColor.stops[1]:"";return n&&F("defs",null,F("linearGradient",{id:t.value,x1:"0%",y1:"100%",x2:"100%",y2:"0%"},F("stop",{offset:"0%","stop-color":r}),F("stop",{offset:"100%","stop-color":o})))})(),F("g",null,F("path",{class:`${f}-progress-graph-circle-rail`,d:g,"stroke-width":l,"stroke-linecap":"round",fill:"none",style:v})),F("g",null,F("path",{class:[`${f}-progress-graph-circle-fill`,0===d&&`${f}-progress-graph-circle-fill--empty`],d:m,"stroke-width":l,"stroke-linecap":"round",fill:"none",style:w}))))),u?F("div",null,n.default?F("div",{class:`${f}-progress-custom-content`,role:"none"},n.default()):"default"!==s?F("div",{class:`${f}-progress-icon`,"aria-hidden":!0},F(k,{clsPrefix:f},{default:()=>Cn[s]})):F("div",{class:`${f}-progress-text`,style:{color:c},role:"none"},F("span",{class:`${f}-progress-text__percentage`},d),F("span",{class:`${f}-progress-text__unit`},p))):null)}}}),kn={success:F(ie,null),error:F(ae,null),warning:F(se,null),info:F(le,null)},Pn=U({name:"ProgressLine",props:{clsPrefix:{type:String,required:!0},percentage:{type:Number,default:0},railColor:String,railStyle:[String,Object],fillColor:[String,Object],status:{type:String,required:!0},indicatorPlacement:{type:String,required:!0},indicatorTextColor:String,unit:{type:String,default:"%"},processing:{type:Boolean,required:!0},showIndicator:{type:Boolean,required:!0},height:[String,Number],railBorderRadius:[String,Number],fillBorderRadius:[String,Number]},setup(e,{slots:n}){const t=_(()=>P(e.height)),r=_(()=>{var n,t;return"object"==typeof e.fillColor?`linear-gradient(to right, ${null===(n=e.fillColor)||void 0===n?void 0:n.stops[0]} , ${null===(t=e.fillColor)||void 0===t?void 0:t.stops[1]})`:e.fillColor}),o=_(()=>void 0!==e.railBorderRadius?P(e.railBorderRadius):void 0!==e.height?P(e.height,{c:.5}):""),i=_(()=>void 0!==e.fillBorderRadius?P(e.fillBorderRadius):void 0!==e.railBorderRadius?P(e.railBorderRadius):void 0!==e.height?P(e.height,{c:.5}):"");return()=>{const{indicatorPlacement:l,railColor:a,railStyle:s,percentage:d,unit:u,indicatorTextColor:c,status:p,showIndicator:h,processing:f,clsPrefix:g}=e;return F("div",{class:`${g}-progress-content`,role:"none"},F("div",{class:`${g}-progress-graph`,"aria-hidden":!0},F("div",{class:[`${g}-progress-graph-line`,{[`${g}-progress-graph-line--indicator-${l}`]:!0}]},F("div",{class:`${g}-progress-graph-line-rail`,style:[{backgroundColor:a,height:t.value,borderRadius:o.value},s]},F("div",{class:[`${g}-progress-graph-line-fill`,f&&`${g}-progress-graph-line-fill--processing`],style:{maxWidth:`${e.percentage}%`,background:r.value,height:t.value,lineHeight:t.value,borderRadius:i.value}},"inside"===l?F("div",{class:`${g}-progress-graph-line-indicator`,style:{color:c}},n.default?n.default():`${d}${u}`):null)))),h&&"outside"===l?F("div",null,n.default?F("div",{class:`${g}-progress-custom-content`,style:{color:c},role:"none"},n.default()):"default"===p?F("div",{role:"none",class:`${g}-progress-icon ${g}-progress-icon--as-text`,style:{color:c}},d,u):F("div",{class:`${g}-progress-icon`,"aria-hidden":!0},F(k,{clsPrefix:g},{default:()=>kn[p]}))):null)}}});function Sn(e,n,t=100){return`m ${t/2} ${t/2-e} a ${e} ${e} 0 1 1 0 ${2*e} a ${e} ${e} 0 1 1 0 -${2*e}`}var On=U({name:"ProgressMultipleCircle",props:{clsPrefix:{type:String,required:!0},viewBoxWidth:{type:Number,required:!0},percentage:{type:Array,default:[0]},strokeWidth:{type:Number,required:!0},circleGap:{type:Number,required:!0},showIndicator:{type:Boolean,required:!0},fillColor:{type:Array,default:()=>[]},railColor:{type:Array,default:()=>[]},railStyle:{type:Array,default:()=>[]}},setup(e,{slots:n}){const t=_(()=>e.percentage.map((n,t)=>`${Math.PI*n/100*(e.viewBoxWidth/2-e.strokeWidth/2*(1+2*t)-e.circleGap*t)*2}, ${8*e.viewBoxWidth}`));return()=>{const{viewBoxWidth:r,strokeWidth:o,circleGap:i,showIndicator:l,fillColor:a,railColor:s,railStyle:d,percentage:u,clsPrefix:c}=e;return F("div",{class:`${c}-progress-content`,role:"none"},F("div",{class:`${c}-progress-graph`,"aria-hidden":!0},F("div",{class:`${c}-progress-graph-circle`},F("svg",{viewBox:`0 0 ${r} ${r}`},F("defs",null,u.map((n,t)=>((n,t)=>{const r=e.fillColor[t],o="object"==typeof r?r.stops[0]:"",i="object"==typeof r?r.stops[1]:"";return"object"==typeof e.fillColor[t]&&F("linearGradient",{id:`gradient-${t}`,x1:"100%",y1:"0%",x2:"0%",y2:"100%"},F("stop",{offset:"0%","stop-color":o}),F("stop",{offset:"100%","stop-color":i}))})(0,t))),u.map((e,n)=>F("g",{key:n},F("path",{class:`${c}-progress-graph-circle-rail`,d:Sn(r/2-o/2*(1+2*n)-i*n,0,r),"stroke-width":o,"stroke-linecap":"round",fill:"none",style:[{strokeDashoffset:0,stroke:s[n]},d[n]]}),F("path",{class:[`${c}-progress-graph-circle-fill`,0===e&&`${c}-progress-graph-circle-fill--empty`],d:Sn(r/2-o/2*(1+2*n)-i*n,0,r),"stroke-width":o,"stroke-linecap":"round",fill:"none",style:{strokeDasharray:t.value[n],strokeDashoffset:0,stroke:"object"==typeof a[n]?`url(#gradient-${n})`:a[n]}})))))),l&&n.default?F("div",null,F("div",{class:`${c}-progress-text`},n.default())):null)}}}),Ln=C([x("progress",{display:"inline-block"},[x("progress-icon","\n color: var(--n-icon-color);\n transition: color .3s var(--n-bezier);\n "),A("line","\n width: 100%;\n display: block;\n ",[x("progress-content","\n display: flex;\n align-items: center;\n ",[x("progress-graph",{flex:1})]),x("progress-custom-content",{marginLeft:"14px"}),x("progress-icon","\n width: 30px;\n padding-left: 14px;\n height: var(--n-icon-size-line);\n line-height: var(--n-icon-size-line);\n font-size: var(--n-icon-size-line);\n ",[A("as-text","\n color: var(--n-text-color-line-outer);\n text-align: center;\n width: 40px;\n font-size: var(--n-font-size);\n padding-left: 4px;\n transition: color .3s var(--n-bezier);\n ")])]),A("circle, dashboard",{width:"120px"},[x("progress-custom-content","\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n "),x("progress-text","\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n display: flex;\n align-items: center;\n color: inherit;\n font-size: var(--n-font-size-circle);\n color: var(--n-text-color-circle);\n font-weight: var(--n-font-weight-circle);\n transition: color .3s var(--n-bezier);\n white-space: nowrap;\n "),x("progress-icon","\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n display: flex;\n align-items: center;\n color: var(--n-icon-color);\n font-size: var(--n-icon-size-circle);\n ")]),A("multiple-circle","\n width: 200px;\n color: inherit;\n ",[x("progress-text","\n font-weight: var(--n-font-weight-circle);\n color: var(--n-text-color-circle);\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n transition: color .3s var(--n-bezier);\n ")]),x("progress-content",{position:"relative"}),x("progress-graph",{position:"relative"},[x("progress-graph-circle",[C("svg",{verticalAlign:"bottom"}),x("progress-graph-circle-fill","\n stroke: var(--n-fill-color);\n transition:\n opacity .3s var(--n-bezier),\n stroke .3s var(--n-bezier),\n stroke-dasharray .3s var(--n-bezier);\n ",[A("empty",{opacity:0})]),x("progress-graph-circle-rail","\n transition: stroke .3s var(--n-bezier);\n overflow: hidden;\n stroke: var(--n-rail-color);\n ")]),x("progress-graph-line",[A("indicator-inside",[x("progress-graph-line-rail","\n height: 16px;\n line-height: 16px;\n border-radius: 10px;\n ",[x("progress-graph-line-fill","\n height: inherit;\n border-radius: 10px;\n "),x("progress-graph-line-indicator","\n background: #0000;\n white-space: nowrap;\n text-align: right;\n margin-left: 14px;\n margin-right: 14px;\n height: inherit;\n font-size: 12px;\n color: var(--n-text-color-line-inner);\n transition: color .3s var(--n-bezier);\n ")])]),A("indicator-inside-label","\n height: 16px;\n display: flex;\n align-items: center;\n ",[x("progress-graph-line-rail","\n flex: 1;\n transition: background-color .3s var(--n-bezier);\n "),x("progress-graph-line-indicator","\n background: var(--n-fill-color);\n font-size: 12px;\n transform: translateZ(0);\n display: flex;\n vertical-align: middle;\n height: 16px;\n line-height: 16px;\n padding: 0 10px;\n border-radius: 10px;\n position: absolute;\n white-space: nowrap;\n color: var(--n-text-color-line-inner);\n transition:\n right .2s var(--n-bezier),\n color .3s var(--n-bezier),\n background-color .3s var(--n-bezier);\n ")]),x("progress-graph-line-rail","\n position: relative;\n overflow: hidden;\n height: var(--n-rail-height);\n border-radius: 5px;\n background-color: var(--n-rail-color);\n transition: background-color .3s var(--n-bezier);\n ",[x("progress-graph-line-fill","\n background: var(--n-fill-color);\n position: relative;\n border-radius: 5px;\n height: inherit;\n width: 100%;\n max-width: 0%;\n transition:\n background-color .3s var(--n-bezier),\n max-width .2s var(--n-bezier);\n ",[A("processing",[C("&::after",'\n content: "";\n background-image: var(--n-line-bg-processing);\n animation: progress-processing-animation 2s var(--n-bezier) infinite;\n ')])])])])])]),C("@keyframes progress-processing-animation","\n 0% {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 100%;\n opacity: 1;\n }\n 66% {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n opacity: 0;\n }\n 100% {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n opacity: 0;\n }\n ")]),zn=U({name:"Progress",props:Object.assign(Object.assign({},u.props),{processing:Boolean,type:{type:String,default:"line"},gapDegree:Number,gapOffsetDegree:Number,status:{type:String,default:"default"},railColor:[String,Array],railStyle:[String,Array],color:[String,Array,Object],viewBoxWidth:{type:Number,default:100},strokeWidth:{type:Number,default:7},percentage:[Number,Array],unit:{type:String,default:"%"},showIndicator:{type:Boolean,default:!0},indicatorPosition:{type:String,default:"outside"},indicatorPlacement:{type:String,default:"outside"},indicatorTextColor:String,circleGap:{type:Number,default:1},height:Number,borderRadius:[String,Number],fillBorderRadius:[String,Number],offsetDegree:Number}),setup(e){const n=_(()=>e.indicatorPlacement||e.indicatorPosition),t=_(()=>e.gapDegree||0===e.gapDegree?e.gapDegree:"dashboard"===e.type?75:void 0),{mergedClsPrefixRef:r,inlineThemeDisabled:o}=y(e),i=u("Progress","-progress",Ln,ce,e,r),l=_(()=>{const{status:n}=e,{common:{cubicBezierEaseInOut:t},self:{fontSize:r,fontSizeCircle:o,railColor:l,railHeight:a,iconSizeCircle:s,iconSizeLine:d,textColorCircle:u,textColorLineInner:c,textColorLineOuter:p,lineBgProcessing:h,fontWeightCircle:f,[j("iconColor",n)]:g,[j("fillColor",n)]:v}}=i.value;return{"--n-bezier":t,"--n-fill-color":v,"--n-font-size":r,"--n-font-size-circle":o,"--n-font-weight-circle":f,"--n-icon-color":g,"--n-icon-size-circle":s,"--n-icon-size-line":d,"--n-line-bg-processing":h,"--n-rail-color":l,"--n-rail-height":a,"--n-text-color-circle":u,"--n-text-color-line-inner":c,"--n-text-color-line-outer":p}}),a=o?R("progress",_(()=>e.status[0]),l,e):void 0;return{mergedClsPrefix:r,mergedIndicatorPlacement:n,gapDeg:t,cssVars:o?void 0:l,themeClass:null==a?void 0:a.themeClass,onRender:null==a?void 0:a.onRender}},render(){const{type:e,cssVars:n,indicatorTextColor:t,showIndicator:r,status:o,railColor:i,railStyle:l,color:a,percentage:s,viewBoxWidth:d,strokeWidth:u,mergedIndicatorPlacement:c,unit:p,borderRadius:h,fillBorderRadius:f,height:g,processing:v,circleGap:m,mergedClsPrefix:w,gapDeg:b,gapOffsetDegree:x,themeClass:y,$slots:C,onRender:R}=this;return null==R||R(),F("div",{class:[y,`${w}-progress`,`${w}-progress--${e}`,`${w}-progress--${o}`],style:n,"aria-valuemax":100,"aria-valuemin":0,"aria-valuenow":s,role:"circle"===e||"line"===e||"dashboard"===e?"progressbar":"none"},"circle"===e||"dashboard"===e?F(Rn,{clsPrefix:w,status:o,showIndicator:r,indicatorTextColor:t,railColor:i,fillColor:a,railStyle:l,offsetDegree:this.offsetDegree,percentage:s,viewBoxWidth:d,strokeWidth:u,gapDegree:void 0===b?"dashboard"===e?75:0:b,gapOffsetDegree:x,unit:p},C):"line"===e?F(Pn,{clsPrefix:w,status:o,showIndicator:r,indicatorTextColor:t,railColor:i,fillColor:a,railStyle:l,percentage:s,processing:v,indicatorPlacement:c,unit:p,fillBorderRadius:f,railBorderRadius:h,height:g},C):"multiple-circle"===e?F(On,{clsPrefix:w,strokeWidth:u,railColor:i,fillColor:a,railStyle:l,viewBoxWidth:d,percentage:s,showIndicator:r,circleGap:m},C):null)}}),$n=m("n-upload"),Tn=C([x("upload","width: 100%;",[A("dragger-inside",[x("upload-trigger","\n display: block;\n ")]),A("drag-over",[x("upload-dragger","\n border: var(--n-dragger-border-hover);\n ")])]),x("upload-dragger","\n cursor: pointer;\n box-sizing: border-box;\n width: 100%;\n text-align: center;\n border-radius: var(--n-border-radius);\n padding: 24px;\n opacity: 1;\n transition:\n opacity .3s var(--n-bezier),\n border-color .3s var(--n-bezier),\n background-color .3s var(--n-bezier);\n background-color: var(--n-dragger-color);\n border: var(--n-dragger-border);\n ",[C("&:hover","\n border: var(--n-dragger-border-hover);\n "),A("disabled","\n cursor: not-allowed;\n ")]),x("upload-trigger","\n display: inline-block;\n box-sizing: border-box;\n opacity: 1;\n transition: opacity .3s var(--n-bezier);\n ",[C("+",[x("upload-file-list","margin-top: 8px;")]),A("disabled","\n opacity: var(--n-item-disabled-opacity);\n cursor: not-allowed;\n "),A("image-card","\n width: 96px;\n height: 96px;\n ",[x("base-icon","\n font-size: 24px;\n "),x("upload-dragger","\n padding: 0;\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n ")])]),x("upload-file-list","\n line-height: var(--n-line-height);\n opacity: 1;\n transition: opacity .3s var(--n-bezier);\n ",[C("a, img","outline: none;"),A("disabled","\n opacity: var(--n-item-disabled-opacity);\n cursor: not-allowed;\n ",[x("upload-file","cursor: not-allowed;")]),A("grid","\n display: grid;\n grid-template-columns: repeat(auto-fill, 96px);\n grid-gap: 8px;\n margin-top: 0;\n "),x("upload-file","\n display: block;\n box-sizing: border-box;\n cursor: default;\n padding: 0px 12px 0 6px;\n transition: background-color .3s var(--n-bezier);\n border-radius: var(--n-border-radius);\n ",[fe(),x("progress",[fe({foldPadding:!0})]),C("&:hover","\n background-color: var(--n-item-color-hover);\n ",[x("upload-file-info",[B("action","\n opacity: 1;\n ")])]),A("image-type","\n border-radius: var(--n-border-radius);\n text-decoration: underline;\n text-decoration-color: #0000;\n ",[x("upload-file-info","\n padding-top: 0px;\n padding-bottom: 0px;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 6px 0;\n ",[x("progress","\n padding: 2px 0;\n margin-bottom: 0;\n "),B("name","\n padding: 0 8px;\n "),B("thumbnail","\n width: 32px;\n height: 32px;\n font-size: 28px;\n display: flex;\n justify-content: center;\n align-items: center;\n ",[C("img","\n width: 100%;\n ")])])]),A("text-type",[x("progress","\n box-sizing: border-box;\n padding-bottom: 6px;\n margin-bottom: 6px;\n ")]),A("image-card-type","\n position: relative;\n width: 96px;\n height: 96px;\n border: var(--n-item-border-image-card);\n border-radius: var(--n-border-radius);\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: border-color .3s var(--n-bezier), background-color .3s var(--n-bezier);\n border-radius: var(--n-border-radius);\n overflow: hidden;\n ",[x("progress","\n position: absolute;\n left: 8px;\n bottom: 8px;\n right: 8px;\n width: unset;\n "),x("upload-file-info","\n padding: 0;\n width: 100%;\n height: 100%;\n ",[B("thumbnail","\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: 36px;\n ",[C("img","\n width: 100%;\n ")])]),C("&::before",'\n position: absolute;\n z-index: 1;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n border-radius: inherit;\n opacity: 0;\n transition: opacity .2s var(--n-bezier);\n content: "";\n '),C("&:hover",[C("&::before","opacity: 1;"),x("upload-file-info",[B("thumbnail","opacity: .12;")])])]),A("error-status",[C("&:hover","\n background-color: var(--n-item-color-hover-error);\n "),x("upload-file-info",[B("name","color: var(--n-item-text-color-error);"),B("thumbnail","color: var(--n-item-text-color-error);")]),A("image-card-type","\n border: var(--n-item-border-image-card-error);\n ")]),A("with-url","\n cursor: pointer;\n ",[x("upload-file-info",[B("name","\n color: var(--n-item-text-color-success);\n text-decoration-color: var(--n-item-text-color-success);\n ",[C("a","\n text-decoration: underline;\n ")])])]),x("upload-file-info","\n position: relative;\n padding-top: 6px;\n padding-bottom: 6px;\n display: flex;\n flex-wrap: nowrap;\n ",[B("thumbnail","\n font-size: 18px;\n opacity: 1;\n transition: opacity .2s var(--n-bezier);\n color: var(--n-item-icon-color);\n ",[x("base-icon","\n margin-right: 2px;\n vertical-align: middle;\n transition: color .3s var(--n-bezier);\n ")]),B("action","\n padding-top: inherit;\n padding-bottom: inherit;\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n width: 80px;\n display: flex;\n align-items: center;\n transition: opacity .2s var(--n-bezier);\n justify-content: flex-end;\n opacity: 0;\n ",[x("button",[C("&:not(:last-child)",{marginRight:"4px"}),x("base-icon",[C("svg",[c()])])]),A("image-type","\n position: relative;\n max-width: 80px;\n width: auto;\n "),A("image-card-type","\n z-index: 2;\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n ")]),B("name","\n color: var(--n-item-text-color);\n flex: 1;\n display: flex;\n justify-content: center;\n text-overflow: ellipsis;\n overflow: hidden;\n flex-direction: column;\n text-decoration-color: #0000;\n font-size: var(--n-font-size);\n transition:\n color .3s var(--n-bezier),\n text-decoration-color .3s var(--n-bezier); \n ",[C("a","\n color: inherit;\n text-decoration: underline;\n ")])])])]),x("upload-file-input","\n display: none;\n width: 0;\n height: 0;\n opacity: 0;\n ")]),Bn="__UPLOAD_DRAGGER__",Dn=U({name:"UploadDragger",[Bn]:!0,setup(e,{slots:n}){const r=H($n,null);return r||t("upload-dragger","`n-upload-dragger` must be placed inside `n-upload`."),()=>{const{mergedClsPrefixRef:{value:e},mergedDisabledRef:{value:t},maxReachedRef:{value:o}}=r;return F("div",{class:[`${e}-upload-dragger`,(t||o)&&`${e}-upload-dragger--disabled`]},n)}}});function jn(){return F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 28 28"},F("g",{fill:"none"},F("path",{d:"M21.75 3A3.25 3.25 0 0 1 25 6.25v15.5A3.25 3.25 0 0 1 21.75 25H6.25A3.25 3.25 0 0 1 3 21.75V6.25A3.25 3.25 0 0 1 6.25 3h15.5zm.583 20.4l-7.807-7.68a.75.75 0 0 0-.968-.07l-.084.07l-7.808 7.68c.183.065.38.1.584.1h15.5c.204 0 .4-.035.583-.1l-7.807-7.68l7.807 7.68zM21.75 4.5H6.25A1.75 1.75 0 0 0 4.5 6.25v15.5c0 .208.036.408.103.593l7.82-7.692a2.25 2.25 0 0 1 3.026-.117l.129.117l7.82 7.692c.066-.185.102-.385.102-.593V6.25a1.75 1.75 0 0 0-1.75-1.75zm-3.25 3a2.5 2.5 0 1 1 0 5a2.5 2.5 0 0 1 0-5zm0 1.5a1 1 0 1 0 0 2a1 1 0 0 0 0-2z",fill:"currentColor"})))}function In(){return F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 28 28"},F("g",{fill:"none"},F("path",{d:"M6.4 2A2.4 2.4 0 0 0 4 4.4v19.2A2.4 2.4 0 0 0 6.4 26h15.2a2.4 2.4 0 0 0 2.4-2.4V11.578c0-.729-.29-1.428-.805-1.944l-6.931-6.931A2.4 2.4 0 0 0 14.567 2H6.4zm-.9 2.4a.9.9 0 0 1 .9-.9H14V10a2 2 0 0 0 2 2h6.5v11.6a.9.9 0 0 1-.9.9H6.4a.9.9 0 0 1-.9-.9V4.4zm16.44 6.1H16a.5.5 0 0 1-.5-.5V4.06l6.44 6.44z",fill:"currentColor"})))}var An=U({name:"UploadProgress",props:{show:Boolean,percentage:{type:Number,required:!0},status:{type:String,required:!0}},setup:()=>({mergedTheme:H($n).mergedThemeRef}),render(){return F(r,null,{default:()=>this.show?F(zn,{type:"line",showIndicator:!1,percentage:this.percentage,status:this.status,height:2,theme:this.mergedTheme.peers.Progress,themeOverrides:this.mergedTheme.peerOverrides.Progress}):null})}}),Un=function(e,n,t,r){return new(t||(t=Promise))(function(o,i){function l(e){try{s(r.next(e))}catch(n){i(n)}}function a(e){try{s(r.throw(e))}catch(n){i(n)}}function s(e){var n;e.done?o(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(l,a)}s((r=r.apply(e,n||[])).next())})};function Mn(e){return e.includes("image/")}function En(e=""){const n=e.split("/"),t=n[n.length-1].split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(t)||[""])[0]}var Fn=/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico)$/i,Hn=e=>{if(e.type)return Mn(e.type);const n=En(e.name||"");if(Fn.test(n))return!0;const t=e.thumbnailUrl||e.url||"",r=En(t);return!(!/^data:image\//.test(t)&&!Fn.test(r))};var Nn=l&&window.FileReader&&window.File;function Wn(e){return e.isDirectory}function Zn(e){return e.isFile}function qn(e){const{id:n,name:t,percentage:r,status:o,url:i,file:l,thumbnailUrl:a,type:s,fullPath:d,batchId:u}=e;return{id:n,name:t,percentage:null!=r?r:null,status:o,url:null!=i?i:null,file:null!=l?l:null,thumbnailUrl:null!=a?a:null,type:null!=s?s:null,fullPath:null!=d?d:null,batchId:null!=u?u:null}}var _n=function(e,n,t,r){return new(t||(t=Promise))(function(o,i){function l(e){try{s(r.next(e))}catch(n){i(n)}}function a(e){try{s(r.throw(e))}catch(n){i(n)}}function s(e){var n;e.done?o(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(l,a)}s((r=r.apply(e,n||[])).next())})},Vn={paddingMedium:"0 3px",heightMedium:"24px",iconSizeMedium:"18px"},Xn=U({name:"UploadFile",props:{clsPrefix:{type:String,required:!0},file:{type:Object,required:!0},listType:{type:String,required:!0},index:{type:Number,required:!0}},setup(n){const t=H($n),r=K(null),o=K(""),i=_(()=>{const{file:e}=n;return"finished"===e.status?"success":"error"===e.status?"error":"info"}),l=_(()=>{const{file:e}=n;if("error"===e.status)return"error"}),a=_(()=>{const{file:e}=n;return"uploading"===e.status}),s=_(()=>{if(!t.showCancelButtonRef.value)return!1;const{file:e}=n;return["uploading","pending","error"].includes(e.status)}),d=_(()=>{if(!t.showRemoveButtonRef.value)return!1;const{file:e}=n;return["finished"].includes(e.status)}),u=_(()=>{if(!t.showDownloadButtonRef.value)return!1;const{file:e}=n;return["finished"].includes(e.status)}),c=_(()=>{if(!t.showRetryButtonRef.value)return!1;const{file:e}=n;return["error"].includes(e.status)}),h=e(()=>o.value||n.file.thumbnailUrl||n.file.url),f=_(()=>{if(!t.showPreviewButtonRef.value)return!1;const{file:{status:e},listType:r}=n;return["finished"].includes(e)&&h.value&&"image-card"===r});function g(e){const{xhrMap:r,doChange:o,onRemoveRef:{value:i},mergedFileListRef:{value:l}}=t;Promise.resolve(!i||i({file:Object.assign({},e),fileList:l,index:n.index})).then(n=>{if(!1===n)return;const t=Object.assign({},e,{status:"removed"});r.delete(e.id),o(t,void 0,{remove:!0})})}const v=()=>_n(this,void 0,void 0,function*(){const{listType:e}=n;"image"!==e&&"image-card"!==e||t.shouldUseThumbnailUrlRef.value(n.file)&&(o.value=yield t.getFileThumbnailUrlResolver(n.file))});return N(()=>{v()}),{mergedTheme:t.mergedThemeRef,progressStatus:i,buttonType:l,showProgress:a,disabled:t.mergedDisabledRef,showCancelButton:s,showRemoveButton:d,showDownloadButton:u,showRetryButton:c,showPreviewButton:f,mergedThumbnailUrl:h,shouldUseThumbnailUrl:t.shouldUseThumbnailUrlRef,renderIcon:t.renderIconRef,imageRef:r,handleRemoveOrCancelClick:function(e){e.preventDefault();const{file:r}=n;["finished","pending","error"].includes(r.status)?g(r):["uploading"].includes(r.status)?function(e){const{xhrMap:n}=t,r=n.get(e.id);null==r||r.abort(),g(Object.assign({},e))}(r):p("upload","The button clicked type is unknown.")},handleDownloadClick:function(e){e.preventDefault(),function(e){const{onDownloadRef:{value:n},customDownloadRef:{value:r}}=t;Promise.resolve(!n||n(Object.assign({},e))).then(n=>{!1!==n&&(r?r(Object.assign({},e)):ge(e.url,e.name))})}(n.file)},handleRetryClick:function(){return _n(this,void 0,void 0,function*(){const e=t.onRetryRef.value;e&&!1===(yield e({file:n.file}))||t.submit(n.file.id)})},handlePreviewClick:function(e){const{onPreviewRef:{value:o}}=t;if(o)o(n.file,{event:e});else if("image-card"===n.listType){const{value:e}=r;if(!e)return;e.showPreview()}}}},render(){const{clsPrefix:e,mergedTheme:t,listType:r,file:o,renderIcon:i}=this;let l;const a="image"===r;l=a||"image-card"===r?this.shouldUseThumbnailUrl(o)&&this.mergedThumbnailUrl?F("a",{rel:"noopener noreferer",target:"_blank",href:o.url||void 0,class:`${e}-upload-file-info__thumbnail`,onClick:this.handlePreviewClick},"image-card"===r?F(yn,{src:this.mergedThumbnailUrl||void 0,previewSrc:o.url||void 0,alt:o.name,ref:"imageRef"}):F("img",{src:this.mergedThumbnailUrl||void 0,alt:o.name})):F("span",{class:`${e}-upload-file-info__thumbnail`},i?i(o):Hn(o)?F(k,{clsPrefix:e},{default:jn}):F(k,{clsPrefix:e},{default:In})):F("span",{class:`${e}-upload-file-info__thumbnail`},i?i(o):F(k,{clsPrefix:e},{default:()=>F(Xe,null)}));const s=F(An,{show:this.showProgress,percentage:o.percentage||0,status:this.progressStatus}),d="text"===r||"image"===r;return F("div",{class:[`${e}-upload-file`,`${e}-upload-file--${this.progressStatus}-status`,o.url&&"error"!==o.status&&"image-card"!==r&&`${e}-upload-file--with-url`,`${e}-upload-file--${r}-type`]},F("div",{class:`${e}-upload-file-info`},l,F("div",{class:`${e}-upload-file-info__name`},d&&(o.url&&"error"!==o.status?F("a",{rel:"noopener noreferer",target:"_blank",href:o.url||void 0,onClick:this.handlePreviewClick},o.name):F("span",{onClick:this.handlePreviewClick},o.name)),a&&s),F("div",{class:[`${e}-upload-file-info__action`,`${e}-upload-file-info__action--${r}-type`]},this.showPreviewButton?F($,{key:"preview",quaternary:!0,type:this.buttonType,onClick:this.handlePreviewClick,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,builtinThemeOverrides:Vn},{icon:()=>F(k,{clsPrefix:e},{default:()=>F(oe,null)})}):null,(this.showRemoveButton||this.showCancelButton)&&!this.disabled&&F($,{key:"cancelOrTrash",theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,quaternary:!0,builtinThemeOverrides:Vn,type:this.buttonType,onClick:this.handleRemoveOrCancelClick},{icon:()=>F(n,null,{default:()=>this.showRemoveButton?F(k,{clsPrefix:e,key:"trash"},{default:()=>F(nn,null)}):F(k,{clsPrefix:e,key:"cancel"},{default:()=>F(Ge,null)})})}),this.showRetryButton&&!this.disabled&&F($,{key:"retry",quaternary:!0,type:this.buttonType,onClick:this.handleRetryClick,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,builtinThemeOverrides:Vn},{icon:()=>F(k,{clsPrefix:e},{default:()=>F(Qe,null)})}),this.showDownloadButton?F($,{key:"download",quaternary:!0,type:this.buttonType,onClick:this.handleDownloadClick,theme:t.peers.Button,themeOverrides:t.peerOverrides.Button,builtinThemeOverrides:Vn},{icon:()=>F(k,{clsPrefix:e},{default:()=>F(Ye,null)})}):null)),!a&&s)}}),Gn=U({name:"UploadTrigger",props:{abstract:Boolean},slots:Object,setup(e,{slots:n}){const r=H($n,null);r||t("upload-trigger","`n-upload-trigger` must be placed inside `n-upload`.");const{mergedClsPrefixRef:i,mergedDisabledRef:l,maxReachedRef:a,listTypeRef:s,dragOverRef:d,openOpenFileDialog:u,draggerInsideRef:c,handleFileAddition:p,mergedDirectoryDndRef:h,triggerClassRef:f,triggerStyleRef:g}=r,v=_(()=>"image-card"===s.value);function m(){l.value||a.value||u()}function w(e){e.preventDefault(),d.value=!0}function b(e){e.preventDefault(),d.value=!0}function x(e){e.preventDefault(),d.value=!1}function y(e){var n;if(e.preventDefault(),!c.value||l.value||a.value)return void(d.value=!1);const t=null===(n=e.dataTransfer)||void 0===n?void 0:n.items;(null==t?void 0:t.length)?function(n,t){return Un(this,void 0,void 0,function*(){const r=[];return yield function n(i){return Un(this,void 0,void 0,function*(){for(const l of i)if(l)if(t&&Wn(l)){const t=l.createReader();let r,i=[];try{do{r=yield new Promise((e,n)=>{t.readEntries(e,n)}),i=i.concat(r)}while(r.length>0)}catch(e){o("upload","error happens when handling directory upload",e)}yield n(i)}else if(Zn(l))try{const e=yield new Promise((e,n)=>{l.file(e,n)});r.push({file:e,entry:l,source:"dnd"})}catch(e){o("upload","error happens when handling file upload",e)}})}(n),r})}(Array.from(t).map(e=>e.webkitGetAsEntry()),h.value).then(e=>{p(e)}).finally(()=>{d.value=!1}):d.value=!1}return()=>{var t;const{value:r}=i;return e.abstract?null===(t=n.default)||void 0===t?void 0:t.call(n,{handleClick:m,handleDrop:y,handleDragOver:w,handleDragEnter:b,handleDragLeave:x}):F("div",{class:[`${r}-upload-trigger`,(l.value||a.value)&&`${r}-upload-trigger--disabled`,v.value&&`${r}-upload-trigger--image-card`,f.value],style:g.value,onClick:m,onDrop:y,onDragover:w,onDragenter:b,onDragleave:x},v.value?F(Dn,null,{default:()=>I(n.default,()=>[F(k,{clsPrefix:r},{default:()=>F(he,null)})])}):n)}}}),Yn=U({name:"UploadFileList",setup(e,{slots:n}){const o=H($n,null);o||t("upload-file-list","`n-upload-file-list` must be placed inside `n-upload`.");const{abstractRef:i,mergedClsPrefixRef:l,listTypeRef:a,mergedFileListRef:s,fileListClassRef:d,fileListStyleRef:u,cssVarsRef:c,themeClassRef:p,maxReachedRef:h,showTriggerRef:f,imageGroupPropsRef:g}=o,v=_(()=>"image-card"===a.value),m=()=>s.value.map((e,n)=>F(Xn,{clsPrefix:l.value,key:e.id,file:e,index:n,listType:a.value}));return()=>{const{value:e}=l,{value:t}=i;return F("div",{class:[`${e}-upload-file-list`,v.value&&`${e}-upload-file-list--grid`,t?null==p?void 0:p.value:void 0,d.value],style:[t&&c?c.value:"",u.value]},v.value?F(wn,Object.assign({},g.value),{default:m}):F(r,{group:!0},{default:m}),f.value&&!h.value&&v.value&&F(Gn,null,n))}}}),Jn=function(e,n,t,r){return new(t||(t=Promise))(function(o,i){function l(e){try{s(r.next(e))}catch(n){i(n)}}function a(e){try{s(r.throw(e))}catch(n){i(n)}}function s(e){var n;e.done?o(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(l,a)}s((r=r.apply(e,n||[])).next())})};function Qn(e,n,t){const r=function(e,n,t){const{doChange:r,xhrMap:o}=e;let i=0;function l(t){var l;let a=Object.assign({},n,{status:"error",percentage:i});o.delete(n.id),a=qn((null===(l=e.onError)||void 0===l?void 0:l.call(e,{file:a,event:t}))||a),r(a,t)}return{handleXHRLoad:function(a){var s;if(e.isErrorState){if(e.isErrorState(t))return void l(a)}else if(t.status<200||t.status>=300)return void l(a);let d=Object.assign({},n,{status:"finished",percentage:i});o.delete(n.id),d=qn((null===(s=e.onFinish)||void 0===s?void 0:s.call(e,{file:d,event:a}))||d),r(d,a)},handleXHRError:l,handleXHRAbort(e){const t=Object.assign({},n,{status:"removed",file:null,percentage:i});o.delete(n.id),r(t,e)},handleXHRProgress(e){const t=Object.assign({},n,{status:"uploading"});if(e.lengthComputable){const n=Math.ceil(e.loaded/e.total*100);t.percentage=n,i=n}r(t,e)}}}(e,n,t);t.onabort=r.handleXHRAbort,t.onerror=r.handleXHRError,t.onload=r.handleXHRLoad,t.upload&&(t.upload.onprogress=r.handleXHRProgress)}function Kn(e,n){return"function"==typeof e?e({file:n}):e||{}}function et(e,n,t,{method:r,action:o,withCredentials:i,responseType:l,headers:a,data:s}){const d=new XMLHttpRequest;d.responseType=l,e.xhrMap.set(t.id,d),d.withCredentials=i;const u=new FormData;if(function(e,n,t){const r=Kn(n,t);r&&Object.keys(r).forEach(n=>{e.append(n,r[n])})}(u,s,t),null!==t.file&&u.append(n,t.file),Qn(e,t,d),void 0!==o){d.open(r.toUpperCase(),o),function(e,n,t){const r=Kn(n,t);r&&Object.keys(r).forEach(n=>{e.setRequestHeader(n,r[n])})}(d,a,t),d.send(u);const n=Object.assign({},t,{status:"uploading"});e.doChange(n)}}var nt=U({name:"Upload",props:Object.assign(Object.assign({},u.props),{name:{type:String,default:"file"},accept:String,action:String,customRequest:Function,directory:Boolean,directoryDnd:{type:Boolean,default:void 0},method:{type:String,default:"POST"},multiple:Boolean,showFileList:{type:Boolean,default:!0},data:[Object,Function],headers:[Object,Function],withCredentials:Boolean,responseType:{type:String,default:""},disabled:{type:Boolean,default:void 0},onChange:Function,onRemove:Function,onFinish:Function,onError:Function,onRetry:Function,onBeforeUpload:Function,isErrorState:Function,onDownload:Function,customDownload:Function,defaultUpload:{type:Boolean,default:!0},fileList:Array,"onUpdate:fileList":[Function,Array],onUpdateFileList:[Function,Array],fileListClass:String,fileListStyle:[String,Object],defaultFileList:{type:Array,default:()=>[]},showCancelButton:{type:Boolean,default:!0},showRemoveButton:{type:Boolean,default:!0},showDownloadButton:Boolean,showRetryButton:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},listType:{type:String,default:"text"},onPreview:Function,shouldUseThumbnailUrl:{type:Function,default:e=>!!Nn&&Hn(e)},createThumbnailUrl:Function,abstract:Boolean,max:Number,showTrigger:{type:Boolean,default:!0},imageGroupProps:Object,inputProps:Object,triggerClass:String,triggerStyle:[String,Object],renderIcon:Function}),setup(e){e.abstract&&"image-card"===e.listType&&t("upload","when the list-type is image-card, abstract is not supported.");const{mergedClsPrefixRef:n,inlineThemeDisabled:r,mergedRtlRef:o}=y(e),i=u("Upload","-upload",Tn,ue,e,n),l=a("Upload",o,n),s=O(e),d=K(e.defaultFileList),c=V(e,"fileList"),p=K(null),f={value:!1},g=K(!1),m=new Map,w=h(c,d),b=_(()=>w.value.map(qn)),x=_(()=>{const{max:n}=e;return void 0!==n&&b.value.length>=n});function C(){var e;null===(e=p.value)||void 0===e||e.click()}const k=_(()=>e.multiple||e.directory),P=(n,t,r={append:!1,remove:!1})=>{const{append:o,remove:i}=r,l=Array.from(b.value),a=l.findIndex(e=>e.id===n.id);if(o||i||~a){o?l.push(n):i?l.splice(a,1):l.splice(a,1,n);const{onChange:r}=e;r&&r({file:n,fileList:l,event:t}),function(n){const{"onUpdate:fileList":t,onUpdateFileList:r}=e;t&&v(t,n),r&&v(r,n),d.value=n}(l)}};function S(n,t){if(!n||0===n.length)return;const{onBeforeUpload:r}=e;n=k.value?n:[n[0]];const{max:o,accept:i}=e;n=n.filter(({file:e,source:n})=>"dnd"!==n||!(null==i?void 0:i.trim())||function(e,n,t){return e=e.toLowerCase(),n=n.toLocaleLowerCase(),(t=t.toLocaleLowerCase()).split(",").map(e=>e.trim()).filter(Boolean).some(t=>{if(t.startsWith(".")){if(e.endsWith(t))return!0}else{if(!t.includes("/"))return!0;{const[e,r]=n.split("/"),[o,i]=t.split("/");if(("*"===o||e&&o&&o===e)&&("*"===i||r&&i&&i===r))return!0}}return!1})}(e.name,e.type,i)),o&&(n=n.slice(0,o-b.value.length));const l=z();Promise.all(n.map(e=>Jn(this,[e],void 0,function*({file:e,entry:n}){var t;const o={id:z(),batchId:l,name:e.name,status:"pending",percentage:0,file:e,url:null,type:e.type,thumbnailUrl:null,fullPath:null!==(t=null==n?void 0:n.fullPath)&&void 0!==t?t:`/${e.webkitRelativePath||e.name}`};return r&&!1===(yield r({file:o,fileList:b.value}))?null:o}))).then(e=>Jn(this,void 0,void 0,function*(){let n=Promise.resolve();e.forEach(e=>{n=n.then(E).then(()=>{e&&P(e,t,{append:!0})})}),yield n})).then(()=>{e.defaultUpload&&L()})}function L(n){const{method:t,action:r,withCredentials:o,headers:i,data:l,name:a}=e,s=void 0!==n?b.value.filter(e=>e.id===n):b.value,d=void 0!==n;s.forEach(n=>{const{status:s}=n;("pending"===s||"error"===s&&d)&&(e.customRequest?function(e){const{inst:n,file:t,data:r,headers:o,withCredentials:i,action:l,customRequest:a}=e,{doChange:s}=e.inst;let d=0;a({file:t,data:r,headers:o,withCredentials:i,action:l,onProgress(e){const n=Object.assign({},t,{status:"uploading"}),r=e.percent;n.percentage=r,d=r,s(n)},onFinish(){var e;let r=Object.assign({},t,{status:"finished",percentage:d});r=qn((null===(e=n.onFinish)||void 0===e?void 0:e.call(n,{file:r}))||r),s(r)},onError(){var e;let r=Object.assign({},t,{status:"error",percentage:d});r=qn((null===(e=n.onError)||void 0===e?void 0:e.call(n,{file:r}))||r),s(r)}})}({inst:{doChange:P,xhrMap:m,onFinish:e.onFinish,onError:e.onError},file:n,action:r,withCredentials:o,headers:i,data:l,customRequest:e.customRequest}):et({doChange:P,xhrMap:m,onFinish:e.onFinish,onError:e.onError,isErrorState:e.isErrorState},a,n,{method:t,action:r,withCredentials:o,responseType:e.responseType,headers:i,data:l}))})}const $=_(()=>{const{common:{cubicBezierEaseInOut:e},self:{draggerColor:n,draggerBorder:t,draggerBorderHover:r,itemColorHover:o,itemColorHoverError:l,itemTextColorError:a,itemTextColorSuccess:s,itemTextColor:d,itemIconColor:u,itemDisabledOpacity:c,lineHeight:p,borderRadius:h,fontSize:f,itemBorderImageCardError:g,itemBorderImageCard:v}}=i.value;return{"--n-bezier":e,"--n-border-radius":h,"--n-dragger-border":t,"--n-dragger-border-hover":r,"--n-dragger-color":n,"--n-font-size":f,"--n-item-color-hover":o,"--n-item-color-hover-error":l,"--n-item-disabled-opacity":c,"--n-item-icon-color":u,"--n-item-text-color":d,"--n-item-text-color-error":a,"--n-item-text-color-success":s,"--n-line-height":p,"--n-item-border-image-card-error":g,"--n-item-border-image-card":v}}),T=r?R("upload",void 0,$,e):void 0;M($n,{mergedClsPrefixRef:n,mergedThemeRef:i,showCancelButtonRef:V(e,"showCancelButton"),showDownloadButtonRef:V(e,"showDownloadButton"),showRemoveButtonRef:V(e,"showRemoveButton"),showRetryButtonRef:V(e,"showRetryButton"),onRemoveRef:V(e,"onRemove"),onDownloadRef:V(e,"onDownload"),customDownloadRef:V(e,"customDownload"),mergedFileListRef:b,triggerClassRef:V(e,"triggerClass"),triggerStyleRef:V(e,"triggerStyle"),shouldUseThumbnailUrlRef:V(e,"shouldUseThumbnailUrl"),renderIconRef:V(e,"renderIcon"),xhrMap:m,submit:L,doChange:P,showPreviewButtonRef:V(e,"showPreviewButton"),onPreviewRef:V(e,"onPreview"),getFileThumbnailUrlResolver:function(n){var t;if(n.thumbnailUrl)return n.thumbnailUrl;const{createThumbnailUrl:r}=e;return r?null!==(t=r(n.file,n))&&void 0!==t?t:n.url||"":n.url?n.url:n.file?function(e){return Un(this,void 0,void 0,function*(){return yield new Promise(n=>{e.type&&Mn(e.type)?n(window.URL.createObjectURL(e)):n("")})})}(n.file):""},listTypeRef:V(e,"listType"),dragOverRef:g,openOpenFileDialog:C,draggerInsideRef:f,handleFileAddition:S,mergedDisabledRef:s.mergedDisabledRef,maxReachedRef:x,fileListClassRef:V(e,"fileListClass"),fileListStyleRef:V(e,"fileListStyle"),abstractRef:V(e,"abstract"),acceptRef:V(e,"accept"),cssVarsRef:r?void 0:$,themeClassRef:null==T?void 0:T.themeClass,onRender:null==T?void 0:T.onRender,showTriggerRef:V(e,"showTrigger"),imageGroupPropsRef:V(e,"imageGroupProps"),mergedDirectoryDndRef:_(()=>{var n;return null!==(n=e.directoryDnd)&&void 0!==n?n:e.directory}),onRetryRef:V(e,"onRetry")});const B={clear:()=>{d.value=[]},submit:L,openOpenFileDialog:C};return Object.assign({mergedClsPrefix:n,draggerInsideRef:f,rtlEnabled:l,inputElRef:p,mergedTheme:i,dragOver:g,mergedMultiple:k,cssVars:r?void 0:$,themeClass:null==T?void 0:T.themeClass,onRender:null==T?void 0:T.onRender,handleFileInputChange:function(e){const n=e.target;S(n.files?Array.from(n.files).map(e=>({file:e,entry:null,source:"input"})):null,e),n.value=""}},B)},render(){var e,n;const{draggerInsideRef:t,mergedClsPrefix:r,$slots:o,directory:i,onRender:l}=this;if(o.default&&!this.abstract){const n=o.default()[0];(null===(e=null==n?void 0:n.type)||void 0===e?void 0:e.__UPLOAD_DRAGGER__)&&(t.value=!0)}const a=F("input",Object.assign({},this.inputProps,{ref:"inputElRef",type:"file",class:`${r}-upload-file-input`,accept:this.accept,multiple:this.mergedMultiple,onChange:this.handleFileInputChange,webkitdirectory:i||void 0,directory:i||void 0}));return this.abstract?F(Y,null,null===(n=o.default)||void 0===n?void 0:n.call(o),F(q,{to:"body"},a)):(null==l||l(),F("div",{class:[`${r}-upload`,this.rtlEnabled&&`${r}-upload--rtl`,t.value&&`${r}-upload--dragger-inside`,this.dragOver&&`${r}-upload--drag-over`,this.themeClass],style:this.cssVars},a,this.showTrigger&&"image-card"!==this.listType&&F(Gn,null,o),this.showFileList&&F(Yn,null,o)))}});export{Dn as n,nt as t};
@@ -1 +1 @@
1
- import{t as e}from"./_plugin-vue_export-helper-BeLZJZij.js";import{O as a,S as s,W as r,b as t,et as o,mt as i,x as l}from"./vue-vendor-BqZbbXHA.js";import{t as d}from"./WorkspacePanel-Be8PVZah.js";import{n,t as p}from"./useResponsiveDrawer-V_onl9NV.js";import{t as v}from"./DrawerContent-ChXgZ1Xm.js";var u=e({__name:"WorkspaceDrawer",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(e,{emit:u}){const m=e,c=u,{drawerWidth:w}=p(720),b=t({get:()=>m.visible,set:e=>c("update:visible",e)}),f={padding:0,display:"flex",flexDirection:"column",overflow:"hidden"};return(e,t)=>(r(),s(i(n),{show:b.value,"onUpdate:show":t[1]||(t[1]=e=>b.value=e),width:i(w),placement:"right","mask-closable":!0},{default:o(()=>[a(i(v),{closable:"","native-scrollbar":!1,"body-content-style":f},{header:o(()=>[...t[2]||(t[2]=[l("div",{class:"drawer-header"},"工作区管理",-1)])]),default:o(()=>[a(d,{"in-drawer":!0,"hide-back":!0,"drawer-visible":b.value,onBack:t[0]||(t[0]=e=>b.value=!1)},null,8,["drawer-visible"])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-311a4d94"]]);export{u as default};
1
+ import{t as e}from"./_plugin-vue_export-helper-BeLZJZij.js";import{O as a,S as s,W as r,b as t,et as o,mt as i,x as l}from"./vue-vendor-BqZbbXHA.js";import{t as d}from"./WorkspacePanel-CYq0Z8iY.js";import{n,t as p}from"./useResponsiveDrawer-ChHZrTfl.js";import{t as v}from"./DrawerContent-ChXgZ1Xm.js";var u=e({__name:"WorkspaceDrawer",props:{visible:{type:Boolean,default:!1}},emits:["update:visible"],setup(e,{emit:u}){const m=e,c=u,{drawerWidth:w}=p(720),b=t({get:()=>m.visible,set:e=>c("update:visible",e)}),f={padding:0,display:"flex",flexDirection:"column",overflow:"hidden"};return(e,t)=>(r(),s(i(n),{show:b.value,"onUpdate:show":t[1]||(t[1]=e=>b.value=e),width:i(w),placement:"right","mask-closable":!0},{default:o(()=>[a(i(v),{closable:"","native-scrollbar":!1,"body-content-style":f},{header:o(()=>[...t[2]||(t[2]=[l("div",{class:"drawer-header"},"工作区管理",-1)])]),default:o(()=>[a(d,{"in-drawer":!0,"hide-back":!0,"drawer-visible":b.value,onBack:t[0]||(t[0]=e=>b.value=!1)},null,8,["drawer-visible"])]),_:1})]),_:1},8,["show","width"]))}},[["__scopeId","data-v-311a4d94"]]);export{u as default};
@@ -1 +1 @@
1
- import{t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{O as e,W as r,et as s,mt as t,w as o}from"./vue-vendor-BqZbbXHA.js";import{O as p}from"./light-0eavxNvt.js";import{t as d}from"./WorkspacePanel-Be8PVZah.js";var m={class:"workspace-manager"},i=a({__name:"WorkspaceManager",setup:a=>(a,i)=>(r(),o("div",m,[e(t(p),{title:"工作区管理",bordered:!1},{default:s(()=>[e(d,{"in-drawer":!1,"hide-back":!0})]),_:1})]))},[["__scopeId","data-v-c6211fd6"]]);export{i as default};
1
+ import{t as a}from"./_plugin-vue_export-helper-BeLZJZij.js";import{O as e,W as r,et as s,mt as t,w as o}from"./vue-vendor-BqZbbXHA.js";import{O as p}from"./light-C2X7hegj.js";import{t as d}from"./WorkspacePanel-CYq0Z8iY.js";var m={class:"workspace-manager"},i=a({__name:"WorkspaceManager",setup:a=>(a,i)=>(r(),o("div",m,[e(t(p),{title:"工作区管理",bordered:!1},{default:s(()=>[e(d,{"in-drawer":!1,"hide-back":!0})]),_:1})]))},[["__scopeId","data-v-c6211fd6"]]);export{i as default};