cc-viewer 1.6.183 → 1.6.192

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 (135) hide show
  1. package/dist/assets/App-DuGHwadX.js +31 -0
  2. package/dist/assets/{AppHeader-Dc7WvorH.css → AppHeader-D8MCV07q.css} +3 -3
  3. package/dist/assets/AppHeader.module-CozRDKfP.js +573 -0
  4. package/dist/assets/Mobile-Bab634xx.js +10 -0
  5. package/dist/assets/_baseUniq-DJPPdHyT.js +1 -0
  6. package/dist/assets/arc-DZ3Bjq-l.js +1 -0
  7. package/dist/assets/architectureDiagram-Q4EWVU46-xy0J2lr0.js +36 -0
  8. package/dist/assets/blockDiagram-DXYQGD6D-CoUm8UC5.js +132 -0
  9. package/dist/assets/c4Diagram-AHTNJAMY-CFHX4Dfx.js +10 -0
  10. package/dist/assets/channel-G3S1FOvm.js +1 -0
  11. package/dist/assets/chunk-4BX2VUAB-CiktxOyY.js +1 -0
  12. package/dist/assets/chunk-4TB4RGXK-DHl7ZlQV.js +206 -0
  13. package/dist/assets/chunk-55IACEB6-DcgWxDD5.js +1 -0
  14. package/dist/assets/chunk-EDXVE4YY-DeUzWpQx.js +1 -0
  15. package/dist/assets/{chunk-FMBD7UC4-Bb0LARSp.js → chunk-FMBD7UC4-BCaKpugk.js} +2 -2
  16. package/dist/assets/chunk-OYMX7WX6-DKMEMbG9.js +231 -0
  17. package/dist/assets/chunk-QZHKN3VN-BREApeQ-.js +1 -0
  18. package/dist/assets/chunk-YZCP3GAM-BYW1PNda.js +1 -0
  19. package/dist/assets/classDiagram-6PBFFD2Q-B0-7EUsz.js +1 -0
  20. package/dist/assets/classDiagram-v2-HSJHXN6E-B0-7EUsz.js +1 -0
  21. package/dist/assets/clone-CX_D5SrR.js +1 -0
  22. package/dist/assets/cose-bilkent-S5V4N54A-DpwiMCiq.js +1 -0
  23. package/dist/assets/cytoscape.esm-BMgRe88L.js +331 -0
  24. package/dist/assets/dagre-KV5264BT-Dc7qbya2.js +4 -0
  25. package/dist/assets/defaultLocale-CcTwRAjA.js +1 -0
  26. package/dist/assets/diagram-5BDNPKRD-v7FsHeLQ.js +10 -0
  27. package/dist/assets/diagram-G4DWMVQ6-BhKNBlcE.js +24 -0
  28. package/dist/assets/diagram-MMDJMWI5-C-3cRdzG.js +43 -0
  29. package/dist/assets/diagram-TYMM5635-HfNcJIfT.js +24 -0
  30. package/dist/assets/erDiagram-SMLLAGMA-Ckj0dkk7.js +85 -0
  31. package/dist/assets/flowDiagram-DWJPFMVM-yf315tJr.js +162 -0
  32. package/dist/assets/ganttDiagram-T4ZO3ILL-Ch2bINVC.js +292 -0
  33. package/dist/assets/gitGraphDiagram-UUTBAWPF-CesdgsJi.js +106 -0
  34. package/dist/assets/graph-CRpmapJV.js +1 -0
  35. package/dist/assets/html2canvas.esm-B8c0f9Wq.js +22 -0
  36. package/dist/assets/index-DJ0iGKLy.js +2 -0
  37. package/dist/assets/infoDiagram-42DDH7IO-CuD16P9Y.js +2 -0
  38. package/dist/assets/init-C7FSzFHJ.js +1 -0
  39. package/dist/assets/ishikawaDiagram-UXIWVN3A-4y8aG54G.js +70 -0
  40. package/dist/assets/journeyDiagram-VCZTEJTY-B6TtR2Zk.js +139 -0
  41. package/dist/assets/kanban-definition-6JOO6SKY-DTcNHYUS.js +89 -0
  42. package/dist/assets/katex-CJRKSY_b.js +257 -0
  43. package/dist/assets/layout-CX5hpkD2.js +1 -0
  44. package/dist/assets/linear-tWlC-NXc.js +1 -0
  45. package/dist/assets/mermaid.core-DNvsWVDx.js +308 -0
  46. package/dist/assets/min-CDExe3RN.js +1 -0
  47. package/dist/assets/mindmap-definition-QFDTVHPH-CW0yNQcb.js +96 -0
  48. package/dist/assets/ordinal-aRyHI6gl.js +1 -0
  49. package/dist/assets/pieDiagram-DEJITSTG-DNrnOqmz.js +30 -0
  50. package/dist/assets/quadrantDiagram-34T5L4WZ-Cl176vnh.js +7 -0
  51. package/dist/assets/requirementDiagram-MS252O5E-DKp3A5f_.js +84 -0
  52. package/dist/assets/sankeyDiagram-XADWPNL6-BMV0lAz8.js +10 -0
  53. package/dist/assets/sequenceDiagram-FGHM5R23-CQ4preep.js +157 -0
  54. package/dist/assets/stateDiagram-FHFEXIEX-BKqYYN8H.js +1 -0
  55. package/dist/assets/stateDiagram-v2-QKLJ7IA2-C1W1ECmZ.js +1 -0
  56. package/dist/assets/timeline-definition-GMOUNBTQ-4kgeuumv.js +120 -0
  57. package/dist/assets/vendor-antd-Dk5s46Ag.js +406 -0
  58. package/dist/assets/vendor-codemirror-DxvDOrio.js +46 -0
  59. package/dist/assets/vendor-highlight-DVwgAdJY.js +3 -0
  60. package/dist/assets/vendor-markdown-DO-Ppp4f.js +60 -0
  61. package/dist/assets/vendor-qrcode-hI5wlAgK.js +9 -0
  62. package/dist/assets/vendor-virtuoso-HW77kTCh.js +1 -0
  63. package/dist/assets/vendor-xterm-D2cUrYEx.js +140 -0
  64. package/dist/assets/vennDiagram-DHZGUBPP-CqBcUIdK.js +34 -0
  65. package/dist/assets/wardley-RL74JXVD-CbEnkKx8.js +162 -0
  66. package/dist/assets/wardleyDiagram-NUSXRM2D-BJrjkZMg.js +20 -0
  67. package/dist/assets/xychartDiagram-5P7HB3ND-D8aBEz8e.js +7 -0
  68. package/dist/index.html +3 -3
  69. package/package.json +1 -1
  70. package/server.js +13 -4
  71. package/dist/assets/App-BHfyP8-J.js +0 -31
  72. package/dist/assets/AppHeader.module-W_78JZt9.js +0 -573
  73. package/dist/assets/Mobile-ca5EOMpN.js +0 -10
  74. package/dist/assets/_baseUniq-DYSZB4Xx.js +0 -1
  75. package/dist/assets/arc-BChSP8hM.js +0 -1
  76. package/dist/assets/architectureDiagram-Q4EWVU46-vlr5Q6DQ.js +0 -36
  77. package/dist/assets/blockDiagram-DXYQGD6D-4C3Amh2i.js +0 -132
  78. package/dist/assets/c4Diagram-AHTNJAMY-wI0efLSs.js +0 -10
  79. package/dist/assets/channel-d8DITadq.js +0 -1
  80. package/dist/assets/chunk-4BX2VUAB-BX9brpDB.js +0 -1
  81. package/dist/assets/chunk-4TB4RGXK-DvFQ-X9V.js +0 -206
  82. package/dist/assets/chunk-55IACEB6-BNmYjPNf.js +0 -1
  83. package/dist/assets/chunk-EDXVE4YY-BNvDPqBE.js +0 -1
  84. package/dist/assets/chunk-OYMX7WX6-BwlvIpeD.js +0 -231
  85. package/dist/assets/chunk-QZHKN3VN-BS6RK8_X.js +0 -1
  86. package/dist/assets/chunk-YZCP3GAM-oOqmydQz.js +0 -1
  87. package/dist/assets/classDiagram-6PBFFD2Q-B1oRrMCc.js +0 -1
  88. package/dist/assets/classDiagram-v2-HSJHXN6E-B1oRrMCc.js +0 -1
  89. package/dist/assets/clone-BrNOd7Lq.js +0 -1
  90. package/dist/assets/cose-bilkent-S5V4N54A-CamsIqkY.js +0 -1
  91. package/dist/assets/cytoscape.esm-DxGcaOPV.js +0 -331
  92. package/dist/assets/dagre-KV5264BT-CPAWWiBh.js +0 -4
  93. package/dist/assets/defaultLocale-DX6XiGOO.js +0 -1
  94. package/dist/assets/diagram-5BDNPKRD-D6TmzGhl.js +0 -10
  95. package/dist/assets/diagram-G4DWMVQ6-DDuJnMCL.js +0 -24
  96. package/dist/assets/diagram-MMDJMWI5-CQWhvrpz.js +0 -43
  97. package/dist/assets/diagram-TYMM5635-CEDj3w_h.js +0 -24
  98. package/dist/assets/erDiagram-SMLLAGMA-B_eQqha6.js +0 -85
  99. package/dist/assets/flowDiagram-DWJPFMVM-B985i3uQ.js +0 -162
  100. package/dist/assets/ganttDiagram-T4ZO3ILL-DKp62vr3.js +0 -292
  101. package/dist/assets/gitGraphDiagram-UUTBAWPF-Cc1gyz1Q.js +0 -106
  102. package/dist/assets/graph-C-1-3bsA.js +0 -1
  103. package/dist/assets/html2canvas.esm-QH1iLAAe.js +0 -22
  104. package/dist/assets/index-LH2WLu05.js +0 -2
  105. package/dist/assets/infoDiagram-42DDH7IO-DqXaAHZz.js +0 -2
  106. package/dist/assets/init-Gi6I4Gst.js +0 -1
  107. package/dist/assets/ishikawaDiagram-UXIWVN3A-zdUdDJX2.js +0 -70
  108. package/dist/assets/journeyDiagram-VCZTEJTY-ip5SzODy.js +0 -139
  109. package/dist/assets/kanban-definition-6JOO6SKY-D5EYh6AP.js +0 -89
  110. package/dist/assets/katex-DkKDou_j.js +0 -257
  111. package/dist/assets/layout-Cjq8AL8G.js +0 -1
  112. package/dist/assets/linear-U0KsEJ2u.js +0 -1
  113. package/dist/assets/mermaid.core-CT-5crLN.js +0 -308
  114. package/dist/assets/min-C7G6pq26.js +0 -1
  115. package/dist/assets/mindmap-definition-QFDTVHPH-CIzhFOw1.js +0 -96
  116. package/dist/assets/ordinal-Cboi1Yqb.js +0 -1
  117. package/dist/assets/pieDiagram-DEJITSTG-Cp1Zd1MQ.js +0 -30
  118. package/dist/assets/quadrantDiagram-34T5L4WZ-Cp31xM90.js +0 -7
  119. package/dist/assets/requirementDiagram-MS252O5E-Dbg_eQqB.js +0 -84
  120. package/dist/assets/sankeyDiagram-XADWPNL6-CMrzwpwC.js +0 -10
  121. package/dist/assets/sequenceDiagram-FGHM5R23-KJegoBnN.js +0 -157
  122. package/dist/assets/stateDiagram-FHFEXIEX-BDWprYzE.js +0 -1
  123. package/dist/assets/stateDiagram-v2-QKLJ7IA2-CCUmB0qI.js +0 -1
  124. package/dist/assets/timeline-definition-GMOUNBTQ-BOWeG5LY.js +0 -120
  125. package/dist/assets/vendor-antd-CtdKd5xs.js +0 -406
  126. package/dist/assets/vendor-codemirror-CdXaVX4e.js +0 -46
  127. package/dist/assets/vendor-highlight-D4ATuRwX.js +0 -3
  128. package/dist/assets/vendor-markdown-CO-jRjTB.js +0 -60
  129. package/dist/assets/vendor-qrcode-D05RfzwB.js +0 -9
  130. package/dist/assets/vendor-virtuoso-BhnFrbmh.js +0 -1
  131. package/dist/assets/vendor-xterm-DWMOrwSy.js +0 -140
  132. package/dist/assets/vennDiagram-DHZGUBPP-B6mLodPk.js +0 -34
  133. package/dist/assets/wardley-RL74JXVD-CovHs24Z.js +0 -162
  134. package/dist/assets/wardleyDiagram-NUSXRM2D-CBg_VXF7.js +0 -20
  135. package/dist/assets/xychartDiagram-5P7HB3ND-BRxgk_oX.js +0 -7
