@midscene/web 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/dist/es/index.js +306 -170
- package/dist/es/playwright-report.js +22 -15
- package/dist/lib/index.js +320 -188
- package/dist/lib/playwright-report.js +31 -28
- package/dist/script/htmlElement.js +30 -18
- package/dist/script/types/htmlElement.d.ts +5 -5
- package/dist/types/index.d.ts +18 -12
- package/dist/types/playwright-report.d.ts +2 -2
- package/dist/visualizer-report/index.html +1 -1
- package/dist/visualizer-report/static/css/index.eccd04e1.css +1 -0
- package/dist/visualizer-report/static/css/index.eccd04e1.css.map +1 -0
- package/dist/visualizer-report/static/js/160.5ac2287a.js +6 -0
- package/dist/visualizer-report/static/js/160.5ac2287a.js.map +1 -0
- package/dist/visualizer-report/static/js/index.e71be3a2.js +1 -0
- package/dist/visualizer-report/static/js/index.e71be3a2.js.map +1 -0
- package/dist/visualizer-report/static/js/lib-antd.583c9200.js +141 -0
- package/dist/visualizer-report/static/js/lib-antd.583c9200.js.map +1 -0
- package/package.json +7 -6
- package/dist/visualizer-report/static/css/index.c7751597.css +0 -1
- package/dist/visualizer-report/static/css/index.c7751597.css.map +0 -1
- package/dist/visualizer-report/static/js/915.d3f73af1.js +0 -6
- package/dist/visualizer-report/static/js/915.d3f73af1.js.map +0 -1
- package/dist/visualizer-report/static/js/index.ae9a86c5.js +0 -1
- package/dist/visualizer-report/static/js/index.ae9a86c5.js.map +0 -1
- package/dist/visualizer-report/static/js/lib-antd.55d65804.js +0 -189
- package/dist/visualizer-report/static/js/lib-antd.55d65804.js.map +0 -1
- /package/dist/visualizer-report/static/js/{915.d3f73af1.js.LICENSE.txt → 160.5ac2287a.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_midscene_visualizer_report=self.webpackChunk_midscene_visualizer_report||[]).push([["980"],{60815:function(e,t,l){l.d(t,{Z:()=>tv});let s=l("97458"),i=l("42940"),n=l("75026"),r=l("50261"),a=l("43254"),o=l("58506"),c=l("35000"),d=l("52983"),h=l("94343"),u=l("50886"),p=l("68321"),m=l("3573");var v=Object.defineProperty,g=Object.defineProperties,f=Object.getOwnPropertyDescriptors,x=Object.getOwnPropertySymbols,y=Object.prototype.hasOwnProperty,j=Object.prototype.propertyIsEnumerable,b=(e,t,l)=>t in e?v(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,w=(e,t)=>{for(var l in t||(t={}))y.call(t,l)&&b(e,l,t[l]);if(x)for(var l of x(t))j.call(t,l)&&b(e,l,t[l]);return e},k=(e,t)=>g(e,f(t));let _=(0,m.Ue)(e=>({bgVisible:!1,textsVisible:!0,setBgVisible:t=>{e({bgVisible:t})},setTextsVisible:t=>{e({textsVisible:t})}})),N=(0,m.Ue)((e,t)=>{let l={dump:null,activeTask:null,hoverTask:null,hoverTimestamp:null,hoverPreviewConfig:null},s=e=>{let{loadData:t}=C.getState();t(e)},i=()=>{let{reset:e}=C.getState();e()};return k(w({},l),{setGroupedDump:l=>{for(let s of(console.log("will set ExecutionDump",l),e({dump:l}),l))if(s.executions.length>0&&s.executions[0].tasks.length>0){t().setActiveTask(s.executions[0].tasks[0]);break}},setActiveTask(t){e({activeTask:t}),console.log("task set",t),"Insight"===t.type?s(t.log.dump):i()},setHoverTask(t,l){e({hoverTask:t,hoverTimestamp:l||null})},setHoverPreviewConfig(t){t?e({hoverPreviewConfig:{x:Math.floor(t.x),y:Math.floor(t.y)}}):e({hoverPreviewConfig:null})},reset:()=>{e(l),i()}})}),O=()=>{let e=N(e=>e.dump);return(null==e?void 0:e.reduce((e,t)=>{let l=t.executions.reduce((e,t)=>e.concat(t.tasks),[]);return e.concat(l)},[]))||[]},C=(0,m.Ue)(e=>{let t=0,l={_loadId:0,highlightSectionNames:[],highlightElements:[],data:null};return k(w({},l),{loadData:l=>{e({_loadId:++t,data:l,highlightSectionNames:[],highlightElements:[]})},setHighlightSectionNames:t=>{e({highlightSectionNames:t})},setHighlightElements:t=>{e({highlightElements:t})},reset:()=>{e(l)}})});var M=Object.defineProperty,S=Object.defineProperties,E=Object.getOwnPropertyDescriptors,P=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,z=(e,t,l)=>t in e?M(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,H=(e,t)=>{for(var l in t||(t={}))T.call(t,l)&&z(e,l,t[l]);if(P)for(var l of P(t))F.call(t,l)&&z(e,l,t[l]);return e},R=(e,t)=>S(e,E(t)),L=(e,t,l)=>new Promise((s,i)=>{var n=e=>{try{a(l.next(e))}catch(e){i(e)}},r=e=>{try{a(l.throw(e))}catch(e){i(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(n,r);a((l=l.apply(e,t)).next())});let U=e=>{var t,l,i,n;let r=(0,d.useRef)(null),a=(0,d.useMemo)(()=>new p.MxU,[]),o=(0,d.useMemo)(()=>new p.W20,[]),c=(0,d.useMemo)(()=>new p.W20,[]),h=(0,d.useMemo)(()=>new p.W20,[]),u=(0,d.useRef)((e,t,l,s)=>{}),m=(0,d.useMemo)(()=>new p.W20,[]),v=e.screenshots||[],g=v[v.length-1].timeOffset,f=44,x=(e,t)=>{let l;let s=-1;for(let t=0;t<v.length;t++)if(v[t].x<=e)l=v[t],s=t;else break;return{closestScreenshot:l,closestIndex:s}};return(0,d.useMemo)(()=>{let{startMs:t,endMs:l}=e.highlightMask||{},{startMs:s,endMs:i}=e.hoverMask||{};(0,u.current)(t,l,s,i)},[null==(t=e.highlightMask)?void 0:t.startMs,null==(l=e.highlightMask)?void 0:l.endMs,null==(i=e.hoverMask)?void 0:i.startMs,null==(n=e.hoverMask)?void 0:n.endMs]),(0,d.useEffect)(()=>{Promise.resolve(L(void 0,null,function*(){var t,l;if(!r.current)return;let{clientWidth:s,clientHeight:i}=r.current,n=2*s,d=2*i,y=200,j=Math.floor(n/200),b=[50,100,200,300,500,1e3,2e3,3e3,5e3,6e3,8e3,9e3,1e4,2e4,3e4,4e4,6e4,9e4,12e3,3e5],w=b[0];for(let e=b.length-1;e>=0;e--)j*b[e]>=g&&(w=b[e]);let k=g/(j*w);k<=.8&&(j=Math.floor(n/(y=Math.floor(1/k*y*.9))));let _=e=>Math.floor(y*e/w),N=e=>Math.floor(e*w/y);if(yield a.init({width:n,height:d,backgroundColor:16250871}),!r.current){a.destroy();return}r.current.replaceChildren(a.canvas);let O=e=>{let t=`${e}ms`;return new p.xvT(`${t}`,{fontSize:20,fill:0})};o.removeChildren();let C=new p.TCu;C.beginFill(14540253),C.drawRect(0,0,n,f),C.endFill(),o.addChild(C);for(let e=1;e<=j;e++){let t=new p.TCu,l=_(e*w);t.beginFill(13421772),t.drawRect(l,0,2,d),t.endFill(),o.addChild(t);let s=O(e*w),i=l-s.width-12;s.x=i,s.y=12,o.addChild(s)}if(a.stage.addChild(o),!v.length){console.warn("No screenshots found");return}let M=[];c.removeChildren();let S=f+18,E=d-S-18;v.forEach((e,t)=>{let l=new p.W20;M.push(l),a.stage.addChild(l);let s=new Image;s.src=e.img,s.onload=()=>{let i=p.xEZ.from(s),n=new p.jyi(i),r=s.width,a=Math.floor(E/s.height*r),o=_(e.timeOffset);v[t].x=o,v[t].y=S,v[t].width=a,v[t].height=E;let c=new p.TCu;c.lineStyle(2,7829367,1),c.drawRect(o,S,a,E),c.endFill(),l.addChild(c),n.x=o,n.y=S,n.width=a,n.height=E,l.addChild(n)}});let P=(e,t,l,s)=>{h.removeChildren();let i=(e,t,l)=>{if(void 0===e||void 0===t||0===t)return;let s=new p.TCu;s.beginFill(438699,1),s.drawRect(_(e),0,2,d),s.endFill(),h.addChild(s);let i=new p.TCu;i.beginFill(438699,1),i.drawRect(_(t),0,2,d),i.endFill(),h.addChild(i);let n=new p.TCu;n.beginFill(438699,l),n.drawRect(_(e),0,_(t)-_(e),d),n.endFill(),h.addChild(n)};i(e,t,.6),i(l,s,.3)};P(null==(t=e.highlightMask)?void 0:t.startMs,null==(l=e.highlightMask)?void 0:l.endMs,0,0),u.current=P,a.stage.interactive=!0,a.stage.addChild(c),a.stage.addChild(h),a.stage.addChild(m);let T=a.view;T.addEventListener("pointermove",t=>{var l,s;let i=2*t.offsetX,n=2*t.offsetY;m.removeChildren();let{closestScreenshot:r,closestIndex:a}=x(i,n);if(a<0){null==(l=e.onUnhighlight)||l.call(e);return}M[a].children.forEach(e=>{if(e instanceof p.jyi){let t=new p.TCu;t.lineStyle(2,438699,1),t.drawRect(i,r.y,r.width,r.height),t.endFill(),m.addChild(t);let l=function(e){let t=new p.jyi(e.texture);return t.position.copyFrom(e.position),t.scale.copyFrom(e.scale),t.rotation=e.rotation,t.alpha=e.alpha,t.visible=e.visible,t}(e);l.x=i,m.addChild(l)}});let o=new p.TCu;o.beginFill(438699,1),o.drawRect(i-1,0,3,d),o.endFill(),m.addChild(o);let c=O(N(i));c.x=i+5,c.y=12;let h=new p.TCu;h.beginFill(14540253,1),h.drawRect(c.x,c.y,c.width+10,c.height),h.endFill(),m.addChild(h),m.addChild(c),null==(s=e.onHighlight)||s.call(e,{mouseX:i/2,mouseY:n/2,item:r})}),T.addEventListener("pointerout",()=>{var t;m.removeChildren(),null==(t=e.onUnhighlight)||t.call(e)}),T.addEventListener("pointerdown",t=>{var l;let{closestScreenshot:s}=x(2*t.offsetX,2*t.offsetY);s&&(null==(l=e.onTap)||l.call(e,s))})}))},[]),(0,s.jsx)("div",{className:"timeline-canvas-wrapper",ref:r})};var Z=()=>{let e=O(),t=(0,d.useRef)(null),l=N(e=>e.setActiveTask),i=N(e=>e.activeTask),n=N(e=>e.hoverTask),r=N(e=>e.setHoverTask),a=N(e=>e.setHoverPreviewConfig),o=-1,c=1,h={},u=e.reduce((e,t)=>{var l;let s=t.recorder||[];s.forEach(e=>{(-1===o||o>e.ts)&&(o=e.ts)}),(null==(l=t.timing)?void 0:l.start)&&(-1===o||o>t.timing.start)&&(o=t.timing.start);let i=s.map(e=>{let l=`id_${c++}`;return h[l]=t,R(H({},e),{id:l})});return e.concat(i||[])},[]).filter(e=>e.screenshot).map(e=>({id:e.id,img:e.screenshot,timeOffset:e.ts-o})).sort((e,t)=>e.timeOffset-t.timeOffset),p=e=>{var t,l;if(!!e)return(null==(t=e.timing)?void 0:t.start)&&(null==(l=e.timing)?void 0:l.end)?{startMs:e.timing.start-o||0,endMs:e.timing.end-o||0}:void 0},m=p(i),v=p(n);return(0,s.jsx)("div",{className:"timeline-wrapper",ref:t,children:(0,s.jsx)(U,{screenshots:u,onTap:e=>{let t=h[e.id];t&&l(t)},onHighlight:e=>{var l;let{mouseX:s,item:i}=e,n=null==(l=t.current)?void 0:l.getBoundingClientRect(),c=h[i.id];c?(r(c,i.timeOffset+o),a({x:s+((null==n?void 0:n.left)||0),y:((null==n?void 0:n.bottom)||1)-1})):(r(null),a(null))},onUnhighlight:()=>{r(null),a(null)},highlightMask:m,hoverMask:v})})};let D=l("32976"),A=l("38174"),I=l("69849"),W=l("8337"),$=l("74545"),V=["#028391"],J=["#fb6107"];function G(e,t){let l=function(e){!e&&(console.warn("djb2Hash: empty string"),e="unnamed");let t=5381;for(let l=0;l<e.length;l++)t=(t<<5)+t+e.charCodeAt(l);return t>>>0}(t);return"section"===e?V[l%V.length]:J[l%J.length]}function B(e){return"section"===e?"#01204E":"#F56824"}var K=(e,t,l)=>new Promise((s,i)=>{var n=e=>{try{a(l.next(e))}catch(e){i(e)}},r=e=>{try{a(l.throw(e))}catch(e){i(e)}},a=e=>e.done?s(e.value):Promise.resolve(e.value).then(n,r);a((l=l.apply(e,t)).next())});let Y=()=>{};var X=()=>{let e=C(e=>e.data),t=C(e=>e.setHighlightSectionNames),l=C(e=>e.setHighlightElements),i=C(e=>e.highlightSectionNames),n=C(e=>e.highlightElements),{context:r,matchedSection:a,matchedElement:o}=e,{size:c,screenshotBase64:h}=r,u=c.width,m=c.height,v=(0,d.useRef)(null),g=(0,d.useMemo)(()=>new p.MxU,[]),[f,x]=(0,d.useState)(!1),y=(0,d.useMemo)(()=>new p.W20,[]),j=(0,d.useMemo)(()=>new p.W20,[]),b=(0,d.useRef)(),{bgVisible:w,setBgVisible:k,textsVisible:N,setTextsVisible:O}=_();(0,d.useEffect)(()=>(Promise.resolve(K(void 0,null,function*(){if(!v.current||!u)return;yield g.init({width:u,height:m,background:16777215});let e=v.current;v.current.appendChild(g.canvas);let{clientWidth:t}=v.current.parentElement,l=.7*window.innerHeight;if(u/m<=t/l){let t=l/m;e.style.width=`${Math.floor(u*t)}px`,e.style.height=`${Math.floor(m*t)}px`}g.stage.addChild(y),g.stage.addChild(j),x(!0)})),()=>{console.log("will destroy");try{g.destroy(!0,{children:!0,texture:!0})}catch(e){console.warn("destroy failed",e)}}),[g,u,m]),(0,d.useEffect)(()=>{if(!f)return;let e=new Image;e.src=h,e.onload=()=>{let t=p.xEZ.from(e),l=new p.jyi(t);l.x=0,l.y=0,l.width=u,l.height=m,g.stage.addChildAt(l,0),b.current=l,l.alpha=w?.8:.3}},[g.stage,f]);let M=(e,t,l,s,i,n)=>{let{left:r,top:a,width:o,height:c}=e,d=new p.TCu;d.beginFill(l,s),d.lineStyle(1,l,1),d.drawRect(r,a,o,c),d.endFill(),d.interactive=!0,d.on("pointerover",i),d.on("pointerout",n);let h=new p.xvT(t,{fontSize:18,fill:0});return h.x=r,h.y=Math.max(a-22,0),[d,h]},{highlightSectionRects:S,highlightElementRects:E}=(0,d.useMemo)(()=>{let e=[],s=[];return y.removeChildren(),j.removeChildren(),a.forEach(l=>{let s=i.includes(l.name);s&&e.push(l.rect);let[n,r]=M(l.rect,l.name,s?B("section"):G("section",l.name),s?1:.3,()=>{t([l.name])},()=>{t([])});y.addChild(n),j.addChild(r)}),n.forEach(e=>{let{rect:t}=e;if(s.push(t),o.includes(e))return;let[l,i]=M(t,"",B("element"),1,Y,Y);y.addChild(l),j.addChild(i)}),o.forEach(e=>{let{rect:t,content:s}=e,i=n.includes(e),[r,a]=M(t,s,i?B("element"):G("element",s),i?1:.3,()=>{l([e])},()=>{l([])});y.addChild(r),j.addChild(a)}),a.forEach(e=>{let{content:t}=e,l=i.includes(e.name)?"#FFFFFF":G("section",e.name);t.forEach(e=>{let{content:t,rect:s}=e,{left:i,top:n}=s,r=new p.pn8({wordWrap:!0,wordWrapWidth:s.width,fontSize:18,fill:l}),a=new p.xvT(t,r);a.x=i,a.y=n,j.addChild(a);let o=new p.TCu;o.beginFill(11184810,.2),o.lineStyle(1,0,1),o.drawRect(i,n,s.width,s.height),o.endFill(),j.addChild(o)})}),j.visible=N,{highlightSectionRects:e,highlightElementRects:s}},[g,f,a,i,n]),P=null;1===E.length?P=(0,s.jsx)("div",{className:"bottom-tip",children:(0,s.jsxs)("div",{className:"bottom-tip-item",children:["Element: ",JSON.stringify(E[0])]})}):E.length>1&&(P=(0,s.jsx)("div",{className:"bottom-tip",children:(0,s.jsxs)("div",{className:"bottom-tip-item",children:["Element: ",JSON.stringify(E)]})}));let T=null;return 1===S.length?T=(0,s.jsx)("div",{className:"bottom-tip",children:(0,s.jsxs)("div",{className:"bottom-tip-item",children:["Section: ",JSON.stringify(S[0])]})}):S.length>1&&(T=(0,s.jsx)("div",{className:"bottom-tip",children:(0,s.jsxs)("div",{className:"bottom-tip-item",children:["Sections: ",JSON.stringify(S)]})})),(0,s.jsxs)("div",{className:"blackboard",children:[(0,s.jsx)("div",{className:"blackboard-main-content",style:{width:"100%"},ref:v}),(0,s.jsx)("div",{className:"blackboard-filter",children:(0,s.jsxs)("div",{className:"overlay-control",children:[(0,s.jsx)($.Z,{checked:w,onChange:e=>{k(e.target.checked),b.current&&(b.current.alpha=e.target.checked?.8:.3)},children:"Screenshot"}),(0,s.jsx)($.Z,{checked:N,onChange:e=>{O(e.target.checked),j.visible=e.target.checked},children:"Text Mark"})]})}),(0,s.jsxs)("div",{className:"bottom-tip",children:[P,T]})]})};let q=l("6020"),Q=l.n(q);function ee(e){return e?Q()(e).format("YYYY-MM-DD HH:mm:ss"):"-"}function et(e){return e.subType?`${e.type} / ${e.subType||""}`:e.type}Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable;let el=e=>(0,s.jsxs)("div",{className:"screenshot-item",children:[(0,s.jsx)("div",{className:"screenshot-item-title",children:e.time}),(0,s.jsx)("div",{children:(0,s.jsx)("img",{src:e.img})})]}),es="blackboard",ei="screenshot",en="json";var er=()=>{var e;let t;let l=C(e=>e._loadId),i=!!l,n=N(e=>e.activeTask),[r,a]=(0,d.useState)(es),o=r!==es||l?r:ei;if(n){if(o===en)t=(0,s.jsx)("div",{className:"json-content",children:JSON.stringify(n,void 0,2).replace(/data:image\/[^"]+"/g,'data:image..."')});else o===es?t=l?(0,s.jsx)(X,{},`${l}`):(0,s.jsx)("div",{children:"invalid view"}):o===ei&&(t=(null==(e=n.recorder)?void 0:e.length)?(0,s.jsx)("div",{children:n.recorder.filter(e=>e.screenshot).map((e,t)=>{let l=ee(e.ts),i=e.timing?`${l} / ${e.timing}`:l;return(0,s.jsx)(el,{time:i,img:e.screenshot},t)})}):(0,s.jsx)("div",{children:"no screenshot"}))}else t=(0,s.jsx)("div",{children:"please select a task"});(0,d.useEffect)(()=>{let e=e=>{"Tab"===e.key&&(o===es?a(ei):o===ei?a(en):a(i?es:ei),e.preventDefault())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}});let h=[{label:"Screenshots",value:ei,icon:(0,s.jsx)(A.Z,{})},{label:"JSON View",value:en,icon:(0,s.jsx)(I.Z,{})}];return i&&h.unshift({label:"Visualization",value:es,icon:(0,s.jsx)(W.Z,{})}),(0,s.jsxs)("div",{className:"detail-panel",children:[(0,s.jsx)("div",{className:"view-switcher",children:(0,s.jsx)(c.ZP,{theme:{components:{Segmented:{itemSelectedBg:"#D7D7D7",itemSelectedColor:"#000000"}}},children:(0,s.jsx)(D.Z,{options:h,value:o,onChange:e=>{a(e)}})})}),(0,s.jsx)("div",{className:"detail-content",children:t})]})},ea=Object.defineProperty,eo=Object.defineProperties,ec=Object.getOwnPropertyDescriptors,ed=Object.getOwnPropertySymbols,eh=Object.prototype.hasOwnProperty,eu=Object.prototype.propertyIsEnumerable,ep=(e,t,l)=>t in e?ea(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,em=(e,t)=>{for(var l in t||(t={}))eh.call(t,l)&&ep(e,l,t[l]);if(ed)for(var l of ed(t))eu.call(t,l)&&ep(e,l,t[l]);return e},ev=(e,t)=>eo(e,ec(t)),eg=e=>(0,s.jsxs)("svg",ev(em({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",xmlSpace:"preserve",width:535.041,height:203.6,style:{shapeRendering:"geometricPrecision",textRendering:"geometricPrecision",imageRendering:"optimizeQuality",fillRule:"evenodd",clipRule:"evenodd"},viewBox:"0 0 16897.65 6430.11"},e),{children:[(0,s.jsxs)("defs",{children:[(0,s.jsxs)("linearGradient",{id:"logo-plain_svg__id0",x1:11103.21,x2:10930.41,y1:5027.34,y2:1211.98,gradientUnits:"userSpaceOnUse",children:[(0,s.jsx)("stop",{offset:0,style:{stopOpacity:1,stopColor:"#0a77d4"}}),(0,s.jsx)("stop",{offset:1,style:{stopOpacity:1,stopColor:"#00b1e0"}})]}),(0,s.jsx)("linearGradient",{xlinkHref:"#logo-plain_svg__id0",id:"logo-plain_svg__id1",x1:11407.32,x2:11286.4,y1:5023.83,y2:1215.5,gradientUnits:"userSpaceOnUse"}),(0,s.jsxs)("linearGradient",{id:"logo-plain_svg__id2",x1:6311.87,x2:3547.5,y1:4699.25,y2:1677.39,gradientUnits:"userSpaceOnUse",children:[(0,s.jsx)("stop",{offset:0,style:{stopOpacity:1,stopColor:"#f65926"}}),(0,s.jsx)("stop",{offset:1,style:{stopOpacity:1,stopColor:"#f0ab1f"}})]}),(0,s.jsxs)("linearGradient",{id:"logo-plain_svg__id3",x1:3105.35,x2:2612.67,y1:5075.61,y2:1311.04,gradientUnits:"userSpaceOnUse",children:[(0,s.jsx)("stop",{offset:0,style:{stopOpacity:1,stopColor:"#e52652"}}),(0,s.jsx)("stop",{offset:1,style:{stopOpacity:1,stopColor:"#ff4956"}})]}),(0,s.jsxs)("linearGradient",{id:"logo-plain_svg__id4",x1:14599.77,x2:12e3,y1:4808.34,y2:1573.25,gradientUnits:"userSpaceOnUse",children:[(0,s.jsx)("stop",{offset:0,style:{stopOpacity:1,stopColor:"#02c0a7"}}),(0,s.jsx)("stop",{offset:1,style:{stopOpacity:1,stopColor:"#02e097"}})]}),(0,s.jsx)("style",{children:".logo-plain_svg__fil8{fill:#fefefe}"})]}),(0,s.jsx)("g",{id:"logo-plain_svg__\\u56FE\\u5C42_x0020_1",children:(0,s.jsxs)("g",{id:"logo-plain_svg___1978240863120",children:[(0,s.jsx)("path",{d:"M2921.92 814.37h2943.46c660.05 0 1200.11 540.04 1200.11 1200.11v669.56c-180.23 1562.84-842.69 2686.31-2539.2 2867.65h-656.9c-1403.42-112.59-2125.37-923.3-2147.58-2450.77V2014.48c0-660.07 540.04-1200.11 1200.11-1200.11z",style:{fill:"none",stroke:"#e62129",strokeWidth:23.87,strokeMiterlimit:22.9256}}),(0,s.jsx)("path",{d:"M908.05 649.1c172.38 0 312.1 139.73 312.1 312.1 0 172.38-139.73 312.1-312.1 312.1-172.38 0-312.1-139.73-312.1-312.1 0-172.38 139.73-312.1 312.1-312.1zm15081.56 0c-172.38 0-312.1 139.73-312.1 312.1 0 172.38 139.73 312.1 312.1 312.1 172.38 0 312.1-139.73 312.1-312.1 0-172.38-139.73-312.1-312.1-312.1zM16304.76.03H11565.2c-332.34-.73-635.61 30.83-892.17 114.33-1164.61 314.95-1684.86 539.69-2204.5 542.55-529.24 2.92-1057.71-221.77-2243.89-542.55C5968.08 30.86 5664.81-.7 5332.47.03H592.91C266.8.03.01 266.82.01 592.93v727.65c0 326.11 262.25 574.15 588.16 562.9 244.44-8.44 379.43 161.6 368.56 407.41v1401.3c844.04 3884.05 6459.63 3705.54 6872.25-983.68 37.55-479.97 225.37-745.7 619.85-795.03 394.48 49.33 582.3 315.06 619.85 795.03 221.1 2512.67 1570.99 3564.6 3624.76 3705.62 1575.25-121.99 2822.57-766.6 3247.49-2721.94v-1401.3c-10.86-245.81 124.13-415.84 368.56-407.41 325.91 11.24 588.16-236.8 588.16-562.9V592.93c0-326.11-266.79-592.9-592.9-592.9z",style:{fill:"#332c2b"}}),(0,s.jsx)("path",{d:"M4404.53 5551.69h138.96c1696.5-181.34 2358.97-1304.82 2539.2-2867.65v-669.56c0-660.07-540.06-1200.11-1200.11-1200.11H2939.12c-660.07 0-1200.11 540.04-1200.11 1200.11v1086.44c22.21 1527.47 744.16 2338.19 2147.58 2450.77h517.94z",style:{fill:"#f63d55"}}),(0,s.jsx)("path",{d:"M2884.03 3833.6c-562.03-552.91 337.59-1229.84 756.52-784.77l-668.1-718.53C2724 1698.38 2875.6 1176.8 3604.09 814.36h-682.18c-660.07 0-1200.11 540.04-1200.11 1200.11v1086.44c22.21 1527.47 744.16 2338.19 2147.58 2450.77h517.94c447.09-261.52 828.85-610.16 1124.32-1073.8-192.91 108.48-371.35 123.1-530.58 12.63-269.77 225.61-533.22 868.1-809.3 676.82L2884.01 3833.59z",style:{fill:"url(#logo-plain_svg__id3)"}}),(0,s.jsx)("path",{d:"M12967.79 5585.01c1654.02-184.97 2231.4-1330.91 2306.7-2925.01l-43.57-682.94c-42.95-673.27-608.37-1224.11-1256.49-1224.11H11084.21c-648.13 0-1143.27 550.85-1100.32 1224.11l70.69 1108.16c121.19 1558.01 882.83 2384.94 2268.19 2499.78h645.03z",style:{fill:"url(#logo-plain_svg__id1)"}}),(0,s.jsx)("circle",{cx:3266.42,cy:4767.17,r:119.53,style:{fill:"#f3a04e"}}),(0,s.jsx)("path",{d:"M11243.45 3832.57c-587.85-563.96 251.45-1254.43 691.78-800.45l-702.77-732.9c-285.07-644.56-170.14-1176.57 521.59-1546.26h-669.84c-648.13 0-1143.27 550.85-1100.32 1224.11l70.69 1108.16c121.19 1558.01 882.83 2384.94 2268.19 2499.78h508.57c422-266.75 774.17-622.36 1034.13-1095.27-182.37 110.65-356.62 125.56-520.16 12.88-250.21 230.12-467.1 885.46-750.63 690.36l-1351.23-1360.42z",style:{fill:"url(#logo-plain_svg__id0)",stroke:"#06b1ab",strokeWidth:9.1,strokeMiterlimit:22.9256}}),(0,s.jsx)("path",{d:"M11754.05 752.96c-691.73 369.69-806.66 901.7-521.59 1546.26l702.77 732.9c-440.33-453.98-1279.63 236.49-691.78 800.45 1571.66 1582.35 780.78 887.85 1587.88 1752.45h136.46c1654.02-184.97 2231.4-1330.91 2306.7-2925.01l-43.57-682.94c-42.95-673.27-608.37-1224.11-1256.49-1224.11h-2220.38z",style:{fill:"url(#logo-plain_svg__id4)"}}),(0,s.jsx)("circle",{cx:13725.89,cy:2247.09,r:867.65,className:"logo-plain_svg__fil8"}),(0,s.jsx)("circle",{cx:11745.99,cy:4944.33,r:119.53,style:{fill:"#52c2f1"}}),(0,s.jsx)("path",{d:"M3604.1 814.37c-728.5 362.44-880.09 884.02-631.64 1515.94l668.1 718.53c-418.94-445.08-1318.56 231.85-756.52 784.77l1503.3 1718.08h138.96c1696.5-181.34 2358.97-1304.82 2539.2-2867.65v-669.56c0-660.07-540.06-1200.11-1200.11-1200.11H3604.11z",style:{fill:"url(#logo-plain_svg__id2)"}}),(0,s.jsx)("path",{d:"m3602.42 3012.57-2.01-1.79-1.22-1c-433.3-363.07-1259.33 288.49-715.16 823.82l1503.3 1718.08h138.96c366.16-39.14 684.05-122.25 959.42-244.11l-1883.3-2295z",style:{fill:"#f9483e"}}),(0,s.jsx)("circle",{cx:5652.09,cy:2247.09,r:867.65,className:"logo-plain_svg__fil8"}),(0,s.jsx)("circle",{cx:5669.32,cy:4261.82,r:86.65,style:{fill:"#f7b873"}}),(0,s.jsx)("circle",{cx:3775.08,cy:4120.55,r:174.77,className:"logo-plain_svg__fil8"}),(0,s.jsx)("path",{d:"m11770.33 2919.17 123.64 74.69c7.2 5.99 14.32 12.27 21.35 18.8l1988.29 2318.88c-264.55 126.79-574.49 213.07-935.82 253.47h-136.46c-807.1-864.6-16.22-170.1-1587.88-1752.45-520.29-499.15 77.34-1097.23 526.88-913.39z",style:{fill:"#06b1ab"}}),(0,s.jsx)("circle",{cx:12254.65,cy:4297.71,r:174.77,className:"logo-plain_svg__fil8"})]})})]})),ef=()=>{var e;let t=(0,d.useRef)(null),l=N(e=>e.hoverTask),i=N(e=>e.hoverTimestamp),n=N(e=>e.hoverPreviewConfig),[r,a]=(0,d.useState)(400),[o,c]=(0,d.useState)(400),h=null==(e=null==l?void 0:l.recorder)?void 0:e.filter(e=>{let t=!!e.screenshot;return i&&(t=t&&e.ts>=i),t}).map(e=>e.screenshot),{x:u,y:p}=n||{},m=0,v=0,g=(null==h?void 0:h.length)&&void 0!==u&&void 0!==p;if(g){let{clientWidth:e,clientHeight:t}=document.body,l=r>=o?400:r/o*400,s=r>=o?o/r*400:400;m=u+l>e?e-l:u,v=p+s>t?t-s:p}return g?(0,s.jsx)("div",{className:"global-hover-preview",style:{left:m,top:v},ref:t,children:(null==h?void 0:h.length)?(0,s.jsx)("img",{src:h[0],onLoad:e=>{let t=e.target,l=t.naturalWidth,s=t.naturalHeight;a(l),c(s)}}):null}):null};let ex=l("91602"),ey=l("67535"),ej=l("22303"),eb=l("77350");var ew=e=>(0,s.jsx)("div",{children:(0,s.jsx)("div",{className:"task-list-name",children:e.title})});function ek(e){let t;return t="number"!=typeof e?"- ms":e>1e3?`${(e/1e3).toFixed(2)}s`:`${e}ms`,(0,s.jsx)("span",{style:{fontVariantNumeric:"tabular-nums",fontFeatureSettings:"tnum"},children:t})}var e_=Object.defineProperty,eN=Object.getOwnPropertySymbols,eO=Object.prototype.hasOwnProperty,eC=Object.prototype.propertyIsEnumerable,eM=(e,t,l)=>t in e?e_(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,eS=(e,t)=>{for(var l in t||(t={}))eO.call(t,l)&&eM(e,l,t[l]);if(eN)for(var l of eN(t))eC.call(t,l)&&eM(e,l,t[l]);return e};let eE=()=>{},eP=e=>{let{highlightWithColor:t,title:l,subtitle:i,onMouseEnter:n,onMouseLeave:r,content:a,characteristic:o}=e,c=e.characteristic?(0,s.jsx)("div",{className:"item-extra",children:(0,s.jsx)("div",{className:"title-tag",children:(0,s.jsx)(ey.Z,{placement:"bottomRight",title:o,mouseEnterDelay:0,children:(0,s.jsx)("span",{children:(0,s.jsx)(ex.Z,{})})})})}):null,d=e.characteristic?"title-right-padding":"",h=e.liteMode?"item-lite":"";return(0,s.jsxs)("div",{className:`item ${h} ${t?"item-highlight":""}`,style:eS({},t?{backgroundColor:t}:{}),onMouseEnter:n,onMouseLeave:r,children:[(0,s.jsxs)("div",{className:`title ${d}`,style:{display:l?"block":"none"},children:[l,c]}),(0,s.jsx)("div",{className:`subtitle ${d}`,style:{display:i?"block":"none"},children:i}),(0,s.jsx)("div",{className:"description",style:{display:a?"block":"none"},children:a})]})},eT=e=>(0,s.jsx)("div",{className:"meta-kv",children:e.data.map((e,t)=>(0,s.jsxs)("div",{className:"meta",children:[(0,s.jsx)("div",{className:"meta-key",children:e.key}),(0,s.jsx)("div",{className:"meta-value",children:e.content})]},t))}),eF=(e,t)=>Object.keys(e).reduce((l,s)=>(!t.includes(s)&&(l[s]=e[s]),l),{});var ez=()=>{var e,t,l,i,n,r,a,o;let c=N(e=>e.activeTask),d=C(e=>e.data),{matchedSection:h,matchedElement:u}=d||{},p=C(e=>e.highlightSectionNames),m=C(e=>e.highlightElements),v=C(e=>e.setHighlightSectionNames),g=C(e=>e.setHighlightElements),f=function(e){v([e])},x=function(e){g([e])},y=function(){v([])},j=function(){g([])},b=function(e){let t=e=>!!e&&"object"==typeof e&&void 0!==e.content&&!!e.center&&!!e.rect,l=e=>!!e&&void 0!==(null==e?void 0:e.sectionCharacteristics)&&void 0!==(null==e?void 0:e.rect),i=e=>(0,s.jsx)("span",{onMouseEnter:()=>{x(e)},onMouseLeave:j,children:(0,s.jsx)(ej.Z,{bordered:!1,color:"orange",className:"element-button",children:"Element"})}),n=e=>(0,s.jsx)("span",{onMouseEnter:()=>{f(e.name)},onMouseLeave:y,children:(0,s.jsx)(ej.Z,{bordered:!1,color:"blue",className:"section-button",children:"Section"})});return Array.isArray(e)||"object"!=typeof e?(0,s.jsx)("pre",{className:"description-content",children:JSON.stringify(e,void 0,2)}):Object.keys(e).map(r=>{let a;let o=e[r];return a="object"==typeof o&&t(o)?i(o):Array.isArray(o)&&o.some(e=>t(e))?o.map((e,t)=>(0,s.jsx)("span",{children:i(e)},t)):"object"==typeof o&&l(o)?n(o):Array.isArray(o)&&o.some(e=>l(e))?o.map((e,t)=>(0,s.jsx)("span",{children:n(e)},t)):"string"==typeof o?o:JSON.stringify(o,void 0,2),(0,s.jsxs)("pre",{className:"description-content",children:[r,":\xa0",a]},r)})},w=eT({data:[{key:"status",content:(null==c?void 0:c.status)||""},{key:"start",content:ee(null==(e=null==c?void 0:c.timing)?void 0:e.start)},{key:"end",content:ee(null==(t=null==c?void 0:c.timing)?void 0:t.end)},{key:"time cost",content:ek(null==(l=null==c?void 0:c.timing)?void 0:l.cost)}]}),k=null;(null==c?void 0:c.type)==="Planning"?k=eT({data:[{key:"type",content:c&&et(c)||""},{key:"param",content:null==(i=null==c?void 0:c.param)?void 0:i.userPrompt}]}):(null==c?void 0:c.type)==="Insight"?k=eT({data:[{key:"type",content:c&&et(c)||""},{key:"param",content:JSON.stringify((null==(n=null==c?void 0:c.param)?void 0:n.prompt)||(null==(r=null==c?void 0:c.param)?void 0:r.dataDemand))}]}):(null==c?void 0:c.type)==="Action"&&(k=eT({data:[{key:"type",content:c&&et(c)||""},{key:"value",content:JSON.stringify(null==(a=null==c?void 0:c.param)?void 0:a.value,void 0,2)}]}));let _=(null==h?void 0:h.length)?h.map(e=>{let{name:t}=e,l=p.includes(t),i=eF(e,["name","description","texts","rect","sectionCharacteristics"]),n=Object.keys(i).length?b(i):null,r=l?B("section"):void 0;return(0,s.jsx)(eP,{title:e.name,highlightWithColor:r,subtitle:e.description,characteristic:e.sectionCharacteristics,onMouseEnter:f.bind(void 0,t),onMouseLeave:y,content:n},t)}):null,O=(null==u?void 0:u.length)?u.map((e,t)=>{let l=m.includes(e)?B("element"):void 0,i=b(eF(e,["content","rect","center","left","top","right","bottom","locator"]));return(0,s.jsx)(eP,{title:e.content,highlightWithColor:l,subtitle:"",onMouseEnter:x.bind(void 0,e),onMouseLeave:j,content:i},t)}):null,M=(null==d?void 0:d.error)?(0,s.jsx)(eP,{liteMode:!0,title:"Error",onMouseEnter:eE,onMouseLeave:eE,content:(0,s.jsx)("pre",{className:"description-content",style:{color:"#F00"},children:d.error})}):null,S=(null==d?void 0:d.data)?(0,s.jsx)(eP,{liteMode:!0,onMouseEnter:eE,onMouseLeave:eE,content:(0,s.jsx)("pre",{children:JSON.stringify(d.data,void 0,2)})}):null;console.log("dump is",d);let E=null==(o=null==c?void 0:c.output)?void 0:o.plans,P=[];return E&&(P=P.concat(E.map(e=>({color:"#06B1AB",children:(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("p",{children:(0,s.jsx)("b",{children:et(e)})}),(0,s.jsx)("p",{children:e.thought}),(0,s.jsx)("p",{children:e.param?JSON.stringify(e.param||{},void 0,2):null})]})})))),(0,s.jsxs)("div",{className:"detail-side",children:[(0,s.jsx)(ew,{title:"Task Meta"}),w,(0,s.jsx)(ew,{title:"Param"}),k,(0,s.jsx)(ew,{title:"Output"}),(0,s.jsxs)("div",{className:"item-list item-list-space-up",children:[M,S,_,O,(0,s.jsx)(eb.Z,{items:P})]})]})};let eH=l("79083"),eR=l("74164"),eL=l("30294"),eU=l("55942"),eZ=l("84867"),eD=l("80116");var eA=Object.defineProperty,eI=Object.defineProperties,eW=Object.getOwnPropertyDescriptors,e$=Object.getOwnPropertySymbols,eV=Object.prototype.hasOwnProperty,eJ=Object.prototype.propertyIsEnumerable,eG=(e,t,l)=>t in e?eA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,eB=(e,t)=>{for(var l in t||(t={}))eV.call(t,l)&&eG(e,l,t[l]);if(e$)for(var l of e$(t))eJ.call(t,l)&&eG(e,l,t[l]);return e},eK=(e,t)=>eI(e,eW(t)),eY=e=>(0,s.jsxs)("svg",eK(eB({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",xmlSpace:"preserve",width:535.041,height:203.6,style:{shapeRendering:"geometricPrecision",textRendering:"geometricPrecision",imageRendering:"optimizeQuality",fillRule:"evenodd",clipRule:"evenodd"},viewBox:"0 0 16897.65 6430.11"},e),{children:[(0,s.jsxs)("defs",{children:[(0,s.jsxs)("linearGradient",{id:"logo-plain2_svg__id0",x1:11103.21,x2:10930.41,y1:5027.34,y2:1211.98,gradientUnits:"userSpaceOnUse",children:[(0,s.jsx)("stop",{offset:0,style:{stopOpacity:1,stopColor:"#0a77d4"}}),(0,s.jsx)("stop",{offset:1,style:{stopOpacity:1,stopColor:"#00b1e0"}})]}),(0,s.jsx)("linearGradient",{xlinkHref:"#logo-plain2_svg__id0",id:"logo-plain2_svg__id1",x1:11407.32,x2:11286.4,y1:5023.83,y2:1215.5,gradientUnits:"userSpaceOnUse"}),(0,s.jsxs)("linearGradient",{id:"logo-plain2_svg__id2",x1:6311.87,x2:3547.5,y1:4699.25,y2:1677.39,gradientUnits:"userSpaceOnUse",children:[(0,s.jsx)("stop",{offset:0,style:{stopOpacity:1,stopColor:"#f65926"}}),(0,s.jsx)("stop",{offset:1,style:{stopOpacity:1,stopColor:"#f0ab1f"}})]}),(0,s.jsxs)("linearGradient",{id:"logo-plain2_svg__id3",x1:3105.35,x2:2612.67,y1:5075.61,y2:1311.04,gradientUnits:"userSpaceOnUse",children:[(0,s.jsx)("stop",{offset:0,style:{stopOpacity:1,stopColor:"#e52652"}}),(0,s.jsx)("stop",{offset:1,style:{stopOpacity:1,stopColor:"#ff4956"}})]}),(0,s.jsxs)("linearGradient",{id:"logo-plain2_svg__id4",x1:14599.77,x2:12e3,y1:4808.34,y2:1573.25,gradientUnits:"userSpaceOnUse",children:[(0,s.jsx)("stop",{offset:0,style:{stopOpacity:1,stopColor:"#02c0a7"}}),(0,s.jsx)("stop",{offset:1,style:{stopOpacity:1,stopColor:"#02e097"}})]}),(0,s.jsx)("style",{children:".logo-plain2_svg__fil8{fill:#fefefe}"})]}),(0,s.jsx)("g",{id:"logo-plain2_svg__\\u56FE\\u5C42_x0020_1",children:(0,s.jsxs)("g",{id:"logo-plain2_svg___1978240863120",children:[(0,s.jsx)("path",{d:"M2921.92 814.37h2943.46c660.05 0 1200.11 540.04 1200.11 1200.11v669.56c-180.23 1562.84-842.69 2686.31-2539.2 2867.65h-656.9c-1403.42-112.59-2125.37-923.3-2147.58-2450.77V2014.48c0-660.07 540.04-1200.11 1200.11-1200.11z",style:{fill:"none",stroke:"#e62129",strokeWidth:23.87,strokeMiterlimit:22.9256}}),(0,s.jsx)("path",{d:"M908.05 649.1c172.38 0 312.1 139.73 312.1 312.1 0 172.38-139.73 312.1-312.1 312.1-172.38 0-312.1-139.73-312.1-312.1 0-172.38 139.73-312.1 312.1-312.1zm15081.56 0c-172.38 0-312.1 139.73-312.1 312.1 0 172.38 139.73 312.1 312.1 312.1 172.38 0 312.1-139.73 312.1-312.1 0-172.38-139.73-312.1-312.1-312.1zM16304.76.03H11565.2c-332.34-.73-635.61 30.83-892.17 114.33-1164.61 314.95-1684.86 539.69-2204.5 542.55-529.24 2.92-1057.71-221.77-2243.89-542.55C5968.08 30.86 5664.81-.7 5332.47.03H592.91C266.8.03.01 266.82.01 592.93v727.65c0 326.11 262.25 574.15 588.16 562.9 244.44-8.44 379.43 161.6 368.56 407.41v1401.3c844.04 3884.05 6459.63 3705.54 6872.25-983.68 37.55-479.97 225.37-745.7 619.85-795.03 394.48 49.33 582.3 315.06 619.85 795.03 221.1 2512.67 1570.99 3564.6 3624.76 3705.62 1575.25-121.99 2822.57-766.6 3247.49-2721.94v-1401.3c-10.86-245.81 124.13-415.84 368.56-407.41 325.91 11.24 588.16-236.8 588.16-562.9V592.93c0-326.11-266.79-592.9-592.9-592.9z",style:{fill:"#332c2b"}}),(0,s.jsx)("path",{d:"M4404.53 5551.69h138.96c1696.5-181.34 2358.97-1304.82 2539.2-2867.65v-669.56c0-660.07-540.06-1200.11-1200.11-1200.11H2939.12c-660.07 0-1200.11 540.04-1200.11 1200.11v1086.44c22.21 1527.47 744.16 2338.19 2147.58 2450.77h517.94z",style:{fill:"#f63d55"}}),(0,s.jsx)("path",{d:"M2884.03 3833.6c-562.03-552.91 337.59-1229.84 756.52-784.77l-668.1-718.53C2724 1698.38 2875.6 1176.8 3604.09 814.36h-682.18c-660.07 0-1200.11 540.04-1200.11 1200.11v1086.44c22.21 1527.47 744.16 2338.19 2147.58 2450.77h517.94c447.09-261.52 828.85-610.16 1124.32-1073.8-192.91 108.48-371.35 123.1-530.58 12.63-269.77 225.61-533.22 868.1-809.3 676.82L2884.01 3833.59z",style:{fill:"url(#logo-plain2_svg__id3)"}}),(0,s.jsx)("path",{d:"M12967.79 5585.01c1654.02-184.97 2231.4-1330.91 2306.7-2925.01l-43.57-682.94c-42.95-673.27-608.37-1224.11-1256.49-1224.11H11084.21c-648.13 0-1143.27 550.85-1100.32 1224.11l70.69 1108.16c121.19 1558.01 882.83 2384.94 2268.19 2499.78h645.03z",style:{fill:"url(#logo-plain2_svg__id1)"}}),(0,s.jsx)("circle",{cx:3266.42,cy:4767.17,r:119.53,style:{fill:"#f3a04e"}}),(0,s.jsx)("path",{d:"M11243.45 3832.57c-587.85-563.96 251.45-1254.43 691.78-800.45l-702.77-732.9c-285.07-644.56-170.14-1176.57 521.59-1546.26h-669.84c-648.13 0-1143.27 550.85-1100.32 1224.11l70.69 1108.16c121.19 1558.01 882.83 2384.94 2268.19 2499.78h508.57c422-266.75 774.17-622.36 1034.13-1095.27-182.37 110.65-356.62 125.56-520.16 12.88-250.21 230.12-467.1 885.46-750.63 690.36l-1351.23-1360.42z",style:{fill:"url(#logo-plain2_svg__id0)",stroke:"#06b1ab",strokeWidth:9.1,strokeMiterlimit:22.9256}}),(0,s.jsx)("path",{d:"M11754.05 752.96c-691.73 369.69-806.66 901.7-521.59 1546.26l702.77 732.9c-440.33-453.98-1279.63 236.49-691.78 800.45 1571.66 1582.35 780.78 887.85 1587.88 1752.45h136.46c1654.02-184.97 2231.4-1330.91 2306.7-2925.01l-43.57-682.94c-42.95-673.27-608.37-1224.11-1256.49-1224.11h-2220.38z",style:{fill:"url(#logo-plain2_svg__id4)"}}),(0,s.jsx)("circle",{cx:13725.89,cy:2247.09,r:867.65,className:"logo-plain2_svg__fil8"}),(0,s.jsx)("circle",{cx:11745.99,cy:4944.33,r:119.53,style:{fill:"#52c2f1"}}),(0,s.jsx)("path",{d:"M3604.1 814.37c-728.5 362.44-880.09 884.02-631.64 1515.94l668.1 718.53c-418.94-445.08-1318.56 231.85-756.52 784.77l1503.3 1718.08h138.96c1696.5-181.34 2358.97-1304.82 2539.2-2867.65v-669.56c0-660.07-540.06-1200.11-1200.11-1200.11H3604.11z",style:{fill:"url(#logo-plain2_svg__id2)"}}),(0,s.jsx)("path",{d:"m3602.42 3012.57-2.01-1.79-1.22-1c-433.3-363.07-1259.33 288.49-715.16 823.82l1503.3 1718.08h138.96c366.16-39.14 684.05-122.25 959.42-244.11l-1883.3-2295z",style:{fill:"#f9483e"}}),(0,s.jsx)("circle",{cx:5652.09,cy:2247.09,r:867.65,className:"logo-plain2_svg__fil8"}),(0,s.jsx)("circle",{cx:5669.32,cy:4261.82,r:86.65,style:{fill:"#f7b873"}}),(0,s.jsx)("circle",{cx:3775.08,cy:4120.55,r:174.77,className:"logo-plain2_svg__fil8"}),(0,s.jsx)("path",{d:"m11770.33 2919.17 123.64 74.69c7.2 5.99 14.32 12.27 21.35 18.8l1988.29 2318.88c-264.55 126.79-574.49 213.07-935.82 253.47h-136.46c-807.1-864.6-16.22-170.1-1587.88-1752.45-520.29-499.15 77.34-1097.23 526.88-913.39z",style:{fill:"#06b1ab"}}),(0,s.jsx)("circle",{cx:12254.65,cy:4297.71,r:174.77,className:"logo-plain2_svg__fil8"})]})})]}));let eX=e=>{var t,l,i;let n;let{task:r,onClick:a,selected:o}=e,c=(0,s.jsx)(eH.Z,{});"success"===r.status?c=(0,s.jsx)(eR.Z,{}):"fail"===r.status?c=(0,s.jsx)(eL.Z,{}):"pending"===r.status?c=(0,s.jsx)(eU.Z,{}):"cancelled"===r.status?c=(0,s.jsx)(eZ.Z,{}):"running"===r.status&&(c=(0,s.jsx)(eD.Z,{}));let d=r.status;if((null==(t=r.timing)?void 0:t.cost)&&(d=ek(r.timing.cost)),"Planning"===r.type)n=(0,s.jsx)("div",{className:"side-item-content",children:null==(l=r.param)?void 0:l.userPrompt});else if("Insight"===r.type&&"Query"===r.subType){let e=null==(i=r.param)?void 0:i.dataDemand,t="string"==typeof e?e:JSON.stringify(e);n=(0,s.jsx)("div",{className:"side-item-content",children:t})}return(0,s.jsxs)("div",{className:`side-item ${o?"selected":""}`,onClick:a,onMouseEnter:t=>{var l;let s=t.currentTarget.getBoundingClientRect(),i=s.left+s.width,n=s.top;null==(l=e.onItemHover)||l.call(e,r,i,n)},onMouseLeave:()=>{var t;null==(t=e.onItemHover)||t.call(e,null)},children:[" ",(0,s.jsxs)("div",{className:"side-item-name",children:[(0,s.jsx)("span",{className:`status-icon status-icon-${r.status}`,children:c}),(0,s.jsx)("div",{className:"title",children:et(r)}),(0,s.jsx)("div",{className:"status-text",children:d})]}),n]})};var eq=e=>{let t=N(e=>e.dump),l=N(e=>e.setActiveTask),i=N(e=>e.activeTask),n=N(e=>e.setHoverTask),r=N(e=>e.setHoverPreviewConfig),a=N(e=>e.reset),c=O(),h=null==c?void 0:c.findIndex(e=>e===i);(0,d.useEffect)(()=>{let e=e=>{if(!!(null==c?void 0:c.length)&&!((null==c?void 0:c.length)<=1)){if("ArrowUp"===e.key&&(e.metaKey||e.ctrlKey)){e.preventDefault();let t=h-1;if(t<0)return;l(c[t])}else if("ArrowDown"===e.key&&(e.metaKey||e.ctrlKey)){e.preventDefault();let t=h+1;if(t>=c.length)return;l(c[t])}}};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[h,c,l]);let u=(null==t?void 0:t.length)?t.map((e,t)=>{let a=e.executions.map((e,t)=>{let a;let{tasks:o}=e,c=o.map((e,t)=>(0,s.jsx)(eX,{task:e,selected:e===i,onClick:()=>{l(e)},onItemHover:(e,t,l)=>{e&&t&&l?(r({x:t,y:l}),n(e)):(r(null),n(null))}},t));if(0===t)a=(0,s.jsx)("div",{className:"side-seperator side-seperator-space-up"});else a=(0,s.jsx)("div",{className:"side-seperator side-seperator-line side-seperator-space-up side-seperator-space-down"});return(0,s.jsxs)("div",{children:[a,(0,s.jsx)("div",{className:"side-sub-title",children:e.name}),c]},t)});return(0,s.jsxs)("div",{children:[(0,s.jsx)(ew,{title:e.groupName}),a]},t)}):(0,s.jsx)("span",{children:"no tasks"});return(0,s.jsxs)("div",{className:"side-bar",children:[(0,s.jsxs)("div",{className:"top-controls",children:[(0,s.jsx)("div",{className:"brand",onClick:a,style:{display:(null==e?void 0:e.hideLogo)?"none":"flex"},children:(0,s.jsx)(eY,{style:{width:70,height:70,margin:"auto"},onClick:()=>{e.logoAction?e.logoAction():location.reload()}})}),(0,s.jsx)("div",{className:"task-list",children:u}),(0,s.jsx)("div",{className:"side-seperator side-seperator-line side-seperator-space-up"}),(0,s.jsx)("div",{className:"task-meta-section",children:(0,s.jsx)("div",{className:"task-meta",children:"use Command + \u2B06\uFE0E / \u2B07\uFE0E to switch"})})]}),(0,s.jsx)("div",{className:"bottom-controls",children:(0,s.jsx)(o.ZP,{onClick:a,type:"text",className:"unload_btn",children:"Unload"})})]})},eQ=Object.defineProperty,e1=Object.defineProperties,e0=Object.getOwnPropertyDescriptors,e2=Object.getOwnPropertySymbols,e3=Object.prototype.hasOwnProperty,e5=Object.prototype.propertyIsEnumerable,e6=(e,t,l)=>t in e?eQ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[t]=l,e4=(e,t)=>{for(var l in t||(t={}))e3.call(t,l)&&e6(e,l,t[l]);if(e2)for(var l of e2(t))e5.call(t,l)&&e6(e,l,t[l]);return e},e8=(e,t)=>e1(e,e0(t));let{Dragger:e7}=r.Z,e9=1;function te(e){let t;let{dump:l}=e,i=N(e=>e.dump),n=N(e=>e.setGroupedDump),r=N(e=>e.reset),[p,m]=(0,d.useState)(0),v=(0,d.useRef)(!1);(0,d.useEffect)(()=>(l&&n(l),()=>{r()}),[]),(0,d.useEffect)(()=>{let e=()=>{m(e=>e+1)};return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[]);t=i?(0,s.jsxs)(u.eh,{autoSaveId:"main-page-layout",direction:"horizontal",onLayout:()=>{!v.current&&m(e=>e+1)},children:[(0,s.jsx)(u.s_,{maxSize:95,defaultSize:20,children:(0,s.jsx)(eq,{hideLogo:null==e?void 0:e.hideLogo,logoAction:null==e?void 0:e.logoAction})}),(0,s.jsx)(u.OT,{onDragging:e=>{v.current&&!e&&m(e=>e+1),v.current=e}}),(0,s.jsx)(u.s_,{defaultSize:80,maxSize:95,children:(0,s.jsxs)("div",{className:"main-right",children:[(0,s.jsx)(Z,{},p),(0,s.jsx)("div",{className:"main-content",children:(0,s.jsxs)(u.eh,{autoSaveId:"page-detail-layout",direction:"horizontal",children:[(0,s.jsx)(u.s_,{maxSize:95,children:(0,s.jsx)("div",{className:"main-side",children:(0,s.jsx)(ez,{})})}),(0,s.jsx)(u.OT,{}),(0,s.jsx)(u.s_,{defaultSize:75,maxSize:95,children:(0,s.jsx)("div",{className:"main-canvas-container",children:(0,s.jsx)(er,{})})})]})})]})})]}):(0,s.jsxs)("div",{className:"main-right uploader-wrapper",children:[(0,s.jsxs)(e7,e8(e4({className:"uploader"},{name:"file",multiple:!1,capture:!1,customRequest:()=>{},beforeUpload(e){if(!e.name.endsWith("web-dump.json"))return a.ZP.error("invalid file extension"),!1;let t=new FileReader;return t.readAsText(e),t.onload=e=>{var t;let l=null==(t=e.target)?void 0:t.result;if("string"==typeof l)try{let e=JSON.parse(l);n(e)}catch(e){console.error(e),a.ZP.error("failed to parse dump data",e.message)}else a.ZP.error("Invalid dump file")},!1}}),{children:[(0,s.jsx)("p",{className:"ant-upload-drag-icon",children:(0,s.jsx)(eg,{style:{width:100,height:100,margin:"auto"}})}),(0,s.jsxs)("p",{className:"ant-upload-text",children:["Click or drag the"," ",(0,s.jsx)("b",{children:(0,s.jsx)("i",{children:".web-dump.json"})})," ","file into this area."]}),(0,s.jsxs)("p",{className:"ant-upload-text",children:["The latest dump file is usually placed in"," ",(0,s.jsx)("b",{children:(0,s.jsx)("i",{children:"./midscene_run/"})})]}),(0,s.jsx)("p",{className:"ant-upload-text",children:"All data will be processed locally by the browser. No data will be sent to the server."})]})),(0,s.jsxs)("div",{className:"demo-loader",children:[(0,s.jsx)(o.ZP,{type:"link",onClick:()=>{},children:"Load Tasks Demo"}),(0,s.jsx)(o.ZP,{type:"link",onClick:()=>{},children:"Load Insight Demo"})]})]});let[g,f]=(0,d.useState)("100%");return(0,d.useEffect)(()=>{let e=document.querySelector(".rspress-nav"),t="--rp-nav-height",l=getComputedStyle(document.documentElement).getPropertyValue(t);return e&&(f("calc(100vh - 72px)"),document.documentElement.style.setProperty(t,"42px")),()=>{e&&document.documentElement.style.setProperty(t,l)}},[]),(0,d.useEffect)(()=>()=>{e9+=1},[]),(0,s.jsxs)(c.ZP,{theme:{components:{Layout:{headerHeight:60,headerPadding:"0 30px",headerBg:"#FFF",bodyBg:"#FFF"}}},children:[(0,s.jsx)(h.q,{children:(0,s.jsx)("title",{children:"MidScene.js - Visualization Tool"})}),(0,s.jsx)("div",{className:"page-container",style:{height:g},children:t},`render-${e9}`),(0,s.jsx)(ef,{})]})}function tt(){var e,t=(0,n.s0)(),[l,i]=(0,d.useState)(null),[r,a]=(0,d.useState)(!0),o=(null===(e=new URLSearchParams(window.location.search).get("dumpId"))||void 0===e?void 0:e.toString())||"";return(0,d.useEffect)(()=>{fetch("/public/".concat(o)).then(e=>{if(!e.ok)throw Error("HTTP error! Status: ".concat(e.status));return e.json()}).then(e=>{i(e),console.log("data",e)}).catch(e=>console.error("Error:",e)).finally(()=>{a(!1)})},[]),(0,s.jsx)("div",{className:"container-box",children:(0,s.jsxs)("div",{children:[(0,s.jsx)("main",{children:!r&&(0,s.jsx)(te,{dump:l,logoAction:()=>{t("/")}})}),(0,s.jsx)("div",{})]})})}let tl=l("64360"),ts=l("8808"),ti="nav-u66WwU",tn="container-Hq9bKt",tr="test-result-pnK7ny",ta="test-details-UpOFMM",to="test-info-AphlaH",tc="test-name-us3J87",td="test-file-path-BdYiH4";var th=e=>{switch(e){case"failed":return(0,s.jsx)("span",{className:"failed",children:"\u274C"});case"flaky":return(0,s.jsx)("span",{className:"flaky",children:"\u26A0\uFE0F"});default:return""}},tu=e=>{var t=(0,n.s0)(),l="all"===e.status?Object.keys(e.statusDataList).reduce((t,l)=>(t.push(...e.statusDataList[l]),t),[]):e.statusDataList[e.status],i=(null==l?void 0:l.reduce((e,t)=>(!e[t.location.file]&&(e[t.location.file]=[]),e[t.location.file].push(t),e),{}))||{},r=Object.keys(i).map((e,l)=>({key:l,label:e,children:i[e].map((e,l)=>{var i=Math.floor(e.duration/1e3/60),n=Math.floor(e.duration/1e3%60);return(0,s.jsxs)("div",{className:ta,onClick:()=>{t("/report?dumpId=".concat(e.dumpPath.split("/").pop()))},children:[(0,s.jsxs)("div",{className:to,children:[(0,s.jsxs)("span",{className:tc,children:[th(e.status),e.title]}),(0,s.jsxs)("span",{children:["duration: ",0!==i&&"".concat(i,"m")," ",n&&"".concat(n,"s")]})]}),(0,s.jsxs)("div",{className:td,children:[e.location.file,":",e.location.line]})]},l)})}));return(0,s.jsx)(tl.Z,{className:tr,activeKey:[...Array(r.length).keys()],items:r,onChange:e=>{console.log(e)}})},tp=e=>{var t,{stats:l,statusDataList:i}=e,r=new URLSearchParams(window.location.search),a=(0,n.s0)(),o=(null===(t=r.get("status"))||void 0===t?void 0:t.toString())||"",c=[{label:"All (".concat(l.total-l.skipped,")"),key:"all"},{label:"Passed (".concat(l.passed,")"),key:"passed"},{label:"Failed (".concat(l.failed,")"),key:"failed",icon:th("failed")},{label:"Flaky (".concat(l.flaky,")"),key:"flaky",icon:th("flaky")},{label:"Skipped (".concat(l.skipped,")"),key:"skipped",icon:th("skipped")}],[h,u]=(0,d.useState)(o||"all");return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:ti,children:(0,s.jsx)(ts.Z,{onClick:e=>{a("?status=".concat(e.key)),u(e.key)},selectedKeys:[h],mode:"horizontal",items:c})}),(0,s.jsx)(tu,{status:h,statusDataList:i})]})};function tm(){var[e,t]=(0,d.useState)([]),[l,i]=(0,d.useState)(!0);return(0,d.useEffect)(()=>{fetch("/public/test-data-list.json").then(e=>{if(!e.ok)throw Error("HTTP error! Status: ".concat(e.status));return e.json()}).then(e=>{t(e["test-list"]),console.log("data",e,e["test-list"])}).catch(e=>console.error("Error:",e)).finally(()=>{i(!1)})},[]),(0,s.jsx)(s.Fragment,{children:!l&&(0,s.jsx)(function(e){var t,l,i,n,{testDataList:r}=e,a=null==r?void 0:r.reduce((e,t)=>(e[t.status]=[...e[t.status]||[],t],e),{});console.log("statusDataList",r,a);var o=r.length,c=(null===(t=a.passed)||void 0===t?void 0:t.length)||0,d=(null===(l=a.failed)||void 0===l?void 0:l.length)||0,h=(null===(i=a.flaky)||void 0===i?void 0:i.length)||0,u=(null===(n=a.skipped)||void 0===n?void 0:n.length)||0;return(0,s.jsx)("div",{className:tn,children:(0,s.jsx)(tp,{stats:{total:o,passed:c,failed:d,flaky:h,skipped:u,ok:o===c},statusDataList:a})})},{testDataList:e})})}let tv=()=>(0,s.jsx)(i.VK,{children:(0,s.jsxs)(n.Z5,{children:[(0,s.jsx)(n.AW,{index:!0,element:(0,s.jsx)(tm,{})}),(0,s.jsx)(n.AW,{path:"report",element:(0,s.jsx)(tt,{})})]})})},76023:function(e,t,l){l.d(t,{Z:function(){return s}});let s=(0,l(85051).mc)({})},28651:function(e,t,l){l(13962),l(9415),l(54167),l(17774),l(68311),l(91396),l(45930),l(28211),l(36087),l(2147),l(81553),l(6495),l(80812),l(60957),l(44883),l(18799),l(5013),l(91716),l(83836),l(17457),l(84657),l(87854),l(89650),l(96684),l(39881),l(19228),l(29345),l(41041),l(29909),l(46501),l(16642),l(54126),l(92013),l(48710),l(36246),l(26474),l(72162),l(73886),l(69098),l(2159),l(32058),l(29822),l(81723),l(181),l(76862),l(88),l(87312),l(48976),l(65847),l(6994),l(38069),l(10352),l(33984),l(80166),l(26285),l(5217),l(87305),l(83578),l(19355),l(12841),l(69532),l(636),l(98146),l(56141),l(58400),l(24095),l(19518),l(76080),l(1229),l(79947),l(70831),l(20821),l(82685),l(52113),l(36346),l(54352),l(69845),l(70310),l(43525),l(6698),l(62109),l(63069),l(79581),l(90390),l(57952),l(6138),l(72569),l(60327),l(50584),l(13688),l(66128),l(47098),l(58477),l(95254),l(23052),l(23282),l(84980),l(4237),l(31481),l(72192),l(61446),l(57675),l(59373),l(63493),l(71898),l(27537),l(86389),l(57170),l(50461),l(65898),l(26748),l(14568),l(21833),l(11664),l(15395),l(68505),l(95175),l(56218),l(72590),l(3323),l(60873),l(97748),l(74531),l(93479),l(30494),l(39600),l(11594),l(64719),l(72991),l(9344),l(452),l(69597),l(65007),l(70866),l(69690),l(36461),l(56063),l(17173),l(35450),l(68286),l(49330),l(92860),l(68819),l(90446),l(95105),l(43875),l(42424),l(69235),l(19277),l(43741),l(77986),l(16119),l(5371),l(7001),l(36152),l(56303),l(68080),l(87950),l(41834),l(35564),l(65003),l(10361),l(74969),l(49169),l(26029),l(3449),l(99901),l(93160),l(49432),l(59237),l(65118),l(38126),l(78590),l(58926),l(57594),l(7895),l(67934),l(16390),l(57222),l(41119),l(16282),l(92607),l(21966),l(45321),l(36771),l(81657),l(19835),l(30612),l(74823),l(573),l(23796),l(37372),l(64104),l(75158),l(58511),l(61514),l(57149),l(69621),l(88304),l(15893),l(1011),l(11660),l(51475),l(50435),l(84688),l(67368),l(88887),l(13390),l(9594),l(8871),l(92408),l(64513),l(57347),l(22445),l(36507),l(40541),l(76911),l(12245),l(59632),l(27133),l(65009),l(61972),l(1202),l(46109),l(46167),l(24752),l(82912),l(34058),l(90245),l(83778),l(5493),l(72032),l(28826),l(7775),l(77275),l(48657),l(39575),l(5841),l(69823),l(38290),l(96674),l(87959),l(26556),l(3472),l(11348),l(1789),l(43575),l(14616),l(42666),l(58875),l(96065),l(64577),l(56413),l(5334),l(13109),l(75101),l(50610),l(25577),l(86300),l(6308),l(16980),l(80993),l(89301),l(58949),l(69764),l(49305),l(7233),l(95084),l(83541),l(63333),l(58185),l(81954),l(1081),l(23577),l(65072),l(76783),l(24508),l(98812),l(13378),l(63702),l(24357),l(76326),l(50594),l(81186),l(31825),l(87222),l(74836),l(8491),l(82972),l(44355),l(11355),l(35496),l(84135),l(31439),l(51374),l(94428),l(53562),l(90820),l(12850),l(81767),l(23699),l(19579)},5256:function(){window.__assetPrefix__=""}},function(e){var t=function(t){return e(e.s=t)};e.O(0,["118","126","361","563","915"],function(){return t("5256"),t("28651"),t("7828")}),e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/index.ae9a86c5.js","sources":["webpack://@midscene/visualizer-report/../visualizer/dist/es/component/store.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/timeline.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/color.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/blackboard.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/utils.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/detail-panel.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/assets/logo-plain.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/global-hover-preview.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/panel-title.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/misc.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/detail-side.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/assets/logo-plain2.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/component/sidebar.js","webpack://@midscene/visualizer-report/../visualizer/dist/es/index.js","webpack://@midscene/visualizer-report/./src/pages/Report.tsx","webpack://@midscene/visualizer-report/./src/pages/Home.module.css?7174","webpack://@midscene/visualizer-report/./src/pages/Home.tsx","webpack://@midscene/visualizer-report/./src/App.tsx","webpack://@midscene/visualizer-report/./src/modern.runtime.ts","webpack://@midscene/visualizer-report/"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { create } from \"zustand\";\nconst useBlackboardPreference = create((set) => ({\n bgVisible: false,\n textsVisible: true,\n setBgVisible: (visible) => {\n set({ bgVisible: visible });\n },\n setTextsVisible: (visible) => {\n set({ textsVisible: visible });\n }\n}));\nconst useExecutionDump = create((set, get) => {\n const initData = {\n dump: null,\n activeTask: null,\n hoverTask: null,\n hoverTimestamp: null,\n hoverPreviewConfig: null\n };\n const syncToInsightDump = (dump) => {\n const { loadData } = useInsightDump.getState();\n loadData(dump);\n };\n const resetInsightDump = () => {\n const { reset } = useInsightDump.getState();\n reset();\n };\n return __spreadProps(__spreadValues({}, initData), {\n setGroupedDump: (dump) => {\n console.log(\"will set ExecutionDump\", dump);\n set({\n dump\n });\n for (const item of dump) {\n if (item.executions.length > 0 && item.executions[0].tasks.length > 0) {\n get().setActiveTask(item.executions[0].tasks[0]);\n break;\n }\n }\n },\n setActiveTask(task) {\n set({ activeTask: task });\n console.log(\"task set\", task);\n if (task.type === \"Insight\") {\n syncToInsightDump(task.log.dump);\n } else {\n resetInsightDump();\n }\n },\n setHoverTask(task, timestamp) {\n set({ hoverTask: task, hoverTimestamp: timestamp || null });\n },\n setHoverPreviewConfig(config) {\n if (config) {\n set({\n hoverPreviewConfig: {\n x: Math.floor(config.x),\n y: Math.floor(config.y)\n }\n });\n } else {\n set({ hoverPreviewConfig: null });\n }\n },\n reset: () => {\n set(initData);\n resetInsightDump();\n }\n });\n});\nconst useAllCurrentTasks = () => {\n const groupedDumps = useExecutionDump((store) => store.dump);\n const allTasks = (groupedDumps == null ? void 0 : groupedDumps.reduce((acc, group) => {\n const tasksInside = group.executions.reduce(\n (acc2, execution) => acc2.concat(execution.tasks),\n []\n );\n return acc.concat(tasksInside);\n }, [])) || [];\n return allTasks;\n};\nconst useInsightDump = create((set) => {\n let loadId = 0;\n const initData = { _loadId: 0, highlightSectionNames: [], highlightElements: [], data: null };\n return __spreadProps(__spreadValues({}, initData), {\n loadData: (data) => {\n set({\n _loadId: ++loadId,\n data,\n highlightSectionNames: [],\n highlightElements: []\n });\n },\n setHighlightSectionNames: (sections) => {\n set({ highlightSectionNames: sections });\n },\n setHighlightElements: (elements) => {\n set({ highlightElements: elements });\n },\n reset: () => {\n set(initData);\n }\n });\n});\nexport {\n useAllCurrentTasks,\n useBlackboardPreference,\n useExecutionDump,\n useInsightDump\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\nimport { jsx } from \"react/jsx-runtime\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport * as PIXI from \"pixi.js\";\nimport \"./timeline.css\";\nimport { useAllCurrentTasks, useExecutionDump } from \"./store\";\nfunction cloneSprite(sprite) {\n const clonedSprite = new PIXI.Sprite(sprite.texture);\n clonedSprite.position.copyFrom(sprite.position);\n clonedSprite.scale.copyFrom(sprite.scale);\n clonedSprite.rotation = sprite.rotation;\n clonedSprite.alpha = sprite.alpha;\n clonedSprite.visible = sprite.visible;\n return clonedSprite;\n}\nconst TimelineWidget = (props) => {\n var _a, _b, _c, _d;\n const domRef = useRef(null);\n const app = useMemo(() => new PIXI.Application(), []);\n const gridsContainer = useMemo(() => new PIXI.Container(), []);\n const screenshotsContainer = useMemo(() => new PIXI.Container(), []);\n const highlightMaskContainer = useMemo(() => new PIXI.Container(), []);\n const containerUpdaterRef = useRef(\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n (_s, _e, _hs, _he) => {\n }\n );\n const indicatorContainer = useMemo(() => new PIXI.Container(), []);\n const allScreenshots = props.screenshots || [];\n const maxTime = allScreenshots[allScreenshots.length - 1].timeOffset;\n const sizeRatio = 2;\n const titleBg = 14540253;\n const sideBg = 16250871;\n const gridTextColor = 0;\n const shotBorderColor = 7829367;\n const gridLineColor = 13421772;\n const gridHighlightColor = 438699;\n const timeContentFontSize = 20;\n const commonPadding = 12;\n const timeTextTop = commonPadding;\n const timeTitleBottom = timeTextTop * 2 + timeContentFontSize;\n const highlightMaskAlpha = 0.6;\n const hoverMaskAlpha = 0.3;\n const closestScreenshotItemOnXY = (x, _y) => {\n let closestScreenshot;\n let closestIndex = -1;\n for (let i = 0; i < allScreenshots.length; i++) {\n const shot = allScreenshots[i];\n if (shot.x <= x) {\n closestScreenshot = allScreenshots[i];\n closestIndex = i;\n } else {\n break;\n }\n }\n return {\n closestScreenshot,\n closestIndex\n };\n };\n useMemo(() => {\n const { startMs, endMs } = props.highlightMask || {};\n const { startMs: hoverStartMs, endMs: hoverEndMs } = props.hoverMask || {};\n const fn = containerUpdaterRef.current;\n fn(startMs, endMs, hoverStartMs, hoverEndMs);\n }, [\n (_a = props.highlightMask) == null ? void 0 : _a.startMs,\n (_b = props.highlightMask) == null ? void 0 : _b.endMs,\n (_c = props.hoverMask) == null ? void 0 : _c.startMs,\n (_d = props.hoverMask) == null ? void 0 : _d.endMs\n ]);\n useEffect(() => {\n Promise.resolve(\n (() => __async(void 0, null, function* () {\n var _a2, _b2;\n if (!domRef.current) {\n return;\n }\n const { clientWidth, clientHeight } = domRef.current;\n const canvasWidth = clientWidth * sizeRatio;\n const canvasHeight = clientHeight * sizeRatio;\n let singleGridWidth = 100 * sizeRatio;\n let gridCount = Math.floor(canvasWidth / singleGridWidth);\n const stepCandidate = [\n 50,\n 100,\n 200,\n 300,\n 500,\n 1e3,\n 2e3,\n 3e3,\n 5e3,\n 6e3,\n 8e3,\n 9e3,\n 1e4,\n 2e4,\n 3e4,\n 4e4,\n 6e4,\n 9e4,\n 12e3,\n 3e5\n ];\n let timeStep = stepCandidate[0];\n for (let i = stepCandidate.length - 1; i >= 0; i--) {\n if (gridCount * stepCandidate[i] >= maxTime) {\n timeStep = stepCandidate[i];\n }\n }\n const gridRatio = maxTime / (gridCount * timeStep);\n if (gridRatio <= 0.8) {\n singleGridWidth = Math.floor(singleGridWidth * (1 / gridRatio) * 0.9);\n gridCount = Math.floor(canvasWidth / singleGridWidth);\n }\n const leftForTimeOffset = (timeOffset) => {\n return Math.floor(singleGridWidth * timeOffset / timeStep);\n };\n const timeOffsetForLeft = (left) => {\n return Math.floor(left * timeStep / singleGridWidth);\n };\n yield app.init({\n width: canvasWidth,\n height: canvasHeight,\n backgroundColor: sideBg\n });\n if (!domRef.current) {\n app.destroy();\n return;\n }\n domRef.current.replaceChildren(app.canvas);\n const pixiTextForNumber = (num) => {\n const textContent = `${num}ms`;\n const text = new PIXI.Text(`${textContent}`, {\n fontSize: timeContentFontSize,\n fill: gridTextColor\n });\n return text;\n };\n gridsContainer.removeChildren();\n const titleBgSection = new PIXI.Graphics();\n titleBgSection.beginFill(titleBg);\n titleBgSection.drawRect(0, 0, canvasWidth, timeTitleBottom);\n titleBgSection.endFill();\n gridsContainer.addChild(titleBgSection);\n const gridHeight = canvasHeight;\n for (let i = 1; i <= gridCount; i++) {\n const gridLine = new PIXI.Graphics();\n const gridLineLeft = leftForTimeOffset(i * timeStep);\n gridLine.beginFill(gridLineColor);\n gridLine.drawRect(gridLineLeft, 0, sizeRatio, gridHeight);\n gridLine.endFill();\n gridsContainer.addChild(gridLine);\n const text = pixiTextForNumber(i * timeStep);\n const textLeft = gridLineLeft - text.width - commonPadding;\n text.x = textLeft;\n text.y = timeTextTop;\n gridsContainer.addChild(text);\n }\n app.stage.addChild(gridsContainer);\n if (!allScreenshots.length) {\n console.warn(\"No screenshots found\");\n return;\n }\n const shotContainers = [];\n screenshotsContainer.removeChildren();\n const screenshotTop = timeTitleBottom + commonPadding * 1.5;\n const screenshotMaxHeight = canvasHeight - screenshotTop - commonPadding * 1.5;\n allScreenshots.forEach((screenshot, index) => {\n const container = new PIXI.Container();\n shotContainers.push(container);\n app.stage.addChild(container);\n const img = new Image();\n img.src = screenshot.img;\n img.onload = () => {\n const screenshotTexture = PIXI.Texture.from(img);\n const screenshotSprite = new PIXI.Sprite(screenshotTexture);\n const originalWidth = img.width;\n const originalHeight = img.height;\n const screenshotHeight = screenshotMaxHeight;\n const screenshotWidth = Math.floor(screenshotHeight / originalHeight * originalWidth);\n const screenshotX = leftForTimeOffset(screenshot.timeOffset);\n allScreenshots[index].x = screenshotX;\n allScreenshots[index].y = screenshotTop;\n allScreenshots[index].width = screenshotWidth;\n allScreenshots[index].height = screenshotMaxHeight;\n const border = new PIXI.Graphics();\n border.lineStyle(sizeRatio, shotBorderColor, 1);\n border.drawRect(screenshotX, screenshotTop, screenshotWidth, screenshotMaxHeight);\n border.endFill();\n container.addChild(border);\n screenshotSprite.x = screenshotX;\n screenshotSprite.y = screenshotTop;\n screenshotSprite.width = screenshotWidth;\n screenshotSprite.height = screenshotMaxHeight;\n container.addChild(screenshotSprite);\n };\n });\n const highlightMaskUpdater = (start, end, hoverStart, hoverEnd) => {\n highlightMaskContainer.removeChildren();\n const mask = (start2, end2, alpha) => {\n if (typeof start2 === \"undefined\" || typeof end2 === \"undefined\" || end2 === 0) {\n return;\n }\n const leftBorder = new PIXI.Graphics();\n leftBorder.beginFill(gridHighlightColor, 1);\n leftBorder.drawRect(leftForTimeOffset(start2), 0, sizeRatio, canvasHeight);\n leftBorder.endFill();\n highlightMaskContainer.addChild(leftBorder);\n const rightBorder = new PIXI.Graphics();\n rightBorder.beginFill(gridHighlightColor, 1);\n rightBorder.drawRect(leftForTimeOffset(end2), 0, sizeRatio, canvasHeight);\n rightBorder.endFill();\n highlightMaskContainer.addChild(rightBorder);\n const mask2 = new PIXI.Graphics();\n mask2.beginFill(gridHighlightColor, alpha);\n mask2.drawRect(\n leftForTimeOffset(start2),\n 0,\n leftForTimeOffset(end2) - leftForTimeOffset(start2),\n canvasHeight\n );\n mask2.endFill();\n highlightMaskContainer.addChild(mask2);\n };\n mask(start, end, highlightMaskAlpha);\n mask(hoverStart, hoverEnd, hoverMaskAlpha);\n };\n highlightMaskUpdater((_a2 = props.highlightMask) == null ? void 0 : _a2.startMs, (_b2 = props.highlightMask) == null ? void 0 : _b2.endMs, 0, 0);\n containerUpdaterRef.current = highlightMaskUpdater;\n app.stage.interactive = true;\n const onPointerMove = (event) => {\n var _a3, _b3;\n const x = event.offsetX * sizeRatio;\n const y = event.offsetY * sizeRatio;\n indicatorContainer.removeChildren();\n const { closestScreenshot, closestIndex } = closestScreenshotItemOnXY(x, y);\n if (closestIndex < 0) {\n (_a3 = props.onUnhighlight) == null ? void 0 : _a3.call(props);\n return;\n }\n const closestContainer = shotContainers[closestIndex];\n closestContainer.children.forEach((child) => {\n if (child instanceof PIXI.Sprite) {\n const newSpirit = new PIXI.Graphics();\n newSpirit.lineStyle(2, gridHighlightColor, 1);\n newSpirit.drawRect(\n x,\n // follow mouse\n closestScreenshot.y,\n closestScreenshot.width,\n closestScreenshot.height\n );\n newSpirit.endFill();\n indicatorContainer.addChild(newSpirit);\n const screenshotSpirit = cloneSprite(child);\n screenshotSpirit.x = x;\n indicatorContainer.addChild(screenshotSpirit);\n }\n });\n const indicator = new PIXI.Graphics();\n indicator.beginFill(gridHighlightColor, 1);\n indicator.drawRect(x - 1, 0, 3, canvasHeight);\n indicator.endFill();\n indicatorContainer.addChild(indicator);\n const text = pixiTextForNumber(timeOffsetForLeft(x));\n text.x = x + 5;\n text.y = timeTextTop;\n const textBg = new PIXI.Graphics();\n textBg.beginFill(titleBg, 1);\n textBg.drawRect(text.x, text.y, text.width + 10, text.height);\n textBg.endFill();\n indicatorContainer.addChild(textBg);\n indicatorContainer.addChild(text);\n (_b3 = props.onHighlight) == null ? void 0 : _b3.call(props, {\n mouseX: x / sizeRatio,\n mouseY: y / sizeRatio,\n item: closestScreenshot\n });\n };\n const onPointerOut = () => {\n var _a3;\n indicatorContainer.removeChildren();\n (_a3 = props.onUnhighlight) == null ? void 0 : _a3.call(props);\n };\n const onPointerTap = (event) => {\n var _a3;\n const x = event.offsetX * sizeRatio;\n const y = event.offsetY * sizeRatio;\n const { closestScreenshot } = closestScreenshotItemOnXY(x, y);\n if (closestScreenshot) {\n (_a3 = props.onTap) == null ? void 0 : _a3.call(props, closestScreenshot);\n }\n };\n app.stage.addChild(screenshotsContainer);\n app.stage.addChild(highlightMaskContainer);\n app.stage.addChild(indicatorContainer);\n const canvas = app.view;\n canvas.addEventListener(\"pointermove\", onPointerMove);\n canvas.addEventListener(\"pointerout\", onPointerOut);\n canvas.addEventListener(\"pointerdown\", onPointerTap);\n }))()\n );\n }, []);\n return /* @__PURE__ */ jsx(\"div\", { className: \"timeline-canvas-wrapper\", ref: domRef });\n};\nconst Timeline = () => {\n const allTasks = useAllCurrentTasks();\n const wrapper = useRef(null);\n const setActiveTask = useExecutionDump((store) => store.setActiveTask);\n const activeTask = useExecutionDump((store) => store.activeTask);\n const hoverTask = useExecutionDump((store) => store.hoverTask);\n const setHoverTask = useExecutionDump((store) => store.setHoverTask);\n const setHoverPreviewConfig = useExecutionDump((store) => store.setHoverPreviewConfig);\n let startingTime = -1;\n let idCount = 1;\n const idTaskMap = {};\n const allScreenshots = allTasks.reduce((acc, current) => {\n var _a;\n const recorders = current.recorder || [];\n recorders.forEach((item) => {\n if (startingTime === -1 || startingTime > item.ts) {\n startingTime = item.ts;\n }\n });\n if (((_a = current.timing) == null ? void 0 : _a.start) && (startingTime === -1 || startingTime > current.timing.start)) {\n startingTime = current.timing.start;\n }\n const recorderItemWithId = recorders.map((item) => {\n const idStr = `id_${idCount++}`;\n idTaskMap[idStr] = current;\n return __spreadProps(__spreadValues({}, item), {\n id: idStr\n });\n });\n return acc.concat(recorderItemWithId || []);\n }, []).filter((item) => {\n return item.screenshot;\n }).map((recorderItem) => {\n return {\n id: recorderItem.id,\n img: recorderItem.screenshot,\n timeOffset: recorderItem.ts - startingTime\n };\n }).sort((a, b) => a.timeOffset - b.timeOffset);\n const itemOnTap = (item) => {\n const task = idTaskMap[item.id];\n if (task) {\n setActiveTask(task);\n }\n };\n const onHighlightItem = (param) => {\n var _a;\n const { mouseX, item } = param;\n const refBounding = (_a = wrapper.current) == null ? void 0 : _a.getBoundingClientRect();\n const task = idTaskMap[item.id];\n if (task) {\n setHoverTask(task, item.timeOffset + startingTime);\n setHoverPreviewConfig({\n x: mouseX + ((refBounding == null ? void 0 : refBounding.left) || 0),\n y: ((refBounding == null ? void 0 : refBounding.bottom) || 1) - 1\n });\n } else {\n setHoverTask(null);\n setHoverPreviewConfig(null);\n }\n };\n const unhighlight = () => {\n setHoverTask(null);\n setHoverPreviewConfig(null);\n };\n const maskConfigForTask = (task) => {\n var _a, _b;\n if (!task) {\n return void 0;\n }\n return ((_a = task.timing) == null ? void 0 : _a.start) && ((_b = task.timing) == null ? void 0 : _b.end) ? {\n startMs: task.timing.start - startingTime || 0,\n endMs: task.timing.end - startingTime || 0\n } : void 0;\n };\n const highlightMaskConfig = maskConfigForTask(activeTask);\n const hoverMaskConfig = maskConfigForTask(hoverTask);\n return /* @__PURE__ */ jsx(\"div\", { className: \"timeline-wrapper\", ref: wrapper, children: /* @__PURE__ */ jsx(\n TimelineWidget,\n {\n screenshots: allScreenshots,\n onTap: itemOnTap,\n onHighlight: onHighlightItem,\n onUnhighlight: unhighlight,\n highlightMask: highlightMaskConfig,\n hoverMask: hoverMaskConfig\n }\n ) });\n};\nvar timeline_default = Timeline;\nexport {\n timeline_default as default\n};\n","const sectionColor = [\"#028391\"];\nconst elementColor = [\"#fb6107\"];\nconst highlightColorForSection = \"#01204E\";\nconst highlightColorForElement = \"#F56824\";\nfunction djb2Hash(str) {\n if (!str) {\n console.warn(\"djb2Hash: empty string\");\n str = \"unnamed\";\n }\n let hash = 5381;\n for (let i = 0; i < str.length; i++) {\n hash = (hash << 5) + hash + str.charCodeAt(i);\n }\n return hash >>> 0;\n}\nfunction colorForName(type, name) {\n const hashNumber = djb2Hash(name);\n if (type === \"section\") {\n return sectionColor[hashNumber % sectionColor.length];\n } else {\n return elementColor[hashNumber % elementColor.length];\n }\n}\nfunction highlightColorForType(type) {\n if (type === \"section\") {\n return highlightColorForSection;\n } else {\n return highlightColorForElement;\n }\n}\nexport {\n colorForName,\n highlightColorForType\n};\n","\"use client\";\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as PIXI from \"pixi.js\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { Checkbox } from \"antd\";\nimport { highlightColorForType, colorForName } from \"./color\";\nimport \"./blackboard.css\";\nimport { useBlackboardPreference, useInsightDump } from \"./store\";\nconst itemFillAlpha = 0.3;\nconst bgOnAlpha = 0.8;\nconst bgOffAlpha = 0.3;\nconst noop = () => {\n};\nconst BlackBoard = () => {\n const dump = useInsightDump((store) => store.data);\n const setHighlightSectionNames = useInsightDump((store) => store.setHighlightSectionNames);\n const setHighlightElements = useInsightDump((store) => store.setHighlightElements);\n const highlightSectionNames = useInsightDump((store) => store.highlightSectionNames);\n const highlightElements = useInsightDump((store) => store.highlightElements);\n const { context, matchedSection: sections, matchedElement: elements } = dump;\n const { size, screenshotBase64 } = context;\n const screenWidth = size.width;\n const screenHeight = size.height;\n const domRef = useRef(null);\n const app = useMemo(() => new PIXI.Application(), []);\n const [appInitialed, setAppInitialed] = useState(false);\n const itemMarkContainer = useMemo(() => new PIXI.Container(), []);\n const textContainer = useMemo(() => new PIXI.Container(), []);\n const pixiBgRef = useRef();\n const { bgVisible, setBgVisible, textsVisible, setTextsVisible } = useBlackboardPreference();\n useEffect(() => {\n Promise.resolve(\n (() => __async(void 0, null, function* () {\n if (!domRef.current || !screenWidth) {\n return;\n }\n yield app.init({ width: screenWidth, height: screenHeight, background: 16777215 });\n const canvasEl = domRef.current;\n domRef.current.appendChild(app.canvas);\n const { clientWidth } = domRef.current.parentElement;\n const targetHeight = window.innerHeight * 0.7;\n const viewportRatio = clientWidth / targetHeight;\n if (screenWidth / screenHeight <= viewportRatio) {\n const ratio = targetHeight / screenHeight;\n canvasEl.style.width = `${Math.floor(screenWidth * ratio)}px`;\n canvasEl.style.height = `${Math.floor(screenHeight * ratio)}px`;\n }\n app.stage.addChild(itemMarkContainer);\n app.stage.addChild(textContainer);\n setAppInitialed(true);\n }))()\n );\n return () => {\n console.log(\"will destroy\");\n try {\n app.destroy(true, { children: true, texture: true });\n } catch (e) {\n console.warn(\"destroy failed\", e);\n }\n };\n }, [app, screenWidth, screenHeight]);\n useEffect(() => {\n if (!appInitialed) {\n return;\n }\n const img = new Image();\n img.src = screenshotBase64;\n img.onload = () => {\n const screenshotTexture = PIXI.Texture.from(img);\n const screenshotSprite = new PIXI.Sprite(screenshotTexture);\n screenshotSprite.x = 0;\n screenshotSprite.y = 0;\n screenshotSprite.width = screenWidth;\n screenshotSprite.height = screenHeight;\n app.stage.addChildAt(screenshotSprite, 0);\n pixiBgRef.current = screenshotSprite;\n screenshotSprite.alpha = bgVisible ? bgOnAlpha : bgOffAlpha;\n };\n }, [app.stage, appInitialed]);\n const rectMarkForItem = (rect, name, themeColor, alpha, onPointOver, onPointerOut) => {\n const { left, top, width, height } = rect;\n const graphics = new PIXI.Graphics();\n graphics.beginFill(themeColor, alpha);\n graphics.lineStyle(1, themeColor, 1);\n graphics.drawRect(left, top, width, height);\n graphics.endFill();\n graphics.interactive = true;\n graphics.on(\"pointerover\", onPointOver);\n graphics.on(\"pointerout\", onPointerOut);\n const nameFontSize = 18;\n const texts = new PIXI.Text(name, {\n fontSize: nameFontSize,\n fill: 0\n });\n texts.x = left;\n texts.y = Math.max(top - (nameFontSize + 4), 0);\n return [graphics, texts];\n };\n const { highlightSectionRects, highlightElementRects } = useMemo(() => {\n const highlightSectionRects2 = [];\n const highlightElementRects2 = [];\n itemMarkContainer.removeChildren();\n textContainer.removeChildren();\n sections.forEach((section) => {\n const ifHighlight = highlightSectionNames.includes(section.name);\n if (ifHighlight) {\n highlightSectionRects2.push(section.rect);\n }\n const [graphics, texts] = rectMarkForItem(\n section.rect,\n section.name,\n ifHighlight ? highlightColorForType(\"section\") : colorForName(\"section\", section.name),\n ifHighlight ? 1 : itemFillAlpha,\n () => {\n setHighlightSectionNames([section.name]);\n },\n () => {\n setHighlightSectionNames([]);\n }\n );\n itemMarkContainer.addChild(graphics);\n textContainer.addChild(texts);\n });\n highlightElements.forEach((element) => {\n const { rect } = element;\n highlightElementRects2.push(rect);\n if (elements.includes(element)) {\n return;\n }\n const [graphics, texts] = rectMarkForItem(rect, \"\", highlightColorForType(\"element\"), 1, noop, noop);\n itemMarkContainer.addChild(graphics);\n textContainer.addChild(texts);\n });\n elements.forEach((element) => {\n const { rect, content } = element;\n const ifHighlight = highlightElements.includes(element);\n const [graphics, texts] = rectMarkForItem(\n rect,\n content,\n ifHighlight ? highlightColorForType(\"element\") : colorForName(\"element\", content),\n ifHighlight ? 1 : itemFillAlpha,\n () => {\n setHighlightElements([element]);\n },\n () => {\n setHighlightElements([]);\n }\n );\n itemMarkContainer.addChild(graphics);\n textContainer.addChild(texts);\n });\n sections.forEach((section) => {\n const { content } = section;\n const ifHighlight = highlightSectionNames.includes(section.name);\n const sectionTheme = ifHighlight ? \"#FFFFFF\" : colorForName(\"section\", section.name);\n content.forEach((text) => {\n const { content: content2, rect } = text;\n const { left, top } = rect;\n const style = new PIXI.TextStyle({\n wordWrap: true,\n wordWrapWidth: rect.width,\n fontSize: 18,\n fill: sectionTheme\n });\n const textElement = new PIXI.Text(content2, style);\n textElement.x = left;\n textElement.y = top;\n textContainer.addChild(textElement);\n const textBorder = new PIXI.Graphics();\n textBorder.beginFill(11184810, 0.2);\n textBorder.lineStyle(1, 0, 1);\n textBorder.drawRect(left, top, rect.width, rect.height);\n textBorder.endFill();\n textContainer.addChild(textBorder);\n });\n });\n textContainer.visible = textsVisible;\n return {\n highlightSectionRects: highlightSectionRects2,\n highlightElementRects: highlightElementRects2\n };\n }, [\n app,\n appInitialed,\n sections,\n highlightSectionNames,\n highlightElements\n // bgVisible,\n // textsVisible,\n ]);\n const onSetBg = (e) => {\n setBgVisible(e.target.checked);\n if (pixiBgRef.current) {\n pixiBgRef.current.alpha = e.target.checked ? bgOnAlpha : bgOffAlpha;\n }\n };\n const onSetTextsVisible = (e) => {\n setTextsVisible(e.target.checked);\n textContainer.visible = e.target.checked;\n };\n let bottomTipA = null;\n if (highlightElementRects.length === 1) {\n bottomTipA = /* @__PURE__ */ jsx(\"div\", { className: \"bottom-tip\", children: /* @__PURE__ */ jsxs(\"div\", { className: \"bottom-tip-item\", children: [\n \"Element: \",\n JSON.stringify(highlightElementRects[0])\n ] }) });\n } else if (highlightElementRects.length > 1) {\n bottomTipA = /* @__PURE__ */ jsx(\"div\", { className: \"bottom-tip\", children: /* @__PURE__ */ jsxs(\"div\", { className: \"bottom-tip-item\", children: [\n \"Element: \",\n JSON.stringify(highlightElementRects)\n ] }) });\n }\n let bottomTipB = null;\n if (highlightSectionRects.length === 1) {\n bottomTipB = /* @__PURE__ */ jsx(\"div\", { className: \"bottom-tip\", children: /* @__PURE__ */ jsxs(\"div\", { className: \"bottom-tip-item\", children: [\n \"Section: \",\n JSON.stringify(highlightSectionRects[0])\n ] }) });\n } else if (highlightSectionRects.length > 1) {\n bottomTipB = /* @__PURE__ */ jsx(\"div\", { className: \"bottom-tip\", children: /* @__PURE__ */ jsxs(\"div\", { className: \"bottom-tip-item\", children: [\n \"Sections: \",\n JSON.stringify(highlightSectionRects)\n ] }) });\n }\n return /* @__PURE__ */ jsxs(\"div\", { className: \"blackboard\", children: [\n /* @__PURE__ */ jsx(\"div\", { className: \"blackboard-main-content\", style: { width: \"100%\" }, ref: domRef }),\n /* @__PURE__ */ jsx(\"div\", { className: \"blackboard-filter\", children: /* @__PURE__ */ jsxs(\"div\", { className: \"overlay-control\", children: [\n /* @__PURE__ */ jsx(Checkbox, { checked: bgVisible, onChange: onSetBg, children: \"Screenshot\" }),\n /* @__PURE__ */ jsx(Checkbox, { checked: textsVisible, onChange: onSetTextsVisible, children: \"Text Mark\" })\n ] }) }),\n /* @__PURE__ */ jsxs(\"div\", { className: \"bottom-tip\", children: [\n bottomTipA,\n bottomTipB\n ] })\n ] });\n};\nvar blackboard_default = BlackBoard;\nexport {\n blackboard_default as default\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport dayjs from \"dayjs\";\nfunction insightDumpToExecutionDump(insightDump) {\n const insightToTask = (insightDump2) => {\n var _a, _b;\n const task = {\n type: \"Insight\",\n subType: insightDump2.type === \"locate\" ? \"Locate\" : \"Query\",\n status: insightDump2.error ? \"fail\" : \"success\",\n param: __spreadProps(__spreadValues(__spreadValues({}, insightDump2.userQuery.element ? { query: insightDump2.userQuery } : {}), insightDump2.userQuery.dataDemand ? { dataDemand: insightDump2.userQuery.dataDemand } : {}), {\n insight: {}\n }),\n log: {\n dump: insightDump2\n },\n timing: {\n end: insightDump2.logTime,\n cost: (_a = insightDump2.taskInfo) == null ? void 0 : _a.durationMs,\n start: insightDump2.logTime - ((_b = insightDump2.taskInfo) == null ? void 0 : _b.durationMs)\n },\n executor: () => {\n }\n };\n return task;\n };\n if (!Array.isArray(insightDump)) {\n const result = {\n sdkVersion: insightDump.sdkVersion,\n logTime: insightDump.logTime,\n name: \"Insight\",\n tasks: [insightToTask(insightDump)]\n };\n return result;\n } else {\n const result = {\n sdkVersion: insightDump[0].sdkVersion,\n logTime: insightDump[0].logTime,\n name: \"Insight\",\n tasks: insightDump.map(insightToTask)\n };\n return result;\n }\n}\nfunction timeStr(timestamp) {\n return timestamp ? dayjs(timestamp).format(\"YYYY-MM-DD HH:mm:ss\") : \"-\";\n}\nfunction typeStr(task) {\n return task.subType ? `${task.type} / ${task.subType || \"\"}` : task.type;\n}\nfunction filterBase64Value(input) {\n return input.replace(/data:image\\/[^\"]+\"/g, 'data:image...\"');\n}\nexport {\n filterBase64Value,\n insightDumpToExecutionDump,\n timeStr,\n typeStr\n};\n","\"use client\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nimport \"./detail-panel.css\";\nimport { Segmented, ConfigProvider } from \"antd\";\nimport { CameraOutlined, FileTextOutlined, ScheduleOutlined } from \"@ant-design/icons\";\nimport { useEffect, useState } from \"react\";\nimport BlackBoard from \"./blackboard\";\nimport { useExecutionDump, useInsightDump } from \"./store\";\nimport { timeStr, filterBase64Value } from \"../utils\";\nconst ScreenshotItem = (props) => {\n return /* @__PURE__ */ jsxs(\"div\", { className: \"screenshot-item\", children: [\n /* @__PURE__ */ jsx(\"div\", { className: \"screenshot-item-title\", children: props.time }),\n /* @__PURE__ */ jsx(\"div\", { children: /* @__PURE__ */ jsx(\"img\", { src: props.img }) })\n ] });\n};\nconst VIEW_TYPE_BLACKBOARD = \"blackboard\";\nconst VIEW_TYPE_SCREENSHOT = \"screenshot\";\nconst VIEW_TYPE_JSON = \"json\";\nconst DetailPanel = () => {\n var _a;\n const dumpId = useInsightDump((store) => store._loadId);\n const blackboardViewAvailable = Boolean(dumpId);\n const activeTask = useExecutionDump((store) => store.activeTask);\n const [preferredViewType, setViewType] = useState(VIEW_TYPE_BLACKBOARD);\n const viewType = preferredViewType === VIEW_TYPE_BLACKBOARD && !dumpId ? VIEW_TYPE_SCREENSHOT : preferredViewType;\n let content;\n if (!activeTask) {\n content = /* @__PURE__ */ jsx(\"div\", { children: \"please select a task\" });\n } else if (viewType === VIEW_TYPE_JSON) {\n content = /* @__PURE__ */ jsx(\"div\", { className: \"json-content\", children: filterBase64Value(JSON.stringify(activeTask, void 0, 2)) });\n } else if (viewType === VIEW_TYPE_BLACKBOARD) {\n if (dumpId) {\n content = /* @__PURE__ */ jsx(BlackBoard, {}, `${dumpId}`);\n } else {\n content = /* @__PURE__ */ jsx(\"div\", { children: \"invalid view\" });\n }\n } else if (viewType === VIEW_TYPE_SCREENSHOT) {\n if ((_a = activeTask.recorder) == null ? void 0 : _a.length) {\n content = /* @__PURE__ */ jsx(\"div\", { children: activeTask.recorder.filter((item) => item.screenshot).map((item, index) => {\n const fullTime = timeStr(item.ts);\n const str = item.timing ? `${fullTime} / ${item.timing}` : fullTime;\n return /* @__PURE__ */ jsx(ScreenshotItem, { time: str, img: item.screenshot }, index);\n }) });\n } else {\n content = /* @__PURE__ */ jsx(\"div\", { children: \"no screenshot\" });\n }\n }\n useEffect(() => {\n const handleKeyDown = (e) => {\n if (e.key === \"Tab\") {\n if (viewType === VIEW_TYPE_BLACKBOARD) {\n setViewType(VIEW_TYPE_SCREENSHOT);\n } else if (viewType === VIEW_TYPE_SCREENSHOT) {\n setViewType(VIEW_TYPE_JSON);\n } else {\n setViewType(blackboardViewAvailable ? VIEW_TYPE_BLACKBOARD : VIEW_TYPE_SCREENSHOT);\n }\n e.preventDefault();\n }\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n };\n });\n const options = [\n { label: \"Screenshots\", value: VIEW_TYPE_SCREENSHOT, icon: /* @__PURE__ */ jsx(CameraOutlined, {}) },\n { label: \"JSON View\", value: VIEW_TYPE_JSON, icon: /* @__PURE__ */ jsx(FileTextOutlined, {}) }\n ];\n if (blackboardViewAvailable) {\n options.unshift({ label: \"Visualization\", value: VIEW_TYPE_BLACKBOARD, icon: /* @__PURE__ */ jsx(ScheduleOutlined, {}) });\n }\n return /* @__PURE__ */ jsxs(\"div\", { className: \"detail-panel\", children: [\n /* @__PURE__ */ jsx(\"div\", { className: \"view-switcher\", children: /* @__PURE__ */ jsx(\n ConfigProvider,\n {\n theme: {\n components: {\n Segmented: {\n itemSelectedBg: \"#D7D7D7\",\n itemSelectedColor: \"#000000\"\n // itemHoverColor: '#ffffff',\n // itemHoverBg: '#A3D6D2', // @sub-blue\n /* 这里是你的组件 token */\n }\n }\n },\n children: /* @__PURE__ */ jsx(\n Segmented,\n {\n options,\n value: viewType,\n onChange: (value) => {\n setViewType(value);\n }\n }\n )\n }\n ) }),\n /* @__PURE__ */ jsx(\"div\", { className: \"detail-content\", children: content })\n ] });\n};\nvar detail_panel_default = DetailPanel;\nexport {\n detail_panel_default as default\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nconst SvgLogoPlain = (props) => /* @__PURE__ */ jsxs(\"svg\", __spreadProps(__spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", xmlSpace: \"preserve\", width: 535.041, height: 203.6, style: {\n shapeRendering: \"geometricPrecision\",\n textRendering: \"geometricPrecision\",\n imageRendering: \"optimizeQuality\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n}, viewBox: \"0 0 16897.65 6430.11\" }, props), { children: [\n /* @__PURE__ */ jsxs(\"defs\", { children: [\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain_svg__id0\", x1: 11103.21, x2: 10930.41, y1: 5027.34, y2: 1211.98, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#0a77d4\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#00b1e0\"\n } })\n ] }),\n /* @__PURE__ */ jsx(\"linearGradient\", { xlinkHref: \"#logo-plain_svg__id0\", id: \"logo-plain_svg__id1\", x1: 11407.32, x2: 11286.4, y1: 5023.83, y2: 1215.5, gradientUnits: \"userSpaceOnUse\" }),\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain_svg__id2\", x1: 6311.87, x2: 3547.5, y1: 4699.25, y2: 1677.39, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#f65926\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#f0ab1f\"\n } })\n ] }),\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain_svg__id3\", x1: 3105.35, x2: 2612.67, y1: 5075.61, y2: 1311.04, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#e52652\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#ff4956\"\n } })\n ] }),\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain_svg__id4\", x1: 14599.77, x2: 12e3, y1: 4808.34, y2: 1573.25, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#02c0a7\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#02e097\"\n } })\n ] }),\n /* @__PURE__ */ jsx(\"style\", { children: \".logo-plain_svg__fil8{fill:#fefefe}\" })\n ] }),\n /* @__PURE__ */ jsx(\"g\", { id: \"logo-plain_svg__\\\\u56FE\\\\u5C42_x0020_1\", children: /* @__PURE__ */ jsxs(\"g\", { id: \"logo-plain_svg___1978240863120\", children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M2921.92 814.37h2943.46c660.05 0 1200.11 540.04 1200.11 1200.11v669.56c-180.23 1562.84-842.69 2686.31-2539.2 2867.65h-656.9c-1403.42-112.59-2125.37-923.3-2147.58-2450.77V2014.48c0-660.07 540.04-1200.11 1200.11-1200.11z\", style: {\n fill: \"none\",\n stroke: \"#e62129\",\n strokeWidth: 23.87,\n strokeMiterlimit: 22.9256\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M908.05 649.1c172.38 0 312.1 139.73 312.1 312.1 0 172.38-139.73 312.1-312.1 312.1-172.38 0-312.1-139.73-312.1-312.1 0-172.38 139.73-312.1 312.1-312.1zm15081.56 0c-172.38 0-312.1 139.73-312.1 312.1 0 172.38 139.73 312.1 312.1 312.1 172.38 0 312.1-139.73 312.1-312.1 0-172.38-139.73-312.1-312.1-312.1zM16304.76.03H11565.2c-332.34-.73-635.61 30.83-892.17 114.33-1164.61 314.95-1684.86 539.69-2204.5 542.55-529.24 2.92-1057.71-221.77-2243.89-542.55C5968.08 30.86 5664.81-.7 5332.47.03H592.91C266.8.03.01 266.82.01 592.93v727.65c0 326.11 262.25 574.15 588.16 562.9 244.44-8.44 379.43 161.6 368.56 407.41v1401.3c844.04 3884.05 6459.63 3705.54 6872.25-983.68 37.55-479.97 225.37-745.7 619.85-795.03 394.48 49.33 582.3 315.06 619.85 795.03 221.1 2512.67 1570.99 3564.6 3624.76 3705.62 1575.25-121.99 2822.57-766.6 3247.49-2721.94v-1401.3c-10.86-245.81 124.13-415.84 368.56-407.41 325.91 11.24 588.16-236.8 588.16-562.9V592.93c0-326.11-266.79-592.9-592.9-592.9z\", style: {\n fill: \"#332c2b\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M4404.53 5551.69h138.96c1696.5-181.34 2358.97-1304.82 2539.2-2867.65v-669.56c0-660.07-540.06-1200.11-1200.11-1200.11H2939.12c-660.07 0-1200.11 540.04-1200.11 1200.11v1086.44c22.21 1527.47 744.16 2338.19 2147.58 2450.77h517.94z\", style: {\n fill: \"#f63d55\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M2884.03 3833.6c-562.03-552.91 337.59-1229.84 756.52-784.77l-668.1-718.53C2724 1698.38 2875.6 1176.8 3604.09 814.36h-682.18c-660.07 0-1200.11 540.04-1200.11 1200.11v1086.44c22.21 1527.47 744.16 2338.19 2147.58 2450.77h517.94c447.09-261.52 828.85-610.16 1124.32-1073.8-192.91 108.48-371.35 123.1-530.58 12.63-269.77 225.61-533.22 868.1-809.3 676.82L2884.01 3833.59z\", style: {\n fill: \"url(#logo-plain_svg__id3)\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M12967.79 5585.01c1654.02-184.97 2231.4-1330.91 2306.7-2925.01l-43.57-682.94c-42.95-673.27-608.37-1224.11-1256.49-1224.11H11084.21c-648.13 0-1143.27 550.85-1100.32 1224.11l70.69 1108.16c121.19 1558.01 882.83 2384.94 2268.19 2499.78h645.03z\", style: {\n fill: \"url(#logo-plain_svg__id1)\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 3266.42, cy: 4767.17, r: 119.53, style: {\n fill: \"#f3a04e\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M11243.45 3832.57c-587.85-563.96 251.45-1254.43 691.78-800.45l-702.77-732.9c-285.07-644.56-170.14-1176.57 521.59-1546.26h-669.84c-648.13 0-1143.27 550.85-1100.32 1224.11l70.69 1108.16c121.19 1558.01 882.83 2384.94 2268.19 2499.78h508.57c422-266.75 774.17-622.36 1034.13-1095.27-182.37 110.65-356.62 125.56-520.16 12.88-250.21 230.12-467.1 885.46-750.63 690.36l-1351.23-1360.42z\", style: {\n fill: \"url(#logo-plain_svg__id0)\",\n stroke: \"#06b1ab\",\n strokeWidth: 9.1,\n strokeMiterlimit: 22.9256\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M11754.05 752.96c-691.73 369.69-806.66 901.7-521.59 1546.26l702.77 732.9c-440.33-453.98-1279.63 236.49-691.78 800.45 1571.66 1582.35 780.78 887.85 1587.88 1752.45h136.46c1654.02-184.97 2231.4-1330.91 2306.7-2925.01l-43.57-682.94c-42.95-673.27-608.37-1224.11-1256.49-1224.11h-2220.38z\", style: {\n fill: \"url(#logo-plain_svg__id4)\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 13725.89, cy: 2247.09, r: 867.65, className: \"logo-plain_svg__fil8\" }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 11745.99, cy: 4944.33, r: 119.53, style: {\n fill: \"#52c2f1\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M3604.1 814.37c-728.5 362.44-880.09 884.02-631.64 1515.94l668.1 718.53c-418.94-445.08-1318.56 231.85-756.52 784.77l1503.3 1718.08h138.96c1696.5-181.34 2358.97-1304.82 2539.2-2867.65v-669.56c0-660.07-540.06-1200.11-1200.11-1200.11H3604.11z\", style: {\n fill: \"url(#logo-plain_svg__id2)\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m3602.42 3012.57-2.01-1.79-1.22-1c-433.3-363.07-1259.33 288.49-715.16 823.82l1503.3 1718.08h138.96c366.16-39.14 684.05-122.25 959.42-244.11l-1883.3-2295z\", style: {\n fill: \"#f9483e\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 5652.09, cy: 2247.09, r: 867.65, className: \"logo-plain_svg__fil8\" }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 5669.32, cy: 4261.82, r: 86.65, style: {\n fill: \"#f7b873\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 3775.08, cy: 4120.55, r: 174.77, className: \"logo-plain_svg__fil8\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m11770.33 2919.17 123.64 74.69c7.2 5.99 14.32 12.27 21.35 18.8l1988.29 2318.88c-264.55 126.79-574.49 213.07-935.82 253.47h-136.46c-807.1-864.6-16.22-170.1-1587.88-1752.45-520.29-499.15 77.34-1097.23 526.88-913.39z\", style: {\n fill: \"#06b1ab\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 12254.65, cy: 4297.71, r: 174.77, className: \"logo-plain_svg__fil8\" })\n ] }) })\n] }));\nvar logo_plain_default = SvgLogoPlain;\nexport {\n logo_plain_default as default\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useRef, useState } from \"react\";\nimport { useExecutionDump } from \"./store\";\nimport \"./global-hover-preview.css\";\nconst size = 400;\nconst GlobalHoverPreview = () => {\n var _a;\n const wrapperRef = useRef(null);\n const hoverTask = useExecutionDump((store) => store.hoverTask);\n const hoverTimestamp = useExecutionDump((store) => store.hoverTimestamp);\n const hoverPreviewConfig = useExecutionDump((store) => store.hoverPreviewConfig);\n const [imageW, setImageW] = useState(size);\n const [imageH, setImageH] = useState(size);\n const images = (_a = hoverTask == null ? void 0 : hoverTask.recorder) == null ? void 0 : _a.filter((item) => {\n let valid = Boolean(item.screenshot);\n if (hoverTimestamp) {\n valid = valid && item.ts >= hoverTimestamp;\n }\n return valid;\n }).map((item) => item.screenshot);\n const { x, y } = hoverPreviewConfig || {};\n let left = 0;\n let top = 0;\n const shouldShow = (images == null ? void 0 : images.length) && typeof x !== \"undefined\" && typeof y !== \"undefined\";\n if (shouldShow) {\n const { clientWidth, clientHeight } = document.body;\n const widthInPractice = imageW >= imageH ? size : size * (imageW / imageH);\n const heightInPractice = imageW >= imageH ? size * (imageH / imageW) : size;\n left = x + widthInPractice > clientWidth ? clientWidth - widthInPractice : x;\n top = y + heightInPractice > clientHeight ? clientHeight - heightInPractice : y;\n }\n return shouldShow ? /* @__PURE__ */ jsx(\"div\", { className: \"global-hover-preview\", style: { left, top }, ref: wrapperRef, children: (images == null ? void 0 : images.length) ? /* @__PURE__ */ jsx(\n \"img\",\n {\n src: images[0],\n onLoad: (img) => {\n const imgElement = img.target;\n const width = imgElement.naturalWidth;\n const height = imgElement.naturalHeight;\n setImageW(width);\n setImageH(height);\n }\n }\n ) : null }) : null;\n};\nvar global_hover_preview_default = GlobalHoverPreview;\nexport {\n global_hover_preview_default as default\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport \"./panel-title.css\";\nconst PanelTitle = (props) => {\n return /* @__PURE__ */ jsx(\"div\", { children: /* @__PURE__ */ jsx(\"div\", { className: \"task-list-name\", children: props.title }) });\n};\nvar panel_title_default = PanelTitle;\nexport {\n panel_title_default as default\n};\n","import { jsx } from \"react/jsx-runtime\";\nfunction timeCostStrElement(timeCost) {\n let str;\n if (typeof timeCost !== \"number\") {\n str = \"- ms\";\n } else if (timeCost > 1e3) {\n str = `${(timeCost / 1e3).toFixed(2)}s`;\n } else {\n str = `${timeCost}ms`;\n }\n return /* @__PURE__ */ jsx(\n \"span\",\n {\n style: {\n fontVariantNumeric: \"tabular-nums\",\n fontFeatureSettings: \"tnum\"\n },\n children: str\n }\n );\n}\nexport {\n timeCostStrElement\n};\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nimport \"./detail-side.css\";\nimport { RadiusSettingOutlined } from \"@ant-design/icons\";\nimport { Tooltip, Tag, Timeline } from \"antd\";\nimport { highlightColorForType } from \"./color\";\nimport { useExecutionDump, useInsightDump } from \"./store\";\nimport PanelTitle from \"./panel-title\";\nimport { timeCostStrElement } from \"./misc\";\nimport { timeStr, typeStr } from \"../utils\";\nconst noop = () => {\n};\nconst Card = (props) => {\n const { highlightWithColor, title, subtitle, onMouseEnter, onMouseLeave, content, characteristic } = props;\n const titleTag = props.characteristic ? /* @__PURE__ */ jsx(\"div\", { className: \"item-extra\", children: /* @__PURE__ */ jsx(\"div\", { className: \"title-tag\", children: /* @__PURE__ */ jsx(Tooltip, { placement: \"bottomRight\", title: characteristic, mouseEnterDelay: 0, children: /* @__PURE__ */ jsx(\"span\", { children: /* @__PURE__ */ jsx(RadiusSettingOutlined, {}) }) }) }) }) : null;\n const titleRightPaddingClass = props.characteristic ? \"title-right-padding\" : \"\";\n const modeClass = props.liteMode ? \"item-lite\" : \"\";\n const highlightStyle = highlightWithColor ? { backgroundColor: highlightWithColor } : {};\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: `item ${modeClass} ${highlightWithColor ? \"item-highlight\" : \"\"}`,\n style: __spreadValues({}, highlightStyle),\n onMouseEnter,\n onMouseLeave,\n children: [\n /* @__PURE__ */ jsxs(\"div\", { className: `title ${titleRightPaddingClass}`, style: { display: title ? \"block\" : \"none\" }, children: [\n title,\n titleTag\n ] }),\n /* @__PURE__ */ jsx(\"div\", { className: `subtitle ${titleRightPaddingClass}`, style: { display: subtitle ? \"block\" : \"none\" }, children: subtitle }),\n /* @__PURE__ */ jsx(\"div\", { className: \"description\", style: { display: content ? \"block\" : \"none\" }, children: content })\n ]\n }\n );\n};\nconst MetaKV = (props) => {\n return /* @__PURE__ */ jsx(\"div\", { className: \"meta-kv\", children: props.data.map((item, index) => {\n return /* @__PURE__ */ jsxs(\"div\", { className: \"meta\", children: [\n /* @__PURE__ */ jsx(\"div\", { className: \"meta-key\", children: item.key }),\n /* @__PURE__ */ jsx(\"div\", { className: \"meta-value\", children: item.content })\n ] }, index);\n }) });\n};\nconst objectWithoutKeys = (obj, keys) => Object.keys(obj).reduce((acc, key) => {\n if (!keys.includes(key)) {\n acc[key] = obj[key];\n }\n return acc;\n}, {});\nconst DetailSide = () => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const task = useExecutionDump((store) => store.activeTask);\n const dump = useInsightDump((store) => store.data);\n const { matchedSection: sections, matchedElement: elements } = dump || {};\n const highlightSectionNames = useInsightDump((store) => store.highlightSectionNames);\n const highlightElements = useInsightDump((store) => store.highlightElements);\n const setHighlightSectionNames = useInsightDump((store) => store.setHighlightSectionNames);\n const setHighlightElements = useInsightDump((store) => store.setHighlightElements);\n const setHighlightSectionName = function(name) {\n setHighlightSectionNames([name]);\n };\n const setHighlightElement = function(element) {\n setHighlightElements([element]);\n };\n const unhighlightSection = function() {\n setHighlightSectionNames([]);\n };\n const unhighlightElement = function() {\n setHighlightElements([]);\n };\n const kv = function(data) {\n const isElementItem = (value) => Boolean(value) && typeof value === \"object\" && typeof value.content !== \"undefined\" && Boolean(value.center) && Boolean(value.rect);\n const isSectionItem = (value) => Boolean(value) && typeof (value == null ? void 0 : value.sectionCharacteristics) !== \"undefined\" && typeof (value == null ? void 0 : value.rect) !== \"undefined\";\n const elementEl = (value) => /* @__PURE__ */ jsx(\n \"span\",\n {\n onMouseEnter: () => {\n setHighlightElement(value);\n },\n onMouseLeave: unhighlightElement,\n children: /* @__PURE__ */ jsx(Tag, { bordered: false, color: \"orange\", className: \"element-button\", children: \"Element\" })\n }\n );\n const sectionEl = (value) => /* @__PURE__ */ jsx(\n \"span\",\n {\n onMouseEnter: () => {\n setHighlightSectionName(value.name);\n },\n onMouseLeave: unhighlightSection,\n children: /* @__PURE__ */ jsx(Tag, { bordered: false, color: \"blue\", className: \"section-button\", children: \"Section\" })\n }\n );\n if (Array.isArray(data) || typeof data !== \"object\") {\n return /* @__PURE__ */ jsx(\"pre\", { className: \"description-content\", children: JSON.stringify(data, void 0, 2) });\n }\n return Object.keys(data).map((key) => {\n const value = data[key];\n let content;\n if (typeof value === \"object\" && isElementItem(value)) {\n content = elementEl(value);\n } else if (Array.isArray(value) && value.some((item) => isElementItem(item))) {\n content = value.map((item, index) => /* @__PURE__ */ jsx(\"span\", { children: elementEl(item) }, index));\n } else if (typeof value === \"object\" && isSectionItem(value)) {\n content = sectionEl(value);\n } else if (Array.isArray(value) && value.some((item) => isSectionItem(item))) {\n content = value.map((item, index) => /* @__PURE__ */ jsx(\"span\", { children: sectionEl(item) }, index));\n } else {\n content = typeof value === \"string\" ? value : JSON.stringify(value, void 0, 2);\n }\n return /* @__PURE__ */ jsxs(\"pre\", { className: \"description-content\", children: [\n key,\n \": \",\n content\n ] }, key);\n });\n };\n const metaKVElement = MetaKV({\n data: [\n {\n key: \"status\",\n content: (task == null ? void 0 : task.status) || \"\"\n },\n {\n key: \"start\",\n content: timeStr((_a = task == null ? void 0 : task.timing) == null ? void 0 : _a.start)\n },\n {\n key: \"end\",\n content: timeStr((_b = task == null ? void 0 : task.timing) == null ? void 0 : _b.end)\n },\n {\n key: \"time cost\",\n content: timeCostStrElement((_c = task == null ? void 0 : task.timing) == null ? void 0 : _c.cost)\n }\n ]\n });\n let taskParam = null;\n if ((task == null ? void 0 : task.type) === \"Planning\") {\n taskParam = MetaKV({\n data: [\n { key: \"type\", content: task && typeStr(task) || \"\" },\n { key: \"param\", content: (_d = task == null ? void 0 : task.param) == null ? void 0 : _d.userPrompt }\n ]\n });\n } else if ((task == null ? void 0 : task.type) === \"Insight\") {\n taskParam = MetaKV({\n data: [\n { key: \"type\", content: task && typeStr(task) || \"\" },\n {\n key: \"param\",\n content: JSON.stringify(\n ((_e = task == null ? void 0 : task.param) == null ? void 0 : _e.prompt) || ((_f = task == null ? void 0 : task.param) == null ? void 0 : _f.dataDemand)\n )\n }\n ]\n });\n } else if ((task == null ? void 0 : task.type) === \"Action\") {\n taskParam = MetaKV({\n data: [\n { key: \"type\", content: task && typeStr(task) || \"\" },\n {\n key: \"value\",\n content: JSON.stringify((_g = task == null ? void 0 : task.param) == null ? void 0 : _g.value, void 0, 2)\n }\n ]\n });\n }\n const matchedSectionsEl = (sections == null ? void 0 : sections.length) ? sections.map((section) => {\n const { name } = section;\n const ifHighlight = highlightSectionNames.includes(name);\n const kvToShow = objectWithoutKeys(section, [\n \"name\",\n \"description\",\n \"texts\",\n \"rect\",\n \"sectionCharacteristics\"\n ]);\n const sectionKV = Object.keys(kvToShow).length ? kv(kvToShow) : null;\n const highlightColor = ifHighlight ? highlightColorForType(\"section\") : void 0;\n return /* @__PURE__ */ jsx(\n Card,\n {\n title: section.name,\n highlightWithColor: highlightColor,\n subtitle: section.description,\n characteristic: section.sectionCharacteristics,\n onMouseEnter: setHighlightSectionName.bind(void 0, name),\n onMouseLeave: unhighlightSection,\n content: sectionKV\n },\n name\n );\n }) : null;\n const matchedElementsEl = (elements == null ? void 0 : elements.length) ? elements.map((element, idx) => {\n const ifHighlight = highlightElements.includes(element);\n const highlightColor = ifHighlight ? highlightColorForType(\"element\") : void 0;\n const elementKV = kv(\n objectWithoutKeys(element, [\n \"content\",\n \"rect\",\n \"center\",\n \"left\",\n \"top\",\n \"right\",\n \"bottom\",\n \"locator\"\n ])\n );\n return /* @__PURE__ */ jsx(\n Card,\n {\n title: element.content,\n highlightWithColor: highlightColor,\n subtitle: \"\",\n onMouseEnter: setHighlightElement.bind(void 0, element),\n onMouseLeave: unhighlightElement,\n content: elementKV\n },\n idx\n );\n }) : null;\n const errorSection = (dump == null ? void 0 : dump.error) ? /* @__PURE__ */ jsx(\n Card,\n {\n liteMode: true,\n title: \"Error\",\n onMouseEnter: noop,\n onMouseLeave: noop,\n content: /* @__PURE__ */ jsx(\"pre\", { className: \"description-content\", style: { color: \"#F00\" }, children: dump.error })\n }\n ) : null;\n const dataCard = (dump == null ? void 0 : dump.data) ? /* @__PURE__ */ jsx(\n Card,\n {\n liteMode: true,\n onMouseEnter: noop,\n onMouseLeave: noop,\n content: /* @__PURE__ */ jsx(\"pre\", { children: JSON.stringify(dump.data, void 0, 2) })\n }\n ) : null;\n console.log(\"dump is\", dump);\n const plans = (_h = task == null ? void 0 : task.output) == null ? void 0 : _h.plans;\n let timelineData = [];\n if (plans) {\n timelineData = timelineData.concat(\n plans.map((item) => {\n return {\n color: \"#06B1AB\",\n children: /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\"p\", { children: /* @__PURE__ */ jsx(\"b\", { children: typeStr(item) }) }),\n /* @__PURE__ */ jsx(\"p\", { children: item.thought }),\n /* @__PURE__ */ jsx(\"p\", { children: item.param ? JSON.stringify(item.param || {}, void 0, 2) : null })\n ] })\n };\n })\n );\n }\n return /* @__PURE__ */ jsxs(\"div\", { className: \"detail-side\", children: [\n /* @__PURE__ */ jsx(PanelTitle, { title: \"Task Meta\" }),\n metaKVElement,\n /* @__PURE__ */ jsx(PanelTitle, { title: \"Param\" }),\n taskParam,\n /* @__PURE__ */ jsx(PanelTitle, { title: \"Output\" }),\n /* @__PURE__ */ jsxs(\"div\", { className: \"item-list item-list-space-up\", children: [\n errorSection,\n dataCard,\n matchedSectionsEl,\n matchedElementsEl,\n /* @__PURE__ */ jsx(Timeline, { items: timelineData })\n ] })\n ] });\n};\nvar detail_side_default = DetailSide;\nexport {\n detail_side_default as default\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nconst SvgLogoPlain2 = (props) => /* @__PURE__ */ jsxs(\"svg\", __spreadProps(__spreadValues({ xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", xmlSpace: \"preserve\", width: 535.041, height: 203.6, style: {\n shapeRendering: \"geometricPrecision\",\n textRendering: \"geometricPrecision\",\n imageRendering: \"optimizeQuality\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n}, viewBox: \"0 0 16897.65 6430.11\" }, props), { children: [\n /* @__PURE__ */ jsxs(\"defs\", { children: [\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain2_svg__id0\", x1: 11103.21, x2: 10930.41, y1: 5027.34, y2: 1211.98, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#0a77d4\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#00b1e0\"\n } })\n ] }),\n /* @__PURE__ */ jsx(\"linearGradient\", { xlinkHref: \"#logo-plain2_svg__id0\", id: \"logo-plain2_svg__id1\", x1: 11407.32, x2: 11286.4, y1: 5023.83, y2: 1215.5, gradientUnits: \"userSpaceOnUse\" }),\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain2_svg__id2\", x1: 6311.87, x2: 3547.5, y1: 4699.25, y2: 1677.39, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#f65926\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#f0ab1f\"\n } })\n ] }),\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain2_svg__id3\", x1: 3105.35, x2: 2612.67, y1: 5075.61, y2: 1311.04, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#e52652\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#ff4956\"\n } })\n ] }),\n /* @__PURE__ */ jsxs(\"linearGradient\", { id: \"logo-plain2_svg__id4\", x1: 14599.77, x2: 12e3, y1: 4808.34, y2: 1573.25, gradientUnits: \"userSpaceOnUse\", children: [\n /* @__PURE__ */ jsx(\"stop\", { offset: 0, style: {\n stopOpacity: 1,\n stopColor: \"#02c0a7\"\n } }),\n /* @__PURE__ */ jsx(\"stop\", { offset: 1, style: {\n stopOpacity: 1,\n stopColor: \"#02e097\"\n } })\n ] }),\n /* @__PURE__ */ jsx(\"style\", { children: \".logo-plain2_svg__fil8{fill:#fefefe}\" })\n ] }),\n /* @__PURE__ */ jsx(\"g\", { id: \"logo-plain2_svg__\\\\u56FE\\\\u5C42_x0020_1\", children: /* @__PURE__ */ jsxs(\"g\", { id: \"logo-plain2_svg___1978240863120\", children: [\n /* @__PURE__ */ jsx(\"path\", { d: \"M2921.92 814.37h2943.46c660.05 0 1200.11 540.04 1200.11 1200.11v669.56c-180.23 1562.84-842.69 2686.31-2539.2 2867.65h-656.9c-1403.42-112.59-2125.37-923.3-2147.58-2450.77V2014.48c0-660.07 540.04-1200.11 1200.11-1200.11z\", style: {\n fill: \"none\",\n stroke: \"#e62129\",\n strokeWidth: 23.87,\n strokeMiterlimit: 22.9256\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M908.05 649.1c172.38 0 312.1 139.73 312.1 312.1 0 172.38-139.73 312.1-312.1 312.1-172.38 0-312.1-139.73-312.1-312.1 0-172.38 139.73-312.1 312.1-312.1zm15081.56 0c-172.38 0-312.1 139.73-312.1 312.1 0 172.38 139.73 312.1 312.1 312.1 172.38 0 312.1-139.73 312.1-312.1 0-172.38-139.73-312.1-312.1-312.1zM16304.76.03H11565.2c-332.34-.73-635.61 30.83-892.17 114.33-1164.61 314.95-1684.86 539.69-2204.5 542.55-529.24 2.92-1057.71-221.77-2243.89-542.55C5968.08 30.86 5664.81-.7 5332.47.03H592.91C266.8.03.01 266.82.01 592.93v727.65c0 326.11 262.25 574.15 588.16 562.9 244.44-8.44 379.43 161.6 368.56 407.41v1401.3c844.04 3884.05 6459.63 3705.54 6872.25-983.68 37.55-479.97 225.37-745.7 619.85-795.03 394.48 49.33 582.3 315.06 619.85 795.03 221.1 2512.67 1570.99 3564.6 3624.76 3705.62 1575.25-121.99 2822.57-766.6 3247.49-2721.94v-1401.3c-10.86-245.81 124.13-415.84 368.56-407.41 325.91 11.24 588.16-236.8 588.16-562.9V592.93c0-326.11-266.79-592.9-592.9-592.9z\", style: {\n fill: \"#332c2b\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M4404.53 5551.69h138.96c1696.5-181.34 2358.97-1304.82 2539.2-2867.65v-669.56c0-660.07-540.06-1200.11-1200.11-1200.11H2939.12c-660.07 0-1200.11 540.04-1200.11 1200.11v1086.44c22.21 1527.47 744.16 2338.19 2147.58 2450.77h517.94z\", style: {\n fill: \"#f63d55\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M2884.03 3833.6c-562.03-552.91 337.59-1229.84 756.52-784.77l-668.1-718.53C2724 1698.38 2875.6 1176.8 3604.09 814.36h-682.18c-660.07 0-1200.11 540.04-1200.11 1200.11v1086.44c22.21 1527.47 744.16 2338.19 2147.58 2450.77h517.94c447.09-261.52 828.85-610.16 1124.32-1073.8-192.91 108.48-371.35 123.1-530.58 12.63-269.77 225.61-533.22 868.1-809.3 676.82L2884.01 3833.59z\", style: {\n fill: \"url(#logo-plain2_svg__id3)\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M12967.79 5585.01c1654.02-184.97 2231.4-1330.91 2306.7-2925.01l-43.57-682.94c-42.95-673.27-608.37-1224.11-1256.49-1224.11H11084.21c-648.13 0-1143.27 550.85-1100.32 1224.11l70.69 1108.16c121.19 1558.01 882.83 2384.94 2268.19 2499.78h645.03z\", style: {\n fill: \"url(#logo-plain2_svg__id1)\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 3266.42, cy: 4767.17, r: 119.53, style: {\n fill: \"#f3a04e\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M11243.45 3832.57c-587.85-563.96 251.45-1254.43 691.78-800.45l-702.77-732.9c-285.07-644.56-170.14-1176.57 521.59-1546.26h-669.84c-648.13 0-1143.27 550.85-1100.32 1224.11l70.69 1108.16c121.19 1558.01 882.83 2384.94 2268.19 2499.78h508.57c422-266.75 774.17-622.36 1034.13-1095.27-182.37 110.65-356.62 125.56-520.16 12.88-250.21 230.12-467.1 885.46-750.63 690.36l-1351.23-1360.42z\", style: {\n fill: \"url(#logo-plain2_svg__id0)\",\n stroke: \"#06b1ab\",\n strokeWidth: 9.1,\n strokeMiterlimit: 22.9256\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M11754.05 752.96c-691.73 369.69-806.66 901.7-521.59 1546.26l702.77 732.9c-440.33-453.98-1279.63 236.49-691.78 800.45 1571.66 1582.35 780.78 887.85 1587.88 1752.45h136.46c1654.02-184.97 2231.4-1330.91 2306.7-2925.01l-43.57-682.94c-42.95-673.27-608.37-1224.11-1256.49-1224.11h-2220.38z\", style: {\n fill: \"url(#logo-plain2_svg__id4)\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 13725.89, cy: 2247.09, r: 867.65, className: \"logo-plain2_svg__fil8\" }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 11745.99, cy: 4944.33, r: 119.53, style: {\n fill: \"#52c2f1\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"M3604.1 814.37c-728.5 362.44-880.09 884.02-631.64 1515.94l668.1 718.53c-418.94-445.08-1318.56 231.85-756.52 784.77l1503.3 1718.08h138.96c1696.5-181.34 2358.97-1304.82 2539.2-2867.65v-669.56c0-660.07-540.06-1200.11-1200.11-1200.11H3604.11z\", style: {\n fill: \"url(#logo-plain2_svg__id2)\"\n } }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m3602.42 3012.57-2.01-1.79-1.22-1c-433.3-363.07-1259.33 288.49-715.16 823.82l1503.3 1718.08h138.96c366.16-39.14 684.05-122.25 959.42-244.11l-1883.3-2295z\", style: {\n fill: \"#f9483e\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 5652.09, cy: 2247.09, r: 867.65, className: \"logo-plain2_svg__fil8\" }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 5669.32, cy: 4261.82, r: 86.65, style: {\n fill: \"#f7b873\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 3775.08, cy: 4120.55, r: 174.77, className: \"logo-plain2_svg__fil8\" }),\n /* @__PURE__ */ jsx(\"path\", { d: \"m11770.33 2919.17 123.64 74.69c7.2 5.99 14.32 12.27 21.35 18.8l1988.29 2318.88c-264.55 126.79-574.49 213.07-935.82 253.47h-136.46c-807.1-864.6-16.22-170.1-1587.88-1752.45-520.29-499.15 77.34-1097.23 526.88-913.39z\", style: {\n fill: \"#06b1ab\"\n } }),\n /* @__PURE__ */ jsx(\"circle\", { cx: 12254.65, cy: 4297.71, r: 174.77, className: \"logo-plain2_svg__fil8\" })\n ] }) })\n] }));\nvar logo_plain2_default = SvgLogoPlain2;\nexport {\n logo_plain2_default as default\n};\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport \"./sidebar.css\";\nimport { useEffect } from \"react\";\nimport {\n ArrowRightOutlined,\n CheckOutlined,\n ClockCircleOutlined,\n CloseOutlined,\n LogoutOutlined,\n MinusOutlined\n} from \"@ant-design/icons\";\nimport { Button } from \"antd\";\nimport PanelTitle from \"./panel-title\";\nimport { timeCostStrElement } from \"./misc\";\nimport Logo from \"./assets/logo-plain2.js\";\nimport { useAllCurrentTasks, useExecutionDump } from \"./store\";\nimport { typeStr } from \"../utils\";\nconst SideItem = (props) => {\n var _a, _b, _c;\n const { task, onClick, selected } = props;\n const selectedClass = selected ? \"selected\" : \"\";\n let statusIcon = /* @__PURE__ */ jsx(MinusOutlined, {});\n if (task.status === \"success\") {\n statusIcon = /* @__PURE__ */ jsx(CheckOutlined, {});\n } else if (task.status === \"fail\") {\n statusIcon = /* @__PURE__ */ jsx(CloseOutlined, {});\n } else if (task.status === \"pending\") {\n statusIcon = /* @__PURE__ */ jsx(ClockCircleOutlined, {});\n } else if (task.status === \"cancelled\") {\n statusIcon = /* @__PURE__ */ jsx(LogoutOutlined, {});\n } else if (task.status === \"running\") {\n statusIcon = /* @__PURE__ */ jsx(ArrowRightOutlined, {});\n }\n let statusText = task.status;\n if ((_a = task.timing) == null ? void 0 : _a.cost) {\n statusText = timeCostStrElement(task.timing.cost);\n }\n let contentRow;\n if (task.type === \"Planning\") {\n contentRow = /* @__PURE__ */ jsx(\"div\", { className: \"side-item-content\", children: (_b = task.param) == null ? void 0 : _b.userPrompt });\n } else if (task.type === \"Insight\" && task.subType === \"Query\") {\n const demand = (_c = task.param) == null ? void 0 : _c.dataDemand;\n const contentToShow = typeof demand === \"string\" ? demand : JSON.stringify(demand);\n contentRow = /* @__PURE__ */ jsx(\"div\", { className: \"side-item-content\", children: contentToShow });\n } else {\n }\n return /* @__PURE__ */ jsxs(\n \"div\",\n {\n className: `side-item ${selectedClass}`,\n onClick,\n onMouseEnter: (event) => {\n var _a2;\n const rect = event.currentTarget.getBoundingClientRect();\n const x = rect.left + rect.width;\n const y = rect.top;\n (_a2 = props.onItemHover) == null ? void 0 : _a2.call(props, task, x, y);\n },\n onMouseLeave: () => {\n var _a2;\n (_a2 = props.onItemHover) == null ? void 0 : _a2.call(props, null);\n },\n children: [\n \" \",\n /* @__PURE__ */ jsxs(\"div\", { className: `side-item-name`, children: [\n /* @__PURE__ */ jsx(\"span\", { className: `status-icon status-icon-${task.status}`, children: statusIcon }),\n /* @__PURE__ */ jsx(\"div\", { className: \"title\", children: typeStr(task) }),\n /* @__PURE__ */ jsx(\"div\", { className: \"status-text\", children: statusText })\n ] }),\n contentRow\n ]\n }\n );\n};\nconst Sidebar = (props) => {\n const groupedDumps = useExecutionDump((store) => store.dump);\n const setActiveTask = useExecutionDump((store) => store.setActiveTask);\n const activeTask = useExecutionDump((store) => store.activeTask);\n const setHoverTask = useExecutionDump((store) => store.setHoverTask);\n const setHoverPreviewConfig = useExecutionDump((store) => store.setHoverPreviewConfig);\n const reset = useExecutionDump((store) => store.reset);\n const allTasks = useAllCurrentTasks();\n const currentSelectedIndex = allTasks == null ? void 0 : allTasks.findIndex((task) => task === activeTask);\n useEffect(() => {\n const handleKeyDown = (e) => {\n if (!(allTasks == null ? void 0 : allTasks.length) || (allTasks == null ? void 0 : allTasks.length) <= 1) {\n return;\n }\n if (e.key === \"ArrowUp\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n const nextIndex = currentSelectedIndex - 1;\n if (nextIndex < 0) {\n return;\n }\n const nextTask = allTasks[nextIndex];\n setActiveTask(nextTask);\n } else if (e.key === \"ArrowDown\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault();\n const nextIndex = currentSelectedIndex + 1;\n if (nextIndex >= allTasks.length) {\n return;\n }\n const nextTask = allTasks[nextIndex];\n setActiveTask(nextTask);\n }\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [currentSelectedIndex, allTasks, setActiveTask]);\n const sideList = (groupedDumps == null ? void 0 : groupedDumps.length) ? groupedDumps.map((group, groupIndex) => {\n const executions = group.executions.map((execution, indexOfExecution) => {\n const { tasks } = execution;\n const taskList = tasks.map((task, index) => {\n return /* @__PURE__ */ jsx(\n SideItem,\n {\n task,\n selected: task === activeTask,\n onClick: () => {\n setActiveTask(task);\n },\n onItemHover: (hoverTask, x, y) => {\n if (hoverTask && x && y) {\n setHoverPreviewConfig({ x, y });\n setHoverTask(hoverTask);\n } else {\n setHoverPreviewConfig(null);\n setHoverTask(null);\n }\n }\n },\n index\n );\n });\n let seperator;\n switch (indexOfExecution) {\n case 0:\n seperator = /* @__PURE__ */ jsx(\"div\", { className: \"side-seperator side-seperator-space-up\" });\n break;\n default:\n seperator = /* @__PURE__ */ jsx(\"div\", { className: \"side-seperator side-seperator-line side-seperator-space-up side-seperator-space-down\" });\n break;\n }\n return /* @__PURE__ */ jsxs(\"div\", { children: [\n seperator,\n /* @__PURE__ */ jsx(\"div\", { className: \"side-sub-title\", children: execution.name }),\n taskList\n ] }, indexOfExecution);\n });\n return /* @__PURE__ */ jsxs(\"div\", { children: [\n /* @__PURE__ */ jsx(PanelTitle, { title: group.groupName }),\n executions\n ] }, groupIndex);\n }) : /* @__PURE__ */ jsx(\"span\", { children: \"no tasks\" });\n return /* @__PURE__ */ jsxs(\"div\", { className: \"side-bar\", children: [\n /* @__PURE__ */ jsxs(\"div\", { className: \"top-controls\", children: [\n /* @__PURE__ */ jsx(\"div\", { className: \"brand\", onClick: reset, style: { display: (props == null ? void 0 : props.hideLogo) ? \"none\" : \"flex\" }, children: /* @__PURE__ */ jsx(\n Logo,\n {\n style: { width: 70, height: 70, margin: \"auto\" },\n onClick: () => {\n if (props.logoAction) {\n props.logoAction();\n } else {\n location.reload();\n }\n }\n }\n ) }),\n /* @__PURE__ */ jsx(\"div\", { className: \"task-list\", children: sideList }),\n /* @__PURE__ */ jsx(\"div\", { className: \"side-seperator side-seperator-line side-seperator-space-up\" }),\n /* @__PURE__ */ jsx(\"div\", { className: \"task-meta-section\", children: /* @__PURE__ */ jsx(\"div\", { className: \"task-meta\", children: \"use Command + ⬆︎ / ⬇︎ to switch\" }) })\n ] }),\n /* @__PURE__ */ jsx(\"div\", { className: \"bottom-controls\", children: /* @__PURE__ */ jsx(Button, { onClick: reset, type: \"text\", className: \"unload_btn\", children: \"Unload\" }) })\n ] });\n};\nvar sidebar_default = Sidebar;\nexport {\n sidebar_default as default\n};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nimport \"./index.css\";\nimport { ConfigProvider, message, Upload, Button } from \"antd\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { Helmet } from \"@modern-js/runtime/head\";\nimport { Panel, PanelGroup, PanelResizeHandle } from \"react-resizable-panels\";\nimport Timeline from \"./component/timeline\";\nimport DetailPanel from \"./component/detail-panel\";\nimport Logo from \"./component/assets/logo-plain.js\";\nimport GlobalHoverPreview from \"./component/global-hover-preview\";\nimport { useExecutionDump } from \"./component/store\";\nimport DetailSide from \"./component/detail-side\";\nimport Sidebar from \"./component/sidebar\";\nconst { Dragger } = Upload;\nlet globalRenderCount = 1;\nfunction Visualizer(props) {\n const { dump } = props;\n const executionDump = useExecutionDump((store) => store.dump);\n const setGroupedDump = useExecutionDump((store) => store.setGroupedDump);\n const reset = useExecutionDump((store) => store.reset);\n const [mainLayoutChangeFlag, setMainLayoutChangeFlag] = useState(0);\n const mainLayoutChangedRef = useRef(false);\n useEffect(() => {\n if (dump) {\n setGroupedDump(dump);\n }\n return () => {\n reset();\n };\n }, []);\n useEffect(() => {\n const onResize = () => {\n setMainLayoutChangeFlag((prev) => prev + 1);\n };\n window.addEventListener(\"resize\", onResize);\n return () => {\n window.removeEventListener(\"resize\", onResize);\n };\n }, []);\n const uploadProps = {\n name: \"file\",\n multiple: false,\n capture: false,\n customRequest: () => {\n },\n beforeUpload(file) {\n const ifValidFile = file.name.endsWith(\"web-dump.json\");\n if (!ifValidFile) {\n message.error(\"invalid file extension\");\n return false;\n }\n const reader = new FileReader();\n reader.readAsText(file);\n reader.onload = (e) => {\n var _a;\n const result = (_a = e.target) == null ? void 0 : _a.result;\n if (typeof result === \"string\") {\n try {\n const data = JSON.parse(result);\n setGroupedDump(data);\n } catch (e2) {\n console.error(e2);\n message.error(\"failed to parse dump data\", e2.message);\n }\n } else {\n message.error(\"Invalid dump file\");\n }\n };\n return false;\n }\n };\n const loadTasksDemo = () => {\n };\n const loadInsightDemo = () => {\n };\n let mainContent;\n if (!executionDump) {\n mainContent = /* @__PURE__ */ jsxs(\"div\", { className: \"main-right uploader-wrapper\", children: [\n /* @__PURE__ */ jsxs(Dragger, __spreadProps(__spreadValues({ className: \"uploader\" }, uploadProps), { children: [\n /* @__PURE__ */ jsx(\"p\", { className: \"ant-upload-drag-icon\", children: /* @__PURE__ */ jsx(Logo, { style: { width: 100, height: 100, margin: \"auto\" } }) }),\n /* @__PURE__ */ jsxs(\"p\", { className: \"ant-upload-text\", children: [\n \"Click or drag the\",\n \" \",\n /* @__PURE__ */ jsx(\"b\", { children: /* @__PURE__ */ jsx(\"i\", { children: \".web-dump.json\" }) }),\n \" \",\n \"file into this area.\"\n ] }),\n /* @__PURE__ */ jsxs(\"p\", { className: \"ant-upload-text\", children: [\n \"The latest dump file is usually placed in\",\n \" \",\n /* @__PURE__ */ jsx(\"b\", { children: /* @__PURE__ */ jsx(\"i\", { children: \"./midscene_run/\" }) })\n ] }),\n /* @__PURE__ */ jsx(\"p\", { className: \"ant-upload-text\", children: \"All data will be processed locally by the browser. No data will be sent to the server.\" })\n ] })),\n /* @__PURE__ */ jsxs(\"div\", { className: \"demo-loader\", children: [\n /* @__PURE__ */ jsx(Button, { type: \"link\", onClick: loadTasksDemo, children: \"Load Tasks Demo\" }),\n /* @__PURE__ */ jsx(Button, { type: \"link\", onClick: loadInsightDemo, children: \"Load Insight Demo\" })\n ] })\n ] });\n } else {\n mainContent = /* @__PURE__ */ jsxs(\n PanelGroup,\n {\n autoSaveId: \"main-page-layout\",\n direction: \"horizontal\",\n onLayout: () => {\n if (!mainLayoutChangedRef.current) {\n setMainLayoutChangeFlag((prev) => prev + 1);\n }\n },\n children: [\n /* @__PURE__ */ jsx(Panel, { maxSize: 95, defaultSize: 20, children: /* @__PURE__ */ jsx(Sidebar, { hideLogo: props == null ? void 0 : props.hideLogo, logoAction: props == null ? void 0 : props.logoAction }) }),\n /* @__PURE__ */ jsx(\n PanelResizeHandle,\n {\n onDragging: (isChanging) => {\n if (mainLayoutChangedRef.current && !isChanging) {\n setMainLayoutChangeFlag((prev) => prev + 1);\n }\n mainLayoutChangedRef.current = isChanging;\n }\n }\n ),\n /* @__PURE__ */ jsx(Panel, { defaultSize: 80, maxSize: 95, children: /* @__PURE__ */ jsxs(\"div\", { className: \"main-right\", children: [\n /* @__PURE__ */ jsx(Timeline, {}, mainLayoutChangeFlag),\n /* @__PURE__ */ jsx(\"div\", { className: \"main-content\", children: /* @__PURE__ */ jsxs(PanelGroup, { autoSaveId: \"page-detail-layout\", direction: \"horizontal\", children: [\n /* @__PURE__ */ jsx(Panel, { maxSize: 95, children: /* @__PURE__ */ jsx(\"div\", { className: \"main-side\", children: /* @__PURE__ */ jsx(DetailSide, {}) }) }),\n /* @__PURE__ */ jsx(PanelResizeHandle, {}),\n /* @__PURE__ */ jsx(Panel, { defaultSize: 75, maxSize: 95, children: /* @__PURE__ */ jsx(\"div\", { className: \"main-canvas-container\", children: /* @__PURE__ */ jsx(DetailPanel, {}) }) })\n ] }) })\n ] }) })\n ]\n }\n );\n }\n const [containerHeight, setContainerHeight] = useState(\"100%\");\n useEffect(() => {\n const ifInRspressPage = document.querySelector(\".rspress-nav\");\n const navHeightKey = \"--rp-nav-height\";\n const originalNavHeight = getComputedStyle(document.documentElement).getPropertyValue(navHeightKey);\n if (ifInRspressPage) {\n setContainerHeight(\"calc(100vh - 72px)\");\n document.documentElement.style.setProperty(navHeightKey, \"42px\");\n }\n return () => {\n if (ifInRspressPage) {\n document.documentElement.style.setProperty(navHeightKey, originalNavHeight);\n }\n };\n }, []);\n useEffect(() => {\n return () => {\n globalRenderCount += 1;\n };\n }, []);\n return /* @__PURE__ */ jsxs(\n ConfigProvider,\n {\n theme: {\n components: {\n Layout: {\n headerHeight: 60,\n headerPadding: \"0 30px\",\n headerBg: \"#FFF\",\n bodyBg: \"#FFF\"\n }\n }\n },\n children: [\n /* @__PURE__ */ jsx(Helmet, { children: /* @__PURE__ */ jsx(\"title\", { children: \"MidScene.js - Visualization Tool\" }) }),\n /* @__PURE__ */ jsx(\"div\", { className: \"page-container\", style: { height: containerHeight }, children: mainContent }, `render-${globalRenderCount}`),\n /* @__PURE__ */ jsx(GlobalHoverPreview, {})\n ]\n }\n );\n}\nvar src_default = Visualizer;\nexport {\n Visualizer,\n src_default as default\n};\n","import { Visualizer } from '@midscene/visualizer';\nimport React, { useEffect, useState } from 'react';\nimport { useNavigate } from '@modern-js/runtime/router';\n\ndeclare module '@midscene/visualizer' {\n export function Visualizer(dumpInfo: any): any;\n}\n\nexport function Report() {\n const navigation = useNavigate();\n const [dumpJson, setDumpJson] = useState<any>(null);\n const [isLoading, setLoading] = useState<any>(true);\n // eslint-disable-next-line node/prefer-global/url-search-params\n const searchParams = new URLSearchParams(window.location.search);\n const dumpId = searchParams.get('dumpId')?.toString() || '';\n\n useEffect(() => {\n fetch(`/public/${dumpId}`)\n .then((response) => {\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n return response.json();\n })\n .then((data) => {\n setDumpJson(data);\n console.log('data', data); // 在此处处理 JSON 数据\n })\n .catch((error) => console.error('Error:', error))\n .finally(() => {\n setLoading(false);\n });\n }, []);\n return (\n <div className=\"container-box\">\n <div>\n <main>\n {!isLoading && (\n <Visualizer\n dump={dumpJson}\n logoAction={() => {\n navigation('/');\n }}\n />\n )}\n </main>\n <div></div>\n </div>\n </div>\n );\n}\n","// extracted by css-extract-rspack-plugin\nexport default {\"nav\":\"nav-u66WwU\",\"container\":\"container-Hq9bKt\",\"test-result\":\"test-result-pnK7ny\",\"testResult\":\"test-result-pnK7ny\",\"test-details\":\"test-details-UpOFMM\",\"testDetails\":\"test-details-UpOFMM\",\"test-info\":\"test-info-AphlaH\",\"testInfo\":\"test-info-AphlaH\",\"test-name\":\"test-name-us3J87\",\"testName\":\"test-name-us3J87\",\"failed\":\"failed-LIeQqO\",\"test-file-path\":\"test-file-path-BdYiH4\",\"testFilePath\":\"test-file-path-BdYiH4\"};","import { useNavigate } from '@modern-js/runtime/router';\nimport React, { useEffect, useState } from 'react';\nimport { Menu, Collapse } from 'antd';\nimport type { MenuProps, CollapseProps } from 'antd';\nimport styeld from './Home.module.css';\nimport './TestResult.css';\n\ntype TestStatus = 'passed' | 'failed' | 'flaky' | 'skipped';\n\ntype TestData = {\n testId: string;\n title: string;\n status: string;\n duration: number;\n location: {\n file: string;\n line: number;\n column: number;\n };\n dumpPath: string;\n};\n\ntype MenuItem = Required<MenuProps>['items'][number];\nexport type Stats = {\n total: number;\n passed: number;\n failed: number;\n flaky: number;\n skipped: number;\n ok: boolean;\n};\n\nconst statusIcon = (status: TestStatus) => {\n switch (status) {\n case 'failed':\n return <span className=\"failed\">❌</span>;\n case 'flaky':\n return <span className=\"flaky\">⚠️</span>;\n default:\n return '';\n }\n};\n\nconst TestResult = (props: {\n status: string;\n statusDataList: {\n [status: string]: TestData[];\n };\n}) => {\n const navigator = useNavigate();\n const onChange = (key: string | string[]) => {\n console.log(key);\n };\n\n const testDataList =\n props.status === 'all'\n ? Object.keys(props.statusDataList).reduce((res, status) => {\n res.push(...props.statusDataList[status]);\n return res;\n }, [] as TestData[])\n : props.statusDataList[props.status];\n const groupTestDataWithFileName =\n testDataList?.reduce(\n (res, next) => {\n if (!res[next.location.file]) {\n res[next.location.file] = [];\n }\n res[next.location.file].push(next);\n return res;\n },\n {} as {\n [fileName: string]: TestData[];\n },\n ) || {};\n\n const items: CollapseProps['items'] = Object.keys(groupTestDataWithFileName).map((fileName, key) => {\n return {\n key,\n label: fileName,\n children: groupTestDataWithFileName[fileName].map((testData, key) => {\n const timeMinutes = Math.floor(testData.duration / 1000 / 60);\n const timeSeconds = Math.floor((testData.duration / 1000) % 60);\n return (\n <div\n className={styeld['test-details']}\n key={key}\n onClick={() => {\n navigator(`/report?dumpId=${testData.dumpPath.split('/').pop()}`);\n }}\n >\n <div className={styeld['test-info']}>\n <span className={styeld['test-name']}>\n {statusIcon(testData.status as TestStatus)}\n {testData.title}\n </span>\n <span>\n duration: {timeMinutes !== 0 && `${timeMinutes}m`} {timeSeconds && `${timeSeconds}s`}\n </span>\n </div>\n <div className={styeld['test-file-path']}>\n {testData.location.file}:{testData.location.line}\n </div>\n </div>\n );\n }),\n };\n });\n return (\n <Collapse\n className={styeld['test-result']}\n activeKey={[...Array(items.length).keys()]}\n items={items}\n onChange={onChange}\n />\n );\n};\n\nexport const StatsNavView: React.FC<{\n stats: Stats;\n statusDataList: {\n [stats: string]: TestData[];\n };\n}> = ({ stats, statusDataList }) => {\n // eslint-disable-next-line node/prefer-global/url-search-params\n const searchParams = new URLSearchParams(window.location.search);\n const navigate = useNavigate();\n const q = searchParams.get('status')?.toString() || '';\n const items: MenuItem[] = [\n {\n label: `All (${stats.total - stats.skipped})`,\n key: 'all',\n },\n {\n label: `Passed (${stats.passed})`,\n key: 'passed',\n },\n {\n label: `Failed (${stats.failed})`,\n key: 'failed',\n icon: statusIcon('failed'),\n },\n {\n label: `Flaky (${stats.flaky})`,\n key: 'flaky',\n icon: statusIcon('flaky'),\n },\n {\n label: `Skipped (${stats.skipped})`,\n key: 'skipped',\n icon: statusIcon('skipped'),\n },\n ];\n\n const [status, setStatus] = useState(q || 'all');\n\n const onClick: MenuProps['onClick'] = (e) => {\n navigate(`?status=${e.key}`);\n setStatus(e.key);\n };\n\n return (\n <>\n <div className={styeld.nav}>\n <Menu onClick={onClick} selectedKeys={[status]} mode=\"horizontal\" items={items} />\n </div>\n <TestResult status={status} statusDataList={statusDataList} />\n </>\n );\n};\n\nexport function Home() {\n const [testDataList, setTestDataJson] = useState<Array<TestData>>([]);\n const [isLoading, setLoading] = useState<any>(true);\n useEffect(() => {\n fetch('/public/test-data-list.json')\n .then((response) => {\n if (!response.ok) {\n throw new Error(`HTTP error! Status: ${response.status}`);\n }\n return response.json();\n })\n .then((data) => {\n setTestDataJson(data['test-list']);\n console.log('data', data, data['test-list']); // 在此处处理 JSON 数据\n })\n .catch((error) => console.error('Error:', error))\n .finally(() => {\n setLoading(false);\n });\n }, []);\n\n function TestResultReport(props: { testDataList: TestData[] }) {\n const { testDataList } = props;\n const statusDataList = testDataList?.reduce(\n (res, next) => {\n res[next.status] = [...(res[next.status] || []), next];\n return res;\n },\n {} as {\n [stats: string]: Array<TestData>;\n },\n );\n console.log('statusDataList', testDataList, statusDataList);\n const total = testDataList.length;\n const passed = statusDataList.passed?.length || 0;\n const failed = statusDataList.failed?.length || 0;\n const flaky = statusDataList.flaky?.length || 0;\n const skipped = statusDataList.skipped?.length || 0;\n const ok = Boolean(total === passed);\n\n return (\n <div className={styeld.container}>\n <StatsNavView stats={{ total, passed, failed, flaky, skipped, ok }} statusDataList={statusDataList} />\n </div>\n );\n }\n return <>{!isLoading && <TestResultReport testDataList={testDataList} />}</>;\n}\n","import { BrowserRouter, Route, Routes } from '@modern-js/runtime/router';\nimport { Report } from './pages/Report';\nimport { Home } from './pages/Home';\n\nexport default () => {\n return (\n <BrowserRouter>\n <Routes>\n <Route index element={<Home />} />\n <Route path=\"report\" element={<Report />} />\n </Routes>\n </BrowserRouter>\n );\n};\n","import { defineRuntimeConfig } from '@modern-js/runtime';\n\nexport default defineRuntimeConfig({});\n","import \"core-js\";"],"names":["__defProp","Object","defineProperty","__defProps","defineProperties","__getOwnPropDescs","getOwnPropertyDescriptors","__getOwnPropSymbols","getOwnPropertySymbols","__hasOwnProp","prototype","hasOwnProperty","__propIsEnum","propertyIsEnumerable","__defNormalProp","obj","key","value","enumerable","configurable","writable","__spreadValues","a","b","prop","call","__spreadProps","useBlackboardPreference","set","bgVisible","textsVisible","setBgVisible","visible","setTextsVisible","useExecutionDump","get","initData","dump","activeTask","hoverTask","hoverTimestamp","hoverPreviewConfig","syncToInsightDump","loadData","useInsightDump","getState","resetInsightDump","reset","setGroupedDump","item","console","log","executions","length","tasks","setActiveTask","task","type","setHoverTask","timestamp","setHoverPreviewConfig","config","x","Math","floor","y","useAllCurrentTasks","groupedDumps","store","reduce","acc","group","tasksInside","acc2","execution","concat","loadId","_loadId","highlightSectionNames","highlightElements","data","setHighlightSectionNames","sections","setHighlightElements","elements","__async","__this","__arguments","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","throw","done","then","apply","TimelineWidget","props","_a","_b","_c","_d","domRef","useRef","app","useMemo","gridsContainer","screenshotsContainer","highlightMaskContainer","containerUpdaterRef","_s","_e","_hs","_he","indicatorContainer","allScreenshots","screenshots","maxTime","timeOffset","timeTitleBottom","timeTextTop","closestScreenshotItemOnXY","_y","closestScreenshot","closestIndex","i","shot","startMs","endMs","highlightMask","hoverStartMs","hoverEndMs","hoverMask","fn","current","useEffect","_a2","_b2","clientWidth","clientHeight","canvasWidth","canvasHeight","singleGridWidth","gridCount","stepCandidate","timeStep","gridRatio","leftForTimeOffset","timeOffsetForLeft","left","init","width","height","backgroundColor","destroy","replaceChildren","canvas","pixiTextForNumber","num","textContent","fontSize","fill","removeChildren","titleBgSection","beginFill","drawRect","endFill","addChild","gridLine","gridLineLeft","text","textLeft","stage","warn","shotContainers","screenshotTop","commonPadding","screenshotMaxHeight","forEach","screenshot","index","container","push","img","Image","src","onload","screenshotTexture","screenshotSprite","originalWidth","screenshotWidth","screenshotHeight","screenshotX","border","lineStyle","highlightMaskUpdater","start","end","hoverStart","hoverEnd","mask","start2","end2","alpha","leftBorder","rightBorder","mask2","interactive","view","addEventListener","event","_a3","_b3","offsetX","offsetY","onUnhighlight","closestContainer","children","child","newSpirit","screenshotSpirit","cloneSprite","sprite","clonedSprite","texture","position","copyFrom","scale","rotation","indicator","textBg","onHighlight","mouseX","mouseY","onTap","jsx","className","ref","timeline_default","allTasks","wrapper","startingTime","idCount","idTaskMap","recorders","recorder","ts","timing","recorderItemWithId","map","idStr","id","filter","recorderItem","sort","maskConfigForTask","highlightMaskConfig","hoverMaskConfig","param","refBounding","getBoundingClientRect","bottom","sectionColor","elementColor","colorForName","name","hashNumber","djb2Hash","str","hash","charCodeAt","highlightColorForType","noop","blackboard_default","context","matchedSection","matchedElement","size","screenshotBase64","screenWidth","screenHeight","appInitialed","setAppInitialed","useState","itemMarkContainer","textContainer","pixiBgRef","background","canvasEl","appendChild","parentElement","targetHeight","window","innerHeight","ratio","style","addChildAt","rectMarkForItem","rect","themeColor","onPointOver","onPointerOut","top","graphics","on","texts","max","nameFontSize","highlightSectionRects","highlightElementRects","highlightSectionRects2","highlightElementRects2","section","ifHighlight","includes","element","content","sectionTheme","content2","wordWrap","wordWrapWidth","textElement","textBorder","bottomTipA","jsxs","JSON","stringify","bottomTipB","checked","onChange","target","timeStr","format","typeStr","subType","ScreenshotItem","time","VIEW_TYPE_BLACKBOARD","VIEW_TYPE_SCREENSHOT","VIEW_TYPE_JSON","detail_panel_default","dumpId","blackboardViewAvailable","Boolean","preferredViewType","setViewType","viewType","input","replace","fullTime","handleKeyDown","preventDefault","document","removeEventListener","options","label","icon","unshift","theme","components","Segmented","itemSelectedBg","itemSelectedColor","logo_plain_default","xmlns","xmlnsXlink","xmlSpace","shapeRendering","textRendering","imageRendering","fillRule","clipRule","viewBox","x1","x2","y1","y2","gradientUnits","offset","stopOpacity","stopColor","xlinkHref","d","stroke","strokeWidth","strokeMiterlimit","cx","cy","r","global_hover_preview_default","wrapperRef","imageW","setImageW","imageH","setImageH","images","valid","shouldShow","body","widthInPractice","heightInPractice","onLoad","imgElement","naturalWidth","naturalHeight","panel_title_default","title","timeCostStrElement","timeCost","toFixed","fontVariantNumeric","fontFeatureSettings","Card","highlightWithColor","subtitle","onMouseEnter","onMouseLeave","characteristic","titleTag","placement","mouseEnterDelay","titleRightPaddingClass","modeClass","liteMode","display","MetaKV","objectWithoutKeys","keys","detail_side_default","_f","_g","_h","setHighlightSectionName","setHighlightElement","unhighlightSection","unhighlightElement","kv","isElementItem","center","isSectionItem","sectionCharacteristics","elementEl","bordered","color","sectionEl","Array","isArray","some","metaKVElement","status","cost","taskParam","userPrompt","prompt","dataDemand","matchedSectionsEl","kvToShow","sectionKV","highlightColor","description","bind","matchedElementsEl","idx","elementKV","errorSection","error","dataCard","plans","output","timelineData","Fragment","thought","items","logo_plain2_default","SideItem","contentRow","onClick","selected","statusIcon","statusText","demand","contentToShow","currentTarget","onItemHover","sidebar_default","currentSelectedIndex","findIndex","metaKey","ctrlKey","nextIndex","sideList","groupIndex","indexOfExecution","seperator","taskList","groupName","hideLogo","margin","logoAction","location","reload","Dragger","globalRenderCount","Visualizer","mainContent","executionDump","mainLayoutChangeFlag","setMainLayoutChangeFlag","mainLayoutChangedRef","onResize","prev","autoSaveId","direction","onLayout","maxSize","defaultSize","onDragging","isChanging","multiple","capture","customRequest","beforeUpload","file","endsWith","reader","FileReader","readAsText","result","parse","e2","message","containerHeight","setContainerHeight","ifInRspressPage","querySelector","navHeightKey","originalNavHeight","getComputedStyle","documentElement","getPropertyValue","setProperty","Layout","headerHeight","headerPadding","headerBg","bodyBg","Report","_searchParams_get","navigation","useNavigate","dumpJson","setDumpJson","isLoading","setLoading","URLSearchParams","search","toString","fetch","response","ok","Error","json","catch","finally","TestResult","navigator","testDataList","statusDataList","res","groupTestDataWithFileName","fileName","testData","timeMinutes","duration","timeSeconds","dumpPath","split","pop","line","Collapse","activeKey","StatsNavView","stats","searchParams","navigate","q","total","skipped","passed","failed","flaky","setStatus","Menu","selectedKeys","mode","Home","setTestDataJson","_statusDataList_passed","_statusDataList_failed","_statusDataList_flaky","_statusDataList_skipped","TestResultReport","BrowserRouter","Routes","Route","path","defineRuntimeConfig","__assetPrefix__"],"mappings":"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"}
|