orcaq 1.1.8 → 1.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{Cqk0ImDE.js → -WSV_TU1.js} +1 -1
  3. package/.output/public/_nuxt/0U50G6dt.js +1 -0
  4. package/.output/public/_nuxt/{mcYTISF7.js → 0yW2dL-K.js} +1 -1
  5. package/.output/public/_nuxt/{CXQ2zrsE.js → 1V1SIDI5.js} +1 -1
  6. package/.output/public/_nuxt/{Bu6ybm3Z.js → 24W1ftax.js} +1 -1
  7. package/.output/public/_nuxt/339BCoyy.js +1 -0
  8. package/.output/public/_nuxt/{XjywAggc.js → 9PqzQzi0.js} +1 -1
  9. package/.output/public/_nuxt/{DG9CsZCx.js → 9Skr9Ccw.js} +1 -1
  10. package/.output/public/_nuxt/{D8egDyEO.js → 9eKRx5AF.js} +1 -1
  11. package/.output/public/_nuxt/{FmHWbXNk.js → 9vfu7pKH.js} +1 -1
  12. package/.output/public/_nuxt/B79M7zD1.js +1 -0
  13. package/.output/public/_nuxt/{BsCPQnkm.js → BDw-ivE-.js} +1 -1
  14. package/.output/public/_nuxt/{DgxTwFGe.js → BFOjhnLA.js} +2 -2
  15. package/.output/public/_nuxt/{BWTTrGtY.js → BFYNB1ok.js} +2 -2
  16. package/.output/public/_nuxt/BFlFdtcI.js +12 -0
  17. package/.output/public/_nuxt/{BXMKgn-J.js → BIBdWmGh.js} +1 -1
  18. package/.output/public/_nuxt/{_uLivI44.js → BIDVPCgr.js} +1 -1
  19. package/.output/public/_nuxt/{BuTCm7Bo.js → BJMwGHo7.js} +1 -1
  20. package/.output/public/_nuxt/{BHr4_sbs.js → BKh6DDUh.js} +1 -1
  21. package/.output/public/_nuxt/{5450EsIE.js → BLDVl9Iw.js} +1 -1
  22. package/.output/public/_nuxt/{Cd_fVKDw.js → BNgGNFV2.js} +1 -1
  23. package/.output/public/_nuxt/BP-G5cXp.js +1 -0
  24. package/.output/public/_nuxt/{DkX74xDd.js → BS966b0P.js} +1 -1
  25. package/.output/public/_nuxt/{BQm1mt0O.js → B_Oy26qU.js} +1 -1
  26. package/.output/public/_nuxt/Bdou58NY.js +1 -0
  27. package/.output/public/_nuxt/Bg0K-n53.js +18 -0
  28. package/.output/public/_nuxt/{BO3FEgXG.js → BjfaOtB-.js} +1 -1
  29. package/.output/public/_nuxt/{BalNYDR1.js → BlngscFe.js} +1 -1
  30. package/.output/public/_nuxt/{DHXwq7wT.js → BsXv3P9A.js} +1 -1
  31. package/.output/public/_nuxt/{C-e53AuW.js → Buh85F8i.js} +1 -1
  32. package/.output/public/_nuxt/{CU5cwnUW.js → Bvi2huT8.js} +1 -1
  33. package/.output/public/_nuxt/{LxqkguPP.js → BxlUlYz1.js} +1 -1
  34. package/.output/public/_nuxt/ByJGqBjE.js +1 -0
  35. package/.output/public/_nuxt/{DCewvWOu.js → C-M7J4rh.js} +1 -1
  36. package/.output/public/_nuxt/{D_kY6P5P.js → C04-ICJx.js} +1 -1
  37. package/.output/public/_nuxt/{f6XRRKUb.js → C2Czrs1u.js} +1 -1
  38. package/.output/public/_nuxt/{CuXTA7ZW.js → C5Feel6b.js} +1 -1
  39. package/.output/public/_nuxt/CAVSZeVY.js +1 -0
  40. package/.output/public/_nuxt/{7iCr9_qw.js → CAcViJl9.js} +3 -3
  41. package/.output/public/_nuxt/CBge6eLY.js +1 -0
  42. package/.output/public/_nuxt/{BK-6CJ0A.js → CC8wYgAN.js} +1 -1
  43. package/.output/public/_nuxt/{WGDY9i_Q.js → CEIpXOz0.js} +1 -1
  44. package/.output/public/_nuxt/CI85gLx4.js +1 -0
  45. package/.output/public/_nuxt/{Dpkaavgs.js → CJeCcjmd.js} +1 -1
  46. package/.output/public/_nuxt/{CMDq7o88.js → CJuYfiL1.js} +1 -1
  47. package/.output/public/_nuxt/CNErkSjF.js +1 -0
  48. package/.output/public/_nuxt/COII6plA.js +31 -0
  49. package/.output/public/_nuxt/{R04uZjs6.js → CRCn6mdA.js} +1 -1
  50. package/.output/public/_nuxt/{tc7vkD0J.js → CUtdecax.js} +2 -2
  51. package/.output/public/_nuxt/{Dtry_3Qa.js → CYm7TuhP.js} +1 -1
  52. package/.output/public/_nuxt/{CMnjMfEQ.js → CbkolJXg.js} +1 -1
  53. package/.output/public/_nuxt/{CMI-3q_e.js → CeA2-eDW.js} +1 -1
  54. package/.output/public/_nuxt/CgY96xS_.js +1 -0
  55. package/.output/public/_nuxt/{JxgekUqn.js → Ch9kUYU-.js} +1 -1
  56. package/.output/public/_nuxt/{CCC5u9Ni.js → Ch_iEFHi.js} +1 -1
  57. package/.output/public/_nuxt/{DZ4xLzJg.js → Co6sZiuo.js} +1 -1
  58. package/.output/public/_nuxt/Cu7zvuYQ.js +1 -0
  59. package/.output/public/_nuxt/CwcaMelw.js +1 -0
  60. package/.output/public/_nuxt/CxFAImHj.js +1 -0
  61. package/.output/public/_nuxt/{jtwYTq7X.js → D-yya4MN.js} +32 -32
  62. package/.output/public/_nuxt/{D4DMGxvZ.js → D0NZRXnm.js} +1 -1
  63. package/.output/public/_nuxt/{vP25tZUh.js → D6XDbGbI.js} +1 -1
  64. package/.output/public/_nuxt/{BNh4NY7v.js → D8JEzGOU.js} +1 -1
  65. package/.output/public/_nuxt/{C874itvn.js → D8wbEppA.js} +1 -1
  66. package/.output/public/_nuxt/D9h-2lVu.js +1 -0
  67. package/.output/public/_nuxt/{D5Oboajo.js → DANeHzIE.js} +1 -1
  68. package/.output/public/_nuxt/{CyKRjZZo.js → DBku6oAz.js} +1 -1
  69. package/.output/public/_nuxt/{DJXrgohw.js → DDXEeq1n.js} +2 -2
  70. package/.output/public/_nuxt/DESxUB7o.js +1 -0
  71. package/.output/public/_nuxt/{CAjVwGyz.js → DHG-KJyJ.js} +1 -1
  72. package/.output/public/_nuxt/DHXbNYui.js +1 -0
  73. package/.output/public/_nuxt/{Dopm1f4X.js → DI0LPDTd.js} +1 -1
  74. package/.output/public/_nuxt/{BmfnP4qD.js → DKSZP8GP.js} +1 -1
  75. package/.output/public/_nuxt/DL1qmlP8.js +1 -0
  76. package/.output/public/_nuxt/{BMVgfiQu.js → DN4-koTG.js} +1 -1
  77. package/.output/public/_nuxt/{BRzWRTTF.js → DO1jmufl.js} +1 -1
  78. package/.output/public/_nuxt/{DpsqSAMo.js → DOuNj3Jn.js} +1 -1
  79. package/.output/public/_nuxt/DPUO8R7l.js +1 -0
  80. package/.output/public/_nuxt/{C0jXhwNq.js → DahDvheq.js} +1 -1
  81. package/.output/public/_nuxt/{BRCvv3op.js → DbHH7dzg.js} +1 -1
  82. package/.output/public/_nuxt/{C6teO48Y.js → DbehhcO7.js} +76 -76
  83. package/.output/public/_nuxt/{CQFANjzf.js → DeTqfKUd.js} +1 -1
  84. package/.output/public/_nuxt/{B6N_D8QI.js → Df85byjM.js} +1 -1
  85. package/.output/public/_nuxt/{B0gkARnK.js → DizXDCtS.js} +1 -1
  86. package/.output/public/_nuxt/{WZQ8mcv9.js → DjKlFOO8.js} +1 -1
  87. package/.output/public/_nuxt/{CCCJ2fw7.js → DjLd7E2v.js} +1 -1
  88. package/.output/public/_nuxt/{DXVrM3CN.js → DnBjpGBx.js} +1 -1
  89. package/.output/public/_nuxt/DnQ4Mwo_.js +1 -0
  90. package/.output/public/_nuxt/{Cw1HIv3s.js → DqYakCiF.js} +1 -1
  91. package/.output/public/_nuxt/{DBSV6YXN.js → DqunUhPG.js} +1 -1
  92. package/.output/public/_nuxt/{CFi6G8Aj.js → Dr1ZFb1n.js} +2 -2
  93. package/.output/public/_nuxt/Dsis422h.js +1 -0
  94. package/.output/public/_nuxt/{DwPmcz47.js → Du_4PNZI.js} +1 -1
  95. package/.output/public/_nuxt/{7H5y5euK.js → DvTZ16yM.js} +1 -1
  96. package/.output/public/_nuxt/{CyEOtFwE.js → Dvt9REJL.js} +1 -1
  97. package/.output/public/_nuxt/{DQRyK9Io.js → DxMpy-ot.js} +1 -1
  98. package/.output/public/_nuxt/{BRWis86L.js → DyLnyCs4.js} +1 -1
  99. package/.output/public/_nuxt/{DmnufEYq.js → FakvzamF.js} +1 -1
  100. package/.output/public/_nuxt/LcPL138_.js +1 -0
  101. package/.output/public/_nuxt/{CXbrqQhC.js → P7T0pdFZ.js} +1 -1
  102. package/.output/public/_nuxt/{LU_a7qLd.js → Rhi-lAfN.js} +1 -1
  103. package/.output/public/_nuxt/S7ftI9sn.js +1 -0
  104. package/.output/public/_nuxt/T01BrTsW.js +1 -0
  105. package/.output/public/_nuxt/WqpfmT0s.js +1 -0
  106. package/.output/public/_nuxt/XhSVj1eQ.js +16 -0
  107. package/.output/public/_nuxt/{vEHvfalB.js → _fXjN5Pd.js} +1 -1
  108. package/.output/public/_nuxt/agpUpIJe.js +1 -0
  109. package/.output/public/_nuxt/builds/latest.json +1 -1
  110. package/.output/public/_nuxt/builds/meta/39c2c89f-bb28-470e-b95a-b7776149dc9f.json +1 -0
  111. package/.output/public/_nuxt/{CvbYm0uB.js → dDyWVWO8.js} +1 -1
  112. package/.output/public/_nuxt/entry.BeX6Jkel.css +1 -0
  113. package/.output/public/_nuxt/{DrkGD_bQ.js → f6qCSD-K.js} +1 -1
  114. package/.output/public/_nuxt/{zndqWf9s.js → goG5gpyv.js} +1 -1
  115. package/.output/public/_nuxt/{soHTUlpn.js → hbGkF-4Z.js} +1 -1
  116. package/.output/public/_nuxt/{CKlMKmo6.js → jDSo3fNb.js} +1 -1
  117. package/.output/public/_nuxt/{BzNEuLKx.js → k4d17TZz.js} +1 -1
  118. package/.output/public/_nuxt/m4Dxzyfa.js +2 -0
  119. package/.output/public/_nuxt/{BJvJ0Hlu.js → ndyknmtb.js} +4 -4
  120. package/.output/public/_nuxt/{C6K-C4_d.js → vIV0z0PD.js} +1 -1
  121. package/.output/public/_nuxt/{BzqjH2-H.js → wTs8ybMd.js} +1 -1
  122. package/.output/public/_nuxt/{BYaoWfSN.js → ymlmmOzU.js} +1 -1
  123. package/.output/server/chunks/_/tables.factory.mjs +133 -43
  124. package/.output/server/chunks/_/tables.factory.mjs.map +1 -1
  125. package/.output/server/chunks/build/client.manifest.mjs +837 -788
  126. package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
  127. package/.output/server/chunks/nitro/nitro.mjs +697 -669
  128. package/.output/server/package.json +1 -1
  129. package/package.json +1 -1
  130. package/.output/public/_nuxt/-7uW7YTy.js +0 -1
  131. package/.output/public/_nuxt/6mVUr42b.js +0 -1
  132. package/.output/public/_nuxt/B21nC2NZ.js +0 -1
  133. package/.output/public/_nuxt/B232GDut.js +0 -2
  134. package/.output/public/_nuxt/B7C8fo37.js +0 -1
  135. package/.output/public/_nuxt/BC82eJHt.js +0 -1
  136. package/.output/public/_nuxt/Bn6_QGSK.js +0 -1
  137. package/.output/public/_nuxt/BuzCyLCh.js +0 -1
  138. package/.output/public/_nuxt/BzNNFvTW.js +0 -1
  139. package/.output/public/_nuxt/C8ZJ2pm_.js +0 -1
  140. package/.output/public/_nuxt/CA3O4M9L.js +0 -1
  141. package/.output/public/_nuxt/CZXyfpHW.js +0 -1
  142. package/.output/public/_nuxt/CZgTP5wX.js +0 -1
  143. package/.output/public/_nuxt/CeXnSKvd.js +0 -1
  144. package/.output/public/_nuxt/Chw5tFzx.js +0 -1
  145. package/.output/public/_nuxt/CkLSGVwV.js +0 -1
  146. package/.output/public/_nuxt/Cv9v5fHN.js +0 -1
  147. package/.output/public/_nuxt/D5GonnbJ.js +0 -1
  148. package/.output/public/_nuxt/DH2V7e8U.js +0 -1
  149. package/.output/public/_nuxt/DZIoL4RO.js +0 -1
  150. package/.output/public/_nuxt/DyjsVMbv.js +0 -1
  151. package/.output/public/_nuxt/KoGK2wLb.js +0 -1
  152. package/.output/public/_nuxt/Q8x88Gcd.js +0 -1
  153. package/.output/public/_nuxt/So0hX8V0.js +0 -31
  154. package/.output/public/_nuxt/builds/meta/30582efd-125a-4f88-bd89-20a7b2ba8697.json +0 -1
  155. package/.output/public/_nuxt/eQskTKIU.js +0 -1
  156. package/.output/public/_nuxt/ecWNT6PZ.js +0 -1
  157. package/.output/public/_nuxt/entry.BcHy7sxf.css +0 -1
  158. package/.output/public/_nuxt/mcfKrWU-.js +0 -1
