coding-tool-x 3.8.7 → 3.8.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/web/assets/{AgentsDrawer-C7ePByZx.js → AgentsDrawer-DRQuwi0m.js} +1 -1
- package/dist/web/assets/Analytics-Cf5KwEdj.js +1 -0
- package/dist/web/assets/AssetPathField-DyniM0pF.js +1 -0
- package/dist/web/assets/{ChatHistoryDrawer-Ccl4rhdz.js → ChatHistoryDrawer-CrfS0KYV.js} +1 -1
- package/dist/web/assets/{CollapseItem-MxG_UD4o.js → CollapseItem-ClMsJuUu.js} +1 -1
- package/dist/web/assets/{CommandsDrawer-DWbaxHRZ.js → CommandsDrawer-CzHelf56.js} +1 -1
- package/dist/web/assets/ConfigExportDrawer-BEZ8wTby.js +1 -0
- package/dist/web/assets/ConfigTemplates-Crg3xWe5.js +1 -0
- package/dist/web/assets/{ConfigTemplatesDrawer-CKMFsfEF.js → ConfigTemplatesDrawer-BqM32Im7.js} +1 -1
- package/dist/web/assets/{ConfigTemplatesPanel-Cvbnkvpt.js → ConfigTemplatesPanel-lTdutC8H.js} +1 -1
- package/dist/web/assets/{Divider-D28g1gwj.js → Divider-DsdbkHrG.js} +1 -1
- package/dist/web/assets/{FavoritesDrawer-DA-dR_vP.js → FavoritesDrawer-DDyWUBJR.js} +1 -1
- package/dist/web/assets/Forward-DLCL7aMY.js +1 -0
- package/dist/web/assets/{GatewayConvertDrawer-402_raGb.js → GatewayConvertDrawer-Rigtt_5J.js} +1 -1
- package/dist/web/assets/Home-tCSKmSHV.js +1 -0
- package/dist/web/assets/{MarkdownEditor-BvkDECwH.js → MarkdownEditor-BMMUufSc.js} +1 -1
- package/dist/web/assets/McpDrawer-CmE-d7VW.js +1 -0
- package/dist/web/assets/{McpFormDrawer-DPMnyt5L.js → McpFormDrawer-ByvS18od.js} +1 -1
- package/dist/web/assets/{PluginManager-FKVeugr4.js → PluginManager-C4kJlpVX.js} +1 -1
- package/dist/web/assets/{PluginsDrawer-MvM1R55d.js → PluginsDrawer-05R4k15x.js} +1 -1
- package/dist/web/assets/PluginsPanel-BCoEs7Og.js +1 -0
- package/dist/web/assets/PluginsPanel-CzGMK-Ap.css +1 -0
- package/dist/web/assets/ProjectList-BJt1OIaI.js +1 -0
- package/dist/web/assets/ProjectList-DG3yu8xZ.css +1 -0
- package/dist/web/assets/PromptsDrawer-DnwBf_oW.js +1 -0
- package/dist/web/assets/RecentSessionsDrawer-B7d-38wH.js +1 -0
- package/dist/web/assets/RecentSessionsDrawer-yrAD4p1A.css +1 -0
- package/dist/web/assets/SessionCard-BUgjHQwX.js +1 -0
- package/dist/web/assets/SessionList-B-bXZRFk.js +1 -0
- package/dist/web/assets/SessionList-qG_XpPBJ.css +1 -0
- package/dist/web/assets/{SettingsDrawer-lMjttbkD.js → SettingsDrawer-BITzjQLl.js} +1 -1
- package/dist/web/assets/SkillManager-D9jkNuRM.js +1 -0
- package/dist/web/assets/{SkillsDrawer-DF6JsSyj.js → SkillsDrawer-0Z4IefxC.js} +1 -1
- package/dist/web/assets/SkillsPanel-BKIVOj7n.js +1 -0
- package/dist/web/assets/{SkillsPanel-B3Nm5j32.css → SkillsPanel-C4ke56nF.css} +1 -1
- package/dist/web/assets/{SpeedTestDrawer-BaZkZqPP.js → SpeedTestDrawer-Bx1bYf5i.js} +1 -1
- package/dist/web/assets/Upload-CzC4rGI4.js +1 -0
- package/dist/web/assets/{WorkspaceDrawer-BFSwZ5yU.js → WorkspaceDrawer-eujtWpoq.js} +1 -1
- package/dist/web/assets/{WorkspaceManager-BHL1uYct.js → WorkspaceManager-CQ-8Ej68.js} +1 -1
- package/dist/web/assets/{WorkspacePanel-B5PooBtg.js → WorkspacePanel-Cql5qE2R.js} +1 -1
- package/dist/web/assets/headers-BqDmkMjy.js +1 -0
- package/dist/web/assets/{icons-B2Vg-IOC.js → icons-DmFe4b5j.js} +1 -1
- package/dist/web/assets/index-Cmmwj3Fx.js +2 -0
- package/dist/web/assets/{index-BohDDAy_.css → index-Cnbe696C.css} +1 -1
- package/dist/web/assets/{light-Cp0t7v32.js → light-0eavxNvt.js} +1 -1
- package/dist/web/assets/platforms-BmzzwnSw.js +1 -0
- package/dist/web/assets/platforms-DWXgmy2w.js +1 -0
- package/dist/web/assets/session-visibility-BAmxh3cK.js +1 -0
- package/dist/web/assets/sessions-D4yQtfKb.js +1 -0
- package/dist/web/assets/sessions-DqlbocLJ.js +1 -0
- package/dist/web/assets/use-message-DqCwefG6.js +1 -0
- package/dist/web/assets/{useResponsiveDrawer-D-DDpbnI.js → useResponsiveDrawer-DZd5rNk5.js} +1 -1
- package/dist/web/index.html +7 -7
- package/package.json +1 -1
- package/src/commands/search.js +17 -2
- package/src/config/paths.js +2 -0
- package/src/platforms/driver-registry.js +9 -1
- package/src/platforms/drivers/claude/session-history-adapter.js +72 -1
- package/src/platforms/drivers/claude/sessions-implementation.js +49 -7
- package/src/platforms/drivers/claude/sessions.js +30 -6
- package/src/platforms/drivers/codex/parser.js +57 -1
- package/src/platforms/drivers/codex/session-history-adapter.js +8 -2
- package/src/platforms/drivers/codex/sessions-implementation.js +25 -3
- package/src/platforms/drivers/codex/sessions.js +18 -1
- package/src/platforms/drivers/dsh/api-operations.js +396 -0
- package/src/platforms/drivers/dsh/channels-implementation.js +458 -0
- package/src/platforms/drivers/dsh/channels.js +191 -0
- package/src/platforms/drivers/dsh/common.js +571 -0
- package/src/platforms/drivers/dsh/native-config.js +93 -0
- package/src/platforms/drivers/dsh/native-logs.js +116 -0
- package/src/platforms/drivers/dsh/plugin-manager.js +117 -0
- package/src/platforms/drivers/dsh/projects.js +23 -0
- package/src/platforms/drivers/dsh/proxy-implementation.js +260 -0
- package/src/platforms/drivers/dsh/proxy.js +23 -0
- package/src/platforms/drivers/dsh/resources.js +346 -0
- package/src/platforms/drivers/dsh/sessions.js +587 -0
- package/src/platforms/drivers/dsh/statistics-implementation.js +238 -0
- package/src/platforms/drivers/dsh/statistics.js +24 -0
- package/src/platforms/drivers/gemini/session-history-adapter.js +49 -1
- package/src/platforms/drivers/gemini/sessions-implementation.js +46 -1
- package/src/platforms/drivers/gemini/sessions.js +2 -1
- package/src/platforms/drivers/omp/session-history-adapter.js +42 -1
- package/src/platforms/drivers/omp/sessions-implementation.js +51 -3
- package/src/platforms/drivers/omp/sessions.js +33 -2
- package/src/platforms/drivers/opencode/sessions-implementation.js +89 -9
- package/src/platforms/drivers/opencode/sessions.js +37 -1
- package/src/platforms/manifest-schema.js +43 -3
- package/src/platforms/manifests/dsh.json +542 -0
- package/src/platforms/path-resolver.js +2 -0
- package/src/platforms/platform-path-context.js +12 -2
- package/src/platforms/registry.js +16 -1
- package/src/platforms/runtime.js +5 -0
- package/src/platforms/session-history-adapters.js +1 -0
- package/src/server/api/platform-api-config.js +23 -2
- package/src/server/api/platform-route-factory.js +9 -2
- package/src/server/api/platforms.js +19 -1
- package/src/server/api/plugins.js +108 -13
- package/src/server/services/config-registry-service.js +10 -1
- package/src/server/services/config-templates-service.js +1 -0
- package/src/server/services/plugins-service.js +474 -103
- package/src/server/services/session-history-index.js +900 -140
- package/src/server/services/session-history-worker.js +3 -1
- package/src/server/services/skill-service.js +214 -7
- package/src/server/services/usage-log-utils.js +1 -0
- package/src/server/services/workspace-service.js +39 -10
- package/src/shared/driver-factories/api.js +22 -6
- package/src/shared/driver-factories/projects.js +8 -0
- package/dist/web/assets/Analytics-BVG6ehFv.js +0 -1
- package/dist/web/assets/AssetPathField-BZI9NvEr.js +0 -1
- package/dist/web/assets/ConfigExportDrawer-DrawKwxE.js +0 -1
- package/dist/web/assets/ConfigTemplates-AiRPv2cd.js +0 -1
- package/dist/web/assets/Home-CTF8ZWKW.js +0 -1
- package/dist/web/assets/McpDrawer-DZGHkuDm.js +0 -1
- package/dist/web/assets/PluginsPanel-CKuBs38B.js +0 -1
- package/dist/web/assets/PluginsPanel-D6ZqITcR.css +0 -1
- package/dist/web/assets/ProjectList-677RLZ8O.css +0 -1
- package/dist/web/assets/ProjectList-tsjwjXV1.js +0 -1
- package/dist/web/assets/PromptsDrawer-B-X9ci8n.js +0 -1
- package/dist/web/assets/RecentSessionsDrawer-CKFsOYDM.css +0 -1
- package/dist/web/assets/RecentSessionsDrawer-wLktMF_c.js +0 -1
- package/dist/web/assets/SessionCard-DkJPy0TY.js +0 -1
- package/dist/web/assets/SessionList-BpYRz1cX.css +0 -1
- package/dist/web/assets/SessionList-Gzhh4FOZ.js +0 -1
- package/dist/web/assets/SkillManager-CzFxWxx-.js +0 -1
- package/dist/web/assets/SkillsPanel--lLEts9y.js +0 -1
- package/dist/web/assets/Upload-BEQ-3Kqq.js +0 -1
- package/dist/web/assets/headers-cf-QapUq.js +0 -1
- package/dist/web/assets/index-BFInlZGI.js +0 -2
- package/dist/web/assets/platforms-CBkB45JP.js +0 -1
- package/dist/web/assets/platforms-FTpjxAT6.js +0 -1
- package/dist/web/assets/sessions-Cmy31slD.js +0 -1
- package/dist/web/assets/sessions-yC_oVVh8.js +0 -1
- package/dist/web/assets/use-message-DoLM8C1C.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,$t as t,B as o,Bt as r,C as n,Ct as a,Dt as l,F as i,G as s,H as d,I as u,It as c,J as p,K as f,Lt as h,M as v,N as g,Nt as b,Ot as m,Q as w,Qt as y,Rt as x,Tt as $,U as S,Ut as C,V as M,Vt as z,W as O,Wt as j,X as T,Xt as E,Y as B,Yt as A,Z as _,Zt as P,_ as W,_n as H,an as R,at as F,b as k,bn as D,bt as I,ct as L,dt as N,et as X,gn as Y,gt as V,hn as U,ht as q,it as K,jt as Q,lt as Z,nn as G,nt as J,ot as ee,pn as te,q as oe,qt as re,rt as ne,st as ae,tn as le,tt as ie,ut as se,vn as de,wn as ue,x as ce,yn as pe,z as fe,zt as he}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as ve,D as ge,F as be,G as me,I as we,M as ye,N as xe,Q as $e,V as Se,Z as Ce,b as Me,dt as ze,f as Oe,g as je,h as Te,j as Ee,l as Be,st as Ae,tt as _e,v as Pe,y as We,z as He}from"./vue-vendor-BqZbbXHA.js";var Re=[],Fe=new WeakMap;function ke(){Re.forEach(e=>e(...Fe.get(e))),Re=[]}function De(e,...t){Fe.set(e,t),Re.includes(e)||1===Re.push(e)&&requestAnimationFrame(ke)}function Ie(){return null!==Ee()}var Le,Ne,Xe,Ye,Ve="undefined"!=typeof window;function Ue(e){if(Ne)return;let t=!1;Se(()=>{Ne||null==Le||Le.then(()=>{t||e()})}),He(()=>{t=!0})}Le=Ve?null===(Ye=null===(Xe=document)||void 0===Xe?void 0:Xe.fonts)||void 0===Ye?void 0:Ye.ready:void 0,Ne=!1,void 0!==Le?Le.then(()=>{Ne=!0}):Ne=!0;var qe=A("n-internal-select-menu"),Ke=A("n-internal-select-menu-body"),Qe="__disabled__";function Ze(e){const o=xe(j,null),r=xe(re,null),n=xe(C,null),a=xe(Ke,null),l=Ae();if("undefined"!=typeof document){l.value=document.fullscreenElement;const e=()=>{l.value=document.fullscreenElement};Se(()=>{G("fullscreenchange",document,e)}),He(()=>{le("fullscreenchange",document,e)})}return t(()=>{var t;const{to:i}=e;return void 0!==i?!1===i?Qe:!0===i?l.value||"body":i:(null==o?void 0:o.value)?null!==(t=o.value.$el)&&void 0!==t?t:o.value:(null==r?void 0:r.value)?r.value:(null==n?void 0:n.value)?n.value:(null==a?void 0:a.value)?a.value:null!=i?i:l.value||"body"})}Ze.tdkey=Qe,Ze.propTo={type:[String,Object,Boolean],default:void 0};var Ge=null;function Je(){if(null===Ge&&null===(Ge=document.getElementById("v-binder-view-measurer"))){(Ge=document.createElement("div")).id="v-binder-view-measurer";const{style:e}=Ge;e.position="fixed",e.left="0",e.right="0",e.top="0",e.bottom="0",e.pointerEvents="none",e.visibility="hidden",document.body.appendChild(Ge)}return Ge.getBoundingClientRect()}function et(e){const t=e.getBoundingClientRect(),o=Je();return{left:t.left-o.left,top:t.top-o.top,bottom:o.height+o.top-t.bottom,right:o.width+o.left-t.right,width:t.width,height:t.height}}function tt(e){if(null===e)return null;const t=function(e){return 9===e.nodeType?null:e.parentNode}(e);if(null===t)return null;if(9===t.nodeType)return document;if(1===t.nodeType){const{overflow:e,overflowX:o,overflowY:r}=getComputedStyle(t);if(/(auto|scroll|overlay)/.test(e+r+o))return t}return tt(t)}var ot=ve({name:"Binder",props:{syncTargetWithParent:Boolean,syncTarget:{type:Boolean,default:!0}},setup(e){var t;me("VBinder",null===(t=Ee())||void 0===t?void 0:t.proxy);const o=xe("VBinder",null),r=Ae(null);let n=[];const a=()=>{for(const e of n)le("scroll",e,i,!0);n=[]},l=new Set,i=()=>{De(s)},s=()=>{l.forEach(e=>e())},d=new Set,u=()=>{d.forEach(e=>e())};return He(()=>{le("resize",window,u),a()}),{targetRef:r,setTargetRef:t=>{r.value=t,o&&e.syncTargetWithParent&&o.setTargetRef(t)},addScrollListener:e=>{0===l.size&&(()=>{let e=r.value;for(;e=tt(e),null!==e;)n.push(e);for(const t of n)G("scroll",t,i,!0)})(),l.has(e)||l.add(e)},removeScrollListener:e=>{l.has(e)&&l.delete(e),0===l.size&&a()},addResizeListener:e=>{0===d.size&&G("resize",window,u),d.has(e)||d.add(e)},removeResizeListener:e=>{d.has(e)&&d.delete(e),0===d.size&&le("resize",window,u)}}},render(){return z("binder",this.$slots)}}),rt=ve({name:"Target",setup(){const{setTargetRef:e,syncTarget:t}=xe("VBinder");return{syncTarget:t,setTargetDirective:{mounted:e,updated:e}}},render(){const{syncTarget:e,setTargetDirective:t}=this;return e?_e(r("follower",this.$slots),[[t]]):r("follower",this.$slots)}}),nt="@@mmoContext",at={mounted(e,{value:t}){e[nt]={handler:void 0},"function"==typeof t&&(e[nt].handler=t,G("mousemoveoutside",e,t))},updated(e,{value:t}){const o=e[nt];"function"==typeof t?o.handler?o.handler!==t&&(le("mousemoveoutside",e,o.handler),o.handler=t,G("mousemoveoutside",e,t)):(e[nt].handler=t,G("mousemoveoutside",e,t)):o.handler&&(le("mousemoveoutside",e,o.handler),o.handler=void 0)},unmounted(e){const{handler:t}=e[nt];t&&le("mousemoveoutside",e,t),e[nt].handler=void 0}},{c:lt}=ue(),it="vueuc-style",st={top:"bottom",bottom:"top",left:"right",right:"left"},dt={start:"end",center:"center",end:"start"},ut={top:"height",bottom:"height",left:"width",right:"width"},ct={"bottom-start":"top left",bottom:"top center","bottom-end":"top right","top-start":"bottom left",top:"bottom center","top-end":"bottom right","right-start":"top left",right:"center left","right-end":"bottom left","left-start":"top right",left:"center right","left-end":"bottom right"},pt={"bottom-start":"bottom left",bottom:"bottom center","bottom-end":"bottom right","top-start":"top left",top:"top center","top-end":"top right","right-start":"top right",right:"center right","right-end":"bottom right","left-start":"top left",left:"center left","left-end":"bottom left"},ft={"bottom-start":"right","bottom-end":"left","top-start":"right","top-end":"left","right-start":"bottom","right-end":"top","left-start":"bottom","left-end":"top"},ht={top:!0,bottom:!1,left:!0,right:!1},vt={top:"end",bottom:"start",left:"end",right:"start"};var gt,bt=lt([lt(".v-binder-follower-container",{position:"absolute",left:"0",right:"0",top:"0",height:"0",pointerEvents:"none",zIndex:"auto"}),lt(".v-binder-follower-content",{position:"absolute",zIndex:"auto"},[lt("> *",{pointerEvents:"all"})])]),mt=ve({name:"Follower",inheritAttrs:!1,props:{show:Boolean,enabled:{type:Boolean,default:void 0},placement:{type:String,default:"bottom"},syncTrigger:{type:Array,default:["resize","scroll"]},to:[String,Object],flip:{type:Boolean,default:!0},internalShift:Boolean,x:Number,y:Number,width:String,minWidth:String,containerClass:String,teleportDisabled:Boolean,zindexable:{type:Boolean,default:!0},zIndex:Number,overlap:Boolean},setup(e){const o=xe("VBinder"),r=t(()=>void 0!==e.enabled?e.enabled:e.show),n=Ae(null),a=Ae(null),l=()=>{const{syncTrigger:t}=e;t.includes("scroll")&&o.addScrollListener(d),t.includes("resize")&&o.addResizeListener(d)},i=()=>{o.removeScrollListener(d),o.removeResizeListener(d)};Se(()=>{r.value&&(d(),l())});const s=h();bt.mount({id:"vueuc/binder",head:!0,anchorMetaName:it,ssr:s}),He(()=>{i()}),Ue(()=>{r.value&&d()});const d=()=>{if(!r.value)return;const t=n.value;if(null===t)return;const l=o.targetRef,{x:i,y:s,overlap:d}=e,u=void 0!==i&&void 0!==s?function(e,t){const o=Je();return{top:t,left:e,height:0,width:0,right:o.width-e,bottom:o.height-t}}(i,s):et(l);t.style.setProperty("--v-target-width",`${Math.round(u.width)}px`),t.style.setProperty("--v-target-height",`${Math.round(u.height)}px`);const{width:c,minWidth:p,placement:f,internalShift:h,flip:v}=e;t.setAttribute("v-placement",f),d?t.setAttribute("v-overlap",""):t.removeAttribute("v-overlap");const{style:g}=t;g.width="target"===c?`${u.width}px`:void 0!==c?c:"",g.minWidth="target"===p?`${u.width}px`:void 0!==p?p:"";const b=et(t),m=et(a.value),{left:w,top:y,placement:x}=function(e,t,o,r,n,a){if(!n||a)return{placement:e,top:0,left:0};const[l,i]=e.split("-");let s=null!=i?i:"center",d={top:0,left:0};const u=(e,n,a)=>{let l=0,i=0;const s=o[e]-t[n]-t[e];return s>0&&r&&(a?i=ht[n]?s:-s:l=ht[n]?s:-s),{left:l,top:i}},c="left"===l||"right"===l;if("center"!==s){const r=ft[e],n=st[r],a=ut[r];if(o[a]>t[a]){if(t[r]+t[a]<o[a]){const e=(o[a]-t[a])/2;t[r]<e||t[n]<e?t[r]<t[n]?(s=dt[i],d=u(a,n,c)):d=u(a,r,c):s="center"}}else o[a]<t[a]&&t[n]<0&&t[r]>t[n]&&(s=dt[i])}else{const e="bottom"===l||"top"===l?"left":"top",r=st[e],n=ut[e],a=(o[n]-t[n])/2;(t[e]<a||t[r]<a)&&(t[e]>t[r]?(s=vt[e],d=u(n,e,c)):(s=vt[r],d=u(n,r,c)))}let p=l;return t[l]<o[ut[l]]&&t[l]<t[st[l]]&&(p=st[l]),{placement:"center"!==s?`${p}-${s}`:p,left:d.left,top:d.top}}(f,u,b,h,v,d),$=function(e,t){return t?pt[e]:ct[e]}(x,d),{left:S,top:C,transform:M}=function(e,t,o,r,n,a){if(a)switch(e){case"bottom-start":case"left-end":return{top:`${Math.round(o.top-t.top+o.height)}px`,left:`${Math.round(o.left-t.left)}px`,transform:"translateY(-100%)"};case"bottom-end":case"right-end":return{top:`${Math.round(o.top-t.top+o.height)}px`,left:`${Math.round(o.left-t.left+o.width)}px`,transform:"translateX(-100%) translateY(-100%)"};case"top-start":case"left-start":return{top:`${Math.round(o.top-t.top)}px`,left:`${Math.round(o.left-t.left)}px`,transform:""};case"top-end":case"right-start":return{top:`${Math.round(o.top-t.top)}px`,left:`${Math.round(o.left-t.left+o.width)}px`,transform:"translateX(-100%)"};case"top":return{top:`${Math.round(o.top-t.top)}px`,left:`${Math.round(o.left-t.left+o.width/2)}px`,transform:"translateX(-50%)"};case"right":return{top:`${Math.round(o.top-t.top+o.height/2)}px`,left:`${Math.round(o.left-t.left+o.width)}px`,transform:"translateX(-100%) translateY(-50%)"};case"left":return{top:`${Math.round(o.top-t.top+o.height/2)}px`,left:`${Math.round(o.left-t.left)}px`,transform:"translateY(-50%)"};default:return{top:`${Math.round(o.top-t.top+o.height)}px`,left:`${Math.round(o.left-t.left+o.width/2)}px`,transform:"translateX(-50%) translateY(-100%)"}}switch(e){case"bottom-start":return{top:`${Math.round(o.top-t.top+o.height+r)}px`,left:`${Math.round(o.left-t.left+n)}px`,transform:""};case"bottom-end":return{top:`${Math.round(o.top-t.top+o.height+r)}px`,left:`${Math.round(o.left-t.left+o.width+n)}px`,transform:"translateX(-100%)"};case"top-start":return{top:`${Math.round(o.top-t.top+r)}px`,left:`${Math.round(o.left-t.left+n)}px`,transform:"translateY(-100%)"};case"top-end":return{top:`${Math.round(o.top-t.top+r)}px`,left:`${Math.round(o.left-t.left+o.width+n)}px`,transform:"translateX(-100%) translateY(-100%)"};case"right-start":return{top:`${Math.round(o.top-t.top+r)}px`,left:`${Math.round(o.left-t.left+o.width+n)}px`,transform:""};case"right-end":return{top:`${Math.round(o.top-t.top+o.height+r)}px`,left:`${Math.round(o.left-t.left+o.width+n)}px`,transform:"translateY(-100%)"};case"left-start":return{top:`${Math.round(o.top-t.top+r)}px`,left:`${Math.round(o.left-t.left+n)}px`,transform:"translateX(-100%)"};case"left-end":return{top:`${Math.round(o.top-t.top+o.height+r)}px`,left:`${Math.round(o.left-t.left+n)}px`,transform:"translateX(-100%) translateY(-100%)"};case"top":return{top:`${Math.round(o.top-t.top+r)}px`,left:`${Math.round(o.left-t.left+o.width/2+n)}px`,transform:"translateY(-100%) translateX(-50%)"};case"right":return{top:`${Math.round(o.top-t.top+o.height/2+r)}px`,left:`${Math.round(o.left-t.left+o.width+n)}px`,transform:"translateY(-50%)"};case"left":return{top:`${Math.round(o.top-t.top+o.height/2+r)}px`,left:`${Math.round(o.left-t.left+n)}px`,transform:"translateY(-50%) translateX(-100%)"};default:return{top:`${Math.round(o.top-t.top+o.height+r)}px`,left:`${Math.round(o.left-t.left+o.width/2+n)}px`,transform:"translateX(-50%)"}}}(x,m,u,y,w,d);t.setAttribute("v-placement",x),t.style.setProperty("--v-offset-left",`${Math.round(w)}px`),t.style.setProperty("--v-offset-top",`${Math.round(y)}px`),t.style.transform=`translateX(${S}) translateY(${C}) ${M}`,t.style.setProperty("--v-transform-origin",$),t.style.transformOrigin=$};Ce(r,e=>{e?(l(),u()):i()});const u=()=>{we().then(d).catch(e=>{})};["placement","x","y","internalShift","flip","width","overlap","minWidth"].forEach(t=>{Ce(ze(e,t),d)}),["teleportDisabled"].forEach(t=>{Ce(ze(e,t),u)}),Ce(ze(e,"syncTrigger"),e=>{e.includes("resize")?o.addResizeListener(d):o.removeResizeListener(d),e.includes("scroll")?o.addScrollListener(d):o.removeScrollListener(d)});const c=P();return{VBinder:o,mergedEnabled:r,offsetContainerRef:a,followerRef:n,mergedTo:t(()=>{const{to:t}=e;if(void 0!==t)return t;c.value}),syncPosition:d}},render(){return ye(c,{show:this.show,to:this.mergedTo,disabled:this.teleportDisabled},{default:()=>{var e,t;const o=ye("div",{class:["v-binder-follower-container",this.containerClass],ref:"offsetContainerRef"},[ye("div",{class:"v-binder-follower-content",ref:"followerRef"},null===(t=(e=this.$slots).default)||void 0===t?void 0:t.call(e))]);return this.zindexable?_e(o,[[x,{enabled:this.mergedEnabled,zIndex:this.zIndex}]]):o}})}});function wt(e,t=!0,o=[]){return e.forEach(e=>{if(null!==e)if("object"==typeof e)if(Array.isArray(e))wt(e,t,o);else if(e.type===je){if(null===e.children)return;Array.isArray(e.children)&&wt(e.children,t,o)}else{if(e.type===Te&&t)return;o.push(e)}else"string"!=typeof e&&"number"!=typeof e||o.push(ge(String(e)))}),o}function yt(e,t,o){if(!t)return null;const r=wt(t(o));return 1===r.length?r[0]:(m("getFirstSlotVNode",`slot[${e}] should have exactly one child`),null)}function xt(e,t=[],o){const r={};return t.forEach(t=>{r[t]=e[t]}),Object.assign(r,o)}function $t(e,...t){return"function"==typeof e?e(...t):"string"==typeof e?ge(e):"number"==typeof e?ge(String(e)):null}var St=ie(N,"WeakMap"),Ct=s(Object.keys,Object),Mt=Object.prototype.hasOwnProperty;function zt(e){return _(e)?f(e):function(e){if(!T(e))return Ct(e);var t=[];for(var o in Object(e))Mt.call(e,o)&&"constructor"!=o&&t.push(o);return t}(e)}var Ot=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,jt=/^\w*$/;function Tt(e,t){if(F(e))return!1;var o=typeof e;return!("number"!=o&&"symbol"!=o&&"boolean"!=o&&null!=e&&!ae(e))||(jt.test(e)||!Ot.test(e)||null!=t&&e in Object(t))}function Et(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var o=function(){var r=arguments,n=t?t.apply(this,r):r[0],a=o.cache;if(a.has(n))return a.get(n);var l=e.apply(this,r);return o.cache=a.set(n,l)||a,l};return o.cache=new(Et.Cache||S),o}Et.Cache=S;var Bt,At,_t,Pt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Wt=/\\(\\)?/g,Ht=(Bt=function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(Pt,function(e,o,r,n){t.push(r?n.replace(Wt,"$1"):o||e)}),t},At=Et(Bt,function(e){return 500===_t.size&&_t.clear(),e}),_t=At.cache,At);function Rt(e,t){return F(e)?e:Tt(e,t)?[e]:Ht(d(e))}function Ft(e){if("string"==typeof e||ae(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function kt(e,t){for(var o=0,r=(t=Rt(t,e)).length;null!=e&&o<r;)e=e[Ft(t[o++])];return o&&o==r?e:void 0}function Dt(e,t,o){var r=null==e?void 0:kt(e,t);return void 0===r?o:r}var It=Object.prototype.propertyIsEnumerable,Lt=Object.getOwnPropertySymbols,Nt=Lt?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var o=-1,r=null==e?0:e.length,n=0,a=[];++o<r;){var l=e[o];t(l,o,e)&&(a[n++]=l)}return a}(Lt(e),function(t){return It.call(e,t)}))}:function(){return[]};function Xt(e){return function(e,t,o){var r=t(e);return F(e)?r:function(e,t){for(var o=-1,r=t.length,n=e.length;++o<r;)e[n+o]=t[o];return e}(r,o(e))}(e,zt,Nt)}var Yt=ie(N,"DataView"),Vt=ie(N,"Promise"),Ut=ie(N,"Set"),qt="[object Map]",Kt="[object Promise]",Qt="[object Set]",Zt="[object WeakMap]",Gt="[object DataView]",Jt=J(Yt),eo=J(O),to=J(Vt),oo=J(Ut),ro=J(St),no=Z;(Yt&&no(new Yt(new ArrayBuffer(1)))!=Gt||O&&no(new O)!=qt||Vt&&no(Vt.resolve())!=Kt||Ut&&no(new Ut)!=Qt||St&&no(new St)!=Zt)&&(no=function(e){var t=Z(e),o="[object Object]"==t?e.constructor:void 0,r=o?J(o):"";if(r)switch(r){case Jt:return Gt;case eo:return qt;case to:return Kt;case oo:return Qt;case ro:return Zt}return t});var ao=no;function lo(e){var t=-1,o=null==e?0:e.length;for(this.__data__=new S;++t<o;)this.add(e[t])}function io(e,t){for(var o=-1,r=null==e?0:e.length;++o<r;)if(t(e[o],o,e))return!0;return!1}function so(e,t){return e.has(t)}lo.prototype.add=lo.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},lo.prototype.has=function(e){return this.__data__.has(e)};function uo(e,t,o,r,n,a){var l=1&o,i=e.length,s=t.length;if(i!=s&&!(l&&s>i))return!1;var d=a.get(e),u=a.get(t);if(d&&u)return d==t&&u==e;var c=-1,p=!0,f=2&o?new lo:void 0;for(a.set(e,t),a.set(t,e);++c<i;){var h=e[c],v=t[c];if(r)var g=l?r(v,h,c,t,e,a):r(h,v,c,e,t,a);if(void 0!==g){if(g)continue;p=!1;break}if(f){if(!io(t,function(e,t){if(!so(f,t)&&(h===e||n(h,e,o,r,a)))return f.push(t)})){p=!1;break}}else if(h!==v&&!n(h,v,o,r,a)){p=!1;break}}return a.delete(e),a.delete(t),p}function co(e){var t=-1,o=Array(e.size);return e.forEach(function(e,r){o[++t]=[r,e]}),o}function po(e){var t=-1,o=Array(e.size);return e.forEach(function(e){o[++t]=e}),o}var fo=se?se.prototype:void 0,ho=fo?fo.valueOf:void 0;var vo=Object.prototype.hasOwnProperty;var go="[object Arguments]",bo="[object Array]",mo="[object Object]",wo=Object.prototype.hasOwnProperty;function yo(t,r,n,a,l,i){var s=F(t),d=F(r),u=s?bo:ao(t),c=d?bo:ao(r),f=(u=u==go?mo:u)==mo,h=(c=c==go?mo:c)==mo,v=u==c;if(v&&p(t)){if(!p(r))return!1;s=!0,f=!1}if(v&&!f)return i||(i=new M),s||oe(t)?uo(t,r,n,a,l,i):function(t,r,n,a,l,i,s){switch(n){case"[object DataView]":if(t.byteLength!=r.byteLength||t.byteOffset!=r.byteOffset)return!1;t=t.buffer,r=r.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=r.byteLength||!i(new o(t),new o(r)));case"[object Boolean]":case"[object Date]":case"[object Number]":return e(+t,+r);case"[object Error]":return t.name==r.name&&t.message==r.message;case"[object RegExp]":case"[object String]":return t==r+"";case"[object Map]":var d=co;case"[object Set]":var u=1&a;if(d||(d=po),t.size!=r.size&&!u)return!1;var c=s.get(t);if(c)return c==r;a|=2,s.set(t,r);var p=uo(d(t),d(r),a,l,i,s);return s.delete(t),p;case"[object Symbol]":if(ho)return ho.call(t)==ho.call(r)}return!1}(t,r,u,n,a,l,i);if(!(1&n)){var g=f&&wo.call(t,"__wrapped__"),b=h&&wo.call(r,"__wrapped__");if(g||b){var m=g?t.value():t,w=b?r.value():r;return i||(i=new M),l(m,w,n,a,i)}}return!!v&&(i||(i=new M),function(e,t,o,r,n,a){var l=1&o,i=Xt(e),s=i.length;if(s!=Xt(t).length&&!l)return!1;for(var d=s;d--;){var u=i[d];if(!(l?u in t:vo.call(t,u)))return!1}var c=a.get(e),p=a.get(t);if(c&&p)return c==t&&p==e;var f=!0;a.set(e,t),a.set(t,e);for(var h=l;++d<s;){var v=e[u=i[d]],g=t[u];if(r)var b=l?r(g,v,u,t,e,a):r(v,g,u,e,t,a);if(!(void 0===b?v===g||n(v,g,o,r,a):b)){f=!1;break}h||(h="constructor"==u)}if(f&&!h){var m=e.constructor,w=t.constructor;m==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof m&&m instanceof m&&"function"==typeof w&&w instanceof w||(f=!1)}return a.delete(e),a.delete(t),f}(t,r,n,a,l,i))}function xo(e,t,o,r,n){return e===t||(null==e||null==t||!L(e)&&!L(t)?e!=e&&t!=t:yo(e,t,o,r,xo,n))}function $o(e){return e==e&&!K(e)}function So(e,t){return function(o){return null!=o&&(o[e]===t&&(void 0!==t||e in Object(o)))}}function Co(e){var t=function(e){for(var t=zt(e),o=t.length;o--;){var r=t[o],n=e[r];t[o]=[r,n,$o(n)]}return t}(e);return 1==t.length&&t[0][2]?So(t[0][0],t[0][1]):function(o){return o===e||function(e,t,o,r){var n=o.length,a=n,l=!r;if(null==e)return!a;for(e=Object(e);n--;){var i=o[n];if(l&&i[2]?i[1]!==e[i[0]]:!(i[0]in e))return!1}for(;++n<a;){var s=(i=o[n])[0],d=e[s],u=i[1];if(l&&i[2]){if(void 0===d&&!(s in e))return!1}else{var c=new M;if(r)var p=r(d,u,s,e,t,c);if(!(void 0===p?xo(u,d,3,r,c):p))return!1}}return!0}(o,e,t)}}function Mo(e,t){return null!=e&&t in Object(e)}function zo(e,t){return null!=e&&function(e,t,o){for(var r=-1,n=(t=Rt(t,e)).length,a=!1;++r<n;){var l=Ft(t[r]);if(!(a=null!=e&&o(e,l)))break;e=e[l]}return a||++r!=n?a:!!(n=null==e?0:e.length)&&w(n)&&X(l,n)&&(F(e)||B(e))}(e,t,Mo)}function Oo(e){return Tt(e)?(t=Ft(e),function(e){return null==e?void 0:e[t]}):function(e){return function(t){return kt(t,e)}}(e);var t}function jo(e){return"function"==typeof e?e:null==e?ne:"object"==typeof e?F(e)?(t=e[0],o=e[1],Tt(t)&&$o(o)?So(Ft(t),o):function(e){var r=Dt(e,t);return void 0===r&&r===o?zo(e,t):xo(o,r,3)}):Co(e):Oo(e);var t,o}var To,Eo,Bo=(To=function(e,t){return e&&fe(e,t,zt)},function(e,t){if(null==e)return e;if(!_(e))return To(e,t);for(var o=e.length,r=Eo?o:-1,n=Object(e);(Eo?r--:++r<o)&&!1!==t(n[r],r,n););return e});function Ao(e,t){var o=-1,r=_(e)?Array(e.length):[];return Bo(e,function(e,n,a){r[++o]=t(e,n,a)}),r}var _o={height:"calc(var(--n-option-height) * 7.6)",paddingTiny:"4px 0",paddingSmall:"4px 0",paddingMedium:"4px 0",paddingLarge:"4px 0",paddingHuge:"4px 0",optionPaddingTiny:"0 12px",optionPaddingSmall:"0 12px",optionPaddingMedium:"0 12px",optionPaddingLarge:"0 12px",optionPaddingHuge:"0 12px",loadingSize:"18px"};function Po(e){const{borderRadius:t,popoverColor:o,textColor3:r,dividerColor:n,textColor2:a,primaryColorPressed:l,textColorDisabled:i,primaryColor:s,opacityDisabled:d,hoverColor:u,fontSizeTiny:c,fontSizeSmall:p,fontSizeMedium:f,fontSizeLarge:h,fontSizeHuge:v,heightTiny:g,heightSmall:b,heightMedium:m,heightLarge:w,heightHuge:y}=e;return Object.assign(Object.assign({},_o),{optionFontSizeTiny:c,optionFontSizeSmall:p,optionFontSizeMedium:f,optionFontSizeLarge:h,optionFontSizeHuge:v,optionHeightTiny:g,optionHeightSmall:b,optionHeightMedium:m,optionHeightLarge:w,optionHeightHuge:y,borderRadius:t,color:o,groupHeaderTextColor:r,actionDividerColor:n,optionTextColor:a,optionTextColorPressed:l,optionTextColorDisabled:i,optionTextColorActive:s,optionOpacityDisabled:d,optionCheckColor:s,optionColorPending:u,optionColorActive:"rgba(0, 0, 0, 0)",optionColorActivePending:u,actionTextColor:a,loadingColor:s})}var Wo=v({name:"InternalSelectMenu",common:n,peers:{Scrollbar:ce,Empty:W},self:Po}),{cubicBezierEaseIn:Ho,cubicBezierEaseOut:Ro}=i;function Fo({transformOrigin:e="inherit",duration:t=".2s",enterScale:o=".9",originalTransform:r="",originalTransition:n=""}={}){return[U("&.fade-in-scale-up-transition-leave-active",{transformOrigin:e,transition:`opacity ${t} ${Ho}, transform ${t} ${Ho} ${n&&`,${n}`}`}),U("&.fade-in-scale-up-transition-enter-active",{transformOrigin:e,transition:`opacity ${t} ${Ro}, transform ${t} ${Ro} ${n&&`,${n}`}`}),U("&.fade-in-scale-up-transition-enter-from, &.fade-in-scale-up-transition-leave-to",{opacity:0,transform:`${r} scale(${o})`}),U("&.fade-in-scale-up-transition-leave-from, &.fade-in-scale-up-transition-enter-to",{opacity:1,transform:`${r} scale(1)`})]}var ko={space:"6px",spaceArrow:"10px",arrowOffset:"10px",arrowOffsetVertical:"10px",arrowHeight:"6px",padding:"8px 14px"};function Do(e){const{boxShadow2:t,popoverColor:o,textColor2:r,borderRadius:n,fontSize:a,dividerColor:l}=e;return Object.assign(Object.assign({},ko),{fontSize:a,borderRadius:n,color:o,dividerColor:l,textColor:r,boxShadow:t})}var Io,Lo,No=v({name:"Popover",common:n,peers:{Scrollbar:ce},self:Do}),Xo={top:"bottom",bottom:"top",left:"right",right:"left"},Yo="var(--n-arrow-height) * 1.414",Vo=U([Y("popover","\n transition:\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n position: relative;\n font-size: var(--n-font-size);\n color: var(--n-text-color);\n box-shadow: var(--n-box-shadow);\n word-break: break-word;\n ",[U(">",[Y("scrollbar","\n height: inherit;\n max-height: inherit;\n ")]),D("raw","\n background-color: var(--n-color);\n border-radius: var(--n-border-radius);\n ",[D("scrollable",[D("show-header-or-footer","padding: var(--n-padding);")])]),de("header","\n padding: var(--n-padding);\n border-bottom: 1px solid var(--n-divider-color);\n transition: border-color .3s var(--n-bezier);\n "),de("footer","\n padding: var(--n-padding);\n border-top: 1px solid var(--n-divider-color);\n transition: border-color .3s var(--n-bezier);\n "),pe("scrollable, show-header-or-footer",[de("content","\n padding: var(--n-padding);\n ")])]),Y("popover-shared","\n transform-origin: inherit;\n ",[Y("popover-arrow-wrapper","\n position: absolute;\n overflow: hidden;\n pointer-events: none;\n ",[Y("popover-arrow",`\n transition: background-color .3s var(--n-bezier);\n position: absolute;\n display: block;\n width: calc(${Yo});\n height: calc(${Yo});\n box-shadow: 0 0 8px 0 rgba(0, 0, 0, .12);\n transform: rotate(45deg);\n background-color: var(--n-color);\n pointer-events: all;\n `)]),U("&.popover-transition-enter-from, &.popover-transition-leave-to","\n opacity: 0;\n transform: scale(.85);\n "),U("&.popover-transition-enter-to, &.popover-transition-leave-from","\n transform: scale(1);\n opacity: 1;\n "),U("&.popover-transition-enter-active","\n transition:\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier),\n opacity .15s var(--n-bezier-ease-out),\n transform .15s var(--n-bezier-ease-out);\n "),U("&.popover-transition-leave-active","\n transition:\n box-shadow .3s var(--n-bezier),\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier),\n opacity .15s var(--n-bezier-ease-in),\n transform .15s var(--n-bezier-ease-in);\n ")]),qo("top-start",`\n top: calc(${Yo} / -2);\n left: calc(${Uo("top-start")} - var(--v-offset-left));\n `),qo("top",`\n top: calc(${Yo} / -2);\n transform: translateX(calc(${Yo} / -2)) rotate(45deg);\n left: 50%;\n `),qo("top-end",`\n top: calc(${Yo} / -2);\n right: calc(${Uo("top-end")} + var(--v-offset-left));\n `),qo("bottom-start",`\n bottom: calc(${Yo} / -2);\n left: calc(${Uo("bottom-start")} - var(--v-offset-left));\n `),qo("bottom",`\n bottom: calc(${Yo} / -2);\n transform: translateX(calc(${Yo} / -2)) rotate(45deg);\n left: 50%;\n `),qo("bottom-end",`\n bottom: calc(${Yo} / -2);\n right: calc(${Uo("bottom-end")} + var(--v-offset-left));\n `),qo("left-start",`\n left: calc(${Yo} / -2);\n top: calc(${Uo("left-start")} - var(--v-offset-top));\n `),qo("left",`\n left: calc(${Yo} / -2);\n transform: translateY(calc(${Yo} / -2)) rotate(45deg);\n top: 50%;\n `),qo("left-end",`\n left: calc(${Yo} / -2);\n bottom: calc(${Uo("left-end")} + var(--v-offset-top));\n `),qo("right-start",`\n right: calc(${Yo} / -2);\n top: calc(${Uo("right-start")} - var(--v-offset-top));\n `),qo("right",`\n right: calc(${Yo} / -2);\n transform: translateY(calc(${Yo} / -2)) rotate(45deg);\n top: 50%;\n `),qo("right-end",`\n right: calc(${Yo} / -2);\n bottom: calc(${Uo("right-end")} + var(--v-offset-top));\n `),...(Io={top:["right-start","left-start"],right:["top-end","bottom-end"],bottom:["right-end","left-end"],left:["top-start","bottom-start"]},Lo=(e,t)=>{const o=["right","left"].includes(t),r=o?"width":"height";return e.map(e=>{const n="end"===e.split("-")[1],a=`calc((var(--v-target-${r}, 0px) - ${Yo}) / 2)`,l=Uo(e);return U(`[v-placement="${e}"] >`,[Y("popover-shared",[pe("center-arrow",[Y("popover-arrow",`${t}: calc(max(${a}, ${l}) ${n?"+":"-"} var(--v-offset-${o?"left":"top"}));`)])])])})},(F(Io)?ee:Ao)(Io,jo(Lo)))]);function Uo(e){return["top","bottom"].includes(e.split("-")[0])?"var(--n-arrow-offset)":"var(--n-arrow-offset-vertical)"}function qo(e,t){const o=e.split("-")[0],r=["top","bottom"].includes(o)?"height: var(--n-space-arrow);":"width: var(--n-space-arrow);";return U(`[v-placement="${e}"] >`,[Y("popover-shared",`\n margin-${Xo[o]}: var(--n-space);\n `,[pe("show-arrow",`\n margin-${Xo[o]}: var(--n-space-arrow);\n `),pe("overlap","\n margin: 0;\n "),H("popover-arrow-wrapper",`\n right: 0;\n left: 0;\n top: 0;\n bottom: 0;\n ${o}: 100%;\n ${Xo[o]}: auto;\n ${r}\n `,[Y("popover-arrow",t)])])])}var Ko=Object.assign(Object.assign({},g.props),{to:Ze.propTo,show:Boolean,trigger:String,showArrow:Boolean,delay:Number,duration:Number,raw:Boolean,arrowPointToCenter:Boolean,arrowClass:String,arrowStyle:[String,Object],arrowWrapperClass:String,arrowWrapperStyle:[String,Object],displayDirective:String,x:Number,y:Number,flip:Boolean,overlap:Boolean,placement:String,width:[Number,String],keepAliveOnHover:Boolean,scrollable:Boolean,contentClass:String,contentStyle:[Object,String],headerClass:String,headerStyle:[Object,String],footerClass:String,footerStyle:[Object,String],internalDeactivateImmediately:Boolean,animated:Boolean,onClickoutside:Function,internalTrapFocus:Boolean,internalOnAfterLeave:Function,minWidth:Number,maxWidth:Number});function Qo({arrowClass:e,arrowStyle:t,arrowWrapperClass:o,arrowWrapperStyle:r,clsPrefix:n}){return ye("div",{key:"__popover-arrow__",style:r,class:[`${n}-popover-arrow-wrapper`,o]},ye("div",{class:[`${n}-popover-arrow`,e],style:t}))}var Zo=ve({name:"PopoverBody",inheritAttrs:!1,props:Ko,setup(e,{slots:t,attrs:o}){const{namespaceRef:r,mergedClsPrefixRef:n,inlineThemeDisabled:l,mergedRtlRef:i}=V(e),s=g("Popover","-popover",Vo,No,e,n),d=u("Popover",i,n),c=Ae(null),p=xe("NPopover"),f=Ae(null),h=Ae(e.show),v=Ae(!1);$e(()=>{const{show:t}=e;!t||(void 0===gt&&(gt=navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")),gt)||e.internalDeactivateImmediately||(v.value=!0)});const m=Me(()=>{const{trigger:t,onClickoutside:o}=e,r=[],{positionManuallyRef:{value:n}}=p;return n||("click"!==t||o||r.push([he,z,void 0,{capture:!0}]),"hover"===t&&r.push([at,M])),o&&r.push([he,z,void 0,{capture:!0}]),("show"===e.displayDirective||e.animated&&v.value)&&r.push([Oe,e.show]),r}),w=Me(()=>{const{common:{cubicBezierEaseInOut:e,cubicBezierEaseIn:t,cubicBezierEaseOut:o},self:{space:r,spaceArrow:n,padding:a,fontSize:l,textColor:i,dividerColor:d,color:u,boxShadow:c,borderRadius:p,arrowHeight:f,arrowOffset:h,arrowOffsetVertical:v}}=s.value;return{"--n-box-shadow":c,"--n-bezier":e,"--n-bezier-ease-in":t,"--n-bezier-ease-out":o,"--n-font-size":l,"--n-text-color":i,"--n-color":u,"--n-divider-color":d,"--n-border-radius":p,"--n-arrow-height":f,"--n-arrow-offset":h,"--n-arrow-offset-vertical":v,"--n-padding":a,"--n-space":r,"--n-space-arrow":n}}),y=Me(()=>{const t="trigger"===e.width?void 0:Q(e.width),o=[];t&&o.push({width:t});const{maxWidth:r,minWidth:n}=e;return r&&o.push({maxWidth:Q(r)}),n&&o.push({maxWidth:Q(n)}),l||o.push(w.value),o}),x=l?q("popover",void 0,w,e):void 0;function $(t){"hover"===e.trigger&&e.keepAliveOnHover&&e.show&&p.handleMouseEnter(t)}function S(t){"hover"===e.trigger&&e.keepAliveOnHover&&p.handleMouseLeave(t)}function M(t){"hover"!==e.trigger||O().contains(te(t))||p.handleMouseMoveOutside(t)}function z(t){("click"===e.trigger&&!O().contains(te(t))||e.onClickoutside)&&p.handleClickOutside(t)}function O(){return p.getTriggerElement()}return p.setBodyInstance({syncPosition:function(){var e;null===(e=c.value)||void 0===e||e.syncPosition()}}),He(()=>{p.setBodyInstance(null)}),Ce(ze(e,"show"),t=>{e.animated||(h.value=!!t)}),me(C,f),me(re,null),me(j,null),{displayed:v,namespace:r,isMounted:p.isMountedRef,zIndex:p.zIndexRef,followerRef:c,adjustedTo:Ze(e),followerEnabled:h,renderContentNode:function(){if(null==x||x.onRender(),!("show"===e.displayDirective||e.show||e.animated&&v.value))return null;let r;const l=p.internalRenderBodyRef.value,{value:i}=n;if(l)r=l([`${i}-popover-shared`,(null==d?void 0:d.value)&&`${i}-popover--rtl`,null==x?void 0:x.themeClass.value,e.overlap&&`${i}-popover-shared--overlap`,e.showArrow&&`${i}-popover-shared--show-arrow`,e.arrowPointToCenter&&`${i}-popover-shared--center-arrow`],f,y.value,$,S);else{const{value:n}=p.extraClassRef,{internalTrapFocus:l}=e,u=!I(t.header)||!I(t.footer),c=()=>{var o,r;const n=u?ye(je,null,a(t.header,t=>t?ye("div",{class:[`${i}-popover__header`,e.headerClass],style:e.headerStyle},t):null),a(t.default,o=>o?ye("div",{class:[`${i}-popover__content`,e.contentClass],style:e.contentStyle},t):null),a(t.footer,t=>t?ye("div",{class:[`${i}-popover__footer`,e.footerClass],style:e.footerStyle},t):null)):e.scrollable?null===(o=t.default)||void 0===o?void 0:o.call(t):ye("div",{class:[`${i}-popover__content`,e.contentClass],style:e.contentStyle},t);return[e.scrollable?ye(k,{themeOverrides:s.value.peerOverrides.Scrollbar,theme:s.value.peers.Scrollbar,contentClass:u?void 0:`${i}-popover__content ${null!==(r=e.contentClass)&&void 0!==r?r:""}`,contentStyle:u?void 0:e.contentStyle},{default:()=>n}):n,e.showArrow?Qo({arrowClass:e.arrowClass,arrowStyle:e.arrowStyle,arrowWrapperClass:e.arrowWrapperClass,arrowWrapperStyle:e.arrowWrapperStyle,clsPrefix:i}):null]};r=ye("div",be({class:[`${i}-popover`,`${i}-popover-shared`,(null==d?void 0:d.value)&&`${i}-popover--rtl`,null==x?void 0:x.themeClass.value,n.map(e=>`${i}-${e}`),{[`${i}-popover--scrollable`]:e.scrollable,[`${i}-popover--show-header-or-footer`]:u,[`${i}-popover--raw`]:e.raw,[`${i}-popover-shared--overlap`]:e.overlap,[`${i}-popover-shared--show-arrow`]:e.showArrow,[`${i}-popover-shared--center-arrow`]:e.arrowPointToCenter}],ref:f,style:y.value,onKeydown:p.handleKeydown,onMouseenter:$,onMouseleave:S},o),l?ye(b,{active:e.show,autoFocus:!0},{default:c}):c())}return _e(r,m.value)}}},render(){return ye(mt,{ref:"followerRef",zIndex:this.zIndex,show:this.show,enabled:this.followerEnabled,to:this.adjustedTo,x:this.x,y:this.y,flip:this.flip,placement:this.placement,containerClass:this.namespace,overlap:this.overlap,width:"trigger"===this.width?"target":void 0,teleportDisabled:this.adjustedTo===Ze.tdkey},{default:()=>this.animated?ye(Be,{name:"popover-transition",appear:this.isMounted,onEnter:()=>{this.followerEnabled=!0},onAfterLeave:()=>{var e;null===(e=this.internalOnAfterLeave)||void 0===e||e.call(this),this.followerEnabled=!1,this.displayed=!1}},{default:this.renderContentNode}):this.renderContentNode()})}}),Go=Object.keys(Ko),Jo={focus:["onFocus","onBlur"],click:["onClick"],hover:["onMouseenter","onMouseleave"],manual:[],nested:["onFocus","onBlur","onMouseenter","onMouseleave","onClick"]};var er={show:{type:Boolean,default:void 0},defaultShow:Boolean,showArrow:{type:Boolean,default:!0},trigger:{type:String,default:"hover"},delay:{type:Number,default:100},duration:{type:Number,default:100},raw:Boolean,placement:{type:String,default:"top"},x:Number,y:Number,arrowPointToCenter:Boolean,disabled:Boolean,getDisabled:Function,displayDirective:{type:String,default:"if"},arrowClass:String,arrowStyle:[String,Object],arrowWrapperClass:String,arrowWrapperStyle:[String,Object],flip:{type:Boolean,default:!0},animated:{type:Boolean,default:!0},width:{type:[Number,String],default:void 0},overlap:Boolean,keepAliveOnHover:{type:Boolean,default:!0},zIndex:Number,to:Ze.propTo,scrollable:Boolean,contentClass:String,contentStyle:[Object,String],headerClass:String,headerStyle:[Object,String],footerClass:String,footerStyle:[Object,String],onClickoutside:Function,"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],internalDeactivateImmediately:Boolean,internalSyncTargetWithParent:Boolean,internalInheritedEventHandlers:{type:Array,default:()=>[]},internalTrapFocus:Boolean,internalExtraClass:{type:Array,default:()=>[]},onShow:[Function,Array],onHide:[Function,Array],arrow:{type:Boolean,default:void 0},minWidth:Number,maxWidth:Number},tr=ve({name:"Popover",inheritAttrs:!1,props:Object.assign(Object.assign(Object.assign({},g.props),er),{internalOnAfterLeave:Function,internalRenderBody:Function}),slots:Object,__popover__:!0,setup(e){const o=P(),r=Ae(null),n=Me(()=>e.show),a=Ae(e.defaultShow),l=y(n,a),i=t(()=>!e.disabled&&l.value),s=()=>{if(e.disabled)return!0;const{getDisabled:t}=e;return!!(null==t?void 0:t())},d=()=>!s()&&l.value,u=E(e,["arrow","showArrow"]),c=Me(()=>!e.overlap&&u.value);let p=null;const f=Ae(null),h=Ae(null),v=t(()=>void 0!==e.x&&void 0!==e.y);function g(t){const{"onUpdate:show":o,onUpdateShow:r,onShow:n,onHide:l}=e;a.value=t,o&&$(o,t),r&&$(r,t),t&&n&&$(n,!0),t&&l&&$(l,!1)}function b(){const{value:e}=f;e&&(window.clearTimeout(e),f.value=null)}function m(){const{value:e}=h;e&&(window.clearTimeout(e),h.value=null)}function w(){const t=s();if("hover"===e.trigger&&!t){if(m(),null!==f.value)return;if(d())return;const t=()=>{g(!0),f.value=null},{delay:o}=e;0===o?t():f.value=window.setTimeout(t,o)}}function x(){const t=s();if("hover"===e.trigger&&!t){if(b(),null!==h.value)return;if(!d())return;const t=()=>{g(!1),h.value=null},{duration:o}=e;0===o?t():h.value=window.setTimeout(t,o)}}return me("NPopover",{getTriggerElement:function(){var e;return null===(e=r.value)||void 0===e?void 0:e.targetRef},handleKeydown:function(t){e.internalTrapFocus&&"Escape"===t.key&&(b(),m(),g(!1))},handleMouseEnter:w,handleMouseLeave:x,handleClickOutside:function(t){var o;d()&&("click"===e.trigger&&(b(),m(),g(!1)),null===(o=e.onClickoutside)||void 0===o||o.call(e,t))},handleMouseMoveOutside:function(){x()},setBodyInstance:function(e){p=e},positionManuallyRef:v,isMountedRef:o,zIndexRef:ze(e,"zIndex"),extraClassRef:ze(e,"internalExtraClass"),internalRenderBodyRef:ze(e,"internalRenderBody")}),$e(()=>{l.value&&s()&&g(!1)}),{binderInstRef:r,positionManually:v,mergedShowConsideringDisabledProp:i,uncontrolledShow:a,mergedShowArrow:c,getMergedShow:d,setShow:function(e){a.value=e},handleClick:function(){"click"!==e.trigger||s()||(b(),m(),g(!d()))},handleMouseEnter:w,handleMouseLeave:x,handleFocus:function(){const t=s();if("focus"===e.trigger&&!t){if(d())return;g(!0)}},handleBlur:function(){const t=s();if("focus"===e.trigger&&!t){if(!d())return;g(!1)}},syncPosition:function(){p&&p.syncPosition()}}},render(){var e;const{positionManually:t,$slots:o}=this;let r,n=!1;if(!t&&(r=function(e,t="default",o){const r=e[t];if(!r)return m("getFirstSlotVNode",`slot[${t}] is empty`),null;const n=wt(r(o));return 1===n.length?n[0]:(m("getFirstSlotVNode",`slot[${t}] should have exactly one child`),null)}(o,"trigger"),r)){r=We(r),r=r.type===Pe?ye("span",[r]):r;const o={onClick:this.handleClick,onMouseenter:this.handleMouseEnter,onMouseleave:this.handleMouseLeave,onFocus:this.handleFocus,onBlur:this.handleBlur};if(null===(e=r.type)||void 0===e?void 0:e.__popover__)n=!0,r.props||(r.props={internalSyncTargetWithParent:!0,internalInheritedEventHandlers:[]}),r.props.internalSyncTargetWithParent=!0,r.props.internalInheritedEventHandlers?r.props.internalInheritedEventHandlers=[o,...r.props.internalInheritedEventHandlers]:r.props.internalInheritedEventHandlers=[o];else{const{internalInheritedEventHandlers:e}=this,n=[o,...e];a=r,l=e?"nested":t?"manual":this.trigger,i={onBlur:e=>{n.forEach(t=>{t.onBlur(e)})},onFocus:e=>{n.forEach(t=>{t.onFocus(e)})},onClick:e=>{n.forEach(t=>{t.onClick(e)})},onMouseenter:e=>{n.forEach(t=>{t.onMouseenter(e)})},onMouseleave:e=>{n.forEach(t=>{t.onMouseleave(e)})}},Jo[l].forEach(e=>{a.props?a.props=Object.assign({},a.props):a.props={};const t=a.props[e],o=i[e];a.props[e]=t?(...e)=>{t(...e),o(...e)}:o})}}var a,l,i;return ye(ot,{ref:"binderInstRef",syncTarget:!n,syncTargetWithParent:this.internalSyncTargetWithParent},{default:()=>{this.mergedShowConsideringDisabledProp;const e=this.getMergedShow();return[this.internalTrapFocus&&e?_e(ye("div",{style:{position:"fixed",top:0,right:0,bottom:0,left:0}}),[[x,{enabled:e,zIndex:this.zIndex}]]):null,t?null:ye(rt,null,{default:()=>r}),ye(Zo,xt(this.$props,Go,Object.assign(Object.assign({},this.$attrs),{showArrow:this.mergedShowArrow,show:e})),{default:()=>{var e,t;return null===(t=(e=this.$slots).default)||void 0===t?void 0:t.call(e)},header:()=>{var e,t;return null===(t=(e=this.$slots).header)||void 0===t?void 0:t.call(e)},footer:()=>{var e,t;return null===(t=(e=this.$slots).footer)||void 0===t?void 0:t.call(e)}})]}})}}),or={paddingSingle:"0 26px 0 12px",paddingMultiple:"3px 26px 0 12px",clearSize:"16px",arrowSize:"16px"};var rr=v({name:"InternalSelection",common:n,peers:{Popover:No},self:function(e){const{borderRadius:t,textColor2:o,textColorDisabled:r,inputColor:n,inputColorDisabled:a,primaryColor:l,primaryColorHover:i,warningColor:s,warningColorHover:d,errorColor:u,errorColorHover:c,borderColor:p,iconColor:f,iconColorDisabled:h,clearColor:v,clearColorHover:g,clearColorPressed:b,placeholderColor:m,placeholderColorDisabled:w,fontSizeTiny:y,fontSizeSmall:x,fontSizeMedium:$,fontSizeLarge:S,heightTiny:C,heightSmall:M,heightMedium:z,heightLarge:O,fontWeight:j}=e;return Object.assign(Object.assign({},or),{fontSizeTiny:y,fontSizeSmall:x,fontSizeMedium:$,fontSizeLarge:S,heightTiny:C,heightSmall:M,heightMedium:z,heightLarge:O,borderRadius:t,fontWeight:j,textColor:o,textColorDisabled:r,placeholderColor:m,placeholderColorDisabled:w,color:n,colorDisabled:a,colorActive:n,border:`1px solid ${p}`,borderHover:`1px solid ${i}`,borderActive:`1px solid ${l}`,borderFocus:`1px solid ${i}`,boxShadowHover:"none",boxShadowActive:`0 0 0 2px ${R(l,{alpha:.2})}`,boxShadowFocus:`0 0 0 2px ${R(l,{alpha:.2})}`,caretColor:l,arrowColor:f,arrowColorDisabled:h,loadingColor:l,borderWarning:`1px solid ${s}`,borderHoverWarning:`1px solid ${d}`,borderActiveWarning:`1px solid ${s}`,borderFocusWarning:`1px solid ${d}`,boxShadowHoverWarning:"none",boxShadowActiveWarning:`0 0 0 2px ${R(s,{alpha:.2})}`,boxShadowFocusWarning:`0 0 0 2px ${R(s,{alpha:.2})}`,colorActiveWarning:n,caretColorWarning:s,borderError:`1px solid ${u}`,borderHoverError:`1px solid ${c}`,borderActiveError:`1px solid ${u}`,borderFocusError:`1px solid ${c}`,boxShadowHoverError:"none",boxShadowActiveError:`0 0 0 2px ${R(u,{alpha:.2})}`,boxShadowFocusError:`0 0 0 2px ${R(u,{alpha:.2})}`,colorActiveError:n,caretColorError:u,clearColor:v,clearColorHover:g,clearColorPressed:b})}}),nr={paddingTiny:"0 8px",paddingSmall:"0 10px",paddingMedium:"0 12px",paddingLarge:"0 14px",clearSize:"16px"};var ar=v({name:"Input",common:n,peers:{Scrollbar:ce},self:function(e){const{textColor2:t,textColor3:o,textColorDisabled:r,primaryColor:n,primaryColorHover:a,inputColor:l,inputColorDisabled:i,borderColor:s,warningColor:d,warningColorHover:u,errorColor:c,errorColorHover:p,borderRadius:f,lineHeight:h,fontSizeTiny:v,fontSizeSmall:g,fontSizeMedium:b,fontSizeLarge:m,heightTiny:w,heightSmall:y,heightMedium:x,heightLarge:$,actionColor:S,clearColor:C,clearColorHover:M,clearColorPressed:z,placeholderColor:O,placeholderColorDisabled:j,iconColor:T,iconColorDisabled:E,iconColorHover:B,iconColorPressed:A,fontWeight:_}=e;return Object.assign(Object.assign({},nr),{fontWeight:_,countTextColorDisabled:r,countTextColor:o,heightTiny:w,heightSmall:y,heightMedium:x,heightLarge:$,fontSizeTiny:v,fontSizeSmall:g,fontSizeMedium:b,fontSizeLarge:m,lineHeight:h,lineHeightTextarea:h,borderRadius:f,iconSize:"16px",groupLabelColor:S,groupLabelTextColor:t,textColor:t,textColorDisabled:r,textDecorationColor:t,caretColor:n,placeholderColor:O,placeholderColorDisabled:j,color:l,colorDisabled:i,colorFocus:l,groupLabelBorder:`1px solid ${s}`,border:`1px solid ${s}`,borderHover:`1px solid ${a}`,borderDisabled:`1px solid ${s}`,borderFocus:`1px solid ${a}`,boxShadowFocus:`0 0 0 2px ${R(n,{alpha:.2})}`,loadingColor:n,loadingColorWarning:d,borderWarning:`1px solid ${d}`,borderHoverWarning:`1px solid ${u}`,colorFocusWarning:l,borderFocusWarning:`1px solid ${u}`,boxShadowFocusWarning:`0 0 0 2px ${R(d,{alpha:.2})}`,caretColorWarning:d,loadingColorError:c,borderError:`1px solid ${c}`,borderHoverError:`1px solid ${p}`,colorFocusError:l,borderFocusError:`1px solid ${p}`,boxShadowFocusError:`0 0 0 2px ${R(c,{alpha:.2})}`,caretColorError:c,clearColor:C,clearColorHover:M,clearColorPressed:z,iconColor:T,iconColorDisabled:E,iconColorHover:B,iconColorPressed:A,suffixTextColor:t})}});function lr(e){const{boxShadow2:t}=e;return{menuBoxShadow:t}}var ir=v({name:"Select",common:n,peers:{InternalSelection:rr,InternalSelectMenu:Wo},self:lr}),sr=A("n-message-api"),dr=A("n-message-provider");function ur(){const e=xe(sr,null);return null===e&&l("use-message","No outer <n-message-provider /> founded. See prerequisite in https://www.naiveui.com/en-US/os-theme/components/message for more details. If you want to use `useMessage` outside setup, please check https://www.naiveui.com/zh-CN/os-theme/components/message#Q-&-A."),e}export{qe as A,mt as C,ot as D,rt as E,Ie as M,Ve as N,Ze as O,De as P,wt as S,it as T,Po as _,lr as a,xt as b,rr as c,er as d,Qo as f,Wo as g,Fo as h,ir as i,Ue as j,Ke as k,or as l,Do as m,sr as n,ar as o,No as p,dr as r,nr as s,ur as t,tr as u,Dt as v,lt as w,yt as x,$t as y};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{F as e,I as t,It as n,Jt as r,N as o,Nt as i,Qt as a,Rt as s,Tt as l,Ut as d,Wt as c,Zt as u,gn as h,gt as m,hn as v,ht as b,jt as f,kt as p,qt as g,vn as w,w as y,y as z,yn as $,zt as x}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as S,F as k,G as C,H as E,M as B,N as F,Q as M,V as R,Z as H,b as O,dt as A,f as T,l as W,st as D,tt as N,z as P}from"./vue-vendor-BqZbbXHA.js";import{n as U,t as j}from"./use-lock-html-scroll-DXIqmUW4.js";import{J as L}from"./index-BFInlZGI.js";var I=S({name:"NDrawerContent",inheritAttrs:!1,props:{blockScroll:Boolean,show:{type:Boolean,default:void 0},displayDirective:{type:String,required:!0},placement:{type:String,required:!0},contentClass:String,contentStyle:[Object,String],nativeScrollbar:{type:Boolean,required:!0},scrollbarProps:Object,trapFocus:{type:Boolean,default:!0},autoFocus:{type:Boolean,default:!0},showMask:{type:[Boolean,String],required:!0},maxWidth:Number,maxHeight:Number,minWidth:Number,minHeight:Number,resizable:Boolean,onClickoutside:Function,onAfterLeave:Function,onAfterEnter:Function,onEsc:Function},setup(e){const n=D(!!e.show),o=D(null),i=F(r);let a=0,s="",l=null;const u=D(!1),h=D(!1),v=O(()=>"top"===e.placement||"bottom"===e.placement),{mergedClsPrefixRef:b,mergedRtlRef:f}=m(e),p=t("Drawer",f,b),w=S,{doUpdateHeight:y,doUpdateWidth:z}=i;function $(t){var n,r;if(h.value)if(v.value){let r=(null===(n=o.value)||void 0===n?void 0:n.offsetHeight)||0;const i=a-t.clientY;r+="bottom"===e.placement?i:-i,r=(t=>{const{maxHeight:n}=e;if(n&&t>n)return n;const{minHeight:r}=e;return r&&t<r?r:t})(r),y(r),a=t.clientY}else{let n=(null===(r=o.value)||void 0===r?void 0:r.offsetWidth)||0;const i=a-t.clientX;n+="right"===e.placement?i:-i,n=(t=>{const{maxWidth:n}=e;if(n&&t>n)return n;const{minWidth:r}=e;return r&&t<r?r:t})(n),z(n),a=t.clientX}}function S(){h.value&&(a=0,h.value=!1,document.body.style.cursor=s,document.body.removeEventListener("mousemove",$),document.body.removeEventListener("mouseup",S),document.body.removeEventListener("mouseleave",w))}M(()=>{e.show&&(n.value=!0)}),H(()=>e.show,e=>{e||S()}),P(()=>{S()});const k=O(()=>{const{show:t}=e,n=[[T,t]];return e.showMask||n.push([x,e.onClickoutside,void 0,{capture:!0}]),n});return j(O(()=>e.blockScroll&&n.value)),C(g,o),C(d,null),C(c,null),{bodyRef:o,rtlEnabled:p,mergedClsPrefix:i.mergedClsPrefixRef,isMounted:i.isMountedRef,mergedTheme:i.mergedThemeRef,displayed:n,transitionName:O(()=>({right:"slide-in-from-right-transition",left:"slide-in-from-left-transition",top:"slide-in-from-top-transition",bottom:"slide-in-from-bottom-transition"}[e.placement])),handleAfterLeave:function(){var t;n.value=!1,null===(t=e.onAfterLeave)||void 0===t||t.call(e)},bodyDirectives:k,handleMousedownResizeTrigger:e=>{h.value=!0,a=v.value?e.clientY:e.clientX,s=document.body.style.cursor,document.body.style.cursor=v.value?"ns-resize":"ew-resize",document.body.addEventListener("mousemove",$),document.body.addEventListener("mouseleave",w),document.body.addEventListener("mouseup",S)},handleMouseenterResizeTrigger:()=>{null!==l&&(window.clearTimeout(l),l=null),h.value?u.value=!0:l=window.setTimeout(()=>{u.value=!0},300)},handleMouseleaveResizeTrigger:()=>{null!==l&&(window.clearTimeout(l),l=null),u.value=!1},isDragging:h,isHoverOnResizeTrigger:u}},render(){const{$slots:e,mergedClsPrefix:t}=this;return"show"===this.displayDirective||this.displayed||this.show?N(B("div",{role:"none"},B(i,{disabled:!this.showMask||!this.trapFocus,active:this.show,autoFocus:this.autoFocus,onEsc:this.onEsc},{default:()=>B(W,{name:this.transitionName,appear:this.isMounted,onAfterEnter:this.onAfterEnter,onAfterLeave:this.handleAfterLeave},{default:()=>N(B("div",k(this.$attrs,{role:"dialog",ref:"bodyRef","aria-modal":"true",class:[`${t}-drawer`,this.rtlEnabled&&`${t}-drawer--rtl`,`${t}-drawer--${this.placement}-placement`,this.isDragging&&`${t}-drawer--unselectable`,this.nativeScrollbar&&`${t}-drawer--native-scrollbar`]}),[this.resizable?B("div",{class:[`${t}-drawer__resize-trigger`,(this.isDragging||this.isHoverOnResizeTrigger)&&`${t}-drawer__resize-trigger--hover`],onMouseenter:this.handleMouseenterResizeTrigger,onMouseleave:this.handleMouseleaveResizeTrigger,onMousedown:this.handleMousedownResizeTrigger}):null,this.nativeScrollbar?B("div",{class:[`${t}-drawer-content-wrapper`,this.contentClass],style:this.contentStyle,role:"none"},e):B(z,Object.assign({},this.scrollbarProps,{contentStyle:this.contentStyle,contentClass:[`${t}-drawer-content-wrapper`,this.contentClass],theme:this.mergedTheme.peers.Scrollbar,themeOverrides:this.mergedTheme.peerOverrides.Scrollbar}),e)]),this.bodyDirectives)})})),[[T,"if"===this.displayDirective||this.displayed||this.show]]):null}}),{cubicBezierEaseIn:X,cubicBezierEaseOut:Y}=e;var{cubicBezierEaseIn:_,cubicBezierEaseOut:q}=e;var{cubicBezierEaseIn:V,cubicBezierEaseOut:J}=e;var{cubicBezierEaseIn:Q,cubicBezierEaseOut:Z}=e;var G=v([h("drawer","\n word-break: break-word;\n line-height: var(--n-line-height);\n position: absolute;\n pointer-events: all;\n box-shadow: var(--n-box-shadow);\n transition:\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n background-color: var(--n-color);\n color: var(--n-text-color);\n box-sizing: border-box;\n ",[function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-right"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${V}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${J}`}),v(`&.${n}-transition-enter-to`,{transform:"translateX(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateX(100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateX(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateX(100%)"})]}(),function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-left"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${_}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${q}`}),v(`&.${n}-transition-enter-to`,{transform:"translateX(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateX(-100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateX(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateX(-100%)"})]}(),function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-top"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${Q}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${Z}`}),v(`&.${n}-transition-enter-to`,{transform:"translateY(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateY(-100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateY(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateY(-100%)"})]}(),function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-bottom"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${X}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${Y}`}),v(`&.${n}-transition-enter-to`,{transform:"translateY(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateY(100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateY(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateY(100%)"})]}(),$("unselectable","\n user-select: none; \n -webkit-user-select: none;\n "),$("native-scrollbar",[h("drawer-content-wrapper","\n overflow: auto;\n height: 100%;\n ")]),w("resize-trigger","\n position: absolute;\n background-color: #0000;\n transition: background-color .3s var(--n-bezier);\n ",[$("hover","\n background-color: var(--n-resize-trigger-color-hover);\n ")]),h("drawer-content-wrapper","\n box-sizing: border-box;\n "),h("drawer-content","\n height: 100%;\n display: flex;\n flex-direction: column;\n ",[$("native-scrollbar",[h("drawer-body-content-wrapper","\n height: 100%;\n overflow: auto;\n ")]),h("drawer-body","\n flex: 1 0 0;\n overflow: hidden;\n "),h("drawer-body-content-wrapper","\n box-sizing: border-box;\n padding: var(--n-body-padding);\n "),h("drawer-header","\n font-weight: var(--n-title-font-weight);\n line-height: 1;\n font-size: var(--n-title-font-size);\n color: var(--n-title-text-color);\n padding: var(--n-header-padding);\n transition: border .3s var(--n-bezier);\n border-bottom: 1px solid var(--n-divider-color);\n border-bottom: var(--n-header-border-bottom);\n display: flex;\n justify-content: space-between;\n align-items: center;\n ",[w("main","\n flex: 1;\n "),w("close","\n margin-left: 6px;\n transition:\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n ")]),h("drawer-footer","\n display: flex;\n justify-content: flex-end;\n border-top: var(--n-footer-border-top);\n transition: border .3s var(--n-bezier);\n padding: var(--n-footer-padding);\n ")]),$("right-placement","\n top: 0;\n bottom: 0;\n right: 0;\n border-top-left-radius: var(--n-border-radius);\n border-bottom-left-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 3px;\n height: 100%;\n top: 0;\n left: 0;\n transform: translateX(-1.5px);\n cursor: ew-resize;\n ")]),$("left-placement","\n top: 0;\n bottom: 0;\n left: 0;\n border-top-right-radius: var(--n-border-radius);\n border-bottom-right-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 3px;\n height: 100%;\n top: 0;\n right: 0;\n transform: translateX(1.5px);\n cursor: ew-resize;\n ")]),$("top-placement","\n top: 0;\n left: 0;\n right: 0;\n border-bottom-left-radius: var(--n-border-radius);\n border-bottom-right-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 100%;\n height: 3px;\n bottom: 0;\n left: 0;\n transform: translateY(1.5px);\n cursor: ns-resize;\n ")]),$("bottom-placement","\n left: 0;\n bottom: 0;\n right: 0;\n border-top-left-radius: var(--n-border-radius);\n border-top-right-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 100%;\n height: 3px;\n top: 0;\n left: 0;\n transform: translateY(-1.5px);\n cursor: ns-resize;\n ")])]),v("body",[v(">",[h("drawer-container","\n position: fixed;\n ")])]),h("drawer-container","\n position: relative;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n ",[v("> *","\n pointer-events: all;\n ")]),h("drawer-mask","\n background-color: rgba(0, 0, 0, .3);\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n ",[$("invisible","\n background-color: rgba(0, 0, 0, 0)\n "),y({enterDuration:"0.2s",leaveDuration:"0.2s",enterCubicBezier:"var(--n-bezier-in)",leaveCubicBezier:"var(--n-bezier-out)"})])]),K=S({name:"Drawer",inheritAttrs:!1,props:Object.assign(Object.assign({},o.props),{show:Boolean,width:[Number,String],height:[Number,String],placement:{type:String,default:"right"},maskClosable:{type:Boolean,default:!0},showMask:{type:[Boolean,String],default:!0},to:[String,Object],displayDirective:{type:String,default:"if"},nativeScrollbar:{type:Boolean,default:!0},zIndex:Number,onMaskClick:Function,scrollbarProps:Object,contentClass:String,contentStyle:[Object,String],trapFocus:{type:Boolean,default:!0},onEsc:Function,autoFocus:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},blockScroll:{type:Boolean,default:!0},maxWidth:Number,maxHeight:Number,minWidth:Number,minHeight:Number,resizable:Boolean,defaultWidth:{type:[Number,String],default:251},defaultHeight:{type:[Number,String],default:251},onUpdateWidth:[Function,Array],onUpdateHeight:[Function,Array],"onUpdate:width":[Function,Array],"onUpdate:height":[Function,Array],"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],onAfterEnter:Function,onAfterLeave:Function,drawerStyle:[String,Object],drawerClass:String,target:null,onShow:Function,onHide:Function}),setup(e){const{mergedClsPrefixRef:t,namespaceRef:n,inlineThemeDisabled:i}=m(e),s=u(),d=o("Drawer","-drawer",G,L,e,t),c=D(e.defaultWidth),h=D(e.defaultHeight),v=a(A(e,"width"),c),g=a(A(e,"height"),h),w=O(()=>{const{placement:t}=e;return"top"===t||"bottom"===t?"":f(v.value)}),y=O(()=>{const{placement:t}=e;return"left"===t||"right"===t?"":f(g.value)}),z=O(()=>[{width:w.value,height:y.value},e.drawerStyle||""]);function $(t){const{onMaskClick:n,maskClosable:r}=e;r&&S(!1),n&&n(t)}const x=U();function S(t){const{onHide:n,onUpdateShow:r,"onUpdate:show":o}=e;r&&l(r,t),o&&l(o,t),n&&!t&&l(n,t)}C(r,{isMountedRef:s,mergedThemeRef:d,mergedClsPrefixRef:t,doUpdateShow:S,doUpdateHeight:t=>{const{onUpdateHeight:n,"onUpdate:width":r}=e;n&&l(n,t),r&&l(r,t),h.value=t},doUpdateWidth:t=>{const{onUpdateWidth:n,"onUpdate:width":r}=e;n&&l(n,t),r&&l(r,t),c.value=t}});const k=O(()=>{const{common:{cubicBezierEaseInOut:e,cubicBezierEaseIn:t,cubicBezierEaseOut:n},self:{color:r,textColor:o,boxShadow:i,lineHeight:a,headerPadding:s,footerPadding:l,borderRadius:c,bodyPadding:u,titleFontSize:h,titleTextColor:m,titleFontWeight:v,headerBorderBottom:b,footerBorderTop:f,closeIconColor:p,closeIconColorHover:g,closeIconColorPressed:w,closeColorHover:y,closeColorPressed:z,closeIconSize:$,closeSize:x,closeBorderRadius:S,resizableTriggerColorHover:k}}=d.value;return{"--n-line-height":a,"--n-color":r,"--n-border-radius":c,"--n-text-color":o,"--n-box-shadow":i,"--n-bezier":e,"--n-bezier-out":n,"--n-bezier-in":t,"--n-header-padding":s,"--n-body-padding":u,"--n-footer-padding":l,"--n-title-text-color":m,"--n-title-font-size":h,"--n-title-font-weight":v,"--n-header-border-bottom":b,"--n-footer-border-top":f,"--n-close-icon-color":p,"--n-close-icon-color-hover":g,"--n-close-icon-color-pressed":w,"--n-close-size":x,"--n-close-color-hover":y,"--n-close-color-pressed":z,"--n-close-icon-size":$,"--n-close-border-radius":S,"--n-resize-trigger-color-hover":k}}),E=i?b("drawer",void 0,k,e):void 0;return{mergedClsPrefix:t,namespace:n,mergedBodyStyle:z,handleOutsideClick:function(e){$(e)},handleMaskClick:$,handleEsc:function(t){var n;null===(n=e.onEsc)||void 0===n||n.call(e),e.show&&e.closeOnEsc&&p(t)&&(x.value||S(!1))},mergedTheme:d,cssVars:i?void 0:k,themeClass:null==E?void 0:E.themeClass,onRender:null==E?void 0:E.onRender,isMounted:s}},render(){const{mergedClsPrefix:e}=this;return B(n,{to:this.to,show:this.show},{default:()=>{var t;return null===(t=this.onRender)||void 0===t||t.call(this),N(B("div",{class:[`${e}-drawer-container`,this.namespace,this.themeClass],style:this.cssVars,role:"none"},this.showMask?B(W,{name:"fade-in-transition",appear:this.isMounted},{default:()=>this.show?B("div",{"aria-hidden":!0,class:[`${e}-drawer-mask`,"transparent"===this.showMask&&`${e}-drawer-mask--invisible`],onClick:this.handleMaskClick}):null}):null,B(I,Object.assign({},this.$attrs,{class:[this.drawerClass,this.$attrs.class],style:[this.mergedBodyStyle,this.$attrs.style],blockScroll:this.blockScroll,contentStyle:this.contentStyle,contentClass:this.contentClass,placement:this.placement,scrollbarProps:this.scrollbarProps,show:this.show,displayDirective:this.displayDirective,nativeScrollbar:this.nativeScrollbar,onAfterEnter:this.onAfterEnter,onAfterLeave:this.onAfterLeave,trapFocus:this.trapFocus,autoFocus:this.autoFocus,resizable:this.resizable,maxHeight:this.maxHeight,minHeight:this.minHeight,maxWidth:this.maxWidth,minWidth:this.minWidth,showMask:this.showMask,onEsc:this.handleEsc,onClickoutside:this.handleOutsideClick}),this.$slots)),[[s,{zIndex:this.zIndex,enabled:this.show}]])}})}});function ee(e=520,t=null){const n=D("undefined"!=typeof window?window.innerWidth:1200),r=()=>{n.value=window.innerWidth};R(()=>{window.addEventListener("resize",r)}),E(()=>{window.removeEventListener("resize",r)});const o=O(()=>n.value<640),i=O(()=>n.value>=640&&n.value<1024);return{drawerWidth:O(()=>{if(n.value<640)return"100%";if(n.value<768)return Math.min(.95*n.value,e);if(n.value<1024){const r=t||e;return Math.min(.85*n.value,r)}return e}),isMobile:o,isTablet:i,windowWidth:n}}export{K as n,ee as t};
|
|
1
|
+
import{F as e,I as t,It as n,Jt as r,N as o,Nt as i,Qt as a,Rt as s,Tt as l,Ut as d,Wt as c,Zt as u,gn as h,gt as m,hn as v,ht as b,jt as f,kt as p,qt as g,vn as w,w as y,y as z,yn as $,zt as x}from"./_plugin-vue_export-helper-BeLZJZij.js";import{A as S,F as k,G as C,H as E,M as B,N as F,Q as M,V as R,Z as H,b as O,dt as A,f as T,l as W,st as D,tt as N,z as P}from"./vue-vendor-BqZbbXHA.js";import{n as U,t as j}from"./use-lock-html-scroll-DXIqmUW4.js";import{J as L}from"./index-Cmmwj3Fx.js";var I=S({name:"NDrawerContent",inheritAttrs:!1,props:{blockScroll:Boolean,show:{type:Boolean,default:void 0},displayDirective:{type:String,required:!0},placement:{type:String,required:!0},contentClass:String,contentStyle:[Object,String],nativeScrollbar:{type:Boolean,required:!0},scrollbarProps:Object,trapFocus:{type:Boolean,default:!0},autoFocus:{type:Boolean,default:!0},showMask:{type:[Boolean,String],required:!0},maxWidth:Number,maxHeight:Number,minWidth:Number,minHeight:Number,resizable:Boolean,onClickoutside:Function,onAfterLeave:Function,onAfterEnter:Function,onEsc:Function},setup(e){const n=D(!!e.show),o=D(null),i=F(r);let a=0,s="",l=null;const u=D(!1),h=D(!1),v=O(()=>"top"===e.placement||"bottom"===e.placement),{mergedClsPrefixRef:b,mergedRtlRef:f}=m(e),p=t("Drawer",f,b),w=S,{doUpdateHeight:y,doUpdateWidth:z}=i;function $(t){var n,r;if(h.value)if(v.value){let r=(null===(n=o.value)||void 0===n?void 0:n.offsetHeight)||0;const i=a-t.clientY;r+="bottom"===e.placement?i:-i,r=(t=>{const{maxHeight:n}=e;if(n&&t>n)return n;const{minHeight:r}=e;return r&&t<r?r:t})(r),y(r),a=t.clientY}else{let n=(null===(r=o.value)||void 0===r?void 0:r.offsetWidth)||0;const i=a-t.clientX;n+="right"===e.placement?i:-i,n=(t=>{const{maxWidth:n}=e;if(n&&t>n)return n;const{minWidth:r}=e;return r&&t<r?r:t})(n),z(n),a=t.clientX}}function S(){h.value&&(a=0,h.value=!1,document.body.style.cursor=s,document.body.removeEventListener("mousemove",$),document.body.removeEventListener("mouseup",S),document.body.removeEventListener("mouseleave",w))}M(()=>{e.show&&(n.value=!0)}),H(()=>e.show,e=>{e||S()}),P(()=>{S()});const k=O(()=>{const{show:t}=e,n=[[T,t]];return e.showMask||n.push([x,e.onClickoutside,void 0,{capture:!0}]),n});return j(O(()=>e.blockScroll&&n.value)),C(g,o),C(d,null),C(c,null),{bodyRef:o,rtlEnabled:p,mergedClsPrefix:i.mergedClsPrefixRef,isMounted:i.isMountedRef,mergedTheme:i.mergedThemeRef,displayed:n,transitionName:O(()=>({right:"slide-in-from-right-transition",left:"slide-in-from-left-transition",top:"slide-in-from-top-transition",bottom:"slide-in-from-bottom-transition"}[e.placement])),handleAfterLeave:function(){var t;n.value=!1,null===(t=e.onAfterLeave)||void 0===t||t.call(e)},bodyDirectives:k,handleMousedownResizeTrigger:e=>{h.value=!0,a=v.value?e.clientY:e.clientX,s=document.body.style.cursor,document.body.style.cursor=v.value?"ns-resize":"ew-resize",document.body.addEventListener("mousemove",$),document.body.addEventListener("mouseleave",w),document.body.addEventListener("mouseup",S)},handleMouseenterResizeTrigger:()=>{null!==l&&(window.clearTimeout(l),l=null),h.value?u.value=!0:l=window.setTimeout(()=>{u.value=!0},300)},handleMouseleaveResizeTrigger:()=>{null!==l&&(window.clearTimeout(l),l=null),u.value=!1},isDragging:h,isHoverOnResizeTrigger:u}},render(){const{$slots:e,mergedClsPrefix:t}=this;return"show"===this.displayDirective||this.displayed||this.show?N(B("div",{role:"none"},B(i,{disabled:!this.showMask||!this.trapFocus,active:this.show,autoFocus:this.autoFocus,onEsc:this.onEsc},{default:()=>B(W,{name:this.transitionName,appear:this.isMounted,onAfterEnter:this.onAfterEnter,onAfterLeave:this.handleAfterLeave},{default:()=>N(B("div",k(this.$attrs,{role:"dialog",ref:"bodyRef","aria-modal":"true",class:[`${t}-drawer`,this.rtlEnabled&&`${t}-drawer--rtl`,`${t}-drawer--${this.placement}-placement`,this.isDragging&&`${t}-drawer--unselectable`,this.nativeScrollbar&&`${t}-drawer--native-scrollbar`]}),[this.resizable?B("div",{class:[`${t}-drawer__resize-trigger`,(this.isDragging||this.isHoverOnResizeTrigger)&&`${t}-drawer__resize-trigger--hover`],onMouseenter:this.handleMouseenterResizeTrigger,onMouseleave:this.handleMouseleaveResizeTrigger,onMousedown:this.handleMousedownResizeTrigger}):null,this.nativeScrollbar?B("div",{class:[`${t}-drawer-content-wrapper`,this.contentClass],style:this.contentStyle,role:"none"},e):B(z,Object.assign({},this.scrollbarProps,{contentStyle:this.contentStyle,contentClass:[`${t}-drawer-content-wrapper`,this.contentClass],theme:this.mergedTheme.peers.Scrollbar,themeOverrides:this.mergedTheme.peerOverrides.Scrollbar}),e)]),this.bodyDirectives)})})),[[T,"if"===this.displayDirective||this.displayed||this.show]]):null}}),{cubicBezierEaseIn:X,cubicBezierEaseOut:Y}=e;var{cubicBezierEaseIn:_,cubicBezierEaseOut:q}=e;var{cubicBezierEaseIn:V,cubicBezierEaseOut:J}=e;var{cubicBezierEaseIn:Q,cubicBezierEaseOut:Z}=e;var G=v([h("drawer","\n word-break: break-word;\n line-height: var(--n-line-height);\n position: absolute;\n pointer-events: all;\n box-shadow: var(--n-box-shadow);\n transition:\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n background-color: var(--n-color);\n color: var(--n-text-color);\n box-sizing: border-box;\n ",[function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-right"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${V}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${J}`}),v(`&.${n}-transition-enter-to`,{transform:"translateX(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateX(100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateX(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateX(100%)"})]}(),function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-left"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${_}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${q}`}),v(`&.${n}-transition-enter-to`,{transform:"translateX(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateX(-100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateX(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateX(-100%)"})]}(),function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-top"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${Q}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${Z}`}),v(`&.${n}-transition-enter-to`,{transform:"translateY(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateY(-100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateY(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateY(-100%)"})]}(),function({duration:e="0.3s",leaveDuration:t="0.2s",name:n="slide-in-from-bottom"}={}){return[v(`&.${n}-transition-leave-active`,{transition:`transform ${t} ${X}`}),v(`&.${n}-transition-enter-active`,{transition:`transform ${e} ${Y}`}),v(`&.${n}-transition-enter-to`,{transform:"translateY(0)"}),v(`&.${n}-transition-enter-from`,{transform:"translateY(100%)"}),v(`&.${n}-transition-leave-from`,{transform:"translateY(0)"}),v(`&.${n}-transition-leave-to`,{transform:"translateY(100%)"})]}(),$("unselectable","\n user-select: none; \n -webkit-user-select: none;\n "),$("native-scrollbar",[h("drawer-content-wrapper","\n overflow: auto;\n height: 100%;\n ")]),w("resize-trigger","\n position: absolute;\n background-color: #0000;\n transition: background-color .3s var(--n-bezier);\n ",[$("hover","\n background-color: var(--n-resize-trigger-color-hover);\n ")]),h("drawer-content-wrapper","\n box-sizing: border-box;\n "),h("drawer-content","\n height: 100%;\n display: flex;\n flex-direction: column;\n ",[$("native-scrollbar",[h("drawer-body-content-wrapper","\n height: 100%;\n overflow: auto;\n ")]),h("drawer-body","\n flex: 1 0 0;\n overflow: hidden;\n "),h("drawer-body-content-wrapper","\n box-sizing: border-box;\n padding: var(--n-body-padding);\n "),h("drawer-header","\n font-weight: var(--n-title-font-weight);\n line-height: 1;\n font-size: var(--n-title-font-size);\n color: var(--n-title-text-color);\n padding: var(--n-header-padding);\n transition: border .3s var(--n-bezier);\n border-bottom: 1px solid var(--n-divider-color);\n border-bottom: var(--n-header-border-bottom);\n display: flex;\n justify-content: space-between;\n align-items: center;\n ",[w("main","\n flex: 1;\n "),w("close","\n margin-left: 6px;\n transition:\n background-color .3s var(--n-bezier),\n color .3s var(--n-bezier);\n ")]),h("drawer-footer","\n display: flex;\n justify-content: flex-end;\n border-top: var(--n-footer-border-top);\n transition: border .3s var(--n-bezier);\n padding: var(--n-footer-padding);\n ")]),$("right-placement","\n top: 0;\n bottom: 0;\n right: 0;\n border-top-left-radius: var(--n-border-radius);\n border-bottom-left-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 3px;\n height: 100%;\n top: 0;\n left: 0;\n transform: translateX(-1.5px);\n cursor: ew-resize;\n ")]),$("left-placement","\n top: 0;\n bottom: 0;\n left: 0;\n border-top-right-radius: var(--n-border-radius);\n border-bottom-right-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 3px;\n height: 100%;\n top: 0;\n right: 0;\n transform: translateX(1.5px);\n cursor: ew-resize;\n ")]),$("top-placement","\n top: 0;\n left: 0;\n right: 0;\n border-bottom-left-radius: var(--n-border-radius);\n border-bottom-right-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 100%;\n height: 3px;\n bottom: 0;\n left: 0;\n transform: translateY(1.5px);\n cursor: ns-resize;\n ")]),$("bottom-placement","\n left: 0;\n bottom: 0;\n right: 0;\n border-top-left-radius: var(--n-border-radius);\n border-top-right-radius: var(--n-border-radius);\n ",[w("resize-trigger","\n width: 100%;\n height: 3px;\n top: 0;\n left: 0;\n transform: translateY(-1.5px);\n cursor: ns-resize;\n ")])]),v("body",[v(">",[h("drawer-container","\n position: fixed;\n ")])]),h("drawer-container","\n position: relative;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n pointer-events: none;\n ",[v("> *","\n pointer-events: all;\n ")]),h("drawer-mask","\n background-color: rgba(0, 0, 0, .3);\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n ",[$("invisible","\n background-color: rgba(0, 0, 0, 0)\n "),y({enterDuration:"0.2s",leaveDuration:"0.2s",enterCubicBezier:"var(--n-bezier-in)",leaveCubicBezier:"var(--n-bezier-out)"})])]),K=S({name:"Drawer",inheritAttrs:!1,props:Object.assign(Object.assign({},o.props),{show:Boolean,width:[Number,String],height:[Number,String],placement:{type:String,default:"right"},maskClosable:{type:Boolean,default:!0},showMask:{type:[Boolean,String],default:!0},to:[String,Object],displayDirective:{type:String,default:"if"},nativeScrollbar:{type:Boolean,default:!0},zIndex:Number,onMaskClick:Function,scrollbarProps:Object,contentClass:String,contentStyle:[Object,String],trapFocus:{type:Boolean,default:!0},onEsc:Function,autoFocus:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},blockScroll:{type:Boolean,default:!0},maxWidth:Number,maxHeight:Number,minWidth:Number,minHeight:Number,resizable:Boolean,defaultWidth:{type:[Number,String],default:251},defaultHeight:{type:[Number,String],default:251},onUpdateWidth:[Function,Array],onUpdateHeight:[Function,Array],"onUpdate:width":[Function,Array],"onUpdate:height":[Function,Array],"onUpdate:show":[Function,Array],onUpdateShow:[Function,Array],onAfterEnter:Function,onAfterLeave:Function,drawerStyle:[String,Object],drawerClass:String,target:null,onShow:Function,onHide:Function}),setup(e){const{mergedClsPrefixRef:t,namespaceRef:n,inlineThemeDisabled:i}=m(e),s=u(),d=o("Drawer","-drawer",G,L,e,t),c=D(e.defaultWidth),h=D(e.defaultHeight),v=a(A(e,"width"),c),g=a(A(e,"height"),h),w=O(()=>{const{placement:t}=e;return"top"===t||"bottom"===t?"":f(v.value)}),y=O(()=>{const{placement:t}=e;return"left"===t||"right"===t?"":f(g.value)}),z=O(()=>[{width:w.value,height:y.value},e.drawerStyle||""]);function $(t){const{onMaskClick:n,maskClosable:r}=e;r&&S(!1),n&&n(t)}const x=U();function S(t){const{onHide:n,onUpdateShow:r,"onUpdate:show":o}=e;r&&l(r,t),o&&l(o,t),n&&!t&&l(n,t)}C(r,{isMountedRef:s,mergedThemeRef:d,mergedClsPrefixRef:t,doUpdateShow:S,doUpdateHeight:t=>{const{onUpdateHeight:n,"onUpdate:width":r}=e;n&&l(n,t),r&&l(r,t),h.value=t},doUpdateWidth:t=>{const{onUpdateWidth:n,"onUpdate:width":r}=e;n&&l(n,t),r&&l(r,t),c.value=t}});const k=O(()=>{const{common:{cubicBezierEaseInOut:e,cubicBezierEaseIn:t,cubicBezierEaseOut:n},self:{color:r,textColor:o,boxShadow:i,lineHeight:a,headerPadding:s,footerPadding:l,borderRadius:c,bodyPadding:u,titleFontSize:h,titleTextColor:m,titleFontWeight:v,headerBorderBottom:b,footerBorderTop:f,closeIconColor:p,closeIconColorHover:g,closeIconColorPressed:w,closeColorHover:y,closeColorPressed:z,closeIconSize:$,closeSize:x,closeBorderRadius:S,resizableTriggerColorHover:k}}=d.value;return{"--n-line-height":a,"--n-color":r,"--n-border-radius":c,"--n-text-color":o,"--n-box-shadow":i,"--n-bezier":e,"--n-bezier-out":n,"--n-bezier-in":t,"--n-header-padding":s,"--n-body-padding":u,"--n-footer-padding":l,"--n-title-text-color":m,"--n-title-font-size":h,"--n-title-font-weight":v,"--n-header-border-bottom":b,"--n-footer-border-top":f,"--n-close-icon-color":p,"--n-close-icon-color-hover":g,"--n-close-icon-color-pressed":w,"--n-close-size":x,"--n-close-color-hover":y,"--n-close-color-pressed":z,"--n-close-icon-size":$,"--n-close-border-radius":S,"--n-resize-trigger-color-hover":k}}),E=i?b("drawer",void 0,k,e):void 0;return{mergedClsPrefix:t,namespace:n,mergedBodyStyle:z,handleOutsideClick:function(e){$(e)},handleMaskClick:$,handleEsc:function(t){var n;null===(n=e.onEsc)||void 0===n||n.call(e),e.show&&e.closeOnEsc&&p(t)&&(x.value||S(!1))},mergedTheme:d,cssVars:i?void 0:k,themeClass:null==E?void 0:E.themeClass,onRender:null==E?void 0:E.onRender,isMounted:s}},render(){const{mergedClsPrefix:e}=this;return B(n,{to:this.to,show:this.show},{default:()=>{var t;return null===(t=this.onRender)||void 0===t||t.call(this),N(B("div",{class:[`${e}-drawer-container`,this.namespace,this.themeClass],style:this.cssVars,role:"none"},this.showMask?B(W,{name:"fade-in-transition",appear:this.isMounted},{default:()=>this.show?B("div",{"aria-hidden":!0,class:[`${e}-drawer-mask`,"transparent"===this.showMask&&`${e}-drawer-mask--invisible`],onClick:this.handleMaskClick}):null}):null,B(I,Object.assign({},this.$attrs,{class:[this.drawerClass,this.$attrs.class],style:[this.mergedBodyStyle,this.$attrs.style],blockScroll:this.blockScroll,contentStyle:this.contentStyle,contentClass:this.contentClass,placement:this.placement,scrollbarProps:this.scrollbarProps,show:this.show,displayDirective:this.displayDirective,nativeScrollbar:this.nativeScrollbar,onAfterEnter:this.onAfterEnter,onAfterLeave:this.onAfterLeave,trapFocus:this.trapFocus,autoFocus:this.autoFocus,resizable:this.resizable,maxHeight:this.maxHeight,minHeight:this.minHeight,maxWidth:this.maxWidth,minWidth:this.minWidth,showMask:this.showMask,onEsc:this.handleEsc,onClickoutside:this.handleOutsideClick}),this.$slots)),[[s,{zIndex:this.zIndex,enabled:this.show}]])}})}});function ee(e=520,t=null){const n=D("undefined"!=typeof window?window.innerWidth:1200),r=()=>{n.value=window.innerWidth};R(()=>{window.addEventListener("resize",r)}),E(()=>{window.removeEventListener("resize",r)});const o=O(()=>n.value<640),i=O(()=>n.value>=640&&n.value<1024);return{drawerWidth:O(()=>{if(n.value<640)return"100%";if(n.value<768)return Math.min(.95*n.value,e);if(n.value<1024){const r=t||e;return Math.min(.85*n.value,r)}return e}),isMobile:o,isTablet:i,windowWidth:n}}export{K as n,ee as t};
|
package/dist/web/index.html
CHANGED
|
@@ -5,18 +5,18 @@
|
|
|
5
5
|
<link rel="icon" href="/favicon.ico">
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
7
|
<title>coding-tool-x · AI 编程工作台</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-Cmmwj3Fx.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/assets/vue-vendor-BqZbbXHA.js">
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-BeLZJZij.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/vendors-D0c_0KLP.js">
|
|
12
12
|
<link rel="modulepreload" crossorigin href="/assets/client-UDwXBP9i.js">
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/icons-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/platforms-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/platforms-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="/assets/use-message-
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/icons-DmFe4b5j.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/platforms-BmzzwnSw.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/platforms-DWXgmy2w.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/assets/use-message-DqCwefG6.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="/assets/use-lock-html-scroll-DXIqmUW4.js">
|
|
18
|
-
<link rel="modulepreload" crossorigin href="/assets/light-
|
|
19
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/light-0eavxNvt.js">
|
|
19
|
+
<link rel="stylesheet" crossorigin href="/assets/index-Cnbe696C.css">
|
|
20
20
|
</head>
|
|
21
21
|
<body>
|
|
22
22
|
<div id="app"></div>
|
package/package.json
CHANGED
package/src/commands/search.js
CHANGED
|
@@ -96,10 +96,14 @@ function reportDriverFailure(result) {
|
|
|
96
96
|
async function searchSessionsAcrossProjects(config = {}, keyword, limitOrOptions = 15, maybeOptions = {}) {
|
|
97
97
|
const { limit, options } = resolveLimitAndOptions(limitOrOptions, maybeOptions);
|
|
98
98
|
const spinner = ora(`[SEARCH] 正在搜索 "${keyword}"...`).start();
|
|
99
|
+
const operationOptions = { config };
|
|
100
|
+
for (const key of ['projectName', 'project', 'contextLength', 'force', 'consistency']) {
|
|
101
|
+
if (options[key] !== undefined) operationOptions[key] = options[key];
|
|
102
|
+
}
|
|
99
103
|
const result = await invokeSessionOperation(
|
|
100
104
|
config,
|
|
101
105
|
'searchAcrossProjects',
|
|
102
|
-
[keyword, limit,
|
|
106
|
+
[keyword, limit, operationOptions],
|
|
103
107
|
options
|
|
104
108
|
);
|
|
105
109
|
const searchResults = normalizeSearchResults(result);
|
|
@@ -128,7 +132,11 @@ async function searchSessionsAcrossProjects(config = {}, keyword, limitOrOptions
|
|
|
128
132
|
return [];
|
|
129
133
|
}
|
|
130
134
|
|
|
131
|
-
allResults.sort((a, b) =>
|
|
135
|
+
allResults.sort((a, b) => {
|
|
136
|
+
const aUpdated = searchTimestamp(a.updatedAt ?? a.lastUpdated ?? a.mtimeMs ?? a.mtime);
|
|
137
|
+
const bUpdated = searchTimestamp(b.updatedAt ?? b.lastUpdated ?? b.mtimeMs ?? b.mtime);
|
|
138
|
+
return bUpdated - aUpdated || a.sessionId.localeCompare(b.sessionId);
|
|
139
|
+
});
|
|
132
140
|
const totalMatches = allResults.reduce((sum, resultItem) => sum + resultItem.matchCount, 0);
|
|
133
141
|
|
|
134
142
|
console.clear();
|
|
@@ -183,6 +191,13 @@ async function searchSessionsAcrossProjects(config = {}, keyword, limitOrOptions
|
|
|
183
191
|
return choices;
|
|
184
192
|
}
|
|
185
193
|
|
|
194
|
+
function searchTimestamp(value) {
|
|
195
|
+
const numeric = Number(value);
|
|
196
|
+
if (Number.isFinite(numeric) && numeric > 0) return numeric;
|
|
197
|
+
const parsed = Date.parse(String(value || ''));
|
|
198
|
+
return Number.isFinite(parsed) ? parsed : 0;
|
|
199
|
+
}
|
|
200
|
+
|
|
186
201
|
/**
|
|
187
202
|
* 处理搜索会话
|
|
188
203
|
*/
|
package/src/config/paths.js
CHANGED
|
@@ -53,6 +53,7 @@ const LEGACY_STATS_DIR = path.join(LEGACY_DIR, 'stats');
|
|
|
53
53
|
const CONTROL_MANIFEST_PATH = path.join(CONFIG_DIR, 'effective-control.json');
|
|
54
54
|
const SKILL_ARTIFACTS_DIR = path.join(STORAGE_DIR, 'skill-artifacts');
|
|
55
55
|
const SKILL_REFRESH_TASKS_PATH = path.join(RUNTIME_DIR, 'skill-refresh-tasks.json');
|
|
56
|
+
const PLUGIN_REFRESH_TASKS_PATH = path.join(RUNTIME_DIR, 'plugin-refresh-tasks.json');
|
|
56
57
|
|
|
57
58
|
// 旧目录(升级时自动合并到 ~/.cc-tool)
|
|
58
59
|
const LEGACY_BASE_DIRS = [
|
|
@@ -416,6 +417,7 @@ const PATHS = {
|
|
|
416
417
|
effectiveControlManifest: CONTROL_MANIFEST_PATH,
|
|
417
418
|
skillArtifacts: SKILL_ARTIFACTS_DIR,
|
|
418
419
|
skillRefreshTasks: SKILL_REFRESH_TASKS_PATH,
|
|
420
|
+
pluginRefreshTasks: PLUGIN_REFRESH_TASKS_PATH,
|
|
419
421
|
|
|
420
422
|
// 渠道配置
|
|
421
423
|
channelsDir: CHANNELS_DIR,
|
|
@@ -48,7 +48,15 @@ function getDriverRegistry() {
|
|
|
48
48
|
'generic-mcp': createGenericMcpDriver,
|
|
49
49
|
'generic-prompt': createGenericPromptDriver,
|
|
50
50
|
'opencode-conversion': require('./drivers/opencode/conversion').createDriver,
|
|
51
|
-
'claude-health': require('./drivers/claude/health').createDriver
|
|
51
|
+
'claude-health': require('./drivers/claude/health').createDriver,
|
|
52
|
+
'dsh-api': require('./drivers/dsh/api-operations').createDriver,
|
|
53
|
+
'dsh-projects': require('./drivers/dsh/projects').createDriver,
|
|
54
|
+
'dsh-sessions': require('./drivers/dsh/sessions').createDriver,
|
|
55
|
+
'dsh-native-config': require('./drivers/dsh/native-config').createDriver,
|
|
56
|
+
'dsh-channels': require('./drivers/dsh/channels').createDriver,
|
|
57
|
+
'dsh-proxy': require('./drivers/dsh/proxy').createDriver,
|
|
58
|
+
'dsh-statistics': require('./drivers/dsh/statistics').createDriver,
|
|
59
|
+
'dsh-native-logs': require('./drivers/dsh/native-logs').createDriver
|
|
52
60
|
}
|
|
53
61
|
});
|
|
54
62
|
registerLegacyDrivers(defaultRegistry);
|
|
@@ -150,6 +150,77 @@ async function inventory({ projectsDir } = {}) {
|
|
|
150
150
|
return descriptors;
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
+
/** Read a bounded prefix for project/session list summaries. */
|
|
154
|
+
function readSessionSummaryHead(filePath, maxBytes = 64 * 1024) {
|
|
155
|
+
let fd;
|
|
156
|
+
try {
|
|
157
|
+
fd = fs.openSync(filePath, 'r');
|
|
158
|
+
const buffer = Buffer.alloc(maxBytes);
|
|
159
|
+
const bytesRead = fs.readSync(fd, buffer, 0, buffer.length, 0);
|
|
160
|
+
return buffer.subarray(0, bytesRead).toString('utf8')
|
|
161
|
+
.split(/\r?\n/)
|
|
162
|
+
.filter(line => line.trim())
|
|
163
|
+
.map(line => {
|
|
164
|
+
try { return JSON.parse(line); } catch (_) { return null; }
|
|
165
|
+
})
|
|
166
|
+
.filter(Boolean);
|
|
167
|
+
} catch (_) {
|
|
168
|
+
return [];
|
|
169
|
+
} finally {
|
|
170
|
+
if (fd !== undefined) {
|
|
171
|
+
try { fs.closeSync(fd); } catch (_) {}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
async function summarize(descriptor) {
|
|
177
|
+
const lines = readSessionSummaryHead(descriptor.filePath);
|
|
178
|
+
const { fullPath, projectName: displayName } = parseRealProjectPath(
|
|
179
|
+
descriptor.projectHint,
|
|
180
|
+
{ projectsDir: descriptor.projectsDir }
|
|
181
|
+
);
|
|
182
|
+
let firstMessage = null;
|
|
183
|
+
let gitBranch = null;
|
|
184
|
+
let provider = null;
|
|
185
|
+
let model = null;
|
|
186
|
+
let startedAt = null;
|
|
187
|
+
for (const json of lines) {
|
|
188
|
+
const payload = json.message && typeof json.message === 'object' && !Array.isArray(json.message)
|
|
189
|
+
? json.message
|
|
190
|
+
: {};
|
|
191
|
+
const timestamp = json.timestamp || payload.timestamp || null;
|
|
192
|
+
const timestampMs = timestamp ? new Date(timestamp).getTime() : null;
|
|
193
|
+
if (timestampMs && startedAt === null) startedAt = timestampMs;
|
|
194
|
+
const metadata = json.type === 'metadata' || json.type === 'summary';
|
|
195
|
+
if (metadata) {
|
|
196
|
+
gitBranch = json.gitBranch || payload.gitBranch || gitBranch;
|
|
197
|
+
provider = json.provider || payload.provider || provider;
|
|
198
|
+
model = json.model || payload.model || model;
|
|
199
|
+
}
|
|
200
|
+
const role = json.role || payload.role
|
|
201
|
+
|| (json.type === 'user' || json.type === 'human' ? 'user' : null);
|
|
202
|
+
const rawContent = json.content !== undefined ? json.content : payload.content;
|
|
203
|
+
if (!firstMessage && role === 'user') firstMessage = getClaudeUserText(rawContent) || null;
|
|
204
|
+
if (json.model || payload.model) model = json.model || payload.model;
|
|
205
|
+
if (json.provider || payload.provider) provider = json.provider || payload.provider;
|
|
206
|
+
}
|
|
207
|
+
return {
|
|
208
|
+
session: {
|
|
209
|
+
sessionId: descriptor.sessionId,
|
|
210
|
+
projectName: descriptor.projectHint || 'unknown',
|
|
211
|
+
projectDisplayName: displayName || descriptor.projectHint || 'unknown',
|
|
212
|
+
projectFullPath: fullPath || null,
|
|
213
|
+
firstMessage,
|
|
214
|
+
gitBranch,
|
|
215
|
+
provider,
|
|
216
|
+
model,
|
|
217
|
+
startedAt,
|
|
218
|
+
updatedAt: descriptor.mtimeMs,
|
|
219
|
+
extraJson: JSON.stringify({ cwd: fullPath || null })
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
|
|
153
224
|
/**
|
|
154
225
|
* Parse a Claude session file into normalized session + messages.
|
|
155
226
|
* @param {{filePath: string, size: number, mtimeMs: number, sessionId: string, projectHint: string}} descriptor
|
|
@@ -310,4 +381,4 @@ async function parse(descriptor) {
|
|
|
310
381
|
};
|
|
311
382
|
}
|
|
312
383
|
|
|
313
|
-
module.exports = { configure, inventory, parse, getClaudeUserText };
|
|
384
|
+
module.exports = { configure, inventory, summarize, parse, getClaudeUserText };
|
|
@@ -208,6 +208,10 @@ async function getProjectsWithStats(config = {}, options = {}) {
|
|
|
208
208
|
return getSessionHistoryIndex(config).listProjects('claude', { ...options, config });
|
|
209
209
|
}
|
|
210
210
|
|
|
211
|
+
async function getProjectsPage(config = {}, options = {}) {
|
|
212
|
+
return getSessionHistoryIndex(config).listProjectsPage('claude', { ...options, config });
|
|
213
|
+
}
|
|
214
|
+
|
|
211
215
|
// ===== Path resolution helpers (kept for mutation/conversion paths) =====
|
|
212
216
|
|
|
213
217
|
function parseRealProjectPath(encodedName, config = {}) {
|
|
@@ -327,7 +331,7 @@ function extractCwdFromSessionHeader(sessionFile) {
|
|
|
327
331
|
// ===== Counts: delegates to index =====
|
|
328
332
|
|
|
329
333
|
async function getProjectAndSessionCounts(config = {}, options = {}) {
|
|
330
|
-
const projects = await getSessionHistoryIndex().
|
|
334
|
+
const projects = await getSessionHistoryIndex().getAllProjects('claude', { ...options, config });
|
|
331
335
|
let sessionCount = 0;
|
|
332
336
|
for (const project of projects) sessionCount += project.sessionCount || 0;
|
|
333
337
|
return { projectCount: projects.length, sessionCount };
|
|
@@ -362,6 +366,23 @@ async function getSessionsForProject(config, projectName, options = {}) {
|
|
|
362
366
|
const totalSize = sessions.reduce((sum, s) => sum + (s.size || 0), 0);
|
|
363
367
|
return { sessions, totalSize };
|
|
364
368
|
}
|
|
369
|
+
|
|
370
|
+
async function getSessionsPage(config, projectName, options = {}) {
|
|
371
|
+
const payload = await getSessionHistoryIndex(config).listSessionsPage('claude', projectName, { ...options, config });
|
|
372
|
+
const forkRelations = getForkRelations();
|
|
373
|
+
return {
|
|
374
|
+
...payload,
|
|
375
|
+
sessions: payload.sessions.map(session => ({
|
|
376
|
+
sessionId: session.sessionId,
|
|
377
|
+
mtime: session.mtime,
|
|
378
|
+
size: session.size,
|
|
379
|
+
filePath: session.filePath,
|
|
380
|
+
gitBranch: session.gitBranch || null,
|
|
381
|
+
firstMessage: session.firstMessage || null,
|
|
382
|
+
forkedFrom: forkRelations[session.sessionId] || null
|
|
383
|
+
}))
|
|
384
|
+
};
|
|
385
|
+
}
|
|
365
386
|
// ===== Mutations (sync) =====
|
|
366
387
|
|
|
367
388
|
function deleteSession(config, projectName, sessionId) {
|
|
@@ -439,6 +460,7 @@ async function searchSessions(config, projectName, keyword, contextLength = 15,
|
|
|
439
460
|
const results = await getSessionHistoryIndex().searchSessions('claude', keyword, { projectName, contextLength, ...options, config });
|
|
440
461
|
const aliases = loadAliases();
|
|
441
462
|
return results.map(r => ({
|
|
463
|
+
...r,
|
|
442
464
|
sessionId: r.sessionId,
|
|
443
465
|
alias: aliases[r.sessionId] || null,
|
|
444
466
|
matchCount: r.matchCount,
|
|
@@ -465,18 +487,25 @@ async function getRecentSessions(config, limit = 5, options = {}) {
|
|
|
465
487
|
}));
|
|
466
488
|
}
|
|
467
489
|
|
|
468
|
-
async function searchSessionsAcrossProjects(config, keyword,
|
|
490
|
+
async function searchSessionsAcrossProjects(config, keyword, limit = 35, options = {}) {
|
|
469
491
|
const allResults = [];
|
|
492
|
+
const searchOptions = {
|
|
493
|
+
...options,
|
|
494
|
+
contextLength: Number(options.contextLength) || 35,
|
|
495
|
+
limit: Math.max(1, Math.min(200, Number(limit) || 35)),
|
|
496
|
+
config,
|
|
497
|
+
projectName: options.projectName || null
|
|
498
|
+
};
|
|
470
499
|
|
|
471
500
|
try {
|
|
472
|
-
const claudeResults = await getSessionHistoryIndex().searchSessions('claude', keyword,
|
|
501
|
+
const claudeResults = await getSessionHistoryIndex().searchSessions('claude', keyword, searchOptions);
|
|
473
502
|
for (const r of claudeResults) allResults.push({ ...r, channel: 'claude' });
|
|
474
503
|
} catch (_) {}
|
|
475
504
|
|
|
476
505
|
try {
|
|
477
506
|
if (fs.existsSync(CODEX_PROJECTS_DIR)) {
|
|
478
507
|
const { searchSessions: codexSearch } = require('../codex/sessions-implementation');
|
|
479
|
-
const codexResults = await codexSearch(keyword);
|
|
508
|
+
const codexResults = await codexSearch(keyword, searchOptions);
|
|
480
509
|
for (const r of codexResults) allResults.push({ ...r, channel: 'codex' });
|
|
481
510
|
}
|
|
482
511
|
} catch (_) {}
|
|
@@ -484,13 +513,24 @@ async function searchSessionsAcrossProjects(config, keyword, contextLength = 35)
|
|
|
484
513
|
try {
|
|
485
514
|
if (fs.existsSync(GEMINI_PROJECTS_DIR)) {
|
|
486
515
|
const { searchSessions: geminiSearch } = require('../gemini/sessions-implementation');
|
|
487
|
-
const geminiResults = await geminiSearch(keyword, contextLength);
|
|
516
|
+
const geminiResults = await geminiSearch(keyword, searchOptions.contextLength, searchOptions);
|
|
488
517
|
for (const r of geminiResults) allResults.push({ ...r, channel: 'gemini' });
|
|
489
518
|
}
|
|
490
519
|
} catch (_) {}
|
|
491
520
|
|
|
492
|
-
allResults.sort((a, b) =>
|
|
493
|
-
|
|
521
|
+
allResults.sort((a, b) => {
|
|
522
|
+
const updatedA = sessionTimestamp(a.updatedAt ?? a.lastUpdated ?? a.mtimeMs ?? a.mtime);
|
|
523
|
+
const updatedB = sessionTimestamp(b.updatedAt ?? b.lastUpdated ?? b.mtimeMs ?? b.mtime);
|
|
524
|
+
return updatedB - updatedA || String(a.sessionId || '').localeCompare(String(b.sessionId || ''));
|
|
525
|
+
});
|
|
526
|
+
return allResults.slice(0, searchOptions.limit);
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
function sessionTimestamp(value) {
|
|
530
|
+
const numeric = Number(value);
|
|
531
|
+
if (Number.isFinite(numeric) && numeric > 0) return numeric;
|
|
532
|
+
const parsed = Date.parse(String(value || ''));
|
|
533
|
+
return Number.isFinite(parsed) ? parsed : 0;
|
|
494
534
|
}
|
|
495
535
|
function hasActualMessages(sessionFile) {
|
|
496
536
|
if (!sessionFile || !fs.existsSync(sessionFile)) return false;
|
|
@@ -513,7 +553,9 @@ module.exports = {
|
|
|
513
553
|
configure,
|
|
514
554
|
getProjects,
|
|
515
555
|
getProjectsWithStats,
|
|
556
|
+
getProjectsPage,
|
|
516
557
|
getSessionsForProject,
|
|
558
|
+
getSessionsPage,
|
|
517
559
|
deleteSession,
|
|
518
560
|
forkSession,
|
|
519
561
|
launch,
|
|
@@ -11,7 +11,7 @@ function createDriver(context = {}) {
|
|
|
11
11
|
servicePath: './claude/sessions-implementation',
|
|
12
12
|
localServicePath: '../platforms/drivers/claude/sessions-implementation',
|
|
13
13
|
adapterLocalPath: '../platforms/drivers/claude/session-history-adapter',
|
|
14
|
-
adapterMethods: { inventory: 'inventory', parse: 'parse' },
|
|
14
|
+
adapterMethods: { inventory: 'inventory', summarize: 'summarize', parse: 'parse' },
|
|
15
15
|
methods: {
|
|
16
16
|
launch: 'launch',
|
|
17
17
|
saveSessionOrder: 'saveSessionOrder',
|
|
@@ -44,6 +44,14 @@ function createDriver(context = {}) {
|
|
|
44
44
|
request
|
|
45
45
|
);
|
|
46
46
|
},
|
|
47
|
+
listSessionsPage: (service, projectNameOrRequest, options = {}) => {
|
|
48
|
+
const descriptorRequest = projectNameOrRequest && typeof projectNameOrRequest === 'object';
|
|
49
|
+
const request = descriptorRequest ? projectNameOrRequest : options;
|
|
50
|
+
const projectName = descriptorRequest
|
|
51
|
+
? request.params?.projectName
|
|
52
|
+
: projectNameOrRequest;
|
|
53
|
+
return service.getSessionsPage(request.config || {}, projectName, request);
|
|
54
|
+
},
|
|
47
55
|
recent: (service, limitOrRequest, options = {}) => {
|
|
48
56
|
const descriptorRequest = limitOrRequest && typeof limitOrRequest === 'object';
|
|
49
57
|
const request = descriptorRequest ? limitOrRequest : options;
|
|
@@ -59,11 +67,27 @@ function createDriver(context = {}) {
|
|
|
59
67
|
contextLength,
|
|
60
68
|
options
|
|
61
69
|
),
|
|
62
|
-
searchAcrossProjects: (service,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
70
|
+
searchAcrossProjects: (service, requestOrKeyword, limit, options = {}) => {
|
|
71
|
+
if (requestOrKeyword && typeof requestOrKeyword === 'object' && !Array.isArray(requestOrKeyword)) {
|
|
72
|
+
const request = requestOrKeyword;
|
|
73
|
+
const query = request.query || {};
|
|
74
|
+
const requestLimit = Number.parseInt(query.limit, 10) || 35;
|
|
75
|
+
return service.searchSessionsAcrossProjects(
|
|
76
|
+
request.config || options.config || {},
|
|
77
|
+
query.keyword || query.q || query.query || '',
|
|
78
|
+
requestLimit,
|
|
79
|
+
{
|
|
80
|
+
...request,
|
|
81
|
+
...options,
|
|
82
|
+
config: request.config || options.config || {},
|
|
83
|
+
projectName: query.projectName || query.project || null,
|
|
84
|
+
limit: requestLimit,
|
|
85
|
+
contextLength: Number(query.context) || 35
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
return service.searchSessionsAcrossProjects(options.config || {}, requestOrKeyword, limit, options);
|
|
90
|
+
}
|
|
67
91
|
},
|
|
68
92
|
onSuccess: operation => {
|
|
69
93
|
if (['delete', 'fork', 'saveSessionOrder'].includes(operation)) {
|