@@ -0,0 +1,106 @@
1
+ import{p as populateCommonDb}from"./chunk-4BX2VUAB-CiktxOyY.js";import{I as ImperativeState}from"./chunk-QZHKN3VN-BREApeQ-.js";import{q as getDiagramTitle,p as setDiagramTitle,s as setAccDescription,g as getAccDescription,a as getAccTitle,b as setAccTitle,_ as __name,C as getConfig,l as log,d as select,c as getConfig2,u as utils_default,D as setupGraphViewbox2,y as clear,k as common_default,E as cleanAndMerge,F as defaultConfig_default,G as random}from"./mermaid.core-DNvsWVDx.js";import{p as parse}from"./wardley-RL74JXVD-CbEnkKx8.js";import"./index-DJ0iGKLy.js";import"./vendor-codemirror-DxvDOrio.js";import"./vendor-antd-Dk5s46Ag.js";import"./vendor-markdown-DO-Ppp4f.js";import"./min-CDExe3RN.js";import"./_baseUniq-DJPPdHyT.js";var commitType={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},DEFAULT_GITGRAPH_CONFIG=defaultConfig_default.gitGraph,getConfig3=__name(()=>cleanAndMerge({...DEFAULT_GITGRAPH_CONFIG,...getConfig().gitGraph}),"getConfig"),state=new ImperativeState(()=>{const config=getConfig3(),mainBranchName=config.mainBranchName,mainBranchOrder=config.mainBranchOrder;return{mainBranchName,commits:new Map,head:null,branchConfig:new Map([[mainBranchName,{name:mainBranchName,order:mainBranchOrder}]]),branches:new Map([[mainBranchName,null]]),currBranch:mainBranchName,direction:"LR",seq:0,options:{}}});function getID(){return random({length:7})}__name(getID,"getID");function uniqBy(list,fn){const recordMap=Object.create(null);return list.reduce((out,item)=>{const key=fn(item);return recordMap[key]||(recordMap[key]=!0,out.push(item)),out},[])}__name(uniqBy,"uniqBy");var setDirection=__name(function(dir2){state.records.direction=dir2},"setDirection"),setOptions=__name(function(rawOptString){log.debug("options str",rawOptString),rawOptString=rawOptString==null?void 0:rawOptString.trim(),rawOptString=rawOptString||"{}";try{state.records.options=JSON.parse(rawOptString)}catch(e){log.error("error while parsing gitGraph options",e.message)}},"setOptions"),getOptions=__name(function(){return state.records.options},"getOptions"),commit=__name(function(commitDB){let msg=commitDB.msg,id=commitDB.id;const type=commitDB.type;let tags=commitDB.tags;log.info("commit",msg,id,type,tags),log.debug("Entering commit:",msg,id,type,tags);const config=getConfig3();id=common_default.sanitizeText(id,config),msg=common_default.sanitizeText(msg,config),tags=tags==null?void 0:tags.map(tag=>common_default.sanitizeText(tag,config));const newCommit={id:id||state.records.seq+"-"+getID(),message:msg,seq:state.records.seq++,type:type??commitType.NORMAL,tags:tags??[],parents:state.records.head==null?[]:[state.records.head.id],branch:state.records.currBranch};state.records.head=newCommit,log.info("main branch",config.mainBranchName),state.records.commits.has(newCommit.id)&&log.warn(`Commit ID ${newCommit.id} already exists`),state.records.commits.set(newCommit.id,newCommit),state.records.branches.set(state.records.currBranch,newCommit.id),log.debug("in pushCommit "+newCommit.id)},"commit"),branch=__name(function(branchDB){let name=branchDB.name;const order=branchDB.order;if(name=common_default.sanitizeText(name,getConfig3()),state.records.branches.has(name))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 ${name}")`);state.records.branches.set(name,state.records.head!=null?state.records.head.id:null),state.records.branchConfig.set(name,{name,order}),checkout(name),log.debug("in createBranch")},"branch"),merge=__name(mergeDB=>{let otherBranch=mergeDB.branch,customId=mergeDB.id;const overrideType=mergeDB.type,customTags=mergeDB.tags,config=getConfig3();otherBranch=common_default.sanitizeText(otherBranch,config),customId&&(customId=common_default.sanitizeText(customId,config));const currentBranchCheck=state.records.branches.get(state.records.currBranch),otherBranchCheck=state.records.branches.get(otherBranch),currentCommit=currentBranchCheck?state.records.commits.get(currentBranchCheck):void 0,otherCommit=otherBranchCheck?state.records.commits.get(otherBranchCheck):void 0;if(currentCommit&&otherCommit&&currentCommit.branch===otherBranch)throw new Error(`Cannot merge branch '${otherBranch}' into itself.`);if(state.records.currBranch===otherBranch){const error=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw error.hash={text:`merge ${otherBranch}`,token:`merge ${otherBranch}`,expected:["branch abc"]},error}if(currentCommit===void 0||!currentCommit){const error=new Error(`Incorrect usage of "merge". Current branch (${state.records.currBranch})has no commits`);throw error.hash={text:`merge ${otherBranch}`,token:`merge ${otherBranch}`,expected:["commit"]},error}if(!state.records.branches.has(otherBranch)){const error=new Error('Incorrect usage of "merge". Branch to be merged ('+otherBranch+") does not exist");throw error.hash={text:`merge ${otherBranch}`,token:`merge ${otherBranch}`,expected:[`branch ${otherBranch}`]},error}if(otherCommit===void 0||!otherCommit){const error=new Error('Incorrect usage of "merge". Branch to be merged ('+otherBranch+") has no commits");throw error.hash={text:`merge ${otherBranch}`,token:`merge ${otherBranch}`,expected:['"commit"']},error}if(currentCommit===otherCommit){const error=new Error('Incorrect usage of "merge". Both branches have same head');throw error.hash={text:`merge ${otherBranch}`,token:`merge ${otherBranch}`,expected:["branch abc"]},error}if(customId&&state.records.commits.has(customId)){const error=new Error('Incorrect usage of "merge". Commit with id:'+customId+" already exists, use different custom id");throw error.hash={text:`merge ${otherBranch} ${customId} ${overrideType} ${customTags==null?void 0:customTags.join(" ")}`,token:`merge ${otherBranch} ${customId} ${overrideType} ${customTags==null?void 0:customTags.join(" ")}`,expected:[`merge ${otherBranch} ${customId}_UNIQUE ${overrideType} ${customTags==null?void 0:customTags.join(" ")}`]},error}const verifiedBranch=otherBranchCheck||"",commit2={id:customId||`${state.records.seq}-${getID()}`,message:`merged branch ${otherBranch} into ${state.records.currBranch}`,seq:state.records.seq++,parents:state.records.head==null?[]:[state.records.head.id,verifiedBranch],branch:state.records.currBranch,type:commitType.MERGE,customType:overrideType,customId:!!customId,tags:customTags??[]};state.records.head=commit2,state.records.commits.set(commit2.id,commit2),state.records.branches.set(state.records.currBranch,commit2.id),log.debug(state.records.branches),log.debug("in mergeBranch")},"merge"),cherryPick=__name(function(cherryPickDB){let sourceId=cherryPickDB.id,targetId=cherryPickDB.targetId,tags=cherryPickDB.tags,parentCommitId=cherryPickDB.parent;log.debug("Entering cherryPick:",sourceId,targetId,tags);const config=getConfig3();if(sourceId=common_default.sanitizeText(sourceId,config),targetId=common_default.sanitizeText(targetId,config),tags=tags==null?void 0:tags.map(tag=>common_default.sanitizeText(tag,config)),parentCommitId=common_default.sanitizeText(parentCommitId,config),!sourceId||!state.records.commits.has(sourceId)){const error=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw error.hash={text:`cherryPick ${sourceId} ${targetId}`,token:`cherryPick ${sourceId} ${targetId}`,expected:["cherry-pick abc"]},error}const sourceCommit=state.records.commits.get(sourceId);if(sourceCommit===void 0||!sourceCommit)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(parentCommitId&&!(Array.isArray(sourceCommit.parents)&&sourceCommit.parents.includes(parentCommitId)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");const sourceCommitBranch=sourceCommit.branch;if(sourceCommit.type===commitType.MERGE&&!parentCommitId)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!targetId||!state.records.commits.has(targetId)){if(sourceCommitBranch===state.records.currBranch){const error=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw error.hash={text:`cherryPick ${sourceId} ${targetId}`,token:`cherryPick ${sourceId} ${targetId}`,expected:["cherry-pick abc"]},error}const currentCommitId=state.records.branches.get(state.records.currBranch);if(currentCommitId===void 0||!currentCommitId){const error=new Error(`Incorrect usage of "cherry-pick". Current branch (${state.records.currBranch})has no commits`);throw error.hash={text:`cherryPick ${sourceId} ${targetId}`,token:`cherryPick ${sourceId} ${targetId}`,expected:["cherry-pick abc"]},error}const currentCommit=state.records.commits.get(currentCommitId);if(currentCommit===void 0||!currentCommit){const error=new Error(`Incorrect usage of "cherry-pick". Current branch (${state.records.currBranch})has no commits`);throw error.hash={text:`cherryPick ${sourceId} ${targetId}`,token:`cherryPick ${sourceId} ${targetId}`,expected:["cherry-pick abc"]},error}const commit2={id:state.records.seq+"-"+getID(),message:`cherry-picked ${sourceCommit==null?void 0:sourceCommit.message} into ${state.records.currBranch}`,seq:state.records.seq++,parents:state.records.head==null?[]:[state.records.head.id,sourceCommit.id],branch:state.records.currBranch,type:commitType.CHERRY_PICK,tags:tags?tags.filter(Boolean):[`cherry-pick:${sourceCommit.id}${sourceCommit.type===commitType.MERGE?`|parent:${parentCommitId}`:""}`]};state.records.head=commit2,state.records.commits.set(commit2.id,commit2),state.records.branches.set(state.records.currBranch,commit2.id),log.debug(state.records.branches),log.debug("in cherryPick")}},"cherryPick"),checkout=__name(function(branch2){if(branch2=common_default.sanitizeText(branch2,getConfig3()),state.records.branches.has(branch2)){state.records.currBranch=branch2;const id=state.records.branches.get(state.records.currBranch);id===void 0||!id?state.records.head=null:state.records.head=state.records.commits.get(id)??null}else{const error=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${branch2}")`);throw error.hash={text:`checkout ${branch2}`,token:`checkout ${branch2}`,expected:[`branch ${branch2}`]},error}},"checkout");function upsert(arr,key,newVal){const index=arr.indexOf(key);index===-1?arr.push(newVal):arr.splice(index,1,newVal)}__name(upsert,"upsert");function prettyPrintCommitHistory(commitArr){const commit2=commitArr.reduce((out,commit3)=>out.seq>commit3.seq?out:commit3,commitArr[0]);let line="";commitArr.forEach(function(c){c===commit2?line+=" *":line+=" |"});const label=[line,commit2.id,commit2.seq];for(const branch2 in state.records.branches)state.records.branches.get(branch2)===commit2.id&&label.push(branch2);if(log.debug(label.join(" ")),commit2.parents&&commit2.parents.length==2&&commit2.parents[0]&&commit2.parents[1]){const newCommit=state.records.commits.get(commit2.parents[0]);upsert(commitArr,commit2,newCommit),commit2.parents[1]&&commitArr.push(state.records.commits.get(commit2.parents[1]))}else{if(commit2.parents.length==0)return;if(commit2.parents[0]){const newCommit=state.records.commits.get(commit2.parents[0]);upsert(commitArr,commit2,newCommit)}}commitArr=uniqBy(commitArr,c=>c.id),prettyPrintCommitHistory(commitArr)}__name(prettyPrintCommitHistory,"prettyPrintCommitHistory");var prettyPrint=__name(function(){log.debug(state.records.commits);const node=getCommitsArray()[0];prettyPrintCommitHistory([node])},"prettyPrint"),clear2=__name(function(){state.reset(),clear()},"clear"),getBranchesAsObjArray=__name(function(){return[...state.records.branchConfig.values()].map((branchConfig,i)=>branchConfig.order!==null&&branchConfig.order!==void 0?branchConfig:{...branchConfig,order:parseFloat(`0.${i}`)}).sort((a,b)=>(a.order??0)-(b.order??0)).map(({name})=>({name}))},"getBranchesAsObjArray"),getBranches=__name(function(){return state.records.branches},"getBranches"),getCommits=__name(function(){return state.records.commits},"getCommits"),getCommitsArray=__name(function(){const commitArr=[...state.records.commits.values()];return commitArr.forEach(function(o){log.debug(o.id)}),commitArr.sort((a,b)=>a.seq-b.seq),commitArr},"getCommitsArray"),getCurrentBranch=__name(function(){return state.records.currBranch},"getCurrentBranch"),getDirection=__name(function(){return state.records.direction},"getDirection"),getHead=__name(function(){return state.records.head},"getHead"),db={commitType,getConfig:getConfig3,setDirection,setOptions,getOptions,commit,branch,merge,cherryPick,checkout,prettyPrint,clear:clear2,getBranchesAsObjArray,getBranches,getCommits,getCommitsArray,getCurrentBranch,getDirection,getHead,setAccTitle,getAccTitle,getAccDescription,setAccDescription,setDiagramTitle,getDiagramTitle},populate=__name((ast,db2)=>{populateCommonDb(ast,db2),ast.dir&&db2.setDirection(ast.dir);for(const statement of ast.statements)parseStatement(statement,db2)},"populate"),parseStatement=__name((statement,db2)=>{const parser2={Commit:__name(stmt=>db2.commit(parseCommit(stmt)),"Commit"),Branch:__name(stmt=>db2.branch(parseBranch(stmt)),"Branch"),Merge:__name(stmt=>db2.merge(parseMerge(stmt)),"Merge"),Checkout:__name(stmt=>db2.checkout(parseCheckout(stmt)),"Checkout"),CherryPicking:__name(stmt=>db2.cherryPick(parseCherryPicking(stmt)),"CherryPicking")}[statement.$type];parser2?parser2(statement):log.error(`Unknown statement type: ${statement.$type}`)},"parseStatement"),parseCommit=__name(commit2=>({id:commit2.id,msg:commit2.message??"",type:commit2.type!==void 0?commitType[commit2.type]:commitType.NORMAL,tags:commit2.tags??void 0}),"parseCommit"),parseBranch=__name(branch2=>({name:branch2.name,order:branch2.order??0}),"parseBranch"),parseMerge=__name(merge2=>({branch:merge2.branch,id:merge2.id??"",type:merge2.type!==void 0?commitType[merge2.type]:void 0,tags:merge2.tags??void 0}),"parseMerge"),parseCheckout=__name(checkout2=>checkout2.branch,"parseCheckout"),parseCherryPicking=__name(cherryPicking=>{var _a;return{id:cherryPicking.id,targetId:"",tags:((_a=cherryPicking.tags)==null?void 0:_a.length)===0?void 0:cherryPicking.tags,parent:cherryPicking.parent}},"parseCherryPicking"),parser={parse:__name(async input=>{const ast=await parse("gitGraph",input);log.debug(ast),populate(ast,db)},"parse")},LAYOUT_OFFSET=10,COMMIT_STEP=40,PX=4,PY=2,THEME_COLOR_LIMIT=8,REDUX_GEOMETRY_THEMES=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),REDUX_BRANCH_LABEL_PADDING_Y=12,COLOR_THEMES=new Set(["redux-color","redux-dark-color"]),DARK_THEMES=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),calcColorIndex=__name((rawIndex,limit,avoidDefaultColor=!1)=>avoidDefaultColor&&rawIndex>0?(rawIndex-1)%(limit-1)+1:rawIndex%limit,"calcColorIndex"),branchPos=new Map,commitPos=new Map,defaultPos=30,allCommitsDict=new Map,lanes=[],maxPos=0,dir="LR",clear3=__name(()=>{branchPos.clear(),commitPos.clear(),allCommitsDict.clear(),maxPos=0,lanes=[],dir="LR"},"clear"),drawText=__name(txt=>{const svgLabel=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof txt=="string"?txt.split(/\\n|\n|<br\s*\/?>/gi):txt).forEach(row=>{const tspan=document.createElementNS("http://www.w3.org/2000/svg","tspan");tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),tspan.setAttribute("dy","1em"),tspan.setAttribute("x","0"),tspan.setAttribute("class","row"),tspan.textContent=row.trim(),svgLabel.appendChild(tspan)}),svgLabel},"drawText"),findClosestParent=__name(parents=>{let closestParent,comparisonFunc,targetPosition;return dir==="BT"?(comparisonFunc=__name((a,b)=>a<=b,"comparisonFunc"),targetPosition=1/0):(comparisonFunc=__name((a,b)=>a>=b,"comparisonFunc"),targetPosition=0),parents.forEach(parent=>{var _a,_b;const parentPosition=dir==="TB"||dir=="BT"?(_a=commitPos.get(parent))==null?void 0:_a.y:(_b=commitPos.get(parent))==null?void 0:_b.x;parentPosition!==void 0&&comparisonFunc(parentPosition,targetPosition)&&(closestParent=parent,targetPosition=parentPosition)}),closestParent},"findClosestParent"),findClosestParentBT=__name(parents=>{let closestParent="",maxPosition=1/0;return parents.forEach(parent=>{const parentPosition=commitPos.get(parent).y;parentPosition<=maxPosition&&(closestParent=parent,maxPosition=parentPosition)}),closestParent||void 0},"findClosestParentBT"),setParallelBTPos=__name((sortedKeys,commits,defaultPos2)=>{let curPos=defaultPos2,maxPosition=defaultPos2;const roots=[];sortedKeys.forEach(key=>{const commit2=commits.get(key);if(!commit2)throw new Error(`Commit not found for key ${key}`);commit2.parents.length?(curPos=calculateCommitPosition(commit2),maxPosition=Math.max(curPos,maxPosition)):roots.push(commit2),setCommitPosition(commit2,curPos)}),curPos=maxPosition,roots.forEach(commit2=>{setRootPosition(commit2,curPos,defaultPos2)}),sortedKeys.forEach(key=>{const commit2=commits.get(key);if(commit2!=null&&commit2.parents.length){const closestParent=findClosestParentBT(commit2.parents);curPos=commitPos.get(closestParent).y-COMMIT_STEP,curPos<=maxPosition&&(maxPosition=curPos);const x=branchPos.get(commit2.branch).pos,y=curPos-LAYOUT_OFFSET;commitPos.set(commit2.id,{x,y})}})},"setParallelBTPos"),findClosestParentPos=__name(commit2=>{var _a;const closestParent=findClosestParent(commit2.parents.filter(p=>p!==null));if(!closestParent)throw new Error(`Closest parent not found for commit ${commit2.id}`);const closestParentPos=(_a=commitPos.get(closestParent))==null?void 0:_a.y;if(closestParentPos===void 0)throw new Error(`Closest parent position not found for commit ${commit2.id}`);return closestParentPos},"findClosestParentPos"),calculateCommitPosition=__name(commit2=>findClosestParentPos(commit2)+COMMIT_STEP,"calculateCommitPosition"),setCommitPosition=__name((commit2,curPos)=>{const branch2=branchPos.get(commit2.branch);if(!branch2)throw new Error(`Branch not found for commit ${commit2.id}`);const x=branch2.pos,y=curPos+LAYOUT_OFFSET;return commitPos.set(commit2.id,{x,y}),{x,y}},"setCommitPosition"),setRootPosition=__name((commit2,curPos,defaultPos2)=>{const branch2=branchPos.get(commit2.branch);if(!branch2)throw new Error(`Branch not found for commit ${commit2.id}`);const y=curPos+defaultPos2,x=branch2.pos;commitPos.set(commit2.id,{x,y})},"setRootPosition"),drawCommitBullet=__name((gBullets,commit2,commitPosition,typeClass,branchIndex,commitSymbolType)=>{const{theme}=getConfig2(),useReduxGeometry=REDUX_GEOMETRY_THEMES.has(theme??""),useColorTheme=COLOR_THEMES.has(theme??""),isDark=DARK_THEMES.has(theme??"");if(commitSymbolType===commitType.HIGHLIGHT)gBullets.append("rect").attr("x",commitPosition.x-10+(useReduxGeometry?3:0)).attr("y",commitPosition.y-10+(useReduxGeometry?3:0)).attr("width",useReduxGeometry?14:20).attr("height",useReduxGeometry?14:20).attr("class",`commit ${commit2.id} commit-highlight${calcColorIndex(branchIndex,THEME_COLOR_LIMIT,useColorTheme)} ${typeClass}-outer`),gBullets.append("rect").attr("x",commitPosition.x-6+(useReduxGeometry?2:0)).attr("y",commitPosition.y-6+(useReduxGeometry?2:0)).attr("width",useReduxGeometry?8:12).attr("height",useReduxGeometry?8:12).attr("class",`commit ${commit2.id} commit${calcColorIndex(branchIndex,THEME_COLOR_LIMIT,useColorTheme)} ${typeClass}-inner`);else if(commitSymbolType===commitType.CHERRY_PICK)gBullets.append("circle").attr("cx",commitPosition.x).attr("cy",commitPosition.y).attr("r",useReduxGeometry?7:10).attr("class",`commit ${commit2.id} ${typeClass}`),gBullets.append("circle").attr("cx",commitPosition.x-3).attr("cy",commitPosition.y+2).attr("r",useReduxGeometry?2.5:2.75).attr("fill",isDark?"#000000":"#fff").attr("class",`commit ${commit2.id} ${typeClass}`),gBullets.append("circle").attr("cx",commitPosition.x+3).attr("cy",commitPosition.y+2).attr("r",useReduxGeometry?2.5:2.75).attr("fill",isDark?"#000000":"#fff").attr("class",`commit ${commit2.id} ${typeClass}`),gBullets.append("line").attr("x1",commitPosition.x+3).attr("y1",commitPosition.y+1).attr("x2",commitPosition.x).attr("y2",commitPosition.y-5).attr("stroke",isDark?"#000000":"#fff").attr("class",`commit ${commit2.id} ${typeClass}`),gBullets.append("line").attr("x1",commitPosition.x-3).attr("y1",commitPosition.y+1).attr("x2",commitPosition.x).attr("y2",commitPosition.y-5).attr("stroke",isDark?"#000000":"#fff").attr("class",`commit ${commit2.id} ${typeClass}`);else{const circle=gBullets.append("circle");if(circle.attr("cx",commitPosition.x),circle.attr("cy",commitPosition.y),circle.attr("r",useReduxGeometry?7:10),circle.attr("class",`commit ${commit2.id} commit${calcColorIndex(branchIndex,THEME_COLOR_LIMIT,useColorTheme)}`),commitSymbolType===commitType.MERGE){const circle2=gBullets.append("circle");circle2.attr("cx",commitPosition.x),circle2.attr("cy",commitPosition.y),circle2.attr("r",useReduxGeometry?5:6),circle2.attr("class",`commit ${typeClass} ${commit2.id} commit${calcColorIndex(branchIndex,THEME_COLOR_LIMIT,useColorTheme)}`)}if(commitSymbolType===commitType.REVERSE){const cross=gBullets.append("path"),constValue=useReduxGeometry?4:5;cross.attr("d",`M ${commitPosition.x-constValue},${commitPosition.y-constValue}L${commitPosition.x+constValue},${commitPosition.y+constValue}M${commitPosition.x-constValue},${commitPosition.y+constValue}L${commitPosition.x+constValue},${commitPosition.y-constValue}`).attr("class",`commit ${typeClass} ${commit2.id} commit${calcColorIndex(branchIndex,THEME_COLOR_LIMIT,useColorTheme)}`)}}},"drawCommitBullet"),drawCommitLabel=__name((gLabels,commit2,commitPosition,pos,gitGraphConfig)=>{var _a;if(commit2.type!==commitType.CHERRY_PICK&&(commit2.customId&&commit2.type===commitType.MERGE||commit2.type!==commitType.MERGE)&&gitGraphConfig.showCommitLabel){const wrapper=gLabels.append("g"),labelBkg=wrapper.insert("rect").attr("class","commit-label-bkg"),text=wrapper.append("text").attr("x",pos).attr("y",commitPosition.y+25).attr("class","commit-label").text(commit2.id),bbox=(_a=text.node())==null?void 0:_a.getBBox();if(bbox&&(labelBkg.attr("x",commitPosition.posWithOffset-bbox.width/2-PY).attr("y",commitPosition.y+13.5).attr("width",bbox.width+2*PY).attr("height",bbox.height+2*PY),dir==="TB"||dir==="BT"?(labelBkg.attr("x",commitPosition.x-(bbox.width+4*PX+5)).attr("y",commitPosition.y-12),text.attr("x",commitPosition.x-(bbox.width+4*PX)).attr("y",commitPosition.y+bbox.height-12)):text.attr("x",commitPosition.posWithOffset-bbox.width/2),gitGraphConfig.rotateCommitLabel))if(dir==="TB"||dir==="BT")text.attr("transform","rotate(-45, "+commitPosition.x+", "+commitPosition.y+")"),labelBkg.attr("transform","rotate(-45, "+commitPosition.x+", "+commitPosition.y+")");else{const r_x=-7.5-(bbox.width+10)/25*9.5,r_y=10+bbox.width/25*8.5;wrapper.attr("transform","translate("+r_x+", "+r_y+") rotate(-45, "+pos+", "+commitPosition.y+")")}}},"drawCommitLabel"),drawCommitTags=__name((gLabels,commit2,commitPosition,pos)=>{var _a;if(commit2.tags.length>0){let yOffset=0,maxTagBboxWidth=0,maxTagBboxHeight=0;const tagElements=[];for(const tagValue of commit2.tags.reverse()){const rect=gLabels.insert("polygon"),hole=gLabels.append("circle"),tag=gLabels.append("text").attr("y",commitPosition.y-16-yOffset).attr("class","tag-label").text(tagValue),tagBbox=(_a=tag.node())==null?void 0:_a.getBBox();if(!tagBbox)throw new Error("Tag bbox not found");maxTagBboxWidth=Math.max(maxTagBboxWidth,tagBbox.width),maxTagBboxHeight=Math.max(maxTagBboxHeight,tagBbox.height),tag.attr("x",commitPosition.posWithOffset-tagBbox.width/2),tagElements.push({tag,hole,rect,yOffset}),yOffset+=20}for(const{tag,hole,rect,yOffset:yOffset2}of tagElements){const h2=maxTagBboxHeight/2,ly=commitPosition.y-19.2-yOffset2;if(rect.attr("class","tag-label-bkg").attr("points",`
2
+ ${pos-maxTagBboxWidth/2-PX/2},${ly+PY}
3
+ ${pos-maxTagBboxWidth/2-PX/2},${ly-PY}
4
+ ${commitPosition.posWithOffset-maxTagBboxWidth/2-PX},${ly-h2-PY}
5
+ ${commitPosition.posWithOffset+maxTagBboxWidth/2+PX},${ly-h2-PY}
6
+ ${commitPosition.posWithOffset+maxTagBboxWidth/2+PX},${ly+h2+PY}
7
+ ${commitPosition.posWithOffset-maxTagBboxWidth/2-PX},${ly+h2+PY}`),hole.attr("cy",ly).attr("cx",pos-maxTagBboxWidth/2+PX/2).attr("r",1.5).attr("class","tag-hole"),dir==="TB"||dir==="BT"){const yOrigin=pos+yOffset2;rect.attr("class","tag-label-bkg").attr("points",`
8
+ ${commitPosition.x},${yOrigin+2}
9
+ ${commitPosition.x},${yOrigin-2}
10
+ ${commitPosition.x+LAYOUT_OFFSET},${yOrigin-h2-2}
11
+ ${commitPosition.x+LAYOUT_OFFSET+maxTagBboxWidth+4},${yOrigin-h2-2}
12
+ ${commitPosition.x+LAYOUT_OFFSET+maxTagBboxWidth+4},${yOrigin+h2+2}
13
+ ${commitPosition.x+LAYOUT_OFFSET},${yOrigin+h2+2}`).attr("transform","translate(12,12) rotate(45, "+commitPosition.x+","+pos+")"),hole.attr("cx",commitPosition.x+PX/2).attr("cy",yOrigin).attr("transform","translate(12,12) rotate(45, "+commitPosition.x+","+pos+")"),tag.attr("x",commitPosition.x+5).attr("y",yOrigin+3).attr("transform","translate(14,14) rotate(45, "+commitPosition.x+","+pos+")")}}}},"drawCommitTags"),getCommitClassType=__name(commit2=>{switch(commit2.customType??commit2.type){case commitType.NORMAL:return"commit-normal";case commitType.REVERSE:return"commit-reverse";case commitType.HIGHLIGHT:return"commit-highlight";case commitType.MERGE:return"commit-merge";case commitType.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),calculatePosition=__name((commit2,dir2,pos,commitPos2)=>{const defaultCommitPosition={x:0,y:0};if(commit2.parents.length>0){const closestParent=findClosestParent(commit2.parents);if(closestParent){const parentPosition=commitPos2.get(closestParent)??defaultCommitPosition;return dir2==="TB"?parentPosition.y+COMMIT_STEP:dir2==="BT"?(commitPos2.get(commit2.id)??defaultCommitPosition).y-COMMIT_STEP:parentPosition.x+COMMIT_STEP}}else return dir2==="TB"?defaultPos:dir2==="BT"?(commitPos2.get(commit2.id)??defaultCommitPosition).y-COMMIT_STEP:0;return 0},"calculatePosition"),getCommitPosition=__name((commit2,pos,isParallelCommits)=>{var _a,_b;const posWithOffset=dir==="BT"&&isParallelCommits?pos:pos+LAYOUT_OFFSET,branchY=(_a=branchPos.get(commit2.branch))==null?void 0:_a.pos,x=dir==="TB"||dir==="BT"?(_b=branchPos.get(commit2.branch))==null?void 0:_b.pos:posWithOffset;if(x===void 0||branchY===void 0)throw new Error(`Position were undefined for commit ${commit2.id}`);const useReduxGeometry=REDUX_GEOMETRY_THEMES.has(getConfig2().theme??""),y=dir==="TB"||dir==="BT"?posWithOffset:branchY+(useReduxGeometry?REDUX_BRANCH_LABEL_PADDING_Y/2+1:-2);return{x,y,posWithOffset}},"getCommitPosition"),drawCommits=__name((svg,commits,modifyGraph,gitGraphConfig)=>{const gBullets=svg.append("g").attr("class","commit-bullets"),gLabels=svg.append("g").attr("class","commit-labels");let pos=dir==="TB"||dir==="BT"?defaultPos:0;const keys=[...commits.keys()],isParallelCommits=gitGraphConfig.parallelCommits??!1,sortKeys=__name((a,b)=>{var _a,_b;const seqA=(_a=commits.get(a))==null?void 0:_a.seq,seqB=(_b=commits.get(b))==null?void 0:_b.seq;return seqA!==void 0&&seqB!==void 0?seqA-seqB:0},"sortKeys");let sortedKeys=keys.sort(sortKeys);dir==="BT"&&(isParallelCommits&&setParallelBTPos(sortedKeys,commits,pos),sortedKeys=sortedKeys.reverse()),sortedKeys.forEach(key=>{var _a;const commit2=commits.get(key);if(!commit2)throw new Error(`Commit not found for key ${key}`);isParallelCommits&&(pos=calculatePosition(commit2,dir,pos,commitPos));const commitPosition=getCommitPosition(commit2,pos,isParallelCommits);if(modifyGraph){const typeClass=getCommitClassType(commit2),commitSymbolType=commit2.customType??commit2.type,branchIndex=((_a=branchPos.get(commit2.branch))==null?void 0:_a.index)??0;drawCommitBullet(gBullets,commit2,commitPosition,typeClass,branchIndex,commitSymbolType),drawCommitLabel(gLabels,commit2,commitPosition,pos,gitGraphConfig),drawCommitTags(gLabels,commit2,commitPosition,pos)}dir==="TB"||dir==="BT"?commitPos.set(commit2.id,{x:commitPosition.x,y:commitPosition.posWithOffset}):commitPos.set(commit2.id,{x:commitPosition.posWithOffset,y:commitPosition.y}),pos=dir==="BT"&&isParallelCommits?pos+COMMIT_STEP:pos+COMMIT_STEP+LAYOUT_OFFSET,pos>maxPos&&(maxPos=pos)})},"drawCommits"),shouldRerouteArrow=__name((commitA,commitB,p1,p2,allCommits)=>{const branchToGetCurve=(dir==="TB"||dir==="BT"?p1.x<p2.x:p1.y<p2.y)?commitB.branch:commitA.branch,isOnBranchToGetCurve=__name(x=>x.branch===branchToGetCurve,"isOnBranchToGetCurve"),isBetweenCommits=__name(x=>x.seq>commitA.seq&&x.seq<commitB.seq,"isBetweenCommits");return[...allCommits.values()].some(commitX=>isBetweenCommits(commitX)&&isOnBranchToGetCurve(commitX))},"shouldRerouteArrow"),findLane=__name((y1,y2,depth=0)=>{const candidate=y1+Math.abs(y1-y2)/2;if(depth>5)return candidate;if(lanes.every(lane=>Math.abs(lane-candidate)>=10))return lanes.push(candidate),candidate;const diff=Math.abs(y1-y2);return findLane(y1,y2-diff/5,depth+1)},"findLane"),drawArrow=__name((svg,commitA,commitB,allCommits)=>{var _a,_b,_c,_d,_e;const{theme:arrowTheme}=getConfig2(),useColorTheme=COLOR_THEMES.has(arrowTheme??""),p1=commitPos.get(commitA.id),p2=commitPos.get(commitB.id);if(p1===void 0||p2===void 0)throw new Error(`Commit positions not found for commits ${commitA.id} and ${commitB.id}`);const arrowNeedsRerouting=shouldRerouteArrow(commitA,commitB,p1,p2,allCommits);let arc="",arc2="",radius=0,offset=0,colorClassNum=(_a=branchPos.get(commitB.branch))==null?void 0:_a.index;commitB.type===commitType.MERGE&&commitA.id!==commitB.parents[0]&&(colorClassNum=(_b=branchPos.get(commitA.branch))==null?void 0:_b.index);let lineDef;if(arrowNeedsRerouting){arc="A 10 10, 0, 0, 0,",arc2="A 10 10, 0, 0, 1,",radius=10,offset=10;const lineY=p1.y<p2.y?findLane(p1.y,p2.y):findLane(p2.y,p1.y),lineX=p1.x<p2.x?findLane(p1.x,p2.x):findLane(p2.x,p1.x);dir==="TB"?p1.x<p2.x?lineDef=`M ${p1.x} ${p1.y} L ${lineX-radius} ${p1.y} ${arc2} ${lineX} ${p1.y+offset} L ${lineX} ${p2.y-radius} ${arc} ${lineX+offset} ${p2.y} L ${p2.x} ${p2.y}`:(colorClassNum=(_c=branchPos.get(commitA.branch))==null?void 0:_c.index,lineDef=`M ${p1.x} ${p1.y} L ${lineX+radius} ${p1.y} ${arc} ${lineX} ${p1.y+offset} L ${lineX} ${p2.y-radius} ${arc2} ${lineX-offset} ${p2.y} L ${p2.x} ${p2.y}`):dir==="BT"?p1.x<p2.x?lineDef=`M ${p1.x} ${p1.y} L ${lineX-radius} ${p1.y} ${arc} ${lineX} ${p1.y-offset} L ${lineX} ${p2.y+radius} ${arc2} ${lineX+offset} ${p2.y} L ${p2.x} ${p2.y}`:(colorClassNum=(_d=branchPos.get(commitA.branch))==null?void 0:_d.index,lineDef=`M ${p1.x} ${p1.y} L ${lineX+radius} ${p1.y} ${arc2} ${lineX} ${p1.y-offset} L ${lineX} ${p2.y+radius} ${arc} ${lineX-offset} ${p2.y} L ${p2.x} ${p2.y}`):p1.y<p2.y?lineDef=`M ${p1.x} ${p1.y} L ${p1.x} ${lineY-radius} ${arc} ${p1.x+offset} ${lineY} L ${p2.x-radius} ${lineY} ${arc2} ${p2.x} ${lineY+offset} L ${p2.x} ${p2.y}`:(colorClassNum=(_e=branchPos.get(commitA.branch))==null?void 0:_e.index,lineDef=`M ${p1.x} ${p1.y} L ${p1.x} ${lineY+radius} ${arc2} ${p1.x+offset} ${lineY} L ${p2.x-radius} ${lineY} ${arc} ${p2.x} ${lineY-offset} L ${p2.x} ${p2.y}`)}else arc="A 20 20, 0, 0, 0,",arc2="A 20 20, 0, 0, 1,",radius=20,offset=20,dir==="TB"?(p1.x<p2.x&&(commitB.type===commitType.MERGE&&commitA.id!==commitB.parents[0]?lineDef=`M ${p1.x} ${p1.y} L ${p1.x} ${p2.y-radius} ${arc} ${p1.x+offset} ${p2.y} L ${p2.x} ${p2.y}`:lineDef=`M ${p1.x} ${p1.y} L ${p2.x-radius} ${p1.y} ${arc2} ${p2.x} ${p1.y+offset} L ${p2.x} ${p2.y}`),p1.x>p2.x&&(arc="A 20 20, 0, 0, 0,",arc2="A 20 20, 0, 0, 1,",radius=20,offset=20,commitB.type===commitType.MERGE&&commitA.id!==commitB.parents[0]?lineDef=`M ${p1.x} ${p1.y} L ${p1.x} ${p2.y-radius} ${arc2} ${p1.x-offset} ${p2.y} L ${p2.x} ${p2.y}`:lineDef=`M ${p1.x} ${p1.y} L ${p2.x+radius} ${p1.y} ${arc} ${p2.x} ${p1.y+offset} L ${p2.x} ${p2.y}`),p1.x===p2.x&&(lineDef=`M ${p1.x} ${p1.y} L ${p2.x} ${p2.y}`)):dir==="BT"?(p1.x<p2.x&&(commitB.type===commitType.MERGE&&commitA.id!==commitB.parents[0]?lineDef=`M ${p1.x} ${p1.y} L ${p1.x} ${p2.y+radius} ${arc2} ${p1.x+offset} ${p2.y} L ${p2.x} ${p2.y}`:lineDef=`M ${p1.x} ${p1.y} L ${p2.x-radius} ${p1.y} ${arc} ${p2.x} ${p1.y-offset} L ${p2.x} ${p2.y}`),p1.x>p2.x&&(arc="A 20 20, 0, 0, 0,",arc2="A 20 20, 0, 0, 1,",radius=20,offset=20,commitB.type===commitType.MERGE&&commitA.id!==commitB.parents[0]?lineDef=`M ${p1.x} ${p1.y} L ${p1.x} ${p2.y+radius} ${arc} ${p1.x-offset} ${p2.y} L ${p2.x} ${p2.y}`:lineDef=`M ${p1.x} ${p1.y} L ${p2.x+radius} ${p1.y} ${arc2} ${p2.x} ${p1.y-offset} L ${p2.x} ${p2.y}`),p1.x===p2.x&&(lineDef=`M ${p1.x} ${p1.y} L ${p2.x} ${p2.y}`)):(p1.y<p2.y&&(commitB.type===commitType.MERGE&&commitA.id!==commitB.parents[0]?lineDef=`M ${p1.x} ${p1.y} L ${p2.x-radius} ${p1.y} ${arc2} ${p2.x} ${p1.y+offset} L ${p2.x} ${p2.y}`:lineDef=`M ${p1.x} ${p1.y} L ${p1.x} ${p2.y-radius} ${arc} ${p1.x+offset} ${p2.y} L ${p2.x} ${p2.y}`),p1.y>p2.y&&(commitB.type===commitType.MERGE&&commitA.id!==commitB.parents[0]?lineDef=`M ${p1.x} ${p1.y} L ${p2.x-radius} ${p1.y} ${arc} ${p2.x} ${p1.y-offset} L ${p2.x} ${p2.y}`:lineDef=`M ${p1.x} ${p1.y} L ${p1.x} ${p2.y+radius} ${arc2} ${p1.x+offset} ${p2.y} L ${p2.x} ${p2.y}`),p1.y===p2.y&&(lineDef=`M ${p1.x} ${p1.y} L ${p2.x} ${p2.y}`));if(lineDef===void 0)throw new Error("Line definition not found");svg.append("path").attr("d",lineDef).attr("class","arrow arrow"+calcColorIndex(colorClassNum,THEME_COLOR_LIMIT,useColorTheme))},"drawArrow"),drawArrows=__name((svg,commits)=>{const gArrows=svg.append("g").attr("class","commit-arrows");[...commits.keys()].forEach(key=>{const commit2=commits.get(key);commit2.parents&&commit2.parents.length>0&&commit2.parents.forEach(parent=>{drawArrow(gArrows,commits.get(parent),commit2,commits)})})},"drawArrows"),drawBranches=__name((svg,branches,gitGraphConfig,id)=>{const{look,theme,themeVariables}=getConfig2(),{dropShadow,THEME_COLOR_LIMIT:themeColorLimit}=themeVariables,useReduxGeometry=REDUX_GEOMETRY_THEMES.has(theme??""),useColorTheme=COLOR_THEMES.has(theme??""),g=svg.append("g");branches.forEach((branch2,index)=>{var _a;const adjustIndexForTheme=calcColorIndex(index,useReduxGeometry?themeColorLimit:THEME_COLOR_LIMIT,useColorTheme),pos=(_a=branchPos.get(branch2.name))==null?void 0:_a.pos;if(pos===void 0)throw new Error(`Position not found for branch ${branch2.name}`);const spineY=dir==="TB"||dir==="BT"?pos:useReduxGeometry?pos+REDUX_BRANCH_LABEL_PADDING_Y/2+1:pos-2,line=g.append("line");line.attr("x1",0),line.attr("y1",spineY),line.attr("x2",maxPos),line.attr("y2",spineY),line.attr("class","branch branch"+adjustIndexForTheme),dir==="TB"?(line.attr("y1",defaultPos),line.attr("x1",pos),line.attr("y2",maxPos),line.attr("x2",pos)):dir==="BT"&&(line.attr("y1",maxPos),line.attr("x1",pos),line.attr("y2",defaultPos),line.attr("x2",pos)),lanes.push(spineY);const name=branch2.name,labelElement=drawText(name),bkg=g.insert("rect"),label=g.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+adjustIndexForTheme);label.node().appendChild(labelElement);const bbox=labelElement.getBBox(),borderRadius=useReduxGeometry?0:4,labelPaddingX=useReduxGeometry?16:0,labelPaddingY=useReduxGeometry?REDUX_BRANCH_LABEL_PADDING_Y:0;look==="neo"&&bkg.attr("data-look","neo"),bkg.attr("class","branchLabelBkg label"+adjustIndexForTheme).attr("style",look==="neo"?`filter:${useReduxGeometry?`url(#${id}-drop-shadow)`:dropShadow}`:"").attr("rx",borderRadius).attr("ry",borderRadius).attr("x",-bbox.width-4-(gitGraphConfig.rotateCommitLabel===!0?30:0)).attr("y",-bbox.height/2+10).attr("width",bbox.width+18+labelPaddingX).attr("height",bbox.height+4+labelPaddingY),label.attr("transform","translate("+(-bbox.width-14-(gitGraphConfig.rotateCommitLabel===!0?30:0)+labelPaddingX/2)+", "+(spineY-bbox.height/2-2)+")"),dir==="TB"?(bkg.attr("x",pos-bbox.width/2-10).attr("y",0),label.attr("transform","translate("+(pos-bbox.width/2-5)+", 0)"),useReduxGeometry&&(bkg.attr("transform",`translate(${-labelPaddingX/2-3}, ${-labelPaddingY-10})`),label.attr("transform","translate("+(pos-bbox.width/2-5)+", "+(-labelPaddingY*2+7)+")"))):dir==="BT"?(bkg.attr("x",pos-bbox.width/2-10).attr("y",maxPos),label.attr("transform","translate("+(pos-bbox.width/2-5)+", "+maxPos+")"),useReduxGeometry&&(bkg.attr("transform",`translate(${-labelPaddingX/2-3}, ${labelPaddingY+10})`),label.attr("transform","translate("+(pos-bbox.width/2-5)+", "+(maxPos+labelPaddingY*2+4)+")"))):bkg.attr("transform","translate(-19, "+(spineY-12-labelPaddingY/2)+")")})},"drawBranches"),setBranchPosition=__name(function(name,pos,index,bbox,rotateCommitLabel){return branchPos.set(name,{pos,index}),pos+=50+(rotateCommitLabel?40:0)+(dir==="TB"||dir==="BT"?bbox.width/2:0),pos},"setBranchPosition"),draw=__name(function(txt,id,ver,diagObj){clear3(),log.debug("in gitgraph renderer",txt+`
14
+ `,"id:",id,ver);const db2=diagObj.db;if(!db2.getConfig){log.error("getConfig method is not available on db");return}const gitGraphConfig=db2.getConfig(),rotateCommitLabel=gitGraphConfig.rotateCommitLabel??!1;allCommitsDict=db2.getCommits();const branches=db2.getBranchesAsObjArray();dir=db2.getDirection();const diagram2=select(`[id="${id}"]`),{look,theme,themeVariables}=getConfig2(),{useGradient,gradientStart,gradientStop,filterColor}=themeVariables;if(useGradient){const gradient=diagram2.append("defs").append("linearGradient").attr("id",id+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");gradient.append("stop").attr("offset","0%").attr("stop-color",gradientStart).attr("stop-opacity",1),gradient.append("stop").attr("offset","100%").attr("stop-color",gradientStop).attr("stop-opacity",1)}look==="neo"&&REDUX_GEOMETRY_THEMES.has(theme??"")&&diagram2.append("defs").append("filter").attr("id",id+"-drop-shadow").attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",filterColor);let pos=0;branches.forEach((branch2,index)=>{var _a;const labelElement=drawText(branch2.name),g=diagram2.append("g"),branchLabel=g.insert("g").attr("class","branchLabel"),label=branchLabel.insert("g").attr("class","label branch-label");(_a=label.node())==null||_a.appendChild(labelElement);const bbox=labelElement.getBBox();pos=setBranchPosition(branch2.name,pos,index,bbox,rotateCommitLabel),label.remove(),branchLabel.remove(),g.remove()}),drawCommits(diagram2,allCommitsDict,!1,gitGraphConfig),gitGraphConfig.showBranches&&drawBranches(diagram2,branches,gitGraphConfig,id),drawArrows(diagram2,allCommitsDict),drawCommits(diagram2,allCommitsDict,!0,gitGraphConfig),utils_default.insertTitle(diagram2,"gitTitleText",gitGraphConfig.titleTopMargin??0,db2.getDiagramTitle()),setupGraphViewbox2(void 0,diagram2,gitGraphConfig.diagramPadding,gitGraphConfig.useMaxWidth)},"draw"),gitGraphRenderer_default={draw},GIT_NAMED_COLOR_COUNT=8,REDUX_GEOMETRY_THEMES2=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),COLOR_THEMES2=new Set(["redux-color","redux-dark-color"]),NEO_THEMES=new Set(["neo","neo-dark"]),DARK_THEMES2=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),NEO_COLOR_GEN_THEMES=new Set(["redux","redux-dark","redux-color","redux-dark-color","neo","neo-dark"]),genGitGraphGradient=__name(options=>{const{svgId}=options;let sections="";if(options.useGradient&&svgId)for(let i=0;i<options.THEME_COLOR_LIMIT;i++)sections+=`
15
+ .label${i} { fill: ${options.mainBkg}; stroke: url(${svgId}-gradient); stroke-width: ${options.strokeWidth};}
16
+ `;return sections},"genGitGraphGradient"),genColor=__name(options=>{const config=getConfig(),{theme,themeVariables}=config,{borderColorArray}=themeVariables,useReduxGeometry=REDUX_GEOMETRY_THEMES2.has(theme);if(NEO_THEMES.has(theme)){let sections="";for(let i=0;i<options.THEME_COLOR_LIMIT;i++)if(i===0)sections+=`
17
+ .branch-label${i} { fill: ${options.nodeBorder};}
18
+ .commit${i} { stroke: ${options.nodeBorder}; }
19
+ .commit-highlight${i} { stroke: ${options.nodeBorder}; fill: ${options.nodeBorder}; }
20
+ .arrow${i} { stroke: ${options.nodeBorder}; }
21
+ .commit-bullets { fill: ${options.nodeBorder}; }
22
+ .commit-cherry-pick${i} { stroke: ${options.nodeBorder}; }
23
+ ${genGitGraphGradient(options)}`;else{const ci=i%GIT_NAMED_COLOR_COUNT;sections+=`
24
+ .branch-label${i} { fill: ${options["gitBranchLabel"+ci]}; }
25
+ .commit${i} { stroke: ${options["git"+ci]}; fill: ${options["git"+ci]}; }
26
+ .commit-highlight${i} { stroke: ${options["gitInv"+ci]}; fill: ${options["gitInv"+ci]}; }
27
+ .arrow${i} { stroke: ${options["git"+ci]}; }
28
+ `}return sections}else if(COLOR_THEMES2.has(theme)){let sections="";for(let i=0;i<options.THEME_COLOR_LIMIT;i++)if(i===0)sections+=`
29
+ .branch-label${i} { fill: ${options.nodeBorder}; ${useReduxGeometry?`font-weight:${options.noteFontWeight}`:""} }
30
+ .commit${i} { stroke: ${options.nodeBorder}; }
31
+ .commit-highlight${i} { stroke: ${options.nodeBorder}; fill: ${options.mainBkg}; }
32
+ .label${i} { fill: ${options.mainBkg}; stroke: ${options.nodeBorder}; stroke-width: ${options.strokeWidth}; ${useReduxGeometry?`font-weight:${options.noteFontWeight}`:""} }
33
+ .arrow${i} { stroke: ${options.nodeBorder}; }
34
+ .commit-bullets { fill: ${options.nodeBorder}; }
35
+ `;else{const colorIndex=i%borderColorArray.length;sections+=`
36
+ .branch-label${i} { fill: ${options.nodeBorder}; ${useReduxGeometry?`font-weight:${options.noteFontWeight}`:""} }
37
+ .commit${i} { stroke: ${borderColorArray[colorIndex]}; fill: ${borderColorArray[colorIndex]}; }
38
+ .commit-highlight${i} { stroke: ${borderColorArray[colorIndex]}; fill: ${borderColorArray[colorIndex]}; }
39
+ .label${i} { fill: ${DARK_THEMES2.has(theme)?options.mainBkg:borderColorArray[colorIndex]}; stroke: ${borderColorArray[colorIndex]}; stroke-width: ${options.strokeWidth}; }
40
+ .arrow${i} { stroke: ${borderColorArray[colorIndex]}; }
41
+ `}return sections}else{let sections="";for(let i=0;i<options.THEME_COLOR_LIMIT;i++)sections+=`
42
+ .branch-label${i} { fill: ${options.nodeBorder}; ${useReduxGeometry?`font-weight:${options.noteFontWeight}`:""} }
43
+ .commit${i} { stroke: ${options.nodeBorder}; }
44
+ .commit-highlight${i} { stroke: ${options.nodeBorder}; fill: ${options.nodeBorder}; }
45
+ .label${i} { fill: ${options.mainBkg}; stroke: ${options.nodeBorder}; stroke-width: ${options.strokeWidth}; ${useReduxGeometry?`font-weight:${options.noteFontWeight}`:""}}
46
+ .arrow${i} { stroke: ${options.nodeBorder}; }
47
+ .commit-bullets { fill: ${options.nodeBorder}; }
48
+ .commit-cherry-pick${i} { stroke: ${options.nodeBorder}; }
49
+ `;return sections}},"genColor"),normalTheme=__name(options=>`${Array.from({length:options.THEME_COLOR_LIMIT},(_,i)=>i).map(i=>{const ci=i%GIT_NAMED_COLOR_COUNT;return`
50
+ .branch-label${i} { fill: ${options["gitBranchLabel"+ci]}; }
51
+ .commit${i} { stroke: ${options["git"+ci]}; fill: ${options["git"+ci]}; }
52
+ .commit-highlight${i} { stroke: ${options["gitInv"+ci]}; fill: ${options["gitInv"+ci]}; }
53
+ .label${i} { fill: ${options["git"+ci]}; }
54
+ .arrow${i} { stroke: ${options["git"+ci]}; }
55
+ `}).join(`
56
+ `)}`,"normalTheme"),getStyles=__name(options=>{const config=getConfig(),{theme}=config,useNeoColorGen=NEO_COLOR_GEN_THEMES.has(theme);return`
57
+ .commit-id,
58
+ .commit-msg,
59
+ .branch-label {
60
+ fill: lightgrey;
61
+ color: lightgrey;
62
+ font-family: 'trebuchet ms', verdana, arial, sans-serif;
63
+ font-family: var(--mermaid-font-family);
64
+ }
65
+
66
+ ${useNeoColorGen?genColor(options):normalTheme(options)}
67
+
68
+ .branch {
69
+ stroke-width: ${options.strokeWidth};
70
+ stroke: ${options.commitLineColor??options.lineColor};
71
+ stroke-dasharray: ${useNeoColorGen?"4 2":"2"};
72
+ }
73
+ .commit-label { font-size: ${options.commitLabelFontSize}; fill: ${useNeoColorGen?options.nodeBorder:options.commitLabelColor}; ${useNeoColorGen?`font-weight:${options.noteFontWeight};`:""}}
74
+ .commit-label-bkg { font-size: ${options.commitLabelFontSize}; fill: ${useNeoColorGen?"transparent":options.commitLabelBackground}; opacity: ${useNeoColorGen?"":.5}; }
75
+ .tag-label { font-size: ${options.tagLabelFontSize}; fill: ${options.tagLabelColor};}
76
+ .tag-label-bkg { fill: ${useNeoColorGen?options.mainBkg:options.tagLabelBackground}; stroke: ${useNeoColorGen?options.nodeBorder:options.tagLabelBorder}; ${useNeoColorGen?`filter:${options.dropShadow}`:""} }
77
+ .tag-hole { fill: ${options.textColor}; }
78
+
79
+ .commit-merge {
80
+ stroke: ${useNeoColorGen?options.mainBkg:options.primaryColor};
81
+ fill: ${useNeoColorGen?options.mainBkg:options.primaryColor};
82
+ }
83
+ .commit-reverse {
84
+ stroke: ${useNeoColorGen?options.mainBkg:options.primaryColor};
85
+ fill: ${useNeoColorGen?options.mainBkg:options.primaryColor};
86
+ stroke-width: ${useNeoColorGen?options.strokeWidth:3};
87
+ }
88
+ .commit-highlight-outer {
89
+ }
90
+ .commit-highlight-inner {
91
+ stroke: ${useNeoColorGen?options.mainBkg:options.primaryColor};
92
+ fill: ${useNeoColorGen?options.mainBkg:options.primaryColor};
93
+ }
94
+
95
+ .arrow {
96
+ /* Intentional: neo themes keep the bold 8px arrow (like classic themes); only redux-geometry themes use the thinner options.strokeWidth. */
97
+ stroke-width: ${REDUX_GEOMETRY_THEMES2.has(theme)?options.strokeWidth:8};
98
+ stroke-linecap: round;
99
+ fill: none
100
+ }
101
+ .gitTitleText {
102
+ text-anchor: middle;
103
+ font-size: 18px;
104
+ fill: ${options.textColor};
105
+ }
106
+ `},"getStyles"),styles_default=getStyles,diagram={parser,db,renderer:gitGraphRenderer_default,styles:styles_default};export{diagram};
@@ -0,0 +1 @@
1
+ import{aQ as copyObject,aR as keysIn,aS as getPrototype,aT as cloneArrayBuffer,aU as Symbol$1,aV as cloneTypedArray,aW as isObjectLike,aX as getTag,aY as baseUnary,aZ as nodeUtil,a_ as isObject,a$ as copyArray,b0 as isBuffer,b1 as cloneBuffer,b2 as initCloneObject,b3 as Stack,aG as isArray,b4 as assignValue,b5 as baseRest,b6 as isArrayLikeObject,b7 as constant,b8 as isFunction,b9 as isEmpty}from"./mermaid.core-DNvsWVDx.js";import{k as keys,g as getSymbols,s as stubArray,e as arrayPush,f as baseGetAllKeys,h as arrayEach,j as getAllKeys,d as arrayMap,l as baseUniq,b as baseFlatten,m as filter,n as forEach,r as reduce}from"./_baseUniq-DJPPdHyT.js";function baseAssign(object,source){return object&&copyObject(source,keys(source),object)}function baseAssignIn(object,source){return object&&copyObject(source,keysIn(source),object)}function copySymbols(source,object){return copyObject(source,getSymbols(source),object)}var nativeGetSymbols=Object.getOwnPropertySymbols,getSymbolsIn=nativeGetSymbols?function(object){for(var result=[];object;)arrayPush(result,getSymbols(object)),object=getPrototype(object);return result}:stubArray;function copySymbolsIn(source,object){return copyObject(source,getSymbolsIn(source),object)}function getAllKeysIn(object){return baseGetAllKeys(object,keysIn,getSymbolsIn)}var objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty;function initCloneArray(array){var length=array.length,result=new array.constructor(length);return length&&typeof array[0]=="string"&&hasOwnProperty.call(array,"index")&&(result.index=array.index,result.input=array.input),result}function cloneDataView(dataView,isDeep){var buffer=isDeep?cloneArrayBuffer(dataView.buffer):dataView.buffer;return new dataView.constructor(buffer,dataView.byteOffset,dataView.byteLength)}var reFlags=/\w*$/;function cloneRegExp(regexp){var result=new regexp.constructor(regexp.source,reFlags.exec(regexp));return result.lastIndex=regexp.lastIndex,result}var symbolProto=Symbol$1?Symbol$1.prototype:void 0,symbolValueOf=symbolProto?symbolProto.valueOf:void 0;function cloneSymbol(symbol){return symbolValueOf?Object(symbolValueOf.call(symbol)):{}}var boolTag$1="[object Boolean]",dateTag$1="[object Date]",mapTag$2="[object Map]",numberTag$1="[object Number]",regexpTag$1="[object RegExp]",setTag$2="[object Set]",stringTag$1="[object String]",symbolTag$1="[object Symbol]",arrayBufferTag$1="[object ArrayBuffer]",dataViewTag$1="[object DataView]",float32Tag$1="[object Float32Array]",float64Tag$1="[object Float64Array]",int8Tag$1="[object Int8Array]",int16Tag$1="[object Int16Array]",int32Tag$1="[object Int32Array]",uint8Tag$1="[object Uint8Array]",uint8ClampedTag$1="[object Uint8ClampedArray]",uint16Tag$1="[object Uint16Array]",uint32Tag$1="[object Uint32Array]";function initCloneByTag(object,tag,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag$1:return cloneArrayBuffer(object);case boolTag$1:case dateTag$1:return new Ctor(+object);case dataViewTag$1:return cloneDataView(object,isDeep);case float32Tag$1:case float64Tag$1:case int8Tag$1:case int16Tag$1:case int32Tag$1:case uint8Tag$1:case uint8ClampedTag$1:case uint16Tag$1:case uint32Tag$1:return cloneTypedArray(object,isDeep);case mapTag$2:return new Ctor;case numberTag$1:case stringTag$1:return new Ctor(object);case regexpTag$1:return cloneRegExp(object);case setTag$2:return new Ctor;case symbolTag$1:return cloneSymbol(object)}}var mapTag$1="[object Map]";function baseIsMap(value){return isObjectLike(value)&&getTag(value)==mapTag$1}var nodeIsMap=nodeUtil&&nodeUtil.isMap,isMap=nodeIsMap?baseUnary(nodeIsMap):baseIsMap,setTag$1="[object Set]";function baseIsSet(value){return isObjectLike(value)&&getTag(value)==setTag$1}var nodeIsSet=nodeUtil&&nodeUtil.isSet,isSet=nodeIsSet?baseUnary(nodeIsSet):baseIsSet,CLONE_DEEP_FLAG=1,CLONE_FLAT_FLAG=2,CLONE_SYMBOLS_FLAG=4,argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",genTag="[object GeneratorFunction]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",symbolTag="[object Symbol]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[dataViewTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[mapTag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[setTag]=cloneableTags[stringTag]=cloneableTags[symbolTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0;cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[weakMapTag]=!1;function baseClone(value,bitmask,customizer,key,object,stack){var result,isDeep=bitmask&CLONE_DEEP_FLAG,isFlat=bitmask&CLONE_FLAT_FLAG,isFull=bitmask&CLONE_SYMBOLS_FLAG;if(result!==void 0)return result;if(!isObject(value))return value;var isArr=isArray(value);if(isArr){if(result=initCloneArray(value),!isDeep)return copyArray(value,result)}else{var tag=getTag(value),isFunc=tag==funcTag||tag==genTag;if(isBuffer(value))return cloneBuffer(value,isDeep);if(tag==objectTag||tag==argsTag||isFunc&&!object){if(result=isFlat||isFunc?{}:initCloneObject(value),!isDeep)return isFlat?copySymbolsIn(value,baseAssignIn(result,value)):copySymbols(value,baseAssign(result,value))}else{if(!cloneableTags[tag])return object?value:{};result=initCloneByTag(value,tag,isDeep)}}stack||(stack=new Stack);var stacked=stack.get(value);if(stacked)return stacked;stack.set(value,result),isSet(value)?value.forEach(function(subValue){result.add(baseClone(subValue,bitmask,customizer,subValue,value,stack))}):isMap(value)&&value.forEach(function(subValue,key2){result.set(key2,baseClone(subValue,bitmask,customizer,key2,value,stack))});var keysFunc=isFull?isFlat?getAllKeysIn:getAllKeys:isFlat?keysIn:keys,props=isArr?void 0:keysFunc(value);return arrayEach(props||value,function(subValue,key2){props&&(key2=subValue,subValue=value[key2]),assignValue(result,key2,baseClone(subValue,bitmask,customizer,key2,value,stack))}),result}function baseValues(object,props){return arrayMap(props,function(key){return object[key]})}function values(object){return object==null?[]:baseValues(object,keys(object))}function isUndefined(value){return value===void 0}var union=baseRest(function(arrays){return baseUniq(baseFlatten(arrays,1,isArrayLikeObject,!0))}),DEFAULT_EDGE_NAME="\0",GRAPH_NODE="\0",EDGE_KEY_DELIM="";class Graph{constructor(opts={}){this._isDirected=Object.prototype.hasOwnProperty.call(opts,"directed")?opts.directed:!0,this._isMultigraph=Object.prototype.hasOwnProperty.call(opts,"multigraph")?opts.multigraph:!1,this._isCompound=Object.prototype.hasOwnProperty.call(opts,"compound")?opts.compound:!1,this._label=void 0,this._defaultNodeLabelFn=constant(void 0),this._defaultEdgeLabelFn=constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[GRAPH_NODE]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(label){return this._label=label,this}graph(){return this._label}setDefaultNodeLabel(newDefault){return isFunction(newDefault)||(newDefault=constant(newDefault)),this._defaultNodeLabelFn=newDefault,this}nodeCount(){return this._nodeCount}nodes(){return keys(this._nodes)}sources(){var self=this;return filter(this.nodes(),function(v){return isEmpty(self._in[v])})}sinks(){var self=this;return filter(this.nodes(),function(v){return isEmpty(self._out[v])})}setNodes(vs,value){var args=arguments,self=this;return forEach(vs,function(v){args.length>1?self.setNode(v,value):self.setNode(v)}),this}setNode(v,value){return Object.prototype.hasOwnProperty.call(this._nodes,v)?(arguments.length>1&&(this._nodes[v]=value),this):(this._nodes[v]=arguments.length>1?value:this._defaultNodeLabelFn(v),this._isCompound&&(this._parent[v]=GRAPH_NODE,this._children[v]={},this._children[GRAPH_NODE][v]=!0),this._in[v]={},this._preds[v]={},this._out[v]={},this._sucs[v]={},++this._nodeCount,this)}node(v){return this._nodes[v]}hasNode(v){return Object.prototype.hasOwnProperty.call(this._nodes,v)}removeNode(v){if(Object.prototype.hasOwnProperty.call(this._nodes,v)){var removeEdge=e=>this.removeEdge(this._edgeObjs[e]);delete this._nodes[v],this._isCompound&&(this._removeFromParentsChildList(v),delete this._parent[v],forEach(this.children(v),child=>{this.setParent(child)}),delete this._children[v]),forEach(keys(this._in[v]),removeEdge),delete this._in[v],delete this._preds[v],forEach(keys(this._out[v]),removeEdge),delete this._out[v],delete this._sucs[v],--this._nodeCount}return this}setParent(v,parent){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(isUndefined(parent))parent=GRAPH_NODE;else{parent+="";for(var ancestor=parent;!isUndefined(ancestor);ancestor=this.parent(ancestor))if(ancestor===v)throw new Error("Setting "+parent+" as parent of "+v+" would create a cycle");this.setNode(parent)}return this.setNode(v),this._removeFromParentsChildList(v),this._parent[v]=parent,this._children[parent][v]=!0,this}_removeFromParentsChildList(v){delete this._children[this._parent[v]][v]}parent(v){if(this._isCompound){var parent=this._parent[v];if(parent!==GRAPH_NODE)return parent}}children(v){if(isUndefined(v)&&(v=GRAPH_NODE),this._isCompound){var children=this._children[v];if(children)return keys(children)}else{if(v===GRAPH_NODE)return this.nodes();if(this.hasNode(v))return[]}}predecessors(v){var predsV=this._preds[v];if(predsV)return keys(predsV)}successors(v){var sucsV=this._sucs[v];if(sucsV)return keys(sucsV)}neighbors(v){var preds=this.predecessors(v);if(preds)return union(preds,this.successors(v))}isLeaf(v){var neighbors;return this.isDirected()?neighbors=this.successors(v):neighbors=this.neighbors(v),neighbors.length===0}filterNodes(filter2){var copy=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});copy.setGraph(this.graph());var self=this;forEach(this._nodes,function(value,v){filter2(v)&&copy.setNode(v,value)}),forEach(this._edgeObjs,function(e){copy.hasNode(e.v)&&copy.hasNode(e.w)&&copy.setEdge(e,self.edge(e))});var parents={};function findParent(v){var parent=self.parent(v);return parent===void 0||copy.hasNode(parent)?(parents[v]=parent,parent):parent in parents?parents[parent]:findParent(parent)}return this._isCompound&&forEach(copy.nodes(),function(v){copy.setParent(v,findParent(v))}),copy}setDefaultEdgeLabel(newDefault){return isFunction(newDefault)||(newDefault=constant(newDefault)),this._defaultEdgeLabelFn=newDefault,this}edgeCount(){return this._edgeCount}edges(){return values(this._edgeObjs)}setPath(vs,value){var self=this,args=arguments;return reduce(vs,function(v,w){return args.length>1?self.setEdge(v,w,value):self.setEdge(v,w),w}),this}setEdge(){var v,w,name,value,valueSpecified=!1,arg0=arguments[0];typeof arg0=="object"&&arg0!==null&&"v"in arg0?(v=arg0.v,w=arg0.w,name=arg0.name,arguments.length===2&&(value=arguments[1],valueSpecified=!0)):(v=arg0,w=arguments[1],name=arguments[3],arguments.length>2&&(value=arguments[2],valueSpecified=!0)),v=""+v,w=""+w,isUndefined(name)||(name=""+name);var e=edgeArgsToId(this._isDirected,v,w,name);if(Object.prototype.hasOwnProperty.call(this._edgeLabels,e))return valueSpecified&&(this._edgeLabels[e]=value),this;if(!isUndefined(name)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(v),this.setNode(w),this._edgeLabels[e]=valueSpecified?value:this._defaultEdgeLabelFn(v,w,name);var edgeObj=edgeArgsToObj(this._isDirected,v,w,name);return v=edgeObj.v,w=edgeObj.w,Object.freeze(edgeObj),this._edgeObjs[e]=edgeObj,incrementOrInitEntry(this._preds[w],v),incrementOrInitEntry(this._sucs[v],w),this._in[w][e]=edgeObj,this._out[v][e]=edgeObj,this._edgeCount++,this}edge(v,w,name){var e=arguments.length===1?edgeObjToId(this._isDirected,arguments[0]):edgeArgsToId(this._isDirected,v,w,name);return this._edgeLabels[e]}hasEdge(v,w,name){var e=arguments.length===1?edgeObjToId(this._isDirected,arguments[0]):edgeArgsToId(this._isDirected,v,w,name);return Object.prototype.hasOwnProperty.call(this._edgeLabels,e)}removeEdge(v,w,name){var e=arguments.length===1?edgeObjToId(this._isDirected,arguments[0]):edgeArgsToId(this._isDirected,v,w,name),edge=this._edgeObjs[e];return edge&&(v=edge.v,w=edge.w,delete this._edgeLabels[e],delete this._edgeObjs[e],decrementOrRemoveEntry(this._preds[w],v),decrementOrRemoveEntry(this._sucs[v],w),delete this._in[w][e],delete this._out[v][e],this._edgeCount--),this}inEdges(v,u){var inV=this._in[v];if(inV){var edges=values(inV);return u?filter(edges,function(edge){return edge.v===u}):edges}}outEdges(v,w){var outV=this._out[v];if(outV){var edges=values(outV);return w?filter(edges,function(edge){return edge.w===w}):edges}}nodeEdges(v,w){var inEdges=this.inEdges(v,w);if(inEdges)return inEdges.concat(this.outEdges(v,w))}}Graph.prototype._nodeCount=0;Graph.prototype._edgeCount=0;function incrementOrInitEntry(map,k){map[k]?map[k]++:map[k]=1}function decrementOrRemoveEntry(map,k){--map[k]||delete map[k]}function edgeArgsToId(isDirected,v_,w_,name){var v=""+v_,w=""+w_;if(!isDirected&&v>w){var tmp=v;v=w,w=tmp}return v+EDGE_KEY_DELIM+w+EDGE_KEY_DELIM+(isUndefined(name)?DEFAULT_EDGE_NAME:name)}function edgeArgsToObj(isDirected,v_,w_,name){var v=""+v_,w=""+w_;if(!isDirected&&v>w){var tmp=v;v=w,w=tmp}var edgeObj={v,w};return name&&(edgeObj.name=name),edgeObj}function edgeObjToId(isDirected,edgeObj){return edgeArgsToId(isDirected,edgeObj.v,edgeObj.w,edgeObj.name)}export{Graph as G,baseClone as b,isUndefined as i,values as v};