@@ -1 +1 @@
1
- import{c as d}from"./C6teO48Y.js";const T={string:"hugeicons:text-font",hash:"hugeicons:hashtag",list:"hugeicons:menu-01",set:"hugeicons:layers-01",sortedSet:"hugeicons:3rd-bracket",vector:"hugeicons:brain-circuit",stream:"hugeicons:activity-01",bitmap:"hugeicons:grid-3x3",bitfield:"hugeicons:binary",geo:"hugeicons:pin-location-03",json:"hugeicons:file-json",probabilistic:"lucide:flask-conical",timeSeries:"lucide:line-chart"},O={string:"string",hash:"hash",list:"list",set:"set",sortedSet:"sortedSet",zset:"sortedSet",vector:"vector",stream:"stream",bitmap:"bitmap",bitfield:"bitfield",geo:"geo",json:"json",probabilistic:"probabilistic",timeSeries:"timeSeries"},S={hash:"text-emerald-500",list:"text-sky-500",set:"text-violet-500",sortedSet:"text-amber-500",vector:"text-fuchsia-500",stream:"text-orange-500",bitmap:"text-cyan-500",bitfield:"text-indigo-500",geo:"text-rose-500",json:"text-lime-500",probabilistic:"text-red-500",timeSeries:"text-teal-500"},K="material-icon-theme:folder-database-open",N="material-icon-theme:folder-database";function p(t){return O[t]}function y(t){const o=p(t);return o?T[o]:"hugeicons:database-02"}function C(t){const o=p(t);return o?S[o]??"text-primary":"text-primary"}function z(t){return`redis-group:${t}`}function v(t){return`redis-key:${t}`}function x(t){const o=t.split(":").filter(Boolean);return o.length<=1?t:o[o.length-1]||t}function D(t,o){return[...o].sort((g,m)=>{const a=t[g],f=t[m];return a.type!==f.type?a.type==="folder"?-1:1:a.name.localeCompare(f.name,void 0,{numeric:!0,sensitivity:"base"})})}function H(t,o){const g=d(()=>o.value.trim().toLowerCase()),m=d(()=>g.value?t.value.filter(n=>n.key.toLowerCase().includes(g.value)):t.value),a=d(()=>{const n={},i=[],l=new Map;for(const e of m.value){const c=e.key.split(":").filter(Boolean);if(c.length<=1){const k=v(e.key),u=p(e.type);n[k]={id:k,parentId:null,name:x(e.key),type:"file",depth:0,iconOpen:y(e.type),iconClose:y(e.type),iconClass:C(e.type),data:{kind:"key",redisKey:e.key,keyType:u,ttl:e.ttl,memoryUsage:e.memoryUsage,memoryUsageHuman:e.memoryUsageHuman}};continue}let s=null,h="";for(const[k,u]of c.slice(0,-1).entries()){h=h?`${h}:${u}`:u;const r=z(h);n[r]||(n[r]={id:r,parentId:s,name:u,type:"folder",depth:k,iconOpen:K,iconClose:N,children:[],data:{kind:"group"}},i.push(r),s&&(n[s].children=[...n[s].children??[],r]));const U=l.get(r)??{keyCount:0,memoryUsage:0};l.set(r,{keyCount:U.keyCount+1,memoryUsage:U.memoryUsage===null?e.memoryUsage:U.memoryUsage+(e.memoryUsage??0)}),s=r}const b=v(e.key),I=p(e.type);n[b]={id:b,parentId:s,name:x(e.key),type:"file",depth:c.length-1,iconOpen:y(e.type),iconClose:y(e.type),iconClass:C(e.type),data:{kind:"key",redisKey:e.key,keyType:I,ttl:e.ttl,memoryUsage:e.memoryUsage,memoryUsageHuman:e.memoryUsageHuman}},s&&(n[s].children=[...n[s].children??[],b])}return Object.values(n).forEach(e=>{var c;if(e.type==="folder"){const s=l.get(e.id);s&&(e.data={...e.data??{kind:"group"},keyCount:s.keyCount,memoryUsage:s.memoryUsage})}(c=e.children)!=null&&c.length&&(e.children=D(n,e.children))}),{fileTreeData:n,defaultFolderOpenIds:i}}),f=d(()=>{const n={};for(const i of m.value){const l=v(i.key),e=p(i.type);n[l]={id:l,parentId:null,name:i.key,type:"file",depth:-1,iconOpen:y(i.type),iconClose:y(i.type),iconClass:C(i.type),data:{kind:"key",redisKey:i.key,keyType:e,ttl:i.ttl,memoryUsage:i.memoryUsage,memoryUsageHuman:i.memoryUsageHuman}}}return n});return{visibleKeys:m,fileTreeData:d(()=>a.value.fileTreeData),flatFileTreeData:f,defaultFolderOpenIds:d(()=>a.value.defaultFolderOpenIds)}}export{C as a,y as g,H as u};
1
+ import{i as d}from"./DbehhcO7.js";const T={string:"hugeicons:text-font",hash:"hugeicons:hashtag",list:"hugeicons:menu-01",set:"hugeicons:layers-01",sortedSet:"hugeicons:3rd-bracket",vector:"hugeicons:brain-circuit",stream:"hugeicons:activity-01",bitmap:"hugeicons:grid-3x3",bitfield:"hugeicons:binary",geo:"hugeicons:pin-location-03",json:"hugeicons:file-json",probabilistic:"lucide:flask-conical",timeSeries:"lucide:line-chart"},O={string:"string",hash:"hash",list:"list",set:"set",sortedSet:"sortedSet",zset:"sortedSet",vector:"vector",stream:"stream",bitmap:"bitmap",bitfield:"bitfield",geo:"geo",json:"json",probabilistic:"probabilistic",timeSeries:"timeSeries"},S={hash:"text-emerald-500",list:"text-sky-500",set:"text-violet-500",sortedSet:"text-amber-500",vector:"text-fuchsia-500",stream:"text-orange-500",bitmap:"text-cyan-500",bitfield:"text-indigo-500",geo:"text-rose-500",json:"text-lime-500",probabilistic:"text-red-500",timeSeries:"text-teal-500"},K="material-icon-theme:folder-database-open",N="material-icon-theme:folder-database";function p(t){return O[t]}function y(t){const o=p(t);return o?T[o]:"hugeicons:database-02"}function C(t){const o=p(t);return o?S[o]??"text-primary":"text-primary"}function z(t){return`redis-group:${t}`}function v(t){return`redis-key:${t}`}function x(t){const o=t.split(":").filter(Boolean);return o.length<=1?t:o[o.length-1]||t}function D(t,o){return[...o].sort((g,m)=>{const a=t[g],f=t[m];return a.type!==f.type?a.type==="folder"?-1:1:a.name.localeCompare(f.name,void 0,{numeric:!0,sensitivity:"base"})})}function H(t,o){const g=d(()=>o.value.trim().toLowerCase()),m=d(()=>g.value?t.value.filter(n=>n.key.toLowerCase().includes(g.value)):t.value),a=d(()=>{const n={},i=[],l=new Map;for(const e of m.value){const c=e.key.split(":").filter(Boolean);if(c.length<=1){const k=v(e.key),u=p(e.type);n[k]={id:k,parentId:null,name:x(e.key),type:"file",depth:0,iconOpen:y(e.type),iconClose:y(e.type),iconClass:C(e.type),data:{kind:"key",redisKey:e.key,keyType:u,ttl:e.ttl,memoryUsage:e.memoryUsage,memoryUsageHuman:e.memoryUsageHuman}};continue}let s=null,h="";for(const[k,u]of c.slice(0,-1).entries()){h=h?`${h}:${u}`:u;const r=z(h);n[r]||(n[r]={id:r,parentId:s,name:u,type:"folder",depth:k,iconOpen:K,iconClose:N,children:[],data:{kind:"group"}},i.push(r),s&&(n[s].children=[...n[s].children??[],r]));const U=l.get(r)??{keyCount:0,memoryUsage:0};l.set(r,{keyCount:U.keyCount+1,memoryUsage:U.memoryUsage===null?e.memoryUsage:U.memoryUsage+(e.memoryUsage??0)}),s=r}const b=v(e.key),I=p(e.type);n[b]={id:b,parentId:s,name:x(e.key),type:"file",depth:c.length-1,iconOpen:y(e.type),iconClose:y(e.type),iconClass:C(e.type),data:{kind:"key",redisKey:e.key,keyType:I,ttl:e.ttl,memoryUsage:e.memoryUsage,memoryUsageHuman:e.memoryUsageHuman}},s&&(n[s].children=[...n[s].children??[],b])}return Object.values(n).forEach(e=>{var c;if(e.type==="folder"){const s=l.get(e.id);s&&(e.data={...e.data??{kind:"group"},keyCount:s.keyCount,memoryUsage:s.memoryUsage})}(c=e.children)!=null&&c.length&&(e.children=D(n,e.children))}),{fileTreeData:n,defaultFolderOpenIds:i}}),f=d(()=>{const n={};for(const i of m.value){const l=v(i.key),e=p(i.type);n[l]={id:l,parentId:null,name:i.key,type:"file",depth:-1,iconOpen:y(i.type),iconClose:y(i.type),iconClass:C(i.type),data:{kind:"key",redisKey:i.key,keyType:e,ttl:i.ttl,memoryUsage:i.memoryUsage,memoryUsageHuman:i.memoryUsageHuman}}}return n});return{visibleKeys:m,fileTreeData:d(()=>a.value.fileTreeData),flatFileTreeData:f,defaultFolderOpenIds:d(()=>a.value.defaultFolderOpenIds)}}export{C as a,y as g,H as u};
@@ -1,2 +1,2 @@
1
- import{d as D,a0 as ht,r as O,aC as _t,k as B,l as V,g as o,o as S,w as l,E as R,ab as yt,aB as kt,e as M,m as I,n as j,j as z,u as Ie,a as je,dA as Ve,ar as bt,A as L,c as oe,b as We,ai as Ke,f as i,N as F,z as W,F as Y,s as ne,q as Ye,t as U,O as Ct,J as xt,L as $t,v as Ge,bg as St,b8 as Et,b9 as Tt,ba as It,bb as Wt,bc as At,bd as Bt,be as Mt,X as ge,dB as Dt,D as Lt,V as Ae,bO as ve,bU as we,p as $e,a5 as Ne,dC as Nt,al as Pt,aK as Ot,bj as Rt,aF as Ht,cA as Ft,cx as he,dD as Be,K as Pe,ay as Q,az as Qe,bP as Me,bQ as De,bk as Je,bT as Xe,dE as zt,by as qt,bR as Ut,i as te,_ as jt,bf as Vt,x as Kt,y as Yt,C as Gt,B as Qt,dF as Jt,dG as Xt,dH as Zt,aH as eo,cy as to,cz as oo}from"./C6teO48Y.js";import{i as Ze,g as et,a as se}from"./DG9CsZCx.js";import{_ as tt}from"./7H5y5euK.js";import{i as no,_ as Se}from"./DkX74xDd.js";import{a as so,b as ro,c as io,d as ao,e as lo,E as co,u as uo,t as po,F as _e}from"./BWTTrGtY.js";import{_ as mo,a as fo,b as vo}from"./CMI-3q_e.js";import{_ as wo}from"./eQskTKIU.js";import{_ as go,e as ho,f as _o}from"./BMVgfiQu.js";import{_ as yo}from"./BK-6CJ0A.js";import{_ as ko,a as bo}from"./CKlMKmo6.js";import"./BRCvv3op.js";import"./D_kY6P5P.js";import"./B5rxJs06.js";import"./WGDY9i_Q.js";var Co=D({__name:"AvatarFallback",props:{delayMs:{type:Number,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){const t=e,s=no();ht();const r=O(t.delayMs===void 0);return _t(n=>{if(t.delayMs&&kt){const a=window.setTimeout(()=>{r.value=!0},t.delayMs);n(()=>{window.clearTimeout(a)})}}),(n,a)=>r.value&&o(s).imageLoadingStatus.value!=="loaded"?(S(),B(o(yt),{key:0,"as-child":n.asChild,as:n.as},{default:l(()=>[R(n.$slots,"default")]),_:3},8,["as-child","as"])):V("v-if",!0)}}),xo=Co;const $o={"data-slot":"table-container",class:"relative w-full overflow-auto"},So=D({__name:"Table",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("div",$o,[I("table",{"data-slot":"table",class:j(o(z)("w-full caption-bottom text-sm",t.class))},[R(s.$slots,"default")],2)]))}}),Eo=D({__name:"TableBody",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("tbody",{"data-slot":"table-body",class:j(o(z)("[&_tr:last-child]:border-0",t.class))},[R(s.$slots,"default")],2))}}),ae=D({__name:"TableCell",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("td",{"data-slot":"table-cell",class:j(o(z)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t.class))},[R(s.$slots,"default")],2))}}),Oe=D({__name:"TableRow",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("tr",{"data-slot":"table-row",class:j(o(z)("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",t.class))},[R(s.$slots,"default")],2))}}),le=D({__name:"TableHead",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("th",{"data-slot":"table-head",class:j(o(z)("text-muted-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t.class))},[R(s.$slots,"default")],2))}}),To=D({__name:"TableHeader",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("thead",{"data-slot":"table-header",class:j(o(z)("[&_tr]:border-b",t.class))},[R(s.$slots,"default")],2))}}),Io={key:1,class:"rounded-md border border-border w-full"},Wo={class:"flex items-center gap-2 truncate"},Ao={class:"w-80"},Bo={class:"text-muted-foreground truncate"},Mo={class:"flex flex-wrap gap-1"},Do={class:"flex items-center justify-end gap-1"},Lo=D({__name:"ConnectionsList",props:{connections:{}},emits:["edit","delete","create"],setup(e,{emit:t}){const{openWorkspaceWithConnection:s}=Ie(),r=je(),{checkAndConfirm:n}=Ve(),a=We(),v=e,w=t,u=O(null),d=bt(L,{name:"hugeicons:database"}),c=oe(()=>Ze(a.public.sqlite3ConnectionsEnabled)),E=_=>{if(_.method!==ge.STRING||!_.connectionString)return null;try{return Dt(_.connectionString)}catch{return null}},p=_=>_.type===Lt.ORACLE?_.serviceName:_.database,g=_=>{if(_.method===ge.FILE){const y=_.filePath||"SQLite file not selected";return{summary:y,tooltip:y}}if(_.method===ge.STRING){const y=E(_),T=_.connectionString||"Invalid connection string";return y?{summary:`${y.host}${y.database?`:${y.database}`:""}`,tooltip:`${y.host}${y.port?`:${y.port}`:""}${y.database?`/${y.database}`:""}`}:{summary:T,tooltip:T}}const m=_.host||"Host not set",x=p(_);return{summary:`${m}${x?`:${x}`:""}`,tooltip:`${m}${_.port?`:${_.port}`:""}${x?`/${x}`:""}`}},f=oe(()=>v.connections.map(_=>{var m;return{connection:_,details:g(_),icon:((m=et(_.type))==null?void 0:m.icon)??d}})),$=_=>{u.value=_},b=()=>{u.value&&(w("delete",u.value),u.value=null)},C=async _=>{se(_,c.value)||!await n(_)||s({connId:_.id,wsId:_.workspaceId})};return(_,m)=>{const x=Ke;return v.connections.length===0?(S(),B(x,{key:0,title:"No connections yet",desc:"Click Add Connection to create your first database connection."},{default:l(()=>[i(o(F),{size:"sm",variant:"outline",onClick:m[0]||(m[0]=y=>w("create"))},{default:l(()=>[i(o(L),{name:"hugeicons:plus-sign",class:"size-4!"}),m[3]||(m[3]=W(" Add Connection "))]),_:1})]),_:1})):(S(),M("div",Io,[i(o(So),null,{default:l(()=>[i(o(To),null,{default:l(()=>[i(o(Oe),{class:"hover:bg-transparent"},{default:l(()=>[i(o(le),null,{default:l(()=>m[4]||(m[4]=[W("Name")])),_:1}),i(o(le),null,{default:l(()=>m[5]||(m[5]=[W("Connection Details")])),_:1}),i(o(le),null,{default:l(()=>m[6]||(m[6]=[W("Tag Envs")])),_:1}),i(o(le),{class:"text-right"},{default:l(()=>m[7]||(m[7]=[W("Actions")])),_:1})]),_:1})]),_:1}),i(o(Eo),null,{default:l(()=>[(S(!0),M(Y,null,ne(f.value,y=>(S(),B(o(Oe),{key:y.connection.id,class:"hover:bg-muted/30 w-full"},{default:l(()=>[i(o(ae),null,{default:l(()=>[I("div",Wo,[(S(),B(Ye(y.icon),{class:"size-5!"})),W(" "+U(y.connection.name),1)])]),_:2},1024),i(o(ae),null,{default:l(()=>[i(o(Ct),null,{default:l(()=>[i(o(xt),{"as-child":""},{default:l(()=>[I("div",Ao,[I("div",Bo,U(y.details.summary),1)])]),_:2},1024),i(o($t),null,{default:l(()=>[I("p",null,U(y.details.tooltip),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),i(o(ae),null,{default:l(()=>[I("div",Mo,[(S(!0),M(Y,null,ne(o(r).getTagsByIds(y.connection.tagIds??[]),T=>(S(),B(o(Ge),{key:T.id,tag:T},null,8,["tag"]))),128))])]),_:2},1024),i(o(ae),{class:"text-right"},{default:l(()=>[I("div",Do,[i(o(F),{variant:"outline",size:"iconMd",onClick:T=>_.$emit("edit",y.connection)},{default:l(()=>[i(o(L),{name:"hugeicons:edit-02"})]),_:2},1032,["onClick"]),i(o(F),{variant:"outline",size:"iconMd",onClick:T=>$(y.connection.id)},{default:l(()=>[i(o(L),{name:"hugeicons:delete-02"})]),_:2},1032,["onClick"]),i(o(F),{variant:"default",size:"sm",disabled:o(se)(y.connection,c.value),onClick:T=>C(y.connection)},{default:l(()=>[i(o(L),{name:"hugeicons:square-arrow-up-right"}),W(" "+U(o(se)(y.connection,c.value)?"Disabled":"Connect"),1)]),_:2},1032,["disabled","onClick"])])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1}),i(o(St),{open:!!u.value,"onUpdate:open":m[2]||(m[2]=y=>!y)},{default:l(()=>[i(o(Et),{class:"border"},{default:l(()=>[i(o(Tt),null,{default:l(()=>[i(o(It),null,{default:l(()=>m[8]||(m[8]=[W("Are you sure?")])),_:1}),i(o(Wt),null,{default:l(()=>m[9]||(m[9]=[W(" This will permanently delete this database connection. This action cannot be undone. ")])),_:1})]),_:1}),i(o(At),null,{default:l(()=>[i(o(Bt),{class:"border",onClick:m[1]||(m[1]=y=>u.value=null)},{default:l(()=>m[10]||(m[10]=[W("Cancel")])),_:1}),i(o(Mt),{class:"border bg-red-600 hover:bg-red-700",onClick:b},{default:l(()=>m[11]||(m[11]=[W(" Delete ")])),_:1})]),_:1})]),_:1})]),_:1},8,["open"])]))}}}),No=D({__name:"CardFooter",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("div",{"data-slot":"card-footer",class:j(o(z)("flex items-center px-6 [.border-t]:pt-6",t.class))},[R(s.$slots,"default")],2))}}),Po=D({__name:"CardHeader",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("div",{"data-slot":"card-header",class:j(o(z)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t.class))},[R(s.$slots,"default")],2))}}),Oo=D({__name:"CardTitle",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("h3",{"data-slot":"card-title",class:j(o(z)("leading-none font-semibold",t.class))},[R(s.$slots,"default")],2))}}),Ro={class:"flex flex-col items-center"},Ho={class:"w-full"},Fo={class:"flex items-center justify-between rounded-md bg-card py-4"},zo=D({__name:"ManagementConnection",props:{connections:{},workspaceId:{}},setup(e){const t=O(!1),{createConnection:s}=Ie(),r=Ae(),n=O(null),a=()=>{n.value=null,t.value=!0},v=c=>{s(c)},w=c=>{r.updateConnection(c)},u=c=>{n.value=c,t.value=!0},d=c=>{r.onDeleteConnection(c)};return(c,E)=>{const p=L;return S(),M("div",Ro,[I("div",Ho,[I("div",Fo,[E[2]||(E[2]=I("div",null,[I("h1",{class:"text-xl font-medium"},"Management Connections"),I("p",{class:"text-muted-foreground"}," Manage your database connections in one place ")],-1)),i(o(F),{id:"tour-add-connection-btn",size:"sm",variant:"outline",onClick:a},{default:l(()=>[i(p,{name:"lucide:plus",class:"size-4!"}),E[1]||(E[1]=W(" Add Connection "))]),_:1})]),i(Lo,{connections:c.connections,onEdit:u,onDelete:d,onCreate:a},null,8,["connections"]),i(tt,{open:t.value,"editing-connection":n.value,"onUpdate:open":E[0]||(E[0]=g=>t.value=g),onAddNew:v,onUpdate:w,workspaceId:c.workspaceId},null,8,["open","editing-connection","workspaceId"])])])}}}),qo={class:"w-full overflow-x-auto"},Uo=D({__name:"ManagementConnectionModal",props:{open:{},connections:{},workspaceId:{}},emits:["update:open"],setup(e,{emit:t}){const s=t;return(r,n)=>(S(),B(o(ve),{open:!!r.open,"onUpdate:open":n[0]||(n[0]=a=>s("update:open",a))},{default:l(()=>[i(o(we),{size:"preview"},{default:l(()=>[I("div",qo,[i(zo,{connections:r.connections,"workspace-id":r.workspaceId},null,8,["connections","workspace-id"])])]),_:1})]),_:1},8,["open"]))}}),Ee=D({__name:"AvatarFallback",props:{delayMs:{},asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,s=oe(()=>{const{class:r,...n}=t;return n});return(r,n)=>(S(),B(o(xo),$e({"data-slot":"avatar-fallback"},s.value,{class:o(z)("bg-muted flex size-full items-center justify-center rounded-full",t.class)}),{default:l(()=>[R(r.$slots,"default")]),_:3},16,["class"]))}}),ot=Symbol();function Le(){const e=Ne(so),t=Ne(ot);if(!e)throw new Error("useFormField should be used within <FormField>");const{name:s}=e,r=t,n={valid:lo(s),isDirty:ao(s),isTouched:io(s),error:ro(s)};return{id:r,name:s,formItemId:`${r}-form-item`,formDescriptionId:`${r}-form-item-description`,formMessageId:`${r}-form-item-message`,...n}}const ye=D({__name:"FormControl",setup(e){const{error:t,formItemId:s,formDescriptionId:r,formMessageId:n}=Le();return(a,v)=>(S(),B(o(Nt),{id:o(s),"data-slot":"form-control","aria-describedby":o(t)?`${o(r)} ${o(n)}`:`${o(r)}`,"aria-invalid":!!o(t)},{default:l(()=>[R(a.$slots,"default")]),_:3},8,["id","aria-describedby","aria-invalid"]))}}),ke=D({__name:"FormItem",props:{class:{}},setup(e){const t=e,s=Pt();return Ot(ot,s),(r,n)=>(S(),M("div",{"data-slot":"form-item",class:j(o(z)("grid gap-2",t.class))},[R(r.$slots,"default")],2))}}),be=D({__name:"FormLabel",props:{for:{},asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,{error:s,formItemId:r}=Le();return(n,a)=>(S(),B(o(Rt),{"data-slot":"form-label","data-error":!!o(s),class:j(o(z)("data-[error=true]:text-destructive-foreground",t.class)),for:o(r)},{default:l(()=>[R(n.$slots,"default")]),_:3},8,["data-error","class","for"]))}}),Ce=D({__name:"FormMessage",props:{class:{}},setup(e){const t=e,{name:s,formMessageId:r}=Le();return(n,a)=>(S(),B(o(co),{id:o(r),"data-slot":"form-message",as:"p",name:Ht(o(s)),class:j(o(z)("text-destructive-foreground text-sm",t.class))},null,8,["id","name","class"]))}}),nt=["lucide:badge","lucide:building-2","lucide:bone","lucide:book","hugeicons:ai-brain-05","lucide:circle-dashed","lucide:chess-bishop","lucide:chess-king","lucide:chess-pawn","lucide:chess-queen","lucide:chess-rook","lucide:fan","lucide:skull","lucide:ship-wheel","lucide:bug","lucide:hamburger"],pe=nt[0],jo=Ft({name:he({message:"Workspace name is required."}),desc:he().optional(),icon:he().default(pe)});function Vo(e){const t=Be(),s=uo({validationSchema:po(jo),initialValues:e.workspace?{name:e.workspace.name,desc:e.workspace.desc,icon:e.workspace.icon||pe}:{name:`My workspace ${(e==null?void 0:e.workspaceSeq)||0}`,icon:pe},name:"workspace-form"}),r=s.handleSubmit(n=>{!!e.workspace?(t.updateWorkspace({...e.workspace,desc:(n==null?void 0:n.desc)||void 0,name:n.name,icon:n.icon}),Pe("Workspace has been updated",{description:Q().toString()})):(t.createWorkspace({desc:(n==null?void 0:n.desc)||void 0,id:Qe(),name:n.name,icon:n.icon,createdAt:Q().toISOString()}),Pe("Workspace has been created",{description:Q().toString()})),e.onClose()});return{form:s,onSubmit:r}}const Ko={class:"grid grid-cols-8 gap-2"},st=D({__name:"CreateWorkspaceModal",props:{open:{},workspace:{},workspaceSeq:{}},emits:["update:open"],setup(e,{emit:t}){const s=e,r=t,n=()=>{r("update:open",!1)},{onSubmit:a}=Vo({workspace:s.workspace,workspaceSeq:s.workspaceSeq,onClose:n});return(v,w)=>{const u=L;return S(),B(o(ve),{open:!!v.open,"onUpdate:open":w[1]||(w[1]=d=>r("update:open",d))},{default:l(()=>[i(o(we),null,{default:l(()=>[i(o(Me),null,{default:l(()=>[i(o(De),null,{default:l(()=>[W(U(v.workspace?"Update workspace":"New workspace"),1)]),_:1})]),_:1}),I("form",{class:"space-y-4",onSubmit:w[0]||(w[0]=(...d)=>o(a)&&o(a)(...d))},[i(o(_e),{name:"icon"},{default:l(({componentField:d})=>[i(o(ke),null,{default:l(()=>[i(o(be),null,{default:l(()=>w[2]||(w[2]=[W("Icon")])),_:1}),i(o(ye),null,{default:l(()=>[i(o(mo),null,{default:l(()=>[i(o(fo),{"as-child":""},{default:l(()=>[i(o(Se),{id:"tour-workspace-icon",class:"cursor-pointer focus:ring-2 focus:ring-primary focus:outline-none",tabindex:"0",role:"button","aria-label":"Select workspace icon"},{default:l(()=>[i(o(Ee),null,{default:l(()=>[i(u,{name:d.modelValue||"hugeicons:folder-01",class:"size-5!"},null,8,["name"])]),_:2},1024)]),_:2},1024)]),_:2},1024),i(o(vo),{class:"w-full p-4"},{default:l(()=>[I("div",Ko,[(S(!0),M(Y,null,ne(o(nt),c=>(S(),B(o(Se),{onClick:E=>d.onChange(c),key:c,class:"cursor-pointer"},{default:l(()=>[i(o(Ee),null,{default:l(()=>[i(u,{name:c,class:"size-5!"},null,8,["name"])]),_:2},1024)]),_:2},1032,["onClick"]))),128))])]),_:2},1024)]),_:2},1024)]),_:2},1024),i(o(Ce))]),_:2},1024)]),_:1}),i(o(_e),{name:"name"},{default:l(({componentField:d})=>[i(o(ke),null,{default:l(()=>[i(o(be),{class:"gap-1"},{default:l(()=>w[3]||(w[3]=[W("Name "),I("span",{class:"text-red-500"},"*",-1)])),_:1}),i(o(ye),null,{default:l(()=>[i(o(Je),$e({id:"tour-workspace-name",type:"text",placeholder:"Workspace name"},d),null,16)]),_:2},1024),i(o(Ce))]),_:2},1024)]),_:1}),i(o(_e),{name:"desc"},{default:l(({componentField:d})=>[i(o(ke),null,{default:l(()=>[i(o(be),null,{default:l(()=>w[4]||(w[4]=[W("Description")])),_:1}),i(o(ye),null,{default:l(()=>[i(o(wo),$e({id:"tour-workspace-desc",placeholder:"Workspace description ..."},d),null,16)]),_:2},1024),i(o(Ce))]),_:2},1024)]),_:1}),i(o(Xe),{class:"mt-4"},{default:l(()=>[i(o(F),{id:"tour-workspace-create",type:"submit"},{default:l(()=>[W(U(v.workspace?"Update":"Create"),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,["open"])}}}),Yo=D({__name:"RestoreDataModal",props:{open:{type:Boolean}},emits:["update:open"],setup(e,{emit:t}){const s=t,r=O(null),n=()=>{var a;r.value&&!r.value.canClose()||((a=r.value)==null||a.resetState(),s("update:open",!1))};return(a,v)=>{const w=L;return S(),B(o(ve),{open:a.open,"onUpdate:open":n},{default:l(()=>[i(o(we),{class:"sm:max-w-2xl flex flex-col"},{default:l(()=>[i(o(Me),null,{default:l(()=>[i(o(De),{class:"flex items-center gap-2"},{default:l(()=>[i(w,{name:"hugeicons:file-download",class:"size-4!"}),v[0]||(v[0]=W(" Restore Data "))]),_:1})]),_:1}),i(o(zt),{ref_key:"importPanelRef",ref:r,layout:"modal","success-action-label":"Close","success-action-mode":"emit",onSuccessAction:n},null,512)]),_:1})]),_:1},8,["open"])}}});var ue={exports:{}},Go=ue.exports,Re;function Qo(){return Re||(Re=1,function(e,t){(function(s,r){e.exports=r()})(Go,function(){return function(s,r,n){s=s||{};var a=r.prototype,v={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function w(d,c,E,p){return a.fromToBase(d,c,E,p)}n.en.relativeTime=v,a.fromToBase=function(d,c,E,p,g){for(var f,$,b,C=E.$locale().relativeTime||v,_=s.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],m=_.length,x=0;x<m;x+=1){var y=_[x];y.d&&(f=p?n(d).diff(E,y.d,!0):E.diff(d,y.d,!0));var T=(s.rounding||Math.round)(Math.abs(f));if(b=f>0,T<=y.r||!y.r){T<=1&&x>0&&(y=_[x-1]);var P=C[y.l];g&&(T=g(""+T)),$=typeof P=="string"?P.replace("%d",T):P(T,c,y.l,b);break}}if(c)return $;var q=b?C.future:C.past;return typeof q=="function"?q($):q.replace("%s",$)},a.to=function(d,c){return w(d,c,this,!0)},a.from=function(d,c){return w(d,c,this)};var u=function(d){return d.$u?n.utc():n()};a.toNow=function(d){return this.to(u(this),d)},a.fromNow=function(d){return this.from(u(this),d)}}})}(ue)),ue.exports}var Jo=Qo();const Xo=qt(Jo);function Zo(e){const{createConnection:t,openWorkspaceWithConnection:s}=Ie(),r=Be(),n=Ae(),{checkAndConfirm:a}=Ve(),v=O(!1),w=O(!1),u=O(!1),d=O(),c=O(!1),E=()=>{w.value=!1,r.deleteWorkspace(e.workspace.id)},p=oe(()=>n.getConnectionsByWorkspaceId(e.workspace.id));return{workspaceStore:r,isOpenEditModal:v,isOpenDeleteModal:w,isOpenConnectionSelector:u,dropdownTriggerRef:d,isModalCreateConnectionOpen:c,connections:p,onConfirmDelete:E,onOpenWorkspace:()=>{var C;(C=e.onSelectWorkspace)==null||C.call(e,e.workspace.id)},onOpenConnectionSelector:()=>{u.value=!0},onOpenWorkspaceWithConnection:async C=>{u.value=!1;const _=p.value.find(m=>m.id===C);_&&!await a(_)||await s({connId:C,wsId:e.workspace.id})},handleAddConnection:C=>{t(C)}}}const en=D({__name:"DeleteWorkspaceModal",props:{open:{},onConfirm:{type:Function}},emits:["update:open"],setup(e,{emit:t}){const s=t;return(r,n)=>{const a=F,v=we;return S(),B(o(ve),{open:!!r.open,"onUpdate:open":n[0]||(n[0]=w=>s("update:open",w))},{default:l(()=>[i(v,null,{default:l(()=>[i(o(Me),null,{default:l(()=>[i(o(De),null,{default:l(()=>n[1]||(n[1]=[W("Delete workspace")])),_:1}),i(o(Ut),null,{default:l(()=>n[2]||(n[2]=[W(" Are you sure you want to delete this workspace? "),I("br",null,null,-1),W(" All data will be permanently deleted this action cannot be undone. ")])),_:1})]),_:1}),i(o(Xe),null,{default:l(()=>[i(a,{type:"submit",onClick:r.onConfirm,variant:"default"},{default:l(()=>n[3]||(n[3]=[W(" Delete ")])),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),tn={class:"flex items-center space-x-2"},on={class:"space-y-1"},nn={class:"text-sm line-clamp-2 break-words break-all text-left"},sn={class:"flex items-center pt-2"},rn={class:"text-xs text-muted-foreground"},an={class:"flex items-center pt-2"},ln={key:0,class:"text-xs text-muted-foreground"},cn={key:1,class:"text-xs text-muted-foreground"},dn={class:"flex items-center pt-2"},un={class:"text-xs text-muted-foreground"},pn={class:"flex items-center gap-1"},mn={class:"flex items-center gap-2 min-w-0"},fn={class:"truncate"},vn={key:0,class:"flex items-center gap-1 ml-auto flex-shrink-0"},wn={key:1,class:"ml-auto text-xs text-muted-foreground"},gn=D({__name:"WorkspaceCard",props:{workspace:{},onOpenWorkspace:{type:Function}},emits:["onSelectWorkspace"],setup(e,{emit:t}){Q.extend(Xo);const s=je(),r=We(),n=oe(()=>Ze(r.public.sqlite3ConnectionsEnabled)),a=e,v=t,{workspaceStore:w,isOpenEditModal:u,isOpenDeleteModal:d,isOpenConnectionSelector:c,dropdownTriggerRef:E,isModalCreateConnectionOpen:p,connections:g,onConfirmDelete:f,onOpenWorkspace:$,onOpenConnectionSelector:b,onOpenWorkspaceWithConnection:C,handleAddConnection:_}=Zo({workspace:a.workspace,onSelectWorkspace:m=>v("onSelectWorkspace",m)});return(m,x)=>{const y=Ee,T=Se,P=ho,q=yo,X=_o,Z=go,G=Gt,ee=Yt;return S(),M(Y,null,[o(p)?(S(),B(o(tt),{key:0,open:o(p),"editing-connection":null,"onUpdate:open":x[0]||(x[0]=A=>p.value=A),onAddNew:o(_),workspaceId:m.workspace.id},null,8,["open","onAddNew","workspaceId"])):V("",!0),o(u)?(S(),B(st,{key:1,open:o(u),"onUpdate:open":x[1]||(x[1]=A=>te(u)?u.value=A:null),workspace:m.workspace,workspaceSeq:o(w).workspaces.length},null,8,["open","workspace","workspaceSeq"])):V("",!0),o(d)?(S(),B(en,{key:2,open:o(d),"onUpdate:open":x[2]||(x[2]=A=>te(d)?d.value=A:null),onConfirm:o(f)},null,8,["open","onConfirm"])):V("",!0),i(o(bo),{class:"gap-4 justify-between!"},{default:l(()=>[i(o(Po),{class:"flex justify-between px-4"},{default:l(()=>[I("div",tn,[i(T,null,{default:l(()=>[i(y,null,{default:l(()=>[i(o(L),{name:m.workspace.icon,class:"size-5!"},null,8,["name"])]),_:1})]),_:1}),I("div",null,[i(o(Oo),{class:"line-clamp-1"},{default:l(()=>[W(U(m.workspace.name),1)]),_:1})])]),i(Z,null,{default:l(()=>[i(P,null,{default:l(()=>[i(o(F),{size:"icon",variant:"ghost"},{default:l(()=>[i(o(L),{name:"hugeicons:more-vertical-circle-01",class:"size-4!"})]),_:1})]),_:1}),i(X,null,{default:l(()=>[i(q,{class:"cursor-pointer flex items-center",onClick:x[3]||(x[3]=A=>u.value=!0)},{default:l(()=>[i(o(L),{name:"hugeicons:pencil-edit-02",class:"size-4! min-w-4"}),x[9]||(x[9]=W(" Edit workspace "))]),_:1}),i(q,{class:"cursor-pointer flex items-center",disabled:""},{default:l(()=>[i(o(L),{name:"hugeicons:link-04",class:"size-4! min-w-4"}),x[10]||(x[10]=W(" Invite "))]),_:1}),i(q,{class:"cursor-pointer flex items-center",onClick:x[4]||(x[4]=A=>d.value=!0)},{default:l(()=>[i(o(L),{name:"hugeicons:delete-02",class:"size-4! min-w-4"}),x[11]||(x[11]=W(" Delete workspace "))]),_:1})]),_:1})]),_:1})]),_:1}),i(o(ko),{class:"grid gap-4 overflow-hidden px-4"},{default:l(()=>[I("div",on,[I("p",nn,U(m.workspace.desc),1),I("div",sn,[i(o(L),{name:"hugeicons:connect",class:"mr-2 h-4 w-4 opacity-70"}),I("span",rn," Connection : "+U(o(g).length),1)]),I("div",an,[i(o(L),{name:"hugeicons:clock-05",class:"mr-2 h-4 w-4 opacity-70"}),m.workspace.lastOpened?(S(),M("span",ln," Last opened : "+U(o(Q)(m.workspace.lastOpened).fromNow()),1)):(S(),M("span",cn," Last opened : -/- "))]),I("div",dn,[i(o(L),{name:"hugeicons:clock-01",class:"mr-2 h-4 w-4 opacity-70"}),I("span",un," Created : "+U(o(Q)(m.workspace.createdAt).fromNow()),1)])])]),_:1}),i(o(No),{class:"px-4"},{default:l(()=>[i(o(jt),{open:o(c),"onUpdate:open":x[8]||(x[8]=A=>te(c)?c.value=A:null)},{default:l(()=>[i(o(F),{id:`tour-open-workspace-${m.workspace.id}`,ref_key:"dropdownTriggerRef",ref:E,variant:"default",class:"w-full flex items-center justify-between",onClick:x[6]||(x[6]=A=>o($)()),size:"sm"},{default:l(()=>[I("div",pn,[i(o(L),{name:"hugeicons:square-arrow-up-right",class:"h-4 w-4"}),x[12]||(x[12]=W(" Open workspace "))]),i(o(F),{size:"iconSm",variant:"ghost",onClick:x[5]||(x[5]=Vt(A=>o(b)(),["stop"]))},{default:l(()=>[i(o(L),{name:"hugeicons:arrow-down-01",class:"size-5!"})]),_:1})]),_:1},8,["id"]),i(o(Kt),{reference:o(E)},{default:l(()=>[i(ee,null,{default:l(()=>[I("div",{class:"flex px-2 py-0.5 h-8 hover:bg-muted rounded-md font-normal text-sm items-center gap-1 cursor-pointer",onClick:x[7]||(x[7]=A=>p.value=!0)},[i(o(L),{name:"hugeicons:plus-sign"}),x[13]||(x[13]=W(" Add new connection "))]),o(g).length?(S(),B(G,{key:0})):V("",!0),(S(!0),M(Y,null,ne(o(g),A=>(S(),B(o(Qt),{class:"cursor-pointer",value:A.id,key:A.id,disabled:o(se)(A,o(n)),onSelect:K=>o(C)(A.id)},{default:l(()=>{var K;return[I("div",mn,[(S(),B(Ye((K=o(et)(A.type))==null?void 0:K.icon),{class:"size-4! shrink-0"})),I("span",fn,U(A.name),1),(A.tagIds??[]).length?(S(),M("div",vn,[(S(!0),M(Y,null,ne(o(s).getTagsByIds(A.tagIds??[]),ie=>(S(),B(o(Ge),{key:ie.id,tag:ie},null,8,["tag"]))),128))])):V("",!0),o(se)(A,o(n))?(S(),M("span",wn," Disabled ")):V("",!0)])]}),_:2},1032,["value","disabled","onSelect"]))),128))]),_:1})]),_:1},8,["reference"])]),_:1},8,["open"])]),_:1})]),_:1})],64)}}}),hn={class:"flex items-center justify-between mt-2"},_n={class:"container flex flex-col items-start gap-1 py-2"},yn={class:"text-3xl flex items-center gap-2 font-bold leading-tight tracking-tighter lg:leading-[1.1]"},kn={class:"flex items-center gap-2 shrink-0"},bn=D({__name:"WorkspaceHeader",props:{isShowButtonCreate:{type:Boolean},isShowButtonRestore:{type:Boolean}},emits:["create","restore"],setup(e,{emit:t}){const s=t;return(r,n)=>{const a=L;return S(),M("div",hn,[I("div",_n,[I("h1",yn,[n[2]||(n[2]=W(" Hello ")),i(a,{name:"hugeicons:waving-hand-01"})]),n[3]||(n[3]=I("p",{class:"max-w-2xl text-lg font-light text-foreground"}," Welcome to your workspaces ",-1))]),I("div",kn,[r.isShowButtonRestore?(S(),B(o(F),{key:0,type:"button",variant:"outline",size:"sm",onClick:n[0]||(n[0]=v=>s("restore"))},{default:l(()=>[i(a,{name:"lucide:upload"}),n[4]||(n[4]=W(" Restore Data "))]),_:1})):V("",!0),r.isShowButtonCreate?(S(),B(o(F),{key:1,id:"tour-new-workspace-btn",variant:"outline",size:"sm",onClick:n[1]||(n[1]=v=>s("create"))},{default:l(()=>[i(a,{name:"lucide:plus"}),n[5]||(n[5]=W(" New Workspace "))]),_:1})):V("",!0)])])}}});let Te={},rt;function xe(e={}){Te={animate:!0,allowClose:!0,overlayClickBehavior:"close",overlayOpacity:.7,smoothScroll:!1,disableActiveInteraction:!1,showProgress:!1,stagePadding:10,stageRadius:5,popoverOffset:10,showButtons:["next","previous","close"],disableButtons:[],overlayColor:"#000",...e}}function h(e){return e?Te[e]:Te}function Cn(e){rt=e}function H(){return rt}let me={};function ce(e,t){me[e]=t}function J(e){var t;(t=me[e])==null||t.call(me)}function xn(){me={}}function de(e,t,s,r){return(e/=r/2)<1?s/2*e*e+t:-s/2*(--e*(e-2)-1)+t}function it(e){const t='a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])';return e.flatMap(s=>{const r=s.matches(t),n=Array.from(s.querySelectorAll(t));return[...r?[s]:[],...n]}).filter(s=>getComputedStyle(s).pointerEvents!=="none"&&En(s))}function at(e){if(!e||Sn(e))return;const t=h("smoothScroll"),s=e.offsetHeight>window.innerHeight;e.scrollIntoView({behavior:!t||$n(e)?"auto":"smooth",inline:"center",block:s?"start":"center"})}function $n(e){if(!e||!e.parentElement)return;const t=e.parentElement;return t.scrollHeight>t.clientHeight}function Sn(e){const t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function En(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)}let fe={};function N(e,t){fe[e]=t}function k(e){return e?fe[e]:fe}function He(){fe={}}function Tn(e,t,s,r){let n=k("__activeStagePosition");const a=n||s.getBoundingClientRect(),v=r.getBoundingClientRect(),w=de(e,a.x,v.x-a.x,t),u=de(e,a.y,v.y-a.y,t),d=de(e,a.width,v.width-a.width,t),c=de(e,a.height,v.height-a.height,t);n={x:w,y:u,width:d,height:c},ct(n),N("__activeStagePosition",n)}function lt(e){if(!e)return;const t=e.getBoundingClientRect(),s={x:t.x,y:t.y,width:t.width,height:t.height};N("__activeStagePosition",s),ct(s)}function In(){const e=k("__activeStagePosition"),t=k("__overlaySvg");if(!e)return;if(!t){console.warn("No stage svg found.");return}const s=window.innerWidth,r=window.innerHeight;t.setAttribute("viewBox",`0 0 ${s} ${r}`)}function Wn(e){const t=An(e);document.body.appendChild(t),pt(t,s=>{s.target.tagName==="path"&&J("overlayClick")}),N("__overlaySvg",t)}function ct(e){const t=k("__overlaySvg");if(!t){Wn(e);return}const s=t.firstElementChild;if((s==null?void 0:s.tagName)!=="path")throw new Error("no path element found in stage svg");s.setAttribute("d",dt(e))}function An(e){const t=window.innerWidth,s=window.innerHeight,r=document.createElementNS("http://www.w3.org/2000/svg","svg");r.classList.add("driver-overlay","driver-overlay-animated"),r.setAttribute("viewBox",`0 0 ${t} ${s}`),r.setAttribute("xmlSpace","preserve"),r.setAttribute("xmlnsXlink","http://www.w3.org/1999/xlink"),r.setAttribute("version","1.1"),r.setAttribute("preserveAspectRatio","xMinYMin slice"),r.style.fillRule="evenodd",r.style.clipRule="evenodd",r.style.strokeLinejoin="round",r.style.strokeMiterlimit="2",r.style.zIndex="10000",r.style.position="fixed",r.style.top="0",r.style.left="0",r.style.width="100%",r.style.height="100%";const n=document.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("d",dt(e)),n.style.fill=h("overlayColor")||"rgb(0,0,0)",n.style.opacity=`${h("overlayOpacity")}`,n.style.pointerEvents="auto",n.style.cursor="auto",r.appendChild(n),r}function dt(e){const t=window.innerWidth,s=window.innerHeight,r=h("stagePadding")||0,n=h("stageRadius")||0,a=e.width+r*2,v=e.height+r*2,w=Math.min(n,a/2,v/2),u=Math.floor(Math.max(w,0)),d=e.x-r+u,c=e.y-r,E=a-u*2,p=v-u*2;return`M${t},0L0,0L0,${s}L${t},${s}L${t},0Z
1
+ import{d as D,a0 as ht,r as O,aC as _t,q as B,b as V,u as o,o as S,w as l,E as R,ab as yt,aB as kt,c as M,e as I,n as j,p as z,g as Ie,h as je,dA as Ve,ar as bt,_ as L,i as oe,j as We,ai as Ke,a as i,N as F,f as W,F as Y,x as ne,v as Ye,t as U,O as Ct,J as xt,L as $t,y as Ge,bg as St,b8 as Et,b9 as Tt,ba as It,bb as Wt,bc as At,bd as Bt,be as Mt,X as ge,dB as Dt,D as Lt,V as Ae,bO as ve,bU as we,s as $e,a5 as Ne,dC as Nt,al as Pt,aK as Ot,bj as Rt,aF as Ht,cA as Ft,cx as he,dD as Be,K as Pe,ay as Q,az as Qe,bP as Me,bQ as De,bk as Je,bT as Xe,dE as zt,by as qt,bR as Ut,l as te,k as jt,bf as Vt,z as Kt,A as Yt,C as Gt,B as Qt,dF as Jt,dG as Xt,dH as Zt,aH as eo,cy as to,cz as oo}from"./DbehhcO7.js";import{i as Ze,g as et,a as se}from"./9Skr9Ccw.js";import{_ as tt}from"./DvTZ16yM.js";import{i as no,_ as Se}from"./BS966b0P.js";import{a as so,b as ro,c as io,d as ao,e as lo,E as co,u as uo,t as po,F as _e}from"./BFYNB1ok.js";import{_ as mo,a as fo,b as vo}from"./CeA2-eDW.js";import{_ as wo}from"./DnQ4Mwo_.js";import{_ as go,e as ho,f as _o}from"./DN4-koTG.js";import{_ as yo}from"./CC8wYgAN.js";import{_ as ko,a as bo}from"./jDSo3fNb.js";import"./DbHH7dzg.js";import"./C04-ICJx.js";import"./B5rxJs06.js";import"./CEIpXOz0.js";var Co=D({__name:"AvatarFallback",props:{delayMs:{type:Number,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"span"}},setup(e){const t=e,s=no();ht();const r=O(t.delayMs===void 0);return _t(n=>{if(t.delayMs&&kt){const a=window.setTimeout(()=>{r.value=!0},t.delayMs);n(()=>{window.clearTimeout(a)})}}),(n,a)=>r.value&&o(s).imageLoadingStatus.value!=="loaded"?(S(),B(o(yt),{key:0,"as-child":n.asChild,as:n.as},{default:l(()=>[R(n.$slots,"default")]),_:3},8,["as-child","as"])):V("v-if",!0)}}),xo=Co;const $o={"data-slot":"table-container",class:"relative w-full overflow-auto"},So=D({__name:"Table",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("div",$o,[I("table",{"data-slot":"table",class:j(o(z)("w-full caption-bottom text-sm",t.class))},[R(s.$slots,"default")],2)]))}}),Eo=D({__name:"TableBody",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("tbody",{"data-slot":"table-body",class:j(o(z)("[&_tr:last-child]:border-0",t.class))},[R(s.$slots,"default")],2))}}),ae=D({__name:"TableCell",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("td",{"data-slot":"table-cell",class:j(o(z)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t.class))},[R(s.$slots,"default")],2))}}),Oe=D({__name:"TableRow",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("tr",{"data-slot":"table-row",class:j(o(z)("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",t.class))},[R(s.$slots,"default")],2))}}),le=D({__name:"TableHead",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("th",{"data-slot":"table-head",class:j(o(z)("text-muted-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t.class))},[R(s.$slots,"default")],2))}}),To=D({__name:"TableHeader",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("thead",{"data-slot":"table-header",class:j(o(z)("[&_tr]:border-b",t.class))},[R(s.$slots,"default")],2))}}),Io={key:1,class:"rounded-md border border-border w-full"},Wo={class:"flex items-center gap-2 truncate"},Ao={class:"w-80"},Bo={class:"text-muted-foreground truncate"},Mo={class:"flex flex-wrap gap-1"},Do={class:"flex items-center justify-end gap-1"},Lo=D({__name:"ConnectionsList",props:{connections:{}},emits:["edit","delete","create"],setup(e,{emit:t}){const{openWorkspaceWithConnection:s}=Ie(),r=je(),{checkAndConfirm:n}=Ve(),a=We(),v=e,w=t,u=O(null),d=bt(L,{name:"hugeicons:database"}),c=oe(()=>Ze(a.public.sqlite3ConnectionsEnabled)),E=_=>{if(_.method!==ge.STRING||!_.connectionString)return null;try{return Dt(_.connectionString)}catch{return null}},p=_=>_.type===Lt.ORACLE?_.serviceName:_.database,g=_=>{if(_.method===ge.FILE){const y=_.filePath||"SQLite file not selected";return{summary:y,tooltip:y}}if(_.method===ge.STRING){const y=E(_),T=_.connectionString||"Invalid connection string";return y?{summary:`${y.host}${y.database?`:${y.database}`:""}`,tooltip:`${y.host}${y.port?`:${y.port}`:""}${y.database?`/${y.database}`:""}`}:{summary:T,tooltip:T}}const m=_.host||"Host not set",x=p(_);return{summary:`${m}${x?`:${x}`:""}`,tooltip:`${m}${_.port?`:${_.port}`:""}${x?`/${x}`:""}`}},f=oe(()=>v.connections.map(_=>{var m;return{connection:_,details:g(_),icon:((m=et(_.type))==null?void 0:m.icon)??d}})),$=_=>{u.value=_},b=()=>{u.value&&(w("delete",u.value),u.value=null)},C=async _=>{se(_,c.value)||!await n(_)||s({connId:_.id,wsId:_.workspaceId})};return(_,m)=>{const x=Ke;return v.connections.length===0?(S(),B(x,{key:0,title:"No connections yet",desc:"Click Add Connection to create your first database connection."},{default:l(()=>[i(o(F),{size:"sm",variant:"outline",onClick:m[0]||(m[0]=y=>w("create"))},{default:l(()=>[i(o(L),{name:"hugeicons:plus-sign",class:"size-4!"}),m[3]||(m[3]=W(" Add Connection "))]),_:1})]),_:1})):(S(),M("div",Io,[i(o(So),null,{default:l(()=>[i(o(To),null,{default:l(()=>[i(o(Oe),{class:"hover:bg-transparent"},{default:l(()=>[i(o(le),null,{default:l(()=>m[4]||(m[4]=[W("Name")])),_:1}),i(o(le),null,{default:l(()=>m[5]||(m[5]=[W("Connection Details")])),_:1}),i(o(le),null,{default:l(()=>m[6]||(m[6]=[W("Tag Envs")])),_:1}),i(o(le),{class:"text-right"},{default:l(()=>m[7]||(m[7]=[W("Actions")])),_:1})]),_:1})]),_:1}),i(o(Eo),null,{default:l(()=>[(S(!0),M(Y,null,ne(f.value,y=>(S(),B(o(Oe),{key:y.connection.id,class:"hover:bg-muted/30 w-full"},{default:l(()=>[i(o(ae),null,{default:l(()=>[I("div",Wo,[(S(),B(Ye(y.icon),{class:"size-5!"})),W(" "+U(y.connection.name),1)])]),_:2},1024),i(o(ae),null,{default:l(()=>[i(o(Ct),null,{default:l(()=>[i(o(xt),{"as-child":""},{default:l(()=>[I("div",Ao,[I("div",Bo,U(y.details.summary),1)])]),_:2},1024),i(o($t),null,{default:l(()=>[I("p",null,U(y.details.tooltip),1)]),_:2},1024)]),_:2},1024)]),_:2},1024),i(o(ae),null,{default:l(()=>[I("div",Mo,[(S(!0),M(Y,null,ne(o(r).getTagsByIds(y.connection.tagIds??[]),T=>(S(),B(o(Ge),{key:T.id,tag:T},null,8,["tag"]))),128))])]),_:2},1024),i(o(ae),{class:"text-right"},{default:l(()=>[I("div",Do,[i(o(F),{variant:"outline",size:"iconMd",onClick:T=>_.$emit("edit",y.connection)},{default:l(()=>[i(o(L),{name:"hugeicons:edit-02"})]),_:2},1032,["onClick"]),i(o(F),{variant:"outline",size:"iconMd",onClick:T=>$(y.connection.id)},{default:l(()=>[i(o(L),{name:"hugeicons:delete-02"})]),_:2},1032,["onClick"]),i(o(F),{variant:"default",size:"sm",disabled:o(se)(y.connection,c.value),onClick:T=>C(y.connection)},{default:l(()=>[i(o(L),{name:"hugeicons:square-arrow-up-right"}),W(" "+U(o(se)(y.connection,c.value)?"Disabled":"Connect"),1)]),_:2},1032,["disabled","onClick"])])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1}),i(o(St),{open:!!u.value,"onUpdate:open":m[2]||(m[2]=y=>!y)},{default:l(()=>[i(o(Et),{class:"border"},{default:l(()=>[i(o(Tt),null,{default:l(()=>[i(o(It),null,{default:l(()=>m[8]||(m[8]=[W("Are you sure?")])),_:1}),i(o(Wt),null,{default:l(()=>m[9]||(m[9]=[W(" This will permanently delete this database connection. This action cannot be undone. ")])),_:1})]),_:1}),i(o(At),null,{default:l(()=>[i(o(Bt),{class:"border",onClick:m[1]||(m[1]=y=>u.value=null)},{default:l(()=>m[10]||(m[10]=[W("Cancel")])),_:1}),i(o(Mt),{class:"border bg-red-600 hover:bg-red-700",onClick:b},{default:l(()=>m[11]||(m[11]=[W(" Delete ")])),_:1})]),_:1})]),_:1})]),_:1},8,["open"])]))}}}),No=D({__name:"CardFooter",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("div",{"data-slot":"card-footer",class:j(o(z)("flex items-center px-6 [.border-t]:pt-6",t.class))},[R(s.$slots,"default")],2))}}),Po=D({__name:"CardHeader",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("div",{"data-slot":"card-header",class:j(o(z)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t.class))},[R(s.$slots,"default")],2))}}),Oo=D({__name:"CardTitle",props:{class:{}},setup(e){const t=e;return(s,r)=>(S(),M("h3",{"data-slot":"card-title",class:j(o(z)("leading-none font-semibold",t.class))},[R(s.$slots,"default")],2))}}),Ro={class:"flex flex-col items-center"},Ho={class:"w-full"},Fo={class:"flex items-center justify-between rounded-md bg-card py-4"},zo=D({__name:"ManagementConnection",props:{connections:{},workspaceId:{}},setup(e){const t=O(!1),{createConnection:s}=Ie(),r=Ae(),n=O(null),a=()=>{n.value=null,t.value=!0},v=c=>{s(c)},w=c=>{r.updateConnection(c)},u=c=>{n.value=c,t.value=!0},d=c=>{r.onDeleteConnection(c)};return(c,E)=>{const p=L;return S(),M("div",Ro,[I("div",Ho,[I("div",Fo,[E[2]||(E[2]=I("div",null,[I("h1",{class:"text-xl font-medium"},"Management Connections"),I("p",{class:"text-muted-foreground"}," Manage your database connections in one place ")],-1)),i(o(F),{id:"tour-add-connection-btn",size:"sm",variant:"outline",onClick:a},{default:l(()=>[i(p,{name:"lucide:plus",class:"size-4!"}),E[1]||(E[1]=W(" Add Connection "))]),_:1})]),i(Lo,{connections:c.connections,onEdit:u,onDelete:d,onCreate:a},null,8,["connections"]),i(tt,{open:t.value,"editing-connection":n.value,"onUpdate:open":E[0]||(E[0]=g=>t.value=g),onAddNew:v,onUpdate:w,workspaceId:c.workspaceId},null,8,["open","editing-connection","workspaceId"])])])}}}),qo={class:"w-full overflow-x-auto"},Uo=D({__name:"ManagementConnectionModal",props:{open:{},connections:{},workspaceId:{}},emits:["update:open"],setup(e,{emit:t}){const s=t;return(r,n)=>(S(),B(o(ve),{open:!!r.open,"onUpdate:open":n[0]||(n[0]=a=>s("update:open",a))},{default:l(()=>[i(o(we),{size:"preview"},{default:l(()=>[I("div",qo,[i(zo,{connections:r.connections,"workspace-id":r.workspaceId},null,8,["connections","workspace-id"])])]),_:1})]),_:1},8,["open"]))}}),Ee=D({__name:"AvatarFallback",props:{delayMs:{},asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,s=oe(()=>{const{class:r,...n}=t;return n});return(r,n)=>(S(),B(o(xo),$e({"data-slot":"avatar-fallback"},s.value,{class:o(z)("bg-muted flex size-full items-center justify-center rounded-full",t.class)}),{default:l(()=>[R(r.$slots,"default")]),_:3},16,["class"]))}}),ot=Symbol();function Le(){const e=Ne(so),t=Ne(ot);if(!e)throw new Error("useFormField should be used within <FormField>");const{name:s}=e,r=t,n={valid:lo(s),isDirty:ao(s),isTouched:io(s),error:ro(s)};return{id:r,name:s,formItemId:`${r}-form-item`,formDescriptionId:`${r}-form-item-description`,formMessageId:`${r}-form-item-message`,...n}}const ye=D({__name:"FormControl",setup(e){const{error:t,formItemId:s,formDescriptionId:r,formMessageId:n}=Le();return(a,v)=>(S(),B(o(Nt),{id:o(s),"data-slot":"form-control","aria-describedby":o(t)?`${o(r)} ${o(n)}`:`${o(r)}`,"aria-invalid":!!o(t)},{default:l(()=>[R(a.$slots,"default")]),_:3},8,["id","aria-describedby","aria-invalid"]))}}),ke=D({__name:"FormItem",props:{class:{}},setup(e){const t=e,s=Pt();return Ot(ot,s),(r,n)=>(S(),M("div",{"data-slot":"form-item",class:j(o(z)("grid gap-2",t.class))},[R(r.$slots,"default")],2))}}),be=D({__name:"FormLabel",props:{for:{},asChild:{type:Boolean},as:{},class:{}},setup(e){const t=e,{error:s,formItemId:r}=Le();return(n,a)=>(S(),B(o(Rt),{"data-slot":"form-label","data-error":!!o(s),class:j(o(z)("data-[error=true]:text-destructive-foreground",t.class)),for:o(r)},{default:l(()=>[R(n.$slots,"default")]),_:3},8,["data-error","class","for"]))}}),Ce=D({__name:"FormMessage",props:{class:{}},setup(e){const t=e,{name:s,formMessageId:r}=Le();return(n,a)=>(S(),B(o(co),{id:o(r),"data-slot":"form-message",as:"p",name:Ht(o(s)),class:j(o(z)("text-destructive-foreground text-sm",t.class))},null,8,["id","name","class"]))}}),nt=["lucide:badge","lucide:building-2","lucide:bone","lucide:book","hugeicons:ai-brain-05","lucide:circle-dashed","lucide:chess-bishop","lucide:chess-king","lucide:chess-pawn","lucide:chess-queen","lucide:chess-rook","lucide:fan","lucide:skull","lucide:ship-wheel","lucide:bug","lucide:hamburger"],pe=nt[0],jo=Ft({name:he({message:"Workspace name is required."}),desc:he().optional(),icon:he().default(pe)});function Vo(e){const t=Be(),s=uo({validationSchema:po(jo),initialValues:e.workspace?{name:e.workspace.name,desc:e.workspace.desc,icon:e.workspace.icon||pe}:{name:`My workspace ${(e==null?void 0:e.workspaceSeq)||0}`,icon:pe},name:"workspace-form"}),r=s.handleSubmit(n=>{!!e.workspace?(t.updateWorkspace({...e.workspace,desc:(n==null?void 0:n.desc)||void 0,name:n.name,icon:n.icon}),Pe("Workspace has been updated",{description:Q().toString()})):(t.createWorkspace({desc:(n==null?void 0:n.desc)||void 0,id:Qe(),name:n.name,icon:n.icon,createdAt:Q().toISOString()}),Pe("Workspace has been created",{description:Q().toString()})),e.onClose()});return{form:s,onSubmit:r}}const Ko={class:"grid grid-cols-8 gap-2"},st=D({__name:"CreateWorkspaceModal",props:{open:{},workspace:{},workspaceSeq:{}},emits:["update:open"],setup(e,{emit:t}){const s=e,r=t,n=()=>{r("update:open",!1)},{onSubmit:a}=Vo({workspace:s.workspace,workspaceSeq:s.workspaceSeq,onClose:n});return(v,w)=>{const u=L;return S(),B(o(ve),{open:!!v.open,"onUpdate:open":w[1]||(w[1]=d=>r("update:open",d))},{default:l(()=>[i(o(we),null,{default:l(()=>[i(o(Me),null,{default:l(()=>[i(o(De),null,{default:l(()=>[W(U(v.workspace?"Update workspace":"New workspace"),1)]),_:1})]),_:1}),I("form",{class:"space-y-4",onSubmit:w[0]||(w[0]=(...d)=>o(a)&&o(a)(...d))},[i(o(_e),{name:"icon"},{default:l(({componentField:d})=>[i(o(ke),null,{default:l(()=>[i(o(be),null,{default:l(()=>w[2]||(w[2]=[W("Icon")])),_:1}),i(o(ye),null,{default:l(()=>[i(o(mo),null,{default:l(()=>[i(o(fo),{"as-child":""},{default:l(()=>[i(o(Se),{id:"tour-workspace-icon",class:"cursor-pointer focus:ring-2 focus:ring-primary focus:outline-none",tabindex:"0",role:"button","aria-label":"Select workspace icon"},{default:l(()=>[i(o(Ee),null,{default:l(()=>[i(u,{name:d.modelValue||"hugeicons:folder-01",class:"size-5!"},null,8,["name"])]),_:2},1024)]),_:2},1024)]),_:2},1024),i(o(vo),{class:"w-full p-4"},{default:l(()=>[I("div",Ko,[(S(!0),M(Y,null,ne(o(nt),c=>(S(),B(o(Se),{onClick:E=>d.onChange(c),key:c,class:"cursor-pointer"},{default:l(()=>[i(o(Ee),null,{default:l(()=>[i(u,{name:c,class:"size-5!"},null,8,["name"])]),_:2},1024)]),_:2},1032,["onClick"]))),128))])]),_:2},1024)]),_:2},1024)]),_:2},1024),i(o(Ce))]),_:2},1024)]),_:1}),i(o(_e),{name:"name"},{default:l(({componentField:d})=>[i(o(ke),null,{default:l(()=>[i(o(be),{class:"gap-1"},{default:l(()=>w[3]||(w[3]=[W("Name "),I("span",{class:"text-red-500"},"*",-1)])),_:1}),i(o(ye),null,{default:l(()=>[i(o(Je),$e({id:"tour-workspace-name",type:"text",placeholder:"Workspace name"},d),null,16)]),_:2},1024),i(o(Ce))]),_:2},1024)]),_:1}),i(o(_e),{name:"desc"},{default:l(({componentField:d})=>[i(o(ke),null,{default:l(()=>[i(o(be),null,{default:l(()=>w[4]||(w[4]=[W("Description")])),_:1}),i(o(ye),null,{default:l(()=>[i(o(wo),$e({id:"tour-workspace-desc",placeholder:"Workspace description ..."},d),null,16)]),_:2},1024),i(o(Ce))]),_:2},1024)]),_:1}),i(o(Xe),{class:"mt-4"},{default:l(()=>[i(o(F),{id:"tour-workspace-create",type:"submit"},{default:l(()=>[W(U(v.workspace?"Update":"Create"),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,["open"])}}}),Yo=D({__name:"RestoreDataModal",props:{open:{type:Boolean}},emits:["update:open"],setup(e,{emit:t}){const s=t,r=O(null),n=()=>{var a;r.value&&!r.value.canClose()||((a=r.value)==null||a.resetState(),s("update:open",!1))};return(a,v)=>{const w=L;return S(),B(o(ve),{open:a.open,"onUpdate:open":n},{default:l(()=>[i(o(we),{class:"sm:max-w-2xl flex flex-col"},{default:l(()=>[i(o(Me),null,{default:l(()=>[i(o(De),{class:"flex items-center gap-2"},{default:l(()=>[i(w,{name:"hugeicons:file-download",class:"size-4!"}),v[0]||(v[0]=W(" Restore Data "))]),_:1})]),_:1}),i(o(zt),{ref_key:"importPanelRef",ref:r,layout:"modal","success-action-label":"Close","success-action-mode":"emit",onSuccessAction:n},null,512)]),_:1})]),_:1},8,["open"])}}});var ue={exports:{}},Go=ue.exports,Re;function Qo(){return Re||(Re=1,function(e,t){(function(s,r){e.exports=r()})(Go,function(){return function(s,r,n){s=s||{};var a=r.prototype,v={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function w(d,c,E,p){return a.fromToBase(d,c,E,p)}n.en.relativeTime=v,a.fromToBase=function(d,c,E,p,g){for(var f,$,b,C=E.$locale().relativeTime||v,_=s.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],m=_.length,x=0;x<m;x+=1){var y=_[x];y.d&&(f=p?n(d).diff(E,y.d,!0):E.diff(d,y.d,!0));var T=(s.rounding||Math.round)(Math.abs(f));if(b=f>0,T<=y.r||!y.r){T<=1&&x>0&&(y=_[x-1]);var P=C[y.l];g&&(T=g(""+T)),$=typeof P=="string"?P.replace("%d",T):P(T,c,y.l,b);break}}if(c)return $;var q=b?C.future:C.past;return typeof q=="function"?q($):q.replace("%s",$)},a.to=function(d,c){return w(d,c,this,!0)},a.from=function(d,c){return w(d,c,this)};var u=function(d){return d.$u?n.utc():n()};a.toNow=function(d){return this.to(u(this),d)},a.fromNow=function(d){return this.from(u(this),d)}}})}(ue)),ue.exports}var Jo=Qo();const Xo=qt(Jo);function Zo(e){const{createConnection:t,openWorkspaceWithConnection:s}=Ie(),r=Be(),n=Ae(),{checkAndConfirm:a}=Ve(),v=O(!1),w=O(!1),u=O(!1),d=O(),c=O(!1),E=()=>{w.value=!1,r.deleteWorkspace(e.workspace.id)},p=oe(()=>n.getConnectionsByWorkspaceId(e.workspace.id));return{workspaceStore:r,isOpenEditModal:v,isOpenDeleteModal:w,isOpenConnectionSelector:u,dropdownTriggerRef:d,isModalCreateConnectionOpen:c,connections:p,onConfirmDelete:E,onOpenWorkspace:()=>{var C;(C=e.onSelectWorkspace)==null||C.call(e,e.workspace.id)},onOpenConnectionSelector:()=>{u.value=!0},onOpenWorkspaceWithConnection:async C=>{u.value=!1;const _=p.value.find(m=>m.id===C);_&&!await a(_)||await s({connId:C,wsId:e.workspace.id})},handleAddConnection:C=>{t(C)}}}const en=D({__name:"DeleteWorkspaceModal",props:{open:{},onConfirm:{type:Function}},emits:["update:open"],setup(e,{emit:t}){const s=t;return(r,n)=>{const a=F,v=we;return S(),B(o(ve),{open:!!r.open,"onUpdate:open":n[0]||(n[0]=w=>s("update:open",w))},{default:l(()=>[i(v,null,{default:l(()=>[i(o(Me),null,{default:l(()=>[i(o(De),null,{default:l(()=>n[1]||(n[1]=[W("Delete workspace")])),_:1}),i(o(Ut),null,{default:l(()=>n[2]||(n[2]=[W(" Are you sure you want to delete this workspace? "),I("br",null,null,-1),W(" All data will be permanently deleted this action cannot be undone. ")])),_:1})]),_:1}),i(o(Xe),null,{default:l(()=>[i(a,{type:"submit",onClick:r.onConfirm,variant:"default"},{default:l(()=>n[3]||(n[3]=[W(" Delete ")])),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1},8,["open"])}}}),tn={class:"flex items-center space-x-2"},on={class:"space-y-1"},nn={class:"text-sm line-clamp-2 break-words break-all text-left"},sn={class:"flex items-center pt-2"},rn={class:"text-xs text-muted-foreground"},an={class:"flex items-center pt-2"},ln={key:0,class:"text-xs text-muted-foreground"},cn={key:1,class:"text-xs text-muted-foreground"},dn={class:"flex items-center pt-2"},un={class:"text-xs text-muted-foreground"},pn={class:"flex items-center gap-1"},mn={class:"flex items-center gap-2 min-w-0"},fn={class:"truncate"},vn={key:0,class:"flex items-center gap-1 ml-auto flex-shrink-0"},wn={key:1,class:"ml-auto text-xs text-muted-foreground"},gn=D({__name:"WorkspaceCard",props:{workspace:{},onOpenWorkspace:{type:Function}},emits:["onSelectWorkspace"],setup(e,{emit:t}){Q.extend(Xo);const s=je(),r=We(),n=oe(()=>Ze(r.public.sqlite3ConnectionsEnabled)),a=e,v=t,{workspaceStore:w,isOpenEditModal:u,isOpenDeleteModal:d,isOpenConnectionSelector:c,dropdownTriggerRef:E,isModalCreateConnectionOpen:p,connections:g,onConfirmDelete:f,onOpenWorkspace:$,onOpenConnectionSelector:b,onOpenWorkspaceWithConnection:C,handleAddConnection:_}=Zo({workspace:a.workspace,onSelectWorkspace:m=>v("onSelectWorkspace",m)});return(m,x)=>{const y=Ee,T=Se,P=ho,q=yo,X=_o,Z=go,G=Gt,ee=Yt;return S(),M(Y,null,[o(p)?(S(),B(o(tt),{key:0,open:o(p),"editing-connection":null,"onUpdate:open":x[0]||(x[0]=A=>p.value=A),onAddNew:o(_),workspaceId:m.workspace.id},null,8,["open","onAddNew","workspaceId"])):V("",!0),o(u)?(S(),B(st,{key:1,open:o(u),"onUpdate:open":x[1]||(x[1]=A=>te(u)?u.value=A:null),workspace:m.workspace,workspaceSeq:o(w).workspaces.length},null,8,["open","workspace","workspaceSeq"])):V("",!0),o(d)?(S(),B(en,{key:2,open:o(d),"onUpdate:open":x[2]||(x[2]=A=>te(d)?d.value=A:null),onConfirm:o(f)},null,8,["open","onConfirm"])):V("",!0),i(o(bo),{class:"gap-4 justify-between!"},{default:l(()=>[i(o(Po),{class:"flex justify-between px-4"},{default:l(()=>[I("div",tn,[i(T,null,{default:l(()=>[i(y,null,{default:l(()=>[i(o(L),{name:m.workspace.icon,class:"size-5!"},null,8,["name"])]),_:1})]),_:1}),I("div",null,[i(o(Oo),{class:"line-clamp-1"},{default:l(()=>[W(U(m.workspace.name),1)]),_:1})])]),i(Z,null,{default:l(()=>[i(P,null,{default:l(()=>[i(o(F),{size:"icon",variant:"ghost"},{default:l(()=>[i(o(L),{name:"hugeicons:more-vertical-circle-01",class:"size-4!"})]),_:1})]),_:1}),i(X,null,{default:l(()=>[i(q,{class:"cursor-pointer flex items-center",onClick:x[3]||(x[3]=A=>u.value=!0)},{default:l(()=>[i(o(L),{name:"hugeicons:pencil-edit-02",class:"size-4! min-w-4"}),x[9]||(x[9]=W(" Edit workspace "))]),_:1}),i(q,{class:"cursor-pointer flex items-center",disabled:""},{default:l(()=>[i(o(L),{name:"hugeicons:link-04",class:"size-4! min-w-4"}),x[10]||(x[10]=W(" Invite "))]),_:1}),i(q,{class:"cursor-pointer flex items-center",onClick:x[4]||(x[4]=A=>d.value=!0)},{default:l(()=>[i(o(L),{name:"hugeicons:delete-02",class:"size-4! min-w-4"}),x[11]||(x[11]=W(" Delete workspace "))]),_:1})]),_:1})]),_:1})]),_:1}),i(o(ko),{class:"grid gap-4 overflow-hidden px-4"},{default:l(()=>[I("div",on,[I("p",nn,U(m.workspace.desc),1),I("div",sn,[i(o(L),{name:"hugeicons:connect",class:"mr-2 h-4 w-4 opacity-70"}),I("span",rn," Connection : "+U(o(g).length),1)]),I("div",an,[i(o(L),{name:"hugeicons:clock-05",class:"mr-2 h-4 w-4 opacity-70"}),m.workspace.lastOpened?(S(),M("span",ln," Last opened : "+U(o(Q)(m.workspace.lastOpened).fromNow()),1)):(S(),M("span",cn," Last opened : -/- "))]),I("div",dn,[i(o(L),{name:"hugeicons:clock-01",class:"mr-2 h-4 w-4 opacity-70"}),I("span",un," Created : "+U(o(Q)(m.workspace.createdAt).fromNow()),1)])])]),_:1}),i(o(No),{class:"px-4"},{default:l(()=>[i(o(jt),{open:o(c),"onUpdate:open":x[8]||(x[8]=A=>te(c)?c.value=A:null)},{default:l(()=>[i(o(F),{id:`tour-open-workspace-${m.workspace.id}`,ref_key:"dropdownTriggerRef",ref:E,variant:"default",class:"w-full flex items-center justify-between",onClick:x[6]||(x[6]=A=>o($)()),size:"sm"},{default:l(()=>[I("div",pn,[i(o(L),{name:"hugeicons:square-arrow-up-right",class:"h-4 w-4"}),x[12]||(x[12]=W(" Open workspace "))]),i(o(F),{size:"iconSm",variant:"ghost",onClick:x[5]||(x[5]=Vt(A=>o(b)(),["stop"]))},{default:l(()=>[i(o(L),{name:"hugeicons:arrow-down-01",class:"size-5!"})]),_:1})]),_:1},8,["id"]),i(o(Kt),{reference:o(E)},{default:l(()=>[i(ee,null,{default:l(()=>[I("div",{class:"flex px-2 py-0.5 h-8 hover:bg-muted rounded-md font-normal text-sm items-center gap-1 cursor-pointer",onClick:x[7]||(x[7]=A=>p.value=!0)},[i(o(L),{name:"hugeicons:plus-sign"}),x[13]||(x[13]=W(" Add new connection "))]),o(g).length?(S(),B(G,{key:0})):V("",!0),(S(!0),M(Y,null,ne(o(g),A=>(S(),B(o(Qt),{class:"cursor-pointer",value:A.id,key:A.id,disabled:o(se)(A,o(n)),onSelect:K=>o(C)(A.id)},{default:l(()=>{var K;return[I("div",mn,[(S(),B(Ye((K=o(et)(A.type))==null?void 0:K.icon),{class:"size-4! shrink-0"})),I("span",fn,U(A.name),1),(A.tagIds??[]).length?(S(),M("div",vn,[(S(!0),M(Y,null,ne(o(s).getTagsByIds(A.tagIds??[]),ie=>(S(),B(o(Ge),{key:ie.id,tag:ie},null,8,["tag"]))),128))])):V("",!0),o(se)(A,o(n))?(S(),M("span",wn," Disabled ")):V("",!0)])]}),_:2},1032,["value","disabled","onSelect"]))),128))]),_:1})]),_:1},8,["reference"])]),_:1},8,["open"])]),_:1})]),_:1})],64)}}}),hn={class:"flex items-center justify-between mt-2"},_n={class:"container flex flex-col items-start gap-1 py-2"},yn={class:"text-3xl flex items-center gap-2 font-bold leading-tight tracking-tighter lg:leading-[1.1]"},kn={class:"flex items-center gap-2 shrink-0"},bn=D({__name:"WorkspaceHeader",props:{isShowButtonCreate:{type:Boolean},isShowButtonRestore:{type:Boolean}},emits:["create","restore"],setup(e,{emit:t}){const s=t;return(r,n)=>{const a=L;return S(),M("div",hn,[I("div",_n,[I("h1",yn,[n[2]||(n[2]=W(" Hello ")),i(a,{name:"hugeicons:waving-hand-01"})]),n[3]||(n[3]=I("p",{class:"max-w-2xl text-lg font-light text-foreground"}," Welcome to your workspaces ",-1))]),I("div",kn,[r.isShowButtonRestore?(S(),B(o(F),{key:0,type:"button",variant:"outline",size:"sm",onClick:n[0]||(n[0]=v=>s("restore"))},{default:l(()=>[i(a,{name:"lucide:upload"}),n[4]||(n[4]=W(" Restore Data "))]),_:1})):V("",!0),r.isShowButtonCreate?(S(),B(o(F),{key:1,id:"tour-new-workspace-btn",variant:"outline",size:"sm",onClick:n[1]||(n[1]=v=>s("create"))},{default:l(()=>[i(a,{name:"lucide:plus"}),n[5]||(n[5]=W(" New Workspace "))]),_:1})):V("",!0)])])}}});let Te={},rt;function xe(e={}){Te={animate:!0,allowClose:!0,overlayClickBehavior:"close",overlayOpacity:.7,smoothScroll:!1,disableActiveInteraction:!1,showProgress:!1,stagePadding:10,stageRadius:5,popoverOffset:10,showButtons:["next","previous","close"],disableButtons:[],overlayColor:"#000",...e}}function h(e){return e?Te[e]:Te}function Cn(e){rt=e}function H(){return rt}let me={};function ce(e,t){me[e]=t}function J(e){var t;(t=me[e])==null||t.call(me)}function xn(){me={}}function de(e,t,s,r){return(e/=r/2)<1?s/2*e*e+t:-s/2*(--e*(e-2)-1)+t}function it(e){const t='a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])';return e.flatMap(s=>{const r=s.matches(t),n=Array.from(s.querySelectorAll(t));return[...r?[s]:[],...n]}).filter(s=>getComputedStyle(s).pointerEvents!=="none"&&En(s))}function at(e){if(!e||Sn(e))return;const t=h("smoothScroll"),s=e.offsetHeight>window.innerHeight;e.scrollIntoView({behavior:!t||$n(e)?"auto":"smooth",inline:"center",block:s?"start":"center"})}function $n(e){if(!e||!e.parentElement)return;const t=e.parentElement;return t.scrollHeight>t.clientHeight}function Sn(e){const t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&t.right<=(window.innerWidth||document.documentElement.clientWidth)}function En(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)}let fe={};function N(e,t){fe[e]=t}function k(e){return e?fe[e]:fe}function He(){fe={}}function Tn(e,t,s,r){let n=k("__activeStagePosition");const a=n||s.getBoundingClientRect(),v=r.getBoundingClientRect(),w=de(e,a.x,v.x-a.x,t),u=de(e,a.y,v.y-a.y,t),d=de(e,a.width,v.width-a.width,t),c=de(e,a.height,v.height-a.height,t);n={x:w,y:u,width:d,height:c},ct(n),N("__activeStagePosition",n)}function lt(e){if(!e)return;const t=e.getBoundingClientRect(),s={x:t.x,y:t.y,width:t.width,height:t.height};N("__activeStagePosition",s),ct(s)}function In(){const e=k("__activeStagePosition"),t=k("__overlaySvg");if(!e)return;if(!t){console.warn("No stage svg found.");return}const s=window.innerWidth,r=window.innerHeight;t.setAttribute("viewBox",`0 0 ${s} ${r}`)}function Wn(e){const t=An(e);document.body.appendChild(t),pt(t,s=>{s.target.tagName==="path"&&J("overlayClick")}),N("__overlaySvg",t)}function ct(e){const t=k("__overlaySvg");if(!t){Wn(e);return}const s=t.firstElementChild;if((s==null?void 0:s.tagName)!=="path")throw new Error("no path element found in stage svg");s.setAttribute("d",dt(e))}function An(e){const t=window.innerWidth,s=window.innerHeight,r=document.createElementNS("http://www.w3.org/2000/svg","svg");r.classList.add("driver-overlay","driver-overlay-animated"),r.setAttribute("viewBox",`0 0 ${t} ${s}`),r.setAttribute("xmlSpace","preserve"),r.setAttribute("xmlnsXlink","http://www.w3.org/1999/xlink"),r.setAttribute("version","1.1"),r.setAttribute("preserveAspectRatio","xMinYMin slice"),r.style.fillRule="evenodd",r.style.clipRule="evenodd",r.style.strokeLinejoin="round",r.style.strokeMiterlimit="2",r.style.zIndex="10000",r.style.position="fixed",r.style.top="0",r.style.left="0",r.style.width="100%",r.style.height="100%";const n=document.createElementNS("http://www.w3.org/2000/svg","path");return n.setAttribute("d",dt(e)),n.style.fill=h("overlayColor")||"rgb(0,0,0)",n.style.opacity=`${h("overlayOpacity")}`,n.style.pointerEvents="auto",n.style.cursor="auto",r.appendChild(n),r}function dt(e){const t=window.innerWidth,s=window.innerHeight,r=h("stagePadding")||0,n=h("stageRadius")||0,a=e.width+r*2,v=e.height+r*2,w=Math.min(n,a/2,v/2),u=Math.floor(Math.max(w,0)),d=e.x-r+u,c=e.y-r,E=a-u*2,p=v-u*2;return`M${t},0L0,0L0,${s}L${t},${s}L${t},0Z
2
2
  M${d},${c} h${E} a${u},${u} 0 0 1 ${u},${u} v${p} a${u},${u} 0 0 1 -${u},${u} h-${E} a${u},${u} 0 0 1 -${u},-${u} v-${p} a${u},${u} 0 0 1 ${u},-${u} z`}function Bn(){const e=k("__overlaySvg");e&&e.remove()}function Mn(){const e=document.getElementById("driver-dummy-element");if(e)return e;let t=document.createElement("div");return t.id="driver-dummy-element",t.style.width="0",t.style.height="0",t.style.pointerEvents="none",t.style.opacity="0",t.style.position="fixed",t.style.top="50%",t.style.left="50%",document.body.appendChild(t),t}function Fe(e){const{element:t}=e;let s=typeof t=="function"?t():typeof t=="string"?document.querySelector(t):t;s||(s=Mn()),Ln(s,e)}function Dn(){const e=k("__activeElement"),t=k("__activeStep");e&&(lt(e),In(),ft(e,t))}function Ln(e,t){var s;const r=Date.now(),n=k("__activeStep"),a=k("__activeElement")||e,v=!a||a===e,w=e.id==="driver-dummy-element",u=a.id==="driver-dummy-element",d=h("animate"),c=t.onHighlightStarted||h("onHighlightStarted"),E=(t==null?void 0:t.onHighlighted)||h("onHighlighted"),p=(n==null?void 0:n.onDeselected)||h("onDeselected"),g=h(),f=k();!v&&p&&p(u?void 0:a,n,{config:g,state:f,driver:H()}),c&&c(w?void 0:e,t,{config:g,state:f,driver:H()});const $=!v&&d;let b=!1;Hn(),N("previousStep",n),N("previousElement",a),N("activeStep",t),N("activeElement",e);const C=()=>{if(k("__transitionCallback")!==C)return;const _=Date.now()-r,m=400-_<=400/2;t.popover&&m&&!b&&$&&(ze(e,t),b=!0),h("animate")&&_<400?Tn(_,400,a,e):(lt(e),E&&E(w?void 0:e,t,{config:h(),state:k(),driver:H()}),N("__transitionCallback",void 0),N("__previousStep",n),N("__previousElement",a),N("__activeStep",t),N("__activeElement",e)),window.requestAnimationFrame(C)};N("__transitionCallback",C),window.requestAnimationFrame(C),at(e),!$&&t.popover&&ze(e,t),a.classList.remove("driver-active-element","driver-no-interaction"),a.removeAttribute("aria-haspopup"),a.removeAttribute("aria-expanded"),a.removeAttribute("aria-controls"),((s=t.disableActiveInteraction)!=null?s:h("disableActiveInteraction"))&&e.classList.add("driver-no-interaction"),e.classList.add("driver-active-element"),e.setAttribute("aria-haspopup","dialog"),e.setAttribute("aria-expanded","true"),e.setAttribute("aria-controls","driver-popover-content")}function Nn(){var e;(e=document.getElementById("driver-dummy-element"))==null||e.remove(),document.querySelectorAll(".driver-active-element").forEach(t=>{t.classList.remove("driver-active-element","driver-no-interaction"),t.removeAttribute("aria-haspopup"),t.removeAttribute("aria-expanded"),t.removeAttribute("aria-controls")})}function re(){const e=k("__resizeTimeout");e&&window.cancelAnimationFrame(e),N("__resizeTimeout",window.requestAnimationFrame(Dn))}function Pn(e){var t;if(!k("isInitialized")||!(e.key==="Tab"||e.keyCode===9))return;const s=k("__activeElement"),r=(t=k("popover"))==null?void 0:t.wrapper,n=it([...r?[r]:[],...s?[s]:[]]),a=n[0],v=n[n.length-1];if(e.preventDefault(),e.shiftKey){const w=n[n.indexOf(document.activeElement)-1]||v;w==null||w.focus()}else{const w=n[n.indexOf(document.activeElement)+1]||a;w==null||w.focus()}}function ut(e){var t;((t=h("allowKeyboardControl"))==null||t)&&(e.key==="Escape"?J("escapePress"):e.key==="ArrowRight"?J("arrowRightPress"):e.key==="ArrowLeft"&&J("arrowLeftPress"))}function pt(e,t,s){const r=(n,a)=>{const v=n.target;e.contains(v)&&((!s||s(v))&&(n.preventDefault(),n.stopPropagation(),n.stopImmediatePropagation()),a==null||a(n))};document.addEventListener("pointerdown",r,!0),document.addEventListener("mousedown",r,!0),document.addEventListener("pointerup",r,!0),document.addEventListener("mouseup",r,!0),document.addEventListener("click",n=>{r(n,t)},!0)}function On(){window.addEventListener("keyup",ut,!1),window.addEventListener("keydown",Pn,!1),window.addEventListener("resize",re),window.addEventListener("scroll",re)}function Rn(){window.removeEventListener("keyup",ut),window.removeEventListener("resize",re),window.removeEventListener("scroll",re)}function Hn(){const e=k("popover");e&&(e.wrapper.style.display="none")}function ze(e,t){var s,r;let n=k("popover");n&&document.body.removeChild(n.wrapper),n=zn(),document.body.appendChild(n.wrapper);const{title:a,description:v,showButtons:w,disableButtons:u,showProgress:d,nextBtnText:c=h("nextBtnText")||"Next &rarr;",prevBtnText:E=h("prevBtnText")||"&larr; Previous",progressText:p=h("progressText")||"{current} of {total}"}=t.popover||{};n.nextButton.innerHTML=c,n.previousButton.innerHTML=E,n.progress.innerHTML=p,a?(n.title.innerHTML=a,n.title.style.display="block"):n.title.style.display="none",v?(n.description.innerHTML=v,n.description.style.display="block"):n.description.style.display="none";const g=w||h("showButtons"),f=d||h("showProgress")||!1,$=(g==null?void 0:g.includes("next"))||(g==null?void 0:g.includes("previous"))||f;n.closeButton.style.display=g.includes("close")?"block":"none",$?(n.footer.style.display="flex",n.progress.style.display=f?"block":"none",n.nextButton.style.display=g.includes("next")?"block":"none",n.previousButton.style.display=g.includes("previous")?"block":"none"):n.footer.style.display="none";const b=u||h("disableButtons")||[];b!=null&&b.includes("next")&&(n.nextButton.disabled=!0,n.nextButton.classList.add("driver-popover-btn-disabled")),b!=null&&b.includes("previous")&&(n.previousButton.disabled=!0,n.previousButton.classList.add("driver-popover-btn-disabled")),b!=null&&b.includes("close")&&(n.closeButton.disabled=!0,n.closeButton.classList.add("driver-popover-btn-disabled"));const C=n.wrapper;C.style.display="block",C.style.left="",C.style.top="",C.style.bottom="",C.style.right="",C.id="driver-popover-content",C.setAttribute("role","dialog"),C.setAttribute("aria-labelledby","driver-popover-title"),C.setAttribute("aria-describedby","driver-popover-description");const _=n.arrow;_.className="driver-popover-arrow";const m=((s=t.popover)==null?void 0:s.popoverClass)||h("popoverClass")||"";C.className=`driver-popover ${m}`.trim(),pt(n.wrapper,P=>{var q,X,Z;const G=P.target,ee=((q=t.popover)==null?void 0:q.onNextClick)||h("onNextClick"),A=((X=t.popover)==null?void 0:X.onPrevClick)||h("onPrevClick"),K=((Z=t.popover)==null?void 0:Z.onCloseClick)||h("onCloseClick");if(G.closest(".driver-popover-next-btn"))return ee?ee(e,t,{config:h(),state:k(),driver:H()}):J("nextClick");if(G.closest(".driver-popover-prev-btn"))return A?A(e,t,{config:h(),state:k(),driver:H()}):J("prevClick");if(G.closest(".driver-popover-close-btn"))return K?K(e,t,{config:h(),state:k(),driver:H()}):J("closeClick")},P=>!(n!=null&&n.description.contains(P))&&!(n!=null&&n.title.contains(P))&&typeof P.className=="string"&&P.className.includes("driver-popover")),N("popover",n);const x=((r=t.popover)==null?void 0:r.onPopoverRender)||h("onPopoverRender");x&&x(n,{config:h(),state:k(),driver:H()}),ft(e,t),at(C);const y=e.classList.contains("driver-dummy-element"),T=it([C,...y?[]:[e]]);T.length>0&&T[0].focus()}function mt(){const e=k("popover");if(!(e!=null&&e.wrapper))return;const t=e.wrapper.getBoundingClientRect(),s=h("stagePadding")||0,r=h("popoverOffset")||0;return{width:t.width+s+r,height:t.height+s+r,realWidth:t.width,realHeight:t.height}}function qe(e,t){const{elementDimensions:s,popoverDimensions:r,popoverPadding:n,popoverArrowDimensions:a}=t;return e==="start"?Math.max(Math.min(s.top-n,window.innerHeight-r.realHeight-a.width),a.width):e==="end"?Math.max(Math.min(s.top-(r==null?void 0:r.realHeight)+s.height+n,window.innerHeight-(r==null?void 0:r.realHeight)-a.width),a.width):e==="center"?Math.max(Math.min(s.top+s.height/2-(r==null?void 0:r.realHeight)/2,window.innerHeight-(r==null?void 0:r.realHeight)-a.width),a.width):0}function Ue(e,t){const{elementDimensions:s,popoverDimensions:r,popoverPadding:n,popoverArrowDimensions:a}=t;return e==="start"?Math.max(Math.min(s.left-n,window.innerWidth-r.realWidth-a.width),a.width):e==="end"?Math.max(Math.min(s.left-(r==null?void 0:r.realWidth)+s.width+n,window.innerWidth-(r==null?void 0:r.realWidth)-a.width),a.width):e==="center"?Math.max(Math.min(s.left+s.width/2-(r==null?void 0:r.realWidth)/2,window.innerWidth-(r==null?void 0:r.realWidth)-a.width),a.width):0}function ft(e,t){const s=k("popover");if(!s)return;const{align:r="start",side:n="left"}=(t==null?void 0:t.popover)||{},a=r,v=e.id==="driver-dummy-element"?"over":n,w=h("stagePadding")||0,u=mt(),d=s.arrow.getBoundingClientRect(),c=e.getBoundingClientRect(),E=c.top-u.height;let p=E>=0;const g=window.innerHeight-(c.bottom+u.height);let f=g>=0;const $=c.left-u.width;let b=$>=0;const C=window.innerWidth-(c.right+u.width);let _=C>=0;const m=!p&&!f&&!b&&!_;let x=v;if(v==="top"&&p?_=b=f=!1:v==="bottom"&&f?_=b=p=!1:v==="left"&&b?_=p=f=!1:v==="right"&&_&&(b=p=f=!1),v==="over"){const y=window.innerWidth/2-u.realWidth/2,T=window.innerHeight/2-u.realHeight/2;s.wrapper.style.left=`${y}px`,s.wrapper.style.right="auto",s.wrapper.style.top=`${T}px`,s.wrapper.style.bottom="auto"}else if(m){const y=window.innerWidth/2-(u==null?void 0:u.realWidth)/2,T=10;s.wrapper.style.left=`${y}px`,s.wrapper.style.right="auto",s.wrapper.style.bottom=`${T}px`,s.wrapper.style.top="auto"}else if(b){const y=Math.min($,window.innerWidth-(u==null?void 0:u.realWidth)-d.width),T=qe(a,{elementDimensions:c,popoverDimensions:u,popoverPadding:w,popoverArrowDimensions:d});s.wrapper.style.left=`${y}px`,s.wrapper.style.top=`${T}px`,s.wrapper.style.bottom="auto",s.wrapper.style.right="auto",x="left"}else if(_){const y=Math.min(C,window.innerWidth-(u==null?void 0:u.realWidth)-d.width),T=qe(a,{elementDimensions:c,popoverDimensions:u,popoverPadding:w,popoverArrowDimensions:d});s.wrapper.style.right=`${y}px`,s.wrapper.style.top=`${T}px`,s.wrapper.style.bottom="auto",s.wrapper.style.left="auto",x="right"}else if(p){const y=Math.min(E,window.innerHeight-u.realHeight-d.width);let T=Ue(a,{elementDimensions:c,popoverDimensions:u,popoverPadding:w,popoverArrowDimensions:d});s.wrapper.style.top=`${y}px`,s.wrapper.style.left=`${T}px`,s.wrapper.style.bottom="auto",s.wrapper.style.right="auto",x="top"}else if(f){const y=Math.min(g,window.innerHeight-(u==null?void 0:u.realHeight)-d.width);let T=Ue(a,{elementDimensions:c,popoverDimensions:u,popoverPadding:w,popoverArrowDimensions:d});s.wrapper.style.left=`${T}px`,s.wrapper.style.bottom=`${y}px`,s.wrapper.style.top="auto",s.wrapper.style.right="auto",x="bottom"}m?s.arrow.classList.add("driver-popover-arrow-none"):Fn(a,x,e)}function Fn(e,t,s){const r=k("popover");if(!r)return;const n=s.getBoundingClientRect(),a=mt(),v=r.arrow,w=a.width,u=window.innerWidth,d=n.width,c=n.left,E=a.height,p=window.innerHeight,g=n.top,f=n.height;v.className="driver-popover-arrow";let $=t,b=e;if(t==="top"?(c+d<=0?($="right",b="end"):c+d-w<=0&&($="top",b="start"),c>=u?($="left",b="end"):c+w>=u&&($="top",b="end")):t==="bottom"?(c+d<=0?($="right",b="start"):c+d-w<=0&&($="bottom",b="start"),c>=u?($="left",b="start"):c+w>=u&&($="bottom",b="end")):t==="left"?(g+f<=0?($="bottom",b="end"):g+f-E<=0&&($="left",b="start"),g>=p?($="top",b="end"):g+E>=p&&($="left",b="end")):t==="right"&&(g+f<=0?($="bottom",b="start"):g+f-E<=0&&($="right",b="start"),g>=p?($="top",b="start"):g+E>=p&&($="right",b="end")),!$)v.classList.add("driver-popover-arrow-none");else{v.classList.add(`driver-popover-arrow-side-${$}`),v.classList.add(`driver-popover-arrow-align-${b}`);const C=s.getBoundingClientRect(),_=v.getBoundingClientRect(),m=h("stagePadding")||0,x=C.left-m<window.innerWidth&&C.right+m>0&&C.top-m<window.innerHeight&&C.bottom+m>0;t==="bottom"&&x&&(_.x>C.x&&_.x+_.width<C.x+C.width?r.wrapper.style.transform="translateY(0)":(v.classList.remove(`driver-popover-arrow-align-${b}`),v.classList.add("driver-popover-arrow-none"),r.wrapper.style.transform=`translateY(-${m/2}px)`))}}function zn(){const e=document.createElement("div");e.classList.add("driver-popover");const t=document.createElement("div");t.classList.add("driver-popover-arrow");const s=document.createElement("header");s.id="driver-popover-title",s.classList.add("driver-popover-title"),s.style.display="none",s.innerText="Popover Title";const r=document.createElement("div");r.id="driver-popover-description",r.classList.add("driver-popover-description"),r.style.display="none",r.innerText="Popover description is here";const n=document.createElement("button");n.type="button",n.classList.add("driver-popover-close-btn"),n.setAttribute("aria-label","Close"),n.innerHTML="&times;";const a=document.createElement("footer");a.classList.add("driver-popover-footer");const v=document.createElement("span");v.classList.add("driver-popover-progress-text"),v.innerText="";const w=document.createElement("span");w.classList.add("driver-popover-navigation-btns");const u=document.createElement("button");u.type="button",u.classList.add("driver-popover-prev-btn"),u.innerHTML="&larr; Previous";const d=document.createElement("button");return d.type="button",d.classList.add("driver-popover-next-btn"),d.innerHTML="Next &rarr;",w.appendChild(u),w.appendChild(d),a.appendChild(v),a.appendChild(w),e.appendChild(n),e.appendChild(t),e.appendChild(s),e.appendChild(r),e.appendChild(a),{wrapper:e,arrow:t,title:s,description:r,footer:a,previousButton:u,nextButton:d,closeButton:n,footerButtons:w,progress:v}}function qn(){var e;const t=k("popover");t&&((e=t.wrapper.parentElement)==null||e.removeChild(t.wrapper))}function Un(e={}){xe(e);function t(){h("allowClose")&&c()}function s(){const p=h("overlayClickBehavior");if(h("allowClose")&&p==="close"){c();return}if(typeof p=="function"){const g=k("__activeStep"),f=k("__activeElement");p(f,g,{config:h(),state:k(),driver:H()});return}p==="nextStep"&&r()}function r(){const p=k("activeIndex"),g=h("steps")||[];if(typeof p>"u")return;const f=p+1;g[f]?d(f):c()}function n(){const p=k("activeIndex"),g=h("steps")||[];if(typeof p>"u")return;const f=p-1;g[f]?d(f):c()}function a(p){(h("steps")||[])[p]?d(p):c()}function v(){var p;if(k("__transitionCallback"))return;const g=k("activeIndex"),f=k("__activeStep"),$=k("__activeElement");if(typeof g>"u"||typeof f>"u"||typeof k("activeIndex")>"u")return;const b=((p=f.popover)==null?void 0:p.onPrevClick)||h("onPrevClick");if(b)return b($,f,{config:h(),state:k(),driver:H()});n()}function w(){var p;if(k("__transitionCallback"))return;const g=k("activeIndex"),f=k("__activeStep"),$=k("__activeElement");if(typeof g>"u"||typeof f>"u")return;const b=((p=f.popover)==null?void 0:p.onNextClick)||h("onNextClick");if(b)return b($,f,{config:h(),state:k(),driver:H()});r()}function u(){k("isInitialized")||(N("isInitialized",!0),document.body.classList.add("driver-active",h("animate")?"driver-fade":"driver-simple"),On(),ce("overlayClick",s),ce("escapePress",t),ce("arrowLeftPress",v),ce("arrowRightPress",w))}function d(p=0){var g,f,$,b,C,_,m,x;const y=h("steps");if(!y){console.error("No steps to drive through"),c();return}if(!y[p]){c();return}N("__activeOnDestroyed",document.activeElement),N("activeIndex",p);const T=y[p],P=y[p+1],q=y[p-1],X=((g=T.popover)==null?void 0:g.doneBtnText)||h("doneBtnText")||"Done",Z=h("allowClose"),G=typeof((f=T.popover)==null?void 0:f.showProgress)<"u"?($=T.popover)==null?void 0:$.showProgress:h("showProgress"),ee=(((b=T.popover)==null?void 0:b.progressText)||h("progressText")||"{{current}} of {{total}}").replace("{{current}}",`${p+1}`).replace("{{total}}",`${y.length}`),A=((C=T.popover)==null?void 0:C.showButtons)||h("showButtons"),K=["next","previous",...Z?["close"]:[]].filter(gt=>!(A!=null&&A.length)||A.includes(gt)),ie=((_=T.popover)==null?void 0:_.onNextClick)||h("onNextClick"),vt=((m=T.popover)==null?void 0:m.onPrevClick)||h("onPrevClick"),wt=((x=T.popover)==null?void 0:x.onCloseClick)||h("onCloseClick");Fe({...T,popover:{showButtons:K,nextBtnText:P?void 0:X,disableButtons:[...q?[]:["previous"]],showProgress:G,progressText:ee,onNextClick:ie||(()=>{P?d(p+1):c()}),onPrevClick:vt||(()=>{d(p-1)}),onCloseClick:wt||(()=>{c()}),...(T==null?void 0:T.popover)||{}}})}function c(p=!0){const g=k("__activeElement"),f=k("__activeStep"),$=k("__activeOnDestroyed"),b=h("onDestroyStarted");if(p&&b){const m=!g||(g==null?void 0:g.id)==="driver-dummy-element";b(m?void 0:g,f,{config:h(),state:k(),driver:H()});return}const C=(f==null?void 0:f.onDeselected)||h("onDeselected"),_=h("onDestroyed");if(document.body.classList.remove("driver-active","driver-fade","driver-simple"),Rn(),qn(),Nn(),Bn(),xn(),He(),g&&f){const m=g.id==="driver-dummy-element";C&&C(m?void 0:g,f,{config:h(),state:k(),driver:H()}),_&&_(m?void 0:g,f,{config:h(),state:k(),driver:H()})}$&&$.focus()}const E={isActive:()=>k("isInitialized")||!1,refresh:re,drive:(p=0)=>{u(),d(p)},setConfig:xe,setSteps:p=>{He(),xe({...h(),steps:p})},getConfig:h,getState:k,getActiveIndex:()=>k("activeIndex"),isFirstStep:()=>k("activeIndex")===0,isLastStep:()=>{const p=h("steps")||[],g=k("activeIndex");return g!==void 0&&g===p.length-1},getActiveStep:()=>k("activeStep"),getActiveElement:()=>k("activeElement"),getPreviousElement:()=>k("previousElement"),getPreviousStep:()=>k("previousStep"),moveNext:r,movePrevious:n,moveTo:a,hasNextStep:()=>{const p=h("steps")||[],g=k("activeIndex");return g!==void 0&&!!p[g+1]},hasPreviousStep:()=>{const p=h("steps")||[],g=k("activeIndex");return g!==void 0&&!!p[g-1]},highlight:p=>{u(),Fe({...p,popover:p.popover?{showButtons:[],showProgress:!1,progressText:"",...p.popover}:void 0})},destroy:()=>{c(!1)}};return Cn(E),E}function jn({isOpenCreateWSModal:e,isOpenSelectConnectionModal:t,workspaceId:s,workspaceStore:r,onSelectWorkspace:n}){const a=Jt(Xt.HAS_SEEN_TOUR,!1,Zt());return{startTour:()=>{a.value=!0;const w=document.getElementById("tour-new-workspace-btn")?"#tour-new-workspace-btn":"#tour-new-workspace-btn-empty",d=Un({popoverClass:"driver-theme-system",showProgress:!0,allowClose:!0,steps:[{popover:{title:"Welcome to OrcaQ!",description:"Let us take a quick tour to get you familiar with the app."}},{element:"#tour-workspace-area",popover:{title:"Workspaces",description:"This is where you manage your workspaces."}},{element:w,popover:{title:"Create Workspace",description:"Click here to create a new workspace.",onNextClick:()=>{e.value=!0,setTimeout(()=>d.moveNext(),500)}}},{element:"#tour-workspace-icon",popover:{title:"Workspace Icon",description:"Choose an icon to identify your workspace."}},{element:"#tour-workspace-name",popover:{title:"Workspace Name",description:"Enter a unique name for your workspace."}},{element:"#tour-workspace-desc",popover:{title:"Workspace Description",description:"Provide a brief description."}},{element:"#tour-workspace-create",popover:{title:"Save Workspace",description:"After filling out the form, click here to create it.",onNextClick:()=>{const c=Qe();r.createWorkspace({desc:"My first workspace created from tour",id:c,name:"My Tour Workspace",icon:pe,createdAt:Q().toISOString()}),e.value=!1,s.value=c,setTimeout(()=>{d.moveNext()},600)}}},{element:document.getElementById(`tour-open-workspace-${s.value}`)||"#tour-workspace-area",popover:{title:"New Workspace Card",description:'Your new workspace appears here. Click "Open workspace" to manage its connections.',onNextClick:()=>{const c=document.getElementById(`tour-open-workspace-${s.value}`);c?c.click():(n(s.value),t.value=!0),setTimeout(()=>{d.moveNext()},800)}}},{element:"#tour-add-connection-btn",popover:{title:"Add Connection",description:"Inside a workspace, you can manage and add database connections.",onNextClick:()=>{var c;(c=document.getElementById("tour-add-connection-btn"))==null||c.click(),setTimeout(()=>d.moveNext(),600)}}},{element:"#tour-database-type-cards",popover:{title:"Select Database",description:"First, choose the database engine you want to connect to."}},{element:"#tour-database-type-next",popover:{title:"Next Step",description:"Click Next after selecting your database engine.",onNextClick:()=>{const c=document.querySelector("#tour-database-type-cards > div");c?(c.click(),setTimeout(()=>{var E;(E=document.getElementById("tour-database-type-next"))==null||E.click(),setTimeout(()=>d.moveNext(),600)},100)):d.moveNext()}}},{element:"#tour-connection-method-tabs",popover:{title:"Connection Method",description:"You can choose between connection string or form based setup."}},{element:"#tour-connection-string-tab",popover:{title:"Connection String Method",description:"Click here to use the connection string option.",onNextClick:()=>{var c;(c=document.getElementById("tour-connection-string-tab"))==null||c.click(),setTimeout(()=>d.moveNext(),300)}}},{element:"#connection-string",popover:{title:"Enter URI",description:"Paste your database URI here for quick access."}},{element:"#tour-connection-form-tab",popover:{title:"Connection Form Method",description:"Or click here to manually enter host, port, username, and password.",onNextClick:()=>{var c;(c=document.getElementById("tour-connection-form-tab"))==null||c.click(),setTimeout(()=>d.moveNext(),300)}}},{element:"#tour-create-update-connection-btn",popover:{title:"Create Connection",description:"After filling out the connection details, click here to save it."}},{popover:{title:"Tour Completed!",description:"You are now ready to use OrcaQ! Happy querying.",onNextClick:()=>{d.destroy()}}}],onDestroyStarted:()=>{e.value=!1,t.value=!1,document.querySelectorAll('[role="dialog"]').forEach(E=>{const p=E.querySelector('button[aria-label="Close"]');p&&p.click()}),document.dispatchEvent(new KeyboardEvent("keydown",{key:"Escape"})),d.destroy()}});d.drive()}}}function Vn(){const e=Be(),t=Ae(),s=eo(""),r=O(""),n=to(s,oo),a=oe(()=>(e.workspaces||[]).filter(d=>d.name.toLowerCase().includes(n.value.toLowerCase()))),v=O(!1),w=O(!1);return{workspaceStore:e,connectionStore:t,search:s,workspaceId:r,mappedWorkspaces:a,isOpenSelectConnectionModal:v,isOpenCreateWSModal:w,onSelectWorkspace:d=>{v.value=!0,r.value=d}}}const Kn={id:"tour-workspace-area",class:"flex flex-col h-full overflow-y-auto p-4 pt-0 space-y-4 relative"},Yn={class:"flex items-center gap-2"},Gn={class:"relative flex-1"},Qn={key:0,class:"grid grid-cols-3 gap-4 overflow-y-auto"},Jn={class:"flex items-center gap-2"},Xn=["href"],Zn=D({__name:"Workspaces",setup(e){const{workspaceStore:t,connectionStore:s,search:r,workspaceId:n,mappedWorkspaces:a,isOpenSelectConnectionModal:v,isOpenCreateWSModal:w,onSelectWorkspace:u}=Vn(),{startTour:d}=jn({isOpenCreateWSModal:w,isOpenSelectConnectionModal:v,workspaceId:n,workspaceStore:t,onSelectWorkspace:u}),c=O(!1),p=We().public.ggFormLink;return(g,f)=>{const $=L,b=Je,C=F,_=Ke;return S(),M(Y,null,[o(w)?(S(),B(st,{key:0,open:o(w),"onUpdate:open":f[0]||(f[0]=m=>te(w)?w.value=m:null),workspaceSeq:o(t).workspaces.length},null,8,["open","workspaceSeq"])):V("",!0),i(Yo,{open:c.value,"onUpdate:open":f[1]||(f[1]=m=>c.value=m)},null,8,["open"]),i(o(Uo),{open:o(v),"onUpdate:open":f[2]||(f[2]=m=>te(v)?v.value=m:null),connections:o(s).getConnectionsByWorkspaceId(o(n)),"workspace-id":o(n)},null,8,["open","connections","workspace-id"]),I("div",Kn,[i(bn,{onCreate:f[3]||(f[3]=m=>w.value=!0),onRestore:f[4]||(f[4]=m=>c.value=!0),"is-show-button-create":!!o(a).length,"is-show-button-restore":!!o(a).length},null,8,["is-show-button-create","is-show-button-restore"]),I("div",Yn,[I("div",Gn,[i($,{name:"hugeicons:search-01",class:"absolute left-2.5 -translate-y-1/2 top-1/2 size-4"}),i(b,{type:"text",modelValue:o(r),"onUpdate:modelValue":f[5]||(f[5]=m=>te(r)?r.value=m:null),placeholder:"Search workspaces...",class:"pl-10 w-full"},null,8,["modelValue"])])]),o(a).length?(S(),M("div",Qn,[(S(!0),M(Y,null,ne(o(a),m=>(S(),B(gn,{workspace:m,onOnSelectWorkspace:o(u)},null,8,["workspace","onOnSelectWorkspace"]))),256))])):(S(),B(_,{key:1,title:"No workspaces found",desc:"There is nothing here to show. Let's create your first workspace."},{default:l(()=>[I("div",Jn,[i(C,{id:"tour-new-workspace-btn-empty",variant:"default",size:"sm",onClick:f[6]||(f[6]=m=>w.value=!0)},{default:l(()=>[i($,{name:"hugeicons:plus-sign"}),f[8]||(f[8]=W(" New Workspace "))]),_:1}),i(C,{variant:"outline",size:"sm",onClick:f[7]||(f[7]=m=>c.value=!0)},{default:l(()=>[i($,{name:"lucide:upload"}),f[9]||(f[9]=W(" Restore Data "))]),_:1}),i(C,{variant:"secondary",size:"sm",onClick:o(d)},{default:l(()=>[i($,{name:"hugeicons:book-open-02"}),f[10]||(f[10]=W(" Take a tour "))]),_:1},8,["onClick"])])]),_:1})),i(C,{class:"fixed bottom-0 right-4 z-10",variant:"secondary"},{default:l(()=>[I("a",{href:o(p),target:"_blank"},[i($,{name:"hugeicons:chat-feedback-01"}),f[11]||(f[11]=W(" Give me Feedback "))],8,Xn)]),_:1}),i(C,{class:"fixed bottom-16 right-4",variant:"secondary",onClick:o(d),title:"Start Tour"},{default:l(()=>[i($,{name:"hugeicons:book-open-02"}),f[12]||(f[12]=W(" Take a tour "))]),_:1},8,["onClick"])])],64)}}}),fs=D({__name:"index",setup(e){return(t,s)=>(S(),B(o(Zn)))}});export{fs as default};
@@ -1 +1 @@
1
- import{_ as H}from"./DH2V7e8U.js";import{d as R,bz as K,e as a,m as d,f as o,bj as P,w,g as r,A as j,N as G,o as t,z as k,k as V,t as u,l as S,bm as W,r as q,c as M,an as J,F as y,s as T,n as z,j as X,bi as Y,V as Z,i as ee,bA as te,bB as se,bC as ne}from"./C6teO48Y.js";import{_ as oe,a as ae}from"./DQRyK9Io.js";import{_ as ie}from"./BC82eJHt.js";import{_ as A}from"./DZ4xLzJg.js";import{_ as re}from"./Cv9v5fHN.js";const de={class:"flex flex-col gap-2 rounded-lg border bg-card p-4 sm:flex-row sm:items-end sm:justify-between"},le={class:"flex min-w-0 flex-1 flex-col gap-1.5"},ce={class:"flex h-9 items-center justify-center sm:w-6"},ue={class:"flex min-w-0 flex-1 flex-col gap-1.5"},me=R({__name:"SchemaDiffConnectionSelector",props:{sourceConnection:{},targetConnection:{},connections:{},isLoading:{type:Boolean}},emits:["update:targetConnection","run"],setup(x,{emit:_}){const{workspaceId:p}=K(),l=_;return(n,f)=>{var e,c;const g=P,v=j,C=G;return t(),a("div",de,[d("div",le,[o(g,{class:"text-xs font-medium text-muted-foreground"},{default:w(()=>f[2]||(f[2]=[k("Source")])),_:1}),o(A,{class:"h-9 w-full","workspace-id":r(p)||"","connection-id":((e=n.sourceConnection)==null?void 0:e.id)||"",connection:n.sourceConnection||void 0,connections:n.sourceConnection?[n.sourceConnection]:[],disabled:""},null,8,["workspace-id","connection-id","connection","connections"])]),d("div",ce,[o(v,{name:"hugeicons:arrow-right-02",class:"size-4 text-muted-foreground"})]),d("div",ue,[o(g,{class:"text-xs font-medium text-muted-foreground"},{default:w(()=>f[3]||(f[3]=[k("Target")])),_:1}),o(A,{class:"h-9 w-full","workspace-id":r(p)||"","connection-id":((c=n.targetConnection)==null?void 0:c.id)||"",connection:n.targetConnection||void 0,connections:n.connections,"onUpdate:connectionId":f[0]||(f[0]=$=>l("update:targetConnection",n.connections.find(b=>b.id===$)||null)),"skip-strict-mode-connections":""},null,8,["workspace-id","connection-id","connection","connections"])]),o(C,{disabled:!n.sourceConnection||!n.targetConnection||n.isLoading,size:"sm",onClick:f[1]||(f[1]=$=>l("run"))},{default:w(()=>[n.isLoading?(t(),V(v,{key:0,name:"hugeicons:loading-03",class:"size-4 animate-spin"})):(t(),V(v,{key:1,name:"hugeicons:git-compare",class:"size-4"})),k(" "+u(n.isLoading?"Comparing...":"Run Diff"),1)]),_:1},8,["disabled"])])}}}),fe={class:"flex flex-col gap-3"},pe={class:"flex items-center gap-3"},ge={class:"flex items-center gap-2 text-sm"},xe={class:"text-xs text-muted-foreground"},_e={class:"ml-auto flex items-center gap-2 text-xs"},he={key:0,class:"flex items-center gap-1 rounded-md bg-red-100 px-2 py-1 text-xs text-red-700 dark:bg-red-900/30 dark:text-red-400"},ve={key:0,class:"flex items-start gap-2 rounded-md border border-amber-200 bg-amber-50 p-3 text-xs text-amber-800 dark:border-amber-800 dark:bg-amber-900/20 dark:text-amber-300"},ye={key:2,class:"min-h-32 flex items-center justify-center rounded-md border bg-muted/30 p-4 font-mono text-xs text-muted-foreground"},ke=R({__name:"SchemaDiffSqlPanel",props:{sql:{},safeMode:{type:Boolean},statementCount:{},destructiveCount:{}},emits:["update:safeMode"],setup(x,{emit:_}){const p=_;return(l,n)=>{const f=j,g=P,v=W,C=re;return t(),a("div",fe,[d("div",pe,[d("div",ge,[o(f,{name:"hugeicons:code",class:"size-4 text-muted-foreground"}),n[1]||(n[1]=d("span",{class:"font-medium"},"Generated SQL",-1)),d("span",xe,"("+u(l.statementCount)+" statements)",1)]),d("div",_e,[o(g,{for:"safe-mode-toggle",class:"cursor-pointer text-muted-foreground"},{default:w(()=>n[2]||(n[2]=[k(" Safe mode ")])),_:1}),o(v,{id:"safe-mode-toggle","model-value":l.safeMode,"onUpdate:modelValue":n[0]||(n[0]=e=>p("update:safeMode",e))},null,8,["model-value"])]),l.destructiveCount>0&&!l.safeMode?(t(),a("div",he,[o(f,{name:"hugeicons:alert-circle",class:"size-3.5"}),k(" "+u(l.destructiveCount)+" destructive ",1)])):S("",!0)]),l.safeMode?(t(),a("div",ve,[o(f,{name:"hugeicons:shield-01",class:"mt-0.5 size-3.5 shrink-0"}),n[3]||(n[3]=d("span",null,"Safe mode is on — destructive statements (DROP TABLE, DROP COLUMN) are commented out. Disable to include them.",-1))])):S("",!0),l.sql?(t(),V(C,{key:1,code:l.sql,language:"sql","max-height":"400px"},null,8,["code"])):(t(),a("div",ye," No SQL statements generated. "))])}}}),be={class:"space-y-1 font-mono text-sm"},Ce={class:"mb-3 flex flex-wrap gap-2"},we=["onClick"],$e={key:0,class:"divide-y"},ze=["onClick"],Se={class:"flex-1 truncate"},De={class:"flex-1 truncate text-xs"},qe={class:"shrink-0 text-xxs text-muted-foreground"},Le={class:"flex-1 truncate text-xs"},Te={class:"flex-1 truncate"},Me={class:"flex-1 truncate"},Ve={key:0,class:"flex flex-col items-center gap-2 py-12 text-muted-foreground"},Be=R({__name:"SchemaDiffTree",props:{result:{}},setup(x){const _=q(new Set),p=q(new Set),l={added:{label:"Added",class:"text-emerald-600 dark:text-emerald-400",icon:"hugeicons:plus-sign"},removed:{label:"Removed",class:"text-red-600 dark:text-red-400",icon:"hugeicons:minus-sign"},modified:{label:"Modified",class:"text-amber-600 dark:text-amber-400",icon:"hugeicons:edit-02"},unchanged:{label:"Unchanged",class:"text-muted-foreground",icon:"hugeicons:check-01"}},n={added:"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400 rounded-sm",removed:"bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-400 rounded-sm",modified:"bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-400 rounded-sm"},f=e=>{_.value.has(e)?_.value.delete(e):_.value.add(e)},g=e=>{p.value.has(e)?p.value.delete(e):p.value.add(e)},v=(e,c)=>`${e}.${c}`,C=M(()=>x.result.schemas.filter(e=>e.tables.some(c=>c.status!=="unchanged")||e.views.some(c=>c.status!=="unchanged")||e.functions.some(c=>c.status!=="unchanged")));return J(()=>{for(const e of C.value)_.value.add(e.name)}),(e,c)=>{const $=Y,b=j;return t(),a("div",be,[d("div",Ce,[(t(!0),a(y,null,T(e.result.summary,(h,s)=>(t(),a(y,{key:s},[s!=="unchanged"?(t(),V($,{key:0,variant:"outline",class:z(r(X)(n[s],"capitalize border-0"))},{default:w(()=>[k(u(h)+" "+u(s),1)]),_:2},1032,["class"])):S("",!0)],64))),128))]),(t(!0),a(y,null,T(r(C),h=>(t(),a("div",{key:h.name,class:"rounded-md border overflow-hidden"},[d("button",{class:"flex w-full items-center gap-2 bg-muted/50 px-3 py-2 text-left text-xs font-semibold capitalize text-muted-foreground hover:bg-muted",onClick:s=>f(h.name)},[o(b,{name:r(_).has(h.name)?"hugeicons:arrow-down-01":"hugeicons:arrow-right-01",class:"size-3.5 shrink-0"},null,8,["name"]),o(b,{name:"hugeicons:database",class:"size-3.5 shrink-0"}),k(" "+u(h.name),1)],8,we),r(_).has(h.name)?(t(),a("div",$e,[(t(!0),a(y,null,T(h.tables.filter(s=>s.status!=="unchanged"),s=>(t(),a(y,{key:s.name},[d("div",{class:z(["flex cursor-pointer items-center gap-2 px-4 py-2 hover:bg-muted/30",l[s.status].class]),onClick:i=>g(v(h.name,s.name))},[o(b,{name:r(p).has(v(h.name,s.name))?"hugeicons:arrow-down-01":"hugeicons:arrow-right-01",class:"size-3 shrink-0 text-muted-foreground"},null,8,["name"]),o(b,{name:"hugeicons:table-01",class:"size-3.5 shrink-0"}),d("span",Se,u(s.name),1),d("span",{class:z(["ml-auto shrink-0 rounded px-1.5 py-0.5 text-xxs font-medium capitalize",n[s.status]])},u(s.status),3)],10,ze),r(p).has(v(h.name,s.name))?(t(),a(y,{key:0},[(t(!0),a(y,null,T(s.columns.filter(i=>i.status!=="unchanged"),i=>{var D,m,B;return t(),a("div",{key:i.name,class:z(["flex items-center gap-2 py-1.5 pl-10 pr-4",l[i.status].class])},[o(b,{name:"hugeicons:columns-02",class:"size-3 shrink-0 opacity-60"}),d("span",De,u(i.name),1),d("span",qe,[i.status==="added"?(t(),a(y,{key:0},[k(u((D=i.source)==null?void 0:D.type),1)],64)):i.status==="removed"?(t(),a(y,{key:1},[k(u((m=i.target)==null?void 0:m.type),1)],64)):(B=i.changes)!=null&&B.type?(t(),a(y,{key:2},[k(u(i.changes.type.from)+" → "+u(i.changes.type.to),1)],64)):S("",!0)]),d("span",{class:z(["shrink-0 rounded px-1 py-0.5 text-[9px] font-medium capitalize",n[i.status]])},u(i.status),3)],2)}),128)),(t(!0),a(y,null,T(s.foreignKeys.filter(i=>i.status!=="unchanged"),i=>(t(),a("div",{key:i.key,class:z(["flex items-center gap-2 py-1.5 pl-10 pr-4",l[i.status].class])},[o(b,{name:"hugeicons:link-01",class:"size-3 shrink-0 opacity-60"}),d("span",Le,u(i.key),1),d("span",{class:z(["shrink-0 rounded px-1 py-0.5 text-[9px] font-medium capitalize",n[i.status]])},u(i.status),3)],2))),128))],64)):S("",!0)],64))),128)),(t(!0),a(y,null,T(h.views.filter(s=>s.status!=="unchanged"),s=>(t(),a("div",{key:s.name,class:z(["flex items-center gap-2 px-4 py-2",l[s.status].class])},[o(b,{name:"hugeicons:eye",class:"size-3.5 shrink-0"}),d("span",Te,u(s.name),1),c[0]||(c[0]=d("span",{class:"ml-2 shrink-0 text-xxs text-muted-foreground"},"view",-1)),d("span",{class:z(["ml-auto shrink-0 rounded px-1.5 py-0.5 text-xxs font-medium capitalize",n[s.status]])},u(s.status),3)],2))),128)),(t(!0),a(y,null,T(h.functions.filter(s=>s.status!=="unchanged"),s=>(t(),a("div",{key:s.signature,class:z(["flex items-center gap-2 px-4 py-2",l[s.status].class])},[o(b,{name:"hugeicons:function-of-x",class:"size-3.5 shrink-0"}),d("span",Me,u(s.name),1),c[1]||(c[1]=d("span",{class:"ml-2 shrink-0 text-xxs text-muted-foreground"},"fn",-1)),d("span",{class:z(["ml-auto shrink-0 rounded px-1.5 py-0.5 text-xxs font-medium capitalize",n[s.status]])},u(s.status),3)],2))),128))])):S("",!0)]))),128)),r(C).length===0?(t(),a("div",Ve,[o(b,{name:"hugeicons:checkmark-circle-02",class:"size-10 text-emerald-500"}),c[2]||(c[2]=d("p",{class:"text-sm font-medium"},"Schemas are identical",-1)),c[3]||(c[3]=d("p",{class:"text-xs"},"No differences detected between source and target.",-1))])):S("",!0)])}}}),Ie={diff:x=>$fetch("/api/schema-diff",{method:"POST",body:x})};function Re(){const x=q(null),_=q(!1),p=q(null),l=q(!0),n=e=>({type:e.type,connectionString:e.connectionString,host:e.host,port:e.port,username:e.username,password:e.password,database:e.database,ssl:e.ssl,ssh:e.ssh}),f=async(e,c)=>{_.value=!0,p.value=null,x.value=null;try{x.value=await Ie.diff({source:n(e),target:n(c),safeMode:l.value})}catch($){p.value=$ instanceof Error?$.message:"Schema diff failed. Check connection details."}finally{_.value=!1}},g=()=>{x.value=null,p.value=null},v=M(()=>x.value?l.value?x.value.sql.safe:x.value.sql.full:""),C=M(()=>{if(!x.value)return!1;const{added:e,removed:c,modified:$}=x.value.summary;return e+c+$>0});return{result:x,isLoading:_,error:p,safeMode:l,currentSql:v,hasDifferences:C,runDiff:f,reset:g}}const je={class:"flex h-full flex-col gap-4 overflow-hidden p-4"},Ne={class:"flex items-center justify-between gap-2"},Ae={key:0,class:"ml-1 rounded-full bg-primary px-1.5 py-0.5 text-xxs text-primary-foreground"},Pe={key:0,class:"ml-1 rounded-full bg-muted px-1.5 py-0.5 text-xxs text-muted-foreground"},Ue={class:"text-xs text-muted-foreground"},Oe={key:0,class:"flex-1 overflow-y-auto"},Qe={key:1,class:"flex-1 overflow-y-auto"},Ee={key:2,class:"flex flex-1 flex-col items-center justify-center gap-3 text-muted-foreground"},Xe=R({__name:"SchemaDiffContainer",props:{sourceConnectionId:{}},setup(x){const _=x,p=Z(),l=M(()=>p.connections.find(D=>D.id===_.sourceConnectionId)??null),n=M(()=>p.connections.filter(D=>D.id!==_.sourceConnectionId)),f=q(null),{result:g,isLoading:v,error:C,safeMode:e,currentSql:c,hasDifferences:$,runDiff:b}=Re(),h=async()=>{!l.value||!f.value||await b(l.value,f.value)},s=M(()=>{var D;return((D=g.value)==null?void 0:D.sql.statements.filter(m=>m.destructive).length)??0}),i=q("diff");return(D,m)=>{const B=H,I=j,U=ie,O=ae,Q=oe,N=ne,E=se,F=te;return t(),a("div",je,[o(B,{icon:"hugeicons:git-compare",title:"Schema Diff",description:"Compare schemas between two database connections and generate sync SQL."}),o(me,{"source-connection":r(l),"target-connection":r(f),connections:r(n),"is-loading":r(v),"onUpdate:targetConnection":m[0]||(m[0]=L=>f.value=L),onRun:h},null,8,["source-connection","target-connection","connections","is-loading"]),r(C)?(t(),V(Q,{key:0,class:"border-border bg-muted/30"},{default:w(()=>[o(I,{name:"hugeicons:alert-circle",class:"size-4 text-destructive"}),o(U,{class:"text-destructive"},{default:w(()=>m[5]||(m[5]=[k("Diff Failed")])),_:1}),o(O,{class:"text-muted-foreground"},{default:w(()=>[k(u(r(C)),1)]),_:1})]),_:1})):S("",!0),r(g)?(t(),a(y,{key:1},[d("div",Ne,[o(F,{modelValue:r(i),"onUpdate:modelValue":m[3]||(m[3]=L=>ee(i)?i.value=L:null),class:"min-w-0 flex-1 gap-0"},{default:w(()=>[o(E,{size:"sm",class:"max-w-full justify-start! overflow-x-auto"},{default:w(()=>[o(N,{size:"xs",value:"diff",class:"min-w-fit shrink-0 cursor-pointer rounded-sm",onClick:m[1]||(m[1]=L=>i.value="diff")},{default:w(()=>[o(I,{name:"hugeicons:git-compare",class:"shrink-0 size-3.5"}),m[6]||(m[6]=k(" Diff View ")),r($)?(t(),a("span",Ae,u(r(g).summary.added+r(g).summary.removed+r(g).summary.modified),1)):S("",!0)]),_:1}),o(N,{value:"sql",class:"min-w-fit shrink-0 cursor-pointer rounded-sm px-1.5 text-xs",onClick:m[2]||(m[2]=L=>i.value="sql")},{default:w(()=>[o(I,{name:"hugeicons:code",class:"shrink-0 size-3.5"}),m[7]||(m[7]=k(" SQL ")),r(g).sql.statements.length>0?(t(),a("span",Pe,u(r(g).sql.statements.length),1)):S("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue"]),d("div",Ue,u(r(i)==="diff"?"Visualize structural differences":"Review synchronization script"),1)]),r(i)==="diff"?(t(),a("div",Oe,[o(Be,{result:r(g)},null,8,["result"])])):(t(),a("div",Qe,[o(ke,{sql:r(c),"safe-mode":r(e),"statement-count":r(g).sql.statements.length,"destructive-count":r(s),"onUpdate:safeMode":m[4]||(m[4]=L=>e.value=L)},null,8,["sql","safe-mode","statement-count","destructive-count"])]))],64)):r(v)?S("",!0):(t(),a("div",Ee,[o(I,{name:"hugeicons:git-compare",class:"size-14 opacity-30"}),m[8]||(m[8]=d("p",{class:"text-sm"},"Select a target connection and run the diff",-1))]))])}}});export{Xe as _};
1
+ import{_ as H}from"./CxFAImHj.js";import{d as R,bz as K,c as a,e as d,a as o,bj as U,w,u as r,_ as N,N as G,o as t,f as k,q as V,t as u,b as S,bm as W,r as q,i as M,an as J,F as y,x as T,n as z,p as X,bi as Y,V as Z,l as ee,bA as te,bB as se,bC as ne}from"./DbehhcO7.js";import{_ as oe,a as ae}from"./DxMpy-ot.js";import{_ as ie}from"./agpUpIJe.js";import{_ as P}from"./Co6sZiuo.js";import{_ as re}from"./DL1qmlP8.js";const de={class:"flex flex-col gap-2 rounded-lg border bg-card p-4 sm:flex-row sm:items-end sm:justify-between"},le={class:"flex min-w-0 flex-1 flex-col gap-1.5"},ce={class:"flex h-9 items-center justify-center sm:w-6"},ue={class:"flex min-w-0 flex-1 flex-col gap-1.5"},me=R({__name:"SchemaDiffConnectionSelector",props:{sourceConnection:{},targetConnection:{},connections:{},isLoading:{type:Boolean}},emits:["update:targetConnection","run"],setup(x,{emit:_}){const{workspaceId:p}=K(),l=_;return(n,f)=>{var e,c;const g=U,v=N,C=G;return t(),a("div",de,[d("div",le,[o(g,{class:"text-xs font-medium text-muted-foreground"},{default:w(()=>f[2]||(f[2]=[k("Source")])),_:1}),o(P,{class:"h-9 w-full","workspace-id":r(p)||"","connection-id":((e=n.sourceConnection)==null?void 0:e.id)||"",connection:n.sourceConnection||void 0,connections:n.sourceConnection?[n.sourceConnection]:[],disabled:""},null,8,["workspace-id","connection-id","connection","connections"])]),d("div",ce,[o(v,{name:"hugeicons:arrow-right-02",class:"size-4 text-muted-foreground"})]),d("div",ue,[o(g,{class:"text-xs font-medium text-muted-foreground"},{default:w(()=>f[3]||(f[3]=[k("Target")])),_:1}),o(P,{class:"h-9 w-full","workspace-id":r(p)||"","connection-id":((c=n.targetConnection)==null?void 0:c.id)||"",connection:n.targetConnection||void 0,connections:n.connections,"onUpdate:connectionId":f[0]||(f[0]=$=>l("update:targetConnection",n.connections.find(b=>b.id===$)||null)),"skip-strict-mode-connections":""},null,8,["workspace-id","connection-id","connection","connections"])]),o(C,{disabled:!n.sourceConnection||!n.targetConnection||n.isLoading,size:"sm",onClick:f[1]||(f[1]=$=>l("run"))},{default:w(()=>[n.isLoading?(t(),V(v,{key:0,name:"hugeicons:loading-03",class:"size-4 animate-spin"})):(t(),V(v,{key:1,name:"hugeicons:git-compare",class:"size-4"})),k(" "+u(n.isLoading?"Comparing...":"Run Diff"),1)]),_:1},8,["disabled"])])}}}),fe={class:"flex flex-col gap-3"},pe={class:"flex items-center gap-3"},ge={class:"flex items-center gap-2 text-sm"},xe={class:"text-xs text-muted-foreground"},_e={class:"ml-auto flex items-center gap-2 text-xs"},he={key:0,class:"flex items-center gap-1 rounded-md bg-red-100 px-2 py-1 text-xs text-red-700 dark:bg-red-900/30 dark:text-red-400"},ve={key:0,class:"flex items-start gap-2 rounded-md border border-amber-200 bg-amber-50 p-3 text-xs text-amber-800 dark:border-amber-800 dark:bg-amber-900/20 dark:text-amber-300"},ye={key:2,class:"min-h-32 flex items-center justify-center rounded-md border bg-muted/30 p-4 font-mono text-xs text-muted-foreground"},ke=R({__name:"SchemaDiffSqlPanel",props:{sql:{},safeMode:{type:Boolean},statementCount:{},destructiveCount:{}},emits:["update:safeMode"],setup(x,{emit:_}){const p=_;return(l,n)=>{const f=N,g=U,v=W,C=re;return t(),a("div",fe,[d("div",pe,[d("div",ge,[o(f,{name:"hugeicons:code",class:"size-4 text-muted-foreground"}),n[1]||(n[1]=d("span",{class:"font-medium"},"Generated SQL",-1)),d("span",xe,"("+u(l.statementCount)+" statements)",1)]),d("div",_e,[o(g,{for:"safe-mode-toggle",class:"cursor-pointer text-muted-foreground"},{default:w(()=>n[2]||(n[2]=[k(" Safe mode ")])),_:1}),o(v,{id:"safe-mode-toggle","model-value":l.safeMode,"onUpdate:modelValue":n[0]||(n[0]=e=>p("update:safeMode",e))},null,8,["model-value"])]),l.destructiveCount>0&&!l.safeMode?(t(),a("div",he,[o(f,{name:"hugeicons:alert-circle",class:"size-3.5"}),k(" "+u(l.destructiveCount)+" destructive ",1)])):S("",!0)]),l.safeMode?(t(),a("div",ve,[o(f,{name:"hugeicons:shield-01",class:"mt-0.5 size-3.5 shrink-0"}),n[3]||(n[3]=d("span",null,"Safe mode is on — destructive statements (DROP TABLE, DROP COLUMN) are commented out. Disable to include them.",-1))])):S("",!0),l.sql?(t(),V(C,{key:1,code:l.sql,language:"sql","max-height":"400px"},null,8,["code"])):(t(),a("div",ye," No SQL statements generated. "))])}}}),be={class:"space-y-1 font-mono text-sm"},Ce={class:"mb-3 flex flex-wrap gap-2"},we=["onClick"],$e={key:0,class:"divide-y"},ze=["onClick"],Se={class:"flex-1 truncate"},De={class:"flex-1 truncate text-xs"},qe={class:"shrink-0 text-xxs text-muted-foreground"},Le={class:"flex-1 truncate text-xs"},Te={class:"flex-1 truncate"},Me={class:"flex-1 truncate"},Ve={key:0,class:"flex flex-col items-center gap-2 py-12 text-muted-foreground"},Be=R({__name:"SchemaDiffTree",props:{result:{}},setup(x){const _=q(new Set),p=q(new Set),l={added:{label:"Added",class:"text-emerald-600 dark:text-emerald-400",icon:"hugeicons:plus-sign"},removed:{label:"Removed",class:"text-red-600 dark:text-red-400",icon:"hugeicons:minus-sign"},modified:{label:"Modified",class:"text-amber-600 dark:text-amber-400",icon:"hugeicons:edit-02"},unchanged:{label:"Unchanged",class:"text-muted-foreground",icon:"hugeicons:check-01"}},n={added:"bg-emerald-100 text-emerald-700 dark:bg-emerald-900/40 dark:text-emerald-400 rounded-sm",removed:"bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-400 rounded-sm",modified:"bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-400 rounded-sm"},f=e=>{_.value.has(e)?_.value.delete(e):_.value.add(e)},g=e=>{p.value.has(e)?p.value.delete(e):p.value.add(e)},v=(e,c)=>`${e}.${c}`,C=M(()=>x.result.schemas.filter(e=>e.tables.some(c=>c.status!=="unchanged")||e.views.some(c=>c.status!=="unchanged")||e.functions.some(c=>c.status!=="unchanged")));return J(()=>{for(const e of C.value)_.value.add(e.name)}),(e,c)=>{const $=Y,b=N;return t(),a("div",be,[d("div",Ce,[(t(!0),a(y,null,T(e.result.summary,(h,s)=>(t(),a(y,{key:s},[s!=="unchanged"?(t(),V($,{key:0,variant:"outline",class:z(r(X)(n[s],"capitalize border-0"))},{default:w(()=>[k(u(h)+" "+u(s),1)]),_:2},1032,["class"])):S("",!0)],64))),128))]),(t(!0),a(y,null,T(r(C),h=>(t(),a("div",{key:h.name,class:"rounded-md border overflow-hidden"},[d("button",{class:"flex w-full items-center gap-2 bg-muted/50 px-3 py-2 text-left text-xs font-semibold capitalize text-muted-foreground hover:bg-muted",onClick:s=>f(h.name)},[o(b,{name:r(_).has(h.name)?"hugeicons:arrow-down-01":"hugeicons:arrow-right-01",class:"size-3.5 shrink-0"},null,8,["name"]),o(b,{name:"hugeicons:database",class:"size-3.5 shrink-0"}),k(" "+u(h.name),1)],8,we),r(_).has(h.name)?(t(),a("div",$e,[(t(!0),a(y,null,T(h.tables.filter(s=>s.status!=="unchanged"),s=>(t(),a(y,{key:s.name},[d("div",{class:z(["flex cursor-pointer items-center gap-2 px-4 py-2 hover:bg-muted/30",l[s.status].class]),onClick:i=>g(v(h.name,s.name))},[o(b,{name:r(p).has(v(h.name,s.name))?"hugeicons:arrow-down-01":"hugeicons:arrow-right-01",class:"size-3 shrink-0 text-muted-foreground"},null,8,["name"]),o(b,{name:"hugeicons:table-01",class:"size-3.5 shrink-0"}),d("span",Se,u(s.name),1),d("span",{class:z(["ml-auto shrink-0 rounded px-1.5 py-0.5 text-xxs font-medium capitalize",n[s.status]])},u(s.status),3)],10,ze),r(p).has(v(h.name,s.name))?(t(),a(y,{key:0},[(t(!0),a(y,null,T(s.columns.filter(i=>i.status!=="unchanged"),i=>{var D,m,B;return t(),a("div",{key:i.name,class:z(["flex items-center gap-2 py-1.5 pl-10 pr-4",l[i.status].class])},[o(b,{name:"hugeicons:columns-02",class:"size-3 shrink-0 opacity-60"}),d("span",De,u(i.name),1),d("span",qe,[i.status==="added"?(t(),a(y,{key:0},[k(u((D=i.source)==null?void 0:D.type),1)],64)):i.status==="removed"?(t(),a(y,{key:1},[k(u((m=i.target)==null?void 0:m.type),1)],64)):(B=i.changes)!=null&&B.type?(t(),a(y,{key:2},[k(u(i.changes.type.from)+" → "+u(i.changes.type.to),1)],64)):S("",!0)]),d("span",{class:z(["shrink-0 rounded px-1 py-0.5 text-[9px] font-medium capitalize",n[i.status]])},u(i.status),3)],2)}),128)),(t(!0),a(y,null,T(s.foreignKeys.filter(i=>i.status!=="unchanged"),i=>(t(),a("div",{key:i.key,class:z(["flex items-center gap-2 py-1.5 pl-10 pr-4",l[i.status].class])},[o(b,{name:"hugeicons:link-01",class:"size-3 shrink-0 opacity-60"}),d("span",Le,u(i.key),1),d("span",{class:z(["shrink-0 rounded px-1 py-0.5 text-[9px] font-medium capitalize",n[i.status]])},u(i.status),3)],2))),128))],64)):S("",!0)],64))),128)),(t(!0),a(y,null,T(h.views.filter(s=>s.status!=="unchanged"),s=>(t(),a("div",{key:s.name,class:z(["flex items-center gap-2 px-4 py-2",l[s.status].class])},[o(b,{name:"hugeicons:eye",class:"size-3.5 shrink-0"}),d("span",Te,u(s.name),1),c[0]||(c[0]=d("span",{class:"ml-2 shrink-0 text-xxs text-muted-foreground"},"view",-1)),d("span",{class:z(["ml-auto shrink-0 rounded px-1.5 py-0.5 text-xxs font-medium capitalize",n[s.status]])},u(s.status),3)],2))),128)),(t(!0),a(y,null,T(h.functions.filter(s=>s.status!=="unchanged"),s=>(t(),a("div",{key:s.signature,class:z(["flex items-center gap-2 px-4 py-2",l[s.status].class])},[o(b,{name:"hugeicons:function-of-x",class:"size-3.5 shrink-0"}),d("span",Me,u(s.name),1),c[1]||(c[1]=d("span",{class:"ml-2 shrink-0 text-xxs text-muted-foreground"},"fn",-1)),d("span",{class:z(["ml-auto shrink-0 rounded px-1.5 py-0.5 text-xxs font-medium capitalize",n[s.status]])},u(s.status),3)],2))),128))])):S("",!0)]))),128)),r(C).length===0?(t(),a("div",Ve,[o(b,{name:"hugeicons:checkmark-circle-02",class:"size-10 text-emerald-500"}),c[2]||(c[2]=d("p",{class:"text-sm font-medium"},"Schemas are identical",-1)),c[3]||(c[3]=d("p",{class:"text-xs"},"No differences detected between source and target.",-1))])):S("",!0)])}}}),Ie={diff:x=>$fetch("/api/schema-diff",{method:"POST",body:x})};function Re(){const x=q(null),_=q(!1),p=q(null),l=q(!0),n=e=>({type:e.type,connectionString:e.connectionString,host:e.host,port:e.port,username:e.username,password:e.password,database:e.database,ssl:e.ssl,ssh:e.ssh}),f=async(e,c)=>{_.value=!0,p.value=null,x.value=null;try{x.value=await Ie.diff({source:n(e),target:n(c),safeMode:l.value})}catch($){p.value=$ instanceof Error?$.message:"Schema diff failed. Check connection details."}finally{_.value=!1}},g=()=>{x.value=null,p.value=null},v=M(()=>x.value?l.value?x.value.sql.safe:x.value.sql.full:""),C=M(()=>{if(!x.value)return!1;const{added:e,removed:c,modified:$}=x.value.summary;return e+c+$>0});return{result:x,isLoading:_,error:p,safeMode:l,currentSql:v,hasDifferences:C,runDiff:f,reset:g}}const Ne={class:"flex h-full flex-col gap-4 overflow-hidden p-4"},je={class:"flex items-center justify-between gap-2"},Pe={key:0,class:"ml-1 rounded-full bg-primary px-1.5 py-0.5 text-xxs text-primary-foreground"},Ue={key:0,class:"ml-1 rounded-full bg-muted px-1.5 py-0.5 text-xxs text-muted-foreground"},Ae={class:"text-xs text-muted-foreground"},Oe={key:0,class:"flex-1 overflow-y-auto"},Qe={key:1,class:"flex-1 overflow-y-auto"},Ee={key:2,class:"flex flex-1 flex-col items-center justify-center gap-3 text-muted-foreground"},Xe=R({__name:"SchemaDiffContainer",props:{sourceConnectionId:{}},setup(x){const _=x,p=Z(),l=M(()=>p.connections.find(D=>D.id===_.sourceConnectionId)??null),n=M(()=>p.connections.filter(D=>D.id!==_.sourceConnectionId)),f=q(null),{result:g,isLoading:v,error:C,safeMode:e,currentSql:c,hasDifferences:$,runDiff:b}=Re(),h=async()=>{!l.value||!f.value||await b(l.value,f.value)},s=M(()=>{var D;return((D=g.value)==null?void 0:D.sql.statements.filter(m=>m.destructive).length)??0}),i=q("diff");return(D,m)=>{const B=H,I=N,A=ie,O=ae,Q=oe,j=ne,E=se,F=te;return t(),a("div",Ne,[o(B,{icon:"hugeicons:git-compare",title:"Schema Diff",description:"Compare schemas between two database connections and generate sync SQL."}),o(me,{"source-connection":r(l),"target-connection":r(f),connections:r(n),"is-loading":r(v),"onUpdate:targetConnection":m[0]||(m[0]=L=>f.value=L),onRun:h},null,8,["source-connection","target-connection","connections","is-loading"]),r(C)?(t(),V(Q,{key:0,class:"border-border bg-muted/30"},{default:w(()=>[o(I,{name:"hugeicons:alert-circle",class:"size-4 text-destructive"}),o(A,{class:"text-destructive"},{default:w(()=>m[5]||(m[5]=[k("Diff Failed")])),_:1}),o(O,{class:"text-muted-foreground"},{default:w(()=>[k(u(r(C)),1)]),_:1})]),_:1})):S("",!0),r(g)?(t(),a(y,{key:1},[d("div",je,[o(F,{modelValue:r(i),"onUpdate:modelValue":m[3]||(m[3]=L=>ee(i)?i.value=L:null),class:"min-w-0 flex-1 gap-0"},{default:w(()=>[o(E,{size:"sm",class:"max-w-full justify-start! overflow-x-auto"},{default:w(()=>[o(j,{size:"xs",value:"diff",class:"min-w-fit shrink-0 cursor-pointer rounded-sm",onClick:m[1]||(m[1]=L=>i.value="diff")},{default:w(()=>[o(I,{name:"hugeicons:git-compare",class:"shrink-0 size-3.5"}),m[6]||(m[6]=k(" Diff View ")),r($)?(t(),a("span",Pe,u(r(g).summary.added+r(g).summary.removed+r(g).summary.modified),1)):S("",!0)]),_:1}),o(j,{value:"sql",class:"min-w-fit shrink-0 cursor-pointer rounded-sm px-1.5 text-xs",onClick:m[2]||(m[2]=L=>i.value="sql")},{default:w(()=>[o(I,{name:"hugeicons:code",class:"shrink-0 size-3.5"}),m[7]||(m[7]=k(" SQL ")),r(g).sql.statements.length>0?(t(),a("span",Ue,u(r(g).sql.statements.length),1)):S("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue"]),d("div",Ae,u(r(i)==="diff"?"Visualize structural differences":"Review synchronization script"),1)]),r(i)==="diff"?(t(),a("div",Oe,[o(Be,{result:r(g)},null,8,["result"])])):(t(),a("div",Qe,[o(ke,{sql:r(c),"safe-mode":r(e),"statement-count":r(g).sql.statements.length,"destructive-count":r(s),"onUpdate:safeMode":m[4]||(m[4]=L=>e.value=L)},null,8,["sql","safe-mode","statement-count","destructive-count"])]))],64)):r(v)?S("",!0):(t(),a("div",Ee,[o(I,{name:"hugeicons:git-compare",class:"size-14 opacity-30"}),m[8]||(m[8]=d("p",{class:"text-sm"},"Select a target connection and run the diff",-1))]))])}}});export{Xe as _};
@@ -1,4 +1,4 @@
1
- import{_ as l,s as k,g as I,t as R,q as _,a as E,b as F,L as D,A as G,G as y,H as C,I as z,l as P,a1 as W,e as B}from"./BJvJ0Hlu.js";import{p as H}from"./CXQ2zrsE.js";import{p as V}from"./DmnufEYq.js";import"./C6teO48Y.js";var m={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},w={axes:[],curves:[],options:m},x=structuredClone(w),j=z.radar,q=l(()=>y({...j,...C().radar}),"getConfig"),b=l(()=>x.axes,"getAxes"),N=l(()=>x.curves,"getCurves"),U=l(()=>x.options,"getOptions"),X=l(a=>{x.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),Y=l(a=>{x.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:Z(t.entries)}))},"setCurves"),Z=l(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>{var o;return((o=s.axis)==null?void 0:o.$refText)===e.name});if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),J=l(a=>{var e,r,s,o,i;const t=a.reduce((n,c)=>(n[c.name]=c,n),{});x.options={showLegend:((e=t.showLegend)==null?void 0:e.value)??m.showLegend,ticks:((r=t.ticks)==null?void 0:r.value)??m.ticks,max:((s=t.max)==null?void 0:s.value)??m.max,min:((o=t.min)==null?void 0:o.value)??m.min,graticule:((i=t.graticule)==null?void 0:i.value)??m.graticule}},"setOptions"),K=l(()=>{G(),x=structuredClone(w)},"clear"),$={getAxes:b,getCurves:N,getOptions:U,setAxes:X,setCurves:Y,setOptions:J,getConfig:q,clear:K,setAccTitle:F,getAccTitle:E,setDiagramTitle:_,getDiagramTitle:R,getAccDescription:I,setAccDescription:k},Q=l(a=>{H(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),tt={parse:l(async a=>{const t=await V("radar",a);P.debug(t),Q(t)},"parse")},et=l((a,t,e,r)=>{const s=r.db,o=s.getAxes(),i=s.getCurves(),n=s.getOptions(),c=s.getConfig(),d=s.getDiagramTitle(),p=D(t),u=at(p,c),g=n.max??Math.max(...i.map(f=>Math.max(...f.entries))),h=n.min,v=Math.min(c.width,c.height)/2;rt(u,o,v,n.ticks,n.graticule),st(u,o,v,c),M(u,o,i,h,g,n.graticule,c),T(u,i,n.showLegend,c),u.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),at=l((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return B(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),rt=l((a,t,e,r,s)=>{if(s==="circle")for(let o=0;o<r;o++){const i=e*(o+1)/r;a.append("circle").attr("r",i).attr("class","radarGraticule")}else if(s==="polygon"){const o=t.length;for(let i=0;i<r;i++){const n=e*(i+1)/r,c=t.map((d,p)=>{const u=2*p*Math.PI/o-Math.PI/2,g=n*Math.cos(u),h=n*Math.sin(u);return`${g},${h}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),st=l((a,t,e,r)=>{const s=t.length;for(let o=0;o<s;o++){const i=t[o].label,n=2*o*Math.PI/s-Math.PI/2;a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*Math.cos(n)).attr("y2",e*r.axisScaleFactor*Math.sin(n)).attr("class","radarAxisLine"),a.append("text").text(i).attr("x",e*r.axisLabelFactor*Math.cos(n)).attr("y",e*r.axisLabelFactor*Math.sin(n)).attr("class","radarAxisLabel")}},"drawAxes");function M(a,t,e,r,s,o,i){const n=t.length,c=Math.min(i.width,i.height)/2;e.forEach((d,p)=>{if(d.entries.length!==n)return;const u=d.entries.map((g,h)=>{const v=2*Math.PI*h/n-Math.PI/2,f=A(g,r,s,c),S=f*Math.cos(v),O=f*Math.sin(v);return{x:S,y:O}});o==="circle"?a.append("path").attr("d",L(u,i.curveTension)).attr("class",`radarCurve-${p}`):o==="polygon"&&a.append("polygon").attr("points",u.map(g=>`${g.x},${g.y}`).join(" ")).attr("class",`radarCurve-${p}`)})}l(M,"drawCurves");function A(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}l(A,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s<e;s++){const o=a[(s-1+e)%e],i=a[s],n=a[(s+1)%e],c=a[(s+2)%e],d={x:i.x+(n.x-o.x)*t,y:i.y+(n.y-o.y)*t},p={x:n.x-(c.x-i.x)*t,y:n.y-(c.y-i.y)*t};r+=` C${d.x},${d.y} ${p.x},${p.y} ${n.x},${n.y}`}return`${r} Z`}l(L,"closedRoundCurve");function T(a,t,e,r){if(!e)return;const s=(r.width/2+r.marginRight)*3/4,o=-(r.height/2+r.marginTop)*3/4,i=20;t.forEach((n,c)=>{const d=a.append("g").attr("transform",`translate(${s}, ${o+c*i})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}l(T,"drawLegend");var nt={draw:et},ot=l((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){const s=a[`cScale${r}`];e+=`
1
+ import{_ as l,s as k,g as I,t as R,q as _,a as E,b as F,L as D,A as G,G as y,H as C,I as z,l as P,a1 as W,e as B}from"./ndyknmtb.js";import{p as H}from"./1V1SIDI5.js";import{p as V}from"./FakvzamF.js";import"./DbehhcO7.js";var m={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},w={axes:[],curves:[],options:m},x=structuredClone(w),j=z.radar,q=l(()=>y({...j,...C().radar}),"getConfig"),b=l(()=>x.axes,"getAxes"),N=l(()=>x.curves,"getCurves"),U=l(()=>x.options,"getOptions"),X=l(a=>{x.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),Y=l(a=>{x.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:Z(t.entries)}))},"setCurves"),Z=l(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>{var o;return((o=s.axis)==null?void 0:o.$refText)===e.name});if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),J=l(a=>{var e,r,s,o,i;const t=a.reduce((n,c)=>(n[c.name]=c,n),{});x.options={showLegend:((e=t.showLegend)==null?void 0:e.value)??m.showLegend,ticks:((r=t.ticks)==null?void 0:r.value)??m.ticks,max:((s=t.max)==null?void 0:s.value)??m.max,min:((o=t.min)==null?void 0:o.value)??m.min,graticule:((i=t.graticule)==null?void 0:i.value)??m.graticule}},"setOptions"),K=l(()=>{G(),x=structuredClone(w)},"clear"),$={getAxes:b,getCurves:N,getOptions:U,setAxes:X,setCurves:Y,setOptions:J,getConfig:q,clear:K,setAccTitle:F,getAccTitle:E,setDiagramTitle:_,getDiagramTitle:R,getAccDescription:I,setAccDescription:k},Q=l(a=>{H(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),tt={parse:l(async a=>{const t=await V("radar",a);P.debug(t),Q(t)},"parse")},et=l((a,t,e,r)=>{const s=r.db,o=s.getAxes(),i=s.getCurves(),n=s.getOptions(),c=s.getConfig(),d=s.getDiagramTitle(),p=D(t),u=at(p,c),g=n.max??Math.max(...i.map(f=>Math.max(...f.entries))),h=n.min,v=Math.min(c.width,c.height)/2;rt(u,o,v,n.ticks,n.graticule),st(u,o,v,c),M(u,o,i,h,g,n.graticule,c),T(u,i,n.showLegend,c),u.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),at=l((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return B(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),rt=l((a,t,e,r,s)=>{if(s==="circle")for(let o=0;o<r;o++){const i=e*(o+1)/r;a.append("circle").attr("r",i).attr("class","radarGraticule")}else if(s==="polygon"){const o=t.length;for(let i=0;i<r;i++){const n=e*(i+1)/r,c=t.map((d,p)=>{const u=2*p*Math.PI/o-Math.PI/2,g=n*Math.cos(u),h=n*Math.sin(u);return`${g},${h}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),st=l((a,t,e,r)=>{const s=t.length;for(let o=0;o<s;o++){const i=t[o].label,n=2*o*Math.PI/s-Math.PI/2;a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*Math.cos(n)).attr("y2",e*r.axisScaleFactor*Math.sin(n)).attr("class","radarAxisLine"),a.append("text").text(i).attr("x",e*r.axisLabelFactor*Math.cos(n)).attr("y",e*r.axisLabelFactor*Math.sin(n)).attr("class","radarAxisLabel")}},"drawAxes");function M(a,t,e,r,s,o,i){const n=t.length,c=Math.min(i.width,i.height)/2;e.forEach((d,p)=>{if(d.entries.length!==n)return;const u=d.entries.map((g,h)=>{const v=2*Math.PI*h/n-Math.PI/2,f=A(g,r,s,c),S=f*Math.cos(v),O=f*Math.sin(v);return{x:S,y:O}});o==="circle"?a.append("path").attr("d",L(u,i.curveTension)).attr("class",`radarCurve-${p}`):o==="polygon"&&a.append("polygon").attr("points",u.map(g=>`${g.x},${g.y}`).join(" ")).attr("class",`radarCurve-${p}`)})}l(M,"drawCurves");function A(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}l(A,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s<e;s++){const o=a[(s-1+e)%e],i=a[s],n=a[(s+1)%e],c=a[(s+2)%e],d={x:i.x+(n.x-o.x)*t,y:i.y+(n.y-o.y)*t},p={x:n.x-(c.x-i.x)*t,y:n.y-(c.y-i.y)*t};r+=` C${d.x},${d.y} ${p.x},${p.y} ${n.x},${n.y}`}return`${r} Z`}l(L,"closedRoundCurve");function T(a,t,e,r){if(!e)return;const s=(r.width/2+r.marginRight)*3/4,o=-(r.height/2+r.marginTop)*3/4,i=20;t.forEach((n,c)=>{const d=a.append("g").attr("transform",`translate(${s}, ${o+c*i})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}l(T,"drawLegend");var nt={draw:et},ot=l((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){const s=a[`cScale${r}`];e+=`
2
2
  .radarCurve-${r} {
3
3
  color: ${s};
4
4
  fill: ${s};
@@ -0,0 +1 @@
1
+ import{H as We,d as X,r as D,am as re,i as I,c as g,e,b as O,a as w,N as ce,w as N,f as E,t as i,u as t,o as f,_ as me,n as oe,ck as He,bk as ze,l as le,M as Ie,cy as Je,cn as Ce,co as Te,cG as Le,G as ne,K as be,V as $e,q as J,v as Re,Q as te,aE as se,bi as xe,bm as Ae,bA as Pe,bB as De,F as H,x as z,bC as Be,ad as je,D as ue,Z as Ze,U as et}from"./DbehhcO7.js";import{g as Ue}from"./9Skr9Ccw.js";import{X as G,Y as tt,$ as st,i as nt,a0 as ot,a1 as at,a2 as Ke,a3 as Ge,a4 as it,a5 as Me,a6 as rt,f as lt,a7 as dt,a8 as ut,e as ct,a9 as mt,aa as pt,ab as ft,_ as Qe,ac as gt,ad as Oe,ae as vt,af as bt,ag as _t,V as ht,ah as we,ai as yt,aj as xt,ak as $t,al as St,am as wt,an as kt}from"./_fXjN5Pd.js";import{a as It}from"./D9Ycznwo.js";import{b as pe,a as fe,_ as Se,D as ge}from"./DahDvheq.js";import{b as _e,a as qe}from"./BVmBXPoG.js";import{u as Ct}from"./BJMwGHo7.js";import{_ as Tt}from"./CxFAImHj.js";import{_ as Ne}from"./BxlUlYz1.js";import{_ as Lt,u as Rt}from"./0U50G6dt.js";import"./BKh6DDUh.js";import"./Ch_iEFHi.js";import"./vIV0z0PD.js";import"./CEIpXOz0.js";import"./B5rxJs06.js";import"./339BCoyy.js";var Fe={value:"eq","<":"lt","<=":"lte",">":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},At=function(){function n(r){var u=this._condVal=Me(r)?new RegExp(r):rt(r)?r:null;if(u==null){var s="";G(s)}}return n.prototype.evaluate=function(r){var u=typeof r;return Me(u)?this._condVal.test(r):lt(u)?this._condVal.test(r+""):!1},n}(),Pt=function(){function n(){}return n.prototype.evaluate=function(){return this.value},n}(),Dt=function(){function n(){}return n.prototype.evaluate=function(){for(var r=this.children,u=0;u<r.length;u++)if(!r[u].evaluate())return!1;return!0},n}(),Bt=function(){function n(){}return n.prototype.evaluate=function(){for(var r=this.children,u=0;u<r.length;u++)if(r[u].evaluate())return!0;return!1},n}(),Nt=function(){function n(){}return n.prototype.evaluate=function(){return!this.child.evaluate()},n}(),Et=function(){function n(){}return n.prototype.evaluate=function(){for(var r=!!this.valueParser,u=this.getValue,s=u(this.valueGetterParam),o=r?this.valueParser(s):null,v=0;v<this.subCondList.length;v++)if(!this.subCondList[v].evaluate(r?o:s))return!1;return!0},n}();function Ee(n,r){if(n===!0||n===!1){var u=new Pt;return u.value=n,u}var s="";return Xe(n)||G(s),n.and?Ve("and",n,r):n.or?Ve("or",n,r):n.not?Mt(n,r):Ot(n,r)}function Ve(n,r,u){var s=r[n],o="";nt(s)||G(o),s.length||G(o);var v=n==="and"?new Dt:new Bt;return v.children=ot(s,function(c){return Ee(c,u)}),v.children.length||G(o),v}function Mt(n,r){var u=n.not,s="";Xe(u)||G(s);var o=new Nt;return o.child=Ee(u,r),o.child||G(s),o}function Ot(n,r){for(var u="",s=r.prepareGetValue(n),o=[],v=at(n),c=n.parser,x=c?Ke(c):null,h=0;h<v.length;h++){var m=v[h];if(!(m==="parser"||r.valueGetterAttrMap.get(m))){var _=Ge(Fe,m)?Fe[m]:m,$=n[m],b=x?x($):$,p=it(_,b)||_==="reg"&&new At(b);p||G(u),o.push(p)}}o.length||G(u);var S=new Et;return S.valueGetterParam=s,S.valueParser=x,S.getValue=r.getValue,S.subCondList=o,S}function Xe(n){return tt(n)&&!st(n)}var Ft=function(){function n(r,u){this._cond=Ee(r,u)}return n.prototype.evaluate=function(){return this._cond.evaluate()},n}();function Vt(n,r){return new Ft(n,r)}var Ht={type:"echarts:filter",transform:function(n){for(var r=n.upstream,u,s=Vt(n.config,{valueGetterAttrMap:dt({dimension:!0}),prepareGetValue:function(x){var h="",m=x.dimension;Ge(x,"dimension")||G(h);var _=r.getDimensionInfo(m);return _||G(h),{dimIdx:_.index}},getValue:function(x){return r.retrieveValueFromItem(u,x.dimIdx)}}),o=[],v=0,c=r.count();v<c;v++)u=r.getRawDataItem(v),s.evaluate()&&o.push(u);return{data:o}}},zt={type:"echarts:sort",transform:function(n){var r=n.upstream,u=n.config,s="",o=ut(u);o.length||G(s);var v=[];ct(o,function(_){var $=_.dimension,b=_.order,p=_.parser,S=_.incomparable;if($==null&&G(s),b!=="asc"&&b!=="desc"&&G(s),S&&S!=="min"&&S!=="max"){var l="";G(l)}if(b!=="asc"&&b!=="desc"){var a="";G(a)}var d=r.getDimensionInfo($);d||G(s);var T=p?Ke(p):null;p&&!T&&G(s),v.push({dimIdx:d.index,parser:T,comparator:new mt(b,S)})});var c=r.sourceFormat;c!==pt&&c!==ft&&G(s);for(var x=[],h=0,m=r.count();h<m;h++)x.push(r.getRawDataItem(h));return x.sort(function(_,$){for(var b=0;b<v.length;b++){var p=v[b],S=r.retrieveValueFromItem(_,p.dimIdx),l=r.retrieveValueFromItem($,p.dimIdx);p.parser&&(S=p.parser(S),l=p.parser(l));var a=p.comparator.evaluate(S,l);if(a!==0)return a}return 0}),{data:x}}};function jt(n){n.registerTransform(Ht),n.registerTransform(zt)}var Ut=function(n){Qe(r,n);function r(){var u=n!==null&&n.apply(this,arguments)||this;return u.type="dataset",u}return r.prototype.init=function(u,s,o){n.prototype.init.call(this,u,s,o),this._sourceManager=new gt(this),Oe(this)},r.prototype.mergeOption=function(u,s){n.prototype.mergeOption.call(this,u,s),Oe(this)},r.prototype.optionUpdated=function(){this._sourceManager.dirty()},r.prototype.getSourceManager=function(){return this._sourceManager},r.type="dataset",r.defaultOption={seriesLayoutBy:vt},r}(bt),Kt=function(n){Qe(r,n);function r(){var u=n!==null&&n.apply(this,arguments)||this;return u.type="dataset",u}return r.type="dataset",r}(_t);function Gt(n){n.registerComponentModel(Ut),n.registerComponentView(Kt)}const de=n=>It(n??0),ie=n=>n==null?"0.00/s":`${n.toFixed(2)}/s`,ke=n=>n==null?"0%":`${n.toFixed(2)}%`,he=n=>{if(!n)return"-";const r=new Date(n);return Number.isNaN(r.getTime())?n:r.toLocaleString()},Ye=n=>{if(n==null)return"-";if(n<60)return`${n}s`;const r=Math.floor(n/60),u=n%60;if(r<60)return`${r}m ${u}s`;const s=Math.floor(r/60),o=r%60;return`${s}h ${o}m`},Qt=n=>n==null||n<=0?"0 B":We(n).replace(" bytes"," B"),qt=n=>{if(!n)return"-";const r=n.replace(/\s+/g," ").trim();return r?r.length>320?`${r.slice(0,320)}...`:r:"-"},Xt=n=>(n||"").toLowerCase().includes("idle in transaction"),Yt={class:"space-y-4"},Wt={class:"flex items-center justify-between"},Jt={key:0,class:"border border-red-300 bg-red-50 text-red-700 rounded-lg p-3 text-sm"},Zt={class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-2.5"},es={class:"h-full border rounded-lg p-2.5 space-y-2"},ts={class:"flex items-center gap-1"},ss={class:"text-sm font-semibold leading-none tabular-nums"},ns={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},os={class:"text-muted-foreground"},as={class:"tabular-nums text-foreground"},is={class:"text-muted-foreground"},rs={class:"tabular-nums text-foreground"},ls={class:"text-muted-foreground"},ds={class:"tabular-nums text-foreground"},us={class:"text-muted-foreground"},cs={class:"tabular-nums text-foreground"},ms={class:"h-full border rounded-lg p-2.5 space-y-2"},ps={class:"flex items-center gap-1"},fs={class:"text-sm font-semibold leading-none tabular-nums"},gs={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},vs={class:"text-muted-foreground"},bs={class:"tabular-nums text-foreground"},_s={class:"text-muted-foreground"},hs={class:"tabular-nums text-foreground"},ys={class:"text-muted-foreground"},xs={class:"tabular-nums text-foreground"},$s={class:"text-muted-foreground"},Ss={class:"tabular-nums text-foreground"},ws={class:"h-full border rounded-lg p-2.5 space-y-2"},ks={class:"flex items-center gap-1"},Is={class:"text-sm font-semibold leading-none tabular-nums"},Cs={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},Ts={class:"text-muted-foreground"},Ls={class:"tabular-nums text-foreground"},Rs={class:"text-muted-foreground"},As={class:"tabular-nums text-foreground"},Ps={class:"text-muted-foreground"},Ds={class:"tabular-nums text-foreground"},Bs={class:"text-muted-foreground"},Ns={class:"tabular-nums text-foreground"},Es={class:"h-full border rounded-lg p-2.5 space-y-2"},Ms={class:"flex items-center gap-1"},Os={class:"text-sm font-semibold leading-none tabular-nums"},Fs={class:"grid grid-cols-2 gap-x-3 gap-y-1 text-[11px]"},Vs={class:"text-muted-foreground"},Hs={class:"tabular-nums text-foreground"},zs={class:"text-muted-foreground"},js={class:"tabular-nums text-foreground"},Us={class:"text-muted-foreground"},Ks={class:"tabular-nums text-foreground"},Gs={class:"text-muted-foreground"},Qs={class:"tabular-nums text-foreground"},qs={class:"grid grid-cols-1 xl:grid-cols-2 gap-3"},Xs={class:"border rounded-lg p-2.5"},Ys={class:"insights-chart-container"},Ws={class:"border rounded-lg p-2.5"},Js={class:"insights-chart-container"},Zs={class:"border rounded-lg p-2.5"},en={class:"insights-chart-container"},tn=X({__name:"InstanceInsightsActivitySection",props:{dashboard:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function}},setup(n){ht([yt,xt,$t,Gt,jt,St,wt,kt]);const r=n,u=D({}),s=D({}),o=D({}),v=(l,a)=>{a!=null&&a.selected&&(l.value={...a.selected})},c=l=>v(u,l),x=l=>v(s,l),h=l=>v(o,l),m=D([]);re(()=>r.dashboard,l=>{if(!(l!=null&&l.capturedAt))return;const a=new Date(l.capturedAt).toLocaleTimeString(),d={capturedAt:l.capturedAt,label:a,sessionsTotal:l.sessions.total,sessionsActive:l.sessions.active,sessionsIdle:l.sessions.idle,tps:l.transactions.tps,commits:l.transactions.commitsPerSec,rollbacks:l.transactions.rollbacksPerSec,reads:l.blockIO.readsPerSec,hits:l.blockIO.hitsPerSec,hitRatio:l.blockIO.bufferHitRatio},T=m.value.findIndex(j=>j.capturedAt===d.capturedAt);if(T>=0){m.value[T]=d;return}m.value.push(d),m.value.length>80&&(m.value=m.value.slice(-80))},{immediate:!0,deep:!0});const _=I(()=>m.value.map((l,a)=>({...l,idx:a}))),$=l=>Object.keys(l).length?l:void 0,b=I(()=>({tooltip:{trigger:"axis"},legend:{top:0,selected:$(u.value)},dataset:[{id:"sessions_raw",source:_.value},{id:"sessions_filtered",fromDatasetId:"sessions_raw",transform:{type:"filter",config:{dimension:"idx",gte:0}}}],grid:{left:45,right:20,top:34,bottom:24},xAxis:{type:"category",boundaryGap:!1},yAxis:{type:"value"},series:[{name:"Total",type:"line",smooth:!0,datasetId:"sessions_filtered",encode:{x:"label",y:"sessionsTotal"}},{name:"Active",type:"line",smooth:!0,datasetId:"sessions_filtered",encode:{x:"label",y:"sessionsActive"}},{name:"Idle",type:"line",smooth:!0,datasetId:"sessions_filtered",encode:{x:"label",y:"sessionsIdle"}}]})),p=I(()=>({tooltip:{trigger:"axis"},legend:{top:0,selected:$(s.value)},dataset:[{id:"transactions_dataset",source:_.value}],grid:{left:45,right:20,top:34,bottom:24},xAxis:{type:"category",boundaryGap:!0},yAxis:[{type:"value",name:"TPS"},{type:"value",name:"Commit/Rollback"}],series:[{name:"TPS",type:"line",smooth:!0,yAxisIndex:0,datasetId:"transactions_dataset",encode:{x:"label",y:"tps"}},{name:"Commits/s",type:"bar",yAxisIndex:1,datasetId:"transactions_dataset",encode:{x:"label",y:"commits"}},{name:"Rollbacks/s",type:"bar",yAxisIndex:1,datasetId:"transactions_dataset",encode:{x:"label",y:"rollbacks"}}]})),S=I(()=>({tooltip:{trigger:"axis"},legend:{top:0,selected:$(o.value)},dataset:[{id:"block_io_dataset",source:_.value}],grid:{left:45,right:20,top:34,bottom:24},xAxis:{type:"category",boundaryGap:!0},yAxis:[{type:"value",name:"Blocks/s"},{type:"value",name:"Hit %",min:0,max:100}],series:[{name:"Reads/s",type:"bar",yAxisIndex:0,datasetId:"block_io_dataset",encode:{x:"label",y:"reads"}},{name:"Hits/s",type:"bar",yAxisIndex:0,datasetId:"block_io_dataset",encode:{x:"label",y:"hits"}},{name:"Buffer Hit Ratio",type:"line",smooth:!0,yAxisIndex:1,datasetId:"block_io_dataset",encode:{x:"label",y:"hitRatio"}}]}));return(l,a)=>{var j,R,F,K,Q,k,M,V,y,L,U,A,P,q,Z,ae,ve,C,B,W,Y;const d=me,T=ce;return f(),g("div",Yt,[e("div",Wt,[a[2]||(a[2]=e("div",null,[e("h3",{class:"text-sm font-medium"},"Activity Dashboard"),e("p",{class:"text-xs text-muted-foreground"}," Sessions, TPS, tuples and block I/O ")],-1)),w(T,{variant:"outline",size:"xs",disabled:l.isLoading||l.isActionLoading,class:"font-normal",onClick:a[0]||(a[0]=ye=>l.onRefresh())},{default:N(()=>[w(d,{name:"hugeicons:redo",class:oe(["size-4",l.isLoading&&"animate-spin"])},null,8,["class"]),a[1]||(a[1]=E(" Refresh Activity "))]),_:1},8,["disabled"])]),(j=l.dashboard)!=null&&j.sessions.exceedsThreshold?(f(),g("div",Jt,[a[3]||(a[3]=E(" Total connections are at ")),e("strong",null,i(t(ke)(l.dashboard.sessions.usagePercent)),1),a[4]||(a[4]=E(" of ")),a[5]||(a[5]=e("strong",null,"max_connections",-1)),a[6]||(a[6]=E(". Investigate connection pool usage. "))])):O("",!0),e("div",Zt,[e("div",es,[e("div",ts,[a[7]||(a[7]=e("p",{class:"text-xs uppercase text-muted-foreground"},"Sessions:",-1)),e("p",ss,i(t(de)((R=l.dashboard)==null?void 0:R.sessions.total)),1)]),e("div",ns,[e("p",os,[a[8]||(a[8]=e("span",null,"Active: ",-1)),e("span",as,i(t(de)((F=l.dashboard)==null?void 0:F.sessions.active)),1)]),e("p",is,[a[9]||(a[9]=e("span",null,"Idle: ",-1)),e("span",rs,i(t(de)((K=l.dashboard)==null?void 0:K.sessions.idle)),1)]),e("p",ls,[a[10]||(a[10]=e("span",null,"Max: ",-1)),e("span",ds,i(t(de)((Q=l.dashboard)==null?void 0:Q.sessions.maxConnections)),1)]),e("p",us,[a[11]||(a[11]=e("span",null,"Usage: ",-1)),e("span",cs,i(t(ke)((k=l.dashboard)==null?void 0:k.sessions.usagePercent)),1)])])]),e("div",ms,[e("div",ps,[a[12]||(a[12]=e("p",{class:"text-xs uppercase text-muted-foreground"},"TPS:",-1)),e("p",fs,i(t(ie)((M=l.dashboard)==null?void 0:M.transactions.tps)),1)]),e("div",gs,[e("p",vs,[a[13]||(a[13]=e("span",null,"Commits/sec: ",-1)),e("span",bs,i(t(ie)((V=l.dashboard)==null?void 0:V.transactions.commitsPerSec)),1)]),e("p",_s,[a[14]||(a[14]=e("span",null,"Rollbacks/sec: ",-1)),e("span",hs,i(t(ie)((y=l.dashboard)==null?void 0:y.transactions.rollbacksPerSec)),1)]),e("p",ys,[a[15]||(a[15]=e("span",null,"Total Commits: ",-1)),e("span",xs,i(t(de)((L=l.dashboard)==null?void 0:L.transactions.totalCommits)),1)]),e("p",$s,[a[16]||(a[16]=e("span",null,"Total Rollbacks: ",-1)),e("span",Ss,i(t(de)((U=l.dashboard)==null?void 0:U.transactions.totalRollbacks)),1)])])]),e("div",ws,[e("div",ks,[a[17]||(a[17]=e("p",{class:"text-xs uppercase text-muted-foreground"},"Tuples:",-1)),e("p",Is,i(t(ie)((A=l.dashboard)==null?void 0:A.tuples.insertsPerSec)),1)]),e("div",Cs,[e("p",Ts,[a[18]||(a[18]=e("span",null,"Updates: ",-1)),e("span",Ls,i(t(ie)((P=l.dashboard)==null?void 0:P.tuples.updatesPerSec)),1)]),e("p",Rs,[a[19]||(a[19]=e("span",null,"Deletes: ",-1)),e("span",As,i(t(ie)((q=l.dashboard)==null?void 0:q.tuples.deletesPerSec)),1)]),e("p",Ps,[a[20]||(a[20]=e("span",null,"Fetched: ",-1)),e("span",Ds,i(t(ie)((Z=l.dashboard)==null?void 0:Z.tuples.fetchedPerSec)),1)]),e("p",Bs,[a[21]||(a[21]=e("span",null,"Returned: ",-1)),e("span",Ns,i(t(ie)((ae=l.dashboard)==null?void 0:ae.tuples.returnedPerSec)),1)])])]),e("div",Es,[e("div",Ms,[a[22]||(a[22]=e("p",{class:"text-xs uppercase text-muted-foreground"},"Block I/O:",-1)),e("p",Os,i(t(ke)((ve=l.dashboard)==null?void 0:ve.blockIO.bufferHitRatio)),1)]),e("div",Fs,[e("p",Vs,[a[23]||(a[23]=e("span",null,"Reads/sec: ",-1)),e("span",Hs,i(t(ie)((C=l.dashboard)==null?void 0:C.blockIO.readsPerSec)),1)]),e("p",zs,[a[24]||(a[24]=e("span",null,"Hits/sec: ",-1)),e("span",js,i(t(ie)((B=l.dashboard)==null?void 0:B.blockIO.hitsPerSec)),1)]),e("p",Us,[a[25]||(a[25]=e("span",null,"Total Reads: ",-1)),e("span",Ks,i(t(de)((W=l.dashboard)==null?void 0:W.blockIO.totalReads)),1)]),e("p",Gs,[a[26]||(a[26]=e("span",null,"Total Hits: ",-1)),e("span",Qs,i(t(de)((Y=l.dashboard)==null?void 0:Y.blockIO.totalHits)),1)])])])]),e("div",qs,[e("div",Xs,[a[27]||(a[27]=e("p",{class:"text-sm font-medium mb-1.5"},"Sessions Timeline",-1)),e("div",Ys,[w(t(we),{option:t(b),autoresize:"",class:"insights-chart",onLegendselectchanged:c},null,8,["option"])])]),e("div",Ws,[a[28]||(a[28]=e("p",{class:"text-sm font-medium mb-1.5"},"Transactions Timeline",-1)),e("div",Js,[w(t(we),{option:t(p),autoresize:"",class:"insights-chart",onLegendselectchanged:x},null,8,["option"])])])]),e("div",Zs,[a[29]||(a[29]=e("p",{class:"text-sm font-medium mb-1.5"},"Block I/O Timeline",-1)),e("div",en,[w(t(we),{option:t(S),autoresize:"",class:"insights-chart",onLegendselectchanged:h},null,8,["option"])])])])}}}),sn=He(tn,[["__scopeId","data-v-ba36a884"]]),nn={class:"space-y-4 h-full flex flex-col overflow-auto"},on={class:"flex items-center justify-between gap-2 flex-wrap"},an={class:"h-full"},rn={class:"flex flex-col sm:flex-row sm:items-center gap-2 mb-2"},ln={class:"relative flex-1"},dn=X({__name:"InstanceInsightsConfigurationSection",props:{configuration:{},search:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function}},emits:["update:search"],setup(n,{emit:r}){const u=n,s=r,o=I({get:()=>u.search,set:_=>s("update:search",_)}),v=I(()=>{var _;return((_=u.configuration)==null?void 0:_.rows)||[]}),c=I(()=>v.value.map(_=>({name:_.name,category:_.category,value:_.value,unit:_.unit||"-",requires_restart:_.pendingRestart?"yes":"no",description:_.description}))),x=I(()=>_e(c.value)),h=I(()=>pe({columns:x.value,rows:c.value,columnKeyBy:"field"})),m=I(()=>fe(c.value));return(_,$)=>{const b=me,p=ce,S=ze,l=Se;return f(),g("div",nn,[e("div",on,[$[3]||($[3]=e("div",null,[e("h3",{class:"text-sm font-medium"},"Configuration"),e("p",{class:"text-xs text-muted-foreground"},"Searchable pg_settings")],-1)),w(p,{variant:"outline",size:"xs",disabled:_.isLoading||_.isActionLoading,class:"font-normal",onClick:$[0]||($[0]=a=>_.onRefresh())},{default:N(()=>[w(b,{name:"hugeicons:redo",class:oe(["size-4",_.isLoading&&"animate-spin"])},null,8,["class"]),$[2]||($[2]=E(" Refresh Configuration "))]),_:1},8,["disabled"])]),e("div",an,[e("div",rn,[e("div",ln,[w(b,{name:"hugeicons:search-01",class:"size-4 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),w(S,{type:"text",placeholder:"Search setting name, category, or description...",class:"h-8 w-full pl-8 pr-3",modelValue:t(o),"onUpdate:modelValue":$[1]||($[1]=a=>le(o)?o.value=a:null)},null,8,["modelValue"])])]),w(l,{"column-defs":t(h),"row-data":t(m),"column-types":t(ge),class:"h-full border rounded-md"},null,8,["column-defs","row-data","column-types"])])])}}}),un={class:"space-y-4"},cn={class:"flex items-center justify-between"},mn={key:0,class:"border border-orange-300 bg-orange-50 text-orange-700 rounded-lg p-3 text-sm"},pn={class:"space-y-1.5"},fn={class:"space-y-1.5"},gn={key:1,class:"border rounded-lg p-2.5"},vn={class:"flex items-center justify-between gap-3 flex-wrap"},bn={class:"text-sm font-medium"},_n={class:"flex items-center gap-2"},hn=300,yn=120,xn=44,$n=36,Sn=X({__name:"InstanceInsightsReplicationSection",props:{replication:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function},onToggleSlotStatus:{type:Function},onDropSlot:{type:Function}},setup(n){const r=n,u=I(()=>{var k;return((k=r.replication)==null?void 0:k.replicationStats)||[]}),s=I(()=>{var k;return((k=r.replication)==null?void 0:k.replicationSlots)||[]}),o=D([]),v=k=>{o.value=k},c=I(()=>u.value.map(k=>({pid:k.pid,client_addr:k.clientAddr||"-",application:k.applicationName||"-",state:k.state||"-",sync_state:k.syncState||"-",reply_time:he(k.replyTime),write_lag:k.writeLag||"-",flush_lag:k.flushLag||"-",replay_lag:k.replayLag||"-"}))),x=["pid","client_addr","application","state","sync_state","reply_time","write_lag","flush_lag","replay_lag"],h=I(()=>c.value.length>0?_e(c.value):qe(x)),m=I(()=>pe({columns:h.value,rows:c.value,columnKeyBy:"field"})),_=I(()=>fe(c.value)),$=I(()=>s.value.map(k=>({slot_name:k.slotName,slot_type:k.slotType,status:k.active?"on":"off",active_pid:k.activePid??"-",restart_lsn:k.restartLsn||"-",retained_wal:Qt(k.retainedBytes),temporary:k.temporary?"yes":"no"}))),b=I(()=>_e($.value)),p=I(()=>pe({columns:b.value,rows:$.value,columnKeyBy:"field"})),S=I(()=>fe($.value)),l=k=>k<=0?yn:Math.min(hn,xn+k*$n),a=I(()=>`${l(c.value.length)}px`),d=I(()=>`${l($.value.length)}px`),T=I(()=>{var M;const k=String(((M=o.value[0])==null?void 0:M.slot_name)||"");return k&&s.value.find(V=>V.slotName===k)||null}),j=I(()=>{var k;return(k=T.value)!=null&&k.active?"off":"on"}),R=I(()=>j.value==="off"?"Turn Off Slot":"Turn On Slot"),F=k=>window.confirm(k),K=async()=>{T.value&&F(`Drop replication slot "${T.value.slotName}"? This action cannot be undone.`)&&await r.onDropSlot(T.value.slotName)},Q=async()=>{T.value&&F(`Switch replication slot "${T.value.slotName}" to ${j.value.toUpperCase()} status?`)&&await r.onToggleSlotStatus({slotName:T.value.slotName,desiredStatus:j.value,activePid:T.value.activePid,slotType:T.value.slotType})};return(k,M)=>{var U;const V=me,y=ce,L=Se;return f(),g("div",un,[e("div",cn,[M[2]||(M[2]=e("div",null,[e("h3",{class:"text-sm font-medium"},"Replication"),e("p",{class:"text-xs text-muted-foreground"},"Replication stats and slots")],-1)),w(y,{variant:"outline",size:"xs",disabled:k.isLoading||k.isActionLoading,class:"font-normal",onClick:M[0]||(M[0]=A=>k.onRefresh())},{default:N(()=>[w(V,{name:"hugeicons:redo",class:oe(["size-4",k.isLoading&&"animate-spin"])},null,8,["class"]),M[1]||(M[1]=E(" Refresh Replication "))]),_:1},8,["disabled"])]),(U=k.replication)!=null&&U.staleSlotWarning?(f(),g("div",mn,i(k.replication.staleSlotWarning),1)):O("",!0),e("div",pn,[M[3]||(M[3]=e("p",{class:"text-sm"},"Replication Stats",-1)),e("div",{class:"max-h-[300px] min-h-[200px]",style:Ie({height:t(a)})},[w(L,{"column-defs":t(m),"row-data":t(_),"column-types":t(ge),class:"h-full border rounded-md"},null,8,["column-defs","row-data","column-types"])],4)]),e("div",fn,[M[4]||(M[4]=e("h4",{class:"text-sm font-normal"},"Replication Slots",-1)),e("div",{class:"max-h-[300px] min-h-[200px]",style:Ie({height:t(d)})},[w(L,{"column-defs":t(p),"row-data":t(S),"column-types":t(ge),"selected-rows":t(o),class:"h-full border rounded-md",onSelectionChanged:v},null,8,["column-defs","row-data","column-types","selected-rows"])],4)]),t(T)?(f(),g("div",gn,[e("div",vn,[e("p",bn," Selected Slot: "+i(t(T).slotName)+" ("+i(t(T).active?"on":"off")+") · Active PID: "+i(t(T).activePid??"-"),1),e("div",_n,[w(y,{variant:"outline",size:"sm",disabled:k.isActionLoading,onClick:Q},{default:N(()=>[E(i(t(R)),1)]),_:1},8,["disabled"]),w(y,{variant:"outline",size:"sm",disabled:k.isActionLoading,onClick:K},{default:N(()=>M[5]||(M[5]=[E(" Drop Slot ")])),_:1},8,["disabled"])])])])):O("",!0)])}}}),wn={class:"space-y-4"},kn={class:"flex items-center justify-between"},In={class:"space-y-1.5"},Cn={class:"h-[360px]"},Tn={key:0,class:"border rounded-lg p-2.5 space-y-2"},Ln={class:"flex items-center justify-between gap-3 flex-wrap"},Rn={class:"text-sm font-medium"},An={class:"flex gap-2"},Pn=["innerHTML"],Dn={class:"grid grid-cols-1 xl:grid-cols-2 gap-3"},Bn={class:"space-y-1.5"},Nn={class:"h-[300px]"},En={class:"space-y-1.5"},Mn={class:"h-[300px]"},On=X({__name:"InstanceInsightsStateSection",props:{state:{},isLoading:{type:Boolean},isActionLoading:{type:Boolean},onRefresh:{type:Function},onCancelQuery:{type:Function},onTerminateConnection:{type:Function}},setup(n){const r=n,{highlightSql:u}=Ct(),s=I(()=>{var y;return((y=r.state)==null?void 0:y.sessions)||[]}),o=I(()=>{var y;return((y=r.state)==null?void 0:y.locks)||[]}),v=I(()=>{var y;return((y=r.state)==null?void 0:y.preparedTransactions)||[]}),c=D([]),x=y=>{c.value=y},h=I(()=>s.value.map(y=>({pid:y.pid,user:y.user,application:y.application||"-",client:y.client||"-",state:y.state||"-",wait_event:y.waitEvent||"-",blocking_pids:y.blockingPids.length?y.blockingPids.join(", "):"-",backend_start:he(y.backendStart),transaction_start:he(y.transactionStart),query_duration:Ye(y.durationSeconds),sql:qt(y.sql)}))),m=I(()=>_e(h.value)),_=I(()=>pe({columns:m.value,rows:h.value,columnKeyBy:"field",getCellClass:Q})),$=I(()=>fe(h.value)),b=I(()=>o.value.map(y=>({lock_type:y.lockType,target_relation:y.targetRelation||"-",mode:y.mode,granted:y.granted?"yes":"no",pid:y.pid??"-",user:y.user||"-",state:y.state||"-"}))),p=I(()=>_e(b.value)),S=I(()=>pe({columns:p.value,rows:b.value,columnKeyBy:"field"})),l=I(()=>fe(b.value)),a=I(()=>v.value.map(y=>({gid:y.gid,transaction:y.transaction,prepared:he(y.prepared),owner:y.owner,database:y.database}))),d=I(()=>_e(a.value)),T=I(()=>pe({columns:d.value,rows:a.value,columnKeyBy:"field"})),j=I(()=>fe(a.value)),R=I(()=>{var L;const y=Number(((L=c.value[0])==null?void 0:L.pid)||0);return y&&s.value.find(U=>U.pid===y)||null}),F=y=>{if(!y||!y.trim())return"<pre><code>-</code></pre>";const L=y.replace(/\s+/g," ").trim(),U=L.length>900?`${L.slice(0,900)} ...`:L;return u(U)},K=I(()=>{var y;return F(((y=R.value)==null?void 0:y.sql)||null)}),Q=(y,L)=>{const U=String(L.state||"");return Xt(U)?"insights-danger-cell":void 0},k=y=>window.confirm(y),M=async()=>{R.value&&k(`Cancel query for PID ${R.value.pid}?`)&&await r.onCancelQuery(R.value.pid)},V=async()=>{R.value&&k(`Terminate connection for PID ${R.value.pid}?`)&&await r.onTerminateConnection(R.value.pid)};return(y,L)=>{const U=me,A=ce,P=Se;return f(),g("div",wn,[e("div",kn,[L[2]||(L[2]=e("div",null,[e("h3",{class:"text-sm font-medium"},"State"),e("p",{class:"text-xs text-muted-foreground"}," Active sessions, locks, prepared transactions ")],-1)),w(A,{variant:"outline",size:"xs",disabled:y.isLoading||y.isActionLoading,class:"font-normal",onClick:L[0]||(L[0]=q=>y.onRefresh())},{default:N(()=>[w(U,{name:"hugeicons:redo",class:oe(["size-4",y.isLoading&&"animate-spin"])},null,8,["class"]),L[1]||(L[1]=E(" Refresh State "))]),_:1},8,["disabled"])]),e("div",In,[L[3]||(L[3]=e("h4",{class:"text-sm font-normal"},"Active Sessions",-1)),e("div",Cn,[w(P,{"column-defs":t(_),"row-data":t($),"column-types":t(ge),"selected-rows":t(c),class:"h-full border rounded-md",onSelectionChanged:x},null,8,["column-defs","row-data","column-types","selected-rows"])])]),t(R)?(f(),g("div",Tn,[e("div",Ln,[e("p",Rn," Selected PID: "+i(t(R).pid)+" ("+i(t(R).state||"-")+") ",1),e("div",An,[w(A,{variant:"outline",size:"sm",disabled:y.isActionLoading,onClick:M},{default:N(()=>L[4]||(L[4]=[E(" Cancel Query ")])),_:1},8,["disabled"]),w(A,{variant:"outline",size:"sm",disabled:y.isActionLoading,onClick:V},{default:N(()=>L[5]||(L[5]=[E(" Terminate Connection ")])),_:1},8,["disabled"])])]),e("div",null,[L[6]||(L[6]=e("p",{class:"text-xs text-muted-foreground mb-1"},"SQL Preview",-1)),e("div",{class:"sql-preview border rounded-md overflow-hidden",innerHTML:t(K)},null,8,Pn)])])):O("",!0),e("div",Dn,[e("div",Bn,[L[7]||(L[7]=e("h4",{class:"text-sm font-normal"},"Locks",-1)),e("div",Nn,[w(P,{"column-defs":t(S),"row-data":t(l),"column-types":t(ge),class:"h-full border rounded-md"},null,8,["column-defs","row-data","column-types"])])]),e("div",En,[L[8]||(L[8]=e("h4",{class:"text-sm font-normal"},"Prepared Transactions",-1)),e("div",Mn,[w(P,{"column-defs":t(T),"row-data":t(j),"column-types":t(ge),class:"h-full border rounded-md"},null,8,["column-defs","row-data","column-types"])])])])])}}}),Fn=He(On,[["__scopeId","data-v-07dc1849"]]),Vn=5e3;function Hn(n){const r=D("activity"),u=D(!0),s=D(Vn),o=D(null),v=D(!1),c=D(!1),x=D(!1),h=D(!1),m=D(!1),_=D(!1),$=D(null),b=D(null),p=D(null),S=D(null),l=D(""),a=Je(l,350),d=I(()=>!!n.value),T=D(!0);Ce(()=>{T.value=!1}),Te(()=>{T.value=!0});const j=()=>{o.value=null,$.value=null,b.value=null,p.value=null,S.value=null},R=async(C,B)=>{var W;try{return o.value=null,await C()}catch(Y){const ye=((W=Y==null?void 0:Y.data)==null?void 0:W.message)||(Y==null?void 0:Y.message)||(Y==null?void 0:Y.statusMessage)||B;return o.value=ye,null}},F=async(C={})=>{if(!d.value)return null;C.silent||(x.value=!0);const B=await R(async()=>await $fetch("/api/instance-insights/dashboard",{method:"POST",body:{...ne(n.value)}}),"Failed to fetch activity dashboard");return B&&($.value=B),C.silent||(x.value=!1),B},K=async(C={})=>{if(!d.value)return null;C.silent||(h.value=!0);const B=await R(async()=>await $fetch("/api/instance-insights/state",{method:"POST",body:{...ne(n.value)}}),"Failed to fetch active sessions and locks");return B&&(b.value=B),C.silent||(h.value=!1),B},Q=async(C={})=>{if(!d.value)return null;C.silent||(m.value=!0);const B=await R(async()=>await $fetch("/api/instance-insights/configuration",{method:"POST",body:{...ne(n.value),search:a.value||void 0}}),"Failed to fetch PostgreSQL settings");return B&&(p.value=B),C.silent||(m.value=!1),B},k=async(C={})=>{if(!d.value)return null;C.silent||(_.value=!0);const B=await R(async()=>await $fetch("/api/instance-insights/replication",{method:"POST",body:{...ne(n.value)}}),"Failed to fetch replication status");return B&&(S.value=B),C.silent||(_.value=!1),B},M=async(C=r.value,B={})=>{switch(C){case"activity":await F(B);break;case"state":await Promise.all([F({silent:!0}),K(B)]);break;case"configuration":await Promise.all([F({silent:!0}),Q(B)]);break;case"replication":await Promise.all([F({silent:!0}),k(B)]);break;default:await F(B);break}},V=async(C={})=>{await Promise.all([F(C),K(C),Q(C),k(C)])},y=async(C,B)=>{if(!d.value)return!1;c.value=!0;const W=await R(C,"Action failed");return c.value=!1,W?(W.success?be(B,{description:W.message}):be(W.message,{description:"The server did not complete this action."}),W.success):(be(o.value||"Action failed",{description:"Check database permissions and try again."}),!1)},L=async C=>{await y(async()=>await $fetch("/api/instance-insights/cancel-query",{method:"POST",body:{...ne(n.value),pid:C}}),`Cancelled query for PID ${C}`)&&await K({silent:!0})},U=async C=>{await y(async()=>await $fetch("/api/instance-insights/terminate-connection",{method:"POST",body:{...ne(n.value),pid:C}}),`Terminated connection for PID ${C}`)&&(await K({silent:!0}),await F({silent:!0}))},A=async C=>{await y(async()=>await $fetch("/api/instance-insights/drop-slot",{method:"POST",body:{...ne(n.value),slotName:C}}),`Dropped replication slot "${C}"`)&&await k({silent:!0})},P=async C=>{await y(async()=>await $fetch("/api/instance-insights/toggle-slot-status",{method:"POST",body:{...ne(n.value),slotName:C.slotName,desiredStatus:C.desiredStatus,activePid:C.activePid??null,slotType:C.slotType??null}}),`Turned ${C.desiredStatus} slot "${C.slotName}"`)&&await k({silent:!0})},q=async()=>{if(!d.value){j();return}v.value=!0,await V(),v.value=!1};re(()=>n.value,async C=>{if(!C){j();return}await q()},{immediate:!0}),re(()=>a.value,async()=>{r.value!=="configuration"||!d.value||await Q({silent:!0})}),re(()=>r.value,async C=>{d.value&&(C==="state"&&!b.value&&await K(),C==="configuration"&&!p.value&&await Q(),C==="replication"&&!S.value&&await k())});const{pause:Z,resume:ae,isActive:ve}=Le(async()=>{!d.value||!T.value||await M(r.value,{silent:!0})},s,{immediate:!1});return re(()=>u.value,C=>{C?ae():Z()},{immediate:!0}),{activeSection:r,autoRefresh:u,isAutoRefreshRunning:ve,error:o,isInitialLoading:v,isActionLoading:c,isDashboardLoading:x,isStateLoading:h,isConfigurationLoading:m,isReplicationLoading:_,dashboard:$,state:b,configuration:p,replication:S,configurationSearch:l,refreshSection:M,refreshAll:V,fetchDashboard:F,fetchState:K,fetchConfiguration:Q,fetchReplication:k,cancelQuery:L,terminateConnection:U,dropReplicationSlot:A,toggleReplicationSlotStatus:P}}const zn={class:"flex flex-col h-full p-3 gap-3 overflow-hidden"},jn={class:"flex flex-col lg:flex-row lg:items-start lg:justify-between border rounded-lg p-3 gap-3 bg-background"},Un={class:"space-y-1"},Kn={class:"flex items-center gap-2"},Gn={class:"text-sm text-muted-foreground flex items-center gap-0.5"},Qn={class:"flex items-center gap-0.5"},qn={class:"font-medium text-foreground"},Xn={key:0,class:"flex items-center gap-1.5 mt-0.5"},Yn={class:"flex items-center gap-2 flex-wrap"},Wn={class:"text-xs flex items-center gap-2"},Jn={class:"flex items-center justify-between gap-2"},Zn={class:"text-xs text-muted-foreground"},eo={key:0,class:"border border-red-300 bg-red-50 text-red-700 rounded-lg p-3 text-sm"},to={key:1,class:"border rounded-lg p-6 flex items-center justify-center gap-2 text-muted-foreground"},so={key:2,class:"flex-1 overflow-y-auto border rounded-lg p-3 bg-background"},no=X({__name:"InstanceInsightsPanel",props:{dbConnectionString:{},databaseName:{},dbType:{}},setup(n){const r=[{id:"activity",tabLabel:"Activity",subtitle:"Sessions, TPS, tuples and block I/O",icon:"hugeicons:artificial-intelligence-08"},{id:"state",tabLabel:"State",subtitle:"Active sessions, locks, prepared transactions",icon:"hugeicons:shield-01"},{id:"configuration",tabLabel:"Config",subtitle:"Searchable pg_settings",icon:"hugeicons:settings-01"},{id:"replication",tabLabel:"Replication",subtitle:"Replication stats and slots",icon:"hugeicons:database"}],u=$e(),s=I(()=>u.selectedConnection),{activeSection:o,autoRefresh:v,error:c,isInitialLoading:x,isActionLoading:h,isDashboardLoading:m,isStateLoading:_,isConfigurationLoading:$,isReplicationLoading:b,dashboard:p,state:S,configuration:l,replication:a,configurationSearch:d,refreshSection:T,refreshAll:j,cancelQuery:R,terminateConnection:F,dropReplicationSlot:K,toggleReplicationSlotStatus:Q}=Hn(s);I(()=>r.find(A=>A.id===o.value));const k=I(()=>{var A,P,q,Z;return o.value==="activity"?(A=p.value)==null?void 0:A.capturedAt:o.value==="state"?(P=S.value)==null?void 0:P.capturedAt:o.value==="configuration"?(q=l.value)==null?void 0:q.capturedAt:(Z=a.value)==null?void 0:Z.capturedAt}),M=()=>T("activity"),V=()=>T("state"),y=()=>T("configuration"),L=()=>T("replication"),U=A=>Q(A);return(A,P)=>{var Y,ye;const q=me,Z=xe,ae=Ae,ve=ce,C=Be,B=De,W=Pe;return f(),g("div",zn,[e("div",jn,[e("div",Un,[e("div",Kn,[w(q,{name:"hugeicons:database",class:"size-5 text-primary"}),P[4]||(P[4]=e("h2",{class:"text-base font-medium"},"Instance Insights",-1))]),e("div",Gn,[P[5]||(P[5]=E(" connection: ")),e("div",Qn,[A.dbType?(f(),J(Re((Y=t(Ue)(A.dbType))==null?void 0:Y.icon),{key:0,class:"size-4!"})):O("",!0),e("span",qn,i(A.databaseName),1)])]),(ye=t(p))!=null&&ye.version?(f(),g("div",Xn,[w(Z,{variant:"outline",class:"text-xxs h-5 px-1.5 font-normal"},{default:N(()=>[E(" PostgreSQL "+i(t(p).version),1)]),_:1})])):O("",!0)]),e("div",Yn,[e("div",Wn,[w(ae,{id:"insights-auto-refresh","model-value":t(v),"onUpdate:modelValue":P[0]||(P[0]=ee=>le(v)?v.value=ee:null),class:"cursor-pointer"},null,8,["model-value"]),P[6]||(P[6]=e("label",{for:"insights-auto-refresh",class:"cursor-pointer"}," Auto refresh ",-1))]),w(ve,{variant:"outline",size:"sm",disabled:t(x)||t(h),onClick:P[1]||(P[1]=ee=>t(j)()),class:"font-normal"},{default:N(()=>[w(q,{name:"hugeicons:redo",class:"size-4"}),P[7]||(P[7]=E(" Refresh All "))]),_:1},8,["disabled"])])]),e("div",Jn,[w(W,{modelValue:t(o),"onUpdate:modelValue":P[2]||(P[2]=ee=>le(o)?o.value=ee:null),class:"gap-0 flex-1 min-w-0"},{default:N(()=>[w(B,{size:"sm",class:"max-w-full overflow-x-auto justify-start!"},{default:N(()=>[(f(),g(H,null,z(r,ee=>w(C,{size:"xs",key:ee.id,value:ee.id,class:"rounded-sm cursor-pointer min-w-fit shrink-0",onClick:gr=>t(T)(ee.id,{silent:!0})},{default:N(()=>[w(q,{name:ee.icon,class:"size-3.5!"},null,8,["name"]),E(" "+i(ee.tabLabel),1)]),_:2},1032,["value","onClick"])),64))]),_:1})]),_:1},8,["modelValue"]),e("div",Zn," Last updated: "+i(t(he)(t(k))),1)]),t(c)?(f(),g("div",eo,i(t(c)),1)):O("",!0),t(x)&&!t(p)?(f(),g("div",to,[w(q,{name:"hugeicons:redo",class:"size-4 animate-spin"}),P[8]||(P[8]=E(" Loading instance insights... "))])):(f(),g("div",so,[te(w(sn,{dashboard:t(p),isLoading:t(m),isActionLoading:t(h),onRefresh:M},null,8,["dashboard","isLoading","isActionLoading"]),[[se,t(o)==="activity"]]),te(w(Fn,{state:t(S),isLoading:t(_),isActionLoading:t(h),onRefresh:V,onCancelQuery:t(R),onTerminateConnection:t(F)},null,8,["state","isLoading","isActionLoading","onCancelQuery","onTerminateConnection"]),[[se,t(o)==="state"]]),te(w(dn,{search:t(d),"onUpdate:search":P[3]||(P[3]=ee=>le(d)?d.value=ee:null),configuration:t(l),isLoading:t($),isActionLoading:t(h),onRefresh:y},null,8,["search","configuration","isLoading","isActionLoading"]),[[se,t(o)==="configuration"]]),te(w(Sn,{replication:t(a),isLoading:t(b),isActionLoading:t(h),onRefresh:L,onDropSlot:t(K),onToggleSlotStatus:U},null,8,["replication","isLoading","isActionLoading","onDropSlot"]),[[se,t(o)==="replication"]])]))])}}}),oo={key:0,class:"space-y-4"},ao={class:"flex items-start justify-between gap-3 flex-wrap"},io={class:"text-sm font-medium"},ro={class:"text-xs text-muted-foreground"},lo={key:1,class:"flex gap-2 flex-wrap"},uo={key:2,class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-2.5"},co={class:"text-xs uppercase text-muted-foreground"},mo={class:"text-sm font-semibold leading-none tabular-nums"},po={key:0,class:"text-[11px] text-muted-foreground"},fo={key:3,class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-2.5"},go={class:"text-xs uppercase text-muted-foreground"},vo={class:"text-sm font-medium leading-tight break-words"},bo={key:0,class:"text-[11px] text-muted-foreground"},_o={key:4,class:"space-y-2"},ho={class:"font-medium"},yo={class:"text-xs mt-1"},xo={class:"text-sm font-normal"},$o={key:0,class:"text-xs text-muted-foreground"},So={key:0,class:"text-xs text-muted-foreground"},wo=360,ko=120,Io=44,Co=36,To=X({__name:"InstanceInsightsSectionRenderer",props:{section:{},search:{}},setup(n){const r=n,u=I(()=>{var m;return((m=r.search)==null?void 0:m.trim().toLowerCase())||""}),s=I(()=>r.section?!r.section.searchable||!u.value?r.section.tables||[]:(r.section.tables||[]).map(m=>({...m,rows:m.rows.filter(_=>Object.values(_).some($=>String($??"").toLowerCase().includes(u.value)))})):[]),o=m=>m<=0?ko:Math.min(wo,Io+m*Co),v=m=>m==="supported"?"border-emerald-300 bg-emerald-50 text-emerald-700":m==="conditional"?"border-amber-300 bg-amber-50 text-amber-700":"border-slate-300 bg-slate-50 text-slate-700",c=m=>m==="success"?"border-emerald-200 bg-emerald-50":m==="warning"?"border-amber-200 bg-amber-50":m==="danger"?"border-red-200 bg-red-50":m==="info"?"border-sky-200 bg-sky-50":"border-border bg-background",x=m=>m==="unsupported"?"border-amber-300 bg-amber-50 text-amber-700":m==="unavailable"?"border-red-300 bg-red-50 text-red-700":"border-emerald-300 bg-emerald-50 text-emerald-700",h=m=>m==="pass"?"border-emerald-200 bg-emerald-50 text-emerald-700":m==="warn"?"border-amber-200 bg-amber-50 text-amber-700":m==="fail"?"border-red-200 bg-red-50 text-red-700":"border-sky-200 bg-sky-50 text-sky-700";return(m,_)=>{var p,S,l,a;const $=xe,b=Se;return m.section?(f(),g("div",oo,[e("div",ao,[e("div",null,[e("h3",io,i(m.section.title),1),e("p",ro,i(m.section.subtitle),1)]),w($,{class:oe(x(m.section.status)),variant:"outline"},{default:N(()=>[E(i(m.section.status),1)]),_:1},8,["class"])]),m.section.statusMessage?(f(),g("div",{key:0,class:oe(["border rounded-lg p-3 text-sm",x(m.section.status)])},i(m.section.statusMessage),3)):O("",!0),(p=m.section.actions)!=null&&p.length?(f(),g("div",lo,[(f(!0),g(H,null,z(m.section.actions,d=>(f(),J($,{key:d.id,class:oe(v(d.state)),variant:"outline"},{default:N(()=>[E(i(d.label)+" · "+i(d.state),1)]),_:2},1032,["class"]))),128))])):O("",!0),(S=m.section.cards)!=null&&S.length?(f(),g("div",uo,[(f(!0),g(H,null,z(m.section.cards,d=>(f(),g("div",{key:d.id,class:oe(["h-full border rounded-lg p-2.5 space-y-1.5",c(d.tone)])},[e("p",co,i(d.label),1),e("p",mo,i(d.value),1),d.helperText?(f(),g("p",po,i(d.helperText),1)):O("",!0)],2))),128))])):O("",!0),(l=m.section.details)!=null&&l.length?(f(),g("div",fo,[(f(!0),g(H,null,z(m.section.details,d=>(f(),g("div",{key:`${d.label}-${d.value}`,class:oe(["border rounded-lg p-2.5 space-y-1",c(d.tone)])},[e("p",go,i(d.label),1),e("p",vo,i(d.value),1),d.helperText?(f(),g("p",bo,i(d.helperText),1)):O("",!0)],2))),128))])):O("",!0),(a=m.section.checks)!=null&&a.length?(f(),g("div",_o,[(f(!0),g(H,null,z(m.section.checks,d=>(f(),g("div",{key:d.id,class:oe(["border rounded-lg p-3 text-sm",h(d.status)])},[e("p",ho,i(d.label),1),e("p",yo,i(d.detail),1)],2))),128))])):O("",!0),(f(!0),g(H,null,z(t(s),d=>(f(),g("div",{key:d.id,class:"space-y-1.5"},[e("div",null,[e("h4",xo,i(d.title),1),d.description?(f(),g("p",$o,i(d.description),1)):O("",!0)]),e("div",{class:"max-h-[360px]",style:Ie({height:`${o(d.rows.length)}px`})},[w(b,{"column-defs":t(pe)({columns:t(qe)(d.columns.map(T=>T.key)),rows:d.rows,columnKeyBy:"field"}),"row-data":t(fe)(d.rows),"column-types":t(ge),class:"h-full border rounded-md"},null,8,["column-defs","row-data","column-types"])],4),d.emptyMessage&&d.rows.length===0?(f(),g("p",So,i(d.emptyMessage),1)):O("",!0)]))),128))])):O("",!0)}}}),Lo=5e3;function Ro(n){const r=D(null),u=D("overview"),s=D(!0),o=D(""),v=D(null),c=D(!1),x=D(!1),h=I(()=>!!n.value),m=D(!0);Ce(()=>{m.value=!1}),Te(()=>{m.value=!0});const _=()=>{v.value=null,r.value=null,o.value="",u.value="overview"},$=async(d={})=>{var T,j;if(!h.value)return _(),null;d.silent||(x.value=!0);try{v.value=null;const R=await $fetch("/api/instance-insights/view",{method:"POST",body:{...ne(n.value)}});return r.value=R,R.sections.some(F=>F.id===u.value)||(u.value=((T=R.sections[0])==null?void 0:T.id)||"overview"),R}catch(R){const F=((j=R==null?void 0:R.data)==null?void 0:j.message)||(R==null?void 0:R.message)||(R==null?void 0:R.statusMessage)||"Failed to fetch instance insights";return v.value=F,null}finally{d.silent||(x.value=!1)}},b=async(d=u.value,T={})=>$(T),p=async(d={})=>$(d),S=async()=>{if(!h.value){_();return}c.value=!0,await $(),c.value=!1};re(()=>n.value,async d=>{if(!d){_();return}await S()},{immediate:!0});const{pause:l,resume:a}=Le(async()=>{!h.value||!m.value||await $({silent:!0})},Lo,{immediate:!1});return re(()=>s.value,d=>{d?a():l()},{immediate:!0}),{view:r,activeSection:u,autoRefresh:s,configurationSearch:o,error:v,isInitialLoading:c,isViewLoading:x,refreshSection:b,refreshAll:p}}const Ao={class:"flex flex-col h-full p-3 gap-3 overflow-hidden"},Po={class:"flex flex-col lg:flex-row lg:items-start lg:justify-between border rounded-lg p-3 gap-3 bg-background"},Do={class:"space-y-2"},Bo={class:"space-y-1"},No={class:"flex items-center gap-2"},Eo={class:"text-sm text-muted-foreground flex items-center gap-0.5"},Mo={class:"flex items-center gap-0.5"},Oo={class:"font-medium text-foreground"},Fo={key:0,class:"flex items-center gap-1.5 mt-0.5"},Vo={key:0,class:"flex gap-2 flex-wrap"},Ho={class:"flex items-center gap-2 flex-wrap"},zo={class:"text-xs flex items-center gap-2"},jo={class:"flex items-center justify-between gap-2"},Uo={class:"text-xs text-muted-foreground"},Ko={key:0,class:"border rounded-lg p-3 bg-background"},Go={class:"relative"},Qo={key:1,class:"border border-red-300 bg-red-50 text-red-700 rounded-lg p-3 text-sm"},qo={key:2,class:"border rounded-lg p-6 flex items-center justify-center gap-2 text-muted-foreground"},Xo={key:3,class:"flex-1 overflow-y-auto border rounded-lg p-3 bg-background"},Yo=X({__name:"MultiDbInstanceInsightsPanel",props:{dbConnectionString:{},databaseName:{},dbType:{}},setup(n){const r=$e(),{selectedConnection:u}=je(r),{view:s,activeSection:o,autoRefresh:v,configurationSearch:c,error:x,isInitialLoading:h,isViewLoading:m,refreshSection:_,refreshAll:$}=Ro(u),b=I(()=>{var l;return((l=s.value)==null?void 0:l.sections.find(a=>a.id===o.value))||null}),p=I(()=>{var l,a;return((l=b.value)==null?void 0:l.capturedAt)||((a=s.value)==null?void 0:a.capturedAt)||null}),S=l=>l==="supported"?"border-emerald-300 bg-emerald-50 text-emerald-700":l==="conditional"?"border-amber-300 bg-amber-50 text-amber-700":"border-slate-300 bg-slate-50 text-slate-700";return(l,a)=>{var M,V,y,L,U;const d=me,T=xe,j=Ae,R=ce,F=Be,K=De,Q=Pe,k=ze;return f(),g("div",Ao,[e("div",Po,[e("div",Do,[e("div",Bo,[e("div",No,[w(d,{name:"hugeicons:database",class:"size-5 text-primary"}),a[4]||(a[4]=e("h2",{class:"text-base font-medium"},"Instance Insights",-1))]),e("div",Eo,[a[5]||(a[5]=E(" connection: ")),e("div",Mo,[l.dbType?(f(),J(Re((M=t(Ue)(l.dbType))==null?void 0:M.icon),{key:0,class:"size-4!"})):O("",!0),e("span",Oo,i(l.databaseName),1)])]),(V=t(s))!=null&&V.version?(f(),g("div",Fo,[w(T,{variant:"outline",class:"text-xxs h-5 px-1.5 font-normal"},{default:N(()=>[E(i(l.dbType===t(ue).MARIADB?"MariaDB":l.dbType===t(ue).ORACLE?"Oracle":l.dbType===t(ue).SQLITE3?"SQLite":"MySQL")+" "+i(t(s).version),1)]),_:1})])):O("",!0)]),(L=(y=t(s))==null?void 0:y.actions)!=null&&L.length?(f(),g("div",Vo,[(f(!0),g(H,null,z(t(s).actions,A=>(f(),J(T,{key:A.id,class:oe(S(A.state)),variant:"outline"},{default:N(()=>[E(i(A.label)+" · "+i(A.state),1)]),_:2},1032,["class"]))),128))])):O("",!0)]),e("div",Ho,[e("div",zo,[w(j,{id:"insights-auto-refresh","model-value":t(v),"onUpdate:modelValue":a[0]||(a[0]=A=>le(v)?v.value=A:null),class:"cursor-pointer"},null,8,["model-value"]),a[6]||(a[6]=e("label",{for:"insights-auto-refresh",class:"cursor-pointer"}," Auto refresh ",-1))]),w(R,{variant:"outline",size:"sm",disabled:t(h)||t(m),class:"font-normal",onClick:a[1]||(a[1]=A=>t($)())},{default:N(()=>[w(d,{name:"hugeicons:redo",class:"size-4"}),a[7]||(a[7]=E(" Refresh All "))]),_:1},8,["disabled"])])]),e("div",jo,[w(Q,{modelValue:t(o),"onUpdate:modelValue":a[2]||(a[2]=A=>le(o)?o.value=A:null),class:"gap-0 flex-1 min-w-0"},{default:N(()=>[w(K,{size:"sm",class:"max-w-full overflow-x-auto justify-start!"},{default:N(()=>{var A;return[(f(!0),g(H,null,z(((A=t(s))==null?void 0:A.sections)||[],P=>(f(),J(F,{size:"xs",key:P.id,value:P.id,class:"rounded-sm cursor-pointer min-w-fit shrink-0",onClick:q=>t(_)(P.id,{silent:!0})},{default:N(()=>[E(i(P.title),1)]),_:2},1032,["value","onClick"]))),128))]}),_:1})]),_:1},8,["modelValue"]),e("div",Uo," Last updated: "+i(t(he)(t(p))),1)]),(U=t(b))!=null&&U.searchable?(f(),g("div",Ko,[e("div",Go,[w(d,{name:"hugeicons:search-01",class:"size-4 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),w(k,{modelValue:t(c),"onUpdate:modelValue":a[3]||(a[3]=A=>le(c)?c.value=A:null),type:"text",placeholder:t(b).searchPlaceholder||"Search...",class:"h-8 w-full pl-8 pr-3"},null,8,["modelValue","placeholder"])])])):O("",!0),t(x)?(f(),g("div",Qo,i(t(x)),1)):O("",!0),t(h)&&!t(s)?(f(),g("div",qo,[w(d,{name:"hugeicons:redo",class:"size-4 animate-spin"}),a[8]||(a[8]=E(" Loading instance insights... "))])):(f(),g("div",Xo,[w(To,{section:t(b),search:t(c)},null,8,["section","search"])]))])}}}),Wo={class:"space-y-4"},Jo={class:"grid gap-3 md:grid-cols-2"},Zo={class:"rounded-lg border p-3"},ea={class:"mt-1 text-lg font-medium"},ta={class:"rounded-lg border p-3"},sa={class:"mt-1 text-lg font-medium"},na={key:0,class:"rounded-lg border p-3"},oa={class:"mt-3 space-y-2 text-xs"},aa={class:"rounded-lg border p-3"},ia={class:"mt-3 space-y-2 text-xs"},ra={class:"flex items-start justify-between gap-3"},la={class:"font-medium"},da={class:"text-muted-foreground"},ua={class:"text-muted-foreground"},ca=X({__name:"RedisClientsSection",props:{clients:{},isActionLoading:{type:Boolean}},emits:["kill-client"],setup(n,{emit:r}){const u=r,s=new Intl.NumberFormat;function o(v){return v==null||v===""?"0":s.format(Number(v))}return(v,c)=>{var h,m,_,$,b;const x=ce;return f(),g("div",Wo,[e("div",Jo,[e("div",Zo,[c[0]||(c[0]=e("p",{class:"text-xs text-muted-foreground"},"Connected clients",-1)),e("p",ea,i(o((h=v.clients)==null?void 0:h.connectedClients)),1)]),e("div",ta,[c[1]||(c[1]=e("p",{class:"text-xs text-muted-foreground"},"Suspicious clients",-1)),e("p",sa,i(o((((m=v.clients)==null?void 0:m.suspiciousClients)||[]).length)),1)])]),(((_=v.clients)==null?void 0:_.suspiciousClients)||[]).length?(f(),g("div",na,[c[2]||(c[2]=e("h3",{class:"text-sm font-medium"},"Suspicious clients",-1)),e("div",oa,[(f(!0),g(H,null,z((($=v.clients)==null?void 0:$.suspiciousClients)||[],p=>(f(),g("div",{key:`${p.clientId}-${p.reason}`,class:"rounded-md bg-muted/20 px-3 py-2"},i(p.reason),1))),128))])])):O("",!0),e("div",aa,[c[4]||(c[4]=e("h3",{class:"text-sm font-medium"},"Client list",-1)),e("div",ia,[(f(!0),g(H,null,z(((b=v.clients)==null?void 0:b.clients)||[],p=>(f(),g("div",{key:p.id,class:"rounded-md bg-muted/20 px-3 py-2"},[e("div",ra,[e("div",null,[e("p",la,i(p.addr),1),e("p",da,i(p.name)+" · db "+i(p.db)+" · "+i(p.cmd),1),e("p",ua," age "+i(o(p.ageSeconds))+"s · idle "+i(o(p.idleSeconds))+"s ",1)]),w(x,{size:"sm",variant:"outline",disabled:v.isActionLoading,onClick:S=>u("kill-client",p.id)},{default:N(()=>c[3]||(c[3]=[E(" Kill client ")])),_:2},1032,["disabled","onClick"])])]))),128))])])])}}}),ma={class:"space-y-2"},pa={class:"text-muted-foreground"},fa=X({__name:"RedisConfigSection",props:{config:{}},setup(n){return(r,u)=>(f(),g("div",ma,[(f(!0),g(H,null,z(r.config||[],s=>(f(),g("div",{key:s.name,class:"flex items-center justify-between rounded-md border px-3 py-2 text-sm"},[e("span",null,i(s.name),1),e("span",pa,i(s.value||"not set"),1)]))),128))]))}}),ga={class:"space-y-4"},va={class:"grid gap-3 md:grid-cols-4"},ba={class:"rounded-lg border p-3"},_a={class:"mt-1 text-lg font-medium"},ha={class:"rounded-lg border p-3"},ya={class:"mt-1 text-lg font-medium"},xa={class:"rounded-lg border p-3"},$a={class:"mt-1 text-lg font-medium"},Sa={class:"rounded-lg border p-3"},wa={class:"mt-1 text-lg font-medium"},ka={class:"grid gap-4 lg:grid-cols-2"},Ia={class:"rounded-lg border p-3"},Ca={class:"mt-3 space-y-2 text-sm"},Ta={class:"text-muted-foreground"},La={class:"rounded-lg border p-3"},Ra={class:"mt-3 space-y-2 text-sm"},Aa={class:"text-muted-foreground"},Pa={class:"rounded-lg border p-3"},Da={class:"mt-3 flex flex-wrap gap-2"},Ba={class:"mt-3 text-xs text-muted-foreground"},Na=X({__name:"RedisKeyspaceSection",props:{keyspace:{}},setup(n){const r=new Intl.NumberFormat;function u(s){return s==null||s===""?"0":r.format(Number(s))}return(s,o)=>{var c,x,h,m,_,$,b,p;const v=xe;return f(),g("div",ga,[e("div",va,[e("div",ba,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Expired key count",-1)),e("p",_a,i(u((c=s.keyspace)==null?void 0:c.expiredKeyCount)),1)]),e("div",ha,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Avg TTL",-1)),e("p",ya,i(u((x=s.keyspace)==null?void 0:x.avgTtl)),1)]),e("div",xa,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Keys without TTL",-1)),e("p",$a,i(u((h=s.keyspace)==null?void 0:h.keysWithoutTtl)),1)]),e("div",Sa,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Sampled keys",-1)),e("p",wa,i(u((m=s.keyspace)==null?void 0:m.sampledKeys)),1)])]),e("div",ka,[e("div",Ia,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Databases",-1)),e("div",Ca,[(f(!0),g(H,null,z(((_=s.keyspace)==null?void 0:_.databases)||[],S=>(f(),g("div",{key:S.database,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,i(S.database),1),e("span",Ta,i(u(S.keyCount))+" keys · "+i(u(S.expires))+" expiring · avg TTL "+i(u(S.avgTtl)),1)]))),128))])]),e("div",La,[o[5]||(o[5]=e("h3",{class:"text-sm font-medium"},"Top prefixes",-1)),e("div",Ra,[(f(!0),g(H,null,z((($=s.keyspace)==null?void 0:$.topPrefixes)||[],S=>(f(),g("div",{key:S.prefix,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,i(S.prefix),1),e("span",Aa,i(u(S.keyCount))+" keys ",1)]))),128))])])]),e("div",Pa,[o[6]||(o[6]=e("h3",{class:"text-sm font-medium"},"Key type distribution",-1)),e("div",Da,[(f(!0),g(H,null,z(((b=s.keyspace)==null?void 0:b.keyTypeDistribution)||[],S=>(f(),J(v,{key:S.type,variant:"outline"},{default:N(()=>[E(i(S.type)+" · "+i(u(S.count)),1)]),_:2},1024))),128))]),e("p",Ba,i((p=s.keyspace)==null?void 0:p.hotKeysNote),1)])])}}}),Ea={class:"space-y-4"},Ma={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},Oa={class:"rounded-lg border p-3"},Fa={class:"mt-1 text-lg font-medium"},Va={class:"rounded-lg border p-3"},Ha={class:"mt-1 text-lg font-medium"},za={class:"rounded-lg border p-3"},ja={class:"mt-1 text-lg font-medium"},Ua={class:"rounded-lg border p-3"},Ka={class:"mt-1 text-lg font-medium"},Ga={class:"grid gap-4 lg:grid-cols-2"},Qa={class:"rounded-lg border p-3"},qa={class:"mt-3 space-y-2 text-sm"},Xa={class:"text-muted-foreground"},Ya={class:"rounded-lg border p-3"},Wa={class:"mt-3 space-y-2 text-sm"},Ja={class:"flex items-center justify-between gap-2"},Za={class:"truncate"},ei={class:"mt-1 text-xs text-muted-foreground"},ti=X({__name:"RedisMemorySection",props:{memory:{}},setup(n){const r=new Intl.NumberFormat;function u(s){return s==null||s===""?"0":r.format(Number(s))}return(s,o)=>{var x,h,m,_,$,b,p,S;const v=Ne,c=xe;return f(),g("div",Ea,[e("div",Ma,[e("div",Oa,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Used memory",-1)),e("p",Fa,i((x=s.memory)==null?void 0:x.usedMemoryHuman),1)]),e("div",Va,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Peak memory",-1)),e("p",Ha,i((h=s.memory)==null?void 0:h.usedMemoryPeakHuman),1)]),e("div",za,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Fragmentation",-1)),e("p",ja,i((m=s.memory)==null?void 0:m.memoryFragmentationRatio.toFixed(2)),1)]),e("div",Ua,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Maxmemory / policy",-1)),e("p",Ka,i((_=s.memory)==null?void 0:_.maxmemoryHuman)+" · "+i(($=s.memory)==null?void 0:$.maxmemoryPolicy),1)])]),(f(!0),g(H,null,z(((b=s.memory)==null?void 0:b.warnings)||[],l=>(f(),J(v,{key:l,variant:"secondary"},{default:N(()=>[E(i(l),1)]),_:2},1024))),128)),e("div",Ga,[e("div",Qa,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Top prefixes by memory",-1)),e("div",qa,[(f(!0),g(H,null,z(((p=s.memory)==null?void 0:p.topPrefixesByMemory)||[],l=>(f(),g("div",{key:l.prefix,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,i(l.prefix),1),e("span",Xa,i(u(l.keyCount))+" keys · "+i(u(l.memoryBytes))+" B ",1)]))),128))])]),e("div",Ya,[o[5]||(o[5]=e("h3",{class:"text-sm font-medium"},"Big keys detector",-1)),e("div",Wa,[(f(!0),g(H,null,z(((S=s.memory)==null?void 0:S.bigKeys)||[],l=>(f(),g("div",{key:l.key,class:"rounded-md bg-muted/20 px-3 py-2"},[e("div",Ja,[e("span",Za,i(l.key),1),w(c,{variant:"outline"},{default:N(()=>[E(i(l.type),1)]),_:2},1024)]),e("p",ei," TTL "+i(l.ttl>=0?l.ttl:"persisted")+" · "+i(u(l.memoryBytes))+" B ",1)]))),128))])])])])}}}),si={class:"space-y-4"},ni={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},oi={class:"text-xs text-muted-foreground"},ai={class:"mt-1 text-lg font-medium"},ii=X({__name:"RedisOverviewSection",props:{overview:{}},setup(n){const r=n,u=new Intl.NumberFormat;function s(c){return c==null||c===""?"0":u.format(Number(c))}function o(c){return`${(c*100).toFixed(1)}%`}const v=I(()=>{const c=r.overview;return c?[{label:"Redis version",value:c.redisVersion},{label:"Mode",value:c.mode},{label:"Uptime",value:Ye(c.uptimeSeconds)},{label:"Connected clients",value:s(c.connectedClients)},{label:"Used memory",value:c.usedMemoryHuman},{label:"Total keys",value:s(c.totalKeys)},{label:"Hit rate",value:o(c.hitRate)},{label:"Ops/sec",value:s(c.opsPerSec)},{label:"Evicted keys",value:s(c.evictedKeys)},{label:"Expired keys",value:s(c.expiredKeys)},{label:"Rejected connections",value:s(c.rejectedConnections)}]:[]});return(c,x)=>(f(),g("div",si,[e("div",ni,[(f(!0),g(H,null,z(t(v),h=>(f(),g("div",{key:h.label,class:"rounded-lg border p-3"},[e("p",oi,i(h.label),1),e("p",ai,i(h.value),1)]))),128))])]))}}),ri={class:"space-y-4"},li={class:"grid gap-3 md:grid-cols-3"},di={class:"rounded-lg border p-3"},ui={class:"mt-1 text-lg font-medium"},ci={class:"rounded-lg border p-3"},mi={class:"mt-1 text-lg font-medium"},pi={class:"rounded-lg border p-3"},fi={class:"mt-1 text-lg font-medium"},gi={class:"rounded-lg border p-3"},vi={class:"mt-3 whitespace-pre-wrap text-xs text-muted-foreground"},bi={class:"grid gap-4 lg:grid-cols-2"},_i={class:"rounded-lg border p-3"},hi={class:"mt-3 space-y-2 text-xs"},yi={class:"flex items-center justify-between gap-2"},xi={class:"font-medium"},$i={class:"mt-1 text-muted-foreground"},Si={class:"rounded-lg border p-3"},wi={class:"mt-3 space-y-2 text-xs"},ki={class:"text-muted-foreground"},Ii={class:"rounded-lg border p-3"},Ci={class:"mt-3 space-y-2 text-xs"},Ti={key:0,class:"text-muted-foreground"},Li={class:"text-muted-foreground"},Ri=X({__name:"RedisPerformanceSection",props:{performance:{}},setup(n){const r=new Intl.NumberFormat;function u(s){return s==null||s===""?"0":r.format(Number(s))}return(s,o)=>{var v,c,x,h,m,_,$,b;return f(),g("div",ri,[e("div",li,[e("div",di,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Ops/sec",-1)),e("p",ui,i(u((v=s.performance)==null?void 0:v.instantaneousOpsPerSec)),1)]),e("div",ci,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Total commands",-1)),e("p",mi,i(u((c=s.performance)==null?void 0:c.totalCommandsProcessed)),1)]),e("div",pi,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Blocked clients",-1)),e("p",fi,i(u((x=s.performance)==null?void 0:x.blockedClients)),1)])]),e("div",gi,[o[3]||(o[3]=e("h3",{class:"text-sm font-medium"},"Latency doctor",-1)),e("pre",vi,i(((h=s.performance)==null?void 0:h.latencyDoctor)||"No latency doctor output available."),1)]),e("div",bi,[e("div",_i,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Slowlog",-1)),e("div",hi,[(f(!0),g(H,null,z(((m=s.performance)==null?void 0:m.slowlog)||[],p=>(f(),g("div",{key:p.id,class:"rounded-md bg-muted/20 px-3 py-2"},[e("div",yi,[e("span",xi,i(p.command||"unknown command"),1),e("span",null,i(u(p.durationMicros))+" µs",1)]),e("p",$i,i(p.clientAddr||"n/a")+" · "+i(p.timestamp||"unknown time"),1)]))),128))])]),e("div",Si,[o[5]||(o[5]=e("h3",{class:"text-sm font-medium"},"Command stats",-1)),e("div",wi,[(f(!0),g(H,null,z(((_=s.performance)==null?void 0:_.commandStats)||[],p=>(f(),g("div",{key:p.command,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,i(p.command),1),e("span",ki,i(u(p.calls))+" calls · "+i(p.usecPerCall.toFixed(2))+" µs/call ",1)]))),128))])])]),e("div",Ii,[o[6]||(o[6]=e("h3",{class:"text-sm font-medium"},"Long-running Lua scripts",-1)),e("div",Ci,[((($=s.performance)==null?void 0:$.longRunningLuaScripts)||[]).length?O("",!0):(f(),g("div",Ti," No active Lua script clients detected. ")),(f(!0),g(H,null,z(((b=s.performance)==null?void 0:b.longRunningLuaScripts)||[],p=>(f(),g("div",{key:p.id,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,i(p.addr),1),e("span",Li,i(p.cmd)+" · age "+i(u(p.ageSeconds))+"s ",1)]))),128))])])])}}}),Ai={class:"space-y-4"},Pi={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},Di={class:"rounded-lg border p-3"},Bi={class:"mt-1 text-lg font-medium"},Ni={class:"rounded-lg border p-3"},Ei={class:"mt-1 text-lg font-medium"},Mi={class:"rounded-lg border p-3"},Oi={class:"mt-1 text-lg font-medium"},Fi={class:"rounded-lg border p-3"},Vi={class:"mt-1 text-lg font-medium"},Hi={class:"rounded-lg border p-3 text-sm text-muted-foreground space-y-1"},zi={key:0},ji=X({__name:"RedisPersistenceSection",props:{persistence:{}},setup(n){const r=new Intl.NumberFormat;function u(s){return s==null||s===""?"0":r.format(Number(s))}return(s,o)=>{var c,x,h,m,_,$,b,p,S;const v=Ne;return f(),g("div",Ai,[e("div",Pi,[e("div",Di,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"RDB enabled",-1)),e("p",Bi,i((c=s.persistence)!=null&&c.rdbEnabled?"Yes":"No"),1)]),e("div",Ni,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"AOF enabled",-1)),e("p",Ei,i((x=s.persistence)!=null&&x.aofEnabled?"Yes":"No"),1)]),e("div",Mi,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"AOF rewrite",-1)),e("p",Oi,i((h=s.persistence)!=null&&h.aofRewriteInProgress?"In progress":"Idle"),1)]),e("div",Fi,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Changes since save",-1)),e("p",Vi,i(u((m=s.persistence)==null?void 0:m.changesSinceLastSave)),1)])]),(f(!0),g(H,null,z(((_=s.persistence)==null?void 0:_.warnings)||[],l=>(f(),J(v,{key:l,variant:"secondary"},{default:N(()=>[E(i(l),1)]),_:2},1024))),128)),e("div",Hi,[e("p",null," Last save status: "+i((($=s.persistence)==null?void 0:$.lastSaveStatus)||"unknown"),1),e("p",null," Last save time: "+i(((b=s.persistence)==null?void 0:b.lastSaveTime)||"unknown"),1),e("p",null," AOF last rewrite status: "+i(((p=s.persistence)==null?void 0:p.aofLastRewriteStatus)||"unknown"),1),(S=s.persistence)!=null&&S.lastBgsaveError?(f(),g("p",zi," Last bgsave error: "+i(s.persistence.lastBgsaveError),1)):O("",!0)])])}}}),Ui={class:"space-y-4"},Ki={class:"grid gap-3 md:grid-cols-2 xl:grid-cols-4"},Gi={class:"rounded-lg border p-3"},Qi={class:"mt-1 text-lg font-medium"},qi={class:"rounded-lg border p-3"},Xi={class:"mt-1 text-lg font-medium"},Yi={class:"rounded-lg border p-3"},Wi={class:"mt-1 text-lg font-medium"},Ji={class:"rounded-lg border p-3"},Zi={class:"mt-1 text-lg font-medium"},er={class:"rounded-lg border p-3 text-sm text-muted-foreground space-y-1"},tr={class:"rounded-lg border p-3"},sr={class:"mt-3 space-y-2 text-xs"},nr={key:0,class:"text-muted-foreground"},or={class:"text-muted-foreground"},ar=X({__name:"RedisReplicationSection",props:{replication:{}},setup(n){const r=new Intl.NumberFormat;function u(s){return s==null||s===""?"0":r.format(Number(s))}return(s,o)=>{var v,c,x,h,m,_,$,b,p,S,l;return f(),g("div",Ui,[e("div",Ki,[e("div",Gi,[o[0]||(o[0]=e("p",{class:"text-xs text-muted-foreground"},"Role",-1)),e("p",Qi,i(((v=s.replication)==null?void 0:v.role)||"unknown"),1)]),e("div",qi,[o[1]||(o[1]=e("p",{class:"text-xs text-muted-foreground"},"Connected replicas",-1)),e("p",Xi,i(u((c=s.replication)==null?void 0:c.connectedReplicas)),1)]),e("div",Yi,[o[2]||(o[2]=e("p",{class:"text-xs text-muted-foreground"},"Master link status",-1)),e("p",Wi,i(((x=s.replication)==null?void 0:x.masterLinkStatus)||"n/a"),1)]),e("div",Ji,[o[3]||(o[3]=e("p",{class:"text-xs text-muted-foreground"},"Cluster state",-1)),e("p",Zi,i(((h=s.replication)==null?void 0:h.clusterState)||((m=s.replication)!=null&&m.clusterEnabled?"enabled":"disabled")),1)])]),e("div",er,[e("p",null,"Replication lag: "+i(((_=s.replication)==null?void 0:_.replicationLag)??"n/a"),1),e("p",null,"Sentinel masters: "+i((($=s.replication)==null?void 0:$.sentinelMasters)??"n/a"),1),e("p",null," Cluster slots assigned: "+i(((b=s.replication)==null?void 0:b.clusterSlotsAssigned)??"n/a"),1),e("p",null,"Cluster known nodes: "+i(((p=s.replication)==null?void 0:p.clusterKnownNodes)??"n/a"),1)]),e("div",tr,[o[4]||(o[4]=e("h3",{class:"text-sm font-medium"},"Replicas",-1)),e("div",sr,[(((S=s.replication)==null?void 0:S.replicas)||[]).length?O("",!0):(f(),g("div",nr," No replica nodes reported. ")),(f(!0),g(H,null,z(((l=s.replication)==null?void 0:l.replicas)||[],a=>(f(),g("div",{key:a.id,class:"flex items-center justify-between rounded-md bg-muted/20 px-3 py-2"},[e("span",null,i(a.addr),1),e("span",or,i(a.state)+" · lag "+i(a.lag??"n/a"),1)]))),128))])])])}}}),ir=5e3;function rr(n){const r=D("overview"),u=D(!0),s=D(null),o=D(!1),v=D(!1),c=D(!1),x=D(null),h=D(!0),m=I(()=>!!n.connection.value);Ce(()=>{h.value=!1}),Te(()=>{h.value=!0});const _=async(l=!1)=>{var a;if(!n.connection.value)return x.value=null,null;l||(v.value=!0);try{s.value=null;const d=await $fetch("/api/redis/instance-insights/overview",{method:"POST",body:{...ne(n.connection.value),method:n.connection.value.method,databaseIndex:n.databaseIndex.value}});return x.value=d,d}catch(d){return s.value=((a=d==null?void 0:d.data)==null?void 0:a.message)||(d==null?void 0:d.message)||(d==null?void 0:d.statusMessage)||"Failed to fetch Redis instance insights.",null}finally{l||(v.value=!1)}},$=async l=>{var a;if(!n.connection.value)return!1;c.value=!0;try{const d=await $fetch("/api/redis/instance-insights/kill-client",{method:"POST",body:{...ne(n.connection.value),method:n.connection.value.method,databaseIndex:n.databaseIndex.value,clientId:l}});return d.success?(be("Redis client terminated",{description:d.message}),await _(!0),!0):(be("Failed to terminate client",{description:d.message}),!1)}catch(d){return be("Failed to terminate client",{description:((a=d==null?void 0:d.data)==null?void 0:a.message)||(d==null?void 0:d.message)||"The Redis client could not be terminated."}),!1}finally{c.value=!1}},b=async()=>{await _()};re([()=>n.connection.value,()=>n.databaseIndex.value],async([l])=>{if(!l){x.value=null;return}o.value=!0,await _(),o.value=!1},{immediate:!0});const{pause:p,resume:S}=Le(async()=>{!m.value||!h.value||await _(!0)},ir,{immediate:!1});return re(()=>u.value,l=>{l?S():p()},{immediate:!0}),{activeSection:r,autoRefresh:u,error:s,isInitialLoading:o,isLoading:v,isActionLoading:c,insights:x,refresh:b,killClient:$}}const lr={class:"flex h-full flex-col gap-3 overflow-hidden p-3"},dr={class:"flex items-center gap-2 text-xs"},ur={key:1,class:"flex flex-1 items-center justify-center gap-2 rounded-lg border bg-background text-muted-foreground"},cr={key:2,class:"flex-1 overflow-y-auto rounded-lg border bg-background p-3 mt-2"},mr=X({__name:"RedisInstanceInsightsPanel",props:{databaseName:{},databaseIndex:{},databases:{},dbType:{}},emits:["update:databaseIndex"],setup(n,{emit:r}){const u=n,s=r,o=[{id:"overview",label:"Overview"},{id:"keyspace",label:"Keyspace"},{id:"memory",label:"Memory"},{id:"performance",label:"Performance"},{id:"clients",label:"Clients"},{id:"persistence",label:"Persistence"},{id:"replication",label:"Replication / Cluster"},{id:"config",label:"Config"}],v=$e(),c=I(()=>v.selectedConnection),{activeSection:x,autoRefresh:h,error:m,isInitialLoading:_,isLoading:$,isActionLoading:b,insights:p,refresh:S,killClient:l}=rr({connection:c,databaseIndex:I(()=>u.databaseIndex)});return(a,d)=>{const T=Ae,j=me,R=ce,F=Tt,K=Be,Q=De,k=Ne,M=Pe;return f(),g("div",lr,[w(F,{icon:"hugeicons:activity-02",title:"Instance Insights"},{context:N(()=>[a.dbType===t(ue).REDIS?(f(),J(Re("hugeicons:database-sync-01"),{key:0})):O("",!0)]),actions:N(()=>[w(Lt,{compact:"","trigger-id":"redis-instance-insights-db-index","trigger-class":"bg-background",databases:a.databases,"database-index":a.databaseIndex,"onUpdate:databaseIndex":d[0]||(d[0]=V=>s("update:databaseIndex",V))},null,8,["databases","database-index"]),e("div",dr,[w(T,{id:"redis-insights-auto-refresh","model-value":t(h),"onUpdate:modelValue":d[1]||(d[1]=V=>le(h)?h.value=V:null)},null,8,["model-value"]),d[3]||(d[3]=e("label",{for:"redis-insights-auto-refresh",class:"cursor-pointer"}," Auto refresh ",-1))]),w(R,{size:"xxs",variant:"outline",disabled:t($)||t(b),onClick:t(S)},{default:N(()=>[w(j,{name:"hugeicons:redo",class:"size-3.5!"}),d[4]||(d[4]=E(" Refresh "))]),_:1},8,["disabled","onClick"])]),_:1}),w(M,{modelValue:t(x),"onUpdate:modelValue":d[2]||(d[2]=V=>le(x)?x.value=V:null),class:"flex flex-1 min-h-0 flex-col gap-0"},{default:N(()=>{var V,y,L,U,A,P,q,Z;return[w(Q,{size:"sm",class:"max-w-full justify-start! shrink-0 overflow-x-auto"},{default:N(()=>[(f(),g(H,null,z(o,ae=>w(K,{size:"xs",key:ae.id,value:ae.id,class:"min-w-fit shrink-0 cursor-pointer rounded-sm"},{default:N(()=>[E(i(ae.label),1)]),_:2},1032,["value"])),64))]),_:1}),t(m)?(f(),J(k,{key:0,variant:"destructive"},{default:N(()=>[E(i(t(m)),1)]),_:1})):O("",!0),t(_)&&!t(p)?(f(),g("div",ur,[w(j,{name:"hugeicons:redo",class:"size-4 animate-spin"}),d[5]||(d[5]=E(" Loading Redis instance insights... "))])):(f(),g("div",cr,[te(w(ii,{overview:(V=t(p))==null?void 0:V.overview},null,8,["overview"]),[[se,t(x)==="overview"]]),te(w(Na,{keyspace:(y=t(p))==null?void 0:y.keyspace},null,8,["keyspace"]),[[se,t(x)==="keyspace"]]),te(w(ti,{memory:(L=t(p))==null?void 0:L.memory},null,8,["memory"]),[[se,t(x)==="memory"]]),te(w(Ri,{performance:(U=t(p))==null?void 0:U.performance},null,8,["performance"]),[[se,t(x)==="performance"]]),te(w(ca,{clients:(A=t(p))==null?void 0:A.clients,"is-action-loading":t(b),onKillClient:t(l)},null,8,["clients","is-action-loading","onKillClient"]),[[se,t(x)==="clients"]]),te(w(ji,{persistence:(P=t(p))==null?void 0:P.persistence},null,8,["persistence"]),[[se,t(x)==="persistence"]]),te(w(ar,{replication:(q=t(p))==null?void 0:q.replication},null,8,["replication"]),[[se,t(x)==="replication"]]),te(w(fa,{config:(Z=t(p))==null?void 0:Z.config},null,8,["config"]),[[se,t(x)==="config"]])]))]}),_:1},8,["modelValue"])])}}}),pr={class:"h-full"},fr={key:0,class:"h-full p-4 flex flex-col items-center justify-center text-muted-foreground"},Pr=X({__name:"index",setup(n){const r=Ze(),u=$e(),s=et(),{activeTab:o}=je(s),v=I(()=>String(r.params.connectionId||"")),c=I(()=>v.value?u.connections.find(b=>b.id===v.value):null),x=I(()=>{var b;return((b=c.value)==null?void 0:b.connectionString)||""}),h=I(()=>{var b;return(b=c.value)==null?void 0:b.type}),m=I(()=>{var b,p,S;return h.value===ue.REDIS?((b=c.value)==null?void 0:b.name)||"Redis":((p=c.value)==null?void 0:p.database)||((S=c.value)==null?void 0:S.name)||"database"}),_=I(()=>h.value===ue.REDIS?c.value??void 0:void 0),$=Rt({connection:_,mode:"meta"});return re(()=>{var b,p;return(p=(b=o.value)==null?void 0:b.metadata)==null?void 0:p.databaseIndex},b=>{typeof b=="number"&&($.selectedDatabaseIndex.value=b)},{immediate:!0}),(b,p)=>{const S=me;return f(),g("div",pr,[t(c)?t(h)===t(ue).REDIS?(f(),J(mr,{key:1,"database-name":t(m),"database-index":t($).selectedDatabaseIndex.value,databases:t($).databases.value,"db-type":t(h),"onUpdate:databaseIndex":p[0]||(p[0]=l=>t($).selectedDatabaseIndex.value=l)},null,8,["database-name","database-index","databases","db-type"])):t(h)===t(ue).POSTGRES?(f(),J(no,{key:2,"db-connection-string":t(x),"database-name":t(m),"db-type":t(h)},null,8,["db-connection-string","database-name","db-type"])):(f(),J(Yo,{key:3,"db-connection-string":t(x),"database-name":t(m),"db-type":t(h)},null,8,["db-connection-string","database-name","db-type"])):(f(),g("div",fr,[w(S,{name:"hugeicons:plug-socket",class:"size-12 mb-2 opacity-50"}),p[1]||(p[1]=e("p",{class:"text-sm"},"Select a connection to open Instance Insights",-1))]))])}}});export{Pr as default};
@@ -1 +1 @@
1
- import{d as h,V as C,ac as S,ad as y,c as o,G as D,e as g,o as E,f as i,g as n,ae as I}from"./C6teO48Y.js";import{b as M,a as O,D as B,_ as T}from"./C0jXhwNq.js";import{b as V,a as x}from"./BVmBXPoG.js";import{u as L}from"./CvbYm0uB.js";import"./BHr4_sbs.js";import"./CCC5u9Ni.js";import"./C6K-C4_d.js";import"./WGDY9i_Q.js";import"./B5rxJs06.js";import"./D5GonnbJ.js";const N={class:"h-full relative p-1"},W=h({__name:"TableOverview",props:{connectionId:{}},setup(m){const l=["name","schema","kind","owner","estimated_row","total_size","data_size","index_size","comment"],s=m,a=C(),u=S(),{schemaId:c}=y(u),d=o(()=>s.connectionId?a.connections.find(e=>e.id===s.connectionId):a.selectedConnection),r=o(()=>({...D(d.value),schema:c.value})),{data:t,status:p}=L("/api/tables/overview",{method:"POST",body:r,watch:[c,r]},"$x2_S2ch44V"),_=o(()=>{const e=t.value||[];return e.length>0?V(e):x(l)}),f=o(()=>M({columns:_.value,rows:t.value||[],columnKeyBy:"field"})),v=o(()=>O(t.value||[]));return(e,R)=>{const w=I,b=T;return E(),g("div",N,[i(w,{visible:n(p)==="pending"},null,8,["visible"]),i(b,{"column-defs":n(f),"row-data":n(v),"column-types":n(B),class:"h-full border rounded-md"},null,8,["column-defs","row-data","column-types"])])}}});export{W as default};
1
+ import{d as h,V as C,ac as S,ad as y,i as o,G as D,c as E,o as I,a as i,u as n,ae as M}from"./DbehhcO7.js";import{b as O,a as g,D as B,_ as T}from"./DahDvheq.js";import{b as V,a as x}from"./BVmBXPoG.js";import{u as L}from"./dDyWVWO8.js";import"./BKh6DDUh.js";import"./Ch_iEFHi.js";import"./vIV0z0PD.js";import"./CEIpXOz0.js";import"./B5rxJs06.js";import"./339BCoyy.js";const N={class:"h-full relative p-1"},W=h({__name:"TableOverview",props:{connectionId:{}},setup(m){const l=["name","schema","kind","owner","estimated_row","total_size","data_size","index_size","comment"],s=m,a=C(),u=S(),{schemaId:c}=y(u),d=o(()=>s.connectionId?a.connections.find(e=>e.id===s.connectionId):a.selectedConnection),r=o(()=>({...D(d.value),schema:c.value})),{data:t,status:p}=L("/api/tables/overview",{method:"POST",body:r,watch:[c,r]},"$x2_S2ch44V"),_=o(()=>{const e=t.value||[];return e.length>0?V(e):x(l)}),f=o(()=>O({columns:_.value,rows:t.value||[],columnKeyBy:"field"})),v=o(()=>g(t.value||[]));return(e,R)=>{const w=M,b=T;return I(),E("div",N,[i(w,{visible:n(p)==="pending"},null,8,["visible"]),i(b,{"column-defs":n(f),"row-data":n(v),"column-types":n(B),class:"h-full border rounded-md"},null,8,["column-defs","row-data","column-types"])])}}});export{W as default};