Team Ai
Apppublic

admin08077/Githubgemini

sourceHugging Faceotherupdated 11mo agoView on Hugging Face
0likes
AsyncCallTreeViewer-C2e5--qQ.js24 linesDownload Raw Back to assets
1import{r as p,j as t,R as x}from"./react-CIdJ77ke.js";import{af as h}from"./index-CX7Qxd1D.js";import"./@braintree-DzxiOROe.js";import"./react-dom-R9L8nDNe.js";import"./scheduler-CoSDG3-6.js";import"./@google-CcUHq7Ay.js";import"./idb-Dob3nYDb.js";import"./marked-BrGMJkBT.js";import"./mermaid-KwKZWwy0.js";import"./dayjs-CeEF-NGT.js";import"./d3-transition-CiCB8KJE.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CtIaNujU.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-BYoC3mS3.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CTpFWynZ.js";import"./lodash-es-Dt6r0yiR.js";import"./d3-shape-CX8xTzfR.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-DRZz3QW5.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-oKFFZvz7.js";import"./cytoscape-DtBltrT8.js";import"./cytoscape-cose-bilkent-Cgr1thlj.js";import"./cose-base-CwCxnKwh.js";import"./layout-base-CMXQqlmj.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";import"./jszip-CFFhfFtd.js";import"./octokit-B6bKu3NB.js";import"./@octokit-MBEWYTsi.js";import"./bottleneck-D_vuF9V7.js";import"./universal-user-agent-CLgqIJsR.js";import"./before-after-hook-y8XtM9xW.js";import"./fast-content-type-parse-3SwieiST.js";const u=`{2    "name": "startApp",3    "duration": 500,4    "children": [5        {6            "name": "fetchUserData",7            "duration": 300,8            "children": [9                { "name": "authenticate", "duration": 100 },10                { "name": "fetchProfile", "duration": 150 }11            ]12        },13        {14            "name": "loadInitialAssets",15            "duration": 450,16            "children": [17                { "name": "loadImage.png", "duration": 200 },18                { "name": "loadScript.js", "duration": 250 }19            ]20        }21    ]22}`,d=({node:e,level:m,maxDuration:r})=>{const[s,n]=x.useState(!0),o=e.children&&e.children.length>0;return t.jsxs("div",{className:"my-1",children:[t.jsxs("div",{className:"flex items-center p-2 rounded-md hover:bg-gray-100",style:{paddingLeft:`${m*20+8}px`},children:[o&&t.jsx("button",{onClick:()=>n(!s),className:`mr-2 text-text-secondary w-4 h-4 flex-shrink-0 transform transition-transform ${s?"rotate-90":""}`,children:"▶"}),!o&&t.jsx("div",{className:"w-6 mr-2 flex-shrink-0"}),t.jsxs("div",{className:"flex-grow flex items-center justify-between gap-4",children:[t.jsx("span",{className:"truncate",children:e.name}),t.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[t.jsx("div",{className:"w-24 h-4 bg-gray-200 rounded-full overflow-hidden",children:t.jsx("div",{className:"h-4 bg-primary",style:{width:`${e.duration/r*100}%`}})}),t.jsxs("span",{className:"text-primary w-16 text-right",children:[e.duration.toFixed(0),"ms"]})]})]})]}),s&&o&&t.jsx("div",{children:e.children.map((i,a)=>t.jsx(d,{node:i,level:m+1,maxDuration:r},a))})]})},At=()=>{const[e,m]=p.useState(u),[r,s]=p.useState(""),{treeData:n,maxDuration:o}=p.useMemo(()=>{try{const i=JSON.parse(e);let a=0;const c=l=>{l.duration>a&&(a=l.duration),l.children&&l.children.forEach(c)};return c(i),s(""),{treeData:i,maxDuration:a}}catch{return s("Invalid JSON format."),{treeData:null,maxDuration:0}}},[e]);return t.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8 text-text-primary",children:[t.jsxs("header",{className:"mb-6",children:[t.jsxs("h1",{className:"text-3xl flex items-center",children:[t.jsx(h,{}),t.jsx("span",{className:"ml-3",children:"Async Call Tree Viewer"})]}),t.jsx("p",{className:"text-text-secondary mt-1",children:"Paste a JSON structure to visualize an asynchronous function call tree."})]}),t.jsxs("div",{className:"flex-grow flex flex-col gap-4 min-h-0",children:[t.jsxs("div",{className:"flex flex-col h-2/5 min-h-[200px]",children:[t.jsx("label",{htmlFor:"json-input",className:"text-sm font-medium text-text-secondary mb-2",children:"JSON Input"}),t.jsx("textarea",{id:"json-input",value:e,onChange:i=>m(i.target.value),className:`flex-grow p-4 bg-surface border ${r?"border-red-500":"border-border"} rounded-md resize-y font-mono text-sm`,spellCheck:"false"}),r&&t.jsx("p",{className:"text-red-500 text-xs mt-1",children:r})]}),t.jsxs("div",{className:"flex flex-col flex-grow min-h-0",children:[t.jsx("label",{className:"text-sm font-medium text-text-secondary mb-2",children:"Visual Tree"}),t.jsx("div",{className:"flex-grow bg-surface p-4 rounded-lg text-sm overflow-y-auto border border-border",children:n?t.jsx(d,{node:n,level:0,maxDuration:o}):t.jsx("div",{className:"text-text-secondary",children:r||"Enter valid JSON to see the tree."})})]})]})]})};export{At as AsyncCallTreeViewer};23//# sourceMappingURL=AsyncCallTreeViewer-C2e5--qQ.js.map24