UNPKG

@graphique/graphique

Version:

A data visualization system for React based on the Grammar of Graphics.

4 lines 34.7 kB
import Re,{useMemo as Tr,useRef as Ar,useLayoutEffect as Vr,useEffect as Gr,useState as vr}from"react";import{Provider as wr}from"jotai";import{timeParse as Co,timeFormat as se}from"d3-time-format";var Yo=(e,t="%Y-%m-%d")=>Co(t)(e),Dt=e=>Object.prototype.toString.call(e)==="[object Date]",Lo=(e,t=!1)=>{let o;return t?o=e.getMonth()===0?se("%b %Y")(e):se("%b")(e):o=se("%b %Y")(e),o},ye=(e,t="%b %d, %Y")=>se(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 i={top:10,right:20,bottom:10,left:30,...c},{x:s,y:n,fill:D,stroke:S,strokeDasharray:G,hasZeroXBaseLine:y,hasZeroYBaseLine:_,geomGroupAccessors:A,y0Aes:V,y1Aes:R,geomAesYs:Y,geomAesStrokes:B,geomAesFills:z,geomAesStrokeDasharrays:F}=e,{domain:N,type:H,reverse:T}=s||{},{domain:v,type:u,reverse:j}=n||{},{domain:d,type:st,values:kt,reverse:at}=D||{},{domain:St,type:Rt,values:et,reverse:vt}=S||{},{domain:Ft,values:Xt}=G||{},zt=(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??R??V,ht=r.stroke||(B.length?B[0]:void 0),C=r.fill||(z.length?z[0]:void 0),L=r.strokeDasharray||(F.length?F[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([i.left,m-i.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([i.left,m-i.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)=>zt(W,dt,x));pt=We().range([i.left,m-i.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-i.bottom,i.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-i.bottom,i.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)=>zt(dt,Ut,f));mt=We().range([i.top,a-i.bottom]).domain(W)}}else mt=xe().range([a-i.bottom,i.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(st){let $=st;$()?.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(Rt){let f,w=Rt;switch(Rt.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=Ft||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 Mo=(e,t)=>{let o;return(...r)=>{o&&clearTimeout(o),o=setTimeout(()=>{t(...r),o=null},e)}};var Ro=({nodes:e,focusedIndex:t,focusedStyles:o,unfocusedStyles:r})=>{let m=e,a=typeof t<"u"?[t].flat():void 0;Array.from(e)?.filter((l,i)=>a&&!a.includes(i))?.forEach(l=>{let i=l;Object.entries(r).forEach(([s,n])=>{i.style[s]=n})}),Object.entries(o).forEach(([l,i])=>{a?.forEach(s=>{m[s].style[l]=i})})},Fo=({nodes:e,baseStyles:t})=>{Array.from(e).forEach(o=>{let r=o;Object.entries(t).forEach(([m,a])=>{r.style[m]=a})})};var Xo=(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 zo=(e,t,o,r)=>{let m=[];return e.forEach(a=>{let c=Object.keys(a).filter(i=>!r.includes(i)),l=Object.keys(a).reduce((i,s)=>{let n=i;return r.includes(s)&&(n[s]=a[s]),n},{});c.forEach(i=>{let s={};s[t]=i,s[o]=a[i],m.push({...s,...l})})}),m};var Io=(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 i={key:Dt(c)?c.valueOf():c,i:l};return a.forEach(s=>{let n=e.find(D=>Dt(t(D))?t(D).valueOf()===c.valueOf()&&o(D)===s:t(D)===c&&o(D)===s);n&&(i[s]=r(n)??void 0)}),i})};import J,{useMemo as Tt,useCallback as At,useEffect as gr,useRef as Mt,useState as yr}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 xr,min as Sr}from"d3-array";import{atom as Bo}from"jotai";var Zt=Bo({header:"",x:"",y:""});import{atom as qe}from"jotai";var Cn=qe({}),it=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 Oo}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=Oo({position:"data",keepInParent:!0,xFormat:he,yFormat:he,measureFormat:he,xAxis:!1,dx:()=>0,dy:()=>0});import{atom as $o}from"jotai";var yt=$o({numTicks:e=>{if(e&&e<500)return 3;if(e<800)return 5}});import{atom as Zo}from"jotai";var xt=Zo({numTicks:e=>e&&e<500?4:void 0});import{atom as No}from"jotai";var te=No({});import{atom as Ho}from"jotai";var ee=Ho({});import{atom as Wo}from"jotai";var oe=Wo({});import{atom as Uo}from"jotai";var De=Uo({range:[3,30]});import{atom as qo}from"jotai";var Gt=qo({});var Jo=(t=>(t.ZOOM="zoom",t))(Jo||{});var jo=(o=>(o.H="horizontal",o.V="vertical",o))(jo||{});import q,{useMemo as or,useRef as rr,createContext as nr,useContext as ir,useState as sr,useEffect as ar}from"react";import{useAtom as Nt}from"jotai";import{usePageVisibility as lr}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 Ko}from"react";import{axisBottom as Pe}from"d3-axis";import{select as Qe}from"d3-selection";import{transition as Qo}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(it),{aes:l,width:i,margin:s,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:R,className:Y}]=le(yt),[B,z]=Ko(!0);Ke(()=>{let u=setTimeout(()=>z(!1),0);return()=>clearTimeout(u)},[]);let F=je(null),N=je(null),T=(i&&_?Pe(S).tickFormat((u,j)=>_({value:u,index:j,width:i})):Pe(S)).tickSizeOuter(0).ticks(i&&typeof A=="function"?A(i):A),v=Pe(S).tickSize(-n+s.top+s.bottom).tickSizeOuter(0).tickFormat(()=>"").ticks(i&&typeof A=="function"?A(i):A);return Ke(()=>{let u=Qe(F.current),j=Qo().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",st=>S.bandwidth&&G&&V&&l?.x?l?.x(G[0])===st||R?.includes(String(st))?1:.4:S.bandwidth&&R?R?.includes(String(st))?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,R,S,Y]),B?null:jt.createElement(jt.Fragment,null,jt.createElement("g",{ref:F,transform:`translate(0, ${n-s.bottom})`}),jt.createElement("g",{ref:N,transform:`translate(0, ${n-s.bottom})`}),y.x&&jt.createElement("g",null,jt.createElement("text",{"data-testid":"__gg_x_label",style:{transform:`translate(${s.left+2}px, ${n-s.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 tr}from"react";import{axisLeft as Ae}from"d3-axis";import{select as oo}from"d3-selection";import{transition as er}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(it),{aes:l,height:i,width:s,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:R}]=Ve(xt),[Y,B]=tr(!0);eo(()=>{let v=setTimeout(()=>B(!1),0);return()=>clearTimeout(v)},[]);let z=to(null),F=to(null),H=(s&&y?Ae(S).tickFormat((v,u)=>y({value:v,index:u,width:s})):Ae(S)).tickSizeOuter(0).ticks(i&&typeof _=="function"?_(i):_),T=Ae(S).tickSize(-s+n.left+n.right).tickSizeOuter(0).tickFormat(()=>"").ticks(i&&typeof _=="function"?_(i):_);return eo(()=>{let v=oo(z.current),u=er().duration(c);t?v.transition(u).call(H):v.call(H);let j=oo(F.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"),R&&v.attr("class",R),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,R]),Y?null:me.createElement(me.Fragment,null,me.createElement("g",{ref:z,transform:`translate(${n.left}, 0)`}),me.createElement("g",{ref:F,transform:`translate(${n.left}, 0)`}))};var ro=nr(void 0),no=({data:e,aes:t,width:o=500,height:r=450,margin:m,id:a,children:c})=>{let[l]=Nt(Zt),[{font:i,headerColor:s,axis:n,axisX:D,axisY:S,animationDuration:G}]=Nt(it),[y]=Nt(yt),[_]=Nt(xt),[A]=Nt(te),[V]=Nt(ee),[R]=Nt(oe),Y=lr(),[B,z]=sr(e),F={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=[],st=[],kt=[],at=[],St=[],Rt=[],et=[],vt=[],Ft=[],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&&Rt.push(L.aes.y1),L.aes?.stroke&&vt.push(L.aes.stroke),L.aes?.strokeDasharray&&Ft.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")&&st.push(!L.freeBaseLine),C.type.displayName.includes("Tile")&&(u=!0)});let zt=T.find(C=>C.type.displayName.includes("Area")),wt=zt?.props?.aes?.y0,ft=zt?.props?.aes?.y1,K=d.some(C=>C),lt=st.some(C=>C),Pt=or(()=>({id:a,copiedData:H,data:B,aes:t,width:N,height:r,margin:F,copiedScales:ae({scalesState:{x:y,y:_,geomAesYs:at,y0Aes:wt,y1Aes:ft,hasZeroXBaseLine:K,hasZeroYBaseLine:lt,geomGroupAccessors:et,geomAesStrokes:vt,geomAesStrokeDasharrays:Ft,geomAesFills:Xt,fill:A,stroke:V,strokeDasharray:R},data:e,copiedData:H,aes:t,width:N,height:r,margin:F,shouldExcludeMissingXYFromDomains:u}),scales:ae({scalesState:{x:y,y:_,geomAesYs:at,y0Aes:wt,y1Aes:ft,hasZeroXBaseLine:K,hasZeroYBaseLine:lt,geomGroupAccessors:et,geomAesStrokes:vt,geomAesStrokeDasharrays:Ft,geomAesFills:Xt,fill:A,stroke:V,strokeDasharray:R},data:B,copiedData:H,aes:t,width:N,height:r,margin:F,shouldExcludeMissingXYFromDomains:u})}),[a,e,B,H,t,N,r,F,y,_,A,V,R,K,lt]),_t=C=>{z(C)};ar(()=>{z(e)},[e]);let ht=rr(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:s,fontFamily:i?.family}},l.header),n&&S&&l?.y&&q.createElement("div",{"data-testid":"__gg_y_label",style:{position:"relative",top:F.top,marginLeft:8,marginBottom:2,fontSize:S?.label?.fontSize||n?.label?.fontSize||12,fontFamily:S?.label?.fontFamily||n?.label?.fontFamily||i?.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=()=>ir(ro);import{useEffect as mr}from"react";import{useAtom as ve}from"jotai";var io=({onZoom:e,onUnzoom:t,xDomain:o,yDomain:r})=>{let[,m]=ve(Gt),[,a]=ve(yt),[,c]=ve(xt);return mr(()=>{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 ur}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 ur(({customXExtent:c,customYExtent:l})=>{e(i=>({...i,domain:l??r?.original})),t(i=>({...i,domain:c??o?.original})),m(i=>({...i,xDomain:{...i.xDomain,current:void 0},yDomain:{...i.yDomain,current:void 0}}))},[e,t,m,o?.original,r?.original])};import Bt,{useCallback as co,useState as fr}from"react";import{createPortal as cr}from"react-dom";var so=({children:e,id:t})=>{let o=document.getElementById(`__gg-zoom-out-button-${t}`);return o?cr(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]=fr(!1),l=co(()=>{c(s=>!s)},[c]),i=co(()=>c(!1),[c]);return Bt.createElement(so,{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:i,onFocus:l,onBlur:i},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 pr}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),dr="#22222288",go=po.forwardRef((e,t)=>po.createElement("rect",{ref:t,fill:"transparent",style:{pointerEvents:"none",fill:dr,transition:"fill 100ms ease-in-out"}})),yo=({children:e,id:t})=>{let o=document.getElementById(`__gg-brush-exclusion-${t}`);return o?pr(e,o):null};var Z=2,hr=({x:e,y:t,group:o,xAdj:r=0,yAdj:m=0,onMouseOver:a,onClick:c,onMouseLeave:l,onDatumFocus:i,data:s,aes:n,customXExtent:D,customYExtent:S,getYValExtent:G,positionKeys:y,disabled:_,showTooltip:A=!0,brushAction:V,isZoomedOut:R,stackXMidpoints:Y,stackYMidpoints:B,xBandScale:z,yBandScale:F,fill:N})=>{let{ggState:H}=Ht()||{},{width:T,height:v,margin:u,data:j,scales:d,id:st}=H||{width:0,height:0,margin:{top:0,right:0,bottom:0,left:0}},[{datum:kt},at]=re(gt),[{animationDuration:St,geoms:Rt}]=re(it),[{domain:et,reverse:vt},Ft]=re(xt),[{reverse:Xt},zt]=re(yt),[{xDomain:wt,yDomain:ft,onZoom:K,onUnzoom:lt},Pt]=re(Gt),_t=_e(),ht=Mt(null),C=Mt(!1),L=Mt(!1),pt=Mt(null),ot=Mt(),mt=Mt(null),Q=Mt(null),U=Mt(null),Et=Mt(null),x=Tt(()=>o==="x",[o]),f=Tt(()=>o==="y",[o]),w=Tt(()=>!!i,[i]),[W,dt]=yr(!1),Ut=s?.map(e),ue=s?.map(t);gr(()=>{C.current=!1;let g=setTimeout(()=>{C.current=!0},(St??1e3)+50);return()=>clearTimeout(g)},[JSON.stringify(j),JSON.stringify(s),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(()=>s??[],[s]),Xe=At(p=>(e(p)??0)+r,[e,r]),ze=At(p=>(t(p)??0)+m,[t,m]),qt=Tt(()=>Le.from(ne,Xe,ze),[s,Xe,ze]),ut=Tt(()=>{if(!B)return;let p=z?.domain().map(g=>{let P=d?.xScale(g),h=B.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))},[B,d?.yScale,z,$,d?.xScale,r]),ce=Tt(()=>{if(!ut||!w)return;let p=(z?.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,z,r,T,u]),rt=Tt(()=>{if(!Y)return;let p=F?.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,F,$]),fe=Tt(()=>{let p=T-(u.left+u.right)>0;if(!rt||!w||!p)return;let g=(F?.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]),Ie=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]),It=At(()=>{at(p=>({...p,datum:void 0}))},[at]),ie=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),M=(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",`${M-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",`${M-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",`${M}px`),U.current.setAttribute("width",`${T-u.right-u.left+Z*2}px`),U.current.setAttribute("height",`${Math.max(v-M-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;It(),ie();let E=s?.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?[xr([bt[0],et[0]]),Sr([bt[1],et[1]])]:bt;tt=vt?tt:tt.reverse();let M=x?tt:[d?.yScale.invert(Math.min(h,b)),d?.yScale.invert(Math.max(h,b))];M=vt?M:M.reverse(),zt(I=>({...I,domain:X})),Ft(I=>({...I,domain:M})),Pt(I=>({...I,xDomain:{...I.xDomain,current:X},yDomain:{...I.yDomain,current:M}})),K&&K({x:X,y:M})}}L.current=!1,pt.current&&clearTimeout(pt.current)},[It,ie,j,x,f,ut,rt,Xt,vt,n,d,t,wt,ft,K,Rt,G]),Oe=At(p=>{if(C.current&&s&&s.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 M=z?.step?.()??1,I=(h-u.left+(z?.padding?.()??0)*M/2)/M,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=s.findIndex(Yt=>n?.x?.(Yt)?.valueOf()===ct.xVal&&d?.groupAccessor?.(Yt)===ct.groupVal)}if(rt){let M=F?.step?.()??1,I=b+u.top-m+(F?.padding?.()??0)*M/2,nt=Math.min(Math.floor(Math.max(0,I)/M),rt.length-1),Ct=rt[nt].delaunay.find(h,b),ct=rt[nt].data[Ct];E=s.findIndex(Yt=>n?.y?.(Yt)===ct.yVal&&d?.groupAccessor?.(Yt)===ct.groupVal)}let k=s[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 M=e(k);if(kt&&e(kt[0])===M)return;let I=[],nt=[];s.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-${st}`);Array.from(Ct).forEach(ct=>{let Yt=ct;Yt.style.transform=`translate(${M}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 M=[],I=[];s.forEach((nt,Ct)=>{n?.y&&n.y(nt)?.toString()===n.y(k)?.toString()&&(M.push(nt),I.push(Ct))}),a&&a({d:M,i:I}),at(nt=>({...nt,datum:M}))}else bt&&tt&&(a&&a({d:[k],i:[E]}),at(M=>({...M,datum:[k]})))}}},[s,n,at,T,qt,rt,ut,a,x,f,kt,d,z,F,Be,V,$,N,u.top,u.left]),Vt=At(p=>{C.current&&(l&&l(),A&&It(),W&&pe(p)),document.onselectstart=()=>!0},[A,It,l,W]),de=At(p=>{Vt(p),V==="zoom"&&_t({customXExtent:D,customYExtent:S}),A&&It(),V&&ie(),lt&&lt()},[Vt,It,ie,Ft,zt,Pt,S,ft?.original,wt?.original,V,A,lt,_t,Rt]),$e=At(p=>{let[g,P]=xo(p,ht.current);if(document.onselectstart=()=>!1,p.detail>1&&p.preventDefault(),s&&s.length&&V&&!$&&(pt.current=setTimeout(()=>{l(),It(),dt(!0),L.current=!0,ot.current={x0:g,x1:g,y0:P,y1:P}},180)),c&&s&&s.length){let h=qt.find(g,P),b=s[h];if(x&&n?.x){let E=[],k=[];s.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=[];s.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},[s,T,c,qt,n,o,l,It,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(s&&rt){let E=P;s.forEach((k,O)=>{n?.y?.(k)===E.yVal&&d?.groupAccessor?.(k)===E.groupVal&&(h.push(k),b.push(O))})}else if(s&&ut){let E=P;s.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}),i&&i(h,b)}},[W,a,i,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_${st}`},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:st},[mt,Q,U,Et].map((p,g)=>J.createElement(go,{ref:p,key:`exclusion-${g.toString()}`}))),(wt?.current||ft?.current)&&!R&&J.createElement(fo,{id:st,x:T-u.right,y:v,onClick:de,isBrushing:W}))),!ce&&!fe&&Ie&&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:Ie.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 br}from"nanoid";var Me=()=>br(10);var Dr=e=>{let t;switch(e){case null:t="[null]";break;case void 0:t="[undefined]";break;default:t=e}return t};import{flushSync as kr}from"react-dom";import{createRoot as Pr}from"react-dom/client";var Er=e=>{let t=document.createElement("div"),o=Pr(t);return kr(()=>o.render(e)),t.innerText};import{usePageVisibility as Qs}from"react-page-visibility";var _r=({children:e,...t})=>{let{data:o,aes:r,width:m,height:a,margin:c,isContainerWidth:l}={...t},i=Ar(null),[s,n]=vr(l?i.current?.clientWidth:m);Vr(()=>{l&&n(i.current?.clientWidth)},[l]),Gr(()=>{let S=new ResizeObserver(G=>{let y=G[0].contentRect;l&&n(y.width)});return i.current&&l&&S.observe(i.current),()=>{i.current&&l&&S.unobserve(i.current)}},[l]);let D=Tr(()=>Me(),[]);return Re.createElement("div",{ref:i},Re.createElement(wr,null,Re.createElement(no,{data:o.map((S,G)=>({...S,gg_gen_index:G})),aes:r,width:s,height:a,margin:c,id:D},e)))};import{useEffect as Cr}from"react";import{useAtom as Yr}from"jotai";var Lr=({header:e,x:t,y:o})=>{let[,r]=Yr(Zt);return Cr(()=>{r({header:e,x:t,y:o})},[r,e,t,o]),null};import{useEffect as Mr}from"react";import{useAtom as Rr}from"jotai";var Fr=({headerColor:e,markerStroke:t,defaultStroke:o,defaultFill:r,font:m,grid:a,axis:c,axisX:l,axisY:i,legend:s,tooltip:n,animationDuration:D})=>{let[,S]=Rr(it),G=(y,_)=>{let A;return typeof y<"u"?y===null?A=y:A={..._,...y}:A=_,A};return Mr(()=>{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(i,y.axisY),legend:s?{...y.legend,...s}:y.legend,tooltip:n?{...y.tooltip,...n}:y.tooltip}))},[S,e,t,o,r,m,a,c,l,i,s,n,D]),null};import{useEffect as Xr}from"react";import{useAtom as zr}from"jotai";var Ir=({keepInParent:e,position:t,xAxis:o,content:r,xFormat:m,yFormat:a,measureFormat:c,datum:l,dx:i,dy:s})=>{let[,n]=zr(gt);return Xr(()=>{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:i,dy:s}))},[e,t,o,r,m,a,c,l,n,i,s]),null};import ko,{useEffect as Br,useState as Po,useRef as Or,useCallback as $r,useMemo as Fe}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 Zr=({id:e,left:t,top:o,value:r,wait:m})=>{let{ggState:a}=Ht()||{},{width:c,height:l}=a||{width:0,height:0},[{position:i,keepInParent:s,dx:n,dy:D}]=Eo(gt),[{font:S}]=Eo(it),[G,y]=Po(void 0),[_,A]=Po(void 0),V=Or(null),R=Fe(()=>n?typeof n=="number"?n:n({width:c,x:t}):0,[n,c,t]),Y=Fe(()=>D?typeof D=="number"?D:D({height:l,y:-o}):0,[D,l,o]),B=Fe(()=>typeof s=="boolean"?s:s?s({width:c,x:t}):!0,[s,c,t]),z=$r(()=>{if(V.current){let F=V.current?.clientWidth||0,N=V.current?.clientHeight||0,H=t+8+R;B&&H&&H<2?H=2:B&&t>c/2&&(H=t-F-8-R),y(H);let T=o-(i==="data"?N/2:0)-5+Y;A(T)}},[c,t,o,i,B,R,Y]);return Br(()=>{if(m){let F=setTimeout(()=>{z()},0);return()=>clearTimeout(F)}return z(),()=>{}},[z,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 To,{useEffect as Nr,useState as Ao,useRef as Hr}from"react";import{useAtom as Vo}from"jotai";var Wr=({id:e,left:t,top:o,value:r,yPosition:m="below",align:a="center"})=>{let{width:c,margin:l}=Ht()?.ggState||{width:0},[{font:i}]=Vo(it),[{keepInParent:s}]=Vo(gt),[n,D]=Ao(0),[S,G]=Ao(0),y=Hr(null);return Nr(()=>{let _=y.current?.clientWidth||0,A=y.current?.clientHeight||0,V=_/2,R;a==="center"?R=V:a==="right"?R=0:R=V*2;let Y=_&&t-R,B=Y&&_&&Y+_;s&&Y&&Y<l.left?Y=l.left:s&&Y&&_&&B&&B>c&&(Y=c-_-2),G(o-(m==="above"?(A||0)+8:0)),Y&&D(Y)},[c,t,o,e,s,m,a]),To.createElement(bo,{id:e},To.createElement("div",{ref:y,style:{fontFamily:i?.family,pointerEvents:"none",position:"absolute",left:n||-9999,top:S||-9999,whiteSpace:"nowrap"}},r))};import Ur from"react";var qr={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"},Jr=({children:e,style:t})=>Ur.createElement("div",{style:{...qr,...t}},e);import{useEffect as Go}from"react";import{useAtom as vo}from"jotai";var jr=({type:e,format:t,numTicks:o,domain:r,reverse:m,highlightOnFocus:a,focusedTicks:c,className:l})=>{let[,i]=vo(yt),[,s]=vo(Gt);return Go(()=>{i(n=>({...n,type:e,format:t,numTicks:o||n.numTicks,domain:r,reverse:m,highlightOnFocus:a,focusedTicks:c,className:l,isFixed:!!r}))},[i,e,t,o,r,m,a,c,l]),Go(()=>{s(n=>({...n,xDomain:{...n.xDomain,original:r}}))},[s,r]),null};import{useEffect as wo}from"react";import{useAtom as _o}from"jotai";var Kr=({type:e,format:t,numTicks:o,domain:r,reverse:m,highlightOnFocus:a,focusedTicks:c,className:l})=>{let[,i]=_o(xt),[,s]=_o(Gt);return wo(()=>{i(n=>({...n,type:e,format:t,numTicks:o||n.numTicks,domain:r,reverse:m,highlightOnFocus:a,focusedTicks:c,className:l,isFixed:!!r}))},[i,e,t,o,r,m,a,c,l]),wo(()=>{s(n=>({...n,yDomain:{...n.yDomain,original:r}}))},[s,r]),null};import{useEffect as Qr}from"react";import{useAtom as tn}from"jotai";var en=({type:e,domain:t,values:o,reverse:r})=>{let[,m]=tn(te);return Qr(()=>{m({type:e,domain:t,values:o,reverse:r})},[m,e,t,o,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(ee);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=({domain:e,values:t})=>{let[,o]=an(oe);return sn(()=>{o({domain:e,values:t})},[o,e,t]),null};import{useEffect as mn}from"react";import{useAtom as un}from"jotai";var cn=({domain:e,range:t})=>{let[,o]=un(De);return mn(()=>{o(r=>({...r,domain:e||r.domain,range:t||r.range}))},[o,e,t]),null};export{Jo as BrushAction,hr as EventArea,_r as GG,Lr as Labels,jo as LegendOrientation,en as ScaleFill,cn as ScaleRadius,nn as ScaleStroke,ln as ScaleStrokeDasharray,jr as ScaleX,Kr as ScaleY,Fr as Theme,Ir as Tooltip,Jr as TooltipContainer,be as TooltipPosition,Wr as XTooltip,Zr as YTooltip,io as Zoom,ae as autoScale,Ne as createSequentialScheme,Mo as debounce,Ze as defaultDasharrays,$t as defaultInterpolator,Kt as defaultScheme,Qt as defineGroupAccessor,zo as elongate,te as fillScaleState,Ro as focusNodes,ye as formatDate,Dr as formatMissing,Lo as formatMonth,Me as generateID,Xo as getYAlongPath,Dt as isDate,Zt as labelsState,Er as nodeToString,Yo as parseDate,De as radiusScaleState,oe as strokeDasharrayState,ee as strokeScaleState,it as themeState,gt as tooltipState,Fo as unfocusNodes,Ht as useGG,Qs as usePageVisibility,_e as useUnZoom,Io as widen,yt as xScaleState,xt as yScaleState,Gt as zoomState}; //# sourceMappingURL=index.js.map