@graphique/graphique
Version:
A data visualization system for React based on the Grammar of Graphics.
4 lines • 34.7 kB
JavaScript
import Me,{useMemo as Vr,useRef as Gr,useLayoutEffect as vr,useEffect as wr,useState as _r}from"react";import{Provider as Cr}from"jotai";import{timeParse as Lo,timeFormat as ie}from"d3-time-format";var Fo=(e,t="%Y-%m-%d")=>Lo(t)(e),Dt=e=>Object.prototype.toString.call(e)==="[object Date]",Mo=(e,t=!1)=>{let o;return t?o=e.getMonth()===0?ie("%b %Y")(e):ie("%b")(e):o=ie("%b %Y")(e),o},ye=(e,t="%b %d, %Y")=>ie(t)(e);import{scaleLinear as xe,scaleTime as He,scaleBand as We,scaleOrdinal as Se,scaleSequential as Ue}from"d3-scale";import{extent as Lt}from"d3-array";import{interpolateViridis as $t,schemeTableau10 as Jt}from"d3-scale-chromatic";var Kt=[Jt[0],Jt[1],Jt[4],Jt[2],Jt[3],...Jt.slice(5)],Ze=["0","2,2","5,4","2,8,2","15,4","8,2,8"];var Ne=(e=$t,t=5)=>{let o=[];for(let r=0;r<t;r+=1)o.push(e(r/(t-1)));return o};var Qt=(e,t=!1)=>{if(!(!e&&t))return e?.fill||e?.stroke||e?.strokeDasharray||e?.group||(t?void 0:()=>"__group")};var ae=({scalesState:e,data:t,copiedData:o,aes:r,width:m=500,height:a=450,margin:c,shouldExcludeMissingXYFromDomains:l})=>{let s={top:10,right:20,bottom:10,left:30,...c},{x:i,y:n,fill:D,stroke:S,strokeDasharray:G,hasZeroXBaseLine:y,hasZeroYBaseLine:_,geomGroupAccessors:A,y0Aes:V,y1Aes:M,geomAesYs:Y,geomAesStrokes:z,geomAesFills:B,geomAesStrokeDasharrays:R}=e,{domain:N,type:H,reverse:T}=i||{},{domain:v,type:u,reverse:j}=n||{},{domain:d,type:it,values:kt,reverse:at}=D||{},{domain:St,type:Mt,values:et,reverse:vt}=S||{},{domain:Rt,values:Xt}=G||{},It=(x,f,w)=>w.indexOf(x)-w.indexOf(f),wt=A.length?A[0]:void 0,ft=r?.fill||r?.stroke||r?.strokeDasharray||r?.group?Qt(r):wt,K=r.group||A.length||!1,lt=ft?Array.from(new Set(t.map(ft))):["__group"],Pt=r.y||(Y.length?Y[0]:void 0),_t=Pt??M??V,ht=r.stroke||(z.length?z[0]:void 0),C=r.fill||(B.length?B[0]:void 0),L=r.strokeDasharray||(R.length?R[0]:void 0),pt,ot=t.map(r.x).find(x=>x!=null);if(Dt(ot)){let x=N||Lt(t,r.x),f=typeof x[0]<"u"&&typeof x[1]<"u"&&x[0].valueOf()!==0&&x[1].valueOf()!==0;pt=He().range([s.left,m-s.right]).domain(f?x:[0,0])}else if(typeof ot=="number"){let x=Lt(t,r.x),f=N||[y?0:x[0],x[1]],w=typeof f[0]<"u"&&typeof f[1]<"u";pt=(H||xe)().range([s.left,m-s.right]).domain(w?f:[0,1])}else if(!Number.isFinite(ot)||typeof ot=="string"){let x=Array.from(new Set(o.map(r.x))),f=Array.from(new Set(t.map(r.x))),w=N||f.filter(W=>l?W!==null&&typeof W<"u":!0).sort((W,dt)=>It(W,dt,x));pt=We().range([s.left,m-s.right]).domain(w)}T&&pt?.domain(pt.domain().reverse());let mt;if(_t){let x=t.map(_t).find(f=>f!=null);if(Dt(x)){let f=v||Lt(t,Pt),w=typeof f[0]<"u"&&typeof f[1]<"u";mt=He().range([a-s.bottom,s.top]).domain(w?f:[0,1])}else if(typeof x=="number"){let f=Lt(t,Pt),w=v??[_?0:f[0],f[1]],W=typeof w[0]<"u"&&typeof w[1]<"u";mt=(u||xe)().range([a-s.bottom,s.top]).domain(W?w:[0,1])}else if(!Number.isFinite(x)||typeof x=="string"){let f=Array.from(new Set(o.map(_t))),w=Array.from(new Set(t.map(_t))),W=v||w.filter(dt=>l?dt!==null&&typeof dt<"u":!0).sort((dt,Ut)=>It(dt,Ut,f));mt=We().range([s.top,a-s.bottom]).domain(W)}}else mt=xe().range([a-s.bottom,s.top]).domain([0,1]);j&&mt?.domain(mt.domain().reverse());let Q;if(C){let x=t.map(C).find($=>$!=null),f=d||Lt(t,C),w=kt||$t,W=d||lt,dt=d||t.map($=>ft?ft($):"__group"),Ut=kt||Kt,ue=kt||Ne(w);if(it){let $=it;$()?.invertExtent?Q=$().domain($.name==="quantize"?f:dt).range(ue):$()?.interpolator?Q=$().domain(f).interpolator(w):(K=!0,Q=$().domain(W).range(Ut))}else!Number.isFinite(x)||typeof x=="string"?(K=!0,Q=Se().domain(W).range(Ut)):(Dt(x)||typeof x=="number")&&(K=!1,Q=Ue().domain(f).interpolator(w))}at&&Q?.interpolator&&Q?.domain(Q.domain().reverse());let U;if(ht){let x=t.map(ht).find(f=>f!=null);if(Mt){let f,w=Mt;switch(Mt.name){case"sequential":f=St||Lt(t,ht),U=w().domain(f).interpolator(et||$t);break;case"sequentialLog":f=St||Lt(t,ht),U=w().domain(f).interpolator(et||$t);break;case"sequentialSqrt":f=St||Lt(t,ht),U=w().domain(f).interpolator(et||$t);break;case"ordinal":K=!0,f=St||lt,U=w().domain(f).range(et||Kt);break;default:K=!0,f=St||lt,U=w().domain(f).range(et||Kt)}}else if(!Number.isFinite(x)||typeof x=="string"){K=!0;let f=St||lt;U=Se().domain(f).range(et||Kt)}else if(Dt(x)||typeof x=="number"){let f=St||Lt(t,ht);U=Ue().domain(f).interpolator(et||$t)}}vt&&U?.domain(U.domain().reverse());let Et;if(L){K=!0;let x=Rt||lt;Et=Se().domain(x).range(Xt||Ze)}return{xScale:pt,yScale:mt,fillScale:Q,strokeScale:U,strokeDasharrayScale:Et,groupAccessor:ft,groups:K?lt:void 0}};var Ro=(e,t)=>{let o;return(...r)=>{o&&clearTimeout(o),o=setTimeout(()=>{t(...r),o=null},e)}};var Xo=({nodes:e,focusedIndex:t,focusedStyles:o,unfocusedStyles:r})=>{let m=e,a=typeof t<"u"?[t].flat():void 0;Array.from(e)?.filter((l,s)=>a&&!a.includes(s))?.forEach(l=>{let s=l;Object.entries(r).forEach(([i,n])=>{s.style[i]=n})}),Object.entries(o).forEach(([l,s])=>{a?.forEach(i=>{m[i].style[l]=s})})},Io=({nodes:e,baseStyles:t})=>{Array.from(e).forEach(o=>{let r=o;Object.entries(t).forEach(([m,a])=>{r.style[m]=a})})};var zo=(e,t,o=.01)=>{let r=t.getTotalLength(),m=0,a=t.getPointAtLength((r+m)/2),c=50,l=0;for(;(e<a.x-o||e>a.x+o)&&(a=t.getPointAtLength((r+m)/2),e<a.x?r=(m+r)/2:m=(m+r)/2,l+=1,!(c<l)););return a.y};var Bo=(e,t,o,r)=>{let m=[];return e.forEach(a=>{let c=Object.keys(a).filter(s=>!r.includes(s)),l=Object.keys(a).reduce((s,i)=>{let n=s;return r.includes(i)&&(n[i]=a[i]),n},{});c.forEach(s=>{let i={};i[t]=s,i[o]=a[s],m.push({...i,...l})})}),m};var Oo=(e,t,o,r)=>{let m=Array.from(new Set(e.map(c=>Dt(t(c))?t(c).valueOf():t(c)))),a=Array.from(new Set(e.map(o)));return m.map((c,l)=>{let s={key:Dt(c)?c.valueOf():c,i:l};return a.forEach(i=>{let n=e.find(D=>Dt(t(D))?t(D).valueOf()===c.valueOf()&&o(D)===i:t(D)===c&&o(D)===i);n&&(s[i]=r(n)??void 0)}),s})};import J,{useMemo as Tt,useCallback as At,useEffect as xr,useRef as Ft,useState as Sr}from"react";import{Delaunay as Le}from"d3-delaunay";import{useAtom as re}from"jotai";import{pointer as xo}from"d3-selection";import{extent as So,max as hr,min as br}from"d3-array";import{atom as $o}from"jotai";var Zt=$o({header:"",x:"",y:""});import{atom as qe}from"jotai";var Fn=qe({}),st=qe({markerStroke:"#fff",defaultStroke:"#777777ee",defaultFill:"#777777ee",font:{family:`system-ui, BlinkMacSystemFont, Segoe UI,
Roboto, Oxygen-Sans, Ubuntu, Cantarell,
Helvetica Neue, sans-serif`},grid:{},axis:{showAxisLine:!1},axisX:{stroke:"#33333333",showAxisLine:!1},axisY:{stroke:"#33333333",showAxisLine:!1},geoms:{},legend:{},tooltip:{},animationDuration:1e3});import{atom as Zo}from"jotai";var be=(o=>(o.TOP="top",o.DATA="data",o))(be||{}),he=e=>Dt(e)?ye(e):typeof e=="number"?e.toLocaleString(void 0,{maximumFractionDigits:2}):e,gt=Zo({position:"data",keepInParent:!0,xFormat:he,yFormat:he,measureFormat:he,xAxis:!1,dx:()=>0,dy:()=>0});import{atom as No}from"jotai";var yt=No({numTicks:e=>{if(e&&e<500)return 3;if(e<800)return 5}});import{atom as Ho}from"jotai";var xt=Ho({numTicks:e=>e&&e<500?4:void 0});import{atom as Wo}from"jotai";var te=Wo({});import{atom as Uo}from"jotai";var ee=Uo({});import{atom as qo}from"jotai";var oe=qo({});import{atom as Jo}from"jotai";var De=Jo({range:[3,30]});import{atom as jo}from"jotai";var Gt=jo({});var Ko=(t=>(t.ZOOM="zoom",t))(Ko||{});var Qo=(o=>(o.H="horizontal",o.V="vertical",o))(Qo||{});import q,{useMemo as nr,useRef as sr,createContext as ir,useContext as ar,useState as lr,useEffect as mr}from"react";import{useAtom as Nt}from"jotai";import{usePageVisibility as ur}from"react-page-visibility";import Je from"react";var ke=e=>Je.Children.toArray(e).reduce((o,r)=>r.type===Je.Fragment?o.concat(ke(r.props.children)):(o.push(r),o),[]);import jt,{useRef as je,useEffect as Ke,useState as tr}from"react";import{axisBottom as Pe}from"d3-axis";import{select as Qe}from"d3-selection";import{transition as er}from"d3-transition";import{useAtom as le}from"jotai";var Te=({ggState:e,animate:t})=>{let[{axis:o,axisX:r,grid:m,font:a,animationDuration:c}]=le(st),{aes:l,width:s,margin:i,height:n,scales:D}=e||{width:0,height:0,margin:{top:0,right:0,bottom:0,left:0}},S=D?.xScale,[{datum:G}]=le(gt),[y]=le(Zt),[{format:_,numTicks:A,highlightOnFocus:V,focusedTicks:M,className:Y}]=le(yt),[z,B]=tr(!0);Ke(()=>{let u=setTimeout(()=>B(!1),0);return()=>clearTimeout(u)},[]);let R=je(null),N=je(null),T=(s&&_?Pe(S).tickFormat((u,j)=>_({value:u,index:j,width:s})):Pe(S)).tickSizeOuter(0).ticks(s&&typeof A=="function"?A(s):A),v=Pe(S).tickSize(-n+i.top+i.bottom).tickSizeOuter(0).tickFormat(()=>"").ticks(s&&typeof A=="function"?A(s):A);return Ke(()=>{let u=Qe(R.current),j=er().duration(c);t?u.transition(j).call(T):u.call(T);let d=Qe(N.current);t?d.transition(j).call(v):d.call(v),u.select("path").attr("stroke",(o?.showAxisLine||r?.showAxisLine)&&(o?.stroke||r?.stroke)||"none").attr("fill","none"),u.selectAll("line").attr("stroke",r?.tickStroke||o?.tickStroke||m?.stroke||"currentColor").style("opacity",r?.tickStroke||o?.tickStroke||m?.stroke?1:.08),u.selectAll("text").data(S.bandwidth?S.domain():[]).style("opacity",it=>S.bandwidth&&G&&V&&l?.x?l?.x(G[0])===it||M?.includes(String(it))?1:.4:S.bandwidth&&M?M?.includes(String(it))?1:.4:r?.tickLabel?.color||o?.tickLabel?.color?1:.8),u.selectAll("text").attr("fill",r?.tickLabel?.color||o?.tickLabel?.color||"currentColor").attr("data-testid","__gg_x_tick_label").style("font-size",r?.tickLabel?.fontSize||o?.tickLabel?.fontSize||"12px").style("font-family",r?.tickLabel?.fontFamily||o?.tickLabel?.fontFamily||a?.family||"sans-serif"),Y&&u.attr("class",Y),d.selectAll("line").attr("stroke",m?.stroke===null?"transparent":m?.stroke||"currentColor").style("opacity",m?.stroke?1:.08),d.select("path").attr("stroke","none")},[o,r,m,T,v,a,t,l,G,V,M,S,Y]),z?null:jt.createElement(jt.Fragment,null,jt.createElement("g",{ref:R,transform:`translate(0, ${n-i.bottom})`}),jt.createElement("g",{ref:N,transform:`translate(0, ${n-i.bottom})`}),y.x&&jt.createElement("g",null,jt.createElement("text",{"data-testid":"__gg_x_label",style:{transform:`translate(${i.left+2}px, ${n-i.bottom+36}px)`,pointerEvents:"none",fontFamily:r?.label?.fontFamily||o?.label?.fontFamily||a?.family,fontSize:r?.label?.fontSize||o?.label?.fontSize||12,fill:r?.label?.color||o?.label?.color||"currentColor",fontWeight:600}},y.x)))};import me,{useRef as to,useEffect as eo,useState as or}from"react";import{axisLeft as Ae}from"d3-axis";import{select as oo}from"d3-selection";import{transition as rr}from"d3-transition";import{useAtom as Ve}from"jotai";var Ge=({ggState:e,animate:t})=>{let[{axis:o,axisY:r,grid:m,font:a,animationDuration:c}]=Ve(st),{aes:l,height:s,width:i,margin:n,scales:D}=e||{width:0,height:0,margin:{top:0,right:0,bottom:0,left:0}},S=D?.yScale,[{datum:G}]=Ve(gt),[{format:y,numTicks:_,highlightOnFocus:A,focusedTicks:V,className:M}]=Ve(xt),[Y,z]=or(!0);eo(()=>{let v=setTimeout(()=>z(!1),0);return()=>clearTimeout(v)},[]);let B=to(null),R=to(null),H=(i&&y?Ae(S).tickFormat((v,u)=>y({value:v,index:u,width:i})):Ae(S)).tickSizeOuter(0).ticks(s&&typeof _=="function"?_(s):_),T=Ae(S).tickSize(-i+n.left+n.right).tickSizeOuter(0).tickFormat(()=>"").ticks(s&&typeof _=="function"?_(s):_);return eo(()=>{let v=oo(B.current),u=rr().duration(c);t?v.transition(u).call(H):v.call(H);let j=oo(R.current);t?j.transition(u).call(T):j.call(T),v.select("path").attr("stroke",(o?.showAxisLine||r?.showAxisLine)&&(o?.stroke||r?.stroke)||"none").attr("fill","none"),v.selectAll("line").attr("stroke",r?.tickStroke||o?.tickStroke||m?.stroke||"currentColor").style("opacity",r?.tickStroke||o?.tickStroke||m?.stroke?1:.08),v.selectAll("text").data(S.bandwidth?S.domain():[]).style("opacity",d=>S.bandwidth&&G&&A&&l?.y?l?.y(G[0])===d||V?.includes(String(d))?1:.4:S.bandwidth&&V?V?.includes(String(d))?1:.4:r?.tickLabel?.color||o?.tickLabel?.color?1:.8),v.selectAll("text").attr("fill",r?.tickLabel?.color||o?.tickLabel?.color||"currentColor").attr("data-testid","__gg_y_tick_label").style("font-size",r?.tickLabel?.fontSize||o?.tickLabel?.fontSize||"12px").style("font-family",r?.tickLabel?.fontFamily||o?.tickLabel?.fontFamily||a?.family||"sans-serif"),M&&v.attr("class",M),j.selectAll("line").attr("stroke",m?.stroke===null?"transparent":m?.stroke||"currentColor").style("opacity",m?.stroke?1:.08),j.select("path").attr("stroke","none")},[o,r,m,H,T,a,t,l,G,A,V,S,M]),Y?null:me.createElement(me.Fragment,null,me.createElement("g",{ref:B,transform:`translate(${n.left}, 0)`}),me.createElement("g",{ref:R,transform:`translate(${n.left}, 0)`}))};var ro=ir(void 0),no=({data:e,aes:t,width:o=500,height:r=450,margin:m,id:a,children:c})=>{let[l]=Nt(Zt),[{font:s,headerColor:i,axis:n,axisX:D,axisY:S,animationDuration:G}]=Nt(st),[y]=Nt(yt),[_]=Nt(xt),[A]=Nt(te),[V]=Nt(ee),[M]=Nt(oe),Y=ur(),[z,B]=lr(e),R={top:10,right:20,bottom:40,left:30,...m},N=Math.min(window.innerWidth-15,o),H=e,T=[],v=[],u=!1;ke(c).forEach(C=>{q.isValidElement(C)&&(C.type?.displayName?.includes("Geom")?T.push(C):v.push(C))});let j=[],d=[],it=[],kt=[],at=[],St=[],Mt=[],et=[],vt=[],Rt=[],Xt=[];T.forEach(C=>{let L=C.props,pt=Qt(L.aes,!0);pt&&et.push(pt),L.aes?.x&&kt.push(L.aes.x),L.aes?.y&&at.push(L.aes.y),L.aes?.y0&&St.push(L.aes.y0),L.aes?.y1&&Mt.push(L.aes.y1),L.aes?.stroke&&vt.push(L.aes.stroke),L.aes?.strokeDasharray&&Rt.push(L.aes.strokeDasharray),L.aes?.fill&&Xt.push(L.aes.fill);let ot=C.type.displayName.includes("Bar");ot&&d.push(!L.freeBaseLine),ot||j.push(L.position),C.type.displayName.includes("Col")&&it.push(!L.freeBaseLine),C.type.displayName.includes("Tile")&&(u=!0)});let It=T.find(C=>C.type.displayName.includes("Area")),wt=It?.props?.aes?.y0,ft=It?.props?.aes?.y1,K=d.some(C=>C),lt=it.some(C=>C),Pt=nr(()=>({id:a,copiedData:H,data:z,aes:t,width:N,height:r,margin:R,copiedScales:ae({scalesState:{x:y,y:_,geomAesYs:at,y0Aes:wt,y1Aes:ft,hasZeroXBaseLine:K,hasZeroYBaseLine:lt,geomGroupAccessors:et,geomAesStrokes:vt,geomAesStrokeDasharrays:Rt,geomAesFills:Xt,fill:A,stroke:V,strokeDasharray:M},data:e,copiedData:H,aes:t,width:N,height:r,margin:R,shouldExcludeMissingXYFromDomains:u}),scales:ae({scalesState:{x:y,y:_,geomAesYs:at,y0Aes:wt,y1Aes:ft,hasZeroXBaseLine:K,hasZeroYBaseLine:lt,geomGroupAccessors:et,geomAesStrokes:vt,geomAesStrokeDasharrays:Rt,geomAesFills:Xt,fill:A,stroke:V,strokeDasharray:M},data:z,copiedData:H,aes:t,width:N,height:r,margin:R,shouldExcludeMissingXYFromDomains:u})}),[a,e,z,H,t,N,r,R,y,_,A,V,M,K,lt]),_t=C=>{B(C)};mr(()=>{B(e)},[e]);let ht=sr(null);return Pt?q.createElement(ro.Provider,{value:{ggState:Pt,updateData:_t}},q.createElement("div",{id:`__gg_${a}`,style:{position:"relative",height:r},"data-testid":"__gg_gg"},l?.header&&q.createElement("div",{"data-testid":"__gg_header_label",style:{marginBottom:4,color:i,fontFamily:s?.family}},l.header),n&&S&&l?.y&&q.createElement("div",{"data-testid":"__gg_y_label",style:{position:"relative",top:R.top,marginLeft:8,marginBottom:2,fontSize:S?.label?.fontSize||n?.label?.fontSize||12,fontFamily:S?.label?.fontFamily||n?.label?.fontFamily||s?.family,lineHeight:1.2,color:S?.label?.color||n?.label?.color,minHeight:20,fontWeight:600}},l?.y),q.createElement("svg",{ref:ht,width:N,height:r},Y&&q.createElement(q.Fragment,null,n&&D&&q.createElement(Te,{ggState:Pt,animate:typeof G<"u"&&G>0}),n&&S&&q.createElement(Ge,{ggState:Pt,animate:typeof G<"u"&&G>0}),T,q.createElement("g",{id:`__gg-brush-exclusion-${a}`}))),q.createElement("div",{style:{position:"relative"}},q.createElement("div",{id:`__gg-zoom-out-button-${a}`,"data-testid":"__gg_zoom_out_button"})),q.createElement("div",{style:{position:"relative"}},q.createElement("div",{id:`__gg-tooltip-x-${a}`,"data-testid":"__gg_x_tooltip"}),q.createElement("div",{id:`__gg-tooltip-y-${a}`,"data-testid":"__gg_y_tooltip"})),q.createElement("div",null,v))):null},Ht=()=>ar(ro);import{useEffect as cr}from"react";import{useAtom as ve}from"jotai";var so=({onZoom:e,onUnzoom:t,xDomain:o,yDomain:r})=>{let[,m]=ve(Gt),[,a]=ve(yt),[,c]=ve(xt);return cr(()=>{m(l=>({...l,xDomain:{...l.xDomain,current:o??l?.xDomain?.current},yDomain:{...l.yDomain,current:r??l?.yDomain?.current},onZoom:e,onUnzoom:t})),a(l=>({...l,domain:o??l?.domain})),c(l=>({...l,domain:r??l?.domain}))},[e,t,o,r]),null};import{useCallback as fr}from"react";import{useAtom as we}from"jotai";var _e=()=>{let[,e]=we(xt),[,t]=we(yt),[{xDomain:o,yDomain:r},m]=we(Gt);return fr(({customXExtent:c,customYExtent:l})=>{e(s=>({...s,domain:l??r?.original})),t(s=>({...s,domain:c??o?.original})),m(s=>({...s,xDomain:{...s.xDomain,current:void 0},yDomain:{...s.yDomain,current:void 0}}))},[e,t,m,o?.original,r?.original])};import Bt,{useCallback as co,useState as dr}from"react";import{createPortal as pr}from"react-dom";var io=({children:e,id:t})=>{let o=document.getElementById(`__gg-zoom-out-button-${t}`);return o?pr(e,o):null};var Ce="#f0f0f0ee",Ye="#666",ao="#eaeaeaee",lo="#333",mo={cursor:"pointer",width:28,height:28,background:Ce,border:"1px solid #ddddddee",borderRadius:3,color:Ye,padding:2,transition:"background 200ms, color 300ms"},uo={display:"flex",alignItems:"center",justifyContent:"center"};var Ot=28,fo=({x:e,y:t,onClick:o,isBrushing:r,id:m})=>{let[a,c]=dr(!1),l=co(()=>{c(i=>!i)},[c]),s=co(()=>c(!1),[c]);return Bt.createElement(io,{id:m},Bt.createElement("div",{style:{position:"absolute",left:e-Ot-2,bottom:t-Ot-8,width:Ot,height:Ot,pointerEvents:r?"none":void 0}},Bt.createElement("button",{type:"button","aria-label":"zoom out",style:{...mo,background:a?ao:Ce,color:a?lo:Ye},onClick:o,onMouseOver:l,onMouseOut:s,onFocus:l,onBlur:s},Bt.createElement("div",{style:uo},Bt.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:Ot-10,height:Ot-10,viewBox:`0 0 ${Ot-4} ${Ot-4}`,fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Bt.createElement("circle",{cx:"11",cy:"11",r:"8"}),Bt.createElement("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"}),Bt.createElement("line",{x1:"8",y1:"11",x2:"14",y2:"11"}))))))};import po from"react";import{createPortal as gr}from"react-dom";var Wt=(e,t,o)=>typeof e<"u"&&typeof t<"u"&&typeof o<"u"&&e>=Math.min(t,o)&&e<=Math.max(t,o),yr="#22222288",go=po.forwardRef((e,t)=>po.createElement("rect",{ref:t,fill:"transparent",style:{pointerEvents:"none",fill:yr,transition:"fill 100ms ease-in-out"}})),yo=({children:e,id:t})=>{let o=document.getElementById(`__gg-brush-exclusion-${t}`);return o?gr(e,o):null};var Z=2,Dr=({x:e,y:t,group:o,xAdj:r=0,yAdj:m=0,onMouseOver:a,onClick:c,onMouseLeave:l,onDatumFocus:s,data:i,aes:n,customXExtent:D,customYExtent:S,getYValExtent:G,positionKeys:y,disabled:_,showTooltip:A=!0,brushAction:V,isZoomedOut:M,stackXMidpoints:Y,stackYMidpoints:z,xBandScale:B,yBandScale:R,fill:N})=>{let{ggState:H}=Ht()||{},{width:T,height:v,margin:u,data:j,scales:d,id:it}=H||{width:0,height:0,margin:{top:0,right:0,bottom:0,left:0}},[{datum:kt},at]=re(gt),[{animationDuration:St,geoms:Mt}]=re(st),[{domain:et,reverse:vt},Rt]=re(xt),[{reverse:Xt},It]=re(yt),[{xDomain:wt,yDomain:ft,onZoom:K,onUnzoom:lt},Pt]=re(Gt),_t=_e(),ht=Ft(null),C=Ft(!1),L=Ft(!1),pt=Ft(null),ot=Ft(),mt=Ft(null),Q=Ft(null),U=Ft(null),Et=Ft(null),x=Tt(()=>o==="x",[o]),f=Tt(()=>o==="y",[o]),w=Tt(()=>!!s,[s]),[W,dt]=Sr(!1),Ut=i?.map(e),ue=i?.map(t);xr(()=>{C.current=!1;let g=setTimeout(()=>{C.current=!0},(St??1e3)+50);return()=>clearTimeout(g)},[JSON.stringify(j),JSON.stringify(i),JSON.stringify(Ut),JSON.stringify(ue),T,St,wt,ft,y]);let $=Tt(()=>typeof d?.xScale.domain()[0]=="string"||typeof d?.yScale.domain()[0]=="string",[d?.xScale,d?.yScale]),ne=Tt(()=>i??[],[i]),Xe=At(p=>(e(p)??0)+r,[e,r]),Ie=At(p=>(t(p)??0)+m,[t,m]),qt=Tt(()=>Le.from(ne,Xe,Ie),[i,Xe,Ie]),ut=Tt(()=>{if(!z)return;let p=B?.domain().map(g=>{let P=d?.xScale(g),h=z.filter(b=>b.xVal===g.valueOf());return{delaunay:Le.from(h,b=>d?.xScale(b.xVal)??0,b=>d?.yScale(b.yVal)),xVal:P,data:h}});return $?p:p?.sort((g,P)=>(g.xVal??0)-(P.xVal??0))},[z,d?.yScale,B,$,d?.xScale,r]),ce=Tt(()=>{if(!ut||!w)return;let p=(B?.step?.()??0)/2;return ut.map(g=>({voronoi:g.delaunay.voronoi([(g?.xVal??0)+r-p,u.top,(g?.xVal??0)+p+r,v-u.bottom]),data:g.data}))},[ut,d?.xScale,B,r,T,u]),rt=Tt(()=>{if(!Y)return;let p=R?.domain().map(g=>{let P=d?.yScale(g),h=Y.filter(b=>b.yVal===g);return{delaunay:Le.from([...h],b=>d?.xScale(b.xVal),b=>d?.yScale(b.yVal)),yVal:P,data:h}});return $?p:p?.sort((g,P)=>(g.yVal??0)-(P.yVal??0))},[Y,d?.yScale,d?.xScale,R,$]),fe=Tt(()=>{let p=T-(u.left+u.right)>0;if(!rt||!w||!p)return;let g=(R?.step?.()??0)/2;return rt.map(P=>({voronoi:P.delaunay.voronoi([u.left,(P.yVal??0)-g+m,T-u.right,(P.yVal??0)+g+m]),data:P.data}))},[rt,d?.yScale,m,T,u]),ze=Tt(()=>{let p=T-(u.left+u.right)>0&&v-(u.bottom+u.top)>0;if(!(!w||!p))return qt.voronoi([u.left,u.top,T-u.right,v-u.bottom])},[qt,w]),zt=At(()=>{at(p=>({...p,datum:void 0}))},[at]),se=At(()=>{Et.current&&Et.current.setAttribute("width","0px"),dt(!1)},[dt]),Be=At((p,g)=>{if(L.current&&ot.current){ot.current={...ot.current,x1:p,y1:g};let{x0:P,x1:h,y0:b,y1:E}=ot.current,k=d?.xScale.range(),O=d?.yScale.range(),X=(rt||f)&&k?k[0]:Math.min(P,h),bt=(rt||f)&&k?k[1]:Math.max(P,h),tt=(ut||x)&&O?O[1]-Z:Math.min(b,E),F=(ut||x)&&O?O[0]+Z:Math.max(b,E);Et.current&&(Et.current.setAttribute("x",`${u.left-Z}px`),Et.current.setAttribute("y",`${tt}px`),Et.current.setAttribute("width",`${Math.max(X-u.left+Z,0)}px`),Et.current.setAttribute("height",`${F-tt}px`)),Q.current&&(Q.current.setAttribute("x",`${bt}px`),Q.current.setAttribute("y",`${tt}px`),Q.current.setAttribute("width",`${Math.max(T-u.right-bt+Z,0)}px`),Q.current.setAttribute("height",`${F-tt}px`)),mt.current&&(mt.current.setAttribute("x",`${u.left-Z}px`),mt.current.setAttribute("y",`${u.top-Z}px`),mt.current.setAttribute("width",`${T-u.right-u.left+Z*2}px`),mt.current.setAttribute("height",`${Math.max(tt-u.top+Z,0)}px`)),U.current&&(U.current.setAttribute("x",`${u.left-Z}px`),U.current.setAttribute("y",`${F}px`),U.current.setAttribute("width",`${T-u.right-u.left+Z*2}px`),U.current.setAttribute("height",`${Math.max(v-F-u.bottom+Z,0)}px`))}},[x,f,u,d,ut,rt]),pe=At(p=>{if(p.preventDefault(),L.current&&ot.current){let{x0:g,x1:P,y0:h,y1:b}=ot.current;zt(),se();let E=i?.filter(X=>{let bt=e(X),tt=t(X);return x||ut?Wt(bt,g,P):f||rt?Wt(tt,h,b):Wt(bt,g,P)&&Wt(tt,h,b)}),k=E?.some(X=>n?.x?.(X)),O=E?.some(X=>n?.y?.(X)??n?.y0?.(X));if(E&&E.length&&k&&O){let X=[d?.xScale.invert(Math.min(g,P)),d?.xScale.invert(Math.max(g,P))];X=Xt?X.reverse():X;let bt=G?G(E):So(E.map(I=>{let nt=n?.y&&n.y(I),Ct=n?.y0&&n.y0(I),ct=n?.y1&&n.y1(I);return So([nt,Ct,ct])}).flat()),tt=et?[hr([bt[0],et[0]]),br([bt[1],et[1]])]:bt;tt=vt?tt:tt.reverse();let F=x?tt:[d?.yScale.invert(Math.min(h,b)),d?.yScale.invert(Math.max(h,b))];F=vt?F:F.reverse(),It(I=>({...I,domain:X})),Rt(I=>({...I,domain:F})),Pt(I=>({...I,xDomain:{...I.xDomain,current:X},yDomain:{...I.yDomain,current:F}})),K&&K({x:X,y:F})}}L.current=!1,pt.current&&clearTimeout(pt.current)},[zt,se,j,x,f,ut,rt,Xt,vt,n,d,t,wt,ft,K,Mt,G]),Oe=At(p=>{if(C.current&&i&&i.length){let[g,P]=xo(p,ht.current),[h,b]=[Math.floor(g),Math.floor(P)];if(L.current&&V&&!$)Be(h,b);else if(A){let E=qt.find(h,b);if(ut){let F=B?.step?.()??1,I=(h-u.left+(B?.padding?.()??0)*F/2)/F,nt=Math.min(Math.floor(Math.max(0,I)),ut.length-1),Ct=ut[nt].delaunay.find(h,b),ct=ut[nt].data[Ct];E=i.findIndex(Yt=>n?.x?.(Yt)?.valueOf()===ct.xVal&&d?.groupAccessor?.(Yt)===ct.groupVal)}if(rt){let F=R?.step?.()??1,I=b+u.top-m+(R?.padding?.()??0)*F/2,nt=Math.min(Math.floor(Math.max(0,I)/F),rt.length-1),Ct=rt[nt].delaunay.find(h,b),ct=rt[nt].data[Ct];E=i.findIndex(Yt=>n?.y?.(Yt)===ct.yVal&&d?.groupAccessor?.(Yt)===ct.groupVal)}let k=i[E],O=d?.xScale.domain(),X=d?.yScale.domain(),bt=["x","y"].includes(N??"")||n?.x&&O&&(O.includes(n?.x(k)?.valueOf())||Wt(n?.x(k)?.valueOf(),O[0],O[1])),tt=["x","y"].includes(N??"")||n?.y&&X&&(X.includes(n?.y(k))||Wt(n?.y(k),X[0],X[1]));if(x&&n?.x&&bt){let F=e(k);if(kt&&e(kt[0])===F)return;let I=[],nt=[];i.forEach((ct,Yt)=>{n.x&&n.x(ct)?.toString()===n.x(k)?.toString()&&(I.push(ct),nt.push(Yt))});let Ct=document.getElementsByClassName(`__gg-tooltip-${it}`);Array.from(Ct).forEach(ct=>{let Yt=ct;Yt.style.transform=`translate(${F}px, 0)`}),a&&a({d:I,i:nt}),at(ct=>({...ct,datum:I}))}else if(f&&n?.y&&tt){if(kt&&t(kt[0])===t(k))return;let F=[],I=[];i.forEach((nt,Ct)=>{n?.y&&n.y(nt)?.toString()===n.y(k)?.toString()&&(F.push(nt),I.push(Ct))}),a&&a({d:F,i:I}),at(nt=>({...nt,datum:F}))}else bt&&tt&&(a&&a({d:[k],i:[E]}),at(F=>({...F,datum:[k]})))}}},[i,n,at,T,qt,rt,ut,a,x,f,kt,d,B,R,Be,V,$,N,u.top,u.left]),Vt=At(p=>{C.current&&(l&&l(),A&&zt(),W&&pe(p)),document.onselectstart=()=>!0},[A,zt,l,W]),de=At(p=>{Vt(p),V==="zoom"&&_t({customXExtent:D,customYExtent:S}),A&&zt(),V&&se(),lt&<()},[Vt,zt,se,Rt,It,Pt,S,ft?.original,wt?.original,V,A,lt,_t,Mt]),$e=At(p=>{let[g,P]=xo(p,ht.current);if(document.onselectstart=()=>!1,p.detail>1&&p.preventDefault(),i&&i.length&&V&&!$&&(pt.current=setTimeout(()=>{l(),zt(),dt(!0),L.current=!0,ot.current={x0:g,x1:g,y0:P,y1:P}},180)),c&&i&&i.length){let h=qt.find(g,P),b=i[h];if(x&&n?.x){let E=[],k=[];i.forEach((O,X)=>{n.x&&n.x(O)?.valueOf()===n.x(b)?.valueOf()&&(E.push(O),k.push(X))}),c({d:E,i:k})}else if(f&&n?.y){let E=[],k=[];i.forEach((O,X)=>{n?.y&&n.y(O)?.toString()===n.y(b)?.toString()&&(E.push(O),k.push(X))}),c({d:E,i:k})}else c({d:[b],i:[h]})}return T},[i,T,c,qt,n,o,l,zt,V,$]),ge=At((p,g)=>{if(C.current&&p&&p.length&&!W){let P=p[g],h=[],b=[];if(x&&n?.x)p.forEach((E,k)=>{n?.x&&n.x(E)?.toString()===n.x(P)?.toString()&&(h.push(E),b.push(k))});else if(f&&n?.y)p.forEach((E,k)=>{n?.y&&n.y(E)?.toString()===n.y(P)?.toString()&&(h.push(E),b.push(k))});else if(i&&rt){let E=P;i.forEach((k,O)=>{n?.y?.(k)===E.yVal&&d?.groupAccessor?.(k)===E.groupVal&&(h.push(k),b.push(O))})}else if(i&&ut){let E=P;i.forEach((k,O)=>{n?.x?.(k)?.valueOf()===E.xVal&&d?.groupAccessor?.(k)===E.groupVal&&(h.push(k),b.push(O))})}else h.push(P),b.push(g);at(E=>({...E,datum:h})),a&&a({d:h,i:b}),s&&s(h,b)}},[W,a,s,f,rt,n?.y,d?.groupAccessor,at]);return J.createElement(J.Fragment,null,J.createElement("g",null,!_&&J.createElement(J.Fragment,null,J.createElement("clipPath",{id:`__gg_canvas_${it}`},J.createElement("rect",{width:T-u.right-u.left+Z*2,height:v-u.bottom-u.top+Z*2,x:u.left-Z,y:u.top-Z,fill:"transparent"})),J.createElement("rect",{ref:ht,width:T-u.right-u.left+Z*2,height:v-u.bottom-u.top+Z,x:u.left-Z,y:u.top-Z,fill:"transparent",onMouseMove:Oe,onMouseLeave:Vt,onPointerMove:Oe,onPointerLeave:Vt,onMouseDown:$e,onMouseUp:pe,onDoubleClick:de,style:{pointerEvents:w&&!c?"none":void 0,cursor:c&&C.current?"pointer":void 0},"data-testid":"__gg_event_area"}),W&&J.createElement(yo,{id:it},[mt,Q,U,Et].map((p,g)=>J.createElement(go,{ref:p,key:`exclusion-${g.toString()}`}))),(wt?.current||ft?.current)&&!M&&J.createElement(fo,{id:it,x:T-u.right,y:v,onClick:de,isBrushing:W}))),!ce&&!fe&&ze&&ne&&!V&&J.createElement("g",{onMouseLeave:Vt,onPointerLeave:Vt},ne.map((p,g)=>J.createElement("path",{key:`cell-${g.toString()}`,style:{pointerEvents:"all",cursor:c?"pointer":void 0},d:ze.renderCell(g),fill:"none",onMouseOver:()=>ge(ne,g),onMouseDown:$e,onMouseUp:pe,onDoubleClick:de,"data-testid":`__gg_event_voronoi_${g}`}))),ce&&!V&&ce.map((p,g)=>J.createElement("g",{key:`xGroup-voronoi-${g.toString()}`,onMouseLeave:Vt,onPointerLeave:Vt},p.data.map((P,h)=>J.createElement("path",{key:`cell-${g.toString()}-${h.toString()}`,style:{pointerEvents:"all"},d:p.voronoi.renderCell(h),fill:"none",onMouseOver:()=>ge(p.data,h)})))),fe&&!V&&fe.map((p,g)=>J.createElement("g",{key:`yGroup-voronoi-${g.toString()}`,onMouseLeave:Vt,onPointerLeave:Vt},p.data.map((P,h)=>J.createElement("path",{key:`cell-${g.toString()}-${h.toString()}`,style:{pointerEvents:"all"},d:p.voronoi.renderCell(h),fill:"none",onMouseOver:()=>ge(p.data,h)})))))};import{nanoid as kr}from"nanoid";var Fe=()=>kr(10);var Pr=e=>{let t;switch(e){case null:t="[null]";break;case void 0:t="[undefined]";break;default:t=e}return t};import{flushSync as Er}from"react-dom";import{createRoot as Tr}from"react-dom/client";var Ar=e=>{let t=document.createElement("div"),o=Tr(t);return Er(()=>o.render(e)),t.innerText};import{usePageVisibility as oa}from"react-page-visibility";var Yr=({children:e,...t})=>{let{data:o,aes:r,width:m,height:a,margin:c,isContainerWidth:l}={...t},s=Gr(null),[i,n]=_r(l?s.current?.clientWidth:m);vr(()=>{l&&n(s.current?.clientWidth)},[l]),wr(()=>{let S=new ResizeObserver(G=>{let y=G[0].contentRect;l&&n(y.width)});return s.current&&l&&S.observe(s.current),()=>{s.current&&l&&S.unobserve(s.current)}},[l]);let D=Vr(()=>Fe(),[]);return Me.createElement("div",{ref:s},Me.createElement(Cr,null,Me.createElement(no,{data:o.map((S,G)=>({...S,gg_gen_index:G})),aes:r,width:i,height:a,margin:c,id:D},e)))};import{useEffect as Lr}from"react";import{useAtom as Fr}from"jotai";var Mr=({header:e,x:t,y:o})=>{let[,r]=Fr(Zt);return Lr(()=>{r({header:e,x:t,y:o})},[r,e,t,o]),null};import{useEffect as Rr}from"react";import{useAtom as Xr}from"jotai";var Ir=({headerColor:e,markerStroke:t,defaultStroke:o,defaultFill:r,font:m,grid:a,axis:c,axisX:l,axisY:s,legend:i,tooltip:n,animationDuration:D})=>{let[,S]=Xr(st),G=(y,_)=>{let A;return typeof y<"u"?y===null?A=y:A={..._,...y}:A=_,A};return Rr(()=>{S(y=>({...y,headerColor:e??y.headerColor,markerStroke:t??y.markerStroke,defaultStroke:o??y.defaultStroke,defaultFill:r??y.defaultFill,animationDuration:D??y.animationDuration,font:m?{...y.font,...m}:y.font,grid:a?{...y.grid,...a}:y.grid,axis:G(c,y.axis),axisX:G(l,y.axisX),axisY:G(s,y.axisY),legend:i?{...y.legend,...i}:y.legend,tooltip:n?{...y.tooltip,...n}:y.tooltip}))},[S,e,t,o,r,m,a,c,l,s,i,n,D]),null};import{useEffect as zr}from"react";import{useAtom as Br}from"jotai";var Or=({keepInParent:e,position:t,xAxis:o,content:r,xFormat:m,yFormat:a,measureFormat:c,datum:l,dx:s,dy:i})=>{let[,n]=Br(gt);return zr(()=>{n(D=>({...D,keepInParent:typeof e>"u"?!0:e,xAxis:o||D.xAxis,position:t||D.position,content:r||D.content,xFormat:m||D.xFormat,yFormat:a||D.yFormat,measureFormat:c||D.measureFormat,datum:l,dx:s,dy:i}))},[e,t,o,r,m,a,c,l,n,s,i]),null};import ko,{useEffect as $r,useState as Po,useRef as Zr,useCallback as Nr,useMemo as Re}from"react";import{useAtom as Eo}from"jotai";import{createPortal as ho}from"react-dom";var bo=({children:e,id:t})=>{let o=document.getElementById(`__gg-tooltip-x-${t}`);return o?ho(e,o):null},Do=({children:e,id:t})=>{let o=document.getElementById(`__gg-tooltip-y-${t}`);return o?ho(e,o):null};var To=2,Ao=8,Hr=5,Wr=({id:e,left:t,top:o,value:r,wait:m})=>{let{ggState:a}=Ht()||{},{width:c,height:l}=a||{width:0,height:0},[{position:s,keepInParent:i,dx:n,dy:D}]=Eo(gt),[{font:S}]=Eo(st),[G,y]=Po(void 0),[_,A]=Po(void 0),V=Zr(null),M=Re(()=>n?typeof n=="number"?n:n({width:c,x:t}):0,[n,c,t]),Y=Re(()=>D?typeof D=="number"?D:D({height:l,y:-o}):0,[D,l,o]),z=Re(()=>typeof i=="boolean"?i:i?i({width:c,x:t}):!0,[i,c,t]),B=Nr(()=>{if(V.current){let R=V.current?.clientWidth||0,N=V.current?.clientHeight||0,H=t+Ao+M;z&&H&&H<To?H=To:z&&t>c/2&&(H=t-R-Ao-M),y(H);let T=o-(s==="data"?N/2:0)-Hr+Y;A(T)}},[c,t,o,s,z,M,Y]);return $r(()=>{let R=setTimeout(()=>{B()},10);return()=>clearTimeout(R)},[B,m]),ko.createElement(Do,{id:e},ko.createElement("div",{ref:V,style:{fontFamily:S?.family,left:G||-9999,top:_,pointerEvents:"none",position:"absolute",whiteSpace:"nowrap"}},r))};import Vo,{useEffect as Ur,useState as Go,useRef as qr}from"react";import{useAtom as vo}from"jotai";var Jr=({id:e,left:t,top:o,value:r,yPosition:m="below",align:a="center"})=>{let{width:c,margin:l}=Ht()?.ggState||{width:0},[{font:s}]=vo(st),[{keepInParent:i}]=vo(gt),[n,D]=Go(0),[S,G]=Go(0),y=qr(null);return Ur(()=>{let _=y.current?.clientWidth||0,A=y.current?.clientHeight||0,V=_/2,M;a==="center"?M=V:a==="right"?M=0:M=V*2;let Y=_&&t-M,z=Y&&_&&Y+_;i&&Y&&Y<l.left?Y=l.left:i&&Y&&_&&z&&z>c&&(Y=c-_-2),G(o-(m==="above"?(A||0)+8:0)),Y&&D(Y)},[c,t,o,e,i,m,a]),Vo.createElement(bo,{id:e},Vo.createElement("div",{ref:y,style:{fontFamily:s?.family,pointerEvents:"none",position:"absolute",left:n||-9999,top:S||-9999,whiteSpace:"nowrap"}},r))};import jr from"react";var Kr={fontSize:12,padding:"4px 6px 4px 6px",color:"#111",background:"#fefefee9",border:"1px solid #eee",borderRadius:2,boxShadow:"rgba(0, 0, 0, 0.5) 0px 1px 4px"},Qr=({children:e,style:t})=>jr.createElement("div",{style:{...Kr,...t}},e);import{useEffect as wo}from"react";import{useAtom as _o}from"jotai";var tn=({type:e,format:t,numTicks:o,domain:r,reverse:m,highlightOnFocus:a,focusedTicks:c,className:l})=>{let[,s]=_o(yt),[,i]=_o(Gt);return wo(()=>{s(n=>({...n,type:e,format:t,numTicks:o||n.numTicks,domain:r,reverse:m,highlightOnFocus:a,focusedTicks:c,className:l,isFixed:!!r}))},[s,e,t,o,r,m,a,c,l]),wo(()=>{i(n=>({...n,xDomain:{...n.xDomain,original:r}}))},[i,r]),null};import{useEffect as Co}from"react";import{useAtom as Yo}from"jotai";var en=({type:e,format:t,numTicks:o,domain:r,reverse:m,highlightOnFocus:a,focusedTicks:c,className:l})=>{let[,s]=Yo(xt),[,i]=Yo(Gt);return Co(()=>{s(n=>({...n,type:e,format:t,numTicks:o||n.numTicks,domain:r,reverse:m,highlightOnFocus:a,focusedTicks:c,className:l,isFixed:!!r}))},[s,e,t,o,r,m,a,c,l]),Co(()=>{i(n=>({...n,yDomain:{...n.yDomain,original:r}}))},[i,r]),null};import{useEffect as on}from"react";import{useAtom as rn}from"jotai";var nn=({type:e,domain:t,values:o,reverse:r})=>{let[,m]=rn(te);return on(()=>{m({type:e,domain:t,values:o,reverse:r})},[m,e,t,o,r]),null};import{useEffect as sn}from"react";import{useAtom as an}from"jotai";var ln=({type:e,domain:t,values:o,reverse:r})=>{let[,m]=an(ee);return sn(()=>{m({type:e,domain:t,values:o,reverse:r})},[m,e,t,o,r]),null};import{useEffect as mn}from"react";import{useAtom as un}from"jotai";var cn=({domain:e,values:t})=>{let[,o]=un(oe);return mn(()=>{o({domain:e,values:t})},[o,e,t]),null};import{useEffect as fn}from"react";import{useAtom as pn}from"jotai";var dn=({domain:e,range:t})=>{let[,o]=pn(De);return fn(()=>{o(r=>({...r,domain:e||r.domain,range:t||r.range}))},[o,e,t]),null};export{Ko as BrushAction,Dr as EventArea,Yr as GG,Mr as Labels,Qo as LegendOrientation,nn as ScaleFill,dn as ScaleRadius,ln as ScaleStroke,cn as ScaleStrokeDasharray,tn as ScaleX,en as ScaleY,Ir as Theme,Or as Tooltip,Qr as TooltipContainer,be as TooltipPosition,Jr as XTooltip,Wr as YTooltip,so as Zoom,ae as autoScale,Ne as createSequentialScheme,Ro as debounce,Ze as defaultDasharrays,$t as defaultInterpolator,Kt as defaultScheme,Qt as defineGroupAccessor,Bo as elongate,te as fillScaleState,Xo as focusNodes,ye as formatDate,Pr as formatMissing,Mo as formatMonth,Fe as generateID,zo as getYAlongPath,Dt as isDate,Zt as labelsState,Ar as nodeToString,Fo as parseDate,De as radiusScaleState,oe as strokeDasharrayState,ee as strokeScaleState,st as themeState,gt as tooltipState,Io as unfocusNodes,Ht as useGG,oa as usePageVisibility,_e as useUnZoom,Oo as widen,yt as xScaleState,xt as yScaleState,Gt as zoomState};
//# sourceMappingURL=index.js.map