zframes 0.5.2 → 0.6.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/NOTICE +6 -2
- package/dist/index.js +614 -10
- package/package.json +2 -2
- package/runtime/assets/{bitcoin-dominance-CtnczH5N.js → bitcoin-dominance-CweHlZx7.js} +1 -1
- package/runtime/assets/{breakeven-zbCEQ5ag.js → breakeven-CG9rKwgE.js} +1 -1
- package/runtime/assets/{breathing-6Wmy_hqF.js → breathing-cDundHq6.js} +1 -1
- package/runtime/assets/{btc-blocks-D1xOLm2L.js → btc-blocks-Do_nySHd.js} +1 -1
- package/runtime/assets/{btc-difficulty-BTbKIqrl.js → btc-difficulty-vNbz5uRo.js} +1 -1
- package/runtime/assets/{btc-fees-5Geh2TSa.js → btc-fees-BmADLsmK.js} +1 -1
- package/runtime/assets/{btc-hashrate-DZfnxUsi.js → btc-hashrate-Wx2RAG-5.js} +1 -1
- package/runtime/assets/{btc-mempool-8oOMDiaW.js → btc-mempool-CTwbkMUR.js} +1 -1
- package/runtime/assets/{calculator-D91iI7KM.js → calculator-mvv6XpQC.js} +1 -1
- package/runtime/assets/{checklist-DNrOJw0w.js → checklist-CuEw3GpE.js} +1 -1
- package/runtime/assets/{clock-BzAIAbhU.js → clock-Cjnwi03W.js} +1 -1
- package/runtime/assets/{coin-movers-99W2EABZ.js → coin-movers-Bcx1XR0F.js} +1 -1
- package/runtime/assets/{countdown-ZAJmbykg.js → countdown-Cdi5gSSu.js} +1 -1
- package/runtime/assets/cycle-shared-BOGcJDzT.js +1 -0
- package/runtime/assets/cycle-signals-CS629ZDc.js +1 -0
- package/runtime/assets/{daily-analysis-CS5MqofA.js → daily-analysis-DX8bVq85.js} +1 -1
- package/runtime/assets/{day-meter-DzBvLcpd.js → day-meter-DDfTuhms.js} +1 -1
- package/runtime/assets/defi-revenue-CpeAGwhb.js +1 -0
- package/runtime/assets/{dex-volume-chart-BfnczfAT.js → dex-volume-chart-sHIuJACJ.js} +1 -1
- package/runtime/assets/{dex-volume-treemap-CLyIrkgU.js → dex-volume-treemap-rSTrzz7O.js} +1 -1
- package/runtime/assets/{dice-CAvRf0md.js → dice-BrFORdjN.js} +1 -1
- package/runtime/assets/{dino-game-gsyCpJ-0.js → dino-game-BOV8mV1d.js} +1 -1
- package/runtime/assets/{divider-DCTu-qNh.js → divider-C33tH1RU.js} +1 -1
- package/runtime/assets/{drawdy-CZWCFtog.js → drawdy-BIb36JN9.js} +1 -1
- package/runtime/assets/dxy-CRifEdp_.js +1 -0
- package/runtime/assets/editor-CZoWRTJC.css +1 -0
- package/runtime/assets/editor-Dnp1eXvY.js +68 -0
- package/runtime/assets/etf-flows-BV10E2R-.js +1 -0
- package/runtime/assets/etf-flows-chart-DHu8mkXm.js +1 -0
- package/runtime/assets/eth-staking-BqWeJq6F.js +1 -0
- package/runtime/assets/eth-supply-CF-MgHjn.js +1 -0
- package/runtime/assets/{fear-greed-DOcPswrx.js → fear-greed-DuDR56h2.js} +1 -1
- package/runtime/assets/{filings-feed-Cs--DpYl.js → filings-feed-BpfO2yF6.js} +1 -1
- package/runtime/assets/{financial-stress-BqnxLk2O.js → financial-stress-BfYJdlry.js} +1 -1
- package/runtime/assets/{flappy-bird-DaasqVGg.js → flappy-bird-Dbb2UQBv.js} +1 -1
- package/runtime/assets/{fundamentals-GseULnsD.js → fundamentals-CUnqjF--.js} +1 -1
- package/runtime/assets/funding-comparison-CMKxW1n-.js +1 -0
- package/runtime/assets/{funding-heatmap-2RvVLTPN.js → funding-heatmap-CZWnYF8Y.js} +1 -1
- package/runtime/assets/{funding-rate-chart-DCRKHp6g.js → funding-rate-chart-C-tpwid_.js} +1 -1
- package/runtime/assets/{fx-board-CVW6VmbY.js → fx-board-YAy44m5d.js} +1 -1
- package/runtime/assets/{heading-BaRMJq2t.js → heading-uIVBEE7K.js} +1 -1
- package/runtime/assets/{holiday-calendar-2OBfwbh-.js → holiday-calendar-DCj83hi2.js} +1 -1
- package/runtime/assets/{image-CuTXEV7Q.js → image-CITPAmp0.js} +1 -1
- package/runtime/assets/index-Bx7RmzY8.js +1 -0
- package/runtime/assets/index-CrmTiZaB.css +1 -0
- package/runtime/assets/index-DyvZokhk.js +1097 -0
- package/runtime/assets/indicators-CogwjDn9.js +1 -0
- package/runtime/assets/{inflation-pulse-B8E9uzQB.js → inflation-pulse-Bqa3-cuC.js} +1 -1
- package/runtime/assets/{journal-log-7APM_99k.js → journal-log-Bgjia8cQ.js} +1 -1
- package/runtime/assets/{journal-open-CcdGuysA.js → journal-open-Bm5gwWXz.js} +1 -1
- package/runtime/assets/{journal-results-CUTn4-kq.js → journal-results-cEWe2pbe.js} +1 -1
- package/runtime/assets/{journal-score-C31dg2yL.js → journal-score-vmfF-9bK.js} +1 -1
- package/runtime/assets/{journal-ui-C5ueSjZx.js → journal-ui-ApBNIq5_.js} +1 -1
- package/runtime/assets/{labor-market-DgvDQtFo.js → labor-market-azDXD-dR.js} +1 -1
- package/runtime/assets/{lightning-stats-CiUlm-e_.js → lightning-stats-nkyh2dOX.js} +1 -1
- package/runtime/assets/{link-grid-DlsY59eq.js → link-grid-BEo4b54T.js} +1 -1
- package/runtime/assets/ma-multiplier-BllDQMF5.js +1 -0
- package/runtime/assets/macro-calendar-Ck0dJk4p.js +1 -0
- package/runtime/assets/{market-cap-treemap-6vqLUgVk.js → market-cap-treemap-AxE2EYPO.js} +1 -1
- package/runtime/assets/{market-hours-BArlXOQB.js → market-hours-BSwXtU8c.js} +1 -1
- package/runtime/assets/{marquee-2Di2SqI2.js → marquee-1Zr5qDJP.js} +1 -1
- package/runtime/assets/mayer-multiple-DpBJNd4d.js +1 -0
- package/runtime/assets/{mining-pools-Bg02wm2V.js → mining-pools-B-jxdTot.js} +1 -1
- package/runtime/assets/{mover-row-C8040L85.js → mover-row-Dg96EIqq.js} +1 -1
- package/runtime/assets/mvrv-Dx_S0TwE.js +1 -0
- package/runtime/assets/{national-debt-BS57WjA3.js → national-debt-BKVBHaqm.js} +1 -1
- package/runtime/assets/{news-feed-oBCTiuoo.js → news-feed-C9itZmyp.js} +1 -1
- package/runtime/assets/{note-BLWlz52v.js → note-BtCnmuMo.js} +1 -1
- package/runtime/assets/nupl-aIjkc57m.js +1 -0
- package/runtime/assets/{open-interest-DxMqZcmu.js → open-interest-C0ulogv6.js} +1 -1
- package/runtime/assets/{options-iv-CgIIFdpN.js → options-iv-CdUder3x.js} +1 -1
- package/runtime/assets/{options-oi-strike-blRp4kmB.js → options-oi-strike-CvCZnMCR.js} +1 -1
- package/runtime/assets/{options-put-call-CyOwXBVQ.js → options-put-call-FuaDHJ-S.js} +1 -1
- package/runtime/assets/pi-cycle-BuCnLnIJ.js +1 -0
- package/runtime/assets/{pomodoro-BKJlh-bz.js → pomodoro-DDBVVcSR.js} +1 -1
- package/runtime/assets/{portfolio-allocation-Cat1vq2_.js → portfolio-allocation-DAnQk_h_.js} +1 -1
- package/runtime/assets/{portfolio-common-DeyRfuNV.js → portfolio-common-Bi16i0aA.js} +1 -1
- package/runtime/assets/{portfolio-holdings-DDDhMMFL.js → portfolio-holdings-MyAinCzt.js} +1 -1
- package/runtime/assets/{portfolio-value-D9qrGeZp.js → portfolio-value-BPURwKf8.js} +1 -1
- package/runtime/assets/prediction-markets-Bzy51qnV.js +1 -0
- package/runtime/assets/{price-chart-CQJNOBtu.js → price-chart-BOCD8ka3.js} +1 -1
- package/runtime/assets/{price-compare-DqBiHd7S.js → price-compare-DZlF-qhZ.js} +1 -1
- package/runtime/assets/{price-liveline-BlVGC2-R.js → price-liveline-Bl7qCd5-.js} +1 -1
- package/runtime/assets/{price-ticker-QdVoVaQh.js → price-ticker-D2W4T02y.js} +1 -1
- package/runtime/assets/{protocol-fees-treemap-39F-aE33.js → protocol-fees-treemap-DiIt4bfo.js} +1 -1
- package/runtime/assets/{protocol-tvl-chart-DZOgbMZu.js → protocol-tvl-chart-CmzANiR7.js} +1 -1
- package/runtime/assets/{protocol-tvl-treemap-DusQ6xL2.js → protocol-tvl-treemap-BjNPrrtL.js} +1 -1
- package/runtime/assets/puell-multiple-BGrJX43r.js +1 -0
- package/runtime/assets/{quote-Di049ggj.js → quote-CRM3bfI7.js} +1 -1
- package/runtime/assets/{rates-board-Dm3tb6-P.js → rates-board-Cb9rV0_-.js} +1 -1
- package/runtime/assets/realized-price-CYlrFa0m.js +1 -0
- package/runtime/assets/reserve-risk-Be98XUsD.js +1 -0
- package/runtime/assets/{returns-projector-BiMx_kSw.js → returns-projector-D67a_yvC.js} +1 -1
- package/runtime/assets/{risk-reward-1Q_Kt75s.js → risk-reward-C7WMz2od.js} +1 -1
- package/runtime/assets/rsi-momentum-IglnulkJ.js +1 -0
- package/runtime/assets/{rules-card-BkAX9PEq.js → rules-card-DJs3fDVN.js} +1 -1
- package/runtime/assets/scene-uwfOGek1.js +1 -0
- package/runtime/assets/sector-performance-DVMaleLY.js +1 -0
- package/runtime/assets/sector-treemap-B681nSi6.js +1 -0
- package/runtime/assets/{session-progress-D_1dzPzM.js → session-progress-CZO3LqUi.js} +1 -1
- package/runtime/assets/{short-volume-U-uFonb2.js → short-volume-l8_9Yoh3.js} +1 -1
- package/runtime/assets/{snake-Dp4E3Dcv.js → snake-CifbTGlZ.js} +1 -1
- package/runtime/assets/sopr-Dw_oz-mC.js +1 -0
- package/runtime/assets/{spotify-embed-Cw95WZjV.js → spotify-embed-BA0m1IRb.js} +1 -1
- package/runtime/assets/stablecoin-chains-Dd2LqqqY.js +1 -0
- package/runtime/assets/stablecoin-supply-DM4ogL4V.js +1 -0
- package/runtime/assets/{stopwatch-B2_iDkKK.js → stopwatch-Co72v-7u.js} +1 -1
- package/runtime/assets/{top-movers--vCUiTII.js → top-movers-CLmC2TNu.js} +1 -1
- package/runtime/assets/{treasury-auctions-BpzYivLg.js → treasury-auctions-Dl9fiRgf.js} +1 -1
- package/runtime/assets/{treemap-leaf-DNIoJEK-.js → treemap-leaf-Dn31k9S9.js} +1 -1
- package/runtime/assets/trending-coins-Cpx9T6cG.js +1 -0
- package/runtime/assets/{tvl-treemap-BYgD9bNy.js → tvl-treemap-e610jE8k.js} +1 -1
- package/runtime/assets/{video-D-nBm697.js → video-CeKjM-cE.js} +1 -1
- package/runtime/assets/volume-profile-CiMFsIBu.js +1 -0
- package/runtime/assets/{yield-curve-8IsrMS_9.js → yield-curve-DkB0u2_Q.js} +1 -1
- package/runtime/assets/yield-scanner-BP90untT.js +1 -0
- package/runtime/index.html +2 -2
- package/runtime/assets/editor-BMMobjrE.css +0 -1
- package/runtime/assets/editor-Ckt9OQ98.js +0 -68
- package/runtime/assets/index-BqHx9BjX.css +0 -1
- package/runtime/assets/index-CH54P4Cn.js +0 -936
- package/runtime/assets/index-DK7jWlTL.js +0 -1
- package/runtime/assets/unicorn-scene-DcohHRPZ.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as k,j as s,R as dt}from"./react-qoZPGuNy.js";import{l as it,s as P,h as ut,c as mt,e as pt,i as ct,j as et,d as ft,f as ht,k as gt,n as Z,q as xt,r as vt,t as yt,u as nt,v as wt}from"./d3-xK4fOkBU.js";import{c as D}from"./utils-DaT-yT0k.js";import{c as jt,f as kt}from"./chart-utils-BYIZMM9J.js";const W={top:20,right:110,bottom:40,left:50},Q={sm:640},q={height:400,yAxisPadding:15,fontSize:12},st={rectHeight:22,paddingX:4},bt={offsetX:80},_={ticks:6,opacity:.05,color:"#FFFFFF"},$={xTicks:5,xSubTicks:36,yTicks:5,tickSize:10,subTickSize:6,tickColor:"#404146",domainColor:"#FFFFFF",domainOpacity:.05,textOpacity:.5},rt=1e12,at=1e9,K=1e6,X=t=>t==null?"-":t===0?"0":t<.001?Nt(t):t<1||t<10?parseFloat(t.toPrecision(4)).toString():t<K?t.toLocaleString("en-US",{minimumFractionDigits:0,maximumFractionDigits:2}):t>rt?`${(t/rt).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}T`:t>at?`${(t/at).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}B`:t>K?`${(t/K).toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2})}M`:t.toLocaleString("en-US",{minimumFractionDigits:0,maximumFractionDigits:0}),St=t=>{const n=["₀","₁","₂","₃","₄","₅","₆","₇","₈","₉"];return t.toString().split("").map(e=>n[parseInt(e)]).join("")},Nt=t=>{const n=t<0,i=Math.abs(t).toFixed(20).replace(/\.?0+$/,""),c=i.match(/^0\.0+/);if(c){const u=c[0].length-2,a=i.slice(c[0].length).slice(0,3).replace(/0+$/,""),d=`0.${St(u)}${a}`;return n?`-${d}`:d}return Number.isInteger(t)?String(t):String(Math.round(t*100)/100)},Ct=({width:t,height:n=q.height,yDomain:e,formatValue:i,containerRef:c,svgRef:u})=>{const[o,a]=k.useState(t);k.useLayoutEffect(()=>{const y=()=>{if(c.current){const g=c.current.getBoundingClientRect();a(g.width)}};return y(),window.addEventListener("resize",y),()=>window.removeEventListener("resize",y)},[c]);const d=y=>{const g=P(u.current);if(!g.node())return W.left;const M=g.append("text").style("font-size",`${q.fontSize}px`).style("font-family","var(--font-dmsans)").style("font-weight","700").style("visibility","hidden"),[b,E]=y.domain(),z=[],B=5;for(let A=0;A<B;A++){const F=b+(E-b)/(B-1)*A;z.push(F)}let T=0;return z.forEach(A=>{var I;const F=i?i(A):X(A);M.text(F);const O=((I=M.node())==null?void 0:I.getBBox().width)||0;T=Math.max(T,O)}),M.remove(),Math.ceil(T)+q.yAxisPadding};let r=o??null;if(!r&&c.current){const y=c.current.getBoundingClientRect();y.width>0&&(r=y.width)}r=r||t||null;const f=n-W.top-W.bottom,v=it().domain(e).range([f,0]),p=r&&r>0?d(v):null,j=r&&r>0&&p&&p>0?r-p-(r>640?W.right:20):null;return{width:r,height:n,innerWidth:j,innerHeight:f,dynamicLeftMargin:p}},Mt=t=>{const n=k.useMemo(()=>{const o=new Set;return t.forEach(a=>{a.seriesGroup&&o.add(a.seriesGroup)}),Array.from(o)},[t]),[e,i]=k.useState(()=>new Set(n));k.useEffect(()=>{i(o=>{const a=new Set(o);return n.forEach(d=>{a.has(d)||a.add(d)}),a})},[n]);const c=k.useMemo(()=>t.filter(o=>o.seriesGroup?e.has(o.seriesGroup):!0),[t,e]);return{seriesGroups:n,visibleGroups:e,filteredSeries:c,toggleGroup:o=>{i(a=>{const d=new Set(a);return d.has(o)?d.delete(o):d.add(o),d})}}},Tt=t=>({seriesColors:k.useMemo(()=>t.reduce((e,i)=>(e[i.id]=i.color,e),{}),[t]),isColorLoading:!1}),$t=({group:t,isVisible:n,onClick:e})=>s.jsxs("button",{onClick:e,className:D("flex cursor-pointer items-center justify-center gap-2 text-xs font-semibold",n?"text-white":"text-white/30"),children:[s.jsx("div",{className:D("h-3 w-3",n?"bg-white/80":"bg-white/30")}),t]}),Lt=$t,Ft=(t,n)=>kt(t,n),ot=(t,n)=>{const e=parseInt(t.slice(1,3),16),i=parseInt(t.slice(3,5),16),c=parseInt(t.slice(5,7),16);return`rgba(${e}, ${i}, ${c}, ${n})`},Dt=t=>{const n=t.flatMap(e=>e.data);return jt(n)},Et=t=>{const n=new Set;return t.forEach(e=>{e.data.forEach(i=>n.add(i.date))}),Array.from(n).sort()},zt=(t,n)=>t.map(e=>{const i={};return n.forEach(c=>{const u=c.data.find(o=>o.date===e);i[c.id]=u?u.value:0}),{date:new Date(e),values:i}}),At=(t,n,e)=>{const i=n.invert(t),c=ut(d=>d.date).left,u=c(e,i,1),o=e[u-1],a=e[u];return!o||!a?null:i.getTime()-o.date.getTime()>a.date.getTime()-i.getTime()?a:o},J=(t,n)=>{const e=n===t,i=n!==null&&n!==t;return e?1:i?.3:1},It=({legendItems:t,containerWidth:n,hoveredSeriesId:e,onSeriesHover:i,onLabelClick:c,unitPrefix:u,unitSuffix:o,legendRef:a})=>n&&n>Q.sm?s.jsx("div",{className:D("pointer-events-none absolute left-0 top-0 w-full flex-wrap items-center gap-2 max-sm:overflow-hidden"),children:t.map(r=>s.jsx("div",{className:D("pointer-events-auto absolute flex h-[22px] w-fit cursor-pointer items-center justify-center gap-1 rounded-[11px] px-[5px] py-1 transition-opacity duration-200 ease-out"),style:{left:`${r.left}px`,top:`${r.top}px`,backgroundColor:ot(r.color,.3),opacity:J(r.id,e)},onClick:()=>c==null?void 0:c(r.id),onPointerEnter:f=>{f.preventDefault(),f.stopPropagation(),i(r.id)},onPointerLeave:f=>{f.preventDefault(),f.stopPropagation(),i(null)},children:s.jsxs("div",{className:"relative flex select-none items-center justify-center gap-1",children:[r.seriesData.iconImageUrl&&s.jsx("div",{className:"size-4 rounded-full",children:s.jsx("img",{src:r.seriesData.iconImageUrl,width:16,height:16,alt:r.seriesData.name,className:"size-4 rounded-full",draggable:!1})}),s.jsxs("div",{className:"text-normal relative flex items-center justify-center whitespace-nowrap text-[11px] font-semibold leading-4",children:[s.jsx("span",{className:D("mr-1 max-w-12 truncate",r.seriesData.iconImageUrl?"max-w-10":"max-w-12"),children:r.displayText}),u&&s.jsx("span",{className:"mr-0.5 [&_svg]:!text-white/70",children:u}),s.jsx("span",{children:r.value}),o&&s.jsx("span",{children:o})]})]})},r.id))}):s.jsx("div",{className:D("pointer-events-none left-0 top-0 flex w-full flex-wrap items-center gap-1 max-sm:overflow-hidden"),ref:a,children:t.map(r=>s.jsx("div",{className:D("pointer-events-auto flex h-[22px] w-fit min-w-[112px] cursor-pointer items-center gap-1 rounded-[11px] px-[5px] py-1 transition-opacity duration-200 ease-out"),style:{backgroundColor:ot(r.color,.3),opacity:J(r.id,e)},onClick:()=>c==null?void 0:c(r.id),onPointerEnter:f=>{f.preventDefault(),f.stopPropagation(),i(r.id)},onPointerLeave:f=>{f.preventDefault(),f.stopPropagation(),i(null)},children:s.jsxs("div",{className:"relative flex select-none items-center gap-1",children:[r.seriesData.iconImageUrl&&s.jsx("div",{className:"size-4 rounded-full",children:s.jsx("img",{src:r.seriesData.iconImageUrl,width:16,height:16,alt:r.seriesData.name,className:"size-4 rounded-full",draggable:!1})}),s.jsxs("div",{className:"text-normal relative flex items-center whitespace-nowrap text-[11px] font-semibold leading-none",children:[s.jsx("span",{className:D("mr-1 max-w-12 truncate",r.seriesData.iconImageUrl?"max-w-10":"max-w-12"),children:r.displayText}),s.jsx("span",{"data-legend-value":r.id,children:r.value}),o&&s.jsx("span",{children:o})]})]})},r.id))}),Gt=It,Ht=({containerWidth:t,tooltipRef:n,series:e,seriesColors:i,unitPrefix:c,unitSuffix:u})=>t&&t>Q.sm?s.jsx("div",{ref:n,className:"pointer-events-none absolute left-0 top-0 z-50 rounded-md bg-slate-700 px-6 py-3 text-xs text-white opacity-0 transition-opacity duration-300",children:s.jsxs("div",{className:"flex flex-col gap-3",children:[s.jsx("div",{className:"body-md font-semibold text-white/50","data-tooltip-date":!0}),s.jsx("div",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5",children:e.map(a=>s.jsxs(dt.Fragment,{children:[s.jsxs("span",{className:"text-soft flex max-w-[126px] items-center gap-1",children:[s.jsx("div",{className:"h-full w-0.5 rounded-full",style:{backgroundColor:i[a.id]}}),a.iconImageUrl&&s.jsx("img",{src:a.iconImageUrl,width:20,height:20,alt:a.name,className:"rounded-full"}),s.jsx("span",{className:"text-normal body-sm font-bold capitalize",children:a.name})]}),s.jsxs("div",{className:"font-dmsans text-normal flex flex-row items-center font-bold",children:[s.jsx("div",{className:"mr-1",children:c}),s.jsx("span",{className:"text-normal text-right text-xs font-bold","data-tooltip-value":a.id}),u]})]},a.id))})]})}):s.jsx("div",{ref:n,className:"pointer-events-none absolute left-0 top-0 z-50 min-w-[130px] rounded-md bg-slate-700 px-2 py-1 text-xs text-white opacity-0 transition-opacity duration-300 ease-out",children:s.jsx("div",{className:"flex flex-col items-center justify-center gap-3",children:s.jsx("div",{className:"caption font-semibold text-white/50","data-tooltip-date":!0})})}),Ot=Ht,Wt=(t,n,e,i)=>{const c=mt().domain(pt(t,o=>o.date)).range([0,e]),u=it().domain(n).range([i,0]);return{xScale:c,yScale:u}},Bt=(t,n,e)=>{const[i,c]=n.domain(),u=[];for(let o=0;o<_.ticks;o++){const a=i+(c-i)/(_.ticks-1)*o;u.push(a)}t.append("g").attr("class","grid").call(ct(n).tickValues(u).tickSize(-e).tickFormat(()=>"")).call(o=>o.select(".domain").remove()).selectAll("line").attr("stroke",_.color).attr("stroke-opacity",_.opacity)},Ut=(t,n,e,i,c,u,o)=>{const a=o!==void 0?Math.max(2,Math.min($.xTicks,Math.floor(o/70))):$.xTicks,d=t.append("g").attr("transform",`translate(0,${i})`).call(et(n).ticks(a).tickSize($.tickSize).tickFormat(g=>g instanceof Date?Ft(g.toISOString(),c):String(g))).style("font-size","12px").style("font-weight","700").style("font-family","var(--font-manrope)");d.select(".domain").attr("stroke",$.domainColor).attr("stroke-width",1).attr("stroke-opacity",$.domainOpacity),d.selectAll(".tick line").attr("stroke",$.tickColor).attr("transform","translate(0, 4)"),d.selectAll(".tick text").attr("dy","1.2em").style("fill",$.domainColor).style("opacity",$.textOpacity);const r=t.append("g").attr("transform",`translate(0,${i})`).call(et(n).ticks($.xSubTicks).tickSize($.subTickSize).tickFormat(()=>""));r.select(".domain").remove(),r.selectAll(".tick line").attr("stroke",$.tickColor).attr("transform","translate(0, 4)");const[f,v]=e.domain(),p=[],j=5;for(let g=0;g<j;g++){const M=f+(v-f)/(j-1)*g;p.push(M)}const y=t.append("g").call(ct(e).tickValues(p).tickSize($.yTicks).tickFormat(g=>u?u(g):X(g))).style("font-size","12px").style("color",$.domainColor).style("font-family","var(--font-dmsans)").style("opacity",$.textOpacity).style("font-weight","700");y.select(".domain").attr("stroke","none"),y.selectAll(".tick line").attr("stroke","none")},Pt=(t,n,e,i,c,u=!0)=>{const o=ft().x(a=>i(a.date)).y(a=>c(a.value)).curve(ht);n.forEach(a=>{const d=a.data.map(p=>({date:new Date(p.date),value:p.value})),r=e[a.id],f=t.append("path").datum(d).attr("fill","none").attr("stroke",r).attr("stroke-width",1.2).attr("opacity",1).attr("data-series-id",a.id).attr("d",o);if(!u){f.attr("stroke-dasharray",null).attr("stroke-dashoffset",null);return}const v=f.node().getTotalLength();f.attr("stroke-dasharray",v+" "+v).attr("stroke-dashoffset",v),f.transition("draw").duration(1200).ease(gt).attr("stroke-dashoffset",0).on("end",function(){P(this).attr("stroke-dasharray",null)})})},Xt=({g:t,containerWidth:n,innerWidth:e,innerHeight:i,xScale:c,yScale:u,combinedData:o,filteredSeries:a,tooltipRef:d,containerRef:r,legendRef:f,highestValue:v,formatValue:p})=>{var G;const j=t.append("line").attr("class","hover-line").attr("stroke","white").attr("stroke-width",1).attr("stroke-dasharray","4,4").attr("stroke-opacity",.6).attr("x1",0).attr("y1",0).attr("x2",0).attr("y2",i).attr("opacity",0),y=t.append("g").attr("class","hover-dots");let g=!0,M=((G=r.current)==null?void 0:G.getBoundingClientRect().width)||e,b=0,E=0;const z=h=>{g?(j.attr("x1",h-.75),j.attr("x2",h-.75),j.transition().duration(150).ease(Z).attr("opacity",1),g=!1):j.transition().duration(100).ease(nt).attr("x1",h-.75).attr("x2",h-.75).attr("opacity",1)},B=(h,l)=>{const S=y.selectAll("g.hover-circle-group").data(a.filter(x=>h.values[x.id]!==void 0));S.exit().remove();const N=S.enter().append("g").attr("class","hover-circle-group").style("opacity",0);N.append("circle").attr("class","hover-dot-glow").attr("r",9).attr("fill","white").attr("fill-opacity",.18),N.append("circle").attr("class","hover-dot-core").attr("r",4.5).attr("fill","white").attr("stroke","rgba(10, 12, 20, 0.55)").attr("stroke-width",1.5),N.attr("transform",x=>{const C=h.values[x.id];return`translate(${l}, ${u(C)}) scale(0.5)`}).style("opacity",1).transition().duration(200).ease(wt).attr("transform",x=>{const C=h.values[x.id];return`translate(${l}, ${u(C)}) scale(1)`}),S.transition().duration(100).ease(nt).attr("transform",x=>{const C=h.values[x.id];return`translate(${l}, ${u(C)})`})},T=(h,l)=>{d.current&&b===0&&E===0&&(b=d.current.getBoundingClientRect().height,E=d.current.getBoundingClientRect().width);let m=h+bt.offsetX;return m+E>M&&(m=h-E),m<0&&(m=0),{x:m,y:l-b/2+20}},A=h=>{let m=h-65+W.left;const S=u(v);return h+130/2>M-W.left&&(m=M-130),m<0&&(m=0),{x:m,y:S}},F=(h,l)=>{if(!d.current)return;const m=d.current.querySelector("[data-tooltip-date]");m&&m.textContent!==h&&(m.textContent=h),a.forEach(S=>{var L;const N=l[S.id];if(N===void 0)return;const x=(L=d.current)==null?void 0:L.querySelector(`[data-tooltip-value="${S.id}"]`),C=p?p(N):X(N);x&&x.textContent!==C&&(x.textContent=C)})},O=h=>{if(!d.current)return;const l=d.current.querySelector("[data-tooltip-date]");l&&l.textContent!==h&&(l.textContent=h)},I=h=>{f.current&&a.forEach(l=>{var N;const m=h[l.id];if(m===void 0)return;const S=(N=f.current)==null?void 0:N.querySelector(`[data-legend-value="${l.id}"]`);if(S){const x=p?p(m):X(m);S.textContent=x}})},w=(h,l)=>{d.current&&(d.current.style.opacity="1",d.current.style.transform=`translate3d(${h}px, ${l}px, 0)`)},V=h=>{const m=window.TouchEvent&&h instanceof TouchEvent?h.touches[0]:h,[S,N]=vt(m,t.node()),x=At(S,c,o);if(!x)return;const C=c(x.date),L=yt("%b %d, %Y - %H:%M")(x.date);if(n>Q.sm){const H=T(S,N);w(H.x,H.y),F(L,x.values)}else{const H=A(S);w(H.x,H.y),O(L),I(x.values)}z(C),B(x,C)},U=()=>{j.transition().duration(150).ease(Z).attr("opacity",0),g=!0,d.current&&(d.current.style.opacity="0"),y.selectAll("g").transition().duration(150).ease(xt).style("opacity",0).attr("transform",(h,l,m)=>{const N=P(m[l]).attr("transform"),x=N.match(/translate\(([^,]+),\s*([^)]+)\)/);if(x){const C=parseFloat(x[1]),L=parseFloat(x[2]);return`translate(${C}, ${L}) scale(0.3)`}return N}).remove()},Y=new ResizeObserver(()=>{r.current&&(M=r.current.getBoundingClientRect().width)});return r.current&&Y.observe(r.current),{onMouseMove:V,onMouseLeave:U,destroy:()=>Y.disconnect()}},Vt=(t,n,{xScale:e,yScale:i},c,u,o)=>{const a=st.rectHeight,d=st.paddingX,r=[];return t.forEach(v=>{const p=v.data.map(j=>({date:new Date(j.date),value:j.value}));if(p.length>0){const j=p[p.length-1],y=e(j.date)+8,g=i(j.value),M=y-d;let b=g-a/2;const E=r.findLast(z=>b+a>=z.top&&b<=z.bottom);E&&(b=E.top+a),r.push({top:b,bottom:b+a,id:v.id,left:M})}}),r.reverse().reduce((v,p)=>{const j=v.find(y=>p.top+a>=y.top&&p.top<=y.bottom&&y.id!==p.id);return j&&(p.top=j.top-a),[p,...v]},[]),r.map(v=>{var g,M;const p=t.find(b=>b.id===v.id);if(!p)return null;const j=n[v.id],y=o?o(((g=p.data.at(-1))==null?void 0:g.value)??0):X(((M=p.data.at(-1))==null?void 0:M.value)??0);return{id:v.id,left:v.left+c,top:v.top+u,seriesData:p,color:j,value:y,displayText:p.name}}).filter(Boolean)},Yt=({className:t})=>s.jsx("div",{className:D("relative size-8",t),children:s.jsx("div",{className:"absolute left-1/2 top-1/2 flex size-12 -translate-x-1/2 -translate-y-1/2 items-center justify-center",children:s.jsxs("div",{className:"relative h-6 w-full",children:[Array.from({length:5}).map((n,e)=>s.jsx("div",{className:"absolute size-1.5 rounded-full will-change-transform",style:{left:`${e/6*100}%`,animation:`dnaStrand1Move 2s infinite ease-in-out ${-e*.2}s, dnaStrand1Scale 2s infinite ease-in-out ${-e*.2}s, dnaStrand1Color 2s infinite ease-in-out ${-e*.2}s`}},`strand1-${e}`)),Array.from({length:5}).map((n,e)=>s.jsx("div",{className:"absolute size-1.5 rounded-full",style:{left:`${e/6*100}%`,animation:`dnaStrand2Move 2s infinite ease-in-out ${-e*.2}s, dnaStrand2Scale 2s infinite ease-in-out ${-e*.2}s, dnaStrand2Color 2s infinite ease-in-out ${-e*.2}s`}},`strand2-${e}`))]})})}),_t=({series:t,width:n,height:e=400,timeframe:i,className:c,isLoading:u=!1,formatValue:o,unitPrefix:a,unitSuffix:d,onLabelClick:r})=>{const f=k.useRef(null),v=k.useRef(null),p=k.useRef(null),j=k.useRef(null),y=k.useRef(!1),[g,M]=k.useState(null),b=k.useMemo(()=>[...t].sort((l,m)=>{const S=l.data.length>0?l.data[l.data.length-1].value:0;return(m.data.length>0?m.data[m.data.length-1].value:0)-S}),[t]),E=k.useCallback(l=>{M(l)},[]),{seriesGroups:z,visibleGroups:B,filteredSeries:T,toggleGroup:A}=Mt(b),{seriesColors:F,isColorLoading:O}=Tt(b),I=k.useMemo(()=>Dt(b),[b]),w=Ct({width:n,height:e,yDomain:I,formatValue:o,containerRef:v,svgRef:f}),V=k.useMemo(()=>Et(b),[b]),U=k.useMemo(()=>zt(V,b),[V,b]),Y=k.useMemo(()=>Math.max(...T.map(l=>l.data.map(m=>m.value)).flat().filter(l=>l!==void 0)),[T]),G=k.useMemo(()=>!w.innerWidth||!w.innerHeight?null:Wt(U,I,w.innerWidth,w.innerHeight),[U,I,w.innerWidth,w.innerHeight]),h=k.useMemo(()=>!G||!w.dynamicLeftMargin?[]:Vt(T,F,G,w.dynamicLeftMargin,W.top,o),[G,w.dynamicLeftMargin,T,F,o]);return k.useEffect(()=>{if(!f.current||t.length===0||O||!G||w.width===null||w.innerWidth===null||w.dynamicLeftMargin===null)return;const l=P(f.current),{innerWidth:m,innerHeight:S,dynamicLeftMargin:N}=w;l.selectAll("*").remove();const{xScale:x,yScale:C}=G,L=l.append("g").attr("transform",`translate(${N},${W.top})`);Bt(L,C,m),Ut(L,x,C,S,i,o,m),Pt(L,T,F,x,C,!y.current),y.current=!0;const{onMouseMove:H,onMouseLeave:tt,destroy:lt}=Xt({g:L,containerWidth:w.width,innerWidth:m,innerHeight:w.innerHeight,xScale:x,yScale:C,combinedData:U,filteredSeries:T,tooltipRef:p,containerRef:v,legendRef:j,highestValue:Y,formatValue:o}),R=L.append("rect").attr("class","overlay").attr("width",m).attr("height",S).attr("fill","transparent").style("cursor","crosshair").style("pointer-events","all");return R.on("mousemove",H).on("mouseleave",tt).on("touchstart",H).on("touchmove",H).on("touchend",tt),R.raise(),()=>{lt(),R.on("mousemove",null).on("mouseleave",null).on("touchstart",null).on("touchmove",null).on("touchend",null),l.selectAll("*").interrupt(),l.selectAll("*").remove()}},[U,I,t.length,T,G,w.innerWidth,w.innerHeight,w.dynamicLeftMargin,e,i,O,F,o]),k.useEffect(()=>{if(!f.current||t.length===0||O)return;P(f.current).select("g").selectAll("path[data-series-id]").transition().duration(200).ease(Z).attr("opacity",function(){const S=P(this).attr("data-series-id");return J(S,g)})},[g,t,F,O]),!u&&t.length===0?s.jsx("div",{className:D("relative w-full",c),children:s.jsx("div",{className:D("mx-auto flex w-full items-center justify-center text-sm text-gray-400"),style:{height:e},children:"No data available"})}):s.jsx("div",{ref:v,className:D("relative w-full",c),style:{width:n,minHeight:e},children:u?s.jsx(Yt,{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2"}):s.jsxs(s.Fragment,{children:[z.length>0&&s.jsx("div",{className:"mb-3 flex flex-wrap items-center justify-center gap-2",children:z.map(l=>s.jsx(Lt,{group:l,isVisible:B.has(l),onClick:()=>A(l)},l))}),w.width!==null&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"relative z-20",children:s.jsx(Gt,{legendRef:j,legendItems:h,containerWidth:w.width,hoveredSeriesId:g,onSeriesHover:E,onLabelClick:r,unitPrefix:a,unitSuffix:d})}),s.jsxs("div",{className:"relative select-none",children:[s.jsx("svg",{ref:f,width:w.width,height:e,className:"relative z-0",style:{maxWidth:"100%",width:"100%",display:"block",overflow:"visible"}}),s.jsx("div",{className:"z-10",children:s.jsx(Ot,{containerWidth:w.width,tooltipRef:p,series:T,seriesColors:F,unitPrefix:a,unitSuffix:d})})]})]})]})})},Jt=k.memo(_t);export{Jt as M};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as p,j as E}from"./react-qoZPGuNy.js";const w=new Map;function x(n){var i;if(typeof window>"u"||(i=window.UnicornStudio)!=null&&i.addScene)return Promise.resolve();const a=w.get(n);if(a)return a;const r=new Promise((d,s)=>{const u=document.querySelector(`script[src="${n}"]`),t=u??document.createElement("script"),l=()=>{var f;(f=window.UnicornStudio)!=null&&f.addScene?d():s(new Error("UnicornStudio global missing after script load"))};t.addEventListener("load",l),t.addEventListener("error",()=>s(new Error("UnicornStudio SDK failed to load"))),u||(t.src=n,t.async=!0,document.head.appendChild(t))}).catch(d=>{throw w.delete(n),d});return w.set(n,r),r}let U=0;function v({projectId:n,sdkUrl:a,width:r="100%",height:i="100%",scale:d,dpi:s}){var f;const u=p.useRef(null),[t,l]=p.useState(typeof window<"u"&&!!((f=window.UnicornStudio)!=null&&f.addScene));return p.useEffect(()=>{let o=!1;return x(a).then(()=>{o||l(!0)}).catch(()=>{o||l(!1)}),()=>{o=!0}},[a]),p.useEffect(()=>{var m;const o=u.current;if(!t||!o||!((m=window.UnicornStudio)!=null&&m.addScene))return;o.id||(o.id=`zf-unicorn-${U+=1}`);let c=null,S=!1;return window.UnicornStudio.addScene({elementId:o.id,projectId:n,scale:d??1,dpi:s??1.5,fps:60,lazyLoad:!0,production:!0}).then(e=>{var y;if(S){(y=e==null?void 0:e.destroy)==null||y.call(e);return}c=e}).catch(()=>{}),()=>{var e;S=!0,(e=c==null?void 0:c.destroy)==null||e.call(c)}},[t,n,d,s]),E.jsx("div",{ref:u,"aria-hidden":!0,style:{position:"relative",width:typeof r=="number"?`${r}px`:r,height:typeof i=="number"?`${i}px`:i}})}export{v as default};
|