orcaq 1.1.6 → 1.1.7

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 (154) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{Lh0RfwhV.js → 1VXrIDkr.js} +1 -1
  3. package/.output/public/_nuxt/{ZVYA9HBl.js → 1fIGBJPQ.js} +1 -1
  4. package/.output/public/_nuxt/{BbawOYVr.js → 1kY3DHv7.js} +1 -1
  5. package/.output/public/_nuxt/{DDsaDrGo.js → 2TwRWQjG.js} +1 -1
  6. package/.output/public/_nuxt/{wrneOCBW.js → 39ZZCZCn.js} +1 -1
  7. package/.output/public/_nuxt/{BmEIj9l9.js → 3vYvhEat.js} +1 -1
  8. package/.output/public/_nuxt/{CEoM97rJ.js → 9bnMBg54.js} +1 -1
  9. package/.output/public/_nuxt/{ZNDxw-7x.js → B-u0WX5Q.js} +1 -1
  10. package/.output/public/_nuxt/{uDsvlLN0.js → B41tp0B8.js} +1 -1
  11. package/.output/public/_nuxt/{4LC09zKL.js → BCm7jnPt.js} +1 -1
  12. package/.output/public/_nuxt/{D29mzs5t.js → BFMjnjgH.js} +1 -1
  13. package/.output/public/_nuxt/{BEvswgw7.js → BGAd-CMD.js} +1 -1
  14. package/.output/public/_nuxt/{CP-7VdtS.js → BG_B-fo0.js} +1 -1
  15. package/.output/public/_nuxt/{Dd89Vyx8.js → BLEKzUmC.js} +1 -1
  16. package/.output/public/_nuxt/{DoNLWeqB.js → BN2mQ8OV.js} +1 -1
  17. package/.output/public/_nuxt/{DP6Az3fC.js → BNnChlxR.js} +1 -1
  18. package/.output/public/_nuxt/{BKAEFZqP.js → BNyWhB4W.js} +1 -1
  19. package/.output/public/_nuxt/{Bibtvqd8.js → BO-QgaRL.js} +1 -1
  20. package/.output/public/_nuxt/{DViCRsmA.js → BOVFFCPB.js} +1 -1
  21. package/.output/public/_nuxt/{BWg3wiuc.js → BRVpLa1E.js} +1 -1
  22. package/.output/public/_nuxt/{BJ8qQpib.js → BV4g1sVY.js} +1 -1
  23. package/.output/public/_nuxt/{_TExiQQQ.js → BXziI6Bt.js} +1 -1
  24. package/.output/public/_nuxt/{Df4wU3r0.js → BZQUF1W4.js} +1 -1
  25. package/.output/public/_nuxt/BZmEvFAZ.js +28 -0
  26. package/.output/public/_nuxt/B_G752SV.js +20 -0
  27. package/.output/public/_nuxt/{BusLuQ4Q.js → Ba_fqsW2.js} +1 -1
  28. package/.output/public/_nuxt/{DZFq5yqu.js → BbzZxPNQ.js} +1 -1
  29. package/.output/public/_nuxt/{BxZgIpkD.js → BhT0iBlH.js} +1 -1
  30. package/.output/public/_nuxt/{CoX1_N4R.js → Bhm1GL_M.js} +1 -1
  31. package/.output/public/_nuxt/{27ZsWTm2.js → BiSZmDoN.js} +1 -1
  32. package/.output/public/_nuxt/{DZVfXu09.js → BjK8Fug8.js} +1 -1
  33. package/.output/public/_nuxt/{G40WRC_L.js → BjpSpz5C.js} +1 -1
  34. package/.output/public/_nuxt/{Bok35x_B.js → BkqB6n0T.js} +1 -1
  35. package/.output/public/_nuxt/{6NXhlm49.js → BoPjUGS6.js} +1 -1
  36. package/.output/public/_nuxt/{B10QBDL6.js → BtwwqY0e.js} +1 -1
  37. package/.output/public/_nuxt/{FHx3Ejt6.js → BvD9dW-2.js} +1 -1
  38. package/.output/public/_nuxt/{Cvkyd5iW.js → Bw-4PosZ.js} +1 -1
  39. package/.output/public/_nuxt/C0l_59dE.js +1 -0
  40. package/.output/public/_nuxt/{__PEYcIB.js → C1TOiVRQ.js} +1 -1
  41. package/.output/public/_nuxt/{BoUZO_NV.js → C7A87LE3.js} +1 -1
  42. package/.output/public/_nuxt/{o60RgyTd.js → C80Zs8U0.js} +1 -1
  43. package/.output/public/_nuxt/{BnZ5qYkP.js → CB56S0b2.js} +9 -9
  44. package/.output/public/_nuxt/{CNPNWuzz.js → CBgbjsPd.js} +1 -1
  45. package/.output/public/_nuxt/{BCazdlgN.js → CCk2r9DD.js} +1 -1
  46. package/.output/public/_nuxt/{CCOlJAKS.js → CFZerEKx.js} +2 -2
  47. package/.output/public/_nuxt/{Bgj8Q52i.js → CG4v011f.js} +1 -1
  48. package/.output/public/_nuxt/{C4-wpUAK.js → CJnTtXrv.js} +1 -1
  49. package/.output/public/_nuxt/{DHyymmeR.js → CRDIOG8r.js} +1 -1
  50. package/.output/public/_nuxt/{XETGYn3c.js → CSPqdI4x.js} +1 -1
  51. package/.output/public/_nuxt/{DyDU0wFf.js → CTYqoFvv.js} +1 -1
  52. package/.output/public/_nuxt/{BbLqUOHs.js → CWGzL6OE.js} +1 -1
  53. package/.output/public/_nuxt/{CZLVBTJx.js → CYJEOEaU.js} +1 -1
  54. package/.output/public/_nuxt/{BTvOPFKG.js → CYu-xp_f.js} +1 -1
  55. package/.output/public/_nuxt/CZvnl0uO.js +52 -0
  56. package/.output/public/_nuxt/{DsPClaxV.js → CadjlDLt.js} +1 -1
  57. package/.output/public/_nuxt/{BJoSd_uV.js → CczQKYUP.js} +1 -1
  58. package/.output/public/_nuxt/{CHAVZu6b.js → CeXr_3vU.js} +2 -2
  59. package/.output/public/_nuxt/{BAasx5OS.js → Ch-A9iSC.js} +1 -1
  60. package/.output/public/_nuxt/{Bap1X7GD.js → Cj9tYr3P.js} +1 -1
  61. package/.output/public/_nuxt/Clm3Z8VL.js +1 -0
  62. package/.output/public/_nuxt/{F8eHh68O.js → CpkrwN3Q.js} +8 -8
  63. package/.output/public/_nuxt/{CO0Pa76w.js → CrwM3gOU.js} +1 -1
  64. package/.output/public/_nuxt/{DeVs4gEL.js → Culm7V2R.js} +1 -1
  65. package/.output/public/_nuxt/{Cl3VX8Um.js → CxZK-Vs6.js} +1 -1
  66. package/.output/public/_nuxt/{DLA-ioQ4.js → Cym7bWgs.js} +1 -1
  67. package/.output/public/_nuxt/CzBFxx8v.js +1 -0
  68. package/.output/public/_nuxt/{BCa-NKh0.js → D0oaRUYx.js} +1 -1
  69. package/.output/public/_nuxt/{DgGwe7jd.js → D7uoAo-G.js} +133 -133
  70. package/.output/public/_nuxt/{CvDZBOay.js → D8KJQqug.js} +1 -1
  71. package/.output/public/_nuxt/{DlymFQ5D.js → D8Z5BXgG.js} +3 -3
  72. package/.output/public/_nuxt/{DdbhVPqD.js → DDK9-_jm.js} +1 -1
  73. package/.output/public/_nuxt/{CnQob-tn.js → DDQU7vSH.js} +1 -1
  74. package/.output/public/_nuxt/{BuSZbOQO.js → DEjwIQuc.js} +1 -1
  75. package/.output/public/_nuxt/{yLATXAxG.js → DLIUYAz9.js} +1 -1
  76. package/.output/public/_nuxt/{DYPm3mWQ.js → DQdL5Jcl.js} +1 -1
  77. package/.output/public/_nuxt/{EZ0owjER.js → DRuCf0Sx.js} +1 -1
  78. package/.output/public/_nuxt/DSEkO8kW.js +1 -0
  79. package/.output/public/_nuxt/{DYqShb5v.js → DSOwr8Hs.js} +4 -4
  80. package/.output/public/_nuxt/{Cf6n9dsT.js → DStg2VwN.js} +1 -1
  81. package/.output/public/_nuxt/{Ci7hrFNN.js → DTlu-CJn.js} +1 -1
  82. package/.output/public/_nuxt/{CCK1so3F.js → DUvUg_V7.js} +1 -1
  83. package/.output/public/_nuxt/{CBjcd4cE.js → D_fdC3mJ.js} +1 -1
  84. package/.output/public/_nuxt/{BhzzQZRC.js → Da1F0IxL.js} +1 -1
  85. package/.output/public/_nuxt/{C6bwwZAc.js → DcXAnOS1.js} +1 -1
  86. package/.output/public/_nuxt/DdtQIDaq.js +1 -0
  87. package/.output/public/_nuxt/Dfz8k_Rn.js +1 -0
  88. package/.output/public/_nuxt/{Dpm6rnHk.js → DitYzGT4.js} +1 -1
  89. package/.output/public/_nuxt/{NMm6Vanu.js → Djh3G2Nf.js} +1 -1
  90. package/.output/public/_nuxt/DmWFeTaU.js +1 -0
  91. package/.output/public/_nuxt/{x85BV7y_.js → DtgJAz2h.js} +1 -1
  92. package/.output/public/_nuxt/{3jfBYqJb.js → DuKway_J.js} +1 -1
  93. package/.output/public/_nuxt/{7nPLTDFM.js → DxF9DsEl.js} +1 -1
  94. package/.output/public/_nuxt/{C9ZBCJdc.js → DyFXtlg0.js} +1 -1
  95. package/.output/public/_nuxt/DzN4YRfa.js +7 -0
  96. package/.output/public/_nuxt/{B_hWP06g.js → DzaPC1WB.js} +1 -1
  97. package/.output/public/_nuxt/{wH-P-_6A.js → DzjHXopz.js} +1 -1
  98. package/.output/public/_nuxt/{CE0zlNDo.js → LUfaevBS.js} +1 -1
  99. package/.output/public/_nuxt/{DRX1aIGD.js → RFRrMFyH.js} +1 -1
  100. package/.output/public/_nuxt/{CROH8wgk.js → RTN5rY4m.js} +1 -1
  101. package/.output/public/_nuxt/{Un5zjlKE.js → XVZ0obUR.js} +1 -1
  102. package/.output/public/_nuxt/{B5HZeat4.js → Z5g5B4NJ.js} +1 -1
  103. package/.output/public/_nuxt/_ltJfz1p.js +1 -0
  104. package/.output/public/_nuxt/builds/latest.json +1 -1
  105. package/.output/public/_nuxt/builds/meta/1cbed594-12e2-48e6-bea9-7a9159c3c1d3.json +1 -0
  106. package/.output/public/_nuxt/{DtOg0Asw.js → dkyHOJLf.js} +1 -1
  107. package/.output/public/_nuxt/entry.D1DMaixs.css +1 -0
  108. package/.output/public/_nuxt/{habs8oz6.js → gWmEw6BT.js} +1 -1
  109. package/.output/public/_nuxt/ixgiI20S.js +1 -0
  110. package/.output/public/_nuxt/{C6CFIGob.js → jJeqAxmP.js} +1 -1
  111. package/.output/public/_nuxt/{P_2SRa71.js → lisFd8W1.js} +2 -2
  112. package/.output/public/_nuxt/{CoQ_oOia.js → nrlEwpIH.js} +1 -1
  113. package/.output/public/_nuxt/{6wO6CbCo.js → uHyBIwWw.js} +1 -1
  114. package/.output/public/_nuxt/{dDqgUqt5.js → vGkKA7iH.js} +1 -1
  115. package/.output/public/_nuxt/{C445d10Z.js → z1xPtaLw.js} +1 -1
  116. package/.output/server/chunks/_/registry.mjs +116 -0
  117. package/.output/server/chunks/_/registry.mjs.map +1 -0
  118. package/.output/server/chunks/_/{native-backup.mjs → runtime.mjs} +325 -164
  119. package/.output/server/chunks/_/runtime.mjs.map +1 -0
  120. package/.output/server/chunks/_/{native-backup-jobs.mjs → service.mjs} +185 -248
  121. package/.output/server/chunks/_/service.mjs.map +1 -0
  122. package/.output/server/chunks/build/client.manifest.mjs +734 -723
  123. package/.output/server/chunks/build/client.manifest.mjs.map +1 -1
  124. package/.output/server/chunks/nitro/nitro.mjs +659 -652
  125. package/.output/server/chunks/routes/api/database-backup/capability.get.mjs +7 -2
  126. package/.output/server/chunks/routes/api/database-backup/capability.get.mjs.map +1 -1
  127. package/.output/server/chunks/routes/api/database-export/export-database.mjs +4 -3
  128. package/.output/server/chunks/routes/api/database-export/export-database.mjs.map +1 -1
  129. package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs +1 -20
  130. package/.output/server/chunks/routes/api/database-export/jobs/_jobId/download.get.mjs.map +1 -1
  131. package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs +1 -20
  132. package/.output/server/chunks/routes/api/database-export/jobs/_jobId_.get.mjs.map +1 -1
  133. package/.output/server/chunks/routes/api/database-import/import-database.mjs +14 -3
  134. package/.output/server/chunks/routes/api/database-import/import-database.mjs.map +1 -1
  135. package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs +1 -20
  136. package/.output/server/chunks/routes/api/database-import/jobs/_jobId_.get.mjs.map +1 -1
  137. package/.output/server/package.json +1 -1
  138. package/package.json +1 -1
  139. package/.output/public/_nuxt/4OV_5qQE.js +0 -1
  140. package/.output/public/_nuxt/B3iNzG14.js +0 -1
  141. package/.output/public/_nuxt/Bf2bW_MY.js +0 -7
  142. package/.output/public/_nuxt/C7C1kq_N.js +0 -1
  143. package/.output/public/_nuxt/CN8b9qPP.js +0 -1
  144. package/.output/public/_nuxt/CUws2Uv7.js +0 -1
  145. package/.output/public/_nuxt/Cl5p4EQY.js +0 -1
  146. package/.output/public/_nuxt/D9MMtvTu.js +0 -52
  147. package/.output/public/_nuxt/DM8LJTsg.js +0 -1
  148. package/.output/public/_nuxt/ORit_vRp.js +0 -1
  149. package/.output/public/_nuxt/ZhP2FY6Y.js +0 -1
  150. package/.output/public/_nuxt/builds/meta/47c294b1-d6b3-4974-bd50-5046ae0a393e.json +0 -1
  151. package/.output/public/_nuxt/dSX5D8ur.js +0 -28
  152. package/.output/public/_nuxt/entry.CGwcggc4.css +0 -1
  153. package/.output/server/chunks/_/native-backup-jobs.mjs.map +0 -1
  154. package/.output/server/chunks/_/native-backup.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import{p as V}from"./Bibtvqd8.js";import{I as X}from"./Ci7hrFNN.js";import{_ as $,t as J,q as Q,s as Z,g as rr,a as er,b as tr,l as m,d as ar,u as sr,F as nr,A as or,k as E,G as cr,H as ir,I as dr,K as hr}from"./DYqShb5v.js";import{p as lr}from"./B_hWP06g.js";import"./DgGwe7jd.js";var p={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},$r=dr.gitGraph,q=$(()=>cr({...$r,...ir().gitGraph}),"getConfig"),i=new X(()=>{const t=q(),r=t.mainBranchName,a=t.mainBranchOrder;return{mainBranchName:r,commits:new Map,head:null,branchConfig:new Map([[r,{name:r,order:a}]]),branches:new Map([[r,null]]),currBranch:r,direction:"LR",seq:0,options:{}}});function z(){return hr({length:7})}$(z,"getID");function W(t,r){const a=Object.create(null);return t.reduce((n,e)=>{const s=r(e);return a[s]||(a[s]=!0,n.push(e)),n},[])}$(W,"uniqBy");var fr=$(function(t){i.records.direction=t},"setDirection"),yr=$(function(t){m.debug("options str",t),t=t==null?void 0:t.trim(),t=t||"{}";try{i.records.options=JSON.parse(t)}catch(r){m.error("error while parsing gitGraph options",r.message)}},"setOptions"),gr=$(function(){return i.records.options},"getOptions"),xr=$(function(t){let r=t.msg,a=t.id;const n=t.type;let e=t.tags;m.info("commit",r,a,n,e),m.debug("Entering commit:",r,a,n,e);const s=q();a=E.sanitizeText(a,s),r=E.sanitizeText(r,s),e=e==null?void 0:e.map(c=>E.sanitizeText(c,s));const o={id:a||i.records.seq+"-"+z(),message:r,seq:i.records.seq++,type:n??p.NORMAL,tags:e??[],parents:i.records.head==null?[]:[i.records.head.id],branch:i.records.currBranch};i.records.head=o,m.info("main branch",s.mainBranchName),i.records.commits.has(o.id)&&m.warn(`Commit ID ${o.id} already exists`),i.records.commits.set(o.id,o),i.records.branches.set(i.records.currBranch,o.id),m.debug("in pushCommit "+o.id)},"commit"),ur=$(function(t){let r=t.name;const a=t.order;if(r=E.sanitizeText(r,q()),i.records.branches.has(r))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${r}")`);i.records.branches.set(r,i.records.head!=null?i.records.head.id:null),i.records.branchConfig.set(r,{name:r,order:a}),S(r),m.debug("in createBranch")},"branch"),pr=$(t=>{let r=t.branch,a=t.id;const n=t.type,e=t.tags,s=q();r=E.sanitizeText(r,s),a&&(a=E.sanitizeText(a,s));const o=i.records.branches.get(i.records.currBranch),c=i.records.branches.get(r),d=o?i.records.commits.get(o):void 0,h=c?i.records.commits.get(c):void 0;if(d&&h&&d.branch===r)throw new Error(`Cannot merge branch '${r}' into itself.`);if(i.records.currBranch===r){const l=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw l.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["branch abc"]},l}if(d===void 0||!d){const l=new Error(`Incorrect usage of "merge". Current branch (${i.records.currBranch})has no commits`);throw l.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["commit"]},l}if(!i.records.branches.has(r)){const l=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") does not exist");throw l.hash={text:`merge ${r}`,token:`merge ${r}`,expected:[`branch ${r}`]},l}if(h===void 0||!h){const l=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") has no commits");throw l.hash={text:`merge ${r}`,token:`merge ${r}`,expected:['"commit"']},l}if(d===h){const l=new Error('Incorrect usage of "merge". Both branches have same head');throw l.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["branch abc"]},l}if(a&&i.records.commits.has(a)){const l=new Error('Incorrect usage of "merge". Commit with id:'+a+" already exists, use different custom id");throw l.hash={text:`merge ${r} ${a} ${n} ${e==null?void 0:e.join(" ")}`,token:`merge ${r} ${a} ${n} ${e==null?void 0:e.join(" ")}`,expected:[`merge ${r} ${a}_UNIQUE ${n} ${e==null?void 0:e.join(" ")}`]},l}const f=c||"",y={id:a||`${i.records.seq}-${z()}`,message:`merged branch ${r} into ${i.records.currBranch}`,seq:i.records.seq++,parents:i.records.head==null?[]:[i.records.head.id,f],branch:i.records.currBranch,type:p.MERGE,customType:n,customId:!!a,tags:e??[]};i.records.head=y,i.records.commits.set(y.id,y),i.records.branches.set(i.records.currBranch,y.id),m.debug(i.records.branches),m.debug("in mergeBranch")},"merge"),br=$(function(t){let r=t.id,a=t.targetId,n=t.tags,e=t.parent;m.debug("Entering cherryPick:",r,a,n);const s=q();if(r=E.sanitizeText(r,s),a=E.sanitizeText(a,s),n=n==null?void 0:n.map(d=>E.sanitizeText(d,s)),e=E.sanitizeText(e,s),!r||!i.records.commits.has(r)){const d=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw d.hash={text:`cherryPick ${r} ${a}`,token:`cherryPick ${r} ${a}`,expected:["cherry-pick abc"]},d}const o=i.records.commits.get(r);if(o===void 0||!o)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(e&&!(Array.isArray(o.parents)&&o.parents.includes(e)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");const c=o.branch;if(o.type===p.MERGE&&!e)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!a||!i.records.commits.has(a)){if(c===i.records.currBranch){const y=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw y.hash={text:`cherryPick ${r} ${a}`,token:`cherryPick ${r} ${a}`,expected:["cherry-pick abc"]},y}const d=i.records.branches.get(i.records.currBranch);if(d===void 0||!d){const y=new Error(`Incorrect usage of "cherry-pick". Current branch (${i.records.currBranch})has no commits`);throw y.hash={text:`cherryPick ${r} ${a}`,token:`cherryPick ${r} ${a}`,expected:["cherry-pick abc"]},y}const h=i.records.commits.get(d);if(h===void 0||!h){const y=new Error(`Incorrect usage of "cherry-pick". Current branch (${i.records.currBranch})has no commits`);throw y.hash={text:`cherryPick ${r} ${a}`,token:`cherryPick ${r} ${a}`,expected:["cherry-pick abc"]},y}const f={id:i.records.seq+"-"+z(),message:`cherry-picked ${o==null?void 0:o.message} into ${i.records.currBranch}`,seq:i.records.seq++,parents:i.records.head==null?[]:[i.records.head.id,o.id],branch:i.records.currBranch,type:p.CHERRY_PICK,tags:n?n.filter(Boolean):[`cherry-pick:${o.id}${o.type===p.MERGE?`|parent:${e}`:""}`]};i.records.head=f,i.records.commits.set(f.id,f),i.records.branches.set(i.records.currBranch,f.id),m.debug(i.records.branches),m.debug("in cherryPick")}},"cherryPick"),S=$(function(t){if(t=E.sanitizeText(t,q()),i.records.branches.has(t)){i.records.currBranch=t;const r=i.records.branches.get(i.records.currBranch);r===void 0||!r?i.records.head=null:i.records.head=i.records.commits.get(r)??null}else{const r=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw r.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},r}},"checkout");function D(t,r,a){const n=t.indexOf(r);n===-1?t.push(a):t.splice(n,1,a)}$(D,"upsert");function F(t){const r=t.reduce((e,s)=>e.seq>s.seq?e:s,t[0]);let a="";t.forEach(function(e){e===r?a+=" *":a+=" |"});const n=[a,r.id,r.seq];for(const e in i.records.branches)i.records.branches.get(e)===r.id&&n.push(e);if(m.debug(n.join(" ")),r.parents&&r.parents.length==2&&r.parents[0]&&r.parents[1]){const e=i.records.commits.get(r.parents[0]);D(t,r,e),r.parents[1]&&t.push(i.records.commits.get(r.parents[1]))}else{if(r.parents.length==0)return;if(r.parents[0]){const e=i.records.commits.get(r.parents[0]);D(t,r,e)}}t=W(t,e=>e.id),F(t)}$(F,"prettyPrintCommitHistory");var mr=$(function(){m.debug(i.records.commits);const t=j()[0];F([t])},"prettyPrint"),wr=$(function(){i.reset(),or()},"clear"),vr=$(function(){return[...i.records.branchConfig.values()].map((r,a)=>r.order!==null&&r.order!==void 0?r:{...r,order:parseFloat(`0.${a}`)}).sort((r,a)=>(r.order??0)-(a.order??0)).map(({name:r})=>({name:r}))},"getBranchesAsObjArray"),Cr=$(function(){return i.records.branches},"getBranches"),Er=$(function(){return i.records.commits},"getCommits"),j=$(function(){const t=[...i.records.commits.values()];return t.forEach(function(r){m.debug(r.id)}),t.sort((r,a)=>r.seq-a.seq),t},"getCommitsArray"),Br=$(function(){return i.records.currBranch},"getCurrentBranch"),Tr=$(function(){return i.records.direction},"getDirection"),Lr=$(function(){return i.records.head},"getHead"),K={commitType:p,getConfig:q,setDirection:fr,setOptions:yr,getOptions:gr,commit:xr,branch:ur,merge:pr,cherryPick:br,checkout:S,prettyPrint:mr,clear:wr,getBranchesAsObjArray:vr,getBranches:Cr,getCommits:Er,getCommitsArray:j,getCurrentBranch:Br,getDirection:Tr,getHead:Lr,setAccTitle:tr,getAccTitle:er,getAccDescription:rr,setAccDescription:Z,setDiagramTitle:Q,getDiagramTitle:J},kr=$((t,r)=>{V(t,r),t.dir&&r.setDirection(t.dir);for(const a of t.statements)Mr(a,r)},"populate"),Mr=$((t,r)=>{const n={Commit:$(e=>r.commit(Ir(e)),"Commit"),Branch:$(e=>r.branch(Rr(e)),"Branch"),Merge:$(e=>r.merge(Gr(e)),"Merge"),Checkout:$(e=>r.checkout(Or(e)),"Checkout"),CherryPicking:$(e=>r.cherryPick(qr(e)),"CherryPicking")}[t.$type];n?n(t):m.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),Ir=$(t=>({id:t.id,msg:t.message??"",type:t.type!==void 0?p[t.type]:p.NORMAL,tags:t.tags??void 0}),"parseCommit"),Rr=$(t=>({name:t.name,order:t.order??0}),"parseBranch"),Gr=$(t=>({branch:t.branch,id:t.id??"",type:t.type!==void 0?p[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),Or=$(t=>t.branch,"parseCheckout"),qr=$(t=>{var a;return{id:t.id,targetId:"",tags:((a=t.tags)==null?void 0:a.length)===0?void 0:t.tags,parent:t.parent}},"parseCherryPicking"),Ar={parse:$(async t=>{const r=await lr("gitGraph",t);m.debug(r),kr(r,K)},"parse")},I=10,R=40,B=4,L=2,O=8,v=new Map,C=new Map,P=30,A=new Map,_=[],M=0,x="LR",Hr=$(()=>{v.clear(),C.clear(),A.clear(),M=0,_=[],x="LR"},"clear"),Y=$(t=>{const r=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof t=="string"?t.split(/\\n|\n|<br\s*\/?>/gi):t).forEach(n=>{const e=document.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),e.setAttribute("dy","1em"),e.setAttribute("x","0"),e.setAttribute("class","row"),e.textContent=n.trim(),r.appendChild(e)}),r},"drawText"),U=$(t=>{let r,a,n;return x==="BT"?(a=$((e,s)=>e<=s,"comparisonFunc"),n=1/0):(a=$((e,s)=>e>=s,"comparisonFunc"),n=0),t.forEach(e=>{var o,c;const s=x==="TB"||x=="BT"?(o=C.get(e))==null?void 0:o.y:(c=C.get(e))==null?void 0:c.x;s!==void 0&&a(s,n)&&(r=e,n=s)}),r},"findClosestParent"),Pr=$(t=>{let r="",a=1/0;return t.forEach(n=>{const e=C.get(n).y;e<=a&&(r=n,a=e)}),r||void 0},"findClosestParentBT"),_r=$((t,r,a)=>{let n=a,e=a;const s=[];t.forEach(o=>{const c=r.get(o);if(!c)throw new Error(`Commit not found for key ${o}`);c.parents.length?(n=Dr(c),e=Math.max(n,e)):s.push(c),Fr(c,n)}),n=e,s.forEach(o=>{Nr(o,n,a)}),t.forEach(o=>{const c=r.get(o);if(c!=null&&c.parents.length){const d=Pr(c.parents);n=C.get(d).y-R,n<=e&&(e=n);const h=v.get(c.branch).pos,f=n-I;C.set(c.id,{x:h,y:f})}})},"setParallelBTPos"),zr=$(t=>{var n;const r=U(t.parents.filter(e=>e!==null));if(!r)throw new Error(`Closest parent not found for commit ${t.id}`);const a=(n=C.get(r))==null?void 0:n.y;if(a===void 0)throw new Error(`Closest parent position not found for commit ${t.id}`);return a},"findClosestParentPos"),Dr=$(t=>zr(t)+R,"calculateCommitPosition"),Fr=$((t,r)=>{const a=v.get(t.branch);if(!a)throw new Error(`Branch not found for commit ${t.id}`);const n=a.pos,e=r+I;return C.set(t.id,{x:n,y:e}),{x:n,y:e}},"setCommitPosition"),Nr=$((t,r,a)=>{const n=v.get(t.branch);if(!n)throw new Error(`Branch not found for commit ${t.id}`);const e=r+a,s=n.pos;C.set(t.id,{x:s,y:e})},"setRootPosition"),Wr=$((t,r,a,n,e,s)=>{if(s===p.HIGHLIGHT)t.append("rect").attr("x",a.x-10).attr("y",a.y-10).attr("width",20).attr("height",20).attr("class",`commit ${r.id} commit-highlight${e%O} ${n}-outer`),t.append("rect").attr("x",a.x-6).attr("y",a.y-6).attr("width",12).attr("height",12).attr("class",`commit ${r.id} commit${e%O} ${n}-inner`);else if(s===p.CHERRY_PICK)t.append("circle").attr("cx",a.x).attr("cy",a.y).attr("r",10).attr("class",`commit ${r.id} ${n}`),t.append("circle").attr("cx",a.x-3).attr("cy",a.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${r.id} ${n}`),t.append("circle").attr("cx",a.x+3).attr("cy",a.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${r.id} ${n}`),t.append("line").attr("x1",a.x+3).attr("y1",a.y+1).attr("x2",a.x).attr("y2",a.y-5).attr("stroke","#fff").attr("class",`commit ${r.id} ${n}`),t.append("line").attr("x1",a.x-3).attr("y1",a.y+1).attr("x2",a.x).attr("y2",a.y-5).attr("stroke","#fff").attr("class",`commit ${r.id} ${n}`);else{const o=t.append("circle");if(o.attr("cx",a.x),o.attr("cy",a.y),o.attr("r",r.type===p.MERGE?9:10),o.attr("class",`commit ${r.id} commit${e%O}`),s===p.MERGE){const c=t.append("circle");c.attr("cx",a.x),c.attr("cy",a.y),c.attr("r",6),c.attr("class",`commit ${n} ${r.id} commit${e%O}`)}s===p.REVERSE&&t.append("path").attr("d",`M ${a.x-5},${a.y-5}L${a.x+5},${a.y+5}M${a.x-5},${a.y+5}L${a.x+5},${a.y-5}`).attr("class",`commit ${n} ${r.id} commit${e%O}`)}},"drawCommitBullet"),Sr=$((t,r,a,n,e)=>{var s;if(r.type!==p.CHERRY_PICK&&(r.customId&&r.type===p.MERGE||r.type!==p.MERGE)&&e.showCommitLabel){const o=t.append("g"),c=o.insert("rect").attr("class","commit-label-bkg"),d=o.append("text").attr("x",n).attr("y",a.y+25).attr("class","commit-label").text(r.id),h=(s=d.node())==null?void 0:s.getBBox();if(h&&(c.attr("x",a.posWithOffset-h.width/2-L).attr("y",a.y+13.5).attr("width",h.width+2*L).attr("height",h.height+2*L),x==="TB"||x==="BT"?(c.attr("x",a.x-(h.width+4*B+5)).attr("y",a.y-12),d.attr("x",a.x-(h.width+4*B)).attr("y",a.y+h.height-12)):d.attr("x",a.posWithOffset-h.width/2),e.rotateCommitLabel))if(x==="TB"||x==="BT")d.attr("transform","rotate(-45, "+a.x+", "+a.y+")"),c.attr("transform","rotate(-45, "+a.x+", "+a.y+")");else{const f=-7.5-(h.width+10)/25*9.5,y=10+h.width/25*8.5;o.attr("transform","translate("+f+", "+y+") rotate(-45, "+n+", "+a.y+")")}}},"drawCommitLabel"),jr=$((t,r,a,n)=>{var e;if(r.tags.length>0){let s=0,o=0,c=0;const d=[];for(const h of r.tags.reverse()){const f=t.insert("polygon"),y=t.append("circle"),l=t.append("text").attr("y",a.y-16-s).attr("class","tag-label").text(h),g=(e=l.node())==null?void 0:e.getBBox();if(!g)throw new Error("Tag bbox not found");o=Math.max(o,g.width),c=Math.max(c,g.height),l.attr("x",a.posWithOffset-g.width/2),d.push({tag:l,hole:y,rect:f,yOffset:s}),s+=20}for(const{tag:h,hole:f,rect:y,yOffset:l}of d){const g=c/2,u=a.y-19.2-l;if(y.attr("class","tag-label-bkg").attr("points",`
1
+ import{p as V}from"./BO-QgaRL.js";import{I as X}from"./DTlu-CJn.js";import{_ as $,t as J,q as Q,s as Z,g as rr,a as er,b as tr,l as m,d as ar,u as sr,F as nr,A as or,k as E,G as cr,H as ir,I as dr,K as hr}from"./DSOwr8Hs.js";import{p as lr}from"./DzaPC1WB.js";import"./D7uoAo-G.js";var p={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},$r=dr.gitGraph,q=$(()=>cr({...$r,...ir().gitGraph}),"getConfig"),i=new X(()=>{const t=q(),r=t.mainBranchName,a=t.mainBranchOrder;return{mainBranchName:r,commits:new Map,head:null,branchConfig:new Map([[r,{name:r,order:a}]]),branches:new Map([[r,null]]),currBranch:r,direction:"LR",seq:0,options:{}}});function z(){return hr({length:7})}$(z,"getID");function W(t,r){const a=Object.create(null);return t.reduce((n,e)=>{const s=r(e);return a[s]||(a[s]=!0,n.push(e)),n},[])}$(W,"uniqBy");var fr=$(function(t){i.records.direction=t},"setDirection"),yr=$(function(t){m.debug("options str",t),t=t==null?void 0:t.trim(),t=t||"{}";try{i.records.options=JSON.parse(t)}catch(r){m.error("error while parsing gitGraph options",r.message)}},"setOptions"),gr=$(function(){return i.records.options},"getOptions"),xr=$(function(t){let r=t.msg,a=t.id;const n=t.type;let e=t.tags;m.info("commit",r,a,n,e),m.debug("Entering commit:",r,a,n,e);const s=q();a=E.sanitizeText(a,s),r=E.sanitizeText(r,s),e=e==null?void 0:e.map(c=>E.sanitizeText(c,s));const o={id:a||i.records.seq+"-"+z(),message:r,seq:i.records.seq++,type:n??p.NORMAL,tags:e??[],parents:i.records.head==null?[]:[i.records.head.id],branch:i.records.currBranch};i.records.head=o,m.info("main branch",s.mainBranchName),i.records.commits.has(o.id)&&m.warn(`Commit ID ${o.id} already exists`),i.records.commits.set(o.id,o),i.records.branches.set(i.records.currBranch,o.id),m.debug("in pushCommit "+o.id)},"commit"),ur=$(function(t){let r=t.name;const a=t.order;if(r=E.sanitizeText(r,q()),i.records.branches.has(r))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${r}")`);i.records.branches.set(r,i.records.head!=null?i.records.head.id:null),i.records.branchConfig.set(r,{name:r,order:a}),S(r),m.debug("in createBranch")},"branch"),pr=$(t=>{let r=t.branch,a=t.id;const n=t.type,e=t.tags,s=q();r=E.sanitizeText(r,s),a&&(a=E.sanitizeText(a,s));const o=i.records.branches.get(i.records.currBranch),c=i.records.branches.get(r),d=o?i.records.commits.get(o):void 0,h=c?i.records.commits.get(c):void 0;if(d&&h&&d.branch===r)throw new Error(`Cannot merge branch '${r}' into itself.`);if(i.records.currBranch===r){const l=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw l.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["branch abc"]},l}if(d===void 0||!d){const l=new Error(`Incorrect usage of "merge". Current branch (${i.records.currBranch})has no commits`);throw l.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["commit"]},l}if(!i.records.branches.has(r)){const l=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") does not exist");throw l.hash={text:`merge ${r}`,token:`merge ${r}`,expected:[`branch ${r}`]},l}if(h===void 0||!h){const l=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") has no commits");throw l.hash={text:`merge ${r}`,token:`merge ${r}`,expected:['"commit"']},l}if(d===h){const l=new Error('Incorrect usage of "merge". Both branches have same head');throw l.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["branch abc"]},l}if(a&&i.records.commits.has(a)){const l=new Error('Incorrect usage of "merge". Commit with id:'+a+" already exists, use different custom id");throw l.hash={text:`merge ${r} ${a} ${n} ${e==null?void 0:e.join(" ")}`,token:`merge ${r} ${a} ${n} ${e==null?void 0:e.join(" ")}`,expected:[`merge ${r} ${a}_UNIQUE ${n} ${e==null?void 0:e.join(" ")}`]},l}const f=c||"",y={id:a||`${i.records.seq}-${z()}`,message:`merged branch ${r} into ${i.records.currBranch}`,seq:i.records.seq++,parents:i.records.head==null?[]:[i.records.head.id,f],branch:i.records.currBranch,type:p.MERGE,customType:n,customId:!!a,tags:e??[]};i.records.head=y,i.records.commits.set(y.id,y),i.records.branches.set(i.records.currBranch,y.id),m.debug(i.records.branches),m.debug("in mergeBranch")},"merge"),br=$(function(t){let r=t.id,a=t.targetId,n=t.tags,e=t.parent;m.debug("Entering cherryPick:",r,a,n);const s=q();if(r=E.sanitizeText(r,s),a=E.sanitizeText(a,s),n=n==null?void 0:n.map(d=>E.sanitizeText(d,s)),e=E.sanitizeText(e,s),!r||!i.records.commits.has(r)){const d=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw d.hash={text:`cherryPick ${r} ${a}`,token:`cherryPick ${r} ${a}`,expected:["cherry-pick abc"]},d}const o=i.records.commits.get(r);if(o===void 0||!o)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(e&&!(Array.isArray(o.parents)&&o.parents.includes(e)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");const c=o.branch;if(o.type===p.MERGE&&!e)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!a||!i.records.commits.has(a)){if(c===i.records.currBranch){const y=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw y.hash={text:`cherryPick ${r} ${a}`,token:`cherryPick ${r} ${a}`,expected:["cherry-pick abc"]},y}const d=i.records.branches.get(i.records.currBranch);if(d===void 0||!d){const y=new Error(`Incorrect usage of "cherry-pick". Current branch (${i.records.currBranch})has no commits`);throw y.hash={text:`cherryPick ${r} ${a}`,token:`cherryPick ${r} ${a}`,expected:["cherry-pick abc"]},y}const h=i.records.commits.get(d);if(h===void 0||!h){const y=new Error(`Incorrect usage of "cherry-pick". Current branch (${i.records.currBranch})has no commits`);throw y.hash={text:`cherryPick ${r} ${a}`,token:`cherryPick ${r} ${a}`,expected:["cherry-pick abc"]},y}const f={id:i.records.seq+"-"+z(),message:`cherry-picked ${o==null?void 0:o.message} into ${i.records.currBranch}`,seq:i.records.seq++,parents:i.records.head==null?[]:[i.records.head.id,o.id],branch:i.records.currBranch,type:p.CHERRY_PICK,tags:n?n.filter(Boolean):[`cherry-pick:${o.id}${o.type===p.MERGE?`|parent:${e}`:""}`]};i.records.head=f,i.records.commits.set(f.id,f),i.records.branches.set(i.records.currBranch,f.id),m.debug(i.records.branches),m.debug("in cherryPick")}},"cherryPick"),S=$(function(t){if(t=E.sanitizeText(t,q()),i.records.branches.has(t)){i.records.currBranch=t;const r=i.records.branches.get(i.records.currBranch);r===void 0||!r?i.records.head=null:i.records.head=i.records.commits.get(r)??null}else{const r=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`);throw r.hash={text:`checkout ${t}`,token:`checkout ${t}`,expected:[`branch ${t}`]},r}},"checkout");function D(t,r,a){const n=t.indexOf(r);n===-1?t.push(a):t.splice(n,1,a)}$(D,"upsert");function F(t){const r=t.reduce((e,s)=>e.seq>s.seq?e:s,t[0]);let a="";t.forEach(function(e){e===r?a+=" *":a+=" |"});const n=[a,r.id,r.seq];for(const e in i.records.branches)i.records.branches.get(e)===r.id&&n.push(e);if(m.debug(n.join(" ")),r.parents&&r.parents.length==2&&r.parents[0]&&r.parents[1]){const e=i.records.commits.get(r.parents[0]);D(t,r,e),r.parents[1]&&t.push(i.records.commits.get(r.parents[1]))}else{if(r.parents.length==0)return;if(r.parents[0]){const e=i.records.commits.get(r.parents[0]);D(t,r,e)}}t=W(t,e=>e.id),F(t)}$(F,"prettyPrintCommitHistory");var mr=$(function(){m.debug(i.records.commits);const t=j()[0];F([t])},"prettyPrint"),wr=$(function(){i.reset(),or()},"clear"),vr=$(function(){return[...i.records.branchConfig.values()].map((r,a)=>r.order!==null&&r.order!==void 0?r:{...r,order:parseFloat(`0.${a}`)}).sort((r,a)=>(r.order??0)-(a.order??0)).map(({name:r})=>({name:r}))},"getBranchesAsObjArray"),Cr=$(function(){return i.records.branches},"getBranches"),Er=$(function(){return i.records.commits},"getCommits"),j=$(function(){const t=[...i.records.commits.values()];return t.forEach(function(r){m.debug(r.id)}),t.sort((r,a)=>r.seq-a.seq),t},"getCommitsArray"),Br=$(function(){return i.records.currBranch},"getCurrentBranch"),Tr=$(function(){return i.records.direction},"getDirection"),Lr=$(function(){return i.records.head},"getHead"),K={commitType:p,getConfig:q,setDirection:fr,setOptions:yr,getOptions:gr,commit:xr,branch:ur,merge:pr,cherryPick:br,checkout:S,prettyPrint:mr,clear:wr,getBranchesAsObjArray:vr,getBranches:Cr,getCommits:Er,getCommitsArray:j,getCurrentBranch:Br,getDirection:Tr,getHead:Lr,setAccTitle:tr,getAccTitle:er,getAccDescription:rr,setAccDescription:Z,setDiagramTitle:Q,getDiagramTitle:J},kr=$((t,r)=>{V(t,r),t.dir&&r.setDirection(t.dir);for(const a of t.statements)Mr(a,r)},"populate"),Mr=$((t,r)=>{const n={Commit:$(e=>r.commit(Ir(e)),"Commit"),Branch:$(e=>r.branch(Rr(e)),"Branch"),Merge:$(e=>r.merge(Gr(e)),"Merge"),Checkout:$(e=>r.checkout(Or(e)),"Checkout"),CherryPicking:$(e=>r.cherryPick(qr(e)),"CherryPicking")}[t.$type];n?n(t):m.error(`Unknown statement type: ${t.$type}`)},"parseStatement"),Ir=$(t=>({id:t.id,msg:t.message??"",type:t.type!==void 0?p[t.type]:p.NORMAL,tags:t.tags??void 0}),"parseCommit"),Rr=$(t=>({name:t.name,order:t.order??0}),"parseBranch"),Gr=$(t=>({branch:t.branch,id:t.id??"",type:t.type!==void 0?p[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),Or=$(t=>t.branch,"parseCheckout"),qr=$(t=>{var a;return{id:t.id,targetId:"",tags:((a=t.tags)==null?void 0:a.length)===0?void 0:t.tags,parent:t.parent}},"parseCherryPicking"),Ar={parse:$(async t=>{const r=await lr("gitGraph",t);m.debug(r),kr(r,K)},"parse")},I=10,R=40,B=4,L=2,O=8,v=new Map,C=new Map,P=30,A=new Map,_=[],M=0,x="LR",Hr=$(()=>{v.clear(),C.clear(),A.clear(),M=0,_=[],x="LR"},"clear"),Y=$(t=>{const r=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof t=="string"?t.split(/\\n|\n|<br\s*\/?>/gi):t).forEach(n=>{const e=document.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),e.setAttribute("dy","1em"),e.setAttribute("x","0"),e.setAttribute("class","row"),e.textContent=n.trim(),r.appendChild(e)}),r},"drawText"),U=$(t=>{let r,a,n;return x==="BT"?(a=$((e,s)=>e<=s,"comparisonFunc"),n=1/0):(a=$((e,s)=>e>=s,"comparisonFunc"),n=0),t.forEach(e=>{var o,c;const s=x==="TB"||x=="BT"?(o=C.get(e))==null?void 0:o.y:(c=C.get(e))==null?void 0:c.x;s!==void 0&&a(s,n)&&(r=e,n=s)}),r},"findClosestParent"),Pr=$(t=>{let r="",a=1/0;return t.forEach(n=>{const e=C.get(n).y;e<=a&&(r=n,a=e)}),r||void 0},"findClosestParentBT"),_r=$((t,r,a)=>{let n=a,e=a;const s=[];t.forEach(o=>{const c=r.get(o);if(!c)throw new Error(`Commit not found for key ${o}`);c.parents.length?(n=Dr(c),e=Math.max(n,e)):s.push(c),Fr(c,n)}),n=e,s.forEach(o=>{Nr(o,n,a)}),t.forEach(o=>{const c=r.get(o);if(c!=null&&c.parents.length){const d=Pr(c.parents);n=C.get(d).y-R,n<=e&&(e=n);const h=v.get(c.branch).pos,f=n-I;C.set(c.id,{x:h,y:f})}})},"setParallelBTPos"),zr=$(t=>{var n;const r=U(t.parents.filter(e=>e!==null));if(!r)throw new Error(`Closest parent not found for commit ${t.id}`);const a=(n=C.get(r))==null?void 0:n.y;if(a===void 0)throw new Error(`Closest parent position not found for commit ${t.id}`);return a},"findClosestParentPos"),Dr=$(t=>zr(t)+R,"calculateCommitPosition"),Fr=$((t,r)=>{const a=v.get(t.branch);if(!a)throw new Error(`Branch not found for commit ${t.id}`);const n=a.pos,e=r+I;return C.set(t.id,{x:n,y:e}),{x:n,y:e}},"setCommitPosition"),Nr=$((t,r,a)=>{const n=v.get(t.branch);if(!n)throw new Error(`Branch not found for commit ${t.id}`);const e=r+a,s=n.pos;C.set(t.id,{x:s,y:e})},"setRootPosition"),Wr=$((t,r,a,n,e,s)=>{if(s===p.HIGHLIGHT)t.append("rect").attr("x",a.x-10).attr("y",a.y-10).attr("width",20).attr("height",20).attr("class",`commit ${r.id} commit-highlight${e%O} ${n}-outer`),t.append("rect").attr("x",a.x-6).attr("y",a.y-6).attr("width",12).attr("height",12).attr("class",`commit ${r.id} commit${e%O} ${n}-inner`);else if(s===p.CHERRY_PICK)t.append("circle").attr("cx",a.x).attr("cy",a.y).attr("r",10).attr("class",`commit ${r.id} ${n}`),t.append("circle").attr("cx",a.x-3).attr("cy",a.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${r.id} ${n}`),t.append("circle").attr("cx",a.x+3).attr("cy",a.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${r.id} ${n}`),t.append("line").attr("x1",a.x+3).attr("y1",a.y+1).attr("x2",a.x).attr("y2",a.y-5).attr("stroke","#fff").attr("class",`commit ${r.id} ${n}`),t.append("line").attr("x1",a.x-3).attr("y1",a.y+1).attr("x2",a.x).attr("y2",a.y-5).attr("stroke","#fff").attr("class",`commit ${r.id} ${n}`);else{const o=t.append("circle");if(o.attr("cx",a.x),o.attr("cy",a.y),o.attr("r",r.type===p.MERGE?9:10),o.attr("class",`commit ${r.id} commit${e%O}`),s===p.MERGE){const c=t.append("circle");c.attr("cx",a.x),c.attr("cy",a.y),c.attr("r",6),c.attr("class",`commit ${n} ${r.id} commit${e%O}`)}s===p.REVERSE&&t.append("path").attr("d",`M ${a.x-5},${a.y-5}L${a.x+5},${a.y+5}M${a.x-5},${a.y+5}L${a.x+5},${a.y-5}`).attr("class",`commit ${n} ${r.id} commit${e%O}`)}},"drawCommitBullet"),Sr=$((t,r,a,n,e)=>{var s;if(r.type!==p.CHERRY_PICK&&(r.customId&&r.type===p.MERGE||r.type!==p.MERGE)&&e.showCommitLabel){const o=t.append("g"),c=o.insert("rect").attr("class","commit-label-bkg"),d=o.append("text").attr("x",n).attr("y",a.y+25).attr("class","commit-label").text(r.id),h=(s=d.node())==null?void 0:s.getBBox();if(h&&(c.attr("x",a.posWithOffset-h.width/2-L).attr("y",a.y+13.5).attr("width",h.width+2*L).attr("height",h.height+2*L),x==="TB"||x==="BT"?(c.attr("x",a.x-(h.width+4*B+5)).attr("y",a.y-12),d.attr("x",a.x-(h.width+4*B)).attr("y",a.y+h.height-12)):d.attr("x",a.posWithOffset-h.width/2),e.rotateCommitLabel))if(x==="TB"||x==="BT")d.attr("transform","rotate(-45, "+a.x+", "+a.y+")"),c.attr("transform","rotate(-45, "+a.x+", "+a.y+")");else{const f=-7.5-(h.width+10)/25*9.5,y=10+h.width/25*8.5;o.attr("transform","translate("+f+", "+y+") rotate(-45, "+n+", "+a.y+")")}}},"drawCommitLabel"),jr=$((t,r,a,n)=>{var e;if(r.tags.length>0){let s=0,o=0,c=0;const d=[];for(const h of r.tags.reverse()){const f=t.insert("polygon"),y=t.append("circle"),l=t.append("text").attr("y",a.y-16-s).attr("class","tag-label").text(h),g=(e=l.node())==null?void 0:e.getBBox();if(!g)throw new Error("Tag bbox not found");o=Math.max(o,g.width),c=Math.max(c,g.height),l.attr("x",a.posWithOffset-g.width/2),d.push({tag:l,hole:y,rect:f,yOffset:s}),s+=20}for(const{tag:h,hole:f,rect:y,yOffset:l}of d){const g=c/2,u=a.y-19.2-l;if(y.attr("class","tag-label-bkg").attr("points",`
2
2
  ${n-o/2-B/2},${u+L}
3
3
  ${n-o/2-B/2},${u-L}
4
4
  ${a.posWithOffset-o/2-B},${u-g-L}
@@ -1 +1 @@
1
- import{d,U as v,V as f,k as i,o as u,w as l,D as c,W as m,X as _,g as e,Y as g,Z as w,$ as I,c as x,p as y,j as M}from"./DgGwe7jd.js";import{M as P}from"./DyDU0wFf.js";import{D as z,d as D,a as b}from"./DZFq5yqu.js";var h=d({__name:"DropdownMenuItem",props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select"],setup(r,{emit:s}){const o=r,a=v(s);return f(),(t,p)=>(u(),i(e(P),m(_({...o,...e(a)})),{default:l(()=>[c(t.$slots,"default")]),_:3},16))}}),B=h;const S=d({__name:"DropdownMenuItem",props:{disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{},inset:{type:Boolean},variant:{default:"default"}},setup(r){const s=r,o=g(s,"inset","variant"),n=w(o),a=I(z,x(()=>"default"));return(t,p)=>(u(),i(e(B),y({"data-slot":"dropdown-menu-item","data-size":e(a),"data-inset":t.inset?"":void 0,"data-variant":t.variant},e(n),{class:e(M)("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive-foreground data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/40 data-[variant=destructive]:focus:text-destructive-foreground data-[variant=destructive]:*:[svg]:!text-destructive-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e(D)[e(a)],t.inset&&e(b)[e(a)],s.class)}),{default:l(()=>[c(t.$slots,"default")]),_:3},16,["data-size","data-inset","data-variant","class"]))}});export{S as _};
1
+ import{d,U as v,V as f,k as i,o as u,w as l,D as c,W as m,X as _,g as e,Y as g,Z as w,$ as I,c as x,p as y,j as M}from"./D7uoAo-G.js";import{M as P}from"./CTYqoFvv.js";import{D as z,d as D,a as b}from"./BbzZxPNQ.js";var h=d({__name:"DropdownMenuItem",props:{disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["select"],setup(r,{emit:s}){const o=r,a=v(s);return f(),(t,p)=>(u(),i(e(P),m(_({...o,...e(a)})),{default:l(()=>[c(t.$slots,"default")]),_:3},16))}}),B=h;const S=d({__name:"DropdownMenuItem",props:{disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{},inset:{type:Boolean},variant:{default:"default"}},setup(r){const s=r,o=g(s,"inset","variant"),n=w(o),a=I(z,x(()=>"default"));return(t,p)=>(u(),i(e(B),y({"data-slot":"dropdown-menu-item","data-size":e(a),"data-inset":t.inset?"":void 0,"data-variant":t.variant},e(n),{class:e(M)("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive-foreground data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/40 data-[variant=destructive]:focus:text-destructive-foreground data-[variant=destructive]:*:[svg]:!text-destructive-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e(D)[e(a)],t.inset&&e(b)[e(a)],s.class)}),{default:l(()=>[c(t.$slots,"default")]),_:3},16,["data-size","data-inset","data-variant","class"]))}});export{S as _};
@@ -1 +1 @@
1
- import{_ as H}from"./DViCRsmA.js";import{d as R,bw as K,e as a,m as d,f as o,bg as U,w as C,g as r,A as j,a4 as G,o as t,z as k,k as V,t as u,l as S,bj as W,r as q,c as M,ao as J,F as y,s as T,n as z,j as X,bf as Y,O as Z,i as ee,bx as te,by as se,bz as ne}from"./DgGwe7jd.js";import{_ as oe,a as ae}from"./Cl3VX8Um.js";import{_ as ie}from"./BKAEFZqP.js";import{_ as P}from"./Un5zjlKE.js";import{_ as re}from"./CnQob-tn.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=j,w=G;return t(),a("div",de,[d("div",le,[o(g,{class:"text-xs font-medium text-muted-foreground"},{default:C(()=>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:C(()=>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(w,{disabled:!n.sourceConnection||!n.targetConnection||n.isLoading,size:"sm",onClick:f[1]||(f[1]=$=>l("run"))},{default:C(()=>[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=U,v=W,w=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:C(()=>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(w,{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"},we={class:"mb-3 flex flex-wrap gap-2"},Ce=["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}`,w=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 w.value)_.value.add(e.name)}),(e,c)=>{const $=Y,b=j;return t(),a("div",be,[d("div",we,[(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:C(()=>[k(u(h)+" "+u(s),1)]),_:2},1032,["class"])):S("",!0)],64))),128))]),(t(!0),a(y,null,T(r(w),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,Ce),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(w).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:""),w=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:w,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"},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:w,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,A=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(w)?(t(),V(Q,{key:0,class:"border-border bg-muted/30"},{default:C(()=>[o(I,{name:"hugeicons:alert-circle",class:"size-4 text-destructive"}),o(A,{class:"text-destructive"},{default:C(()=>m[5]||(m[5]=[k("Diff Failed")])),_:1}),o(O,{class:"text-muted-foreground"},{default:C(()=>[k(u(r(w)),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:C(()=>[o(E,{size:"sm",class:"max-w-full justify-start! overflow-x-auto"},{default:C(()=>[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:C(()=>[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(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:C(()=>[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
+ import{_ as H}from"./BOVFFCPB.js";import{d as R,bw as K,e as a,m as d,f as o,bg as U,w as C,g as r,A as j,a4 as G,o as t,z as k,k as V,t as u,l as S,bj as W,r as q,c as M,ao as J,F as y,s as T,n as z,j as X,bf as Y,O as Z,i as ee,bx as te,by as se,bz as ne}from"./D7uoAo-G.js";import{_ as oe,a as ae}from"./CxZK-Vs6.js";import{_ as ie}from"./BNyWhB4W.js";import{_ as P}from"./XVZ0obUR.js";import{_ as re}from"./DDQU7vSH.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=j,w=G;return t(),a("div",de,[d("div",le,[o(g,{class:"text-xs font-medium text-muted-foreground"},{default:C(()=>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:C(()=>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(w,{disabled:!n.sourceConnection||!n.targetConnection||n.isLoading,size:"sm",onClick:f[1]||(f[1]=$=>l("run"))},{default:C(()=>[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=U,v=W,w=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:C(()=>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(w,{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"},we={class:"mb-3 flex flex-wrap gap-2"},Ce=["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}`,w=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 w.value)_.value.add(e.name)}),(e,c)=>{const $=Y,b=j;return t(),a("div",be,[d("div",we,[(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:C(()=>[k(u(h)+" "+u(s),1)]),_:2},1032,["class"])):S("",!0)],64))),128))]),(t(!0),a(y,null,T(r(w),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,Ce),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(w).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:""),w=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:w,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"},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:w,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,A=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(w)?(t(),V(Q,{key:0,class:"border-border bg-muted/30"},{default:C(()=>[o(I,{name:"hugeicons:alert-circle",class:"size-4 text-destructive"}),o(A,{class:"text-destructive"},{default:C(()=>m[5]||(m[5]=[k("Diff Failed")])),_:1}),o(O,{class:"text-muted-foreground"},{default:C(()=>[k(u(r(w)),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:C(()=>[o(E,{size:"sm",class:"max-w-full justify-start! overflow-x-auto"},{default:C(()=>[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:C(()=>[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(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:C(()=>[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 +1 @@
1
- import{aD as re,d as Q,al as Ee,am as Ie,bS as dt,V as qe,r as H,c as J,an as Ce,a5 as ft,k as ee,o as Y,w as te,D as de,g as P,a8 as Fe,a6 as _e,du as pt,ao as mt,aE as vt,dv as ht,Y as gt,bG as Ae,e as yt,l as zt,p as Re,j as Te}from"./DgGwe7jd.js";const fe=typeof document<"u";function b(e,t="Assertion failed!"){if(!e)throw console.error(t),new Error(t)}function Oe(e,t=document){var a;if(!fe)return null;if(t instanceof HTMLElement&&((a=t==null?void 0:t.dataset)==null?void 0:a.panelGroupId)===e)return t;const n=t.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`);return n||null}function ye(e,t=document){if(!fe)return null;const n=t.querySelector(`[data-panel-resize-handle-id="${e}"]`);return n||null}function Ve(e,t,n=document){return fe?se(e,n).findIndex(l=>l.getAttribute("data-panel-resize-handle-id")===t)??null:null}function se(e,t=document){return fe?Array.from(t.querySelectorAll(`[data-panel-resize-handle-id][data-panel-group-id="${e}"]`)):[]}function St(e,t,n,a=document){var p,m;const r=ye(t,a),l=se(e,a),o=r?l.indexOf(r):-1,i=((p=n[o])==null?void 0:p.id)??null,c=((m=n[o+1])==null?void 0:m.id)??null;return[i,c]}function Ke(e){return e.type==="keydown"}function je(e){return e.type.startsWith("mouse")}function Xe(e){return e.type.startsWith("touch")}function ze(e){if(je(e))return{x:e.clientX,y:e.clientY};if(Xe(e)){const t=e.touches[0];if(t&&t.clientX&&t.clientY)return{x:t.clientX,y:t.clientY}}return{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY}}function We(e,t){const n=e==="horizontal",{x:a,y:r}=ze(t);return n?a:r}function bt(e,t,n,a,r){const l=n==="horizontal",o=ye(t,r);b(o);const i=o.getAttribute("data-panel-group-id");b(i);const{initialCursorPosition:c}=a,p=We(n,e),m=Oe(i,r);b(m);const u=m.getBoundingClientRect(),v=l?u.width:u.height;return(p-c)/v*100}function xt(e,t,n,a,r,l){if(Ke(e)){const o=n==="horizontal";let i=0;e.shiftKey?i=100:i=r??10;let c=0;switch(e.key){case"ArrowDown":c=o?0:i;break;case"ArrowLeft":c=o?-i:0;break;case"ArrowRight":c=o?i:0;break;case"ArrowUp":c=o?0:-i;break;case"End":c=100;break;case"Home":c=-100;break}return c}else return a==null?0:bt(e,t,n,a,l)}function wt({layout:e,panelsArray:t,pivotIndices:n}){let a=0,r=100,l=0,o=0;const i=n[0];b(i!=null),t.forEach((u,v)=>{const{constraints:h}=u,{maxSize:g=100,minSize:w=0}=h;v===i?(a=w,r=g):(l+=w,o+=g)});const c=Math.min(r,100-l),p=Math.max(a,100-o),m=e[i];return{valueMax:c,valueMin:p,valueNow:m}}function Et({panelDataArray:e}){const t=Array.from({length:e.length}),n=e.map(l=>l.constraints);let a=0,r=100;for(let l=0;l<e.length;l++){const o=n[l];b(o);const{defaultSize:i}=o;i!=null&&(a++,t[l]=i,r-=i)}for(let l=0;l<e.length;l++){const o=n[l];b(o);const{defaultSize:i}=o;if(i!=null)continue;const c=e.length-a,p=r/c;a++,t[l]=p,r-=p}return t}function le(e,t,n){t.forEach((a,r)=>{const l=e[r];b(l);const{callbacks:o,constraints:i,id:c}=l,{collapsedSize:p=0,collapsible:m}=i,u=n[c];if(u==null||a!==u){n[c]=a;const{onCollapse:v,onExpand:h,onResize:g}=o;g&&g(a,u),m&&(v||h)&&(h&&(u==null||u===p)&&a!==p&&h(),v&&(u==null||u!==p)&&a===p&&v())}})}function Pt(e,t=10){let n=null;return(...r)=>{n!==null&&clearTimeout(n),n=setTimeout(()=>{e(...r)},t)}}const Le=10;function ue(e,t,n=Le){e=Number.parseFloat(e.toFixed(n)),t=Number.parseFloat(t.toFixed(n));const a=e-t;return a===0?0:a>0?1:-1}function D(e,t,n){return ue(e,t,n)===0}function Z({panelConstraints:e,panelIndex:t,size:n}){const a=e[t];b(a!=null);const{collapsedSize:r=0,collapsible:l,maxSize:o=100,minSize:i=0}=a;if(ue(n,i)<0)if(l){const c=(r+i)/2;ue(n,c)<0?n=r:n=i}else n=i;return n=Math.min(o,n),n=Number.parseFloat(n.toFixed(Le)),n}function ve(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function oe({delta:e,layout:t,panelConstraints:n,pivotIndices:a,trigger:r}){if(D(e,0))return t;const l=[...t],[o,i]=a;b(o!=null),b(i!=null);let c=0;if(r==="keyboard"){{const m=e<0?i:o,u=n[m];if(b(u),u.collapsible){const v=t[m];b(v!=null);const h=n[m];b(h);const{collapsedSize:g=0,minSize:w=0}=h;if(D(v,g)){const d=w-v;ue(d,Math.abs(e))>0&&(e=e<0?0-d:d)}}}{const m=e<0?o:i,u=n[m];b(u);const{collapsible:v}=u;if(v){const h=t[m];b(h!=null);const g=n[m];b(g);const{collapsedSize:w=0,minSize:d=0}=g;if(D(h,d)){const x=h-w;ue(x,Math.abs(e))>0&&(e=e<0?0-x:x)}}}}{const m=e<0?1:-1;let u=e<0?i:o,v=0;for(;;){const g=t[u];b(g!=null);const d=Z({panelConstraints:n,panelIndex:u,size:100})-g;if(v+=d,u+=m,u<0||u>=n.length)break}const h=Math.min(Math.abs(e),Math.abs(v));e=e<0?0-h:h}{let u=e<0?o:i;for(;u>=0&&u<n.length;){const v=Math.abs(e)-Math.abs(c),h=t[u];b(h!=null);const g=h-v,w=Z({panelConstraints:n,panelIndex:u,size:g});if(!D(h,w)&&(c+=h-w,l[u]=w,c.toPrecision(3).localeCompare(Math.abs(e).toPrecision(3),void 0,{numeric:!0})>=0))break;e<0?u--:u++}}if(D(c,0))return t;{const m=e<0?i:o,u=t[m];b(u!=null);const v=u+c,h=Z({panelConstraints:n,panelIndex:m,size:v});if(l[m]=h,!D(h,v)){let g=v-h,d=e<0?i:o;for(;d>=0&&d<n.length;){const x=l[d];b(x!=null);const N=x+g,R=Z({panelConstraints:n,panelIndex:d,size:N});if(D(x,R)||(g-=R-x,l[d]=R),D(g,0))break;e>0?d--:d++}}}const p=l.reduce((m,u)=>u+m,0);return D(p,100)?l:t}function Ue(e,t,n){const a=Ve(e,t,n);return a!=null?[a,a+1]:[-1,-1]}function It(e,t,n){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function Ct(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:Ge(e),b:Ge(t)};let a;for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),a=e;b(a);const r={a:Be(Ne(n.a)),b:Be(Ne(n.b))};if(r.a===r.b){const l=a.childNodes,o={a:n.a.at(-1),b:n.b.at(-1)};let i=l.length;for(;i--;){const c=l[i];if(c===o.a)return 1;if(c===o.b)return-1}}return Math.sign(r.a-r.b)}const _t=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function At(e){const t=getComputedStyle(Ye(e)).display;return t==="flex"||t==="inline-flex"}function Rt(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||At(e))||+t.opacity<1||"transform"in t&&t.transform!=="none"||"webkitTransform"in t&&t.webkitTransform!=="none"||"mixBlendMode"in t&&t.mixBlendMode!=="normal"||"filter"in t&&t.filter!=="none"||"webkitFilter"in t&&t.webkitFilter!=="none"||"isolation"in t&&t.isolation==="isolate"||_t.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function Ne(e){let t=e.length;for(;t--;){const n=e[t];if(b(n),Rt(n))return n}return null}function Be(e){return e&&Number(getComputedStyle(e).zIndex)||0}function Ge(e){const t=[];for(;e;)t.push(e),e=Ye(e);return t}function Ye(e){var t;return e.parentNode instanceof DocumentFragment&&((t=e.parentNode)==null?void 0:t.host)||e.parentNode}const Je=1,Ze=2,Qe=4,et=8;function Lt(){if(typeof matchMedia=="function")return matchMedia("(pointer:coarse)").matches?"coarse":"fine"}const kt=Lt()==="coarse",j=[];let Se=!1;const V=new Map,be=new Map,ce=new Set;function Mt(e,t,n,a,r,l){const{ownerDocument:o}=t,i={direction:n,element:t,hitAreaMargins:a,nonce:r,setResizeHandlerState:l},c=V.get(o)??0;return V.set(o,c+1),ce.add(i),ge(),function(){be.delete(e),ce.delete(i);const m=V.get(o)??1;V.set(o,m-1),ge(),nt(),m===1&&V.delete(o)}}function he(e){const{target:t}=e,{x:n,y:a}=ze(e);Se=!0,ke({target:t,x:n,y:a}),ge(),j.length>0&&(Me("down",e),e.preventDefault())}function T(e){const{x:t,y:n}=ze(e);if(!Se){const{target:a}=e;ke({target:a,x:t,y:n})}Me("move",e),tt(),j.length>0&&e.preventDefault()}function O(e){const{target:t}=e,{x:n,y:a}=ze(e);be.clear(),Se=!1,j.length>0&&e.preventDefault(),Me("up",e),ke({target:t,x:n,y:a}),tt(),ge()}function ke({target:e,x:t,y:n}){j.splice(0);let a=null;e instanceof HTMLElement&&(a=e),ce.forEach(r=>{const{element:l,hitAreaMargins:o}=r,i=l.getBoundingClientRect(),{bottom:c,left:p,right:m,top:u}=i,v=kt?o.coarse:o.fine;if(t>=p-v&&t<=m+v&&n>=u-v&&n<=c+v){if(a!==null&&l!==a&&!l.contains(a)&&!a.contains(l)&&Ct(a,l)>0){let g=a,w=!1;for(;g&&!g.contains(l);){if(It(g.getBoundingClientRect(),i)){w=!0;break}g=g.parentElement}if(w)return}j.push(r)}})}function xe(e,t){be.set(e,t)}function tt(){let e=!1,t=!1,n;j.forEach(r=>{const{direction:l,nonce:o}=r;l.value==="horizontal"?e=!0:t=!0,n=o.value});let a=0;be.forEach(r=>{a|=r}),e&&t?we("intersection",a,n):e?we("horizontal",a,n):t?we("vertical",a,n):nt()}function ge(){V.forEach((e,t)=>{const{body:n}=t;n.removeEventListener("contextmenu",O),n.removeEventListener("mousedown",he),n.removeEventListener("mouseleave",T),n.removeEventListener("mousemove",T),n.removeEventListener("touchmove",T),n.removeEventListener("touchstart",he)}),window.removeEventListener("mouseup",O),window.removeEventListener("touchcancel",O),window.removeEventListener("touchend",O),ce.size>0&&(Se?(j.length>0&&V.forEach((e,t)=>{const{body:n}=t;e>0&&(n.addEventListener("contextmenu",O),n.addEventListener("mouseleave",T),n.addEventListener("mousemove",T),n.addEventListener("touchmove",T,{passive:!1}))}),window.addEventListener("mouseup",O),window.addEventListener("touchcancel",O),window.addEventListener("touchend",O)):V.forEach((e,t)=>{const{body:n}=t;e>0&&(n.addEventListener("mousedown",he),n.addEventListener("mousemove",T),n.addEventListener("touchmove",T,{passive:!1}),n.addEventListener("touchstart",he))}))}function Me(e,t){ce.forEach(n=>{const{setResizeHandlerState:a}=n,r=j.includes(n);a(e,r,t)})}let Pe=null,K=null;function $t(e,t){if(t){const n=(t&Je)!==0,a=(t&Ze)!==0,r=(t&Qe)!==0,l=(t&et)!==0;if(n)return r?"se-resize":l?"ne-resize":"e-resize";if(a)return r?"sw-resize":l?"nw-resize":"w-resize";if(r)return"s-resize";if(l)return"n-resize"}switch(e){case"horizontal":return"ew-resize";case"intersection":return"move";case"vertical":return"ns-resize"}}function nt(){K!==null&&(document.head.removeChild(K),Pe=null,K=null)}function we(e,t,n){const a=$t(e,t);Pe!==a&&(Pe=a,K===null&&(K=document.createElement("style"),n&&(K.nonce=n),document.head.appendChild(K)),K.innerHTML=`*{cursor: ${a}!important;}`)}function Dt({defaultSize:e,dragState:t,layout:n,panelData:a,panelIndex:r,precision:l=3}){const o=n[r];let i;return o==null?i=e!==void 0?e.toPrecision(l):"1":a.length===1?i="1":i=o.toPrecision(l),{flexBasis:0,flexGrow:i,flexShrink:1,overflow:"hidden",pointerEvents:t!==null?"none":void 0}}function Nt({layout:e,panelConstraints:t}){const n=[...e],a=n.reduce((l,o)=>l+o,0);if(n.length!==t.length)throw new Error(`Invalid ${t.length} panel layout: ${n.map(l=>`${l}%`).join(", ")}`);if(!D(a,100)){console.warn(`WARNING: Invalid layout total size: ${n.map(l=>`${l}%`).join(", ")}. Layout normalization will be applied.`);for(let l=0;l<t.length;l++){const o=n[l];b(o!=null);const i=100/a*o;n[l]=i}}let r=0;for(let l=0;l<t.length;l++){const o=n[l];b(o!=null);const i=Z({panelConstraints:t,panelIndex:l,size:o});o!==i&&(r+=o-i,n[l]=i)}if(!D(r,0))for(let l=0;l<t.length;l++){const o=n[l];b(o!=null);const i=o+r,c=Z({panelConstraints:t,panelIndex:l,size:i});if(o!==c&&(r-=c-o,n[l]=c,D(r,0)))break}return n}function Bt({eagerValuesRef:e,groupId:t,layout:n,panelDataArray:a,panelGroupElement:r,setLayout:l}){re(o=>{const i=r.value;if(!i)return;const c=se(t,i);for(let p=0;p<a.length-1;p++){const{valueMax:m,valueMin:u,valueNow:v}=wt({layout:n.value,panelsArray:a,pivotIndices:[p,p+1]}),h=c[p];if(h!=null){const g=a[p];b(g),h.setAttribute("aria-controls",g.id),h.setAttribute("aria-valuemax",`${Math.round(m)}`),h.setAttribute("aria-valuemin",`${Math.round(u)}`),h.setAttribute("aria-valuenow",v!=null?`${Math.round(v)}`:"")}}o(()=>{c.forEach(p=>{p.removeAttribute("aria-controls"),p.removeAttribute("aria-valuemax"),p.removeAttribute("aria-valuemin"),p.removeAttribute("aria-valuenow")})})}),re(o=>{const i=r.value;if(!i)return;const c=e.value;b(c);const{panelDataArray:p}=c,m=Oe(t,i);b(m!=null,`No group found for id "${t}"`);const u=se(t,i);b(u);const v=u.map(h=>{const g=h.getAttribute("data-panel-resize-handle-id");b(g);const[w,d]=St(t,g,p,i);if(w==null||d==null)return()=>{};const x=N=>{if(!N.defaultPrevented)switch(N.key){case"Enter":{N.preventDefault();const R=p.findIndex(L=>L.id===w);if(R>=0){const L=p[R];b(L);const C=n.value[R],{collapsedSize:B=0,collapsible:q,minSize:I=0}=L.constraints;if(C!=null&&q){const $=oe({delta:D(C,B)?I-B:B-C,layout:n.value,panelConstraints:p.map(ne=>ne.constraints),pivotIndices:Ue(t,g,i),trigger:"keyboard"});n.value!==$&&l($)}}break}}};return h.addEventListener("keydown",x),()=>{h.removeEventListener("keydown",x)}});o(()=>{v.forEach(h=>h())})})}function He(e){try{if(typeof localStorage<"u")e.getItem=t=>localStorage.getItem(t),e.setItem=(t,n)=>{localStorage.setItem(t,n)};else throw new TypeError("localStorage not supported in this environment")}catch(t){console.error(t),e.getItem=()=>null,e.setItem=()=>{}}}function at(e){return`reka:${e}`}function lt(e){return e.map(t=>{const{constraints:n,id:a,idIsFromProps:r,order:l}=t;return r?a:l?`${l}:${JSON.stringify(n)}`:JSON.stringify(n)}).sort((t,n)=>t.localeCompare(n)).join(",")}function ot(e,t){try{const n=at(e),a=t.getItem(n);if(a){const r=JSON.parse(a);if(typeof r=="object"&&r!=null)return r}}catch{}return null}function Gt(e,t,n){const a=ot(e,n)??{},r=lt(t);return a[r]??null}function Ht(e,t,n,a,r){const l=at(e),o=lt(t),i=ot(e,r)??{};i[o]={expandToSizes:Object.fromEntries(n.entries()),layout:a};try{r.setItem(l,JSON.stringify(i))}catch(c){console.error(c)}}const qt=100,ie={getItem:e=>(He(ie),ie.getItem(e)),setItem:(e,t)=>{He(ie),ie.setItem(e,t)}},[it,Ft]=ft("PanelGroup");var Tt=Q({__name:"SplitterGroup",props:{id:{type:[String,null],required:!1},autoSaveId:{type:[String,null],required:!1,default:null},direction:{type:String,required:!0},keyboardResizeBy:{type:[Number,null],required:!1,default:10},storage:{type:Object,required:!1,default:()=>ie},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["layout"],setup(e,{emit:t}){const n=e,a=t,r={},{direction:l}=Ee(n),o=Ie(n.id,"reka-splitter-group"),i=dt(),{forwardRef:c,currentElement:p}=qe(),m=H(null),u=H([]),v=H({}),h=H(new Map),g=H(0),w=J(()=>({autoSaveId:n.autoSaveId,direction:n.direction,dragState:m.value,id:o,keyboardResizeBy:n.keyboardResizeBy,storage:n.storage})),d=H({layout:u.value,panelDataArray:[],panelDataArrayChanged:!1}),x=s=>u.value=s;Bt({eagerValuesRef:d,groupId:o,layout:u,panelDataArray:d.value.panelDataArray,setLayout:x,panelGroupElement:p}),re(()=>{const{panelDataArray:s}=d.value,{autoSaveId:z}=n;if(z){if(u.value.length===0||u.value.length!==s.length)return;let f=r[z];f||(f=Pt(Ht,qt),r[z]=f);const y=[...s],E=new Map(h.value);f(z,y,E,u.value,n.storage)}});function N(s,z){const{panelDataArray:f}=d.value,y=X(f,s);return Dt({defaultSize:z,dragState:m.value,layout:u.value,panelData:f,panelIndex:y})}function R(s){const{panelDataArray:z}=d.value;z.push(s),z.sort((f,y)=>{const E=f.order,S=y.order;return E==null&&S==null?0:E==null?-1:S==null?1:E-S}),d.value.panelDataArrayChanged=!0}Ce(()=>d.value.panelDataArrayChanged,()=>{if(d.value.panelDataArrayChanged){d.value.panelDataArrayChanged=!1;const{autoSaveId:s,storage:z}=w.value,{layout:f,panelDataArray:y}=d.value;let E=null;if(s){const A=Gt(s,y,z);A&&(h.value=new Map(Object.entries(A.expandToSizes)),E=A.layout)}E===null&&(E=Et({panelDataArray:y}));const S=Nt({layout:E,panelConstraints:y.map(A=>A.constraints)});pt(f,S)||(x(S),d.value.layout=S,a("layout",S),le(y,S,v.value))}});function L(s){return function(f){f.preventDefault();const y=p.value;if(!y)return()=>null;const{direction:E,dragState:S,id:A,keyboardResizeBy:G}=w.value,{layout:k,panelDataArray:_}=d.value,{initialLayout:U}=S??{},F=Ue(A,s,y);let M=xt(f,s,E,S,G,y);if(M===0)return;const $e=E==="horizontal";i.value==="rtl"&&$e&&(M=-M);const ut=_.map(ct=>ct.constraints),ae=oe({delta:M,layout:U??k,panelConstraints:ut,pivotIndices:F,trigger:Ke(f)?"keyboard":"mouse-or-touch"}),De=!ve(k,ae);(je(f)||Xe(f))&&g.value!==M&&(g.value=M,De?xe(s,0):$e?xe(s,M<0?Je:Ze):xe(s,M<0?Qe:et)),De&&(x(ae),d.value.layout=ae,a("layout",ae),le(_,ae,v.value))}}function C(s,z){const{layout:f,panelDataArray:y}=d.value,E=y.map(U=>U.constraints),{panelSize:S,pivotIndices:A}=W(y,s,f);b(S!=null);const k=X(y,s)===y.length-1?S-z:z-S,_=oe({delta:k,layout:f,panelConstraints:E,pivotIndices:A,trigger:"imperative-api"});ve(f,_)||(x(_),d.value.layout=_,a("layout",_),le(y,_,v.value))}function B(s,z){const{layout:f,panelDataArray:y}=d.value,E=X(y,s);y[E]=s,d.value.panelDataArrayChanged=!0;const{collapsedSize:S=0,collapsible:A}=z,{collapsedSize:G=0,collapsible:k,maxSize:_=100,minSize:U=0}=s.constraints,{panelSize:F}=W(y,s,f);F!==null&&(A&&k&&F===S?S!==G&&C(s,G):F<U?C(s,U):F>_&&C(s,_))}function q(s,z){const{direction:f}=w.value,{layout:y}=d.value;if(!p.value)return;const E=ye(s,p.value);b(E);const S=We(f,z);m.value={dragHandleId:s,dragHandleRect:E.getBoundingClientRect(),initialCursorPosition:S,initialLayout:y}}function I(){m.value=null}function $(s){const{panelDataArray:z}=d.value,f=X(z,s);f>=0&&(z.splice(f,1),delete v.value[s.id],d.value.panelDataArrayChanged=!0)}function ne(s){const{layout:z,panelDataArray:f}=d.value;if(s.constraints.collapsible){const y=f.map(G=>G.constraints),{collapsedSize:E=0,panelSize:S,pivotIndices:A}=W(f,s,z);if(b(S!=null,`Panel size not found for panel "${s.id}"`),S!==E){h.value.set(s.id,S);const k=X(f,s)===f.length-1?S-E:E-S,_=oe({delta:k,layout:z,panelConstraints:y,pivotIndices:A,trigger:"imperative-api"});ve(z,_)||(x(_),d.value.layout=_,a("layout",_),le(f,_,v.value))}}}function pe(s){const{layout:z,panelDataArray:f}=d.value;if(s.constraints.collapsible){const y=f.map(k=>k.constraints),{collapsedSize:E=0,panelSize:S,minSize:A=0,pivotIndices:G}=W(f,s,z);if(S===E){const k=h.value.get(s.id),_=k!=null&&k>=A?k:A,F=X(f,s)===f.length-1?S-_:_-S,M=oe({delta:F,layout:z,panelConstraints:y,pivotIndices:G,trigger:"imperative-api"});ve(z,M)||(x(M),d.value.layout=M,a("layout",M),le(f,M,v.value))}}}function me(s){const{layout:z,panelDataArray:f}=d.value,{panelSize:y}=W(f,s,z);return b(y!=null,`Panel size not found for panel "${s.id}"`),y}function rt(s){const{layout:z,panelDataArray:f}=d.value,{collapsedSize:y=0,collapsible:E,panelSize:S}=W(f,s,z);return E?S===void 0?s.constraints.defaultSize===s.constraints.collapsedSize:S===y:!1}function st(s){const{layout:z,panelDataArray:f}=d.value,{collapsedSize:y=0,collapsible:E,panelSize:S}=W(f,s,z);return b(S!=null,`Panel size not found for panel "${s.id}"`),!E||S>y}Ft({direction:l,dragState:m.value,groupId:o,reevaluatePanelConstraints:B,registerPanel:R,registerResizeHandle:L,resizePanel:C,startDragging:q,stopDragging:I,unregisterPanel:$,panelGroupElement:p,collapsePanel:ne,expandPanel:pe,isPanelCollapsed:rt,isPanelExpanded:st,getPanelSize:me,getPanelStyle:N});function X(s,z){return s.findIndex(f=>f===z||f.id===z.id)}function W(s,z,f){const y=X(s,z),S=y===s.length-1?[y-1,y]:[y,y+1],A=f[y];return{...z.constraints,panelSize:A,pivotIndices:S}}return(s,z)=>(Y(),ee(P(_e),{ref:P(c),as:s.as,"as-child":s.asChild,style:Fe({display:"flex",flexDirection:P(l)==="horizontal"?"row":"column",height:"100%",overflow:"hidden",width:"100%"}),"data-panel-group":"","data-orientation":P(l),"data-panel-group-id":P(o)},{default:te(()=>[de(s.$slots,"default",{layout:u.value})]),_:3},8,["as","as-child","style","data-orientation","data-panel-group-id"]))}}),Ot=Tt,Vt=Q({__name:"SplitterPanel",props:{collapsedSize:{type:Number,required:!1},collapsible:{type:Boolean,required:!1},defaultSize:{type:Number,required:!1},id:{type:String,required:!1},maxSize:{type:Number,required:!1},minSize:{type:Number,required:!1},order:{type:Number,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["collapse","expand","resize"],setup(e,{expose:t,emit:n}){const a=e,r=n,l=it();if(l===null)throw new Error("SplitterPanel components must be rendered within a SplitterGroup container");const{collapsePanel:o,expandPanel:i,getPanelSize:c,getPanelStyle:p,isPanelCollapsed:m,resizePanel:u,groupId:v,reevaluatePanelConstraints:h,registerPanel:g,unregisterPanel:w}=l,d=Ie(a.id,"reka-splitter-panel"),x=J(()=>({callbacks:{onCollapse:()=>r("collapse"),onExpand:()=>r("expand"),onResize:(...I)=>r("resize",...I)},constraints:{collapsedSize:a.collapsedSize&&Number.parseFloat(a.collapsedSize.toFixed(Le)),collapsible:a.collapsible,defaultSize:a.defaultSize,maxSize:a.maxSize,minSize:a.minSize},id:d,idIsFromProps:a.id!==void 0,order:a.order}));Ce(()=>x.value.constraints,(I,$)=>{($.collapsedSize!==I.collapsedSize||$.collapsible!==I.collapsible||$.maxSize!==I.maxSize||$.minSize!==I.minSize)&&h(x.value,$)},{deep:!0}),mt(()=>{g(x.value)}),vt(()=>{w(x.value)});const N=J(()=>p(x.value,a.defaultSize)),R=J(()=>m(x.value)),L=J(()=>!R.value);function C(){o(x.value)}function B(){i(x.value)}function q(I){u(x.value,I)}return t({collapse:C,expand:B,getSize(){return c(x.value)},resize:q,isCollapsed:R,isExpanded:L}),(I,$)=>(Y(),ee(P(_e),{id:P(d),style:Fe(N.value),as:I.as,"as-child":I.asChild,"data-panel":"","data-panel-collapsible":I.collapsible||void 0,"data-panel-group-id":P(v),"data-panel-id":P(d),"data-panel-size":Number.parseFloat(`${N.value.flexGrow}`).toFixed(1),"data-state":I.collapsible?R.value?"collapsed":"expanded":void 0},{default:te(()=>[de(I.$slots,"default",{isCollapsed:R.value,isExpanded:L.value,expand:B,collapse:C,resize:q})]),_:3},8,["id","style","as","as-child","data-panel-collapsible","data-panel-group-id","data-panel-id","data-panel-size","data-state"]))}}),Kt=Vt;function jt({disabled:e,handleId:t,resizeHandler:n,panelGroupElement:a}){re(r=>{const l=a.value;if(e.value||n.value===null||l===null)return;const o=ye(t,l);if(o==null)return;const i=c=>{var p;if(!c.defaultPrevented)switch(c.key){case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"End":case"Home":{c.preventDefault(),(p=n.value)==null||p.call(n,c);break}case"F6":{c.preventDefault();const m=o.getAttribute("data-panel-group-id");b(m);const u=se(m,l),v=Ve(m,t,l);b(v!==null);const h=c.shiftKey?v>0?v-1:u.length-1:v+1<u.length?v+1:0;u[h].focus();break}}};o.addEventListener("keydown",i),r(()=>{o.removeEventListener("keydown",i)})})}var Xt=Q({__name:"SplitterResizeHandle",props:{id:{type:String,required:!1},hitAreaMargins:{type:Object,required:!1},tabindex:{type:Number,required:!1,default:0},disabled:{type:Boolean,required:!1},nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["dragging"],setup(e,{emit:t}){const n=e,a=t,{forwardRef:r,currentElement:l}=qe(),{disabled:o}=Ee(n),i=it();if(i===null)throw new Error("PanelResizeHandle components must be rendered within a PanelGroup container");const{direction:c,groupId:p,registerResizeHandle:m,startDragging:u,stopDragging:v,panelGroupElement:h}=i,g=Ie(n.id,"reka-splitter-resize-handle"),w=H("inactive"),d=H(!1),x=H(null),{nonce:N}=Ee(n),R=ht(N);return Ce(o,()=>{fe&&(o.value?x.value=null:x.value=m(g))},{immediate:!0}),re(L=>{var q,I;if(o.value||x.value===null)return;const C=l.value;if(!C)return;b(C);const B=($,ne,pe)=>{var me;if(ne)switch($){case"down":{w.value="drag",u(g,pe),a("dragging",!0);break}case"move":{w.value!=="drag"&&(w.value="hover"),(me=x.value)==null||me.call(x,pe);break}case"up":{w.value="hover",v(),a("dragging",!1);break}}else w.value="inactive"};L(Mt(g,C,c,{coarse:((q=n.hitAreaMargins)==null?void 0:q.coarse)??15,fine:((I=n.hitAreaMargins)==null?void 0:I.fine)??5},R,B))}),jt({disabled:o,resizeHandler:x,handleId:g,panelGroupElement:h}),(L,C)=>(Y(),ee(P(_e),{id:P(g),ref:P(r),style:{touchAction:"none",userSelect:"none"},as:L.as,"as-child":L.asChild,role:"separator","data-resize-handle":"",tabindex:L.tabindex,"data-state":w.value,"data-disabled":P(o)?"":void 0,"data-orientation":P(c),"data-panel-group-id":P(p),"data-resize-handle-active":w.value==="drag"?"pointer":d.value?"keyboard":void 0,"data-resize-handle-state":w.value,"data-panel-resize-handle-enabled":!P(o),"data-panel-resize-handle-id":P(g),onBlur:C[0]||(C[0]=B=>d.value=!1),onFocus:C[1]||(C[1]=B=>d.value=!1)},{default:te(()=>[de(L.$slots,"default")]),_:3},8,["id","as","as-child","tabindex","data-state","data-disabled","data-orientation","data-panel-group-id","data-resize-handle-active","data-resize-handle-state","data-panel-resize-handle-enabled","data-panel-resize-handle-id"]))}}),Wt=Xt;const Ut={key:0,class:"bg-border z-10 flex h-7 w-1 min-w-1 items-center justify-center rounded-md border"},Jt=Q({__name:"ResizableHandle",props:{id:{},hitAreaMargins:{},tabindex:{},disabled:{type:Boolean},nonce:{},asChild:{type:Boolean},as:{},class:{},withHandle:{type:Boolean}},emits:["dragging"],setup(e,{emit:t}){const n=e,a=t,r=gt(n,"class","withHandle"),l=Ae(r,a);return(o,i)=>(Y(),ee(P(Wt),Re({"data-slot":"resizable-handle"},P(l),{class:P(Te)("bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[orientation=vertical]:h-px data-[orientation=vertical]:w-full data-[orientation=vertical]:after:left-0 data-[orientation=vertical]:after:h-1 data-[orientation=vertical]:after:w-full data-[orientation=vertical]:after:-translate-y-1/2 data-[orientation=vertical]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",n.class)}),{default:te(()=>[n.withHandle?(Y(),yt("div",Ut)):zt("",!0)]),_:1},16,["class"]))}}),Zt=Q({__name:"ResizablePanel",props:{collapsedSize:{},collapsible:{type:Boolean},defaultSize:{},id:{},maxSize:{},minSize:{},order:{},asChild:{type:Boolean},as:{}},emits:["collapse","expand","resize"],setup(e,{expose:t,emit:n}){const a=e,r=n,l=H(),o=Ae(a,r);return t(l),(i,c)=>(Y(),ee(P(Kt),Re({"data-slot":"resizable-panel"},P(o),{ref_key:"panelRef",ref:l}),{default:te(()=>[de(i.$slots,"default")]),_:3},16))}}),Qt=Q({__name:"ResizablePanelGroup",props:{id:{},autoSaveId:{},direction:{},keyboardResizeBy:{},storage:{},asChild:{type:Boolean},as:{},class:{}},emits:["layout"],setup(e,{emit:t}){const n=e,a=t,r=J(()=>{const{class:o,...i}=n;return i}),l=Ae(r,a);return(o,i)=>(Y(),ee(P(Ot),Re({"data-slot":"resizable-panel-group"},P(l),{class:P(Te)("flex h-full w-full data-[orientation=vertical]:flex-col",n.class)}),{default:te(()=>[de(o.$slots,"default")]),_:3},16,["class"]))}});export{Qt as _,Zt as a,Jt as b};
1
+ import{aD as re,d as Q,al as Ee,am as Ie,bS as dt,V as qe,r as H,c as J,an as Ce,a5 as ft,k as ee,o as Y,w as te,D as de,g as P,a8 as Fe,a6 as _e,du as pt,ao as mt,aE as vt,dv as ht,Y as gt,bG as Ae,e as yt,l as zt,p as Re,j as Te}from"./D7uoAo-G.js";const fe=typeof document<"u";function b(e,t="Assertion failed!"){if(!e)throw console.error(t),new Error(t)}function Oe(e,t=document){var a;if(!fe)return null;if(t instanceof HTMLElement&&((a=t==null?void 0:t.dataset)==null?void 0:a.panelGroupId)===e)return t;const n=t.querySelector(`[data-panel-group][data-panel-group-id="${e}"]`);return n||null}function ye(e,t=document){if(!fe)return null;const n=t.querySelector(`[data-panel-resize-handle-id="${e}"]`);return n||null}function Ve(e,t,n=document){return fe?se(e,n).findIndex(l=>l.getAttribute("data-panel-resize-handle-id")===t)??null:null}function se(e,t=document){return fe?Array.from(t.querySelectorAll(`[data-panel-resize-handle-id][data-panel-group-id="${e}"]`)):[]}function St(e,t,n,a=document){var p,m;const r=ye(t,a),l=se(e,a),o=r?l.indexOf(r):-1,i=((p=n[o])==null?void 0:p.id)??null,c=((m=n[o+1])==null?void 0:m.id)??null;return[i,c]}function Ke(e){return e.type==="keydown"}function je(e){return e.type.startsWith("mouse")}function Xe(e){return e.type.startsWith("touch")}function ze(e){if(je(e))return{x:e.clientX,y:e.clientY};if(Xe(e)){const t=e.touches[0];if(t&&t.clientX&&t.clientY)return{x:t.clientX,y:t.clientY}}return{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY}}function We(e,t){const n=e==="horizontal",{x:a,y:r}=ze(t);return n?a:r}function bt(e,t,n,a,r){const l=n==="horizontal",o=ye(t,r);b(o);const i=o.getAttribute("data-panel-group-id");b(i);const{initialCursorPosition:c}=a,p=We(n,e),m=Oe(i,r);b(m);const u=m.getBoundingClientRect(),v=l?u.width:u.height;return(p-c)/v*100}function xt(e,t,n,a,r,l){if(Ke(e)){const o=n==="horizontal";let i=0;e.shiftKey?i=100:i=r??10;let c=0;switch(e.key){case"ArrowDown":c=o?0:i;break;case"ArrowLeft":c=o?-i:0;break;case"ArrowRight":c=o?i:0;break;case"ArrowUp":c=o?0:-i;break;case"End":c=100;break;case"Home":c=-100;break}return c}else return a==null?0:bt(e,t,n,a,l)}function wt({layout:e,panelsArray:t,pivotIndices:n}){let a=0,r=100,l=0,o=0;const i=n[0];b(i!=null),t.forEach((u,v)=>{const{constraints:h}=u,{maxSize:g=100,minSize:w=0}=h;v===i?(a=w,r=g):(l+=w,o+=g)});const c=Math.min(r,100-l),p=Math.max(a,100-o),m=e[i];return{valueMax:c,valueMin:p,valueNow:m}}function Et({panelDataArray:e}){const t=Array.from({length:e.length}),n=e.map(l=>l.constraints);let a=0,r=100;for(let l=0;l<e.length;l++){const o=n[l];b(o);const{defaultSize:i}=o;i!=null&&(a++,t[l]=i,r-=i)}for(let l=0;l<e.length;l++){const o=n[l];b(o);const{defaultSize:i}=o;if(i!=null)continue;const c=e.length-a,p=r/c;a++,t[l]=p,r-=p}return t}function le(e,t,n){t.forEach((a,r)=>{const l=e[r];b(l);const{callbacks:o,constraints:i,id:c}=l,{collapsedSize:p=0,collapsible:m}=i,u=n[c];if(u==null||a!==u){n[c]=a;const{onCollapse:v,onExpand:h,onResize:g}=o;g&&g(a,u),m&&(v||h)&&(h&&(u==null||u===p)&&a!==p&&h(),v&&(u==null||u!==p)&&a===p&&v())}})}function Pt(e,t=10){let n=null;return(...r)=>{n!==null&&clearTimeout(n),n=setTimeout(()=>{e(...r)},t)}}const Le=10;function ue(e,t,n=Le){e=Number.parseFloat(e.toFixed(n)),t=Number.parseFloat(t.toFixed(n));const a=e-t;return a===0?0:a>0?1:-1}function D(e,t,n){return ue(e,t,n)===0}function Z({panelConstraints:e,panelIndex:t,size:n}){const a=e[t];b(a!=null);const{collapsedSize:r=0,collapsible:l,maxSize:o=100,minSize:i=0}=a;if(ue(n,i)<0)if(l){const c=(r+i)/2;ue(n,c)<0?n=r:n=i}else n=i;return n=Math.min(o,n),n=Number.parseFloat(n.toFixed(Le)),n}function ve(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function oe({delta:e,layout:t,panelConstraints:n,pivotIndices:a,trigger:r}){if(D(e,0))return t;const l=[...t],[o,i]=a;b(o!=null),b(i!=null);let c=0;if(r==="keyboard"){{const m=e<0?i:o,u=n[m];if(b(u),u.collapsible){const v=t[m];b(v!=null);const h=n[m];b(h);const{collapsedSize:g=0,minSize:w=0}=h;if(D(v,g)){const d=w-v;ue(d,Math.abs(e))>0&&(e=e<0?0-d:d)}}}{const m=e<0?o:i,u=n[m];b(u);const{collapsible:v}=u;if(v){const h=t[m];b(h!=null);const g=n[m];b(g);const{collapsedSize:w=0,minSize:d=0}=g;if(D(h,d)){const x=h-w;ue(x,Math.abs(e))>0&&(e=e<0?0-x:x)}}}}{const m=e<0?1:-1;let u=e<0?i:o,v=0;for(;;){const g=t[u];b(g!=null);const d=Z({panelConstraints:n,panelIndex:u,size:100})-g;if(v+=d,u+=m,u<0||u>=n.length)break}const h=Math.min(Math.abs(e),Math.abs(v));e=e<0?0-h:h}{let u=e<0?o:i;for(;u>=0&&u<n.length;){const v=Math.abs(e)-Math.abs(c),h=t[u];b(h!=null);const g=h-v,w=Z({panelConstraints:n,panelIndex:u,size:g});if(!D(h,w)&&(c+=h-w,l[u]=w,c.toPrecision(3).localeCompare(Math.abs(e).toPrecision(3),void 0,{numeric:!0})>=0))break;e<0?u--:u++}}if(D(c,0))return t;{const m=e<0?i:o,u=t[m];b(u!=null);const v=u+c,h=Z({panelConstraints:n,panelIndex:m,size:v});if(l[m]=h,!D(h,v)){let g=v-h,d=e<0?i:o;for(;d>=0&&d<n.length;){const x=l[d];b(x!=null);const N=x+g,R=Z({panelConstraints:n,panelIndex:d,size:N});if(D(x,R)||(g-=R-x,l[d]=R),D(g,0))break;e>0?d--:d++}}}const p=l.reduce((m,u)=>u+m,0);return D(p,100)?l:t}function Ue(e,t,n){const a=Ve(e,t,n);return a!=null?[a,a+1]:[-1,-1]}function It(e,t,n){return e.x<t.x+t.width&&e.x+e.width>t.x&&e.y<t.y+t.height&&e.y+e.height>t.y}function Ct(e,t){if(e===t)throw new Error("Cannot compare node with itself");const n={a:Ge(e),b:Ge(t)};let a;for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),a=e;b(a);const r={a:Be(Ne(n.a)),b:Be(Ne(n.b))};if(r.a===r.b){const l=a.childNodes,o={a:n.a.at(-1),b:n.b.at(-1)};let i=l.length;for(;i--;){const c=l[i];if(c===o.a)return 1;if(c===o.b)return-1}}return Math.sign(r.a-r.b)}const _t=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function At(e){const t=getComputedStyle(Ye(e)).display;return t==="flex"||t==="inline-flex"}function Rt(e){const t=getComputedStyle(e);return!!(t.position==="fixed"||t.zIndex!=="auto"&&(t.position!=="static"||At(e))||+t.opacity<1||"transform"in t&&t.transform!=="none"||"webkitTransform"in t&&t.webkitTransform!=="none"||"mixBlendMode"in t&&t.mixBlendMode!=="normal"||"filter"in t&&t.filter!=="none"||"webkitFilter"in t&&t.webkitFilter!=="none"||"isolation"in t&&t.isolation==="isolate"||_t.test(t.willChange)||t.webkitOverflowScrolling==="touch")}function Ne(e){let t=e.length;for(;t--;){const n=e[t];if(b(n),Rt(n))return n}return null}function Be(e){return e&&Number(getComputedStyle(e).zIndex)||0}function Ge(e){const t=[];for(;e;)t.push(e),e=Ye(e);return t}function Ye(e){var t;return e.parentNode instanceof DocumentFragment&&((t=e.parentNode)==null?void 0:t.host)||e.parentNode}const Je=1,Ze=2,Qe=4,et=8;function Lt(){if(typeof matchMedia=="function")return matchMedia("(pointer:coarse)").matches?"coarse":"fine"}const kt=Lt()==="coarse",j=[];let Se=!1;const V=new Map,be=new Map,ce=new Set;function Mt(e,t,n,a,r,l){const{ownerDocument:o}=t,i={direction:n,element:t,hitAreaMargins:a,nonce:r,setResizeHandlerState:l},c=V.get(o)??0;return V.set(o,c+1),ce.add(i),ge(),function(){be.delete(e),ce.delete(i);const m=V.get(o)??1;V.set(o,m-1),ge(),nt(),m===1&&V.delete(o)}}function he(e){const{target:t}=e,{x:n,y:a}=ze(e);Se=!0,ke({target:t,x:n,y:a}),ge(),j.length>0&&(Me("down",e),e.preventDefault())}function T(e){const{x:t,y:n}=ze(e);if(!Se){const{target:a}=e;ke({target:a,x:t,y:n})}Me("move",e),tt(),j.length>0&&e.preventDefault()}function O(e){const{target:t}=e,{x:n,y:a}=ze(e);be.clear(),Se=!1,j.length>0&&e.preventDefault(),Me("up",e),ke({target:t,x:n,y:a}),tt(),ge()}function ke({target:e,x:t,y:n}){j.splice(0);let a=null;e instanceof HTMLElement&&(a=e),ce.forEach(r=>{const{element:l,hitAreaMargins:o}=r,i=l.getBoundingClientRect(),{bottom:c,left:p,right:m,top:u}=i,v=kt?o.coarse:o.fine;if(t>=p-v&&t<=m+v&&n>=u-v&&n<=c+v){if(a!==null&&l!==a&&!l.contains(a)&&!a.contains(l)&&Ct(a,l)>0){let g=a,w=!1;for(;g&&!g.contains(l);){if(It(g.getBoundingClientRect(),i)){w=!0;break}g=g.parentElement}if(w)return}j.push(r)}})}function xe(e,t){be.set(e,t)}function tt(){let e=!1,t=!1,n;j.forEach(r=>{const{direction:l,nonce:o}=r;l.value==="horizontal"?e=!0:t=!0,n=o.value});let a=0;be.forEach(r=>{a|=r}),e&&t?we("intersection",a,n):e?we("horizontal",a,n):t?we("vertical",a,n):nt()}function ge(){V.forEach((e,t)=>{const{body:n}=t;n.removeEventListener("contextmenu",O),n.removeEventListener("mousedown",he),n.removeEventListener("mouseleave",T),n.removeEventListener("mousemove",T),n.removeEventListener("touchmove",T),n.removeEventListener("touchstart",he)}),window.removeEventListener("mouseup",O),window.removeEventListener("touchcancel",O),window.removeEventListener("touchend",O),ce.size>0&&(Se?(j.length>0&&V.forEach((e,t)=>{const{body:n}=t;e>0&&(n.addEventListener("contextmenu",O),n.addEventListener("mouseleave",T),n.addEventListener("mousemove",T),n.addEventListener("touchmove",T,{passive:!1}))}),window.addEventListener("mouseup",O),window.addEventListener("touchcancel",O),window.addEventListener("touchend",O)):V.forEach((e,t)=>{const{body:n}=t;e>0&&(n.addEventListener("mousedown",he),n.addEventListener("mousemove",T),n.addEventListener("touchmove",T,{passive:!1}),n.addEventListener("touchstart",he))}))}function Me(e,t){ce.forEach(n=>{const{setResizeHandlerState:a}=n,r=j.includes(n);a(e,r,t)})}let Pe=null,K=null;function $t(e,t){if(t){const n=(t&Je)!==0,a=(t&Ze)!==0,r=(t&Qe)!==0,l=(t&et)!==0;if(n)return r?"se-resize":l?"ne-resize":"e-resize";if(a)return r?"sw-resize":l?"nw-resize":"w-resize";if(r)return"s-resize";if(l)return"n-resize"}switch(e){case"horizontal":return"ew-resize";case"intersection":return"move";case"vertical":return"ns-resize"}}function nt(){K!==null&&(document.head.removeChild(K),Pe=null,K=null)}function we(e,t,n){const a=$t(e,t);Pe!==a&&(Pe=a,K===null&&(K=document.createElement("style"),n&&(K.nonce=n),document.head.appendChild(K)),K.innerHTML=`*{cursor: ${a}!important;}`)}function Dt({defaultSize:e,dragState:t,layout:n,panelData:a,panelIndex:r,precision:l=3}){const o=n[r];let i;return o==null?i=e!==void 0?e.toPrecision(l):"1":a.length===1?i="1":i=o.toPrecision(l),{flexBasis:0,flexGrow:i,flexShrink:1,overflow:"hidden",pointerEvents:t!==null?"none":void 0}}function Nt({layout:e,panelConstraints:t}){const n=[...e],a=n.reduce((l,o)=>l+o,0);if(n.length!==t.length)throw new Error(`Invalid ${t.length} panel layout: ${n.map(l=>`${l}%`).join(", ")}`);if(!D(a,100)){console.warn(`WARNING: Invalid layout total size: ${n.map(l=>`${l}%`).join(", ")}. Layout normalization will be applied.`);for(let l=0;l<t.length;l++){const o=n[l];b(o!=null);const i=100/a*o;n[l]=i}}let r=0;for(let l=0;l<t.length;l++){const o=n[l];b(o!=null);const i=Z({panelConstraints:t,panelIndex:l,size:o});o!==i&&(r+=o-i,n[l]=i)}if(!D(r,0))for(let l=0;l<t.length;l++){const o=n[l];b(o!=null);const i=o+r,c=Z({panelConstraints:t,panelIndex:l,size:i});if(o!==c&&(r-=c-o,n[l]=c,D(r,0)))break}return n}function Bt({eagerValuesRef:e,groupId:t,layout:n,panelDataArray:a,panelGroupElement:r,setLayout:l}){re(o=>{const i=r.value;if(!i)return;const c=se(t,i);for(let p=0;p<a.length-1;p++){const{valueMax:m,valueMin:u,valueNow:v}=wt({layout:n.value,panelsArray:a,pivotIndices:[p,p+1]}),h=c[p];if(h!=null){const g=a[p];b(g),h.setAttribute("aria-controls",g.id),h.setAttribute("aria-valuemax",`${Math.round(m)}`),h.setAttribute("aria-valuemin",`${Math.round(u)}`),h.setAttribute("aria-valuenow",v!=null?`${Math.round(v)}`:"")}}o(()=>{c.forEach(p=>{p.removeAttribute("aria-controls"),p.removeAttribute("aria-valuemax"),p.removeAttribute("aria-valuemin"),p.removeAttribute("aria-valuenow")})})}),re(o=>{const i=r.value;if(!i)return;const c=e.value;b(c);const{panelDataArray:p}=c,m=Oe(t,i);b(m!=null,`No group found for id "${t}"`);const u=se(t,i);b(u);const v=u.map(h=>{const g=h.getAttribute("data-panel-resize-handle-id");b(g);const[w,d]=St(t,g,p,i);if(w==null||d==null)return()=>{};const x=N=>{if(!N.defaultPrevented)switch(N.key){case"Enter":{N.preventDefault();const R=p.findIndex(L=>L.id===w);if(R>=0){const L=p[R];b(L);const C=n.value[R],{collapsedSize:B=0,collapsible:q,minSize:I=0}=L.constraints;if(C!=null&&q){const $=oe({delta:D(C,B)?I-B:B-C,layout:n.value,panelConstraints:p.map(ne=>ne.constraints),pivotIndices:Ue(t,g,i),trigger:"keyboard"});n.value!==$&&l($)}}break}}};return h.addEventListener("keydown",x),()=>{h.removeEventListener("keydown",x)}});o(()=>{v.forEach(h=>h())})})}function He(e){try{if(typeof localStorage<"u")e.getItem=t=>localStorage.getItem(t),e.setItem=(t,n)=>{localStorage.setItem(t,n)};else throw new TypeError("localStorage not supported in this environment")}catch(t){console.error(t),e.getItem=()=>null,e.setItem=()=>{}}}function at(e){return`reka:${e}`}function lt(e){return e.map(t=>{const{constraints:n,id:a,idIsFromProps:r,order:l}=t;return r?a:l?`${l}:${JSON.stringify(n)}`:JSON.stringify(n)}).sort((t,n)=>t.localeCompare(n)).join(",")}function ot(e,t){try{const n=at(e),a=t.getItem(n);if(a){const r=JSON.parse(a);if(typeof r=="object"&&r!=null)return r}}catch{}return null}function Gt(e,t,n){const a=ot(e,n)??{},r=lt(t);return a[r]??null}function Ht(e,t,n,a,r){const l=at(e),o=lt(t),i=ot(e,r)??{};i[o]={expandToSizes:Object.fromEntries(n.entries()),layout:a};try{r.setItem(l,JSON.stringify(i))}catch(c){console.error(c)}}const qt=100,ie={getItem:e=>(He(ie),ie.getItem(e)),setItem:(e,t)=>{He(ie),ie.setItem(e,t)}},[it,Ft]=ft("PanelGroup");var Tt=Q({__name:"SplitterGroup",props:{id:{type:[String,null],required:!1},autoSaveId:{type:[String,null],required:!1,default:null},direction:{type:String,required:!0},keyboardResizeBy:{type:[Number,null],required:!1,default:10},storage:{type:Object,required:!1,default:()=>ie},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["layout"],setup(e,{emit:t}){const n=e,a=t,r={},{direction:l}=Ee(n),o=Ie(n.id,"reka-splitter-group"),i=dt(),{forwardRef:c,currentElement:p}=qe(),m=H(null),u=H([]),v=H({}),h=H(new Map),g=H(0),w=J(()=>({autoSaveId:n.autoSaveId,direction:n.direction,dragState:m.value,id:o,keyboardResizeBy:n.keyboardResizeBy,storage:n.storage})),d=H({layout:u.value,panelDataArray:[],panelDataArrayChanged:!1}),x=s=>u.value=s;Bt({eagerValuesRef:d,groupId:o,layout:u,panelDataArray:d.value.panelDataArray,setLayout:x,panelGroupElement:p}),re(()=>{const{panelDataArray:s}=d.value,{autoSaveId:z}=n;if(z){if(u.value.length===0||u.value.length!==s.length)return;let f=r[z];f||(f=Pt(Ht,qt),r[z]=f);const y=[...s],E=new Map(h.value);f(z,y,E,u.value,n.storage)}});function N(s,z){const{panelDataArray:f}=d.value,y=X(f,s);return Dt({defaultSize:z,dragState:m.value,layout:u.value,panelData:f,panelIndex:y})}function R(s){const{panelDataArray:z}=d.value;z.push(s),z.sort((f,y)=>{const E=f.order,S=y.order;return E==null&&S==null?0:E==null?-1:S==null?1:E-S}),d.value.panelDataArrayChanged=!0}Ce(()=>d.value.panelDataArrayChanged,()=>{if(d.value.panelDataArrayChanged){d.value.panelDataArrayChanged=!1;const{autoSaveId:s,storage:z}=w.value,{layout:f,panelDataArray:y}=d.value;let E=null;if(s){const A=Gt(s,y,z);A&&(h.value=new Map(Object.entries(A.expandToSizes)),E=A.layout)}E===null&&(E=Et({panelDataArray:y}));const S=Nt({layout:E,panelConstraints:y.map(A=>A.constraints)});pt(f,S)||(x(S),d.value.layout=S,a("layout",S),le(y,S,v.value))}});function L(s){return function(f){f.preventDefault();const y=p.value;if(!y)return()=>null;const{direction:E,dragState:S,id:A,keyboardResizeBy:G}=w.value,{layout:k,panelDataArray:_}=d.value,{initialLayout:U}=S??{},F=Ue(A,s,y);let M=xt(f,s,E,S,G,y);if(M===0)return;const $e=E==="horizontal";i.value==="rtl"&&$e&&(M=-M);const ut=_.map(ct=>ct.constraints),ae=oe({delta:M,layout:U??k,panelConstraints:ut,pivotIndices:F,trigger:Ke(f)?"keyboard":"mouse-or-touch"}),De=!ve(k,ae);(je(f)||Xe(f))&&g.value!==M&&(g.value=M,De?xe(s,0):$e?xe(s,M<0?Je:Ze):xe(s,M<0?Qe:et)),De&&(x(ae),d.value.layout=ae,a("layout",ae),le(_,ae,v.value))}}function C(s,z){const{layout:f,panelDataArray:y}=d.value,E=y.map(U=>U.constraints),{panelSize:S,pivotIndices:A}=W(y,s,f);b(S!=null);const k=X(y,s)===y.length-1?S-z:z-S,_=oe({delta:k,layout:f,panelConstraints:E,pivotIndices:A,trigger:"imperative-api"});ve(f,_)||(x(_),d.value.layout=_,a("layout",_),le(y,_,v.value))}function B(s,z){const{layout:f,panelDataArray:y}=d.value,E=X(y,s);y[E]=s,d.value.panelDataArrayChanged=!0;const{collapsedSize:S=0,collapsible:A}=z,{collapsedSize:G=0,collapsible:k,maxSize:_=100,minSize:U=0}=s.constraints,{panelSize:F}=W(y,s,f);F!==null&&(A&&k&&F===S?S!==G&&C(s,G):F<U?C(s,U):F>_&&C(s,_))}function q(s,z){const{direction:f}=w.value,{layout:y}=d.value;if(!p.value)return;const E=ye(s,p.value);b(E);const S=We(f,z);m.value={dragHandleId:s,dragHandleRect:E.getBoundingClientRect(),initialCursorPosition:S,initialLayout:y}}function I(){m.value=null}function $(s){const{panelDataArray:z}=d.value,f=X(z,s);f>=0&&(z.splice(f,1),delete v.value[s.id],d.value.panelDataArrayChanged=!0)}function ne(s){const{layout:z,panelDataArray:f}=d.value;if(s.constraints.collapsible){const y=f.map(G=>G.constraints),{collapsedSize:E=0,panelSize:S,pivotIndices:A}=W(f,s,z);if(b(S!=null,`Panel size not found for panel "${s.id}"`),S!==E){h.value.set(s.id,S);const k=X(f,s)===f.length-1?S-E:E-S,_=oe({delta:k,layout:z,panelConstraints:y,pivotIndices:A,trigger:"imperative-api"});ve(z,_)||(x(_),d.value.layout=_,a("layout",_),le(f,_,v.value))}}}function pe(s){const{layout:z,panelDataArray:f}=d.value;if(s.constraints.collapsible){const y=f.map(k=>k.constraints),{collapsedSize:E=0,panelSize:S,minSize:A=0,pivotIndices:G}=W(f,s,z);if(S===E){const k=h.value.get(s.id),_=k!=null&&k>=A?k:A,F=X(f,s)===f.length-1?S-_:_-S,M=oe({delta:F,layout:z,panelConstraints:y,pivotIndices:G,trigger:"imperative-api"});ve(z,M)||(x(M),d.value.layout=M,a("layout",M),le(f,M,v.value))}}}function me(s){const{layout:z,panelDataArray:f}=d.value,{panelSize:y}=W(f,s,z);return b(y!=null,`Panel size not found for panel "${s.id}"`),y}function rt(s){const{layout:z,panelDataArray:f}=d.value,{collapsedSize:y=0,collapsible:E,panelSize:S}=W(f,s,z);return E?S===void 0?s.constraints.defaultSize===s.constraints.collapsedSize:S===y:!1}function st(s){const{layout:z,panelDataArray:f}=d.value,{collapsedSize:y=0,collapsible:E,panelSize:S}=W(f,s,z);return b(S!=null,`Panel size not found for panel "${s.id}"`),!E||S>y}Ft({direction:l,dragState:m.value,groupId:o,reevaluatePanelConstraints:B,registerPanel:R,registerResizeHandle:L,resizePanel:C,startDragging:q,stopDragging:I,unregisterPanel:$,panelGroupElement:p,collapsePanel:ne,expandPanel:pe,isPanelCollapsed:rt,isPanelExpanded:st,getPanelSize:me,getPanelStyle:N});function X(s,z){return s.findIndex(f=>f===z||f.id===z.id)}function W(s,z,f){const y=X(s,z),S=y===s.length-1?[y-1,y]:[y,y+1],A=f[y];return{...z.constraints,panelSize:A,pivotIndices:S}}return(s,z)=>(Y(),ee(P(_e),{ref:P(c),as:s.as,"as-child":s.asChild,style:Fe({display:"flex",flexDirection:P(l)==="horizontal"?"row":"column",height:"100%",overflow:"hidden",width:"100%"}),"data-panel-group":"","data-orientation":P(l),"data-panel-group-id":P(o)},{default:te(()=>[de(s.$slots,"default",{layout:u.value})]),_:3},8,["as","as-child","style","data-orientation","data-panel-group-id"]))}}),Ot=Tt,Vt=Q({__name:"SplitterPanel",props:{collapsedSize:{type:Number,required:!1},collapsible:{type:Boolean,required:!1},defaultSize:{type:Number,required:!1},id:{type:String,required:!1},maxSize:{type:Number,required:!1},minSize:{type:Number,required:!1},order:{type:Number,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["collapse","expand","resize"],setup(e,{expose:t,emit:n}){const a=e,r=n,l=it();if(l===null)throw new Error("SplitterPanel components must be rendered within a SplitterGroup container");const{collapsePanel:o,expandPanel:i,getPanelSize:c,getPanelStyle:p,isPanelCollapsed:m,resizePanel:u,groupId:v,reevaluatePanelConstraints:h,registerPanel:g,unregisterPanel:w}=l,d=Ie(a.id,"reka-splitter-panel"),x=J(()=>({callbacks:{onCollapse:()=>r("collapse"),onExpand:()=>r("expand"),onResize:(...I)=>r("resize",...I)},constraints:{collapsedSize:a.collapsedSize&&Number.parseFloat(a.collapsedSize.toFixed(Le)),collapsible:a.collapsible,defaultSize:a.defaultSize,maxSize:a.maxSize,minSize:a.minSize},id:d,idIsFromProps:a.id!==void 0,order:a.order}));Ce(()=>x.value.constraints,(I,$)=>{($.collapsedSize!==I.collapsedSize||$.collapsible!==I.collapsible||$.maxSize!==I.maxSize||$.minSize!==I.minSize)&&h(x.value,$)},{deep:!0}),mt(()=>{g(x.value)}),vt(()=>{w(x.value)});const N=J(()=>p(x.value,a.defaultSize)),R=J(()=>m(x.value)),L=J(()=>!R.value);function C(){o(x.value)}function B(){i(x.value)}function q(I){u(x.value,I)}return t({collapse:C,expand:B,getSize(){return c(x.value)},resize:q,isCollapsed:R,isExpanded:L}),(I,$)=>(Y(),ee(P(_e),{id:P(d),style:Fe(N.value),as:I.as,"as-child":I.asChild,"data-panel":"","data-panel-collapsible":I.collapsible||void 0,"data-panel-group-id":P(v),"data-panel-id":P(d),"data-panel-size":Number.parseFloat(`${N.value.flexGrow}`).toFixed(1),"data-state":I.collapsible?R.value?"collapsed":"expanded":void 0},{default:te(()=>[de(I.$slots,"default",{isCollapsed:R.value,isExpanded:L.value,expand:B,collapse:C,resize:q})]),_:3},8,["id","style","as","as-child","data-panel-collapsible","data-panel-group-id","data-panel-id","data-panel-size","data-state"]))}}),Kt=Vt;function jt({disabled:e,handleId:t,resizeHandler:n,panelGroupElement:a}){re(r=>{const l=a.value;if(e.value||n.value===null||l===null)return;const o=ye(t,l);if(o==null)return;const i=c=>{var p;if(!c.defaultPrevented)switch(c.key){case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"End":case"Home":{c.preventDefault(),(p=n.value)==null||p.call(n,c);break}case"F6":{c.preventDefault();const m=o.getAttribute("data-panel-group-id");b(m);const u=se(m,l),v=Ve(m,t,l);b(v!==null);const h=c.shiftKey?v>0?v-1:u.length-1:v+1<u.length?v+1:0;u[h].focus();break}}};o.addEventListener("keydown",i),r(()=>{o.removeEventListener("keydown",i)})})}var Xt=Q({__name:"SplitterResizeHandle",props:{id:{type:String,required:!1},hitAreaMargins:{type:Object,required:!1},tabindex:{type:Number,required:!1,default:0},disabled:{type:Boolean,required:!1},nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["dragging"],setup(e,{emit:t}){const n=e,a=t,{forwardRef:r,currentElement:l}=qe(),{disabled:o}=Ee(n),i=it();if(i===null)throw new Error("PanelResizeHandle components must be rendered within a PanelGroup container");const{direction:c,groupId:p,registerResizeHandle:m,startDragging:u,stopDragging:v,panelGroupElement:h}=i,g=Ie(n.id,"reka-splitter-resize-handle"),w=H("inactive"),d=H(!1),x=H(null),{nonce:N}=Ee(n),R=ht(N);return Ce(o,()=>{fe&&(o.value?x.value=null:x.value=m(g))},{immediate:!0}),re(L=>{var q,I;if(o.value||x.value===null)return;const C=l.value;if(!C)return;b(C);const B=($,ne,pe)=>{var me;if(ne)switch($){case"down":{w.value="drag",u(g,pe),a("dragging",!0);break}case"move":{w.value!=="drag"&&(w.value="hover"),(me=x.value)==null||me.call(x,pe);break}case"up":{w.value="hover",v(),a("dragging",!1);break}}else w.value="inactive"};L(Mt(g,C,c,{coarse:((q=n.hitAreaMargins)==null?void 0:q.coarse)??15,fine:((I=n.hitAreaMargins)==null?void 0:I.fine)??5},R,B))}),jt({disabled:o,resizeHandler:x,handleId:g,panelGroupElement:h}),(L,C)=>(Y(),ee(P(_e),{id:P(g),ref:P(r),style:{touchAction:"none",userSelect:"none"},as:L.as,"as-child":L.asChild,role:"separator","data-resize-handle":"",tabindex:L.tabindex,"data-state":w.value,"data-disabled":P(o)?"":void 0,"data-orientation":P(c),"data-panel-group-id":P(p),"data-resize-handle-active":w.value==="drag"?"pointer":d.value?"keyboard":void 0,"data-resize-handle-state":w.value,"data-panel-resize-handle-enabled":!P(o),"data-panel-resize-handle-id":P(g),onBlur:C[0]||(C[0]=B=>d.value=!1),onFocus:C[1]||(C[1]=B=>d.value=!1)},{default:te(()=>[de(L.$slots,"default")]),_:3},8,["id","as","as-child","tabindex","data-state","data-disabled","data-orientation","data-panel-group-id","data-resize-handle-active","data-resize-handle-state","data-panel-resize-handle-enabled","data-panel-resize-handle-id"]))}}),Wt=Xt;const Ut={key:0,class:"bg-border z-10 flex h-7 w-1 min-w-1 items-center justify-center rounded-md border"},Jt=Q({__name:"ResizableHandle",props:{id:{},hitAreaMargins:{},tabindex:{},disabled:{type:Boolean},nonce:{},asChild:{type:Boolean},as:{},class:{},withHandle:{type:Boolean}},emits:["dragging"],setup(e,{emit:t}){const n=e,a=t,r=gt(n,"class","withHandle"),l=Ae(r,a);return(o,i)=>(Y(),ee(P(Wt),Re({"data-slot":"resizable-handle"},P(l),{class:P(Te)("bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[orientation=vertical]:h-px data-[orientation=vertical]:w-full data-[orientation=vertical]:after:left-0 data-[orientation=vertical]:after:h-1 data-[orientation=vertical]:after:w-full data-[orientation=vertical]:after:-translate-y-1/2 data-[orientation=vertical]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",n.class)}),{default:te(()=>[n.withHandle?(Y(),yt("div",Ut)):zt("",!0)]),_:1},16,["class"]))}}),Zt=Q({__name:"ResizablePanel",props:{collapsedSize:{},collapsible:{type:Boolean},defaultSize:{},id:{},maxSize:{},minSize:{},order:{},asChild:{type:Boolean},as:{}},emits:["collapse","expand","resize"],setup(e,{expose:t,emit:n}){const a=e,r=n,l=H(),o=Ae(a,r);return t(l),(i,c)=>(Y(),ee(P(Kt),Re({"data-slot":"resizable-panel"},P(o),{ref_key:"panelRef",ref:l}),{default:te(()=>[de(i.$slots,"default")]),_:3},16))}}),Qt=Q({__name:"ResizablePanelGroup",props:{id:{},autoSaveId:{},direction:{},keyboardResizeBy:{},storage:{},asChild:{type:Boolean},as:{},class:{}},emits:["layout"],setup(e,{emit:t}){const n=e,a=t,r=J(()=>{const{class:o,...i}=n;return i}),l=Ae(r,a);return(o,i)=>(Y(),ee(P(Ot),Re({"data-slot":"resizable-panel-group"},P(l),{class:P(Te)("flex h-full w-full data-[orientation=vertical]:flex-col",n.class)}),{default:te(()=>[de(o.$slots,"default")]),_:3},16,["class"]))}});export{Qt as _,Zt as a,Jt as b};
@@ -1 +1 @@
1
- import{aP as $,r as m,aI as O,c as p,K as E,au as V,an as K,ai as _,d as F,e as B,o as R,n as P,k as N,l as U,f as C,w as D,z as A,t as w,g,bg as W,_ as j,h as q,m as x,x as z,F as L,s as H,B as M}from"./DgGwe7jd.js";var G=(a=>(a.Tree="tree",a.List="list",a))(G||{});const Y=(a,s=0)=>({connectionId:a,selectedDatabaseIndex:s,viewMode:"tree",keyPattern:"*",keyTypeFilter:[],selectedKey:null,activeTool:"browser"}),J=$("redis-workspace",()=>{const a=m({}),s=(d,n=0)=>(a.value[d]||(a.value[d]=Y(d,n)),a.value[d]);return{sessions:a,ensureSession:s,patchSession:(d,n)=>{Object.assign(s(d),n)}}}),Q=a=>{const s=Number.parseInt(a||"0",10);return Number.isFinite(s)?s:0},X=a=>{var s,t,d;if(typeof a=="string")return a;if(a&&typeof a=="object"){const n=a;return((s=n.data)==null?void 0:s.message)||((d=(t=n.response)==null?void 0:t._data)==null?void 0:d.message)||n.message||"Request failed."}return"Request failed."},Z=(a,s)=>{const t=X(a);return/READONLY/i.test(t)?"This Redis endpoint is read-only. Value updates are unavailable.":/NOPERM|NOAUTH|WRONGPASS|ACL/i.test(t)?"The connected Redis account does not have permission to edit values.":""},T=a=>({method:a.method,stringConnection:a.connectionString,host:a.host,port:a.port,username:a.username,password:a.password,database:a.database,ssl:a.ssl,ssh:a.ssh});function ee({connection:a,session:s,store:t}){const d=m([]),n=m([]),r=O(null),v=m(!1),f=m(!1),l=m(!1),o=m("");let e=0;const c=p(()=>!!r.value&&!o.value),y=async()=>{if(!a.value||!s.value){d.value=[],n.value=[],r.value=null;return}v.value=!0;try{const i=await $fetch("/api/redis/browser",{method:"POST",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex,keyPattern:s.value.keyPattern}});d.value=i.keys,n.value=i.databases,o.value=""}finally{v.value=!1}},b=async()=>{if(!a.value||!s.value){n.value=[];return}n.value=await $fetch("/api/redis/browser/databases",{method:"POST",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex}})},u=async(i=(I=>(I=s.value)==null?void 0:I.selectedKey)())=>{if(!a.value||!s.value||!i){r.value=null,o.value="",f.value=!1;return}const S=++e;r.value=null,f.value=!0;try{const k=await $fetch("/api/redis/browser/value",{method:"POST",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex,key:i}});if(S!==e)return;r.value=k,o.value=""}finally{S===e&&(f.value=!1)}},h=async i=>{s.value&&t.patchSession(s.value.connectionId,{selectedKey:i,activeTool:"browser"})};return{keys:d,databases:n,selectedKeyDetail:r,loadingKeys:v,loadingSelectedKeyDetail:f,savingValue:l,editUnavailableReason:o,canEditSelectedValue:c,refreshKeys:y,refreshDatabases:b,refreshSelectedKeyDetail:u,openKey:h,focusKey:async i=>{s.value&&(await h(i),await u(i))},saveSelectedValue:async i=>{var I;if(!(!a.value||!((I=s.value)!=null&&I.selectedKey))){l.value=!0;try{r.value=await $fetch("/api/redis/browser/value",{method:"PATCH",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex,key:s.value.selectedKey,previewKind:i.previewKind,stringFormat:i.stringFormat,tableKind:i.tableKind,ttlSeconds:i.ttlSeconds,value:i.value}}),o.value="",E.success("Redis key saved successfully",{description:`Updated ${s.value.selectedKey}`})}catch(S){const k=Z(S);if(k){o.value=k;return}console.error("[useRedisWorkspace] Failed to save Redis value",S)}finally{l.value=!1}}}}}function ue(a){const s=V(a.connection),t=a.tabInfo?V(a.tabInfo):void 0,d=a.mode??"browser",n=J(),r=p(()=>{var e;return(e=s.value)!=null&&e.id?n.ensureSession(s.value.id,Q(s.value.database)):null}),v=p({get:()=>{var e;return((e=r.value)==null?void 0:e.selectedDatabaseIndex)??0},set:e=>{r.value&&n.patchSession(r.value.connectionId,{selectedDatabaseIndex:e})}}),f=p({get:()=>{var e;return((e=r.value)==null?void 0:e.keyPattern)??"*"},set:e=>{r.value&&n.patchSession(r.value.connectionId,{keyPattern:e||"*"})}}),l=ee({connection:s,session:r,store:n}),o=m(!1);return K(()=>t==null?void 0:t.value,async e=>{var c,y,b,u;if(!(!r.value||!e)){if(e.type===_.RedisPubSub){n.patchSession(r.value.connectionId,{activeTool:"pubsub",selectedDatabaseIndex:typeof((c=e.metadata)==null?void 0:c.databaseIndex)=="number"?e.metadata.databaseIndex:r.value.selectedDatabaseIndex}),l.refreshDatabases();return}o.value=!0;try{n.patchSession(r.value.connectionId,{activeTool:"browser",selectedDatabaseIndex:typeof((y=e.metadata)==null?void 0:y.databaseIndex)=="number"?e.metadata.databaseIndex:r.value.selectedDatabaseIndex,keyPattern:typeof((b=e.metadata)==null?void 0:b.keyPattern)=="string"?e.metadata.keyPattern:r.value.keyPattern,selectedKey:typeof((u=e.metadata)==null?void 0:u.selectedKey)=="string"?e.metadata.selectedKey:r.value.selectedKey}),await l.refreshKeys(),l.refreshSelectedKeyDetail()}finally{o.value=!1}}},{immediate:!0}),K(()=>{var e,c;return[(e=r.value)==null?void 0:e.selectedDatabaseIndex,(c=r.value)==null?void 0:c.keyPattern]},([e,c],y)=>{if(!(t!=null&&t.value)||t.value.type!==_.RedisBrowser||o.value)return;const[b,u]=y??[];e===b&&c===u||l.refreshKeys()}),K(()=>{var e;return(e=r.value)==null?void 0:e.selectedKey},(e,c)=>{!(t!=null&&t.value)||t.value.type!==_.RedisBrowser||o.value||e===c||l.refreshSelectedKeyDetail(e)}),K(()=>{var e;return(e=r.value)==null?void 0:e.selectedDatabaseIndex},(e,c)=>{if(e!==c){if(t!=null&&t.value){t.value.type===_.RedisPubSub&&l.refreshDatabases();return}d==="meta"&&l.refreshDatabases()}}),K(()=>{var e;return(e=s.value)==null?void 0:e.id},e=>{if(!(!e||t!=null&&t.value)){if(d==="meta"){l.refreshDatabases();return}l.refreshKeys()}},{immediate:!0}),{session:r,keys:l.keys,databases:l.databases,selectedKeyDetail:l.selectedKeyDetail,loadingKeys:l.loadingKeys,loadingSelectedKeyDetail:l.loadingSelectedKeyDetail,savingValue:l.savingValue,selectedDatabaseIndex:v,keyPattern:f,canEditSelectedValue:l.canEditSelectedValue,editUnavailableReason:l.editUnavailableReason,refreshKeys:l.refreshKeys,openKey:l.openKey,focusKey:l.focusKey,saveSelectedValue:l.saveSelectedValue}}const ae={class:"flex min-w-0 items-center gap-1.5 pr-5 text-left"},te={class:"flex min-w-0 items-center gap-2"},se={class:"truncate"},le={class:"text-xxs text-muted-foreground"},ie=F({__name:"RedisDBSelector",props:{databases:{},databaseIndex:{},compact:{type:Boolean},label:{},triggerId:{},triggerClass:{}},emits:["update:databaseIndex"],setup(a,{emit:s}){const t=a,d=s,n=p(()=>t.databases.length>0?t.databases:[{index:t.databaseIndex,label:`DB ${t.databaseIndex}`,keyCount:0,expires:0,avgTtl:null}]),r=p(()=>t.triggerId||"redis-db-index"),v=p(()=>n.value.find(l=>l.index===t.databaseIndex)??n.value[0]),f=p(()=>t.compact?["h-6! w-fit gap-1 px-2 text-xs",t.triggerClass].filter(Boolean).join(" "):["w-full",t.triggerClass].filter(Boolean).join(" "));return(l,o)=>{const e=q,c=M,y=z,b=j;return R(),B("div",{class:P(l.compact?"w-[132px]":"space-y-1")},[l.compact?U("",!0):(R(),N(g(W),{key:0,for:g(r)},{default:D(()=>[A(w(l.label||"Databases"),1)]),_:1},8,["for"])),C(b,{"model-value":String(l.databaseIndex),"onUpdate:modelValue":o[0]||(o[0]=u=>d("update:databaseIndex",Number(u)||0)),size:"sm"},{default:D(()=>[C(e,{id:g(r),class:P(g(f))},{default:D(()=>{var u,h;return[x("div",ae,[x("span",{class:P(l.compact?"truncate text-xs":"truncate text-sm")},w(((u=g(v))==null?void 0:u.label)||"Select DB"),3),x("span",{class:P(["shrink-0 text-muted-foreground",(l.compact,"text-xxs")])},w(((h=g(v))==null?void 0:h.keyCount)??0)+" keys ",3)])]}),_:1},8,["id","class"]),C(y,null,{default:D(()=>[(R(!0),B(L,null,H(g(n),u=>(R(),N(c,{key:u.index,value:String(u.index)},{default:D(()=>[x("div",te,[x("span",se,w(u.label),1),x("span",le,w(u.keyCount)+" keys ",1)])]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["model-value"])],2)}}});export{G as R,ie as _,ue as u};
1
+ import{aP as $,r as m,aI as O,c as p,K as E,au as V,an as K,ai as _,d as F,e as B,o as R,n as P,k as N,l as U,f as C,w as D,z as A,t as w,g,bg as W,_ as j,h as q,m as x,x as z,F as L,s as H,B as M}from"./D7uoAo-G.js";var G=(a=>(a.Tree="tree",a.List="list",a))(G||{});const Y=(a,s=0)=>({connectionId:a,selectedDatabaseIndex:s,viewMode:"tree",keyPattern:"*",keyTypeFilter:[],selectedKey:null,activeTool:"browser"}),J=$("redis-workspace",()=>{const a=m({}),s=(d,n=0)=>(a.value[d]||(a.value[d]=Y(d,n)),a.value[d]);return{sessions:a,ensureSession:s,patchSession:(d,n)=>{Object.assign(s(d),n)}}}),Q=a=>{const s=Number.parseInt(a||"0",10);return Number.isFinite(s)?s:0},X=a=>{var s,t,d;if(typeof a=="string")return a;if(a&&typeof a=="object"){const n=a;return((s=n.data)==null?void 0:s.message)||((d=(t=n.response)==null?void 0:t._data)==null?void 0:d.message)||n.message||"Request failed."}return"Request failed."},Z=(a,s)=>{const t=X(a);return/READONLY/i.test(t)?"This Redis endpoint is read-only. Value updates are unavailable.":/NOPERM|NOAUTH|WRONGPASS|ACL/i.test(t)?"The connected Redis account does not have permission to edit values.":""},T=a=>({method:a.method,stringConnection:a.connectionString,host:a.host,port:a.port,username:a.username,password:a.password,database:a.database,ssl:a.ssl,ssh:a.ssh});function ee({connection:a,session:s,store:t}){const d=m([]),n=m([]),r=O(null),v=m(!1),f=m(!1),l=m(!1),o=m("");let e=0;const c=p(()=>!!r.value&&!o.value),y=async()=>{if(!a.value||!s.value){d.value=[],n.value=[],r.value=null;return}v.value=!0;try{const i=await $fetch("/api/redis/browser",{method:"POST",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex,keyPattern:s.value.keyPattern}});d.value=i.keys,n.value=i.databases,o.value=""}finally{v.value=!1}},b=async()=>{if(!a.value||!s.value){n.value=[];return}n.value=await $fetch("/api/redis/browser/databases",{method:"POST",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex}})},u=async(i=(I=>(I=s.value)==null?void 0:I.selectedKey)())=>{if(!a.value||!s.value||!i){r.value=null,o.value="",f.value=!1;return}const S=++e;r.value=null,f.value=!0;try{const k=await $fetch("/api/redis/browser/value",{method:"POST",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex,key:i}});if(S!==e)return;r.value=k,o.value=""}finally{S===e&&(f.value=!1)}},h=async i=>{s.value&&t.patchSession(s.value.connectionId,{selectedKey:i,activeTool:"browser"})};return{keys:d,databases:n,selectedKeyDetail:r,loadingKeys:v,loadingSelectedKeyDetail:f,savingValue:l,editUnavailableReason:o,canEditSelectedValue:c,refreshKeys:y,refreshDatabases:b,refreshSelectedKeyDetail:u,openKey:h,focusKey:async i=>{s.value&&(await h(i),await u(i))},saveSelectedValue:async i=>{var I;if(!(!a.value||!((I=s.value)!=null&&I.selectedKey))){l.value=!0;try{r.value=await $fetch("/api/redis/browser/value",{method:"PATCH",body:{...T(a.value),databaseIndex:s.value.selectedDatabaseIndex,key:s.value.selectedKey,previewKind:i.previewKind,stringFormat:i.stringFormat,tableKind:i.tableKind,ttlSeconds:i.ttlSeconds,value:i.value}}),o.value="",E.success("Redis key saved successfully",{description:`Updated ${s.value.selectedKey}`})}catch(S){const k=Z(S);if(k){o.value=k;return}console.error("[useRedisWorkspace] Failed to save Redis value",S)}finally{l.value=!1}}}}}function ue(a){const s=V(a.connection),t=a.tabInfo?V(a.tabInfo):void 0,d=a.mode??"browser",n=J(),r=p(()=>{var e;return(e=s.value)!=null&&e.id?n.ensureSession(s.value.id,Q(s.value.database)):null}),v=p({get:()=>{var e;return((e=r.value)==null?void 0:e.selectedDatabaseIndex)??0},set:e=>{r.value&&n.patchSession(r.value.connectionId,{selectedDatabaseIndex:e})}}),f=p({get:()=>{var e;return((e=r.value)==null?void 0:e.keyPattern)??"*"},set:e=>{r.value&&n.patchSession(r.value.connectionId,{keyPattern:e||"*"})}}),l=ee({connection:s,session:r,store:n}),o=m(!1);return K(()=>t==null?void 0:t.value,async e=>{var c,y,b,u;if(!(!r.value||!e)){if(e.type===_.RedisPubSub){n.patchSession(r.value.connectionId,{activeTool:"pubsub",selectedDatabaseIndex:typeof((c=e.metadata)==null?void 0:c.databaseIndex)=="number"?e.metadata.databaseIndex:r.value.selectedDatabaseIndex}),l.refreshDatabases();return}o.value=!0;try{n.patchSession(r.value.connectionId,{activeTool:"browser",selectedDatabaseIndex:typeof((y=e.metadata)==null?void 0:y.databaseIndex)=="number"?e.metadata.databaseIndex:r.value.selectedDatabaseIndex,keyPattern:typeof((b=e.metadata)==null?void 0:b.keyPattern)=="string"?e.metadata.keyPattern:r.value.keyPattern,selectedKey:typeof((u=e.metadata)==null?void 0:u.selectedKey)=="string"?e.metadata.selectedKey:r.value.selectedKey}),await l.refreshKeys(),l.refreshSelectedKeyDetail()}finally{o.value=!1}}},{immediate:!0}),K(()=>{var e,c;return[(e=r.value)==null?void 0:e.selectedDatabaseIndex,(c=r.value)==null?void 0:c.keyPattern]},([e,c],y)=>{if(!(t!=null&&t.value)||t.value.type!==_.RedisBrowser||o.value)return;const[b,u]=y??[];e===b&&c===u||l.refreshKeys()}),K(()=>{var e;return(e=r.value)==null?void 0:e.selectedKey},(e,c)=>{!(t!=null&&t.value)||t.value.type!==_.RedisBrowser||o.value||e===c||l.refreshSelectedKeyDetail(e)}),K(()=>{var e;return(e=r.value)==null?void 0:e.selectedDatabaseIndex},(e,c)=>{if(e!==c){if(t!=null&&t.value){t.value.type===_.RedisPubSub&&l.refreshDatabases();return}d==="meta"&&l.refreshDatabases()}}),K(()=>{var e;return(e=s.value)==null?void 0:e.id},e=>{if(!(!e||t!=null&&t.value)){if(d==="meta"){l.refreshDatabases();return}l.refreshKeys()}},{immediate:!0}),{session:r,keys:l.keys,databases:l.databases,selectedKeyDetail:l.selectedKeyDetail,loadingKeys:l.loadingKeys,loadingSelectedKeyDetail:l.loadingSelectedKeyDetail,savingValue:l.savingValue,selectedDatabaseIndex:v,keyPattern:f,canEditSelectedValue:l.canEditSelectedValue,editUnavailableReason:l.editUnavailableReason,refreshKeys:l.refreshKeys,openKey:l.openKey,focusKey:l.focusKey,saveSelectedValue:l.saveSelectedValue}}const ae={class:"flex min-w-0 items-center gap-1.5 pr-5 text-left"},te={class:"flex min-w-0 items-center gap-2"},se={class:"truncate"},le={class:"text-xxs text-muted-foreground"},ie=F({__name:"RedisDBSelector",props:{databases:{},databaseIndex:{},compact:{type:Boolean},label:{},triggerId:{},triggerClass:{}},emits:["update:databaseIndex"],setup(a,{emit:s}){const t=a,d=s,n=p(()=>t.databases.length>0?t.databases:[{index:t.databaseIndex,label:`DB ${t.databaseIndex}`,keyCount:0,expires:0,avgTtl:null}]),r=p(()=>t.triggerId||"redis-db-index"),v=p(()=>n.value.find(l=>l.index===t.databaseIndex)??n.value[0]),f=p(()=>t.compact?["h-6! w-fit gap-1 px-2 text-xs",t.triggerClass].filter(Boolean).join(" "):["w-full",t.triggerClass].filter(Boolean).join(" "));return(l,o)=>{const e=q,c=M,y=z,b=j;return R(),B("div",{class:P(l.compact?"w-[132px]":"space-y-1")},[l.compact?U("",!0):(R(),N(g(W),{key:0,for:g(r)},{default:D(()=>[A(w(l.label||"Databases"),1)]),_:1},8,["for"])),C(b,{"model-value":String(l.databaseIndex),"onUpdate:modelValue":o[0]||(o[0]=u=>d("update:databaseIndex",Number(u)||0)),size:"sm"},{default:D(()=>[C(e,{id:g(r),class:P(g(f))},{default:D(()=>{var u,h;return[x("div",ae,[x("span",{class:P(l.compact?"truncate text-xs":"truncate text-sm")},w(((u=g(v))==null?void 0:u.label)||"Select DB"),3),x("span",{class:P(["shrink-0 text-muted-foreground",(l.compact,"text-xxs")])},w(((h=g(v))==null?void 0:h.keyCount)??0)+" keys ",3)])]}),_:1},8,["id","class"]),C(y,null,{default:D(()=>[(R(!0),B(L,null,H(g(n),u=>(R(),N(c,{key:u.index,value:String(u.index)},{default:D(()=>[x("div",te,[x("span",se,w(u.label),1),x("span",le,w(u.keyCount)+" keys ",1)])]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["model-value"])],2)}}});export{G as R,ie as _,ue as u};