@milaboratories/graph-maker 1.1.50 → 1.1.51

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.
@@ -88793,10 +88793,11 @@ var Gbt = class extends Wy {
88793
88793
  });
88794
88794
  }
88795
88795
  _updateData() {
88796
- let { x: t, y: n, keyColumn: r, label: a, grouping: i, layers: l, inheritedAes: s } = this.settings, c = { x: !0, y: !0 }, f = { minX: 1 / 0, maxX: -1 / 0, minY: 1 / 0, maxY: -1 / 0 }, d = this.data.rows.map((v) => {
88797
- let y = Number(v[t.value]), b = Number(v[n.value]);
88798
- return c.x && y !== null && y < 0 && (c.x = !1), c.y && b !== null && b < 0 && (c.y = !1), y !== null && y < f.minX && (f.minX = y), y !== null && y > f.maxX && (f.maxX = y), b !== null && b < f.minY && (f.minY = b), b !== null && b > f.maxY && (f.maxY = b), { x: y, y: b, id: String(v[r.value]), label: a && v[a.value] ? String(v[a.value]) : null, data: v };
88799
- }), p = Vbt(this.data, i, l, s);
88796
+ let { x: t, y: n, keyColumn: r, label: a, grouping: i, layers: l, inheritedAes: s } = this.settings, c = { x: !0, y: !0 }, f = { minX: 1 / 0, maxX: -1 / 0, minY: 1 / 0, maxY: -1 / 0 }, d = this.data.rows.reduce((v, y) => {
88797
+ if (y[t.value] === null || y[n.value] === null) return v;
88798
+ let b = Number(y[t.value]), C = Number(y[n.value]);
88799
+ return c.x && b !== null && b < 0 && (c.x = !1), c.y && C !== null && C < 0 && (c.y = !1), b !== null && b < f.minX && (f.minX = b), b !== null && b > f.maxX && (f.maxX = b), C !== null && C < f.minY && (f.minY = C), C !== null && C > f.maxY && (f.maxY = C), v.push({ x: b, y: C, id: String(y[r.value]), label: a && y[a.value] ? String(y[a.value]) : null, data: y }), v;
88800
+ }, []), p = Vbt(this.data, i, l, s);
88800
88801
  this.calculatedData = { onlyPositive: c, dots: d, allPossibleLabels: Ubt(d), dotsExtents: f, legendLabels: p }, this.chartRenderer.updateData(d);
88801
88802
  }
88802
88803
  _updateAesInData() {
@@ -15116,7 +15116,7 @@ void main() {
15116
15116
  L 0,0 z`}function Vgt(e,t,n,r,a){switch(n){case"left":return Ngt(e,t,a);case"right":return $gt(e,t,a);case"top":return Lgt(e,t,r);case"bottom":return Fgt(e,t,r);default:oA(n,"Unknown tooltip direction")}}function Ogt(e,t,n,r,a,i,l){return l?i.right-n-a-Kl>e?"right":"left":i.top+r-a-Kl>t?"top":"bottom"}function Qgt(e,t,n,r,a,i){return e==="left"||e==="right"?`translate(${e==="left"?-(r+Kl+t):r+Kl},${-n/2+i})`:`translate(${-t/2+a},${e==="top"?-(n+r+Kl):r+Kl})`}function zgt(e,t){return e==="left"||e==="right"?`translate(${e==="left"?-t:t},0)`:`translate(0,${e==="top"?-t:t})`}function Ugt(e,t,n,r){if(e==="left"||e==="right")return 0;let a=t.right-n,i=t.left+n;return a<r/2?a-r/2:i<r/2?r/2-i:0}function Ggt(e,t,n,r){if(e==="top"||e==="bottom")return 0;let a=t.top+n,i=t.bottom-n;return a<r/2?r/2-a:i<r/2?i-r/2:0}function Fc({content:e,x:t,y:n,active:r,container:a,sideDistances:i,offset:l=Hgt,horizontal:s=!0}){if(!r||!a&&a!==null)return null;let c=Rgt(e),f=Igt(e),p=Ogt(c,f,t,n,l,i,s),h=Ugt(p,i,t,c),m=Ggt(p,i,n,f),w=ie.jsxs("g",{transform:`translate(${i.left+t},${i.top+n})`,opacity:r?1:0,stroke:"none",fill:"none",style:{pointerEvents:"none"},children:[ie.jsx("path",{transform:zgt(p,l),d:Vgt(c,f,p,h,m),fill:Vt}),ie.jsx("g",{fontSize:"14px",fontFamily:"Manrope",fill:"white",transform:Qgt(p,c,f,l,h,m),children:e.map((E,b)=>ie.jsx("text",{x:sX,y:lX+uP*b+uP/2,dominantBaseline:"central",children:E},b))})]});return a===null?w:CB.createPortal(w,a)}function jgt(e){if(e===null)return"null";if(typeof e=="number"){let t=Math.floor(e),n=e-t;return t+Number(n.toPrecision(2))}return e}function Ygt(e,t){return[`X: ${t[e.x]}`,`Node: ${e.y}`,`Value: ${jgt(e.value)}`]}function Wgt({heatmapData:e,scales:t,step:n,colorScale:r,tooltipsContainer:a,chartSizes:i,selectedNode:l,labels:s}){let{xKeys:c,yKeys:f,cells:p,meta:h}=e,[m,w]=ir.useState(null),E={left:i.treeWidth+30+Vu.LEFT,right:i.heatmapWidth+Vu.RIGHT,top:Vu.TOP,bottom:i.heatmapHeight+Vu.BOTTOM};return ie.jsxs("g",{onMouseLeave:()=>w(null),children:[s.length&&ie.jsx("g",{transform:"translate(0,-8)",children:c.map((b,B)=>ie.jsxs("text",{x:t.x(b)+2,fontWeight:"500",children:[ie.jsx("title",{children:h.xLabels[b]}),s[B]]},b))}),c.map(b=>f.map(B=>{var P;let T=(P=p==null?void 0:p[b])==null?void 0:P[B];return ie.jsx("rect",{x:t.x(b),y:t.y(B),width:n.x,height:n.y,stroke:"white",strokeWidth:"1px",fill:T?r(T==null?void 0:T.value):Tmt,onMouseOver:()=>{(T==null?void 0:T.value)!==null&&typeof(T==null?void 0:T.value)<"u"?w(T):w(null)},opacity:l&&l.data.rawData[0].id!==(T==null?void 0:T.data.id)?tP:1},T?T.id:`${b}_${B}`)})),s.length&&ie.jsx("line",{x1:"0",x2:i.heatmapWidth,y1:"0",y2:"0",stroke:Vt,strokeWidth:"1px"}),m&&a&&ie.jsx(Fc,{content:Ygt(m,e.meta.xLabels),x:t.x(m.x)+n.x/2,y:t.y(m.y)+n.y/2,offset:c.length>1?n.x/2:0,active:!0,sideDistances:E,container:a})]})}function Xgt(e,t,n){let{source:r,target:a}=e,i=n==="top";return t==="rectangle"?i?`M ${r.x},${r.y} L ${a.x},${r.y} L${a.x},${a.y}`:`M ${r.y},${r.x} L ${r.y},${a.x} L${a.y},${a.x}`:t==="curve"?oye(i?rye:nye).x(l=>i?l.x:l.y).y(l=>i?l.y:l.x).source(l=>l.target).target(l=>l.source)(e)??"":i?`M ${r.x},${r.y} L${a.x},${a.y}`:`M ${r.y},${r.x} L${a.y},${a.x}`}function uX({links:e,connectionType:t,rootPosition:n,edgeInheritance:r,aesGetters:a,selected:i}){return ie.jsx(ie.Fragment,{children:e.map(l=>{let{source:s,target:c}=l,f=(r==="up"?s:c).data.rawData[0];return ie.jsx("path",{d:Xgt(l,t,n),stroke:i?_mt:a.lineColor(f),strokeWidth:i?2:1,fill:"none"},`${l.source.id},${l.target.id}`)})})}function u9(e){return Ua().domain([0,1]).range([e,Vt])(.25)}var H8=1.4;function Vc(e,t=6,n=Vt,r=null){switch(e){case null:return"";case"0":return ie.jsx("path",{d:`M -${t},-${t} l ${t*2},0 l 0,${t*2} l -${t*2},0 l 0,-${t*2}z`,fill:"none",stroke:n});case"1":return ie.jsx("path",{d:`M -${t},0 a ${t},${t} 0 1,0 ${t*2},0 a ${t},${t} 0 1,0 -${t*2},0z`,fill:"none",stroke:n});case"2":return ie.jsx("path",{d:`M0,-${t}L ${2*t*Math.tan(Math.PI/6)},${t}L ${-2*t*Math.tan(Math.PI/6)},${t}z`,fill:"none",stroke:n});case"3":return ie.jsx("path",{d:`M0,-${t}L 0,${t} M -${t},0 L ${t},0`,fill:"none",stroke:n});case"4":return ie.jsx("path",{d:`M-${t},-${t}L ${t},${t} M ${t},-${t} L -${t},${t}`,fill:"none",stroke:n});case"5":{let a=t*H8;return ie.jsx("path",{d:`M0,-${a}L ${a},0 L 0,${a} L -${a},0z`,fill:"none",stroke:n})}case"6":return ie.jsx("path",{d:`M${-2*t*Math.tan(Math.PI/6)},-${t}L ${2*t*Math.tan(Math.PI/6)},-${t}L0,${t}z`,fill:"none",stroke:n});case"7":return ie.jsx("path",{d:`M -${t},-${t} l ${t*2},0 l 0,${t*2} l -${t*2},0 l 0,-${t*2}z M-${t},-${t}L ${t},${t} M ${t},-${t} L -${t},${t}`,fill:"none",stroke:n});case"8":{let a=t*2*Math.cos(Math.PI/4);return ie.jsx("path",{d:`M0,-${a}L 0,${a} M -${a},0 L ${a},0 M-${t},-${t}L ${t},${t} M ${t},-${t} L -${t},${t}`,fill:"none",stroke:n})}case"9":{let a=t*H8;return ie.jsx("path",{d:`M0,-${a}L ${a},0 L 0,${a} L -${a},0z M0,-${a}L 0,${a} M -${a},0 L ${a},0`,fill:"none",stroke:n})}case"10":return ie.jsx("path",{d:`M -${t},0 a ${t},${t} 0 1,0 ${t*2},0 a ${t},${t} 0 1,0 -${t*2},0z M0,-${t}L 0,${t} M -${t},0 L ${t},0`,fill:"none",stroke:n});case"11":{let a=2*t*Math.tan(Math.PI/6);return ie.jsx("path",{d:`M-${a},-${t}L${a},-${t}L0,${-t+2*a}z
15117
15117
  M-${a},${t}L0,${t-2*a}L${a},${t}z`,fill:"none",stroke:n})}case"12":return ie.jsx("path",{d:`M -${t},-${t} l ${t*2},0 l 0,${t*2} l -${t*2},0 l 0,-${t*2}z M0,-${t}L 0,${t} M -${t},0 L ${t},0`,fill:"none",stroke:n});case"13":return ie.jsx("path",{d:`M -${t},0 a ${t},${t} 0 1,0 ${t*2},0 a ${t},${t} 0 1,0 -${t*2},0z M-${t},-${t}L ${t},${t} M ${t},-${t} L -${t},${t}`,fill:"none",stroke:n});case"14":return ie.jsx("path",{d:`M -${t},-${t} l ${t*2},0 l 0,${t*2} l -${t*2},0 l 0,-${t*2}z M-${t},${t}L0,${-t}L${t},${t}`,fill:"none",stroke:n});case"15":return ie.jsx("path",{d:`M -${t},-${t} l ${t*2},0 l 0,${t*2} l -${t*2},0 l 0,-${t*2}z`,fill:n,stroke:n});case"16":return ie.jsx("path",{d:`M -${t},0 a ${t},${t} 0 1,0 ${t*2},0 a ${t},${t} 0 1,0 -${t*2},0z`,fill:n,stroke:n});case"17":return ie.jsx("path",{d:`M0,-${t}L ${2*t*Math.tan(Math.PI/6)},${t}L ${-2*t*Math.tan(Math.PI/6)},${t}z`,fill:n,stroke:n});case"18":{let a=t*H8;return ie.jsx("path",{d:`M0,-${a}L ${a},0 L 0,${a} L -${a},0z`,fill:n,stroke:n})}case"20":{let a=t*2/3;return ie.jsx("path",{d:`M -${a},0 a ${a},${a} 0 1,0 ${a*2},0 a ${a},${a} 0 1,0 -${a*2},0z`,fill:n,stroke:n})}case"22":return ie.jsx("path",{d:`M -${t},-${t} l ${t*2},0 l 0,${t*2} l -${t*2},0 l 0,-${t*2}z`,fill:n,stroke:r??u9(n)});case"21":return ie.jsx("path",{d:`M -${t},0 a ${t},${t} 0 1,0 ${t*2},0 a ${t},${t} 0 1,0 -${t*2},0z`,fill:n,stroke:r??u9(n)});case"24":return ie.jsx("path",{d:`M0,-${t}L ${2*t*Math.tan(Math.PI/6)},${t}L ${-2*t*Math.tan(Math.PI/6)},${t}z`,fill:n,stroke:r??u9(n)});case"23":{let a=t*H8;return ie.jsx("path",{d:`M0,-${a}L ${a},0 L 0,${a} L -${a},0z`,fill:n,stroke:r??u9(n)})}case"25":return ie.jsx("path",{d:`M${-2*t*Math.tan(Math.PI/6)},-${t}L ${2*t*Math.tan(Math.PI/6)},-${t}L0,${t}z`,fill:n,stroke:r??u9(n)});default:oA(e,`Unknown point shape ${e}`)}}var Kgt=12;function cX({nodes:e,rootPosition:t,showLeavesLabels:n,showNodesLabels:r,aesGetters:a,selectedNodeId:i,onClick:l,onSelectedUpdate:s}){let c=t==="top",[f,p]=ir.useState(null);return ir.useEffect(()=>{p(null)},[i]),ie.jsxs(ie.Fragment,{children:[ie.jsx("g",{children:e.map(h=>{let m=h.data.rawData[0],w=a.nodeSize(m),E=a.nodeColor(m),b=c?h.x:h.y,B=c?h.y:h.x;return ie.jsx("g",{transform:`translate(${b},${B})`,style:{cursor:"pointer"},onClick:T=>{T.stopPropagation(),l({x:b+Vu.LEFT,y:B+Vu.TOP,info:h.data.rawData}),s(h)},children:ie.jsx("g",{children:ie.jsx("circle",{cx:0,cy:0,r:w+Kgt,fill:i===h.id?ZW:f===h.id?E:"transparent",opacity:tP,onMouseOver:()=>p(h.id??null),onMouseLeave:()=>p(null)})})},h.id)})}),ie.jsx("g",{children:e.map(h=>{let m=h.data.rawData[0],w=a.nodeShape(m),E=a.nodeSize(m),b=a.nodeColor(m),B=c?h.x:h.y,T=c?h.y:h.x;return ie.jsx("g",{transform:`translate(${B},${T})`,style:{cursor:"pointer"},onClick:P=>{P.stopPropagation(),l({x:B+Vu.LEFT,y:T+Vu.TOP,info:h.data.rawData}),s(h)},children:ie.jsx("g",{onMouseOver:()=>p(h.id??null),onMouseLeave:()=>p(null),children:Vc(w,E,i===h.id?ZW:b)})},h.id)})}),ie.jsx("g",{children:e.map(h=>{let m=h.data.rawData[0],w=a.nodeSize(m),E=c?h.x:h.y,b=c?h.y:h.x;return ie.jsx("g",{transform:`translate(${E},${b})`,style:{pointerEvents:"none"},children:(r&&h.children||n&&!h.children)&&ie.jsx("text",{x:w+4,y:"4",paintOrder:"stroke",stroke:"white",strokeWidth:"3",children:h.data.label})},h.id)})})]})}var fX=14,I8=12,c9=12,R8=-12;function Zgt({aes:e,label:t}){let n=Vc(e.shape,e.size,e.color);return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${c9/2},${c9/2})`,children:n}),ie.jsx("text",{x:c9+8,y:c9/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function Jgt({legendData:e}){let t=e.items.filter(n=>n.type==="continuous");return ie.jsxs("g",{children:[ie.jsx("defs",{children:t.map(n=>ie.jsx("linearGradient",{id:n.id,gradientTransform:"rotate(90)",children:n.scale.domain().map(r=>{let a=n.scale.domain(),i=a[a.length-1]-a[0],l=i>0?(r-a[0])/i*100:0;return ie.jsx("stop",{offset:`${l}%`,stopColor:n.scale(r)},r)})},n.id))}),e.items.map(n=>{if(n.type==="continuous"){let r=Math.min(...n.values),a=Math.max(...n.values);return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:R8,children:n.title}),ie.jsx("rect",{x:"0",y:"0",width:fX,height:n.height,stroke:Vt,fill:`url(#${n.id})`}),ie.jsx("g",{transform:`translate(${fX},0)`,children:n.values.map(i=>{let l=a-r,s=l>0?n.height*(i-r)/l:0;return ie.jsxs("g",{transform:`translate(0,${s})`,children:[ie.jsx("line",{x1:"0",x2:-4,stroke:Vt}),ie.jsx("text",{x:8,y:4,children:i})]},i)})}),!1]},n.id)}if(n.type==="discrete")return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:R8,children:n.title}),n.values.map((r,a)=>ie.jsxs("g",{transform:`translate(0, ${a*(I8+4)})`,children:[ie.jsx("rect",{x:"0",y:"0",width:I8,height:I8,fill:n.scale(r),rx:"1",ry:"1"}),ie.jsx("text",{x:I8+8,y:10,children:r})]},r)),!1]},n.id);if(n.type==="nodes")return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:"14px",fontWeight:500,children:[ie.jsx("text",{fontWeight:500,y:R8,children:n.title}),n.values.map((r,a)=>ie.jsx("g",{transform:`translate(0, ${a*(c9+4)})`,children:ie.jsx(Zgt,{aes:n.scale(r),label:n.labels[r]})},r)),!1]},n.id);if(n.type==="size"){let r=n.height/n.values.length;return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:"14px",fontWeight:500,children:[ie.jsx("text",{fontWeight:500,y:R8,children:n.title}),n.values.map((a,i)=>{let l=n.scale(a);return ie.jsxs("g",{transform:`translate(0, ${i*r})`,children:[ie.jsx("circle",{r:l,cx:r/2,cy:r/2,fill:Vt}),ie.jsx("text",{x:r+4,y:r/2,alignmentBaseline:"central",children:n.labels[a]})]},a)}),!1]},n.id)}})]})}function dX(e){if(!e)return null;let t=new Set,n=e;for(;n;)t.add(n.id),n=n.parent;return t}function qgt({chartSettings:e,chartSizes:t,nodes:n,links:r,connectionType:a,rootPosition:i,edgeInheritance:l,showNodes:s,showEdges:c,showLeavesLabels:f,showNodesLabels:p,aesGetters:h,labels:m,heatmapData:w,heatmapScales:E,heatmapStep:b,heatmapColor:B,heatmapLabels:T,legendData:P,onClick:M}){let z=ir.useRef(null),[$,O]=ir.useState(null),Q=ir.useRef(null);ir.useEffect(()=>{Q.current&&O(Q.current);function oe(){j(null),V(null)}function se(Te){Object.entries(Te.detail).forEach(([le,be])=>{if(le==="selectedNode"){let ge=n.find(Ae=>Ae.data.rawData[0].id===be)??null;j(dX(ge)),V(ge)}})}return document.addEventListener("click",oe),document.addEventListener(nP,se),()=>{document.removeEventListener("click",oe),document.removeEventListener(nP,se)}},[]);let[K,j]=vB.useState(null),[W,V]=vB.useState(null),U=K!==null,Z={connectionType:a,rootPosition:i,edgeInheritance:l,aesGetters:h},q={rootPosition:i,showLeavesLabels:f,showNodesLabels:p,aesGetters:h,labels:m,onClick:M,selectedNodeId:W==null?void 0:W.id,onSelectedUpdate:oe=>{j(dX(oe)),V(oe)}};return ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${t.totalWidth} ${t.totalHeight}`,ref:z,width:t.totalWidth,height:t.totalHeight,children:[ie.jsx("defs",{children:Dg}),ie.jsxs("g",{transform:`translate(${Vu.LEFT},${Vu.TOP})`,fontFamily:"Manrope",children:[ie.jsx("text",{x:"0",y:"-12",fontSize:"20",children:e.title.name}),ie.jsxs("g",{opacity:U?tP:1,children:[c&&ie.jsx(uX,{links:r.filter(oe=>{let{source:se,target:Te}=oe;return!K||!(K.has(se.id??"")&&K.has(Te.id??""))}),selected:!1,...Z}),s&&ie.jsx(cX,{nodes:n.filter(oe=>!oe.data.isFake&&!(K!=null&&K.has(oe.id??""))),...q})]}),U&&ie.jsxs("g",{children:[c&&ie.jsx(uX,{links:r.filter(oe=>{let{source:se,target:Te}=oe;return K.has(se.id??"")&&K.has(Te.id??"")}),selected:!0,...Z}),s&&ie.jsx(cX,{nodes:n.filter(oe=>!oe.data.isFake&&(K==null?void 0:K.has(oe.id??""))),...q})]}),w!==null&&ie.jsx("g",{transform:`translate(${t.treeWidth+30},0)`,children:ie.jsx(Wgt,{heatmapData:w,scales:E,step:b,colorScale:B,chartSizes:t,labels:T,selectedNode:W,tooltipsContainer:$})}),e.legend.show&&ie.jsx("g",{transform:`translate(${t.treeWidth+30+t.heatmapWidth+30},0)`,children:ie.jsx(Jgt,{legendData:P})})]}),ie.jsx("g",{ref:Q})]})}function Nv({message:e}){return ie.jsx("div",{style:{width:"500px",height:"400px",color:"#ee1616",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"25px",fontFamily:"Arial",border:"1px solid"},children:e})}function f9(e){if(qW(e))return t=>e.valuesMap[String(t[e.columnName.value])];if(T8(e)){let{domain:t,range:n}=e,r=Ly().domain(t).range(n);return a=>{let i=r(Number(a[e.columnName.value]));return Math.max(1,i)}}return t=>e}function eyt(e){return{nodeShape:f9(e.nodeShape),nodeColor:f9(e.nodeColor),nodeSize:f9(e.nodeSize),lineShape:f9(e.lineShape),lineColor:f9(e.lineColor)}}var tyt=(e,t)=>{let n=Math.min(...t),r=Math.max(...t);if(n===r){let l=e%2===0?[]:[n];for(let s=1;s<e/2+1;s++)l.push(n+s),l.unshift(n-s);return l}if(e<2)return[n,r];let a=(r-n)/(e-1),i=[];for(let l=0;l<e-1;l++)i.push(n+a*l);return i.push(r),i};function nyt(e,t=1,n,r){let a=(e<16?40:e<49?32:24)*t;return Math.max(Math.min(a,r??1/0),n??-1/0)}var ryt=class{constructor(){ke(this,"component",ie.jsx(ie.Fragment,{}));ke(this,"reactRoot",null);ke(this,"parentNode",null);ke(this,"rootNode",null);ke(this,"chartSizes",{treeWidth:600,treeHeight:350,heatmapWidth:0,heatmapHeight:0,totalWidth:1200+Vu.LEFT+Vu.RIGHT,totalHeight:350+Vu.TOP+Vu.BOTTOM,labelsOffset:0});ke(this,"legend",{width:0,height:0,items:[]});ke(this,"heatmapScales",{x:nl().domain(["null"]).range([1]),y:nl().domain(["null"]).range([1])});ke(this,"heatmapStep",{x:0,y:0});ke(this,"heatmapColorScale",{scale:nl([]),getter:()=>"white"});ke(this,"heatmapLabels",[])}clear(){var e;this.parentNode&&this.rootNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),this.parentNode=null,this.rootNode=null),setTimeout(()=>{var t;(t=this.reactRoot)==null||t.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.reactRoot=Fh(this.rootNode))}updateHeatmapScales(e,t,n){if(e===null){this.chartSizes.heatmapWidth=0;return}let{xKeysByGroups:r,xGroupKeys:a,xKeys:i,yKeys:l}=e,s=5,c=a.map(B=>r[B].length),f=c.reduce((B,T)=>B+T,0),p=this.chartSizes.treeHeight/l.length,h=Math.min(Math.max((400-(c.filter(B=>B>0).length-1)*s)/f,n.minCellWidth),n.maxCellWidth),m=[],w=0;a.forEach(B=>{let T=r[B];T.forEach(()=>{m.push(w),w+=h}),T.length>0&&(w+=s)}),this.heatmapScales.x=nl().domain(i).range(m),this.heatmapScales.y=nl().domain(l).range(l.map((B,T)=>T*p)),this.heatmapStep.x=h,this.heatmapStep.y=p;let{colorsList:E,colorsMap:b}=t.aes;if(t.valueType==="continuous"&&E){let B=Ua().domain(tyt(E.length,e.meta.valueExtent)).range(E);this.heatmapColorScale={scale:B,getter:T=>B(T)}}if(t.valueType==="discrete"&&b){let B=Object.keys(b).filter(T=>e.meta.uniqueValues.has(T));this.heatmapColorScale={scale:nl(B,B.map(T=>b[T])).unknown(a9),getter:T=>T?b[T]??a9:a9}}if(t.valueType==="stringSource"&&E){let B=[...e.meta.uniqueValues],T=nl(B,B.map((P,M)=>E[M%E.length])).unknown(a9);this.heatmapColorScale={scale:T,getter:P=>P?T(P):a9}}this.chartSizes.heatmapWidth=this.heatmapScales.x(e.xKeys[e.xKeys.length-1])+this.heatmapStep.x}updateLegendSize(e,t,n,r,a,i){if(!e.show){this.legend={width:0,height:0,items:[]};return}let l=new Vs("600 14px Arial"),s=16,c=48,f=20,p=24;function h(z,$){return Math.max(...z.map(O=>l.getTextWidth(String(O))+f),l.getTextWidth($))}let m=[];[n.nodeColor,n.nodeShape,n.lineColor].filter(qW).map(z=>z.columnName).forEach(z=>{let $=t[z.value];if($.usedAes.length===0||!$.aesMap)return;let O=z.label??z.value,Q=$.values,K={};Q.forEach(j=>{K[j]||(K[j]={...aP}),$.usedAes.forEach(W=>{var V,U,Z;(W==="dotFill"||W==="lineColor")&&(K[j].color=((V=$.aesMap[j])==null?void 0:V[W])??Vt),W==="dotShape"&&(K[j].shape=((U=$.aesMap[j])==null?void 0:U[W])??"21"),W==="dotSize"&&(K[j].size=((Z=$.aesMap[j])==null?void 0:Z[W])??3)})}),m.push({columnKey:O,data:K,values:$.values,labels:$.labels})});let w=[],E=0,b=0,B=0,T=Math.min(this.chartSizes.treeHeight,400);if(r&&a){let z=i.valueType,$=r.label??r.value;if(z==="continuous"){let O=this.heatmapColorScale.scale,Q=P8(O,a.meta.valueExtent,4),K={id:"heatmapValue",type:"continuous",width:M8(Q,$),height:T,left:0,top:0,title:$,scale:O,values:Q,labels:{}};w.push(K),b=K.height+c,E=K.width}else{let O=this.heatmapColorScale.scale,Q=sP(O,$),K=O.domain(),j=K.length*s,W={id:"heatmapValue",type:"discrete",width:Q,height:j,left:0,top:0,title:$,scale:O,values:K,labels:{}};w.push(W),b=W.height+c,E=W.width}}if(m.map(({columnKey:z,labels:$,values:O,data:Q})=>{b>T&&(b=0,B+=E+p);let K=z,j=h(O.map(q=>$[q]),K),W=O.length*s;W>T&&(T=W);let V=nl().domain(O).range(O.map(q=>Q[q])),U=B,Z=b;w.push({id:z,type:"nodes",width:j,height:W,left:U,top:Z,title:K,scale:V,values:O,labels:$}),E=j,b+=W+c}),T8(n.nodeSize)){b>T&&(b=0,B+=E+p);let{columnName:z,domain:$,range:O}=n.nodeSize,Q=z.label??z.value,K=Ly($,O),j=K.ticks(3),W=K.tickFormat(3),V=j.reduce((se,Te)=>(se[String(Te)]=W(Te),se),{}),U=h(j.map(se=>V[se]),Q),Z=(K(Math.max(...j))*2+4)*j.length;Z>T&&(T=Z);let q=B,oe=b;w.push({id:z.value,type:"size",width:U,height:Z,left:q,top:oe,title:Q,scale:K,values:j,labels:V}),E=U,b+=Z+c}let P=B+E+2*lP,M=T;this.legend={width:P,height:M,items:w}}updateChartSizes(e,t,n){let r=n.leaves().length;this.chartSizes.treeWidth=t?e.width/2:e.width;let a=nyt(r,e.scale,e.minCellHeight,e.maxCellHeight)*r;this.chartSizes.treeHeight=a,this.chartSizes.heatmapHeight=a}updateTotalSizes(e){this.chartSizes.totalWidth=this.chartSizes.treeWidth+this.chartSizes.heatmapWidth+this.legend.width+Vu.LEFT+Vu.RIGHT,e&&(this.chartSizes.totalWidth+=30),this.legend.width>0&&(this.chartSizes.totalWidth+=30),this.chartSizes.totalHeight=Math.max(this.chartSizes.treeHeight,this.legend.height)+Vu.TOP+Vu.BOTTOM}prepareTableLabels(e){let t=new Vs("bold 14px Arial"),n="…";if(this.heatmapStep.x<12||!e){this.heatmapLabels=[];return}let r=this.heatmapStep.x-4;this.heatmapLabels=e.xKeys.map(a=>{let i=e.meta.xLabels[a],l=t.getTextWidth(i);if(l<r)return i;let s=i,c=s==null?void 0:s.length;for(;l>r&&c>0;)c--,s=(i==null?void 0:i.substring(0,c))+n,l=t.getTextWidth(s);return c>0?s:""})}addLabelsWidthToTreeArea(e,t){if(!t)return;let n=e.leaves(),r=new Vs("bold 14px Manrope"),a=0;n.forEach(i=>{if(!i.data.label)return;let l=r.getTextWidth(i.data.label),s=i.y+l-this.chartSizes.treeWidth+8;s>a&&(a=s)}),this.chartSizes.treeWidth+=a}render(e,t,n,r,a,i,l,s,c,f,p,h,m,w,E,b,B){var $;this.updateChartSizes(e.size,m,t),this.updateHeatmapScales(m,w,e.size),this.updateLegendSize(e.legend,E,f,h,m,w),this.prepareTableLabels(m);let T=r==="top"?[this.chartSizes.treeWidth,this.chartSizes.treeHeight]:[this.chartSizes.treeHeight,this.chartSizes.treeWidth];fB().size(T).separation(()=>1)(t);let P=t;Imt(P,r==="top"?this.chartSizes.treeHeight:this.chartSizes.treeWidth,b==="alignLeavesToLine"),Rmt(P),this.addLabelsWidthToTreeArea(P,s),this.updateTotalSizes(m);let M=eyt(f),z=ie.jsx(qgt,{chartSizes:this.chartSizes,chartSettings:e,nodes:P.descendants(),links:P.links(),connectionType:n,rootPosition:r,edgeInheritance:a,showNodes:i,showEdges:l,showLeavesLabels:s,showNodesLabels:c,aesGetters:M,labels:p,heatmapData:m,heatmapScales:this.heatmapScales,heatmapStep:this.heatmapStep,heatmapColor:this.heatmapColorScale.getter,heatmapLabels:this.heatmapLabels,legendData:this.legend,onClick:B});this.component=z,($=this.reactRoot)==null||$.render(z)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},ayt=ryt,AX=class{constructor(e){ke(this,"type","dendro");ke(this,"chartSettings");ke(this,"mode");ke(this,"leavesMode");ke(this,"id");ke(this,"parentId");ke(this,"height",null);ke(this,"labels");ke(this,"heatmapAnnotation");ke(this,"heatmapAxis");ke(this,"heatmapGroup");ke(this,"heatmapSettings");ke(this,"connectionType","rectangle");ke(this,"edgeInheritance","up");ke(this,"rootPosition","top");ke(this,"showNodes",!0);ke(this,"showEdges",!0);ke(this,"showLeavesLabels",!0);ke(this,"showNodesLabels",!0);ke(this,"aes",{nodeShape:"21",nodeColor:Vt,nodeSize:3,lineShape:"solid",lineColor:Vt});var t,n,r,a,i,l,s,c,f,p;Sgt.parse(e),this.chartSettings={size:{width:((t=e==null?void 0:e.size)==null?void 0:t.width)??(e.facetSettings?400:560),height:((n=e==null?void 0:e.size)==null?void 0:n.height)??(e.facetSettings?250:350),scale:((r=e==null?void 0:e.size)==null?void 0:r.scale)??1,minCellWidth:((a=e==null?void 0:e.size)==null?void 0:a.minCellWidth)??Bmt,maxCellWidth:((i=e==null?void 0:e.size)==null?void 0:i.maxCellWidth)??kmt,minCellHeight:(l=e==null?void 0:e.size)==null?void 0:l.minCellHeight,maxCellHeight:(s=e==null?void 0:e.size)==null?void 0:s.maxCellHeight},title:{position:"center",show:!0,...e.title,name:((c=e.title)==null?void 0:c.name)??"Dendrogram"},legend:{show:!0,position:"right",...e.legend}},this.mode=e.mode??"normal",this.leavesMode=e.leavesMode??"normal",this.id=e.id,this.parentId=e.parentId,this.height=e.height??null,this.labels=e.labels??this.id,this.heatmapAnnotation=e.heatmapAnnotation??null,this.heatmapAxis=e.heatmapAxis??null,this.heatmapGroup=e.heatmapGroup??[],this.heatmapSettings={valueType:((f=e.heatmapSettings)==null?void 0:f.valueType)??"continuous",aes:{colorsList:["#FFF680","#53D788","#36739D","#4A005C"],...(p=e.heatmapSettings)==null?void 0:p.aes}},this.connectionType=e.connectionType??this.connectionType,this.edgeInheritance=e.edgeInheritance??this.edgeInheritance,this.showNodes=e.showNodes??this.showNodes,this.showEdges=e.showEdges??this.showEdges,this.showLeavesLabels=e.showLeavesLabels??this.showLeavesLabels,this.showNodesLabels=e.showNodesLabels??this.showNodesLabels,this.rootPosition=e.rootPosition??this.rootPosition,this.aes={...this.aes,...e.aes}}};function N8(e){return typeof e!="object"?!1:"valuesMap"in e}function pX(e,t){let{nodeColor:n,nodeShape:r,lineColor:a}=t,i=[n,r,a].filter(N8);return ar.uniqBy(i,l=>l.columnName.value).reduce((l,s)=>{let{columnName:c}=s,f=ar.uniqBy(e.rows,E=>E[c.value]),p=E=>String(E[c.value]),h=E=>c.valueLabels?String(E[c.valueLabels]):p(E),m=new Set,w=f.reduce((E,b)=>{let B=p(b);return E[B]||(E[B]={}),E},{});return N8(n)&&c.value===n.columnName.value&&(m.add("dotFill"),f.forEach(E=>{let b=p(E);w[b].dotFill=n.valuesMap[b]})),N8(r)&&c.value===r.columnName.value&&(m.add("dotShape"),f.forEach(E=>{let b=p(E);w[b].dotShape=r.valuesMap[b]})),N8(a)&&c.value===a.columnName.value&&(m.add("lineColor"),f.forEach(E=>{let b=p(E);w[b].lineColor=a.valuesMap[b]})),l[c.value]={values:f.map(p).sort(),usedAes:[...m],aesMap:w,labels:f.reduce((E,b)=>(E[p(b)]=h(b),E),{})},l},{})}var iyt=class extends Tg{constructor(t,n,r){super(t,n);ke(this,"settings");ke(this,"onClick",()=>MI);ke(this,"chartRenderer",new ayt);ke(this,"calculatedData",null);this.settings=new AX(n),r&&(this.onClick=r[0])}mount(t){try{this.chartRenderer.init(t),this._updateData(),this._updateChart()}catch(n){n instanceof Error&&this.chartRenderer.renderError(n.message)}}unmount(){this.chartRenderer.clear()}updateSettingsAndData(t,n){try{let r=this.settings,a=this.data;this.settings=new AX(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){if(document){let r=new CustomEvent(nP,{detail:{[t]:n}});document.dispatchEvent(r)}}export(){return this._updateChart(),l3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var p,h;let{mode:r,id:a,parentId:i,heatmapAnnotation:l,heatmapAxis:s,heatmapGroup:c}=n;function f(m,w){return m.length!==w.length||m.some((E,b)=>E.value!==w[b].value)}return t.mode!==r||t.id.value!==a.value||t.parentId.value!==i.value||((p=t.heatmapAnnotation)==null?void 0:p.value)!==(l==null?void 0:l.value)||((h=t.heatmapAxis)==null?void 0:h.value)!==(s==null?void 0:s.value)||f(t.heatmapGroup,c)}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var l;return t.data[i].length!==((l=n.data[i])==null?void 0:l.length)})}_updateData(){let{mode:t,id:n,parentId:r,aes:a,heatmapAnnotation:i,heatmapAxis:l,heatmapGroup:s,heatmapSettings:c,height:f,labels:p}=this.settings,h=Hmt(n.value,r.value,(f==null?void 0:f.value)??null,p.valueLabels??p.value??null,this.data.rows,t==="useAllNodesAsLeaves"),m=Pmt(this.data,c.valueType,i,l,s,n,h),w=pX(this.data,a);this.calculatedData={chartSizes:this.chartRenderer.chartSizes,hierarchy:h,heatmapData:m,legendLabels:w}}_updateAesInData(){this.calculatedData&&(this.calculatedData.legendLabels=pX(this.data,this.settings.aes))}_updateChart(){if(!this.calculatedData)return;let{heatmapAnnotation:t,chartSettings:n,connectionType:r,edgeInheritance:a,rootPosition:i,showNodes:l,showEdges:s,showLeavesLabels:c,showNodesLabels:f,aes:p,labels:h,heatmapSettings:m,leavesMode:w}=this.settings;this.chartRenderer.render(n,this.calculatedData.hierarchy,r,i,a,l,s,c,f,p,h,t,this.calculatedData.heatmapData,m,this.calculatedData.legendLabels,w,this.onClick)}},d9={TOP:30,BOTTOM:30},a1=30,oyt=6,A9=20,cP=15,$8=24,J3=25,lyt=12,hX={fillColor:"white",lineColor:Vt,lineWidth:1,lineShape:"solid",dotSize:3,dotFill:Vt,dotShape:"21"},fP=20,vX=4,Mf=4,mX=25,syt=15,Mg=8,$v=30,uyt=48,cyt=24,q3=16,e2=4,L8=4,F8=20,fyt=16,Sd=16,t2=8,i1={left:["annotations","axis","groups","axisTitle","dendro"],right:["annotations","axis","groups","axisTitle","dendro"],top:["annotations","axis","groups","axisTitle","dendro","facetTitle"],bottom:["annotations","axis","groups","axisTitle","dendro"]},gX={fillColor:"white",lineColor:Vt,lineWidth:1,lineShape:"solid",dotSize:3,dotFill:Vt,dotShape:"21"};function dyt(e){return`translate(${e},0)`}function Ayt(e){return`translate(0,${e})`}var p9=21;function pyt(e,t){if(e==="45deg"){let n=t==="left"?-p9/2:0,r=t==="bottom"?p9/2:-p9/2;return`translate(${n},${r}) rotate(-45)`}return e==="90deg"&&t==="bottom"?`translate(${-p9/2},${Mf+p9/2}) rotate(-90)`:t==="bottom"?`translate(0,${Mf})`:`translate(${-Mf},0)`}function hyt(e,t){return t==="left"||t==="bottom"&&e==="90deg"?"central":e==="center"?"hanging":"auto"}function vyt(e,t){return t==="left"||t==="bottom"&&e!=="center"?"end":"middle"}var yX=({scale:e,tickSize:t=6,tickPadding:n=Mf,orient:r="bottom",labelsPosition:a="center",labels:i={},offset:l=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function s(B,T){return B.bandwidth&&(T=Math.max(0,B.bandwidth()-T*2)/2),B!=null&&B.round()&&(T=Math.round(T)),P=>{let M=B(P);return M===void 0?0:M+T}}let c=e.domain(),f=B=>i[B]??[B],p=Math.max(t,0)+n,h=s(e.copy(),l),m=r==="bottom"?dyt:Ayt,w=r==="left"?-1:1,E={[(r==="left"?"x":"y")+"2"]:w*t},b={[r==="left"?"x":"y"]:w*p};return ie.jsx("g",{children:c.map((B,T)=>ie.jsxs("g",{className:"tick",transform:m(h(B)+l),children:[ie.jsx("line",{stroke:Vt,...E}),ie.jsx("g",{transform:pyt(a,r),children:f(B).map((P,M)=>ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:hyt(a,r),textAnchor:vyt(a,r),dy:20*M,...b,children:P},`${P}_${M}`))})]},T))})};function wX(e,t,n,r){if(n&&typeof n=="object"&&"type"in n){if(n.type==="primaryGrouping")return e.xPrimaryAes(r.primaryGrouping)[t];if(n.type==="secondaryGrouping")return e.xSecondaryAes(r.secondaryGrouping)[t]}return n}function myt({scales:e,orientation:t,bar:n,aes:r}){let a=t==="vertical",i=(e.xPrimary(n.primaryGrouping)??0)+(e.xSecondary(n.secondaryGrouping)??0)+e.xSecondary.bandwidth()/2,l=e.xSecondary.bandwidth(),s=r.width==="auto"?l*.8:Math.min(l,r.width),c=Math.abs(e.y(n.value)-e.y(0)),f=wX(e,"lineColor",r.lineColor,n),p=wX(e,"fillColor",r.fillColor,n);return ie.jsx("g",{transform:a?`translate(${i},0)`:`translate(0, ${i})`,opacity:r.opacity,stroke:f,strokeWidth:r.lineWidth,children:ie.jsx("rect",{width:a?s:c,height:a?c:s,x:a?-s/2:e.y(0),y:a?e.y(n.value):-s/2,fill:p})})}function Qi(e){return isNaN(e)?"?":e===0?"0":Math.abs(e)<.01?V7(".1e")(e):V7(".2f")(e)}function CX(e,t,n,r){if(n&&typeof n=="object"&&"type"in n){if(n.type==="primaryGrouping")return e.xPrimaryAes(r.primaryGrouping)[t];if(n.type==="secondaryGrouping")return e.xSecondaryAes(r.secondaryGrouping)[t]}return n}function gyt({scales:e,orientation:t,geom:n,aes:r,min:a,max:i,binsCount:l,hasKeyFromColumn:s,sideDistances:c,showTooltips:f,tooltipsContainer:p}){let[h,m]=ir.useState(null),w=t==="vertical",E=(e.xPrimary(n.primaryGrouping)??0)+(e.xSecondary(n.secondaryGrouping)??0)+e.xSecondary.bandwidth()/2,b=CX(e,"lineColor",r.lineColor,n),B=CX(e,"fillColor",r.fillColor,n),T=n.bins,P=r.dotSize?r.dotSize:Math.abs(e.y(i)-e.y(a))/l/2;return ie.jsx("g",{transform:w?`translate(${E},0)`:`translate(0, ${E})`,stroke:b,fill:B,strokeWidth:r.lineWidth,children:T.map(({x:M,count:z,dots:$})=>ie.jsx("g",{transform:w?`translate(0,${e.y(M)})`:`translate(${e.y(M)},0)`,children:$.map((O,Q)=>{let K=(Q-z/2)*2*P+P,j=w?K:0,W=w?0:K;return ie.jsxs("g",{children:[ie.jsx("circle",{opacity:r.opacity,cx:j,cy:W,r:P,onMouseOver:()=>m(O.key),onMouseLeave:()=>m(null)}),f&&ie.jsx(Fc,{content:s?[O.key,Qi(O.value)]:[Qi(O.value)],x:(w?E:e.y(M))+j,y:(w?e.y(M):E)+W,sideDistances:c,horizontal:w,offset:P,active:h===O.key,container:p})]},O.key)})},M))})}function jA(e=null){switch(e){case null:return"";case"solid":return"";case"dashed":return"6 6";case"dotted":return"1.5 4";case"dotdash":return"1.4 4 8 4";case"longdash":return"10 4";case"twodash":return"3 3 9 3";default:oA(e,`Unknown line shape ${e}`)}}function V8(e,t,n,r){if(n&&typeof n=="object"&&"type"in n){if(n.type==="primaryGrouping")return e.xPrimaryAes(r.primaryGrouping)[t];if(n.type==="secondaryGrouping")return e.xSecondaryAes(r.secondaryGrouping)[t]}return n}function yyt(e,t){return t?[e.id,`${Qi(e.y)}`]:[`${Qi(e.y)}`]}function wyt({scales:e,orientation:t,box:n,aes:r,hasKeyFromColumn:a,sideDistances:i,showTooltips:l,elementsAmount:s,tooltipsContainer:c}){let[f,p]=ir.useState(!1),[h,m]=ir.useState(null),w=t==="vertical",E=(e.xPrimary(n.primaryGrouping)??0)+(e.xSecondary(n.secondaryGrouping)??0)+e.xSecondary.bandwidth()/2,b=e.xSecondary.bandwidth(),B=r.boxWidth==="auto"?b*.8:Math.min(b,r.boxWidth),T=Math.abs(e.y(n.lower)-e.y(n.upper)),P=V8(e,"lineColor",r.lineColor,n),M=V8(e,"fillColor",r.fillColor,n),z=V8(e,"dotShape",r.dotShape,n),$=V8(e,"dotSize",r.dotSize,n),O=Vc(z,$,P),Q=Math.abs(e.y.range()[0]-e.y.range()[1]);return ie.jsxs("g",{transform:w?`translate(${E},0)`:`translate(0, ${E})`,opacity:r.opacity,stroke:P,strokeWidth:r.lineWidth,strokeDasharray:jA(r.lineShape),children:[ie.jsx("line",{x1:w?0:e.y(n.min),x2:w?0:e.y(n.lower),y1:w?e.y(n.min):0,y2:w?e.y(n.lower):0}),ie.jsx("line",{x1:w?0:e.y(n.upper),x2:w?0:e.y(n.max),y1:w?e.y(n.upper):0,y2:w?e.y(n.max):0}),ie.jsx("rect",{width:w?B:T,height:w?T:B,x:w?-B/2:e.y(n.lower),y:w?e.y(n.upper):-B/2,fill:M}),ie.jsx("line",{x1:w?-B/2:e.y(n.middle),x2:w?B/2:e.y(n.middle),y1:w?e.y(n.middle):-B/2,y2:w?e.y(n.middle):B/2}),l&&c&&ie.jsx("rect",{onMouseOver:()=>p(!0),onMouseLeave:()=>p(!1),width:w?b:Q,x:w?-b/2:0,y:w?0:-b/2,height:w?Q:b,fill:"transparent",stroke:"none"}),r.showOutliers&&n.outliers.map(K=>ie.jsxs("g",{transform:w?`translate(0,${e.y(K.y)})`:`translate(${e.y(K.y)},0)`,strokeDasharray:"0",children:[O,l&&c&&ie.jsx("circle",{onMouseOver:()=>m(K.id),onMouseLeave:()=>m(null),r:"15",fill:"transparent",stroke:"none"}),l&&ie.jsx(Fc,{content:yyt(K,a),x:w?E:e.y(K.y),y:w?e.y(K.y):E,sideDistances:i,horizontal:!0,active:h===K.id,container:c})]},K.id)),l&&ie.jsx(Fc,{content:[`Max = ${Qi(n.max)}`,`Upper = ${Qi(n.upper)}`,`Median = ${Qi(n.middle)}`,`Lower = ${Qi(n.lower)}`,`Min = ${Qi(n.min)}`],x:w?E:e.y(n.middle),y:w?e.y(n.middle):E,sideDistances:i,horizontal:w,active:f,offset:s>1?b/2:b/4,container:c})]})}function dP(e,t,n,r){if(n&&typeof n=="object"&&"type"in n){if(n.type==="primaryGrouping")return e.xPrimaryAes(r.primaryGrouping)[t];if(n.type==="secondaryGrouping")return e.xSecondaryAes(r.secondaryGrouping)[t]}return n}function Cyt(e,t,n){return n?[t,`${Qi(e)}`]:[`${Qi(e)}`]}function byt({scales:e,orientation:t,geom:n,aes:r,hasKeyFromColumn:a,sideDistances:i,showTooltips:l,tooltipsContainer:s}){let[c,f]=ir.useState(null),p=t==="vertical",h=(e.xPrimary(n.primaryGrouping)??0)+(e.xSecondary(n.secondaryGrouping)??0)+e.xSecondary.bandwidth()/2,m=e.xSecondary.bandwidth()*r.jitter,w=P=>(1-P*2)*(m/2),E=dP(e,"lineColor",r.lineColor,n),b=dP(e,"dotFill",r.dotFill,n),B=dP(e,"dotShape",r.dotShape,n),T=Vc(B,r.dotSize,b);return ie.jsx("g",{transform:p?`translate(${h},0)`:`translate(0, ${h})`,stroke:E,children:n.values.map(({y:P,jitter:M,id:z})=>ie.jsxs("g",{opacity:r.opacity,transform:p?`translate(${w(M)},${e.y(P)})`:`translate(${e.y(P)},${w(M)})`,children:[T,l&&s&&ie.jsx("circle",{onMouseOver:()=>f(z),onMouseLeave:()=>f(null),r:"4",fill:"transparent",stroke:"none"}),l&&ie.jsx(Fc,{content:Cyt(P,z,a),x:h+w(M),y:e.y(P),active:c===z,sideDistances:i,container:s})]},z))})}function AP(e,t,n,r){if(n&&typeof n=="object"&&"type"in n){if(n.type==="primaryGrouping")return e.xPrimaryAes(r.primaryGrouping)[t];if(n.type==="secondaryGrouping")return e.xSecondaryAes(r.secondaryGrouping)[t]}return n}function Eyt({scales:e,orientation:t,errorBar:n,aes:r,sideDistances:a,showTooltips:i,tooltipsContainer:l}){let[s,c]=ir.useState(!1),f=t==="vertical",p=AP(e,"lineColor",r.lineColor,n),h=AP(e,"fillColor",r.fillColor,n),m=AP(e,"dotShape",r.dotShape,n),w=(e.xPrimary(n.primaryGrouping)??0)+e.xPrimary.bandwidth()/2,E=r.width==="auto"?e.xPrimary.bandwidth()*.2:r.width,b=e.y(n.min),B=e.y(n.max),T=e.y(n.value),P=Vc(m,r.dotSize,h);return ie.jsxs("g",{opacity:r.opacity,stroke:p,fill:"none",transform:f?`translate(${w},0)`:`translate(0,${w})`,strokeWidth:r.lineWidth,children:[ie.jsx("line",{x1:f?0:b,x2:f?0:B,y1:f?b:0,y2:f?B:0}),ie.jsx("line",{x1:f?-E/2:b,x2:f?E/2:b,y1:f?b:-E/2,y2:f?b:E/2}),ie.jsx("line",{x1:f?-E/2:B,x2:f?E/2:B,y1:f?B:-E/2,y2:f?B:E/2}),r.showDots&&ie.jsxs("g",{transform:f?`translate(0,${T})`:`translate(${T},0)`,children:[P,i&&l&&ie.jsx("circle",{onMouseOver:()=>c(!0),onMouseLeave:()=>c(!1),r:"15",fill:"transparent",stroke:"none"}),i&&ie.jsx(Fc,{content:[Qi(n.value)],x:f?w:T,y:f?T:w,sideDistances:a,horizontal:!0,active:s,container:l})]})]})}function O8(e,t,n,r){if(n&&typeof n=="object"&&"type"in n){if(n.type==="primaryGrouping")throw new Error("Line cannot have aesthetics by primary grouping");if(n.type==="secondaryGrouping")return e.xSecondaryAes(r.key)[t]}return n}function Syt(e,t,n){let r=n.xPrimary.bandwidth()/2;return t.map(a=>[(n.xPrimary(a)??0)+r,n.y(e[a]),a,e[a]])}function xyt({scales:e,orientation:t,line:n,aes:r,sideDistances:a,showTooltips:i,tooltipsContainer:l}){let[s,c]=ir.useState(null),f=t==="vertical",p=O8(e,"lineColor",r.lineColor,n),h=O8(e,"dotFill",r.fillColor,n),m=O8(e,"lineShape",r.lineShape,n),w=O8(e,"dotShape",r.dotShape,n),E=Syt(n.dots,e.xPrimary.domain(),e),b=Vc(w,r.dotSize,h);return ie.jsxs("g",{opacity:r.opacity,stroke:p,strokeDasharray:jA(m),strokeWidth:r.lineWidth,children:[ie.jsx("polyline",{points:E.map(([B,T])=>f?[B,T]:[T,B]).join(" "),stroke:p,fill:"none"},n.key),r.dotShape!==null&&ie.jsx("g",{children:E.map(([B,T,P,M])=>ie.jsxs("g",{transform:f?`translate(${B},${T})`:`translate(${T},${B})`,strokeDasharray:"none",stroke:"none",children:[b,i&&l&&ie.jsx("circle",{onMouseOver:()=>c(P),onMouseLeave:()=>c(null),r:"15",fill:"transparent",stroke:"none"}),i&&ie.jsx(Fc,{content:[Qi(M)],x:f?B:T,y:f?T:B,sideDistances:a,horizontal:!0,active:s===P,container:l})]},P))})]})}function n2(e,t,n,r){if(n&&typeof n=="object"&&"type"in n){if(n.type==="primaryGrouping")return e.xPrimaryAes(r)[t];if(n.type==="secondaryGrouping")return e.xSecondaryAes(r)[t]}return n}function Byt({scales:e,orientation:t,geom:n,aes:r,sideDistances:a,showTooltips:i,tooltipsContainer:l}){let[s,c]=ir.useState(null),f=t==="vertical",p=n2(e,"lineColor",r.lineColor,n.id),h=n2(e,"lineShape",r.lineShape,n.id),m=n2(e,"fillColor",r.dotFill,n.key1),w=n2(e,"dotShape",r.dotShape,n.key1),E=n2(e,"fillColor",r.dotFill,n.key2),b=n2(e,"dotShape",r.dotShape,n.key2),B=Vc(w,r.dotSize,m),T=Vc(b,r.dotSize,E);function P(M){return n.grouping==="primary"?(e.xPrimary(M)??0)+e.xPrimary.bandwidth()/2:(e.xPrimary(n.id)??0)+(e.xSecondary(M)??0)+e.xSecondary.bandwidth()/2}return ie.jsx("g",{opacity:r.opacity,children:n.pairs.map(M=>{let z=f?P(n.key1):e.y(M.key1.value),$=f?P(n.key2):e.y(M.key2.value),O=f?e.y(M.key1.value):P(n.key1),Q=f?e.y(M.key2.value):P(n.key2);return ie.jsxs("g",{children:[ie.jsx("line",{x1:z,y1:O,x2:$,y2:Q,stroke:p,strokeDasharray:jA(h),strokeWidth:r.lineWidth,fill:"none"}),ie.jsxs("g",{transform:`translate(${z},${O})`,children:[B,i&&l&&ie.jsx("circle",{onMouseOver:()=>c(M.key1.id),onMouseLeave:()=>c(null),r:"15",fill:"transparent",stroke:"none"}),i&&ie.jsx(Fc,{content:[M.id,Qi(M.key1.value)],x:z,y:O,sideDistances:a,horizontal:!0,active:s===M.key1.id,container:l})]}),ie.jsxs("g",{transform:`translate(${$},${Q})`,children:[T,i&&l&&ie.jsx("circle",{onMouseOver:()=>c(M.key2.id),onMouseLeave:()=>c(null),r:"15",fill:"transparent",stroke:"none"}),i&&ie.jsx(Fc,{content:[M.id,Qi(M.key2.value)],x:$,y:Q,sideDistances:a,horizontal:!0,active:s===M.key2.id,container:l})]})]},M.id)})})}function bX(e,t,n,r){if(n&&typeof n=="object"&&"type"in n){if(n.type==="primaryGrouping")return e.xPrimaryAes(r.primaryGrouping)[t];if(n.type==="secondaryGrouping")return e.xSecondaryAes(r.secondaryGrouping)[t]}return n}function kyt(e,t,n){return n?[t,`${Qi(e)}`]:[`${Qi(e)}`]}function Tyt({scales:e,orientation:t,geom:n,aes:r,hasKeyFromColumn:a,sideDistances:i,showTooltips:l,tooltipsContainer:s}){let[c,f]=ir.useState(null),p=t==="vertical",h=(e.xPrimary(n.primaryGrouping)??0)+(e.xSecondary(n.secondaryGrouping)??0)+e.xSecondary.bandwidth()/2,m=e.xSecondary.bandwidth(),w=r.width==="auto"?m*.8:Math.min(m,r.width),E=P=>(1-P*2)*(w/2),b=bX(e,"dotFill",r.dotFill,n),B=bX(e,"dotShape",r.dotShape,n),T=Vc(B,r.dotSize,b);return ie.jsx("g",{transform:p?`translate(${h},0)`:`translate(0, ${h})`,children:n.points.map(({x:P,y:M,jitter:z,id:$})=>{let O=p?M*E(z):e.y(P),Q=p?e.y(P):M*E(z);return ie.jsxs("g",{opacity:r.opacity,transform:`translate(${O},${Q})`,children:[T,l&&s&&ie.jsx("circle",{onMouseOver:()=>f($),onMouseLeave:()=>f(null),r:"4",fill:"transparent",stroke:"none"}),l&&ie.jsx(Fc,{content:kyt(M,$,a),x:h+O,y:Q,active:c===$,sideDistances:i,container:s})]},$)})})}function EX(e,t,n,r,a){if(n&&typeof n=="object"&&"type"in n){if(n.type==="primaryGrouping")return e.xPrimaryAes(r)[t];if(n.type==="secondaryGrouping")return e.xSecondaryAes(a)[t]}return n}function _yt({scales:e,orientation:t,geom:n,aes:r,sideDistances:a,showTooltips:i,elementsAmount:l,tooltipsContainer:s}){let[c,f]=ir.useState(null),p=t==="vertical",h=e.xPrimary.bandwidth(),m=(e.xPrimary(n.primaryGrouping)??0)+h/2,w=r.width==="auto"?h*.8:Math.min(h,r.width);return ie.jsx("g",{transform:p?`translate(${m},0)`:`translate(0, ${m})`,opacity:r.opacity,strokeWidth:r.lineWidth,children:n.values.map(E=>{let b=e.y(E.y1),B=e.y(E.y2),T=Math.abs(b-B),P=EX(e,"lineColor",r.lineColor,n.primaryGrouping,E.key),M=EX(e,"fillColor",r.fillColor,n.primaryGrouping,E.key);return ie.jsxs("g",{children:[ie.jsx("rect",{width:p?w:T,height:p?T:w,x:p?-w/2:Math.min(b,B),y:p?Math.min(b,B):-w/2,fill:M,stroke:P,onMouseOver:()=>f(E.key),onMouseLeave:()=>f(null)}),i&&ie.jsx(Fc,{content:[E.key,Qi(Math.abs(E.y1-E.y2))],x:p?m:(b+B)/2,y:p?(b+B)/2:m,sideDistances:a,horizontal:p,offset:l>1?h/2:h/4,active:c===E.key,container:s})]},E.key)})})}function SX(e,t,n,r){let a=t.reduce((i,l,s)=>(i[l]=s,i),{});return e.filter(([,i])=>r?i<=n.one:!0).sort(([[i,l]],[[s,c]])=>i!==l?a[l]-a[i]:a[c]-a[s])}function Pyt(e,t){let n=t.reduce((a,i,l)=>(a[i]=l,a),{}),r=[];return e.map(([[a,i]])=>{let l=n[a],s=n[i];for(let c=0;c<r.length;c++)if(r[c]<l)return r[c]=s,c;return r.push(s),r.length-1})}function xX(e,t,n,r){let a=t.reduce((l,s,c)=>(l[s]=c,l),{}),i=[];return SX(e,t,n,!r).forEach(([[l,s]])=>{let c=a[l],f=a[s];for(let p=0;p<i.length;p++)if(i[p]<c){i[p]=f;return}i.push(f)}),i.length}var Dyt={ttest:"TTest",anova:"ANOVA",kruskalWallis:"Kruskal-Wallis",wilcoxon:"Wilcoxon"};function Myt(e,t){return e<=t.three?"***":e<=t.two?"**":e<=t.one?"*":"ns"}function pP(e,t,n,r){return!r&&e>n.one?"":t==="significance"?Myt(e,n):Qi(e)}var r2=18,hP=12;function Hyt({orientation:e,scales:t,testMethod:n,values:r,statType:a,format:i,ns:l,significanceLevels:s,yShift:c}){if(!r.length)return null;let f=T=>(t.xPrimary(T)??0)+t.xPrimary.bandwidth()/2,p=e==="vertical",h=Math.abs(t.xPrimary.range()[1]-t.xPrimary.range()[0]),m=Math.abs(t.y.range()[1]-t.y.range()[0]),w=t.xPrimary.domain(),E=a==="pairwise"?SX(r,w,s,!l):r,b=a==="pairwise"?Pyt(E,w):[],B=Math.max(...b);return ie.jsxs("g",{fontSize:"14px",transform:p?`translate(0,${c})`:`translate(${m-c},0)`,children:[a==="overall"&&ie.jsx("text",{x:p?h/2:-r2,y:p?r2:h/2,transform:p?"":`rotate(90,${-r2},${h/2})`,textAnchor:"middle",children:`${Dyt[n]}, p = ${pP(r[0][1],"pValue",s,!0)}`}),a==="referenceGroup"&&ie.jsx("g",{children:r.map(([[T],P])=>ie.jsx("text",{x:p?f(T):-r2,y:p?r2:f(T),transform:p?"":`rotate(90,${-r2},${f(T)})`,textAnchor:"middle",children:pP(P,i,s,l)},T))}),a==="pairwise"&&ie.jsx("g",{children:E.map(([[T,P],M],z)=>{let $=f(T),O=f(P),Q=($+O)/2;return ie.jsxs("g",{transform:p?`translate(0,${(B-b[z])*J3})`:`translate(${-(B-b[z])*J3},0)`,children:[ie.jsx("text",{x:p?Q:-hP,y:p?hP:Q,transform:p?"":`rotate(90,${-hP},${Q})`,textAnchor:"middle",children:pP(M,i,s,l)}),ie.jsx("path",{d:p?`M ${$},21 v-4 h ${O-$} v4`:`M -21,${$} h 4 v ${O-$} h-4`,fill:"none",stroke:Vt})]},`${T}_${P}`)})})]})}function Iyt(e){return`translate(${e},0)`}function Ryt(e){return`translate(0,${e})`}function Nyt(e){return e==="bottom"?`translate(0,${Mf})`:`translate(${-Mf},0)`}function $yt(e){return e==="bottom"?"hanging":"central"}function Lyt(e){return e==="bottom"?"middle":"end"}var BX=({scale:e,tickSize:t=6,tickPadding:n=Mf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function l(P){return M=>{let z=P(M);return z===void 0?0:+z}}let s=Math.abs(e.range()[0]-e.range()[1]),c=Math.min(Math.floor(s/mX),10),f=e.ticks(c).filter(P=>a&&P>=0||!a),p=f.some(P=>Math.abs(P)<1e-4&&P!==0||P>1e4)?",e":",f",h=P=>e.tickFormat(c,p)(P),m=Math.max(t,0)+n,w=l(e.copy()),E=r==="bottom"?Iyt:Ryt,b=r==="left"?-1:1,B={[(r==="left"?"x":"y")+"2"]:b*t},T={[r==="left"?"x":"y"]:b*m};return ie.jsx("g",{children:f.map((P,M)=>ie.jsxs("g",{className:"tick",transform:E(w(P)+i),children:[ie.jsx("line",{stroke:Vt,...B}),ie.jsx("g",{transform:Nyt(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:$yt(r),textAnchor:Lyt(r),...T,children:h(P)})})]},M))})};function kX(e,t,n,r){if(n&&typeof n=="object"&&"type"in n){if(n.type==="primaryGrouping")return e.xPrimaryAes(r.primaryGrouping)[t];if(n.type==="secondaryGrouping")return e.xSecondaryAes(r.secondaryGrouping)[t]}return n}function Fyt({scales:e,orientation:t,violin:n,aes:r,maxViolinDensity:a}){let i=t==="vertical",l=(e.xPrimary(n.primaryGrouping)??0)+(e.xSecondary(n.secondaryGrouping)??0)+e.xSecondary.bandwidth()/2,s=e.xSecondary.bandwidth(),c=r.width==="auto"?s*.8:Math.min(s,r.width),f=kX(e,"lineColor",r.lineColor,n),p=kX(e,"fillColor",r.fillColor,n),h=n.getArea(t,e.y,c,a)??"",m=n.getLine(t,e.y,c,a)??"";return ie.jsxs("g",{transform:i?`translate(${l},0)`:`translate(0, ${l})`,opacity:r.opacity,stroke:f,fill:p,strokeWidth:r.lineWidth,strokeDasharray:jA(r.lineShape),children:[ie.jsx("path",{d:h,stroke:"none"}),ie.jsx("path",{d:m,fill:"none"})]})}var Vyt=1;function Oyt({scaleX:e,scaleY:t,orientation:n,width:r,height:a,axisX:i,axisY:l,frameType:s}){let[c,f]=ir.useState(e.domain()),p=Math.abs(t.range()[0]-t.range()[1]),h=Math.min(Math.floor(p/mX),10),[m,w]=ir.useState(t.ticks(h)),E=e.bandwidth()/2,b=P=>(e(P)??0)+E,B=P=>t(P),T=n==="vertical";return ir.useEffect(()=>{let P=e.domain(),M=t.ticks(h);f(P),w(M)},[e,t]),ie.jsxs("g",{stroke:Pf,children:[i.showGrid&&c.map(P=>{let M=b(P)+(i.linesBetweenCategories?E:0);return ie.jsx("line",{x1:T?M:0,x2:T?M:r,y1:T?0:M,y2:T?a:M},`x_${P}`)}),l.showGrid&&m.map(P=>{let M=B(P);return ie.jsx("line",{x1:T?0:M,x2:T?r:M,y1:T?M:0,y2:T?M:a},`y_${P}`)}),s!=="empty"&&ie.jsxs("g",{strokeWidth:Vyt,children:[(i.showGrid||s!=="left")&&ie.jsx("line",{stroke:s==="left"?Pf:Vt,x1:"0",x2:r,y1:a,y2:a}),(i.showGrid||s!=="bottom")&&ie.jsx("line",{stroke:s==="bottom"?Pf:Vt,x1:"0",x2:"0",y1:"0",y2:a}),(i.showGrid||s==="full")&&ie.jsx("line",{stroke:s==="full"?Vt:Pf,x1:r,x2:r,y1:"0",y2:a}),(l.showGrid||s==="full")&&ie.jsx("line",{stroke:s==="full"?Vt:Pf,x1:"0",x2:r,y1:"0",y2:"0"})]})]})}function Qyt(e,t,n){if(!e.length)return[];let r=[0];for(let a=0;a<e.length-1;a++){let i=e[a];if(i.meta.statType==="pairwise"){let l=xX(i.values[n],t,i.meta.significanceLevels,i.meta.ns);r.push(r[r.length-1]+J3*l)}else r.push(r[r.length-1]+J3)}return r}function TX(e){return typeof e=="string"?e:e.value}function zyt({facetSettings:e,facetTitle:t,dimensions:n,scales:r,orientation:a,layersData:i,statsData:l,facetKey:s,xAxis:c,yAxis:f,frameType:p,tooltips:h,tooltipsContainer:m,keyColumn:w,chartSizes:E,margins:b,xLabels:B,onlyPositive:T}){let P=a==="vertical",M=Qyt(l,r.xPrimary.domain(),s),z=c.showTicks?vX:0,$=f.showTicks?vX:0,O=TX(c.title),Q=TX(f.title),K=n.chartEdgeSides.includes("left")||P&&!(e!=null&&e.sharedY)||!P&&!(e!=null&&e.sharedX),j=n.chartEdgeSides.includes("bottom")||P&&!(e!=null&&e.sharedX)||!P&&!(e!=null&&e.sharedY),W=n.chartEdgeSides.includes("left"),V=n.chartEdgeSides.includes("bottom"),{width:U,height:Z}=n.inner,{left:q,top:oe,padding:se}=n,Te={left:b.left+q+se.left,right:E.totalWidth-(b.left+q+se.left),top:b.top+oe+se.top,bottom:E.totalHeight-(b.top+oe+se.top)},le=`translate(${q+se.left},${oe+se.top})`,be=!1;return ie.jsxs("g",{transform:le,children:[be,t.length&&ie.jsxs("g",{children:[p==="full"&&ie.jsx("rect",{x:"0",y:-se.top,height:se.top,width:U,fill:"#F7F8FA",stroke:Vt}),t.map((ge,Ae)=>{let Se=t.length,ze=(se.top-A9*Se)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:U/2,dy:ze+A9/2-se.top,y:Ae*A9,textAnchor:"middle",dominantBaseline:"central",children:ge},Ae)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[V&&ie.jsx("text",{x:U/2,y:Z+se.bottom-a1/2,children:P?O:Q}),V&&be&&ie.jsx("rect",{x:"0",y:Z+se.bottom-a1,width:U,height:a1,fill:"none",stroke:"black"}),W&&ie.jsx("text",{x:-se.left+a1/2,y:Z/2,transform:`rotate(-90,${-se.left+a1/2},${Z/2})`,children:P?Q:O}),W&&be&&ie.jsx("rect",{x:-se.left,y:"0",width:a1,height:Z,fill:"none",stroke:"black"})]}),ie.jsx(Oyt,{orientation:a,width:U,height:Z,scaleX:r.xPrimary,scaleY:r.y,axisX:c,axisY:f,frameType:p}),j&&ie.jsx("g",{transform:`translate(0,${Z})`,children:P?ie.jsx(yX,{scale:r.xPrimary,orient:"bottom",labelsPosition:c.labelsPosition,tickSize:z,labels:B}):ie.jsx(BX,{scale:r.y,onlyPositive:T,orient:"bottom",tickSize:$})}),K&&ie.jsx("g",{children:P?ie.jsx(BX,{scale:r.y,onlyPositive:T,orient:"left",tickSize:$}):ie.jsx(yX,{scale:r.xPrimary,orient:"left",labelsPosition:c.labelsPosition,tickSize:z,labels:B})}),ie.jsxs("g",{children:[i.map(ge=>ie.jsxs("g",{children:[ge.type==="box"&&ge.geoms[s].map(Ae=>ie.jsx(wyt,{box:Ae,elementsAmount:ge.geoms[s].length,scales:r,orientation:a,aes:ge.aes,hasKeyFromColumn:w!==null,sideDistances:Te,showTooltips:h.box.show,tooltipsContainer:m},Ae.key)),ge.type==="violin"&&ge.geoms[s].map(Ae=>ie.jsx(Fyt,{violin:Ae,scales:r,orientation:a,maxViolinDensity:ge.meta.maxDensity,aes:ge.aes},Ae.key)),ge.type==="dot"&&ge.geoms[s].map(Ae=>ie.jsx(byt,{geom:Ae,scales:r,orientation:a,aes:ge.aes,hasKeyFromColumn:w!==null,sideDistances:Te,showTooltips:h.dot.show,tooltipsContainer:m},Ae.key)),ge.type==="line"&&ge.geoms[s].map(Ae=>ie.jsx(xyt,{line:Ae,scales:r,orientation:a,sideDistances:Te,aes:ge.aes,showTooltips:h.line.show,tooltipsContainer:m},Ae.key)),ge.type==="errorbar"&&ge.geoms[s].map(Ae=>ie.jsx(Eyt,{errorBar:Ae,scales:r,orientation:a,aes:ge.aes,sideDistances:Te,showTooltips:h.errorBar.show,tooltipsContainer:m},Ae.key)),ge.type==="bar"&&ge.geoms[s].map(Ae=>ie.jsx(myt,{bar:Ae,scales:r,orientation:a,aes:ge.aes},Ae.key)),ge.type==="stackedBar"&&ge.geoms[s].map(Ae=>ie.jsx(_yt,{geom:Ae,elementsAmount:ge.geoms[s].length,scales:r,orientation:a,aes:ge.aes,sideDistances:Te,showTooltips:h.stackedBar.show,tooltipsContainer:m},Ae.key)),ge.type==="binnedDots"&&ge.geoms[s].map(Ae=>ie.jsx(gyt,{geom:Ae,scales:r,orientation:a,aes:ge.aes,binsCount:ge.meta.binsCount,min:ge.meta.minY,max:ge.meta.maxY,hasKeyFromColumn:ge.meta.hasKeyFromColumn,sideDistances:Te,showTooltips:h.stackedBar.show,tooltipsContainer:m},Ae.key)),ge.type==="pairedPoints"&&ge.geoms[s].map(Ae=>ie.jsx(Byt,{geom:Ae,scales:r,orientation:a,sideDistances:Te,aes:ge.aes,showTooltips:h.pairedPoints.show,tooltipsContainer:m},Ae.id)),ge.type==="sina"&&ge.geoms[s].map(Ae=>ie.jsx(Tyt,{geom:Ae,scales:r,orientation:a,sideDistances:Te,aes:ge.aes,hasKeyFromColumn:w!==null,showTooltips:!1,tooltipsContainer:m},Ae.key))]},ge.type)),l.map((ge,Ae)=>ie.jsx(Hyt,{yShift:M[Ae],scales:r,orientation:a,statType:ge.meta.statType,values:ge.values[s],testMethod:ge.meta.testMethod,format:ge.meta.format,ns:ge.meta.ns,significanceLevels:ge.meta.significanceLevels},`${ge.meta.statType}_${ge.meta.testMethod}`))]})]})}var a2=class extends vB.Component{constructor(e){super(e),this.state={hasError:!1,message:""}}static getDerivedStateFromError(e){return{hasError:!0,message:e.message}}componentDidUpdate(e){e.dataId!==this.props.dataId&&this.setState({hasError:!1,message:"error.message"})}componentDidCatch(e,t){console.log(t)}render(){return this.state.hasError?ie.jsx(Nv,{message:this.state.message}):this.props.children}};function Uyt(e,t,n,r){return e==="left"?n:e==="right"?t-r:(t-(n+r))/2+n}function Gyt(e){return e==="left"?"start":e==="right"?"end":"middle"}function i2({show:e,position:t,title:n,chartsWidth:r,leftPadding:a,rightPadding:i}){return e?ie.jsx("g",{children:n.map((l,s)=>ie.jsx("text",{x:Uyt(t,r,a,i),textAnchor:Gyt(t),y:-(n.length-s-1)*24-24-24/2,fontSize:"20px",fontFamily:"Manrope",fontWeight:"500",dominantBaseline:"central",children:l},`${l}_${s}`))}):null}var Lv=12,jyt=-12,Yyt=3,Wyt=24;function Xyt(e=null){return e==="dashed"?"M1 11.25H6V12.75H1V11.25ZM9.5 11.25H14.5V12.75H9.5V11.25ZM18 11.25H23V12.75H18V11.25Z":e==="dotted"?"M2.75 11.25H1.25V12.75H2.75V11.25Z M11.25 11.25H12.75V12.75H11.25V11.25Z M22.75 11.25H21.25V12.75H22.75V11.25Z M7.75 11.25H6.25V12.75H7.75V11.25Z M16.25 11.25H17.75V12.75H16.25V11.25Z":e==="longdash"?"M1 11.25H10V12.75H1V11.25ZM14 11.25H23V12.75H14V11.25Z":e==="dotdash"?"M1 11.25H2.5V12.75H1V11.25ZM17 12.75H7V11.25H17V12.75ZM21.5 12.75V11.25H23V12.75H21.5Z":e==="twodash"?"M1 11.25H4V12.75H1V11.25ZM17.0261 12.75H7V11.25H17.0261V12.75ZM20 12.75V11.25H23V12.75H20Z":"M1 11.25H23V12.75H1V11.25Z"}function Kyt({aes:e,label:t,usedAes:n}){let r=n.lineShape,a=n.dotShape,i=n.fillColor||n.lineColor&&!n.lineShape||n.dotFill&&!n.dotShape,l=a?Vc(e.dotShape??"21",Yyt,i?Vt:e.dotFill??Vt):null,s=(a&&r?2*Lv:0)-6,c=r?s+Wyt+8:Lv+8;return ie.jsxs("g",{children:[i&&ie.jsx("rect",{width:Lv,height:Lv,stroke:e.fillColor??e.lineColor,fill:e.fillColor??e.lineColor,rx:"1",ry:"1"}),a&&ie.jsx("g",{transform:`translate(${Lv/2},${Lv/2})`,children:l}),r&&ie.jsx("path",{transform:`translate(${s},-5)`,fillRule:"evenodd",clipRule:"evenodd",d:Xyt(e.lineShape),fill:e.lineColor}),ie.jsx("text",{x:c,y:Lv/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function Zyt({legendData:e}){return ie.jsx("g",{children:e.items.map(t=>ie.jsxs("g",{transform:`translate(${t.left},${t.top})`,fontSize:"14px",fontWeight:500,children:[ie.jsx("text",{fontWeight:600,y:jyt,children:t.title}),t.values.map((n,r)=>ie.jsx("g",{transform:`translate(0, ${r*(Lv+4)})`,children:ie.jsx(Kyt,{aes:t.scale(n),label:t.valueLabels[n],usedAes:t.usedAes})},n)),!1]},t.id))})}function Jyt({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,facetKeys:a,facetTitles:i,facetSettings:l,scales:s,layersData:c,statsData:f,legendData:p,margins:h,columnsCount:m,keyColumn:w,xLabels:E,chartTitle:b,onlyPositive:B}){let[T,P]=ir.useState(),{orientation:M,xAxis:z,yAxis:$,title:O,legend:Q,frame:K}=t,j=r[a[0]].padding,W=r[a[m-1]].padding,V=n.chartsWidth+F8,U=j.top;return ie.jsx(a2,{dataId:e,children:ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${n.totalWidth} ${n.totalHeight}`,width:n.totalWidth,height:n.totalHeight,children:[ie.jsx("defs",{children:Dg}),ie.jsxs("g",{transform:`translate(${h.left},${h.top})`,fontFamily:"Manrope",children:[ie.jsx(i2,{title:b,show:O.show,position:O.position,leftPadding:j.left,rightPadding:W.right,chartsWidth:n.chartsWidth}),a.map(Z=>ie.jsx(zyt,{facetKey:Z,facetTitle:i[Z],facetSettings:l,orientation:M,scales:{...s,xPrimary:s.xPrimary[Z],xSecondary:s.xSecondary[Z],y:s.y[Z]},chartSizes:n,margins:h,dimensions:r[Z],layersData:c,statsData:f,xAxis:z,yAxis:$,frameType:K.type,tooltips:t.tooltips,tooltipsContainer:T,keyColumn:w,xLabels:E[Z],onlyPositive:B},Z)),Q.show&&ie.jsx("g",{transform:`translate(${V},${U})`,children:ie.jsx(Zyt,{legendData:p})})]}),ie.jsx("g",{ref:Z=>{Z&&!T&&P(Z)}})]})})}function _X(e,t){let n=Object.keys(e.values),r=e.reduce((a,i)=>{if(i.meta.statType==="pairwise"){let l=Object.values(i.values).map(s=>xX(s,t,i.meta.significanceLevels,i.meta.ns));return a+J3*Math.max(...l)}return(i.meta.ns?t.length>0:n.some(l=>i.values[l].some(([,s])=>s<i.meta.significanceLevels.one)))?a+J3:a},lyt);return Math.max(d9.TOP,r)}function o2(e,t,n=r=>r){let r=p=>t==="log"?Math.log10(p):p,a=p=>t==="log"?Math.pow(10,p):p,i=e.map(n).map(r).sort((p,h)=>p-h),l=B0(i,.25),s=B0(i,.75),c=s-l,f=1.5;return[a(l-f*c),a(s+f*c)]}function qyt(e,t,n,r=14){let a=new Vs(`600 ${r}px Manrope`),i=[];e.split(new RegExp("(?=[_-])|(?<=[_-])")).forEach(h=>{a.getTextWidth(h)>n?i.push(...h.split("")):i.push(h)});let l="",s=0,c=0,f="";for(;s<=t;){let h=a.getTextWidth(l+i[c]);h<t&&(l+=i[c],f=l,c++),s=h}l="",s=0;let p=[];for(c;c<i.length;c++){let h=a.getTextWidth(l+i[c]);h<n?(l+=i[c],s=h):(p.push(l),l=i[c],s=a.getTextWidth(i[c]))}return{firstPart:f,lines:p,lastPart:l,lastPartLength:s}}function Fv(e,t,n){let r=new Vs(`600 ${n}px Manrope`);if(e.trim()==="")return[];if(r.getTextWidth(e)<=t)return[e];let a=e.split(/\s+/),i=[],l="",s=0;for(let c=0;c<a.length;c++){let f=`${l} ${a[c]}`,p=r.getTextWidth(f);if(p<=t)l=f,s=p;else{let h=r.getTextWidth(a[c]);if(h>t){let{firstPart:m,lines:w,lastPart:E,lastPartLength:b}=qyt(a[c],t-s,t,n);i.push(`${l} ${m}`),i.push(...w),l=E,s=b}else i.push(l),l=a[c],s=h}}return i.push(l),i.filter(c=>c.length>0)}function e3t(e,t,n,r){let a=[];return e%n===n-1&&a.push("right"),e%n===0&&a.push("left"),e<n&&a.push("top"),(Math.ceil((e+1)/n)===r||Math.ceil((e+1)/n)===r-1&&e%n>(t-1)%n)&&a.push("bottom"),a}function t3t(e,t,n,r,a,i,l,s,c,f){let p=e==="vertical",h=l.includes("left")||p&&!(s!=null&&s.sharedY)||!p&&!(s!=null&&s.sharedX),m=l.includes("left")&&n.title!=="",w=l.includes("bottom")||p&&!(s!=null&&s.sharedX)||!p&&!(s!=null&&s.sharedY),E=l.includes("bottom")&&t.title!=="",b=r.yAxisCaptionsWidth,B=(n.showTicks?X3:0)+Mf,T=m?a1:0,P=r.xAxisCaptionsWidthByRows[p?c:f],M=(t.showTicks?X3:0)+Mf,z=E?a1:0,$=p?b+B+T:P+M+z,O=p?M+P+z:B+2*a1,Q=Math.max(...a.map(K=>i[K].length));return{left:h?$:cP,top:Q===0?0:oyt*2+Q*A9,bottom:w?O:cP,right:cP}}function n3t(e,t,n){let r=new Array(n).fill(null).map(()=>[]);for(let a=0;a<n;a++)for(let i=0;i<t;i++)i*n+a<e.length&&r[a].push(e[i*n+a]);return r}function PX(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function r3t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function a3t(e){return typeof e=="object"&&"type"in e}var i3t=class{constructor(){ke(this,"reactRoot",null);ke(this,"parentNode",null);ke(this,"rootNode",null);ke(this,"component",ie.jsx(ie.Fragment,{}));ke(this,"chartsDimensions",{});ke(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});ke(this,"columnsCount",1);ke(this,"rowsCount",1);ke(this,"scales",{xPrimary:{null:H7().range([0,600]).domain(["1"])},xSecondary:{null:H7().range([0,600]).domain(["1"])},y:{null:Ua().domain([0,10]).range([350,0]).nice()},xPrimaryAes:nl().unknown(hX),xSecondaryAes:nl().unknown(hX)});ke(this,"facetTitles",{});ke(this,"mainTitle",[]);ke(this,"axisLabelsX",{});ke(this,"captionsSizes",{xAxisCaptionsWidthByRows:[],xCaptionsTail:0,yAxisCaptionsWidth:100});ke(this,"legend",{width:0,height:0,items:[]});ke(this,"margins",{left:0,right:0,top:0,bottom:0})}clear(){var e;this.parentNode&&this.rootNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),this.parentNode=null,this.rootNode=null),setTimeout(()=>{var t;(t=this.reactRoot)==null||t.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.reactRoot=Fh(this.rootNode))}updateChartSize(e,t,n,r,a,i){let l=_X(i,r),s=t.length,c=Math.min((n==null?void 0:n.nRows)??s,s),f=Math.min((n==null?void 0:n.nCols)??s,s);this.columnsCount=n!=null&&n.nRows?Math.ceil(s/c):f,this.rowsCount=Math.ceil(s/this.columnsCount);let{width:p,height:h}=e;a==="vertical"&&l>d9.TOP&&(h+=l),a==="horizontal"&&l>d9.TOP&&(p+=l),this.chartSizes.chartWidth=p,this.chartSizes.chartHeight=h}updateChartDimensions(e,t,n,r,a){let{chartWidth:i,chartHeight:l}=this.chartSizes,s=0,c=0;this.chartsDimensions=e.reduce((h,m,w)=>{let[E,b]=r3t(w,this.columnsCount),B=e3t(w,e.length,this.columnsCount,this.rowsCount),T=t3t(n,r,a,this.captionsSizes,PX(e,this.rowsCount,this.columnsCount)[E],this.facetTitles,B,t,E,b),P=i+T.left+T.right,M=l+T.top+T.bottom;return h[m]={left:s,top:c,chartEdgeSides:B,padding:T,inner:{width:i,height:l},outer:{width:P,height:M}},s+=P,b===this.columnsCount-1&&(s=0,c+=M),h},{});let f=Math.max(...e.map(h=>this.chartsDimensions[h].outer.width+this.chartsDimensions[h].left)),p=Math.max(...e.map(h=>this.chartsDimensions[h].outer.height+this.chartsDimensions[h].top));this.chartSizes.chartsWidth=f,this.chartSizes.chartsHeight=p}updateViewport(e,t,n,r,a,i,l,s,c){let f=e==="vertical",p=_X(s,t),h=a===null||a.sharedX,m=a===null||a.sharedY,{chartHeight:w,chartWidth:E}=this.chartSizes;r.forEach(b=>{let B=i.scale==="log"?Im():Ua(),T=Math.min(...m?l.map(({meta:$})=>$.minY):l.map(({geoms:$})=>Math.min(...$[b].map(({boundsY:O})=>O.min)))),P=Math.max(...m?l.map(({meta:$})=>$.maxY):l.map(({geoms:$})=>Math.max(...$[b].map(({boundsY:O})=>O.max)))),M=B.copy().domain([T,P]).range(f?[w-d9.BOTTOM,p]:[d9.BOTTOM,E-p]);B.domain([M.invert(f?w:0),M.invert(f?0:E)]).range(f?[w,0]:[0,E]),this.scales.y[b]=B;let z=h?t:c[b];this.scales.xPrimary[b]=H7().domain(z).range(f?[0,E]:[w,0]),this.scales.xSecondary[b]=H7().domain(n).range([0,this.scales.xPrimary[b].bandwidth()])})}createFacetTitles(e,t){this.facetTitles=e.reduce((n,r,a)=>(t[a].length===1&&t[a][0]==="null"?n[r]=[]:n[r]=Fv(t[a].join(", "),this.chartSizes.chartWidth,14),n),{})}createMainTitle(e,t){let n=this.chartsDimensions[e[0]],r=this.chartsDimensions[e[e.length-1]];this.mainTitle=Fv(t.name,this.chartSizes.chartsWidth-n.padding.left-r.padding.right,20)}createAxisLabels(e,t,n,r){let a={center:120,"45deg":256,"90deg":320},i=r==="vertical";function l(s,c){return s==="center"?1/0:Math.floor(s==="45deg"?c*Math.sin(Math.PI/4)/fP:c/fP)}this.axisLabelsX=e.reduce((s,c)=>{let f=this.scales.xPrimary[c],p=f.bandwidth(),h=a[t.labelsPosition],m=t.labelsPosition==="center"?Math.min(h,p):h,w=n.valueLabels;return s[c]=f.domain().reduce((E,b)=>{let B=w[b];if(!i)E[b]=[B];else{let T=l(t.labelsPosition,p),P=Fv(B,m,14);E[b]=P.length>T?[B]:P}return E},{}),s},{})}updateAesScales(e,t){if(e.inheritedAes){let{inheritedAes:n,keys:r}=e;this.scales.xPrimaryAes.domain(r).range(r.map(a=>n[a]))}else this.scales.xPrimaryAes.domain([]).range([]);if(t.inheritedAes){let{inheritedAes:n,keys:r}=t;this.scales.xSecondaryAes.domain(r).range(r.map(a=>n[a]))}else this.scales.xSecondaryAes.domain([]).range([])}updateCaptionsSize(e,t,n){let r=new Vs("600 14px Manrope"),a=e==="vertical";function i(w){return w.length?Math.max(...w.map(E=>r.getTextWidth(E))):0}function l(w){return w.length?Math.max(...w.map(i)):0}let s=[],c=0,f=PX(t,this.rowsCount,this.columnsCount),p=n3t(t,this.rowsCount,this.columnsCount);if(!a)s=p.map(w=>Math.max(...w.map(E=>l(this.scales.xPrimary[E].domain().map(b=>this.axisLabelsX[E][b])))));else{if(n.labelsPosition==="center"&&(s=f.map(w=>Math.max(...w.map(E=>Math.max(...this.scales.xPrimary[E].domain().map(b=>b?this.axisLabelsX[E][b].length*fP:0)))))),n.labelsPosition==="45deg"){let w=Math.sin(Math.PI/4);s=f.map(E=>Math.max(...E.map(b=>{let B=this.scales.xPrimary[b].domain().map(P=>this.axisLabelsX[b][P]),T=l(B);return T>0?T*w+14:0}))),c=Math.max(...p[0].map(E=>{let b=this.scales.xPrimary[E].domain(),B=this.axisLabelsX[E][b[0]];return Math.max(i(B)*w-this.scales.xPrimary[E].bandwidth()/2+14,0)}))}n.labelsPosition==="90deg"&&(s=f.map(w=>Math.max(...w.map(E=>l(this.scales.xPrimary[E].domain().map(b=>this.axisLabelsX[E][b]))))))}let h=ar.flatten(t.map(w=>{let E=this.scales.y[w],b=E.ticks(),B=b.some(P=>Math.abs(P)<1e-4&&P!==0||P>1e4)?",e":",f",T=E.tickFormat(10,B);return b.map(T)})),m=i(h);this.captionsSizes={xCaptionsTail:c,xAxisCaptionsWidthByRows:s,yAxisCaptionsWidth:m}}updateMargins(e,t){let n=this.chartsDimensions[t[0]],r=this.chartsDimensions[t[t.length-1]],a=e==="vertical";this.margins={left:Math.max($8,a?this.captionsSizes.xCaptionsTail-n.padding.left:0),right:Math.max(this.legend.width,$8),top:Math.max(24*this.mainTitle.length+24*2,$8),bottom:Math.max($8,a?0:this.captionsSizes.xCaptionsTail-r.padding.bottom)},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartsHeight,this.legend.height)+this.margins.bottom}updateLegendSize(e,t,n,r){if(!e.show){this.legend={width:0,height:0,items:[]};return}let a=new Vs("600 14px Manrope"),i=16,l=48,s=20,c=24;function f(O,Q){return Math.max(...O.map(K=>a.getTextWidth(String(K))+s),a.getTextWidth(Q))}let p=[],h=0,m=0,w=0,E=this.chartSizes.chartsHeight,b=this.chartSizes.chartsHeight;function B(O,Q){return r.some(K=>{let j=K.aes[Q];return j&&a3t(j)&&j.type===O})}function T(O){return{dotFill:B(O,"dotFill"),fillColor:B(O,"fillColor"),lineColor:B(O,"lineColor"),dotShape:B(O,"dotShape"),lineShape:B(O,"lineShape")}}let P=T("primaryGrouping"),M=T("secondaryGrouping");if(Object.values(P).some(O=>O)&&t.inheritedAes){let{keys:O,label:Q,valueLabels:K}=t,j=f(O.map(U=>K[U]),Q),W=O.length*i;W>b&&(b=W);let V=this.scales.xPrimaryAes;p.push({id:"primary",width:j,height:W,left:0,top:0,title:Q,scale:V,values:O,valueLabels:K,usedAes:P}),h=j,m+=W+l,m>E&&(m=0,w=j+c)}if(Object.values(M).some(O=>O)&&n.inheritedAes){let{keys:O,label:Q,valueLabels:K}=n,j=f(O.map(q=>K[q]),Q),W=O.length*i;W>b&&(b=W,m=0,w+=h+c,h=j),j>h&&(h=j);let V=this.scales.xSecondaryAes,U=w,Z=m;p.push({id:"secondary",width:j,height:W,left:U,top:Z,title:Q,scale:V,values:O,valueLabels:K,usedAes:M})}let z=w+h+2*F8,$=b;this.legend={width:z,height:$,items:p}}render(e,t,n,r,a,i,l,s,c,f,p,h){var T;let{orientation:m,xAxis:w,yAxis:E,size:b}=t;this.updateChartSize(b,i,a,n.keys,m,c),this.updateViewport(m,n.keys,r.keys,i,a,E,s,c,p),this.createAxisLabels(i,w,n,m),this.createFacetTitles(i,l),this.updateCaptionsSize(m,i,w),this.updateChartDimensions(i,a,m,w,E),this.updateLegendSize(t.legend,n,r,s),this.createMainTitle(i,t.title),this.updateMargins(m,i),this.updateAesScales(n,r);let B=ie.jsx(Jyt,{settingsId:e,chartSettings:t,facetKeys:i,facetSettings:a,facetTitles:this.facetTitles,chartSizes:this.chartSizes,chartsDimensions:this.chartsDimensions,scales:this.scales,layersData:s,statsData:c,legendData:this.legend,margins:this.margins,columnsCount:this.columnsCount,keyColumn:f,xLabels:this.axisLabelsX,chartTitle:this.mainTitle,onlyPositive:h});this.component=B,(T=this.reactRoot)==null||T.render(B)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},o3t=i3t;function l3t(e,t,n,r=!1){let a=e.map(t).sort((i,l)=>i-l);if(r){let i=ar.find(a,l=>l>0);if(!i)throw Error("Group with all zeros in log scale");return a.map(l=>l===0?i:l).map(n)}return a.map(n)}var s3t=class{constructor(e,t,n,r,a,i,l,s,c,f,p=!0){ke(this,"lower");ke(this,"middle");ke(this,"upper");ke(this,"min");ke(this,"max");ke(this,"outliers");ke(this,"primaryGrouping");ke(this,"secondaryGrouping");ke(this,"key");ke(this,"boundsY");if(e.length===0)throw Error("Unable to create box on empty data");if(l>s||l>c||s>c)throw Error(`Invalid box bounds values: lower=${l}, middle=${s}, upper=${c}`);if(f<0)throw Error(`Invalid box whiskers coefficient: k=${f}. It should be positive`);let h=$=>Number($[t]);this.primaryGrouping=a===null?"":String(a),this.secondaryGrouping=i===null?"":String(i),this.key=`box_${this.primaryGrouping}_${this.secondaryGrouping}`;let m=$=>r==="log"?Math.log10($):$,w=$=>r==="log"?Math.pow(10,$):$,E=l3t(e,h,m,r==="log"),b=B0(E,l),B=B0(E,s),T=B0(E,c),P=T-b;this.upper=w(T),this.middle=w(B),this.lower=w(b),this.min=Math.max(oC(e,h),w(b-f*P)),this.max=Math.min(_h(e,h),w(T+f*P)),this.outliers=e.filter($=>h($)<this.min||h($)>this.max).map(($,O)=>({y:h($),data:$,id:String(n?$[n]:O)}));let[M=1/0,z=-1/0]=_A(this.outliers,$=>$.y);this.boundsY={min:p?Math.min(this.min,M):this.min,max:p?Math.max(this.max,z):this.max}}};function u3t(e,t,n,r,a,i,l,s){let c=1/0,f=-1/0;return{type:"box",geoms:t.reduce((p,h)=>{let m=h.join("_");return p[m]=[],n.forEach(w=>{r.forEach(E=>{let b=a.getRowsByGrouping([...h,w,E]);if(!b.length)return;let B=new s3t(b,i.value,(l==null?void 0:l.value)??null,s.scale,w,E,e.stat.lower,e.stat.medium,e.stat.upper,e.stat.k,e.aes.showOutliers);B.boundsY.min<c&&(c=B.boundsY.min),B.boundsY.max>f&&(f=B.boundsY.max),p[m].push(B)})}),p},{}),meta:{minY:c,maxY:f},aes:e.aes}}var DX=40;function c3t(e,t){return function(n){return t.map(function(r){return[r,Rs(n,a=>e(r-a))]})}}function f3t(e){return function(t){return 1/Math.sqrt(2*Math.PI)*Math.pow(Math.E,-.5*Math.pow(t/e,2))}}function d3t(e){let t=Rs(e);return Rs(e.map(n=>Math.pow(n-t,2)))}function A3t(e){return Math.sqrt(d3t(e))}function p3t(e){let t=B0(e,.25),n=(B0(e,.75)-t)/1.34,r=A3t(e);return 1.06*Math.min(r,n)*Math.pow(e.length,-1/5)}var h3t=class{constructor(e,t,n,r,a,i){ke(this,"getArea");ke(this,"getLine");ke(this,"maxDensity");ke(this,"primaryGrouping");ke(this,"secondaryGrouping");ke(this,"key");ke(this,"boundsY");if(e.length===0)throw Error("Unable to calculate violin on empty data");if(r<1)throw Error(`Unable to calculate violin with ${r} steps`);this.primaryGrouping=a===null?"":String(a),this.secondaryGrouping=i===null?"":String(i),this.key=`violin_${this.primaryGrouping}_${this.secondaryGrouping}`;let l=P=>t==="log"?Math.log10(P):P,s=P=>t==="log"?Math.pow(10,P):P,c=e.filter(P=>t==="log"&&Number(P)===0?(console.warn("Value = 0 on chart with log scale, it was removed from calculation"),!1):!0).map(l).sort((P,M)=>P-M),f=c[0],p=c[c.length-1],h=p-f,m=p3t(c),w=r!=="auto"?r:m/3>h/DX?DX:h/(m/3),E=n?f:f-3*m,b=n?p:p+3*m,B=Ua().domain([E,b]).ticks(w);this.boundsY={min:s(B[0]),max:s(B[B.length-1])};let T=c3t(f3t(m),B)(c).map(([P,M])=>[s(P),M]);this.maxDensity=_h(T,([,P])=>P),this.getArea=(P,M,z,$)=>{let O=P==="vertical",Q=$??this.maxDensity,K=Ua().domain([-Q,Q]).range([-z/2,z/2]);return O?TB().curve(O5).x0(j=>K(j[1])).x1(j=>K(-j[1])).y(j=>M(j[0]))(T):TB().curve(O5).y0(j=>K(j[1])).y1(j=>K(-j[1])).x(j=>M(j[0]))(T)},this.getLine=(P,M,z,$)=>{let O=P==="vertical",Q=$??this.maxDensity,K=Ua().domain([-Q,Q]).range([-z/2,z/2]);return V5().curve(O5).x(O?j=>K(j[1]):j=>M(j[0])).y(O?j=>M(j[0]):j=>K(j[1]))(T)+" "+V5().curve(O5).x(O?j=>K(-j[1]):j=>M(j[0])).y(O?j=>M(j[0]):j=>K(-j[1]))(T)}}};function v3t(e,t,n,r,a,i,l){let s=0,c=1/0,f=-1/0;return{type:"violin",geoms:t.reduce((p,h)=>{let m=h.join("_");return p[m]=[],n.forEach(w=>{r.forEach(E=>{let b=a.getColumnByGrouping([...h,w,E],i.value);if(!b.length)return;let B=new h3t(b,l.scale,e.stat.trim,e.stat.stepsCount,w,E);B.maxDensity>s&&(s=B.maxDensity),B.boundsY.min<c&&(c=B.boundsY.min),B.boundsY.max>f&&(f=B.boundsY.max),p[m].push(B)})}),p},{}),meta:{maxDensity:s,minY:c,maxY:f},aes:e.aes}}var m3t=30;function g3t(e,t){return function(n){return t.map(function(r){return Rs(n,a=>e(r-a))})}}function y3t(e){return function(t){return 1/Math.sqrt(2*Math.PI)*Math.pow(Math.E,-.5*Math.pow(t/e,2))}}function w3t(e){let t=Rs(e);return Rs(e.map(n=>Math.pow(n-t,2)))}function C3t(e){return Math.sqrt(w3t(e))}function b3t(e){let t=B0(e,.25),n=(B0(e,.75)-t)/1.34,r=C3t(e);return 1.06*Math.min(r,n)*Math.pow(e.length,-1/5)}var E3t=class{constructor(e,t,n,r,a,i){ke(this,"key");ke(this,"maxDensity");ke(this,"primaryGrouping");ke(this,"secondaryGrouping");ke(this,"points");ke(this,"boundsY");let l=m3t;if(e.length===0)throw Error("Unable to calculate sina on empty data");this.primaryGrouping=r===null?"":String(r),this.secondaryGrouping=a===null?"":String(a),this.key=`sina_${this.primaryGrouping}_${this.secondaryGrouping}`;let s=M=>n==="log"?Math.log10(M):M,c=M=>n==="log"?Math.pow(10,M):M,f=M=>Number(M[t.value]),p=e.filter(M=>n==="log"&&f(M)===0?(console.warn("Value = 0 on chart with log scale, it was removed from calculation"),!1):!0).sort((M,z)=>s(f(M))-s(f(z))),h=p.map(M=>s(f(M))),m=h[0],w=h[p.length-1],E=(w-m)/l,b=b3t(h),B=ar.range(m+E,w,E);this.boundsY={min:c(m),max:c(w)};let T=g3t(y3t(b),B)(h),P=Ua().domain(B).range(T).clamp(!0);this.maxDensity=_h(T),this.points=p.map((M,z)=>({x:f(M),y:P(s(f(M)))/this.maxDensity,id:String(z),jitter:i(),data:M}))}};function S3t(e,t,n,r,a,i,l){let s=0,c=1/0,f=-1/0,p=wL(1);return{type:"sina",geoms:t.reduce((h,m)=>{let w=m.join("_");return h[w]=[],n.forEach(E=>{r.forEach(b=>{let B=a.getRowsByGrouping([...m,E,b]);if(!B.length)return;let T=B;if(!e.aes.showOutliers){let M=O=>Number(O[i.value]),[z,$]=o2(B,l.scale,M);T=B.filter(O=>{let Q=M(O);return Q>=z&&Q<=$})}let P=new E3t(T,i,l.scale,E,b,p);P.maxDensity>s&&(s=P.maxDensity),P.boundsY.min<c&&(c=P.boundsY.min),P.boundsY.max>f&&(f=P.boundsY.max),h[w].push(P)})}),h},{}),meta:{maxDensity:s,minY:c,maxY:f},aes:e.aes}}function x3t(e,t,n,r,a,i,l,s){let c=1/0,f=-1/0,p=wL(1);return{type:"dot",geoms:t.reduce((h,m)=>{let w=m.join("_");return h[w]=[],n.forEach(E=>{r.forEach(b=>{let B=a.getRowsByGrouping([...m,E,b]);if(!B.length)return;let T=$=>Number($[i.value]),P=B.map(($,O)=>({y:T($),jitter:p(),id:String(s?$[s.value]:O),data:$}));if(!e.aes.showOutliers){let[$,O]=o2(B,l.scale,T);P=P.filter(({y:Q})=>Q>=$&&Q<=O)}let[M=1/0,z=-1/0]=_A(P,$=>$.y);M<c&&(c=M),z>f&&(f=z),h[w].push({key:`dots_${E}_${b}`,values:P,primaryGrouping:E,secondaryGrouping:b,boundsY:{min:M,max:z}})})}),h},{}),meta:{minY:c,maxY:f},aes:e.aes}}function B3t(e,t){if(t==="median")return aR(e,.5);if(t==="mean")return Rs(e);oA(t,`Unknown line points calculation for dot layer: ${t}`)}function k3t(e,t,n,r,a,i,l){let s=1/0,c=-1/0;return{type:"line",geoms:t.reduce((f,p)=>{let h=p.join("_");f[h]=[];let m=-1/0,w=1/0;return e.aes.showOutliers||([m,w]=o2(a.getColumnByGrouping([...p],i.value),l.scale)),r.forEach(E=>{let b={key:`${E}`,boundsY:{min:1/0,max:-1/0},dots:{}},B=!1,T=M=>l.scale==="log"?Math.log10(M):M,P=M=>l.scale==="log"?Math.pow(10,M):M;n.forEach(M=>{let z=a.getColumnByGrouping([...p,M,E],i.value);if(!z.length){B=!0;return}let $=z;if(e.aes.showOutliers||($=z.filter(Q=>Q>=m&&Q<=w)),!$.length){B=!0;return}let O=P(B3t($.map(T),e.pointsValues));b.dots[M]=O,O<s&&(s=O),O>c&&(c=O),O<b.boundsY.min&&(b.boundsY.min=O),O>b.boundsY.max&&(b.boundsY.max=O)}),B||f[h].push(b)}),f},{}),meta:{minY:s,maxY:c},aes:e.aes}}function T3t(e){let t=Rs(e);return Rs(e.map(n=>Math.pow(n-t,2)))}function vP(e){return Math.sqrt(T3t(e))}function _3t(e){return vP(e)/Math.sqrt(e.length)}function P3t(e){return 1.96*vP(e)}function D3t(e,t){if(t==="median")return aR(e,.5);if(t==="mean")return Rs(e);oA(t,"Unknown points calculation")}function M3t(e,t){if(t==="sd")return vP(e);if(t==="se")return _3t(e);if(t==="ci")return P3t(e);oA(t,"Unknown error interval calculation")}function H3t(e,t,n,r,a,i,l){let s=1/0,c=-1/0;return{type:"errorbar",geoms:t.reduce((f,p)=>{let h=p.join("_");f[h]=[];let m=E=>l.scale==="log"?Math.log10(E):E,w=E=>l.scale==="log"?Math.pow(10,E):E;return n.forEach(E=>{r.forEach(b=>{let B=a.getColumnByGrouping([...p,E,b],i.value);if(!B.length)return;let T=B.map(m),P=w(D3t(T,e.pointsValues)),M=w(M3t(T,e.interval)),z=P-M,$=P+M;z<s&&(s=z),$>c&&(c=$),f[h].push({key:`errorbar_${E}_${b}`,primaryGrouping:E,secondaryGrouping:b,value:P,min:z,max:$,boundsY:{min:z,max:$}})})}),f},{}),meta:{minY:s,maxY:c},aes:e.aes}}function I3t(e,t,n,r){if(e.length===0)throw Error("Unable to create bar on empty data");let a=s=>t==="log"?Math.log10(s):s,i=s=>t==="log"?Math.pow(10,s):s,l=s=>{let c=Number(s[n]);if(t==="log"&&c<1)throw Error(`Value < 1 in log scale: ${c}`);return c};switch(r){case"max":return _h(e,l)??l(e[0]);case"min":return oC(e,l)??l(e[0]);case"median":{let s=e.map(c=>Number(c[n])).map(a).sort((c,f)=>c-f);return i(B0(s,.5))}case"mean":return Rs(e,l)??l(e[0]);default:oA(r,`Unknown bar height function ${r}`)}}function R3t(e,t,n,r,a,i,l){let s=-1/0;return{type:"bar",geoms:t.reduce((c,f)=>{let p=f.join("_");return c[p]=[],n.forEach(h=>{r.forEach(m=>{let w=a.getRowsByGrouping([...f,h,m]);if(!w.length)return;let E=I3t(w,l.scale,i.value,e.height);s=Math.max(s,E),c[p].push({key:`bar_${h}_${m}`,value:E,primaryGrouping:h,secondaryGrouping:m,boundsY:{min:0,max:E}})})}),c},{}),meta:{minY:0,maxY:s},aes:e.aes}}function N3t(e,t,n,r,a,i){let l=-1/0;return{type:"stackedBar",geoms:t.reduce((s,c)=>{let f=c.join("_");return s[f]=[],n.forEach(p=>{let h=0,m=[];r.slice().reverse().forEach(w=>{let E=a.getRowsByGrouping([...c,p,w]);if(!E.length)return;let b=Lc(E,T=>Number(T[i.value])),B={y1:h,y2:h+b,key:w};m.push(B),h+=b}),l=Math.max(l,h),s[f].push({key:`stackedBar_${p}`,values:m,primaryGrouping:p,boundsY:{min:0,max:h}})}),s},{}),meta:{minY:0,maxY:l},aes:e.aes}}var MX=30;function $3t(e,t,n,r,a,i){let l=e.map(m=>n(a(m))),s=e.length,c=e.map(p),f=[];function p(m,w){return{key:i(m,w),value:a(m)}}let h=0;for(let m=1;m<s;++m){let w=l[h],E=l[m],b=l[m-1];if(E>=w+t){let B=Math.min((w+b)/2,E-t);l.fill(B,h,m),f.push({x:r(B),count:m-h,dots:c.slice(h,m)}),h=m}}return l.fill((l[h]+l[s-1])/2,h,s),f.push({x:r((l[h]+l[s-1])/2),count:s-h,dots:c.slice(h,s)}),f}var L3t=class{constructor(e,t,n,r,a,i,l,s,c,f){ke(this,"bins");ke(this,"primaryGrouping");ke(this,"secondaryGrouping");ke(this,"key");ke(this,"boundsY");this.primaryGrouping=n===null?"":String(n),this.secondaryGrouping=r===null?"":String(r),this.key=`binnedDots_${this.primaryGrouping}_${this.secondaryGrouping}`;let p=e.filter(h=>s(h)===0&&c==="log"?(console.warn(`Item with ${t} = 0 is not shown on chart with log scale`),!1):!0).sort((h,m)=>i(s(h))-i(s(m)));this.bins=$3t(p,a,i,l,s,(h,m)=>String(f?h[f.value]:m)),this.boundsY={min:this.bins[0].x,max:this.bins[this.bins.length-1].x}}};function F3t(e,t,n,r,a,i,l){let s=B=>l.scale==="log"?Math.log10(B):B,c=B=>l.scale==="log"?Math.pow(10,B):B,f=B=>Number(B[i.value]),p=1/0,h=-1/0,m=a.getRowsByGrouping([]),[w=f(m[0]),E=f(m[0])]=_A(m.filter(B=>Number(B[i.value])===0&&l.scale==="log"?(console.warn(`Item with ${i.value} = 0 is not shown on chart with log scale`),!1):!0),B=>Number(B[i.value])),b=Math.abs(s(w)-s(E))/MX;return{type:"binnedDots",geoms:t.reduce((B,T)=>{let P=T.join("_");return B[P]=[],n.forEach(M=>{r.forEach(z=>{let $=a.getRowsByGrouping([...T,M,z]);if(!$.length)return;let O=$;if(!e.aes.showOutliers){let[K,j]=o2($,l.scale,f);O=$.filter(W=>{let V=f(W);return V>=K&&V<=j})}let Q=new L3t(O,i.value,M,z,b,s,c,f,l.scale,e.keyColumn);Q.boundsY.min<p&&(p=Q.boundsY.min),Q.boundsY.max>h&&(h=Q.boundsY.max),B[P].push(Q)})}),B},{}),meta:{minY:Math.min(w,E,p),maxY:Math.max(w,E,h),binsCount:MX,hasKeyFromColumn:e.keyColumn!==null},aes:e.aes}}function V3t(e,t){if(t.length===2)return"secondary";if(e.length===2&&t.length<2)return"primary";throw Error("Too many groups for paired points layer")}function HX(e,t,n,r,a,i,l,s,c){let f=ar.groupBy(n,M=>M[a.value]),p=ar.groupBy(r,M=>M[a.value]),h=Object.keys(f),m=Object.keys(p);if(ar.uniq(h).length!==h.length||ar.uniq(m).length!==m.length)throw Error(`Non unique keys in groups ${e}, ${t} for paired points layer`);if(h.length!==m.length||ar.intersection(h,m).length!==h.length)throw Error(`Keys in groups ${e}, ${t} not match for paired points layer`);let w=M=>Number(M[i.value]),E=1/0,b=-1/0,B=!1,T=c==="log",P=h.map(M=>{let z=f[M][0],$=p[M][0],O=w(z),Q=w($);return(O===0||Q===0)&&(B=!0),E=Math.min(E,T&&O===0?1/0:O,T&&Q===0?1/0:Q),b=Math.max(b,T&&O===0?-1/0:O,T&&Q===0?-1/0:Q),{id:M,key1:{id:`${M}_${e}`,value:O,data:z},key2:{id:`${M}_${t}`,value:Q,data:$}}});if(!s){E=1/0,b=-1/0;let[M,z]=o2(n,c,w),[$,O]=o2(r,c,w);P=P.filter(({key1:Q,key2:K})=>Q.value<M||Q.value>z||K.value<$||K.value>O?!1:(E=Math.min(E,T&&Q.value===0?1/0:Q.value,T&&K.value===0?1/0:K.value),b=Math.max(b,T&&Q.value===0?-1/0:Q.value,T&&K.value===0?-1/0:K.value),!0))}return E=B?E/10:E,b=Math.max(b,E),{id:`${e}_${t}`,key1:e,key2:t,pairs:P.map(M=>({...M,key1:{...M.key1,value:M.key1.value===0?E:M.key1.value},key2:{...M.key2,value:M.key2.value===0?E:M.key2.value}})),grouping:l,boundsY:{min:E,max:b}}}function O3t(e,t,n,r,a,i,l){let s=V3t(n,r),c=1/0,f=-1/0;return{type:"pairedPoints",geoms:t.reduce((p,h)=>{let m=h.join("_");if(p[m]=[],s==="primary"){let[w,E]=n,b=a.getRowsByGrouping([...h,w]),B=a.getRowsByGrouping([...h,E]),T=HX(w,E,b,B,e.linkColumn,i,s,e.aes.showOutliers,l.scale);c=Math.min(c,T.boundsY.min),f=Math.max(f,T.boundsY.max),p[m].push(T)}else s==="secondary"&&n.forEach(w=>{let[E,b]=r,B=a.getRowsByGrouping([...h,w,E]),T=a.getRowsByGrouping([...h,w,b]),P=HX(E,b,B,T,e.linkColumn,i,s,e.aes.showOutliers,l.scale);c=Math.min(c,P.boundsY.min),f=Math.max(f,P.boundsY.max),p[m].push(P)});return p},{}),meta:{minY:c,maxY:f},aes:e.aes}}function IX(e,t){let n;if(e==t){n=new Array(t+1);for(let r=0;r<n.length;++r)n[r]=r+1}else if(e<t){n=new Array(t-e+1);for(let r=0;r<n.length;++r)n[r]=e+r}else{n=new Array(e-t+1);for(let r=0;r<n.length;++r)n[r]=e-r}return n}function l2(e,t){return ar.orderBy(e.map((n,r)=>[n,r]),([n])=>n,[t?"desc":"asc"]).map(([,n])=>n)}function Q3t(e){if(e.length<1)throw new Error("cummin requires at least one element");let t=new Array(e.length),n=e[0];for(let r=0;r<e.length;++r)e[r]<n&&(n=e[r]),t[r]=n;return t}function z3t(e){if(e.length<1)throw new Error("cummax requires at least one element");let t=new Array(e.length),n=e[0];for(let r=0;r<e.length;++r)e[r]>n&&(n=e[r]),t[r]=n;return t}function RX(e,t){if(e.length<1)throw new Error("pmin requires at least one element");return e.map(n=>Math.min(n,t))}function U3t(e){if(e.length<1)throw new Error("pAdjust requires at least one element");return Math.min(...e)}function G3t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=new Array(t);for(let r=0;r<t;++r){let a=e[r]*t;if(a>=1)n[r]=1;else if(0<=a)n[r]=a;else throw new Error(`${a} is outside [0, 1)`)}return n}function j3t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=l2(e,!1),r=n.slice(),a=new Array(t).fill(0);for(let f=0;f<t;++f)a[f]=(t-f)*e[n[f]];let i=l2(r,!1),l=z3t(a),s=RX(l,1),c=new Array(t);for(let f=0;f<t;++f)c[f]=s[i[f]];return c}function Y3t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=IX(t,t),r=l2(e,!1),a=new Array(t);for(let h=0;h<t;++h)a[h]=e[r[h]];let i=r.slice(),l=l2(i,!1),s=new Array(t),c=new Array(t),f=new Array(t);for(let h=0;h<t;++h)f[h]=a[h]*t/n[h];let p=U3t(f);s.fill(p),c.fill(p);for(let h=t;h>=2;--h){let m=IX(1,t-h+1);for(let B=0;B<t-h+1;++B)m[B]--;let w=h-1,E=new Array(w);for(let B=0;B<w;++B)E[B]=t-h+2+B-1;let b=h*a[E[0]]/2;for(let B=1;B<w;++B){let T=a[E[B]]*h/(2+B);T<b&&(b=T)}for(let B=0;B<t-h+1;++B)s[m[B]]=Math.min(a[m[B]]*h,b);for(let B=0;B<w;++B)s[E[B]]=s[t-h];for(let B=0;B<t;++B)c[B]<s[B]&&(c[B]=s[B])}for(let h=0;h<t;++h)s[h]=c[l[h]];return s}var W3t=class{constructor(e,t,n){this.ni=e,this.o=t,this.ro=n}result(e){let t=Q3t(e),n=RX(t,1),r=new Array(e.length);for(let a=0;a<e.length;++a)r[a]=n[this.ro[a]];return r}};function mP(e){let t=e.length,n=new Array(t),r=l2(e,!0);for(let i=0;i<t;++i){if(e[i]<0||e[i]>1)throw new Error("array["+i+"] = "+e[i]+" is outside [0, 1]");n[i]=t/(t-i)}let a=l2(r,!1);return new W3t(n,r,a)}function X3t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=mP(e),r=new Array(t);for(let a=0;a<t;++a)r[a]=n.ni[a]*e[n.o[a]];return n.result(r)}function K3t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=mP(e),r=new Array(t),a=0;for(let i=1;i<t+1;++i)a+=1/i;for(let i=0;i<t;++i)r[i]=a*n.ni[i]*e[n.o[i]];return n.result(r)}function Z3t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=mP(e),r=new Array(t);for(let a=0;a<t;++a)r[a]=(a+1)*e[n.o[a]];return n.result(r)}function NX(e,t){switch(t){case"BenjaminiHochberg":return X3t(e);case"BenjaminiYekutieli":return K3t(e);case"Bonferroni":return G3t(e);case"Hochberg":return Z3t(e);case"Holm":return j3t(e);case"Hommel":return Y3t(e);case null:return e;default:throw new Error(`Unknown p-value correction method: ${t}`)}}function J3t(e){let t=Math.abs(e),n=1/(1+t/2),r=n*Math.exp(-t*t-1.26551223+n*(1.00002368+n*(.37409196+n*(.09678418+n*(-.18628806+n*(.27886807+n*(-1.13520398+n*(1.48851587+n*(-.82215223+n*.17087277)))))))));return e>=0?r:2-r}function q3t(e){return .5*J3t(-e/Math.sqrt(2))}var e2t=class{constructor(e,t){this.value=e,this.position=t}getValue(){return this.value}getPosition(){return this.position}};function t2t(e){let t=new Array(e.length);for(let l=0;l<e.length;l++)t[l]=new e2t(e[l],l);let n=r2t(t);t.sort((l,s)=>l.getValue()-s.getValue());let r=new Array(t.length),a=1;r[t[0].getPosition()]=a;let i=[];i.push(t[0].getPosition());for(let l=1;l<t.length;l++)t[l].getValue()>t[l-1].getValue()&&(a=l+1,i.length>1&&$X(r,i),i=[]),i.push(t[l].getPosition()),r[t[l].getPosition()]=a;return i.length>1&&$X(r,i),n2t(r,n),r}function $X(e,t){let n=(2*e[t[0]]+t.length-1)/2;t.forEach(r=>{e[r]=n})}function n2t(e,t){t.forEach(n=>{e[n]=NaN})}function r2t(e){let t=[];for(let n=0;n<e.length;n++)isNaN(e[n].getValue())&&t.push(n);return t}var a2t=class{constructor(){ke(this,"SMALL_SAMPLE_SIZE",50)}mannWhitneyU(e,t){let n=[...e,...t],r=t2t(n),a=0;for(let s=0;s<e.length;s++)a+=r[s];let i=a-e.length*(e.length+1)/2,l=e.length*t.length-i;return Math.min(i,l)}mannWhitneyUTest(e,t,n){if(typeof n>"u")return e.length+t.length<=this.SMALL_SAMPLE_SIZE&&Object.keys(this.tiesMap(e,t)).length===0?this.mannWhitneyUTest(e,t,!0):this.mannWhitneyUTest(e,t,!1);let r=this.tiesMap(e,t),a=this.mannWhitneyU(e,t);if(n){if(Object.keys(r).length!==0)throw new Error;return this.exactP(e.length,t.length,a)}return this.approximateP(a,e.length,t.length,this.varU(e.length,t.length,r))}approximateP(e,t,n,r){let a=t*n/2;if(a==e)return 1;let i=-Math.abs(e-a+.5)/Math.sqrt(r);return 2*q3t(i)}exactP(e,t,n){let r=t*e;if(n>r)return 1;let a=n<r/2?n:r/2-n,i=0,l=0;for(;l<=a;)i+=this.uDensity(e,t,l),l++;return 2*i}uDensity(e,t,n){if(n<0||n>t*e)return 0;let r=this.uFrequencies(e,t);return r[Math.round(n+1)]/ar.sum(r)}uFrequencies(e,t){let n=Math.max(t,e);if(n>100)throw Error("n or m > 100");let r=Math.min(t,e),a=new Array(e*t+2),i=new Array(e*t+2);for(let s=1;s<a.length;s++)a[s]=s<=n+1?1:0;i[1]=0;let l=n;for(let s=2;s<=r;s++){i[s]=0,l=l+n;let c=l+2,f=1+l/2,p=s;for(let h=1;h<=f;h++){p++,c=c-1;let m=a[h]+i[h];a[h]=m,i[p]=m-a[c],a[c]=m}}return a}varU(e,t,n){let r=e*t;if(Object.keys(n).length===0)return r*(e+t+1)/12;let a=ar.sum(Object.values(n).map(l=>l*l*l-l)),i=e+t;return r/12*(i+1-a/(i*(i-1)))}tiesMap(e,t){let n={};for(let r=0;r<e.length;r++)n[e[r]]=n[e[r]]?n[e[r]]+1:1;for(let r=0;r<t.length;r++)n[t[r]]=n[t[r]]?n[t[r]]+1:1;for(let r in n)n[r]===1&&delete n[r];return n}};function gP(e,t,n){switch(t){case"ttest":{if(e.length>2)throw new Error("more than 2 datasets passed");if(n){if(e[0].length!==e[1].length)throw Error("Different size groups in paired test");return Rrt(e[0],e[1]).pValue}let r=qrt(e[0],e[1]).pValue;return isNaN(r)?1:r}case"anova":{let r=VQe(ar.flatten(e),ar.flatten(e.map((a,i)=>a.map(()=>String(i))))).pValue;return isNaN(r)?1:r}case"wilcoxon":{if(e.length>2)throw new Error("more than 2 datasets passed");if(n){if(e[0].length!==e[1].length)throw Error("Different size groups in paired test");return Jst(e[0],e[1]).pValue}let r=new a2t().mannWhitneyUTest(e[0],e[1]);return isNaN(r)?1:r}case"kruskalWallis":{let r=Clt(...e).pValue;return isNaN(r)?1:r}default:throw new Error("Unknown test method")}}function i2t(e){return e.slice(0,-1).reduce((t,n,r)=>t.concat(e.slice(r+1).map(a=>[n,a])),[])}function o2t(e,t,n,r,a){return{type:"stats",values:t.reduce((i,l)=>{let s=[];switch(e.statType){case"overall":{let c=n.map(p=>a.getColumnByGrouping([...l,p],r.value)).filter(p=>p.length>0);if(c.length<2)break;let f=gP(c,e.testMethod,e.paired);s=[[["overall"],f]];break}case"referenceGroup":{let c=e.referenceGroup===null?null:String(e.referenceGroup);if(c!==null&&!n.includes(c))throw new Error(`Reference group ${c} for ${e.testMethod} test is not in available groups`);let f=a.getColumnByGrouping([...l,c],r.value);if(f.length===0){s=[];break}let p=n.filter(m=>m!==c).map(m=>[m,a.getColumnByGrouping([...l,m],r.value)]).filter(([,m])=>m.length>0);if(p.length<2&&e.correctionMethod!==null)break;let h=NX(p.map(([,m])=>gP([f,m],e.testMethod,e.paired)),e.correctionMethod);s=p.map(([m],w)=>[[m],h[w]]);break}case"pairwise":{let c=i2t(n).map(([p,h])=>[[p,h],[a.getColumnByGrouping([...l,p],r.value),a.getColumnByGrouping([...l,h],r.value)]]).filter(([,[p,h]])=>p.length&&h.length);if(c.length<1)break;let f=NX(c.map(([,p])=>gP(p,e.testMethod,e.paired)),e.correctionMethod);s=c.map(([p],h)=>[p,f[h]]);break}default:throw new Error("Unknown statType")}return i[l.join("_")]=s,i},{}),meta:{statType:e.statType,testMethod:e.testMethod,format:e.format,ns:e.ns,significanceLevels:e.significanceLevels}}}var Q8="#3e9838",s2="21",u2=3,Yp=class{},LX=class extends Yp{constructor(t){super();ke(this,"type","box");ke(this,"stat",{upper:.75,medium:.5,lower:.25,k:1.5});ke(this,"aes",{showOutliers:!0,boxWidth:"auto",dotShape:s2,dotFill:Vt,dotSize:u2,lineColor:Vt,fillColor:Q8,lineWidth:1,lineShape:"solid",opacity:1});this.stat={...this.stat,...t.stat},this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="box"&&Object.keys(this.stat).every(n=>this.stat[n]===t.stat[n])}},FX=class extends Yp{constructor(t){super();ke(this,"type","violin");ke(this,"stat",{bandwidth:"auto",stepsCount:40,trim:!0});ke(this,"aes",{width:"auto",lineColor:Vt,fillColor:Q8,lineWidth:1,lineShape:"solid",opacity:1});this.stat={...this.stat,...t.stat},this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="violin"&&Object.keys(this.stat).every(n=>this.stat[n]===t.stat[n])}},VX=class extends Yp{constructor(t){super();ke(this,"type","dot");ke(this,"aes",{showOutliers:!0,jitter:.8,lineColor:"none",dotFill:Vt,dotShape:s2,dotSize:u2,opacity:1});this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="dot"&&this.aes.showOutliers===t.aes.showOutliers}},OX=class extends Yp{constructor(t){super();ke(this,"type","line");ke(this,"pointsValues");ke(this,"aes",{showOutliers:!0,lineWidth:1,lineShape:"solid",fillColor:"none",lineColor:Vt,dotShape:s2,dotSize:u2,opacity:1});this.pointsValues=t.pointsValues,this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="line"&&this.pointsValues===t.pointsValues}},QX=class extends Yp{constructor(t){super();ke(this,"type","errorbar");ke(this,"pointsValues");ke(this,"interval");ke(this,"aes",{showDots:!0,width:"auto",lineWidth:1,fillColor:"none",lineColor:Vt,dotShape:s2,dotSize:u2,opacity:1});this.pointsValues=t.pointsValues,this.interval=t.interval,this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="errorbar"&&this.pointsValues===t.pointsValues&&this.interval===t.interval}},zX=class extends Yp{constructor(t){super();ke(this,"type","bar");ke(this,"height");ke(this,"aes",{width:"auto",lineWidth:1,fillColor:"none",lineColor:Vt,opacity:1});this.height=t.height??"max",this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="bar"&&this.height===t.height}},UX=class extends Yp{constructor(t){super();ke(this,"type","stackedBar");ke(this,"aes",{width:"auto",lineWidth:1,fillColor:Q8,lineColor:"none",opacity:1});this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="stackedBar"}},GX=class extends Yp{constructor(t){super();ke(this,"type","binnedDots");ke(this,"method");ke(this,"position");ke(this,"keyColumn");ke(this,"aes",{showOutliers:!0,width:"auto",lineWidth:1,fillColor:"none",lineColor:Vt,opacity:1});this.method=t.method??"dotdensity",this.position=t.position??"stack",this.keyColumn=t.keyColumn??null,this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){var n,r;return t.type==="binnedDots"&&this.method===t.method&&this.position===t.position&&((n=this.keyColumn)==null?void 0:n.value)===((r=t.keyColumn)==null?void 0:r.value)}},jX=class extends Yp{constructor(t){super();ke(this,"type","pairedPoints");ke(this,"linkColumn");ke(this,"aes",{showOutliers:!0,lineWidth:1,lineColor:Vt,lineShape:"solid",dotFill:Vt,dotSize:u2,dotShape:s2,opacity:1});this.linkColumn=t.linkColumn,this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="pairedPoints"&&this.aes.showOutliers===t.aes.showOutliers&&this.linkColumn.value===t.linkColumn.value}},YX=class extends Yp{constructor(t){super();ke(this,"type","sina");ke(this,"aes",{showOutliers:!0,width:"auto",dotFill:Q8,dotSize:u2,dotShape:s2,opacity:1});this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="sina"&&this.aes.showOutliers===t.aes.showOutliers}},z8=class extends Yp{constructor(t){var n,r,a;super();ke(this,"type","stat");ke(this,"statType");ke(this,"testMethod");ke(this,"paired");ke(this,"ns");ke(this,"format");ke(this,"referenceGroup",null);ke(this,"correctionMethod",null);ke(this,"significanceLevels");this.statType=t.statType,this.testMethod=t.testMethod,this.paired=t.paired??!1,this.ns=t.ns??!0,this.format=t.format??"pValue",this.statType==="referenceGroup"&&(this.referenceGroup=t.referenceGroup??null),(this.statType==="referenceGroup"||this.statType==="pairwise")&&(this.correctionMethod=t.correctionMethod??null),this.significanceLevels={one:((n=t.significanceLevels)==null?void 0:n.one)??.05,two:((r=t.significanceLevels)==null?void 0:r.two)??.01,three:((a=t.significanceLevels)==null?void 0:a.three)??.001}}isEqualForCalculation(t){return t.type==="stat"&&Object.keys(this).every(n=>this[n]===t[n])}},WX=class{constructor(e){ke(this,"id");ke(this,"type","discrete");ke(this,"y");ke(this,"keyColumn");ke(this,"primaryGrouping");ke(this,"secondaryGrouping");ke(this,"facetSettings");ke(this,"facetBy");ke(this,"chartSettings");ke(this,"layers");var t,n,r,a,i,l,s,c;fgt.parse(e),this.id=ar.uniqueId("settings"),this.y=e.y,this.keyColumn=e.keyColumn??null,this.primaryGrouping=e.primaryGrouping??null,this.secondaryGrouping=e.secondaryGrouping??null,this.facetSettings={sharedX:!0,sharedY:!0,titlePosition:"left",...e.facetSettings},this.facetBy=e.facetBy??[],this.chartSettings={size:{width:((t=e==null?void 0:e.size)==null?void 0:t.width)??(this.facetBy.length?400:600),height:((n=e==null?void 0:e.size)==null?void 0:n.height)??(this.facetBy.length?250:350)},title:{position:"center",show:!0,...e.title,name:((r=e.title)==null?void 0:r.name)??"Chart"},orientation:e.orientation??"vertical",yAxis:{title:((a=e.y)==null?void 0:a.label)??e.y.value??"",scale:"linear",showGrid:!0,showTicks:!0,...e.yAxis},xAxis:{title:((l=(i=e.primaryGrouping)==null?void 0:i.columnName)==null?void 0:l.label)??((s=e.primaryGrouping)==null?void 0:s.columnName.value)??"",showGrid:!0,showTicks:!0,linesBetweenCategories:!0,labelsPosition:"center",...e.xAxis},frame:{type:((c=e.frame)==null?void 0:c.type)??"full"},legend:{show:!0,position:"right",...e.legend},tooltips:{box:{show:!0},boxOutliers:{show:!0},line:{show:!0},errorBar:{show:!0},dot:{show:!0},binnedDots:{show:!0},pairedPoints:{show:!0},stackedBar:{show:!0},...e.tooltips}},this.layers=e.layers.map(f=>{if(f.type==="box")return new LX(f);if(f.type==="violin")return new FX(f);if(f.type==="dot")return new VX(f);if(f.type==="line")return new OX(f);if(f.type==="errorbar")return new QX(f);if(f.type==="bar")return new zX(f);if(f.type==="stackedBar")return new UX(f);if(f.type==="stat")return new z8(f);if(f.type==="binnedDots")return new GX(f);if(f.type==="pairedPoints")return new jX(f);if(f.type==="sina")return new YX(f);oA(f,"Unknown layer type")}).filter(Boolean)}};function XX(e,t=null,n=null){let r=(t==null?void 0:t.value)??null,a=r===null?["null"]:e.getColumnCategories(r);return ar.intersection(n??a,a).map(String)}function KX(e){if(!e.length)return[];let t=[[]];return e.forEach(n=>{let r=[];n.forEach(a=>{r.push(...t.map(i=>[...i,a]))}),t=r}),t}function U8(e,t){if(!t)return{keys:["null"],value:null,label:"",valueLabels:{null:""},inheritedAes:null};let n=t.columnName.value,r=ar.uniqBy(e.rows,c=>c[n]),a=c=>String(c[n]),i=c=>t.columnName.valueLabels?String(c[t.columnName.valueLabels]):a(c),l=r.map(a),s=(t.order??l).map(String);return{keys:ar.intersection(s,l),value:n,label:t.columnName.label??n,valueLabels:r.reduce((c,f)=>(c[a(f)]=i(f),c),{}),inheritedAes:t.inheritedAes??null}}var l2t=class extends Tg{constructor(t,n){super(t,n);ke(this,"settings");ke(this,"chartRenderer",new o3t);ke(this,"calculatedData",null);this.settings=new WX(n)}mount(t){try{this.chartRenderer.init(t),this._updateData(),this._updateChart()}catch(n){n instanceof Error&&this.chartRenderer.renderError(n.message)}}unmount(){this.chartRenderer.clear()}updateSettingsAndData(t,n){try{let r=this.settings,a=this.data;this.settings=new WX(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){console.warn("no chart state for discrete")}export(){return this._updateChart(),l3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,l;return t.chartSettings.yAxis.scale!==n.chartSettings.yAxis.scale||(((r=t.primaryGrouping)==null?void 0:r.columnName.value)??"")!==(((a=n.primaryGrouping)==null?void 0:a.columnName.value)??"")||(((i=t.secondaryGrouping)==null?void 0:i.columnName.value)??"")!==(((l=n.secondaryGrouping)==null?void 0:l.columnName.value)??"")||t.facetBy.some((s,c)=>{var f;return s.value!==((f=n.facetBy[c])==null?void 0:f.value)})||t.layers.length!==n.layers.length||t.layers.some((s,c)=>!s.isEqualForCalculation(n.layers[c]))}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var l;return t.data[i].length!==((l=n.data[i])==null?void 0:l.length)})}_updateData(){let{chartSettings:t,y:n,keyColumn:r,facetBy:a,layers:i,facetSettings:l}=this.settings,{yAxis:s}=t,c=this.data.rows.every(B=>{let T=B[n.value];return T===null||!(Number(T)<0)}),f=U8(this.data,this.settings.primaryGrouping),p=U8(this.data,this.settings.secondaryGrouping),h=a.map(B=>B.value)??null,m=a.length?KX(a.map(B=>{var T;return XX(this.data,B,(T=l==null?void 0:l.order)==null?void 0:T[B.value])})):[["null"]];this.data.setGrouping([...h,f.value,p.value]);let w=m.reduce((B,T)=>(B[T.join("_")]=f.keys.filter(P=>this.data.getRowsByGrouping([...T,P]).length>0),B),{}),E=i.filter(B=>!(B instanceof z8)).map(B=>{if(B instanceof LX)return u3t(B,m,f.keys,p.keys,this.data,n,r,s);if(B instanceof FX)return v3t(B,m,f.keys,p.keys,this.data,n,s);if(B instanceof VX)return x3t(B,m,f.keys,p.keys,this.data,n,s,r);if(B instanceof OX)return k3t(B,m,f.keys,p.keys,this.data,n,s);if(B instanceof QX)return H3t(B,m,f.keys,p.keys,this.data,n,s);if(B instanceof zX)return R3t(B,m,f.keys,p.keys,this.data,n,s);if(B instanceof UX)return N3t(B,m,f.keys,p.keys,this.data,n);if(B instanceof GX)return F3t(B,m,f.keys,p.keys,this.data,n,s);if(B instanceof jX)return O3t(B,m,f.keys,p.keys,this.data,n,s);if(B instanceof YX)return S3t(B,m,f.keys,p.keys,this.data,n,s);throw new Error("Unknown layer type")}),b=i.filter(B=>B instanceof z8).map(B=>{if(f.value===null)throw new Error("Cannot calculate p-value without data grouping");return o2t(B,m,f.keys,n,this.data)});this.calculatedData={layersData:E,statsLayersData:b,primaryGrouping:f,secondaryGrouping:p,facetKeyLists:m,nonEmptyGroupsByFacets:w,onlyPositive:c}}_updateAesInData(){if(this.calculatedData===null)return;let{layers:t,facetBy:n,primaryGrouping:r,secondaryGrouping:a,facetSettings:i}=this.settings,l=t.filter(s=>!(s instanceof z8));for(let s=0;s<l.length;s++){let c=l[s];"aes"in c&&(this.calculatedData.layersData[s].aes=c.aes)}this.calculatedData.primaryGrouping=U8(this.data,r),this.calculatedData.secondaryGrouping=U8(this.data,a),this.calculatedData.facetKeyLists=n.length?KX(n.map(s=>{var c;return XX(this.data,s,(c=i==null?void 0:i.order)==null?void 0:c[s.value])})):[["null"]]}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,keyColumn:r,facetSettings:a}=this.settings;this.chartRenderer.render(t,n,this.calculatedData.primaryGrouping,this.calculatedData.secondaryGrouping,a,this.calculatedData.facetKeyLists.map(i=>i.join("_")),this.calculatedData.facetKeyLists,this.calculatedData.layersData,this.calculatedData.statsLayersData,r,this.calculatedData.nonEmptyGroupsByFacets,this.calculatedData.onlyPositive)}};function s2t(e){let t=JI(e),n=Rs(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function u2t(e){let t=Rs(e),[n,r]=_A(e);return t===void 0||n===void 0||r===void 0||r===n?a=>a:a=>(a-t)/(r-n)}function c2t(e,t){return e==="standardScaling"?s2t(t):e==="meanNormalization"?u2t(t):n=>n}function yP(e){if(!e.length)return[];let t=[[]];return e.forEach(n=>{let r=[];n.forEach(a=>{r.push(...t.map(i=>[...i,a]))}),t=r}),t}function f2t(e,t,n,r,a,i,l,s,c,f,p,h){let m=a.length?a.map(q=>e.getColumnCategories(q.value)):[["null"]],w=i.length?i.map(q=>e.getColumnCategories(q.value)):[["null"]],E=l.length?l.map(q=>e.getColumnCategories(q.value)):[["null"]],b=yP(m),B=yP(w),T=yP(E),P=b.map(q=>q.join("_")),M=B.map(q=>q.join("_")),z=T.map(q=>q.join("_")),$={meta:{facetKeys:P,xGroupKeys:M,yGroupKeys:z,xKeysByGroups:{},yKeysByGroups:{},xLabels:{},yLabels:{},xDataByKeys:{},yDataByKeys:{},facetKeyValues:P.reduce((q,oe,se)=>(q[oe]=b[se],q),{}),xGroupKeyValues:M.reduce((q,oe,se)=>(q[oe]=B[se],q),{}),yGroupKeyValues:z.reduce((q,oe,se)=>(q[oe]=T[se],q),{}),valueExtent:[1/0,-1/0]},facets:{}},O=t.valueLabels??t.value,Q=n.valueLabels??n.value,K=s.filter(q=>q.axis==="x").map(q=>q.valueColumn.value),j=s.filter(q=>q.axis==="y").map(q=>q.valueColumn.value),W=Object.values(c??{}).map(q=>q.value),V=Object.values(f??{}).map(q=>q.value),U=ar.uniq([...K,...W,O]),Z=ar.uniq([...j,...V,Q]);if(e.rows.forEach(q=>{let oe=a.length?a.map(Ae=>q[Ae.value]).join("_"):"null",se=i.length?i.map(Ae=>q[Ae.value]).join("_"):"null",Te=l.length?l.map(Ae=>q[Ae.value]).join("_"):"null",le=q[t.value],be=q[n.value],ge=q[r.value]??h;if(!(le===null||be===null||ge===null)){if($.facets[oe]||($.facets[oe]={xKeys:[],yKeys:[],xKeysByGroups:{},yKeysByGroups:{},cells:{}}),$.facets[oe].xKeysByGroups[se]||($.facets[oe].xKeysByGroups[se]=[]),$.facets[oe].yKeysByGroups[Te]||($.facets[oe].yKeysByGroups[Te]=[]),$.facets[oe].xKeys.push(le),$.facets[oe].yKeys.push(be),$.facets[oe].xKeysByGroups[se].push(le),$.facets[oe].yKeysByGroups[Te].push(be),$.facets[oe].cells[le]||($.facets[oe].cells[le]={}),$.meta.valueExtent[0]=Math.min(ge,$.meta.valueExtent[0]),$.meta.valueExtent[1]=Math.max(ge,$.meta.valueExtent[1]),$.facets[oe].cells[le][be])throw Error(`More than 1 value for x=${le}, y=${be}`);if($.meta.xLabels[le]&&String(q[O])!==$.meta.xLabels[le])throw Error(`More than 1 x-label value for x=${le}`);if($.meta.yLabels[be]&&String(q[Q])!==$.meta.yLabels[be])throw Error(`More than 1 y-label value for y=${be}`);$.meta.xLabels[le]=String(q[O]),$.meta.yLabels[be]=String(q[Q]),U.forEach(Ae=>{let Se=typeof $.meta.xDataByKeys[Ae]<"u",ze=Se&&typeof $.meta.xDataByKeys[Ae][le]<"u";if(Se||($.meta.xDataByKeys[Ae]={}),ze&&$.meta.xDataByKeys[Ae][le]!==q[Ae])throw Error(`More than 1 value for x = ${le} and column = ${Ae}`);ze||($.meta.xDataByKeys[Ae][le]=q[Ae])}),Z.forEach(Ae=>{let Se=typeof $.meta.yDataByKeys[Ae]<"u",ze=Se&&typeof $.meta.yDataByKeys[Ae][be]<"u";if(Se||($.meta.yDataByKeys[Ae]={}),ze&&$.meta.yDataByKeys[Ae][be]!==q[Ae])throw Error(`More than 1 value for y = ${be} and column = ${Ae}`);ze||($.meta.yDataByKeys[Ae][be]=q[Ae])}),$.facets[oe].cells[le][be]={id:`${le}_${be}`,x:le,y:be,value:ge,normalizedValue:ge,data:q}}}),P.forEach(q=>{let oe=$.facets[q];oe.xKeys=ar.uniq(oe.xKeys),oe.yKeys=ar.uniq(oe.yKeys),M.forEach(se=>{$.facets[q].xKeysByGroups[se]=ar.uniq($.facets[q].xKeysByGroups[se])}),z.forEach(se=>{$.facets[q].yKeysByGroups[se]=ar.uniq($.facets[q].yKeysByGroups[se])})}),p){let q=[1/0,-1/0];P.forEach(oe=>{let{xKeys:se,yKeys:Te,cells:le}=$.facets[oe],be=p.direction==="row"?se:Te,ge=p.direction==="row"?Te:se,Ae=p.direction==="row"?(Se,ze)=>{var Re;return(Re=le[Se])==null?void 0:Re[ze]}:(Se,ze)=>{var Re;return(Re=le[ze])==null?void 0:Re[Se]};ge.forEach(Se=>{let ze=[];be.forEach(Fe=>{var je;let Le=(je=Ae(Fe,Se))==null?void 0:je.value;Le!==void 0&&ze.push(Le)});let Re=c2t(p.method,ze);be.forEach(Fe=>{let Le=Ae(Fe,Se);Le!==void 0&&(Le.normalizedValue=Re(Le.value),q[0]=Math.min(Le.normalizedValue,q[0]),q[1]=Math.max(Le.normalizedValue,q[1]))})})}),$.meta.valueExtent=q}return $.meta.xKeysByGroups=M.reduce((q,oe)=>(q[oe]=ar.uniq(ar.flatten(P.map(se=>$.facets[se].xKeysByGroups[oe]))),q),{}),$.meta.yKeysByGroups=z.reduce((q,oe)=>(q[oe]=ar.uniq(ar.flatten(P.map(se=>$.facets[se].yKeysByGroups[oe]))),q),{}),$.meta.valueExtent[0]===1/0&&($.meta.valueExtent[0]=0),$.meta.valueExtent[1]===-1/0&&($.meta.valueExtent[1]=0),$}function ZX(e,t){let n=0;for(let r=0;r<e.length;r++)n+=(e[r]-t[r])*(e[r]-t[r]);return n}function JX(e,t){return Math.sqrt(ZX(e,t))}var qX=(e,t,n)=>{let r=0;for(let a of e)for(let i of t)r+=n[a][i];return r/e.length/t.length},d2t=(e,t,n)=>{let r=0;for(let a of e)for(let i of t)r=Math.max(r,n[a][i]);return r},A2t=(e,t,n)=>{let r=1/0;for(let a of e)for(let i of t)r=Math.min(r,n[a][i]);return r};function p2t(e){switch(e){case"average":return qX;case"complete":return d2t;case"single":return A2t;default:return qX}}function h2t(e){switch(e){case"euclidean":return JX;case"squaredEuclidean":return ZX;default:return JX}}function eK(e=[],t,n="euclidean",r="average"){let a=h2t(n),i=p2t(r),l=t.map(c=>t.map(f=>a(c,f))),s=e.map((c,f)=>({height:0,keys:[c],indexes:[f],children:[]}));for(let c=0;c<e.length&&!(c>=e.length-1);c++){let f=1/0,p=0,h=0;for(let w=0;w<s.length;w++)for(let E=w+1;E<s.length;E++){let b=i(s[w].indexes,s[E].indexes,l);b<f&&(f=b,p=w,h=E)}let m={keys:[...s[p].keys,...s[h].keys],indexes:[...s[p].indexes,...s[h].indexes],height:f,children:[s[p],s[h]]};s.splice(Math.max(p,h),1),s.splice(Math.min(p,h),1),s.push(m)}return s[0]}function v2t(e,t,n,r){let{facetKeys:a,xGroupKeys:i,yGroupKeys:l}=e.meta,s={};if(t&&r.sharedX)throw Error("Dendrogram on X axis is not available with shared by facets X axis");return a.forEach(c=>{let f={hierarchyX:[],hierarchyY:[]},p=e.facets[c];if(t){let h=[],m=[];i.forEach(w=>{let E=p.xKeysByGroups[w],b=p.yKeys,B=eK(E,E.map(T=>b.map(P=>{var M;return((M=p.cells[T][P])==null?void 0:M.normalizedValue)??t.fillNA})),t.distance,t.linkage);e.facets[c].xKeysByGroups[w]=B.keys,m.push(...B.keys),h.push(B)}),e.facets[c].xKeys=m,f.hierarchyX=h.map(w=>ub(w))}if(n){let h=[],m=[];l.forEach(w=>{let E=p.yKeysByGroups[w],b=p.xKeys,B=eK(E,E.map(T=>b.map(P=>{var M;return((M=p.cells[P][T])==null?void 0:M.normalizedValue)??n.fillNA})),n.distance,n.linkage);e.facets[c].yKeysByGroups[w]=B.keys,m.push(...B.keys),h.push(B)}),e.facets[c].yKeys=m,f.hierarchyY=h.map(w=>ub(w))}s[c]=f}),s}function m2t(e,t,n,r,a,i,l,s,c,f,p,h,m,w){let E=h.length>1&&(!c||l.includes(t.groupingPosition)),b=!c||l.includes(t.position),B=p.length>1&&(!s||l.includes(e.groupingPosition)),T=!s||l.includes(e.position),P=f.length>1,M=r.filter(se=>l.includes(se.position)||!s&&["left","right"].includes(se.position)||!c&&["top","bottom"].includes(se.position)),z=M.filter(se=>se.position==="left").length,$=M.filter(se=>se.position==="right").length,O=M.filter(se=>se.position==="top").length,Q=M.filter(se=>se.position==="bottom").length,K=e.showTicks?L8:0,j=t.showTicks?L8:0,W=T&&e.showTitle?$v:0,V=b&&t.showTitle?$v:0,U=T&&e.showAxisLabels&&m>q3?n.xAxisCaptions+K+e2:0,Z=b&&t.showAxisLabels&&w>q3?n.yAxisCaptions+j+e2:0,q=B&&e.showGroupLabels?n.xGroupCaptions:0,oe=E&&t.showGroupLabels?n.yGroupCaptions:0;return{left:{dendro:!(i!=null&&i.hidden)&&(i==null?void 0:i.position)==="left"?i.size:0,axisTitle:t.position==="left"?V:0,groups:t.groupingPosition==="left"?oe:0,axis:t.position==="left"?Z:0,annotations:z*Sd+(z&&t2)},right:{dendro:!(i!=null&&i.hidden)&&(i==null?void 0:i.position)==="right"?i.size:0,axisTitle:t.position==="right"?V:0,groups:t.groupingPosition==="right"?oe:0,axis:t.position==="right"?Z:0,annotations:$*Sd+($&&t2)},top:{facetTitle:P?uyt:0,dendro:!(a!=null&&a.hidden)&&(a==null?void 0:a.position)==="top"?a.size:0,axisTitle:e.position==="top"?W:0,groups:e.groupingPosition==="top"?q:0,axis:e.position==="top"?U:0,annotations:O*Sd+(O&&t2)},bottom:{dendro:!(a!=null&&a.hidden)&&(a==null?void 0:a.position)==="bottom"?a.size:0,axisTitle:e.position==="bottom"?W:0,groups:e.groupingPosition==="bottom"?q:0,axis:e.position==="bottom"?U:0,annotations:Q*Sd+(Q&&t2)}}}function g2t(e,t,n){return{left:i1.left.reduce((r,a,i)=>{let l=i>0?i1.left[i-1]:null,s=e.left[a];return r[a]={x:l?r[l].x-s:-s,y:0,width:s,height:n,isVisible:s>0},r},{}),right:i1.right.reduce((r,a,i)=>{let l=i>0?i1.right[i-1]:null,s=e.right[a];return r[a]={x:l?r[l].x+r[l].width:t,y:0,width:s,height:n,isVisible:s>0},r},{}),top:i1.top.reduce((r,a,i)=>{let l=i>0?i1.top[i-1]:null,s=e.top[a];return r[a]={x:0,y:l?r[l].y-s:-s,width:t,height:s,isVisible:s>0},r},{}),bottom:i1.bottom.reduce((r,a,i)=>{let l=i>0?i1.bottom[i-1]:null,s=e.bottom[a];return r[a]={x:0,y:l?r[l].y+r[l].height:n,width:t,height:s,isVisible:s>0},r},{})}}function wP(e,t,n){let r=(t-e)/n,a=ar.range(e,t-r/2,r);return a.push(t),a}function tK(e,t){let n=wP(0,1,e.length-1),r=Ua().domain(n).range(e),a=wP(0,1,t.length-1).map(i=>r(i));return nl().domain(t).range(a).unknown("#ccc")}function y2t(e,t,n,r,a,i){let l=wP(0,1,e.length-1),s=Ua().domain(l).range(e),c=[r,...l.filter(b=>b>r&&b<a),a],f=[a,...l.filter(b=>b>a&&b<i),i],p=(n-t)/2,h=c.map(b=>t+p*(b-r)/(a-r)),m=f.map(b=>(t+n)/2+p*(b-a)/(i-a)),w=c.map(b=>s(b)),E=f.map(b=>s(b));return Ua().domain(h.concat(m.slice(1))).range(w.concat(E.slice(1)))}function w2t(e,t,n,r){let a=e.filter(p=>p.showTitle&&(t.includes(p.position)||!n&&["left","right"].includes(p.position)||!r&&["top","bottom"].includes(p.position))),i=a.filter(p=>p.titlePosition==="left").map(p=>p.valueColumn.label??p.valueColumn.value),l=a.filter(p=>p.titlePosition==="right").map(p=>p.valueColumn.label??p.valueColumn.value),s=a.filter(p=>p.titlePosition==="top").map(p=>p.valueColumn.label??p.valueColumn.value),c=a.filter(p=>p.titlePosition==="bottom").map(p=>p.valueColumn.label??p.valueColumn.value),f=new Vs("bold 14px Arial");return{left:Math.max(...i.map(p=>f.getTextWidth(p))),right:Math.max(...l.map(p=>f.getTextWidth(p))),top:Math.max(...s.map(p=>f.getTextWidth(p))),bottom:Math.max(...c.map(p=>f.getTextWidth(p)))}}function C2t(e,t,n,r,a){let{facetKeys:i,xGroupKeys:l,yGroupKeys:s,xKeysByGroups:c,yKeysByGroups:f,xLabels:p,yLabels:h}=r.meta,m=e.xGroupLabels/180*Math.PI,w=e.yGroupLabels/180*Math.PI,E=e.xAxisLabels/180*Math.PI,b=e.yAxisLabels/180*Math.PI,B=0,T=0,P=e.xGroupLabels===45,M=e.xAxisLabels===45;if(P||M)if(!t.sharedX)i.forEach(O=>{let Q=l.find(Z=>r.facets[O].xKeysByGroups[Z].length>0);if(!Q)return;let K=r.facets[O].xKeysByGroups[Q],j=n.x[O],W=j>q3,V=K.length*j/2,U=p[K[0]];B=Math.max(B,(P?a.getTextWidth(Q)*Math.cos(m):0)-V,(M&&W?a.getTextWidth(U)*Math.cos(E):0)-j/2)});else{let O=l[0],Q=i[0];if(O){let K=c[O],j=n.x[Q],W=j>q3,V=K.length*j/2,U=p[K[0]];B=Math.max(B,(P?a.getTextWidth(O)*Math.cos(m):0)-V,(M&&W?a.getTextWidth(U)*Math.cos(E):0)-j/2)}}let z=e.yGroupLabels===45,$=e.yAxisLabels===45;if(z||$)if(!t.sharedY)i.forEach(O=>{let Q=ar.findLast(s,Z=>r.facets[O].yKeysByGroups[Z].length>0);if(!Q)return;let K=r.facets[O].yKeysByGroups[Q],j=n.y[O],W=j>q3,V=K.length*j/2,U=h[K[K.length-1]];T=Math.max(T,(z?a.getTextWidth(Q)*Math.cos(w):0)-V,($&&W?a.getTextWidth(U)*Math.cos(b):0)-j/2)});else{let O=s[s.length-1],Q=i[0];if(O){let K=f[O],j=n.y[Q],W=j>q3,V=K.length*j/2,U=h[K[K.length-1]];T=Math.max(T,(z?a.getTextWidth(O)*Math.cos(w):0)-V,($&&W?a.getTextWidth(U)*Math.cos(b):0)-j/2)}}return{xCaptionTail:B,yCaptionTail:T}}function nK(e,t,n,r){let a=[];return e%n===n-1&&a.push("right"),e%n===0&&a.push("left"),e<n&&a.push("top"),(Math.ceil((e+1)/n)===r||Math.ceil((e+1)/n)===r-1&&e%n>(t-1)%n)&&a.push("bottom"),a}function b2t(e,t,n,r,a){if(e){let s=Sd/2,c=n==="top"?-5:a+5;return{x:s,y:c,rotate:t==="left"?-90:90,anchor:t==="left"&&n==="top"?"start":"end"}}let i=n==="right"?r+5:-5,l=Sd/2;return{x:i,y:l,rotate:0,anchor:n==="right"?"start":"end"}}function G8({data:e,scales:t,stepX:n,stepY:r,x:a,y:i,annotation:l,showTitle:s,width:c,height:f,colorScale:p,aes:h,frame:m,xGroupKeys:w,yGroupKeys:E,xKeysByGroups:b,yKeysByGroups:B,setSelectedAnnotation:T}){let{position:P,titlePosition:M,valueColumn:z}=l,$=P==="left"||P==="right",O=($?t.y:t.x).domain(),Q=b2t($,P,M,c,f);return ie.jsxs("g",{transform:`translate(${a},${i})`,children:[O.map(K=>{let j=e==null?void 0:e[K],W=p.type==="continuous"?p.scale(Number(j)):p.scale(String(j)),V=$?0:t.x(K),U=$?t.y(K):0,Z=$?Sd:n,q=$?r:Sd;return ie.jsx("rect",{x:V,y:U,width:Z,height:q,fill:W,stroke:h.cellStrokeColor,onMouseOver:()=>T({x:a+V+Z,y:i+U+q/2,xKey:$?null:K,yKey:$?K:null,value:j,title:z.label??z.value}),onMouseLeave:()=>T(null)},K)}),m.type==="groups"&&!$&&w.map(K=>{let j=b[K].length;if(j===0)return null;let W=j*n,V=t.x(b[K][0]);return ie.jsx("rect",{x:V,width:W,height:Sd,stroke:Vt,fill:"none"},`${V}_${i}`)}),m.type==="groups"&&$&&E.map(K=>{let j=B[K].length;if(j===0)return null;let W=j*r,V=t.y(B[K][0]);return ie.jsx("rect",{y:V,width:Sd,height:W,stroke:Vt,fill:"none"},`${a}_${V}`)}),s&&ie.jsx("g",{fontWeight:"500",fontSize:"14px",transform:`translate(${Q.x},${Q.y}) rotate(${Q.rotate})`,children:ie.jsx("text",{textAnchor:Q.anchor,dominantBaseline:"central",children:z.label??z.value})})]})}function j8(e,t){return e.showTitle&&t.includes(e.titlePosition)}function E2t({sideElementBBoxes:e,annotations:t,annotationColorScales:n,cellsMeta:r,chartEdgeSides:a,sharedX:i,sharedY:l,width:s,height:c,scales:f,stepX:p,stepY:h,aes:m,frame:w,xGroupKeys:E,yGroupKeys:b,xKeysByGroups:B,yKeysByGroups:T,setSelectedAnnotation:P}){let M=t.filter(V=>a.includes(V.position)||!i&&["left","right"].includes(V.position)||!l&&["top","bottom"].includes(V.position)),z=M.filter(V=>V.position==="left"),$=M.filter(V=>V.position==="right"),O=M.filter(V=>V.position==="top"),Q=M.filter(V=>V.position==="bottom"),{xDataByKeys:K,yDataByKeys:j}=r,W={scales:f,stepX:p,stepY:h,width:s,height:c,aes:m,frame:w,xGroupKeys:E,yGroupKeys:b,xKeysByGroups:B,yKeysByGroups:T,setSelectedAnnotation:P};return ie.jsxs("g",{children:[z.map((V,U)=>ie.jsx(G8,{annotation:V,colorScale:n[V.id],data:j[V.valueColumn.value],showTitle:j8(V,a),x:e.left.annotations.x+U*Sd,y:e.left.annotations.y,...W},V.id)),$.map((V,U)=>ie.jsx(G8,{annotation:V,colorScale:n[V.id],data:j[V.valueColumn.value],showTitle:j8(V,a),x:e.right.annotations.x+U*Sd+t2,y:e.right.annotations.y,...W},V.id)),O.map((V,U)=>ie.jsx(G8,{annotation:V,colorScale:n[V.id],data:K[V.valueColumn.value],showTitle:j8(V,a),x:e.top.annotations.x,y:e.top.annotations.y+U*Sd,...W},V.id)),Q.map((V,U)=>ie.jsx(G8,{annotation:V,colorScale:n[V.id],data:K[V.valueColumn.value],showTitle:j8(V,a),x:e.bottom.annotations.x,y:e.bottom.annotations.y+U*Sd+t2,...W},V.id))]})}function S2t({sideElementBBoxes:e,xGroupKeys:t,yGroupKeys:n,xKeysByGroups:r,yKeysByGroups:a,xGroupKeyValues:i,yGroupKeyValues:l,scales:s,stepX:c,stepY:f,xAxis:p,yAxis:h,labelAngles:m,debug:w}){let E=e.top.groups.isVisible||e.bottom.groups.isVisible,b=e.top.groups.isVisible?e.top.groups:e.bottom.groups,B=e.left.groups.isVisible||e.right.groups.isVisible,T=e.left.groups.isVisible?e.left.groups:e.right.groups;return ie.jsxs("g",{children:[E&&ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:t.map(P=>{let M=r[P].length;if(M===0)return null;let z=m.xGroupLabels!==0,$=p.groupingPosition==="top",O=M*c,Q=s.x(r[P][0])+O/2,K=z?$?b.height:0:b.height/2,j=-m.xGroupLabels,W=z?$?"start":"end":"middle";return ie.jsxs("g",{transform:`translate(${Q},${K})`,children:[ie.jsx("text",{transform:`rotate(${j})`,dominantBaseline:"central",textAnchor:W,children:i[P].join(", ")}),w&&ie.jsx("rect",{x:-O/2,width:O,height:b.height,stroke:"black",fill:"none"})]},P)})}),B&&ie.jsx("g",{transform:`translate(${T.x},${T.y})`,children:n.map(P=>{let M=a[P].length;if(M===0)return null;let z=M*f,$=h.groupingPosition==="left",O=$?T.width:0,Q=s.y(a[P][0])+z/2,K=m.yGroupLabels!==0,j=m.yGroupLabels===45?-45:($?-1:1)*(90-m.yGroupLabels),W=K?$?"end":"start":"middle";return ie.jsxs("g",{transform:`translate(${O},${Q})`,children:[ie.jsx("text",{y:K?0:-T.width/2,transform:`rotate(${j})`,dominantBaseline:"central",textAnchor:W,children:l[P].join(", ")}),w&&ie.jsx("rect",{x:-T.width/2,y:-z/2,width:T.width,height:z,stroke:"black",fill:"none"})]},P)})})]})}function x2t({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:l,stepX:s,stepY:c,labelAngles:f,xLabels:p,yLabels:h}){let m=i.showTicks?L8:0,w=l.showTicks?L8:0,E=e.top.axis.isVisible||e.bottom.axis.isVisible,b=e.top.axisTitle.isVisible?e.top.axisTitle:e.bottom.axisTitle,B=e.top.axis.isVisible?e.top.axis:e.bottom.axis,T=e.left.axis.isVisible||e.right.axis.isVisible,P=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,M=e.left.axis.isVisible?e.left.axis:e.right.axis;return ie.jsxs("g",{children:[ie.jsxs("g",{children:[b.isVisible&&ie.jsxs("g",{transform:`translate(${b.x},${b.y})`,children:[ie.jsx("text",{x:b.width/2,y:b.height/2,textAnchor:"middle",dominantBaseline:"central",children:i.title}),t&&ie.jsx("rect",{width:b.width,height:b.height,stroke:Vt,fill:"none"})]}),E&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${B.x},${B.y})`,children:[n.map(z=>{let $=f.xAxisLabels!==0,O=i.position==="bottom",Q=O?0:B.height,K=O?Q+m:Q-m,j=O?K+e2:K-e2,W=a.x(z)+s/2,V=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:W,x2:W,y1:Q,y2:K,stroke:Vt}),ie.jsx("text",{x:W,y:j,textAnchor:$?O?"end":"start":"middle",transform:`rotate(${V},${W},${j})`,dominantBaseline:$?"central":O?"hanging":"auto",children:p[z]})]},z)}),t&&ie.jsx("rect",{width:B.width,height:B.height,stroke:Vt,fill:"none"})]})]}),ie.jsxs("g",{children:[P.isVisible&&ie.jsx("g",{transform:`translate(
15118
15118
  ${P.x+P.width/2},
15119
- ${P.y+P.height/2})`,children:ie.jsx("text",{transform:`rotate(${l.position==="left"?-90:90})`,dominantBaseline:"central",textAnchor:"middle",children:l.title})}),t&&ie.jsx("rect",{x:P.x,y:P.y,width:P.width,height:P.height,stroke:Vt,fill:"none"}),T&&ie.jsx("g",{fontSize:"14px",transform:`translate(${M.x},${M.y})`,children:r.map(z=>{let $=f.yAxisLabels!==0,O=l.position==="left",Q=-(90-f.yAxisLabels),K=f.yAxisLabels===0?"middle":O?"end":"start",j=$?"central":O?"auto":"hanging",W=O?M.width:0,V=O?W-w:W+w,U=O?V-e2:V+e2,Z=a.y(z)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:W,x2:V,y1:Z,y2:Z,stroke:Vt}),ie.jsx("text",{x:U,y:Z,textAnchor:K,transform:`rotate(${Q},${U},${Z})`,dominantBaseline:j,children:h[z]})]},z)})}),t&&ie.jsx("rect",{x:M.x,y:M.y,height:M.height,width:M.width,stroke:Vt,fill:"none"})]})]})}function B2t({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:l,stepX:s,stepY:c,xGroupKeys:f,yGroupKeys:p,xKeysByGroups:h,yKeysByGroups:m,xGroupKeyValues:w,yGroupKeyValues:E,labelAngles:b,xLabels:B,yLabels:T}){return ie.jsxs("g",{fontWeight:"500",children:[ie.jsx(x2t,{sideElementBBoxes:e,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:l,stepX:s,stepY:c,labelAngles:b,xLabels:B,yLabels:T,debug:t}),ie.jsx(S2t,{sideElementBBoxes:e,xGroupKeys:f,yGroupKeys:p,xKeysByGroups:h,yKeysByGroups:m,xGroupKeyValues:w,yGroupKeyValues:E,scales:a,stepX:s,stepY:c,xAxis:i,yAxis:l,labelAngles:b,debug:t})]})}function rK(e,t="top"){let{source:n,target:r}=e;return t==="top"||t==="bottom"?`M ${n.x},${n.y} L ${r.x},${n.y} L${r.x},${r.y}`:`M ${n.x},${n.y} L ${n.x},${r.y} L${r.x},${r.y}`}function aK(e,t,n,r,a){if(!n)return"";let i=n.aes[e];if(!s9(i))return i;let l=i.value,s=a[l],c=r[l][t.data.keys[0]];return t.data.keys.every(f=>c===r[l][f])?s(String(c))[e]:s.unknown()[e]}var iK={x:0,y:0,width:0,height:0};function k2t({dendrograms:e,sideElementBBoxes:t,xDataByKeys:n,yDataByKeys:r,aesScales:a}){let i=e.x.data,l=e.y.data,s=i?t[i.position].dendro:iK,c=l?t[l.position].dendro:iK;function f(h,m){return aK(h,m,i,n,a)}function p(h,m){return aK(h,m,l,r,a)}return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${s.x},${s.y})`,children:i&&!i.hidden&&e.x.trees.map((h,m)=>{let w=h.links(),E=h.descendants();return ie.jsxs("g",{children:[w.map(b=>{let B=i.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:rK(b,i.position),stroke:f("lineColor",B),strokeWidth:f("lineWidth",B),strokeDasharray:jA(f("lineShape",B)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),i.showNodes&&E.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:Vc(f("dotShape",b),f("dotSize",b),f("dotFill",b))},`${b.x},${b.y}`))]},m)})}),ie.jsx("g",{transform:`translate(${c.x},${c.y})`,children:l&&!l.hidden&&e.y.trees.map((h,m)=>{let w=h.links(),E=h.descendants();return ie.jsxs("g",{children:[w.map(b=>{let B=l.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:rK(b,l.position),stroke:p("lineColor",B),strokeWidth:p("lineWidth",B),strokeDasharray:jA(p("lineShape",B)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),l.showNodes&&E.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:Vc(p("dotShape",b),p("dotSize",b),p("dotFill",b))},`${b.x},${b.y}`))]},m)})})]})}function T2t({frame:e,width:t,height:n,xGroupKeys:r,yGroupKeys:a,xKeysByGroups:i,yKeysByGroups:l,scales:s,stepX:c,stepY:f}){return ie.jsxs("g",{children:[e.type==="full"&&ie.jsx("rect",{fill:"none",stroke:Vt,x:"0",y:"0",width:t,height:n}),e.type==="groups"&&r.map(p=>{let h=i[p].length;if(h===0)return null;let m=h*c,w=s.x(i[p][0]);return a.map(E=>{let b=l[E].length;if(b===0)return null;let B=b*f,T=s.y(l[E][0]);return ie.jsx("rect",{x:w,y:T,width:m,height:B,stroke:Vt,fill:"none"},`${w}_${T}`)})})]})}function CP(e){if(e===null)return"null";if(typeof e=="number"){let t=e>0?Math.floor(e):Math.ceil(e),n=e-t;return t+Number(n.toPrecision(2))}return e}function _2t(e,t=[]){let n=e.data,r=[`X: ${e.x}`,`Y: ${e.y}`,`Value: ${CP(e.value)}${e.value!==e.normalizedValue?` (${CP(e.normalizedValue)})`:""}`];for(let a of t)r.push(`${a.label}: ${n[a.valueLabels??a.value]}`);return r}function P2t(e){let t=[];return e.xKey&&t.push(`X: ${e.xKey}`),e.yKey&&t.push(`Y: ${e.yKey}`),t.push(`${e.title}: ${CP(e.value)}`),t}function D2t({dendrograms:e,facetKey:t,dimensions:n,scales:r,cells:a,xGroupKeys:i,yGroupKeys:l,xKeysByGroups:s,yKeysByGroups:c,colorScale:f,chartSettings:p,cellsMeta:h,stepX:m,stepY:w,sharedX:E,sharedY:b,annotations:B,annotationColorScales:T,dendrogramAesScales:P,aes:M,labelAngles:z,chartSizes:$,margins:O,tooltipsContainer:Q}){let[K,j]=ir.useState(null),[W,V]=ir.useState(null),{xAxis:U,yAxis:Z,tooltips:q}=p,{width:oe,height:se}=n.inner,{padding:Te,chartEdgeSides:le,sideElementBBoxes:be}=n,{xGroupKeyValues:ge,yGroupKeyValues:Ae,xLabels:Se,yLabels:ze}=h,Re=r.x.domain(),Fe=r.y.domain(),Le={left:O.left+n.left+Te.left,right:$.totalWidth-(O.left+n.left+Te.left),top:O.top+n.top+Te.top,bottom:$.totalHeight-(O.top+n.top+Te.top)},je=!1;return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:fyt,children:[ie.jsxs("g",{transform:`translate(${Te.left},${Te.top})`,children:[ie.jsx(E2t,{sideElementBBoxes:be,annotations:B,cellsMeta:h,annotationColorScales:T,sharedX:E,sharedY:b,chartEdgeSides:le,width:oe,height:se,scales:r,stepX:m,stepY:w,aes:M,frame:p.frame,xGroupKeys:i,yGroupKeys:l,xKeysByGroups:s,yKeysByGroups:c,setSelectedAnnotation:V}),ie.jsx(k2t,{dendrograms:e,sideElementBBoxes:be,xDataByKeys:h.xDataByKeys,yDataByKeys:h.yDataByKeys,aesScales:P}),be.top.facetTitle.isVisible&&ie.jsx("text",{x:be.top.facetTitle.x,y:be.top.facetTitle.y+be.top.facetTitle.height-cyt,fontWeight:"500",fontSize:"20px",children:h.facetKeyValues[t].join(", ")}),je,Re.map(ct=>Fe.map(Qe=>{var st;let Je=(st=a==null?void 0:a[ct])==null?void 0:st[Qe];return Je?ie.jsx("rect",{x:r.x(ct),y:r.y(Qe),width:m,height:w,stroke:M.cellStrokeColor,fill:Je.value===null?M.emptyCellColor:f(Je.normalizedValue),onMouseOver:()=>j(Je),onMouseLeave:()=>j(null)},Je?Je.id:`${ct}_${Qe}`):null})),ie.jsx(T2t,{frame:p.frame,xGroupKeys:i,yGroupKeys:l,xKeysByGroups:s,yKeysByGroups:c,scales:r,stepX:m,stepY:w,width:oe,height:se}),ie.jsx(B2t,{xAxis:U,yAxis:Z,scales:r,stepX:m,stepY:w,debug:je,sideElementBBoxes:be,xKeys:Re,yKeys:Fe,xGroupKeys:i,yGroupKeys:l,xKeysByGroups:s,yKeysByGroups:c,xGroupKeyValues:ge,yGroupKeyValues:Ae,labelAngles:z,xLabels:Se,yLabels:ze})]}),p.tooltips.show&&K&&ie.jsx(Fc,{content:_2t(K,q==null?void 0:q.content),x:r.x(String(K.x))+m/2,y:r.y(String(K.y))+w/2,offset:Re.length>1?m/2:0,active:!0,sideDistances:Le,container:Q}),p.tooltips.show&&W&&ie.jsx(Fc,{content:P2t(W),x:W.x,y:W.y,offset:0,active:!0,sideDistances:Le,container:Q})]})}var oK=14,Y8=12,lK=-12;function M2t({data:e,height:t}){let{continuousItems:n,discreteItems:r}=e,a=!1;return ie.jsxs("g",{fontSize:"12px",children:[ie.jsx("defs",{children:n.map(i=>ie.jsx("linearGradient",{id:i.id,gradientTransform:"rotate(90)",children:i.scale.domain().reverse().map(l=>{let s=i.scale.domain(),c=s[s.length-1]-s[0],f=c>0?100-(l-s[0])/c*100:0;return ie.jsx("stop",{offset:`${f}%`,stopColor:i.scale(l)},l)})},i.id))}),n.map(i=>ie.jsxs("g",{transform:`translate(${i.left},${i.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:lK,children:i.title}),ie.jsx("rect",{x:"0",y:"0",width:oK,height:t,stroke:Vt,fill:`url(#${i.id})`}),ie.jsx("g",{transform:`translate(${oK},0)`,children:i.values.map(l=>{let s=i.scale.domain(),c=s[s.length-1]-s[0],f=c>0?t-t*(l-s[0])/c:0;return ie.jsxs("g",{transform:`translate(0,${f})`,children:[ie.jsx("line",{x1:"0",x2:-4,stroke:Vt}),ie.jsx("text",{x:8,y:4,children:l})]},l)})}),a]},i.id)),r.map(i=>ie.jsxs("g",{transform:`translate(${i.left},${i.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:lK,children:i.title}),i.values.map((l,s)=>ie.jsxs("g",{transform:`translate(0, ${s*(Y8+4)})`,children:[ie.jsx("rect",{x:"0",y:"0",width:Y8,height:Y8,fill:i.scale(l),rx:"1",ry:"1",stroke:Vt}),ie.jsx("text",{x:Y8+8,y:10,children:l})]},l)),a]},i.id))]})}function H2t({margins:e,captionsSizes:t,settingsId:n,chartSettings:r,chartSizes:a,chartsDimensions:i,facetKeys:l,facetSettings:s,xGroupKeys:c,yGroupKeys:f,scales:p,colorScale:h,groupedCells:m,cellsMeta:w,step:E,annotations:b,annotationColorScales:B,legend:T,aes:P,dendrograms:M,dendrogramAesScales:z,columnsCount:$,labelAngles:O}){let[Q,K]=ir.useState(),j=ir.useRef(null);ir.useEffect(()=>{j.current&&K(j.current)},[]);let W=i[l[0]].padding,V=i[l[$-1]].padding,U=e.left+a.chartsWidth+F8,Z=e.top+W.top;return ie.jsx(a2,{dataId:n,children:ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${a.totalWidth} ${a.totalHeight}`,width:a.totalWidth,height:a.totalHeight,fontFamily:"Manrope",children:[ie.jsx("defs",{children:Dg}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(i2,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:W.left,rightPadding:V.right,chartsWidth:a.chartsWidth}),l.map(q=>{let{cells:oe,xKeysByGroups:se,yKeysByGroups:Te}=m[q];return ie.jsx(D2t,{dendrograms:M[q],captionsSizes:t,facetKey:q,dimensions:i[q],xGroupKeys:c,yGroupKeys:f,xKeysByGroups:s.sharedX?w.xKeysByGroups:se,yKeysByGroups:s.sharedY?w.yKeysByGroups:Te,sharedX:s.sharedX,sharedY:s.sharedY,scales:{x:p.x[q],y:p.y[q]},cells:oe,cellsMeta:w,stepX:E.x[q],stepY:E.y[q],colorScale:h,chartSettings:r,aes:P,annotations:b,annotationColorScales:B,dendrogramAesScales:z,labelAngles:O,margins:e,chartSizes:a,tooltipsContainer:Q},q)})]}),ie.jsx("g",{transform:`translate(${U},${Z})`,children:ie.jsx(M2t,{data:T,height:a.chartHeight})}),ie.jsx("g",{ref:j})]})})}function sK(e,t,n){function r(a){a[n]=t(a.data.height),a.children&&a.children.forEach(r)}r(e)}function uK(e,t,n,r=n){function a(i){i[r]=i[n]+t,i.children&&i.children.forEach(a)}a(e)}var I2t=(e,t)=>{let n=Math.min(...t),r=Math.max(...t);if(n===r){let l=e%2===0?[]:[n];for(let s=1;s<e/2+1;s++)l.push(n+s),l.unshift(n-s);return l}if(e<2)return[n,r];let a=(r-n)/(e-1),i=[];for(let l=0;l<e-1;l++)i.push(n+a*l);return i.push(r),i};function cK(e,t,n){let r=n;return e&&(e.colorRange&&(r=e.colorRange),e.method==="standardScaling"&&(r=[-2,2]),e.method==="meanNormalization"&&(r=[-.75,.75])),I2t(t,r)}var R2t=class{constructor(){ke(this,"reactRoot",null);ke(this,"parentNode",null);ke(this,"rootNode",null);ke(this,"component",ie.jsx(ie.Fragment,{}));ke(this,"chartsDimensions",{});ke(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});ke(this,"margins",{top:Mg,bottom:Mg,left:Mg,right:Mg});ke(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xGroupCaptions:$v,yGroupCaptions:$v,xCaptionTail:0,yCaptionTail:0});ke(this,"labelAngles",{xAxisLabels:0,yAxisLabels:0,xGroupLabels:0,yGroupLabels:0});ke(this,"columnsCount",1);ke(this,"rowsCount",1);ke(this,"scales",{x:{null:nl().domain(["null"]).range([1])},y:{null:nl().domain(["null"]).range([1])}});ke(this,"step",{x:{},y:{}});ke(this,"colorScale",Ua().domain([0,1]).range(["white","black"]));ke(this,"annotationColorScales",{});ke(this,"dendrogramAesScales",{});ke(this,"legend",{width:0,height:0,discreteItems:[],continuousItems:[]});ke(this,"dendrograms",{})}clear(){var e;this.parentNode&&this.rootNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),this.parentNode=null,this.rootNode=null),setTimeout(()=>{var t;(t=this.reactRoot)==null||t.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.reactRoot=Fh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Mg,bottom:Mg,left:Mg,right:this.legend.width},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartsHeight+this.margins.bottom,this.legend.height)}updateLegendSize(e,t,n,r,a){if(!t.show){this.legend={width:0,height:0,continuousItems:[],discreteItems:[]};return}let i=16,l=48,s=24,c=[],f=[],p=0,h=0,m=0,w=this.chartSizes.chartsHeight,E=this.chartSizes.chartsHeight;if(e==="continuous"){let T=this.colorScale,P=P8(T,a),M=r.label??r.value;c.push({id:"heatmapValue",width:M8(P,M),height:this.chartSizes.chartHeight,left:0,top:0,scale:T,values:P,title:M}),m=0,h=c[0].width,p+=h+s}else if(e==="discrete"){let T=this.colorScale,P=r.label??r.value,M=sP(T,P),z=T.domain(),$=z.length*i;if(m+$>E)w=Math.max(w,$),m=$+l,p+=h+s,h=M,f.push({id:"heatmapValue",width:M,height:$,left:p,top:0,title:P,scale:T,values:z});else{M>h&&(h=M);let O=m;f.push({id:"heatmapValue",width:M,height:$,left:p,top:O,title:P,scale:T,values:z}),m+=$+l}}n.filter(T=>T.type==="continuous").forEach(T=>{let P=this.chartSizes.chartHeight,M=this.annotationColorScales[T.id].scale,z=P8(M,a),$=T.valueColumn.label??T.valueColumn.value,O=M8(z,$),Q=p;c.push({id:T.id,width:O,height:P,left:Q,top:0,title:$,scale:M,values:z}),p+=O+s,m=0}),n.filter(T=>T.type==="discrete").forEach(T=>{let P=this.annotationColorScales[T.id].scale,M=T.valueColumn.label??T.valueColumn.value,z=sP(P,M),$=P.domain(),O=$.length*i;if(m+O>E)w=Math.max(w,O),p+=h+s,h=z,m=O+l,f.push({id:T.id,width:z,height:O,left:p,top:0,title:M,scale:P,values:$});else{z>h&&(h=z);let Q=m;f.push({id:T.id,width:z,height:O,left:p,top:Q,title:M,scale:P,values:$}),m+=O+l}});let b=p+h+2*F8,B=w;this.legend={width:b,height:B,continuousItems:c,discreteItems:f}}updateCaptionsSize(e,t,n,r){let a=new Vs("bold 14px Arial"),{xGroupKeys:i,yGroupKeys:l,xKeysByGroups:s,yKeysByGroups:c,xLabels:f,yLabels:p}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle,xGroupLabels:t.groupLabelsAngle,yGroupLabels:n.groupLabelsAngle};let h=ar.flatten(Object.values(s)),m=ar.flatten(Object.values(c)),w=h.map(Q=>a.getTextWidth(f[Q])),E=m.map(Q=>a.getTextWidth(p[Q])),b=i.map(Q=>a.getTextWidth(Q)),B=l.map(Q=>a.getTextWidth(Q)),{xCaptionTail:T,yCaptionTail:P}=C2t(this.labelAngles,r,this.step,e,a),M=this.labelAngles.xGroupLabels/180*Math.PI,z=this.labelAngles.yGroupLabels/180*Math.PI,$=this.labelAngles.xAxisLabels/180*Math.PI,O=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:T,yCaptionTail:P,xGroupCaptions:Math.max(...b,0)*Math.sin(M)||$v,yGroupCaptions:Math.max(...B,0)*Math.sin(z)||$v,xAxisCaptions:Math.max(...w,0)*Math.sin($)||$v,yAxisCaptions:Math.max(...E,0)*Math.sin(O)||$v}}updateChartDimensions(e,t,n,r,a,i,l,s,c,f){let p=t.length,h=Math.min(a.nRows??p,p),m=Math.min(a.nCols??p,p);this.columnsCount=a.nRows?Math.ceil(p/h):m,this.rowsCount=Math.ceil(p/this.columnsCount);let{width:w,height:E}=e,{sharedX:b,sharedY:B}=a;this.chartsDimensions={};let T=0,P=0;t.forEach(($,O)=>{let Q=O%this.columnsCount+1,K=nK(O,t.length,this.columnsCount,this.rowsCount),j=this.step.x[$],W=this.step.y[$],V=m2t(i,l,this.captionsSizes,s,c,f,K,b,B,t,n,r,j,W),U=w2t(s,K,b,B);function Z(le){return Math.max(i1[le].reduce((be,ge)=>be+V[le][ge],0),U[le],syt)}let q={left:Z("left"),right:Z("right"),top:Z("top"),bottom:Z("bottom")};q.left<this.captionsSizes.xCaptionTail&&(q.left=this.captionsSizes.xCaptionTail),q.bottom<this.captionsSizes.yCaptionTail&&(q.bottom=this.captionsSizes.yCaptionTail);let oe=g2t(V,w,E),se=w+q.left+q.right,Te=E+q.top+q.bottom;this.chartsDimensions[$]={left:T,top:P,inner:{width:w,height:E},outer:{width:se,height:Te},padding:q,sideElementBBoxes:oe,chartEdgeSides:K},T+=se,Q===this.columnsCount&&(T=0,P+=Te)});let M=t.slice(0,this.columnsCount).reduce(($,O)=>$+this.chartsDimensions[O].outer.width,0),z=t.filter(($,O)=>O%this.columnsCount===0).reduce(($,O)=>$+this.chartsDimensions[O].outer.height,0);this.chartSizes.chartsWidth=M,this.chartSizes.chartsHeight=z}updateChartsSizes(e){let{width:t,height:n}=e;this.chartSizes.chartWidth=t,this.chartSizes.chartHeight=n}updateScales(e,t,n,r,a){let{width:i,height:l}=a,{meta:s,facets:c}=t,{sharedX:f,sharedY:p}=r;e.forEach(h=>{let m=c[h],{xGroupKeys:w,yGroupKeys:E}=s,{xKeysByGroups:b}=f?s:m,{yKeysByGroups:B}=p?s:m,T=w.map(Z=>b[Z].length),P=E.map(Z=>B[Z].length),M=T.reduce((Z,q)=>Z+q,0),z=P.reduce((Z,q)=>Z+q,0),$=(i-(T.filter(Z=>Z>0).length-1)*n)/M,O=(l-(P.filter(Z=>Z>0).length-1)*n)/z,Q=[],K=[],j=0;w.forEach(Z=>{let q=b[Z];K.push(...q),q.forEach(()=>{Q.push(j),j+=$}),q.length>0&&(j+=n)});let W=[],V=[],U=0;E.forEach(Z=>{let q=B[Z];V.push(...q),q.forEach(()=>{W.push(U),U+=O}),q.length>0&&(U+=n)}),this.scales.x[h]=nl().domain(K).range(Q),this.scales.y[h]=nl().domain(V).range(W),this.step.x[h]=$,this.step.y[h]=O})}updateAesScale(e,t,n,r,a,i,l){if(e==="continuous")n.valueColors?this.colorScale=Ua().domain(n.valuesByColors??cK(l,n.valueColors.length,t)).range(n.valueColors):n.colorsList&&(this.colorScale=Ua().domain(cK(l,n.colorsList.length,t)).range(n.colorsList));else if(n.colorsMap){let f=Object.entries(n.colorsMap);this.colorScale=nl().domain(f.map(p=>p[0])).range(f.map(p=>p[1])).unknown("#ccc")}else n.colorsList&&(this.colorScale=tK(n.colorsList,i.map(String)));let{xDataByKeys:s,yDataByKeys:c}=a.meta;r.forEach(f=>{let{colors:p,type:h,axis:m,valueColumn:w}=f,E=(m==="x"?s:c)[w.value];if(h==="discrete"){let b=ar.uniq(Object.values(E).map(String)).sort();this.annotationColorScales[f.id]={type:"discrete",scale:tK(p,b)}}else{let b=Object.values(E).map(Number);if(!b.length)return;let[B=b[0],T=b[0]]=_A(b);this.annotationColorScales[f.id]={type:"continuous",scale:y2t(p,B,T,0,.5,1)}}})}updateDendrogram(e,t,n,r,a,i,l){e.forEach(s=>{this.dendrograms[s]={x:{trees:[],data:i},y:{trees:[],data:l}};let{xKeysByGroups:c,yKeysByGroups:f}=r[s],{hierarchyX:p,hierarchyY:h}=a[s],m=Math.max(...p.map(E=>E.data.height)),w=Math.max(...h.map(E=>E.data.height));i&&(this.dendrograms[s].x.trees=p.map((E,b)=>{let B=t[b],T=c[B];fB().separation(()=>1).size([T.length*this.step.x[s],i.size])(E);let P=E,M=Ua().domain(i.position==="top"?[0,m]:[m,0]).range([i.size,0]);return sK(P,M,"y"),uK(P,this.scales.x[s](T[0]),"x"),P}),this.dendrograms[s].x.data=i),l&&(this.dendrograms[s].y.trees=h.map((E,b)=>{let B=n[b],T=f[B];fB().separation(()=>1).size([T.length*this.step.y[s],l.size])(E);let P=E,M=Ua().domain(l.position==="left"?[0,w]:[w,0]).range([l.size,0]);return uK(P,this.scales.y[s](T[0]),"x","y"),sK(P,M,"x"),P}),this.dendrograms[s].y.data=l)})}updateDendrogramAesScales(e){if(!e)return;let t=Object.keys(e);this.dendrogramAesScales=t.reduce((n,r)=>{let a=e[r],i=Object.keys(a);return n[r]=nl().domain(i).range(i.map(l=>({...gX,...a[l]}))).unknown(gX),n},{})}render(e,t,n,r,a,i,l,s,c,f,p,h,m){var j;let{meta:w,facets:E}=a,{facetKeys:b,xGroupKeys:B,yGroupKeys:T,valueExtent:P}=w,{xAxis:M,yAxis:z,title:$,size:O,valueType:Q}=t;this.updateChartsSizes(O),this.updateAesScale(Q,P,r,i,a,h,m),this.updateScales(b,a,r.groupGap,n,O),this.updateCaptionsSize(a,M,z,n),this.updateChartDimensions(O,b,B,T,n,M,z,i,s,c),this.updateLegendSize(Q,t.legend,i,l,P),this.updateMargins($),this.updateDendrogram(b,B,T,E,f,s,c),this.updateDendrogramAesScales(p);let K=ie.jsx(H2t,{aes:r,annotations:i,annotationColorScales:this.annotationColorScales,captionsSizes:this.captionsSizes,cellsMeta:w,columnsCount:this.columnsCount,chartsDimensions:this.chartsDimensions,chartSettings:t,chartSizes:this.chartSizes,colorScale:this.colorScale,dendrogramAesScales:this.dendrogramAesScales,dendrograms:this.dendrograms,facetKeys:b,facetSettings:n,groupedCells:E,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step,xGroupKeys:B,yGroupKeys:T});this.component=K,(j=this.reactRoot)==null||j.render(K)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},N2t=R2t,bP={lineColor:Vt,dotShape:"21",dotFill:Vt,dotSize:3,lineShape:"solid",lineWidth:1},fK={size:150,distance:"euclidean",linkage:"average",fillNA:0,showNodes:!0,hidden:!1,edgeInheritance:"up",aes:bP},dK=class{constructor(e){ke(this,"id");ke(this,"type","heatmap");ke(this,"facetSettings");ke(this,"xColumn");ke(this,"xGroupBy");ke(this,"yColumn");ke(this,"yGroupBy");ke(this,"valueColumn");ke(this,"facetBy");ke(this,"normalization");ke(this,"chartSettings");ke(this,"aes");ke(this,"annotations");ke(this,"dendrogramX");ke(this,"dendrogramY");ke(this,"inheritedDendrogramAes");ke(this,"NAValueAs");var t,n,r,a,i,l,s,c,f,p,h,m,w;if(bgt.parse(e),this.id=ar.uniqueId("settings"),this.facetSettings={sharedX:(e.facetBy??[]).length>0,sharedY:(e.facetBy??[]).length>0,...e.facetSettings},this.xColumn=e.xColumn,this.xGroupBy=e.xGroupBy??[],this.yColumn=e.yColumn,this.yGroupBy=e.yGroupBy??[],this.valueColumn=e.valueColumn,this.facetBy=e.facetBy??[],this.chartSettings={title:{position:"left",show:!0,...e.title,name:((t=e.title)==null?void 0:t.name)??"Chart"},size:{width:((n=e==null?void 0:e.size)==null?void 0:n.width)??(this.facetBy.length?400:600),height:((r=e==null?void 0:e.size)==null?void 0:r.height)??(this.facetBy.length?250:350)},frame:{type:((a=e.frame)==null?void 0:a.type)??"none"},valueType:e.valueType??"continuous",yAxis:{title:e.yColumn.label??e.yColumn.value,showTicks:!0,showTitle:!0,showAxisLabels:!0,showGroupLabels:!0,position:"left",groupingPosition:"left",axisLabelsAngle:90,groupLabelsAngle:0,...e.yAxis},xAxis:{title:e.xColumn.label??e.xColumn.value,showTicks:!0,showTitle:!0,showAxisLabels:!0,showGroupLabels:!0,position:"bottom",groupingPosition:"bottom",axisLabelsAngle:90,groupLabelsAngle:0,...e.xAxis},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.normalization=this.chartSettings.valueType==="continuous"?e.normalization??null:null,this.NAValueAs=e.NAValueAs??null,this.aes={colorsList:((i=e.aes)==null?void 0:i.colorsList)??["black","white","red"],colorsMap:((l=e.aes)==null?void 0:l.colorsMap)??null,valueColors:((s=e.aes)==null?void 0:s.valueColors)??null,valuesByColors:((c=e.aes)==null?void 0:c.valuesByColors)??null,cellStrokeColor:((f=e.aes)==null?void 0:f.cellStrokeColor)??"none",groupGap:((p=e.aes)==null?void 0:p.groupGap)??3,emptyCellColor:((h=e.aes)==null?void 0:h.emptyCellColor)??"white"},this.annotations=(e.annotations??[]).map(E=>E.axis==="x"?{id:ar.uniqueId("annotation"),axis:"x",valueColumn:E.valueColumn,position:E.position??this.chartSettings.xAxis.position,titlePosition:E.titlePosition??"right",showTitle:E.showTitle??!0,type:E.type,colors:E.colors??["white","black"]}:{id:ar.uniqueId("annotation"),axis:"y",valueColumn:E.valueColumn,position:E.position??this.chartSettings.yAxis.position,titlePosition:E.titlePosition??"top",showTitle:E.showTitle??!0,type:E.type,colors:E.colors??["white","black"]}),e.valueType==="discrete"&&(e.dendrogramX||e.dendrogramY))throw Error("Dendrogram is not available with discrete cells values");this.dendrogramX=e.dendrogramX?{...fK,position:"top",...e.dendrogramX,aes:{...bP,...(m=e.dendrogramX)==null?void 0:m.aes}}:null,this.dendrogramY=e.dendrogramY?{...fK,position:"left",...e.dendrogramY,aes:{...bP,...(w=e.dendrogramY)==null?void 0:w.aes}}:null,this.inheritedDendrogramAes=e.inheritedDendrogramAes??null}},$2t=class extends Tg{constructor(t,n){super(t,n);ke(this,"settings");ke(this,"chartRenderer",new N2t);ke(this,"calculatedData",null);this.settings=new dK(n)}mount(t){try{this.chartRenderer.init(t),this._updateData(),this._updateChart()}catch(n){n instanceof Error&&this.chartRenderer.renderError(n.message)}}unmount(){this.chartRenderer.clear()}updateSettingsAndData(t,n){try{let r=this.settings,a=this.data;this.settings=new dK(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){console.warn("no chart state for heatmap")}export(){return this._updateChart(),l3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var $,O,Q,K,j,W,V,U,Z,q,oe,se;let{xColumn:r,yColumn:a,valueColumn:i,xGroupBy:l,yGroupBy:s,facetBy:c,annotations:f,chartSettings:p,facetSettings:h,dendrogramX:m,dendrogramY:w,normalization:E,NAValueAs:b}=n,B=Object.values((($=t.dendrogramX)==null?void 0:$.aes)||{}).filter(s9),T=Object.values((m==null?void 0:m.aes)||{}).filter(s9),P=Object.values(((O=t.dendrogramY)==null?void 0:O.aes)||{}).filter(s9),M=Object.values((w==null?void 0:w.aes)||{}).filter(s9);function z(Te,le){return Te.length!==le.length||Te.some((be,ge)=>be.value!==le[ge].value)}return t.xColumn.value!==r.value||t.yColumn.value!==a.value||t.valueColumn.value!==i.value||z(t.xGroupBy,l)||z(t.yGroupBy,s)||z(t.facetBy,c)||z(t.annotations.map(Te=>Te.valueColumn),f.map(Te=>Te.valueColumn))||z(B,T)||z(P,M)||(n.dendrogramX||t.dendrogramX)&&(((Q=t.dendrogramX)==null?void 0:Q.distance)!==((K=n.dendrogramX)==null?void 0:K.distance)||((j=t.dendrogramX)==null?void 0:j.linkage)!==((W=n.dendrogramX)==null?void 0:W.linkage))||(n.dendrogramY||t.dendrogramY)&&(((V=t.dendrogramY)==null?void 0:V.distance)!==((U=n.dendrogramY)==null?void 0:U.distance)||((Z=t.dendrogramY)==null?void 0:Z.linkage)!==((q=n.dendrogramY)==null?void 0:q.linkage))||t.chartSettings.valueType!==p.valueType||t.facetSettings.sharedX!==h.sharedX||t.facetSettings.sharedY!==h.sharedY||((oe=t.normalization)==null?void 0:oe.method)!==(E==null?void 0:E.method)||((se=t.normalization)==null?void 0:se.direction)!==(E==null?void 0:E.direction)||t.NAValueAs!==b}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var l;return t.data[i].length!==((l=n.data[i])==null?void 0:l.length)})}_updateData(){let{xColumn:t,yColumn:n,valueColumn:r,xGroupBy:a,yGroupBy:i,facetBy:l,chartSettings:s,facetSettings:c,annotations:f,dendrogramX:p,dendrogramY:h,normalization:m,NAValueAs:w}=this.settings,E=f2t(this.data,t,n,r,l,a,i,f,p,h,m,w),b=v2t(E,p,h,c),B=s.valueType==="discrete"?this.data.getColumnCategories(r.value):[];this.calculatedData={groupedCellsData:E,dendrogramsData:b,cellUniqValues:B}}_updateAesInData(){}_updateChart(){if(!this.calculatedData)return;let{id:t,valueColumn:n,chartSettings:r,facetSettings:a,aes:i,annotations:l,dendrogramX:s,dendrogramY:c,inheritedDendrogramAes:f,normalization:p}=this.settings;this.chartRenderer.render(t,r,a,i,this.calculatedData.groupedCellsData,l,n,s,c,this.calculatedData.dendrogramsData,f,this.calculatedData.cellUniqValues,p)}},AK=(e,t)=>{let n=Math.min(...t),r=Math.max(...t);if(n===r)return[n];if(e<2)return[(n+r)/2];let a=(r-n)/e,i=[];for(let l=1;l<e;l++)i.push(n+a*l);return i};function L2t(e,t,n){let[r=0,a=0]=_A(e,s=>s[t.value]),i=AK(n,[r,a]),l=nR().thresholds(i).value(s=>s[t.value])(e);return{bins:l,minX:l[0].x0??0,maxX:l[l.length-1].x1??0,maxCount:_h(l,s=>s.length)??0}}function F2t(e,t,n){let[r=0,a=0]=_A(e,p=>p[t.value]),i=[r,a],l=AK(n,[r,a]),s=lx().domain(i).range(i),c=l.map(p=>s.invert(p)),f=nR().thresholds(c).value(p=>p[t.value])(e);return{bins:f,minX:f[0].x0??0,maxX:f[f.length-1].x1??0,maxCount:_h(f,p=>p.length)??0}}function V2t(e,t,n,r,a){let i={};return t.forEach(l=>{let s=e.getRowsByGrouping([...l]);i[l.join("_")]=a==="linear"?L2t(s,n,r):F2t(s,n,r)}),i}var O2t={TOP:30,BOTTOM:0,LEFT:10,RIGHT:10};function h9(e,t,n=!1){let r=Math.abs(e.range()[0]-e.range()[1]),a=n?Math.min(Math.floor(r/45),10):10,i=e.ticks(a).filter(s=>t&&s>=0||!t);n&&i.length>2&&Math.abs(e(i[1])-e(i[0]))<45&&(i=i.filter((s,c)=>c%2===0));let l=i.some(s=>Math.abs(s)<1e-4&&s!==0||s>1e4)?",e":",f";return{ticks:i,format:s=>e.tickFormat(a,l)(s)}}function Q2t(e){return`translate(${e},0)`}function z2t(e){return`translate(0,${e})`}function U2t(e){return e==="bottom"?`translate(0,${Mf})`:`translate(${-Mf},0)`}function G2t(e){return e==="bottom"?"hanging":"central"}function j2t(e){return e==="bottom"?"middle":"end"}var pK=({scale:e,tickSize:t=6,tickPadding:n=Mf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function l(b){return B=>{let T=b(B);return T===void 0?0:+T}}let{ticks:s,format:c}=h9(e,a,r==="bottom"),f=Math.max(t,0)+n,p=l(e.copy()),h=r==="bottom"?Q2t:z2t,m=r==="left"?-1:1,w={[(r==="left"?"x":"y")+"2"]:m*t},E={[r==="left"?"x":"y"]:m*f};return ie.jsx("g",{children:s.map((b,B)=>ie.jsxs("g",{className:"tick",transform:h(p(b)+i),children:[ie.jsx("line",{stroke:Vt,...w}),ie.jsx("g",{transform:U2t(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:G2t(r),textAnchor:j2t(r),...E,children:c(b)})})]},B))})},Y2t=1;function hK({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:l,updatingKey:s=""}){let[c,f]=ir.useState(e.ticks()),[p,h]=ir.useState(t.ticks()),{significantLines:m=[]}=a,{significantLines:w=[]}=i;return ir.useEffect(()=>{let E=e.ticks().filter(B=>!m.includes(B)),b=t.ticks().filter(B=>!w.includes(B));f(E),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Pf,children:[a.showGrid&&c.map(E=>{let b=e(E);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`x_${b}_${r}`)}),i.showGrid&&p.map(E=>{let b=t(E);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`y_${b}_${n}`)}),ie.jsx("g",{strokeDasharray:jA(a.significantLinesStyle),stroke:Vt,children:m.map(E=>{let b=e(E);return b<0||b>n?null:ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`significant_${b}_${r}`)})}),ie.jsx("g",{strokeDasharray:jA(i.significantLinesStyle),stroke:Vt,children:w.map(E=>{let b=t(E);return b<0||b>r?null:ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`significant_${b}_${n}`)})}),l!=="empty"&&ie.jsxs("g",{strokeWidth:Y2t,children:[(a.showGrid||l!=="left")&&ie.jsx("line",{stroke:l==="left"?Pf:Vt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||l!=="bottom")&&ie.jsx("line",{stroke:l==="bottom"?Pf:Vt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||l==="full")&&ie.jsx("line",{stroke:l==="full"?Vt:Pf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||l==="full")&&ie.jsx("line",{stroke:l==="full"?Vt:Pf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}function W2t({width:e,height:t,dimensions:n,scales:r,xAxis:a,yAxis:i,frameType:l,histogramData:s,facetSettings:c,captionsSizes:f,facetTitle:p,layers:h,aesColorGetter:m}){let{padding:w}=n,E=a.showTicks?4:0,b=i.showTicks?4:0,B=n.chartEdgeSides.includes("left")||!(c!=null&&c.sharedY),T=n.chartEdgeSides.includes("bottom")||!(c!=null&&c.sharedX),P=n.chartEdgeSides.includes("bottom"),M=!1;return ie.jsxs("g",{transform:`translate(${n.left+w.left},${n.top+w.top})`,children:[M,p.length&&ie.jsxs("g",{children:[l==="full"&&ie.jsx("rect",{x:"0",y:-w.top,height:w.top,width:e,fill:"#F7F8FA",stroke:Vt}),p.map((z,$)=>{let O=p.length,Q=(w.top-20*O)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:e/2,dy:Q+20/2-w.top,y:$*20,textAnchor:"middle",dominantBaseline:"central",children:z},$)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[P&&ie.jsx("text",{x:e/2,y:t+w.bottom-12-20/2,children:a.title}),M]}),ie.jsx(hK,{width:e,height:t,scaleX:r.x,scaleY:r.y,axisX:a,axisY:i,frameType:l}),T&&ie.jsxs("g",{transform:`translate(0,${t})`,children:[ie.jsx(pK,{scale:r.x,orient:"bottom",onlyPositive:!0,tickSize:E}),M]}),B&&ie.jsxs("g",{children:[ie.jsx(pK,{scale:r.y,orient:"left",tickSize:b}),M]}),h.map(z=>s.bins.map($=>ie.jsx("rect",{x:r.x($.x0),y:r.y($.length),fill:$[0]?m(z.aes.fillColor,$[0]):"",stroke:Vt,width:r.x($.x1)-r.x($.x0),height:r.y(0)-r.y($.length),opacity:z.aes.opacity??1},$.x0)))]})}function X2t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,columnsCount:a,facetKeys:i,facetSettings:l,scales:s,margins:c,mainTitle:f,facetTitles:p,captionsSizes:h,histogramDataByFacets:m,layers:w,aesColorGetter:E}){let{xAxis:b,yAxis:B,title:T,frame:P}=t,M=r[i[0]].padding,z=r[i[a-1]].padding;return ie.jsx(a2,{dataId:e,children:ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${n.totalWidth} ${n.totalHeight}`,width:n.totalWidth,height:n.totalHeight,children:[ie.jsx("defs",{children:Dg}),ie.jsxs("g",{transform:`translate(${c.left},${c.top})`,fontFamily:"Manrope",children:[ie.jsx(i2,{title:f,show:T.show,position:T.position,leftPadding:M.left,rightPadding:z.right,chartsWidth:n.chartsWidth}),i.map($=>ie.jsx(W2t,{scales:{x:s.x[$],y:s.y[$]},width:n.chartWidth,height:n.chartHeight,dimensions:r[$],margins:c,chartSizes:n,facetSettings:l,xAxis:b,yAxis:B,frameType:P.type,facetTitle:p[$],captionsSizes:h,histogramData:m[$],layers:w,aesColorGetter:E},$))]})]})})}function K2t(e,t,n,r){let a=[];return e%n===n-1&&a.push("right"),e%n===0&&a.push("left"),e<n&&a.push("top"),(Math.ceil((e+1)/n)===r||Math.ceil((e+1)/n)===r-1&&e%n>(t-1)%n)&&a.push("bottom"),a}function Z2t(e,t,n,r,a,i,l){let s=i.includes("left")||!(l!=null&&l.sharedY),c=i.includes("bottom")||!(l!=null&&l.sharedX),f=i.includes("bottom")&&e.title!=="",p=n.yAxisCaptionsWidth+2*6,h=(t.showTicks?4:0)+6,m=n.xAxisCaptionsWidth+2*6,w=e.showTicks?4:0,E=f?32:0,b=p+h+8,B=m+w+E+8,T=Math.max(...r.map(P=>a[P].length));return{left:s?b:12,top:T===0?0:6*2+T*20,bottom:c?B+8:12,right:12}}function J2t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function q2t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function e7t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function t7t(e,t){return function(n,r){var a,i;if(e7t(n)){let l=n.value;return(i=((a=e[l])==null?void 0:a[String(r[l])])??rP)==null?void 0:i[t]}return n}}var n7t=class{constructor(){ke(this,"reactRoot",null);ke(this,"parentNode",null);ke(this,"rootNode",null);ke(this,"component",ie.jsx(ie.Fragment,{}));ke(this,"margins",{top:24,bottom:24,left:24,right:24});ke(this,"chartsDimensions",{});ke(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});ke(this,"columnsCount",1);ke(this,"rowsCount",1);ke(this,"scales",{x:{null:Ua().domain([0,10]).range([0,600])},y:{null:Ua().domain([0,10]).range([350,0])}});ke(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});ke(this,"facetTitles",{});ke(this,"mainTitle",[])}clear(){var e;this.parentNode&&this.rootNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),this.parentNode=null,this.rootNode=null),setTimeout(()=>{var t;(t=this.reactRoot)==null||t.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.reactRoot=Fh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateChartDimensions(e,t,n,r){let{chartWidth:a,chartHeight:i}=this.chartSizes,l=0,s=0;this.chartsDimensions=e.reduce((p,h,m)=>{let[w,E]=q2t(m,this.columnsCount),b=K2t(m,e.length,this.columnsCount,this.rowsCount),B=Z2t(n,r,this.captionsSizes,J2t(e,this.rowsCount,this.columnsCount)[w],this.facetTitles,b,t),T=a+B.left+B.right,P=i+B.top+B.bottom;return p[h]={left:l,top:s,chartEdgeSides:b,padding:B,inner:{width:a,height:i},outer:{width:T,height:P}},l+=T,E===this.columnsCount-1&&(l=0,s+=P),p},{});let c=Math.max(...e.map(p=>this.chartsDimensions[p].outer.width+this.chartsDimensions[p].left)),f=Math.max(...e.map(p=>this.chartsDimensions[p].outer.height+this.chartsDimensions[p].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r){let a=e.length,i=Math.min(t.nRows??a,a),l=Math.min(t.nCols??a,a);this.columnsCount=t.nRows?Math.ceil(a/i):l,this.rowsCount=Math.ceil(a/this.columnsCount);let[s,c]=[1/0,-1/0],f=-1/0,p=e.reduce((h,m)=>{let w=r[m],{minX:E,maxX:b,maxCount:B}=w;return s=Math.min(s,E),c=Math.max(c,b),f=Math.max(f,B),h[m]={minX:E,maxX:b,maxY:B},h},{});e.forEach(h=>{let m=n.scale==="log"?lx():Ua(),w=p[h],E=t.sharedX?s:w.minX,b=t.sharedX?c:w.maxX;m.domain([E,b]).range([0,this.chartSizes.chartWidth]),this.scales.x[h]=m}),e.forEach(h=>{let m=Ua(),w=p[h],E=0,b=t.sharedY?f:w.maxY,B=[this.chartSizes.chartHeight,0],T=m.copy().domain([E,b]).range([this.chartSizes.chartHeight,O2t.TOP]);m.domain([T.invert(this.chartSizes.chartHeight),T.invert(0)]).range(B),this.scales.y[h]=m})}updateCaptionsSize(){let e=new Vs("600 14px Arial"),t=0;function n(r){return Math.max(...r.map(a=>e.getTextWidth(a)))}Object.values(this.scales.y).forEach(r=>{let{ticks:a,format:i}=h9(r,!1);t=Math.max(t,n(a.map(i)))}),this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:t}}createMainTitle(e,t){let n=this.chartsDimensions[e[0]],r=this.chartsDimensions[e[e.length-1]];this.mainTitle=Fv(t.name,this.chartSizes.chartsWidth-n.padding.left-r.padding.right,20)}createFacetTitles(e,t){this.facetTitles=e.reduce((n,r,a)=>(t[a].length===1&&t[a][0]==="null"?n[r]=[]:n[r]=Fv(t[a].join(", "),this.chartSizes.chartWidth,14),n),{})}updateMargins(){let e=24*this.mainTitle.length,t=e>0?e+24*2:0;this.margins={top:Math.max(t,24),bottom:24,left:24,right:24},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+this.chartSizes.chartsHeight+this.margins.bottom}render(e,t,n,r,a,i,l,s){var w;let{xAxis:c,yAxis:f,size:p,title:h}=t;this.updateChartSizes(p),this.updateViewport(r,n,c,i),this.updateCaptionsSize(),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,c,f),this.createMainTitle(r,h),this.updateMargins();let m=ie.jsx(X2t,{settingsId:e,chartSettings:t,facetKeys:r,facetSettings:n,chartSizes:this.chartSizes,chartsDimensions:this.chartsDimensions,scales:this.scales,columnsCount:this.columnsCount,margins:this.margins,mainTitle:this.mainTitle,facetTitles:this.facetTitles,captionsSizes:this.captionsSizes,histogramDataByFacets:i,layers:l,aesColorGetter:t7t(s,"fillColor")});this.component=m,(w=this.reactRoot)==null||w.render(m)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},r7t=n7t,a7t=10,i7t=class{constructor(e){ke(this,"type","bins");ke(this,"aes",{fillColor:"white",opacity:1});this.aes={...this.aes,...e.aes}}},o7t=class{constructor(e){ke(this,"type","binsLine");ke(this,"aes",{opacity:1});this.aes={...this.aes,...e.aes}}},vK=class{constructor(e){ke(this,"id");ke(this,"type","histogram");ke(this,"valueColumn");ke(this,"binsCount");ke(this,"facetSettings");ke(this,"facetBy");ke(this,"grouping");ke(this,"chartSettings");ke(this,"inheritedAes");ke(this,"layers");var t,n,r,a,i,l,s;_gt.parse(e),this.id=ar.uniqueId("settings"),this.facetSettings={sharedX:!0,sharedY:!0,titlePosition:"left",...e.facetSettings},this.valueColumn=e.valueColumn,this.binsCount=e.binsCount??a7t,this.facetBy=e.facetBy??[],this.grouping=e.grouping??[],this.chartSettings={size:{width:((t=e==null?void 0:e.size)==null?void 0:t.width)??(this.facetBy.length?400:600),height:((n=e==null?void 0:e.size)==null?void 0:n.height)??(this.facetBy.length?250:350)},title:{position:"center",show:!0,...e.title,name:((r=e.title)==null?void 0:r.name)??"Chart"},yAxis:{showGrid:!0,showTicks:!0,...e.yAxis},xAxis:{title:e.valueColumn.label??e.valueColumn.value??"",scale:((a=e.xAxis)==null?void 0:a.scale)??"linear",showGrid:((i=e.xAxis)==null?void 0:i.showGrid)??!0,showTicks:((l=e.xAxis)==null?void 0:l.showTicks)??!0},frame:{type:((s=e.frame)==null?void 0:s.type)??"full"},legend:{show:!0,position:"right",...e.legend}},this.inheritedAes=e.inheritedAes??{},this.layers=e.layers.map(c=>{if(c.type==="bins")return new i7t(c);if(c.type==="binsLine")return new o7t(c);oA(c,"Unknown layer type")}).filter(Boolean)}};function mK(e){if(!e.length)return[];let t=[[]];return e.forEach(n=>{let r=[];n.forEach(a=>{r.push(...t.map(i=>[...i,a]))}),t=r}),t}var l7t=class extends Tg{constructor(t,n){super(t,n);ke(this,"settings");ke(this,"chartRenderer",new r7t);ke(this,"calculatedData",null);this.settings=new vK(n)}mount(t){try{this.chartRenderer.init(t),this._updateData(),this._updateChart()}catch(n){n instanceof Error&&this.chartRenderer.renderError(n.message)}}unmount(){this.chartRenderer.clear()}updateSettingsAndData(t,n){try{let r=this.settings,a=this.data;this.settings=new vK(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){console.warn("no chart state for histogram")}export(){return this._updateChart(),l3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){return t.valueColumn.value!==n.valueColumn.value||t.facetBy.some((r,a)=>{var i;return r.value!==((i=n.facetBy[a])==null?void 0:i.value)})||t.grouping.length!==n.grouping.length||t.grouping.some((r,a)=>{var i;return r.value!==((i=n.grouping[a])==null?void 0:i.value)})||t.layers.length!==n.layers.length||t.layers.some((r,a)=>r.type!==n.layers[a].type)||t.binsCount!==n.binsCount||t.chartSettings.xAxis.scale!==n.chartSettings.xAxis.scale}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var l;return t.data[i].length!==((l=n.data[i])==null?void 0:l.length)})}_updateData(){let{valueColumn:t,facetBy:n,binsCount:r,chartSettings:a}=this.settings,i=n.map(f=>this.data.getColumnCategories(f.value)),l=i.length?mK([...i]):[["null"]],s=n.map(f=>f.value)??null;this.data.setGrouping([...s]);let c=V2t(this.data,l,t,r,a.xAxis.scale);this.calculatedData={facetKeys:l.map(f=>f.join(", ")),facetKeysCombinations:l,histogramDataByFacets:c}}_updateAesInData(){this.calculatedData}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,facetSettings:r,inheritedAes:a,layers:i}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.facetKeys,this.calculatedData.facetKeysCombinations,this.calculatedData.histogramDataByFacets,i,a)}};function s7t(e,t,n,r,a,i){let l={};return t.forEach(s=>{let c=[],f=1/0,p=1/0,h=-1/0,m=-1/0;i.forEach(w=>{e.getRowsByGrouping([...s,w]).forEach(E=>{let b=E[n.value],B=E[r.value];f=Math.min(f,b),p=Math.min(p,B),h=Math.max(h,b),m=Math.max(m,B),b!==null&&B!==null&&c.push({id:`${Object.values(E)}`,x:b,y:B,label:a?E[a.valueLabels??a.value]:null,data:E})})}),c.sort((w,E)=>w.x-E.x),l[s.join("_")]={minX:f,maxX:h,minY:p,maxY:m,dots:c}}),l}function u7t(e,t,n,r,a){return t.reduce((i,l)=>{let s=n[l].dots;return i[l]=e.map(c=>{if(c.type==="curve")return{type:"curve",info:c,geoms:r.map(f=>{let p=s.filter(m=>a.every((w,E)=>m.data[w.value]===f[E])),h=a.reduce((m,w,E)=>(m[w.value]=f[E],m),{});return{dots:p,data:h}})};if(c.type==="dots")return{type:"dots",info:c,geoms:s};oA(c,"Unknown scatterplot layer type")}),i},{})}var v9=12,gK=-12;function c7t({aes:e,label:t}){let n=Vc(e.shape,e.size,e.color);return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${v9/2},${v9/2})`,children:n}),ie.jsx("text",{x:v9+8,y:v9/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function yK({legendData:e}){return ie.jsx("g",{children:e.items.map(t=>{if(t.type==="dots")return ie.jsxs("g",{transform:`translate(${t.left},${t.top})`,fontSize:"14px",fontWeight:500,children:[ie.jsx("text",{fontWeight:600,y:gK,children:t.title}),t.values.map((n,r)=>ie.jsx("g",{transform:`translate(0, ${r*(v9+4)})`,children:ie.jsx(c7t,{aes:t.scale(n),label:t.labels[n]})},n)),!1]},t.id);if(t.type==="size"){let n=t.height/t.values.length;return ie.jsxs("g",{transform:`translate(${t.left},${t.top})`,fontSize:"14px",fontWeight:500,children:[ie.jsx("text",{fontWeight:500,y:gK,children:t.title}),t.values.map((r,a)=>{let i=t.scale(r);return ie.jsxs("g",{transform:`translate(0, ${a*n})`,children:[ie.jsx("circle",{r:i,cx:n/2,cy:n/2,fill:Vt}),ie.jsx("text",{x:n+4,y:n/2,alignmentBaseline:"central",children:t.labels[r]})]},r)}),!1]},t.id)}})})}function EP(e){let t=e.xPosition!=="middle"&&e.yPosition!=="middle",n=e.padding*(t?.7:1);return e.xPosition==="right"?e.x+n:e.xPosition==="middle"?e.x-e.width/2:e.x-e.width-n}function wK(e){let t=e.xPosition!=="middle"&&e.yPosition!=="middle",n=e.padding*(t?.7:1);return e.yPosition==="middle"?e.y-e.height/2:e.yPosition==="top"?e.y-n-e.height:e.y+n}function f7t(e,t){return EP(e)-t}function d7t(e,t){return wK(e)-t}function CK(e){let t=EP(e),n=t+e.width,r=wK(e),a=r+e.height;return{minX:t,maxX:n,minY:r,maxY:a}}function bK(e,t,n){let r=f7t(e,n),a=EP(e)+e.width+n,i=d7t(e,t),l=i+e.height+2*t;return{minX:r,maxX:a,minY:i,maxY:l}}function A7t(e,t,n){return e.minX>=0&&e.maxX<=t&&e.minY>=0&&e.maxY<=n}var W8=2;function p7t(e,t=W8,n=W8){e.forEach(r=>{r.bbox=CK(r),r.outerBBox=bK(r,t,n)})}function X8(e,t,n,r=W8,a=W8){let i=[],l=new eut,s=[["middle","right"],["top","right"],["bottom","right"],["middle","left"],["top","left"],["bottom","left"],["top","middle"],["bottom","middle"]];for(let c of e)for(let[f,p]of s){let h={...c,yPosition:f,xPosition:p};if(h.bbox=CK(h),h.outerBBox=bK(h,r,a),A7t(h.outerBBox,t,n)&&!l.collides(h.outerBBox)){i.push(h),l.insert(h.outerBBox);break}}return i}function h7t(e){return`translate(${e},0)`}function v7t(e){return`translate(0,${e})`}function m7t(e){return e==="bottom"?`translate(0,${Mf})`:`translate(${-Mf},0)`}function g7t(e){return e==="bottom"?"hanging":"central"}function y7t(e){return e==="bottom"?"middle":"end"}var K8=({scale:e,tickSize:t=6,tickPadding:n=Mf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function l(b){return B=>{let T=b(B);return T===void 0?0:+T}}let{ticks:s,format:c}=h9(e,a,r==="bottom"),f=Math.max(t,0)+n,p=l(e.copy()),h=r==="bottom"?h7t:v7t,m=r==="left"?-1:1,w={[(r==="left"?"x":"y")+"2"]:m*t},E={[r==="left"?"x":"y"]:m*f};return ie.jsx("g",{children:s.map((b,B)=>ie.jsxs("g",{className:"tick",transform:h(p(b)+i),children:[ie.jsx("line",{stroke:Vt,...w}),ie.jsx("g",{transform:m7t(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:g7t(r),textAnchor:y7t(r),...E,children:c(b)})})]},B))})},w7t=1;function C7t({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:l,updatingKey:s=""}){let[c,f]=ir.useState(e.ticks()),[p,h]=ir.useState(t.ticks()),{significantLines:m=[]}=a,{significantLines:w=[]}=i;return ir.useEffect(()=>{let E=e.ticks().filter(B=>!m.includes(B)),b=t.ticks().filter(B=>!w.includes(B));f(E),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Pf,children:[a.showGrid&&c.map(E=>{let b=e(E);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`x_${b}_${r}`)}),i.showGrid&&p.map(E=>{let b=t(E);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`y_${b}_${n}`)}),ie.jsx("g",{strokeDasharray:jA(a.significantLinesStyle),stroke:Vt,children:m.map(E=>{let b=e(E);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`significant_${b}_${r}`)})}),ie.jsx("g",{strokeDasharray:jA(i.significantLinesStyle),stroke:Vt,children:w.map(E=>{let b=t(E);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`significant_${b}_${n}`)})}),l!=="empty"&&ie.jsxs("g",{strokeWidth:w7t,children:[(a.showGrid||l!=="left")&&ie.jsx("line",{stroke:l==="left"?Pf:Vt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||l!=="bottom")&&ie.jsx("line",{stroke:l==="bottom"?Pf:Vt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||l==="full")&&ie.jsx("line",{stroke:l==="full"?Vt:Pf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||l==="full")&&ie.jsx("line",{stroke:l==="full"?Vt:Pf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}var b7t=new Vs("16px Manrope");function EK(e,t){return typeof e=="string"?e:t.length?t[0].data[e.value]:""}function E7t(e,t,n=[]){let r=e.data,a=[`x: ${Qi(e.x)}`,`y: ${Qi(e.y)}`];t.label&&a.unshift(`${t.label}: ${r[t.label]}`);for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function S7t(e){return typeof e.r2>"u"?null:ie.jsxs(ie.Fragment,{children:[ie.jsx("tspan",{children:"R"}),ie.jsx("tspan",{fontSize:"10px",dy:"-8",children:"2"}),ie.jsx("tspan",{dy:"8",children:` = ${Qi(e.r2)}`})]})}function x7t(e){return typeof e.pValue>"u"?null:ie.jsx("tspan",{children:`p-value = ${Qi(e.pValue)}`})}function B7t(e){if(typeof e.coefficients>"u")return null;let{slope:t,slopeError:n,intercept:r,interceptError:a}=e.coefficients;return ie.jsx("tspan",{children:ie.jsx("tspan",{children:`slope = ${Qi(t)} ± ${Qi(n)}, intercept = ${Qi(r)} ± ${Qi(a)}`})})}function k7t(e){let t=[S7t(e),x7t(e),B7t(e)].filter(n=>n!==null);return ie.jsx(ie.Fragment,{children:t.map((n,r)=>ie.jsxs("tspan",{children:[n,ie.jsx("tspan",{children:r<t.length-1&&", "})]},r))})}var SP=3;function SK(e,t,n,r){if(!r)return[];let a=[];for(let i of e){let l=i.label;if(!l)continue;let s=b7t.getTextMetrics(String(l));a.push({name:String(l),width:s.width,height:s.actualBoundingBoxAscent+s.actualBoundingBoxDescent,x:t.x(i.x),y:t.y(i.y),xPosition:"right",yPosition:"middle",bbox:{minX:0,maxX:0,minY:0,maxY:0},dot:i,padding:n.dotSize(r.info.aes.dotSize,i.data)+SP})}return a}function T7t({width:e,height:t,dimensions:n,scales:r,xAxis:a,yAxis:i,frameType:l,dotsData:s,facetSettings:c,trendsData:f,keyColumn:p,margins:h,chartSizes:m,tooltips:w,tooltipsContainer:E,captionsSizes:b,facetTitle:B,onlyPositive:T,layersData:P,aesGetters:M}){let[z,$]=ir.useState(null),{padding:O}=n,{dots:Q}=s,K=a.showTicks?X3:0,j=i.showTicks?X3:0,W=EK(a.title,Q),V=EK(i.title,Q),U=n.chartEdgeSides.includes("left")||!(c!=null&&c.sharedY),Z=n.chartEdgeSides.includes("bottom")||!(c!=null&&c.sharedX),q=n.chartEdgeSides.includes("left"),oe=n.chartEdgeSides.includes("bottom"),se={left:h.left+n.left+O.left,right:m.totalWidth-(h.left+n.left+O.left),top:h.top+n.top+O.top,bottom:m.totalHeight-(h.top+n.top+O.top)},Te=!1,[le,be]=ir.useState(()=>SK(Q,r,M,P.find(Re=>Re.type==="dots"))),[ge,Ae]=ir.useState(()=>X8(le,e,t,SP,SP)),[Se,ze]=ir.useState(null);return ir.useEffect(()=>{be(SK(Q,r,M,P.find(Re=>Re.type==="dots")))},[Q,r,M,P]),ir.useEffect(()=>{let Re=X8(le,e,t);Ae(Re)},[le,e,t]),ie.jsxs("g",{transform:`translate(${n.left+O.left},${n.top+O.top})`,children:[Te,B.length&&ie.jsxs("g",{children:[l==="full"&&ie.jsx("rect",{x:"0",y:-O.top,height:O.top,width:e,fill:"#F7F8FA",stroke:Vt}),B.map((Re,Fe)=>{let Le=B.length,je=(O.top-iP*Le)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:e/2,dy:je+iP/2-O.top,y:Fe*iP,textAnchor:"middle",dominantBaseline:"central",children:Re},Fe)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[oe&&ie.jsx("text",{x:e/2,y:t+O.bottom-Iv-i9/2,children:W}),Te,q&&ie.jsx("text",{x:-O.left+Iv+i9/2,y:t/2,transform:`rotate(-90,${-O.left+Iv+i9/2},${t/2})`,children:V}),Te]}),ie.jsx(C7t,{width:e,height:t,scaleX:r.x,scaleY:r.y,axisX:a,axisY:i,frameType:l}),Z&&ie.jsxs("g",{transform:`translate(0,${t})`,children:[ie.jsx(K8,{scale:r.x,orient:"bottom",onlyPositive:T.x,tickSize:K}),Te]}),U&&ie.jsxs("g",{children:[ie.jsx(K8,{scale:r.y,orient:"left",onlyPositive:T.y,tickSize:j}),Te]}),f&&f.map(({predict:Re,getArea:Fe,color:Le,data:je,bounded:ct,xBounds:Qe,stats:Je},st)=>{let[et,yt]=ct?Qe:r.x.domain(),wt=(yt-et)/15,Xt=Re(et),sr=Re(yt);if(isNaN(Xt)||isNaN(sr))return null;let rr=M.dotColor(Le,je);return ie.jsxs("g",{children:[ie.jsx("text",{y:st*20+20,fill:rr,x:e-8,textAnchor:"end",children:k7t(Je)}),ie.jsx("path",{d:Fe(r.x,r.y,ar.range(et,yt+wt/2,wt)),fill:rr,opacity:.2}),ie.jsx("line",{x1:r.x(et),x2:r.x(yt),y1:r.y(Xt),y2:r.y(sr),stroke:rr})]},st)}),P.map((Re,Fe)=>{if(Re.type==="dots")return ie.jsxs("g",{children:[Q.map(Le=>ie.jsx("g",{transform:`translate(${r.x(Le.x)},${r.y(Le.y)})`,onMouseOver:()=>$(Le),onMouseLeave:()=>$(null),children:Vc(M.dotShape(Re.info.aes.dotShape,Le.data),M.dotSize(Re.info.aes.dotSize,Le.data),M.dotColor(Re.info.aes.dotFill,Le.data))},Le.id)),ge.map(Le=>{let{name:je,height:ct,bbox:Qe,width:Je}=Le;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${Qe.minX},${Qe.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:Je,height:ct,fill:"transparent",stroke:"none",onMouseOver:()=>ze(Le.dot),onMouseLeave:()=>ze(null)}),ie.jsx("text",{x:0,y:ct/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:je})]})},Le.dot.id)}),Se&&ie.jsxs("g",{transform:`translate(${r.x(Se.x)},${r.y(Se.y)})`,children:[Vc(M.dotShape(Re.info.aes.dotShape,Se.data),M.dotSize(Re.info.aes.dotSize,Se.data)+1,"white","white"),Vc(M.dotShape(Re.info.aes.dotShape,Se.data),M.dotSize(Re.info.aes.dotSize,Se.data),M.dotColor(Re.info.aes.dotFill,Se.data))]},"activeDot")]},Fe);if(Re.type==="curve"&&!Re.info.smoothing)return Re.geoms.map((Le,je)=>ie.jsx("g",{children:ie.jsx("polyline",{points:Le.dots.map(ct=>`${r.x(ct.x)},${r.y(ct.y)}`).join(" "),fill:"none",stroke:M.lineColor(Re.info.aes.lineColor,Le.data),strokeWidth:Re.info.aes.lineWidth,strokeDasharray:jA(Re.info.aes.lineShape)})},je));if(Re.type==="curve"&&Re.info.smoothing)return Re.geoms.map((Le,je)=>ie.jsx("g",{children:ie.jsx("path",{d:V5().curve(O5).x(ct=>r.x(ct.x)).y(ct=>r.y(ct.y))(Le.dots)??"",fill:"none",stroke:M.lineColor(Re.info.aes.lineColor,Le.data),strokeWidth:Re.info.aes.lineWidth,strokeDasharray:jA(Re.info.aes.lineShape)})},je))}),w.show&&z&&ie.jsx(Fc,{content:E7t(z,p,w==null?void 0:w.content),x:r.x(z.x),y:r.y(z.y),active:!0,sideDistances:se,container:E})]})}function _7t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,facetKeys:a,facetSettings:i,scales:l,groupedDots:s,legendData:c,trendsData:f,columnsCount:p,margins:h,keyColumn:m,mainTitle:w,facetTitles:E,captionsSizes:b,onlyPositive:B,layersData:T,aesGetters:P}){let[M,z]=ir.useState(),$=ir.useRef(null);ir.useEffect(()=>{$.current&&z($.current)},[]);let{xAxis:O,yAxis:Q,title:K,frame:j,legend:W,tooltips:V}=t,U=r[a[0]].padding,Z=r[a[p-1]].padding,q=n.chartsWidth+lP,oe=U.top;return ie.jsx(a2,{dataId:e,children:ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${n.totalWidth} ${n.totalHeight}`,width:n.totalWidth,height:n.totalHeight,children:[ie.jsx("defs",{children:Dg}),ie.jsxs("g",{transform:`translate(${h.left},${h.top})`,fontFamily:"Manrope",children:[ie.jsx(i2,{title:w,show:K.show,position:K.position,leftPadding:U.left,rightPadding:Z.right,chartsWidth:n.chartsWidth}),a.map(se=>ie.jsx(T7t,{scales:{x:l.x[se],y:l.y[se]},width:n.chartWidth,height:n.chartHeight,dimensions:r[se],margins:h,chartSizes:n,facetSettings:i,xAxis:O,yAxis:Q,frameType:j.type,dotsData:s[se],trendsData:f?f[se]:null,tooltips:V,tooltipsContainer:M,keyColumn:m,facetTitle:E[se],captionsSizes:b,layersData:T[se],onlyPositive:B,aesGetters:P},se)),W.show&&ie.jsx("g",{transform:`translate(${q},${oe})`,children:ie.jsx(yK,{legendData:c})})]}),ie.jsx("g",{ref:$})]})})}function P7t(e,t,n,r){let a=[];return e%n===n-1&&a.push("right"),e%n===0&&a.push("left"),e<n&&a.push("top"),(Math.ceil((e+1)/n)===r||Math.ceil((e+1)/n)===r-1&&e%n>(t-1)%n)&&a.push("bottom"),a}function D7t(e,t,n,r,a,i,l){let s=i.includes("left")||!(l!=null&&l.sharedY),c=i.includes("left")&&t.title!=="",f=i.includes("bottom")||!(l!=null&&l.sharedX),p=i.includes("bottom")&&e.title!=="",h=n.yAxisCaptionsWidth+2*oP,m=(t.showTicks?X3:0)+oP,w=c?i9+Iv:0,E=n.xAxisCaptionsWidth+2*oP,b=e.showTicks?X3:0,B=p?i9+Iv:0,T=h+m+w+JW,P=E+b+B+JW,M=Math.max(...r.map(z=>a[z].length));return{left:s?T:Iv,top:M===0?0:Nmt*2+M*A9,bottom:f?P+8:Iv,right:Iv}}function M7t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function H7t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function I7t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function c2(e,t){return function(n,r){var a,i;if(T8(n)){let{domain:l,range:s}=n,c=Ly().domain(l).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}if(I7t(n)){let l=n.value;return(i=((a=e[l])==null?void 0:a[String(r[l])])??rP)==null?void 0:i[t]}return n}}function R7t(e){return{dotShape:c2(e,"dotShape"),dotColor:c2(e,"dotFill"),dotSize:c2(e,"dotSize"),lineShape:c2(e,"lineShape"),lineColor:c2(e,"lineColor"),trendColor:c2(e,"dotFill")}}var N7t=class{constructor(){ke(this,"reactRoot",null);ke(this,"parentNode",null);ke(this,"rootNode",null);ke(this,"component",ie.jsx(ie.Fragment,{}));ke(this,"margins",{top:Df,bottom:Df,left:Df,right:Df});ke(this,"chartsDimensions",{});ke(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});ke(this,"columnsCount",1);ke(this,"rowsCount",1);ke(this,"scales",{x:{null:Ua().domain([0,10]).range([0,600])},y:{null:Ua().domain([0,10]).range([350,0])}});ke(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});ke(this,"facetTitles",{});ke(this,"mainTitle",[]);ke(this,"legend",{width:0,height:0,items:[]})}clear(){var e;this.parentNode&&this.rootNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),this.parentNode=null,this.rootNode=null),setTimeout(()=>{var t;(t=this.reactRoot)==null||t.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.reactRoot=Fh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateChartDimensions(e,t,n,r){let{chartWidth:a,chartHeight:i}=this.chartSizes,l=0,s=0;this.chartsDimensions=e.reduce((p,h,m)=>{let[w,E]=H7t(m,this.columnsCount),b=P7t(m,e.length,this.columnsCount,this.rowsCount),B=D7t(n,r,this.captionsSizes,M7t(e,this.rowsCount,this.columnsCount)[w],this.facetTitles,b,t),T=a+B.left+B.right,P=i+B.top+B.bottom;return p[h]={left:l,top:s,chartEdgeSides:b,padding:B,inner:{width:a,height:i},outer:{width:T,height:P}},l+=T,E===this.columnsCount-1&&(l=0,s+=P),p},{});let c=Math.max(...e.map(p=>this.chartsDimensions[p].outer.width+this.chartsDimensions[p].left)),f=Math.max(...e.map(p=>this.chartsDimensions[p].outer.height+this.chartsDimensions[p].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r,a,i){let l=e.length,s=Math.min(t.nRows??l,l),c=Math.min(t.nCols??l,l);this.columnsCount=t.nRows?Math.ceil(l/s):c,this.rowsCount=Math.ceil(l/this.columnsCount);let[f,p]=[1/0,-1/0],[h,m]=[1/0,-1/0],w=e.reduce((b,B)=>{let T=a[B],{minX:P,minY:M,maxX:z,maxY:$}=T;return f=Math.min(f,P),h=Math.min(h,M),p=Math.max(p,z),m=Math.max(m,$),b[B]={minX:P,maxX:z,minY:M,maxY:$},b},{});e.forEach(b=>{let B=n.scale==="log"?Im():Ua(),T=w[b],P=n.lowerValue?Number(n.lowerValue):t.sharedX?f:T.minX,M=n.upperValue?Number(n.upperValue):t.sharedX?p:T.maxX;if(typeof n.symmetricRange<"u"){let O=n.symmetricRange;if(O>=P&&O<=M){let Q=Math.max(O-P,M-O);P=O-Q,M=O+Q}}let z=[0,this.chartSizes.chartWidth],$=B.copy().domain([P,M]).range([B8.LEFT,this.chartSizes.chartWidth-B8.RIGHT]);B.domain([$.invert(0),$.invert(this.chartSizes.chartWidth)]).range(z).nice(),this.scales.x[b]=B});let E=e.reduce((b,B)=>{let T=i?i[B]:[];return b[B]=T.reduce((P,M)=>{let z=M.bounded?M.xBounds:this.scales.x[B].domain(),$=M.getInterval(z[0]),O=M.getInterval(z[1]);return P.minY=Math.min(P.minY,isNaN($.left)?P.minY:$.left,isNaN(O.left)?P.minY:O.left),P.maxY=Math.max(P.maxY,isNaN($.right)?P.maxY:$.right,isNaN(O.right)?P.maxY:O.right),P},{minY:1/0,maxY:-1/0}),h=Math.min(h,b[B].minY),m=Math.max(m,b[B].maxY),b},{});e.forEach(b=>{let B=r.scale==="log"?Im():Ua(),T=w[b],P=E[b],M=r.lowerValue?Number(r.lowerValue):t.sharedY?h:Math.min(T.minY,P.minY),z=r.upperValue?Number(r.upperValue):t.sharedY?m:Math.max(T.maxY,P.maxY);if(typeof r.symmetricRange<"u"){let Q=r.symmetricRange;if(Q>=M&&Q<=z){let K=Math.max(Q-M,z-Q);M=Q-K,z=Q+K}}let $=[this.chartSizes.chartHeight,0],O=B.copy().domain([M,z]).range([this.chartSizes.chartHeight-B8.BOTTOM,B8.TOP]);B.domain([O.invert(this.chartSizes.chartHeight),O.invert(0)]).range($).nice(),this.scales.y[b]=B})}updateCaptionsSize(e){let t=new Vs("600 14px Arial"),n=0;function r(a){return Math.max(...a.map(i=>t.getTextWidth(i)))}Object.values(this.scales.y).forEach(a=>{let{ticks:i,format:l}=h9(a,e);n=Math.max(n,r(i.map(l)))}),this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:n}}createMainTitle(e,t){let n=this.chartsDimensions[e[0]],r=this.chartsDimensions[e[e.length-1]];this.mainTitle=Fv(t.name,this.chartSizes.chartsWidth-n.padding.left-r.padding.right,20)}createFacetTitles(e,t){this.facetTitles=e.reduce((n,r,a)=>(t[a].length===1&&t[a][0]==="null"?n[r]=[]:n[r]=Fv(t[a].join(", "),this.chartSizes.chartWidth,14),n),{})}updateMargins(){let e=24*this.mainTitle.length,t=e>0?e+24*2:0;this.margins={top:Math.max(t,Df),bottom:Df,left:Df,right:this.legend.width},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartsHeight,this.legend.height)+this.margins.bottom}updateLegendSize(e,t,n,r){if(!e.show){this.legend={width:0,height:0,items:[]};return}let a=new Vs("600 14px Manrope"),i=16,l=48,s=20,c=24;function f(M,z){return Math.max(...M.map($=>a.getTextWidth(String($))+s),a.getTextWidth(z))}let p=[];n.forEach(M=>{let z=t[M.value];if(z.usedAes.length===0||!z.aesMap)return;let $=M.label??M.value,O=z.values,Q={};O.forEach(K=>{Q[K]||(Q[K]={...aP}),z.usedAes.forEach(j=>{var W,V,U;(j==="dotFill"||j==="lineColor")&&(Q[K].color=((W=z.aesMap[K])==null?void 0:W[j])??Vt),j==="dotShape"&&(Q[K].shape=((V=z.aesMap[K])==null?void 0:V[j])??"21"),j==="dotSize"&&(Q[K].size=((U=z.aesMap[K])==null?void 0:U[j])??3)})}),p.push({columnKey:$,data:Q,values:z.values,labels:z.labels})});let h=[],m=0,w=0,E=0,b=this.chartSizes.chartsHeight,B=this.chartSizes.chartsHeight;p.map(({columnKey:M,labels:z,values:$,data:O})=>{let Q=M,K=f($.map(Z=>z[Z]),Q),j=$.length*i;j>b&&(B=j);let W=nl().domain($).range($.map(Z=>O[Z])),V=E,U=w;h.push({type:"dots",id:M,width:K,height:j,left:V,top:U,title:Q,scale:W,values:$,labels:z}),m=K,w+=j+l,w>b&&(w=0,E=K+c)}),r.forEach(M=>{if(M.type==="dots"&&T8(M.aes.dotSize)){w>B&&(w=0,E+=m+c);let{columnName:z,domain:$,range:O}=M.aes.dotSize,Q=z.label??z.value,K=Ly($,O),j=K.ticks(3),W=K.tickFormat(3),V=j.reduce((se,Te)=>(se[String(Te)]=W(Te),se),{}),U=f(j.map(se=>V[se]),Q),Z=(K(Math.max(...j))*2+4)*j.length;Z>B&&(B=Z);let q=E,oe=w;h.push({id:z.value,type:"size",width:U,height:Z,left:q,top:oe,title:Q,scale:K,values:j,labels:V}),m=U,w+=Z+l}});let T=E+m+2*lP,P=B;this.legend={width:T,height:P,items:h}}render(e,t,n,r,a,i,l,s,c,f,p,h,m,w){var z;let{xAxis:E,yAxis:b,size:B,title:T,legend:P}=t;this.updateChartSizes(B),this.updateViewport(r,n,E,b,i,l),this.updateCaptionsSize(c.y),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,E,b),this.updateLegendSize(P,f,m,w),this.createMainTitle(r,T),this.updateMargins();let M=ie.jsx(_7t,{settingsId:e,chartSettings:t,facetKeys:r,facetSettings:n,chartSizes:this.chartSizes,chartsDimensions:this.chartsDimensions,scales:this.scales,groupedDots:i,trendsData:l,legendData:this.legend,columnsCount:this.columnsCount,margins:this.margins,keyColumn:s,mainTitle:this.mainTitle,facetTitles:this.facetTitles,captionsSizes:this.captionsSizes,onlyPositive:c,layersData:p,aesGetters:R7t(h)});this.component=M,(z=this.reactRoot)==null||z.render(M)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},$7t=N7t,L7t=class{constructor(e){ke(this,"type","dots");ke(this,"aes",{dotFill:Vt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},F7t=class{constructor(e){ke(this,"type","curve");ke(this,"smoothing");ke(this,"aes",{lineColor:Vt,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},xK=class{constructor(e){ke(this,"id");ke(this,"type","scatterplot");ke(this,"keyColumn");ke(this,"facetSettings");ke(this,"x");ke(this,"y");ke(this,"facetBy");ke(this,"grouping");ke(this,"label");ke(this,"chartSettings");ke(this,"inheritedAes");ke(this,"trend");ke(this,"layers");var t,n,r,a;hgt.parse(e),this.id=ar.uniqueId("settings"),this.keyColumn=e.keyColumn,this.facetSettings={sharedX:!0,sharedY:!0,titlePosition:"left",...e.facetSettings},this.x=e.x,this.y=e.y,this.facetBy=e.facetBy??[],this.grouping=e.grouping??[],this.label=e.label??null,this.chartSettings={size:{width:((t=e==null?void 0:e.size)==null?void 0:t.width)??(this.facetBy.length?400:600),height:((n=e==null?void 0:e.size)==null?void 0:n.height)??(this.facetBy.length?250:350)},title:{position:"center",show:!0,...e.title,name:((r=e.title)==null?void 0:r.name)??"Chart"},yAxis:{title:e.y.label??e.y.value,scale:"linear",showGrid:!0,showTicks:!0,...e.yAxis},xAxis:{title:e.x.label??e.x.value,scale:"linear",showGrid:!0,showTicks:!0,...e.xAxis},frame:{type:((a=e.frame)==null?void 0:a.type)??"full"},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.inheritedAes=e.inheritedAes??{},this.trend=e!=null&&e.trend?{bounded:e.trend.bounded??!1,color:e.trend.color??Vt}:null,this.layers=e.layers.map(i=>{if(i.type==="dots")return new L7t(i);if(i.type==="curve")return new F7t(i);oA(i,"Unknown layer type")}).filter(Boolean)}},V7t=TAt(xmt()),BK=.05;function O7t(e){let t=3.3871328727963665,n=133.14166789178438,r=1971.5909503065513,a=13731.69376550946,i=45921.95393154987,l=67265.7709270087,s=33430.57558358813,c=2509.0809287301227,f=42.31333070160091,p=687.1870074920579,h=5394.196021424751,m=21213.794301586597,w=39307.89580009271,E=28729.085735721943,b=5226.495278852854,B=1.4234371107496835,T=4.630337846156546,P=5.769497221460691,M=3.6478483247632045,z=1.2704582524523684,$=.2417807251774506,O=.022723844989269184,Q=.0007745450142783414,K=2.053191626637759,j=1.6763848301838038,W=.6897673349851,V=.14810397642748008,U=.015198666563616457,Z=.0005475938084995345,q=10507500716444169e-25,oe=6.657904643501103,se=5.463784911164114,Te=1.7848265399172913,le=.29656057182850487,be=.026532189526576124,ge=.0012426609473880784,Ae=27115555687434876e-21,Se=20103343992922881e-23,ze=.599832206555888,Re=.1369298809227358,Fe=.014875361290850615,Le=.0007868691311456133,je=18463183175100548e-21,ct=1421511758316446e-22,Qe=20442631033899397e-31,Je=e-.5,st,et;return Math.abs(Je)<=.425?(st=.180625-Je*Je,et=Je*(((((((c*st+s)*st+l)*st+i)*st+a)*st+r)*st+n)*st+t)/(((((((b*st+E)*st+w)*st+m)*st+h)*st+p)*st+f)*st+1),et):(st=e,st=Math.sqrt(-Math.log(st)),st<=5?(st+=-1.6,et=(((((((Q*st+O)*st+$)*st+z)*st+M)*st+P)*st+T)*st+B)/(((((((q*st+Z)*st+U)*st+V)*st+W)*st+j)*st+K)*st+1)):(st+=-5,et=(((((((Se*st+Ae)*st+ge)*st+be)*st+le)*st+Te)*st+se)*st+oe)/(((((((Qe*st+ct)*st+je)*st+Le)*st+Fe)*st+Re)*st+ze)*st+1)),et=-et,et)}function kK(e,t){let{sin:n,cos:r,sqrt:a,pow:i,exp:l,PI:s}=Math,c,f;if(t==1)return r(e*s/2)/n(e*s/2);if(t==2)return a(2/(e*(2-e))-2);let p=1/(t-.5),h=48/(p*p),m=((20700*p/h-98)*p-16)*p+96.36,w=((94.5/(h+m)-3)/h+1)*a(p*s*.5)*t;return c=w*e,f=i(c,2/t),f>.05+p?(c=O7t(e/2),f=c*c,t<5&&(m=m+.3*(t-4.5)*(c+.6)),m=(((.05*w*c-5)*c-7)*c-2)*c+h+m,f=(((((.4*f+6.3)*f+36)*f+94.5)/m-f-3)/h+1)*c,f=p*f*f,f>.002?f=l(f)-1:f=.5*f*f+f):f=((1/(((t+6)/(t*f)-.089*w-.822)*(t+2)*3)+.5/(t+4))*f-1)*(t+1)/(t+2)+1/f,a(t*f)}function Q7t(e){let t=e.length,n=0,r=0,a=0,i=0;for(let c=0;c<e.length;++c){let f=e[c].x,p=e[c].y;if(!Number.isFinite(f)||!Number.isFinite(p)){--t;continue}n+=f,r+=p,a+=f*p,i+=f*f}let l=(t*a-n*r)/(t*i-n*n),s=(r-l*n)/t;return[l,s]}function z7t(e,t,n){let r=p=>p*t+n,a=e.length,i=Lc(e,p=>p.x)/e.length,l=kK(BK,a-2),s=Math.sqrt(Lc(e,p=>(p.y-r(p.x))**2)/(a-2)/Lc(e,p=>(p.x-i)**2)),c=s*l,f=s*Math.sqrt(Lc(e,p=>p.x**2)/a)*l;return{slope:t,intercept:n,slopeError:c,interceptError:f}}function U7t(e,t){let n=Lc(e,s=>s.x)/e.length,r=0,a=0;for(let s=0;s<e.length;++s)r+=Math.pow(e[s].x-n,2),a+=Math.pow(e[s].y-t(e[s].x),2);let i=Math.sqrt(a/(e.length-2)),l=kK(BK,e.length-2);return function(s){let c=t(s),f=i*Math.sqrt(1/e.length+Math.pow(s-n,2)/r),p=c-l*f,h=c+l*f;return{x:s,y:c,left:isNaN(p)?c:p,right:isNaN(h)?c:h}}}function G7t(e){let t=e.length;return Math.pow((t*Lc(e,n=>n.x*n.y)-Lc(e,n=>n.x)*Lc(e,n=>n.y))/(Math.sqrt(t*Lc(e,n=>n.x*n.x)-Math.pow(Lc(e,n=>n.x),2))*Math.sqrt(t*Lc(e,n=>n.y*n.y)-Math.pow(Lc(e,n=>n.y),2))),2)}function j7t(e,t){let n=Rs(e,t);return Rs(e.map(r=>(t(r)-n)**2))}function TK(e,t){return Math.sqrt(j7t(e,t))}function Y7t(e,t,n){let r=Rs(e,t),a=Rs(e,n),i=e.length;return Lc(e,l=>(l.x-r)*(l.y-a))/i}function W7t(e){let t=Y7t(e,a=>a.x,a=>a.y),n=TK(e,a=>a.x),r=TK(e,a=>a.y);return t/(n*r)}function X7t(e,t){let n=e.length,r=1,a=1,i=n-r-1,l=Rs(e,m=>m.y),s=Lc(e,m=>(t(m.x)-l)**2),c=Lc(e,m=>(t(m.x)-m.y)**2),f=s/a,p=c/i,h=f/p;return 1-(0,V7t.default)(h,a,i)}function K7t(e,t,n,r,a){return a?t.reduce((i,l)=>{let s=e[l].dots;return i[l]=n.map(c=>{let f=s.filter(B=>r.every((T,P)=>String(B.data[T.value])===c[P])),[p=0,h=0]=_A(f,B=>B.x),[m,w]=Q7t(f),E=B=>m*B+w,b=U7t(f,E);return{predict:E,getInterval:b,getArea:(B,T,P)=>TB().x(M=>B(M.x)).y0(M=>T(M.left)).y1(M=>T(M.right))(P.map(b))??"",color:a.color,bounded:a.bounded,data:f[0].data,showStats:!0,xBounds:[p,h],stats:{r2:G7t(f),r:W7t(f),pValue:X7t(f,E),coefficients:z7t(f,m,w)}}}),i},{}):null}function _K(e){if(!e.length)return[];let t=[[]];return e.forEach(n=>{let r=[];n.forEach(a=>{r.push(...t.map(i=>[...i,a]))}),t=r}),t}function Z7t(e,t,n,r){return t.reduce((a,i)=>{let l=ar.uniqBy(e.rows,p=>p[i.value]),s=p=>String(p[i.value]),c=p=>i.valueLabels?String(p[i.valueLabels]):s(p),f=new Set;return n.forEach(p=>{p.aes&&Object.entries(p.aes).forEach(([h,m])=>{typeof m=="object"&&"type"in m&&m.value===i.value&&f.add(h)})}),a[i.value]={values:l.map(s).filter(p=>p!=="null"),usedAes:[...f],aesMap:r[i.value],labels:l.reduce((p,h)=>(p[s(h)]=c(h),p),{})},a},{})}var J7t=class extends Tg{constructor(t,n){super(t,n);ke(this,"settings");ke(this,"chartRenderer",new $7t);ke(this,"calculatedData",null);this.settings=new xK(n)}mount(t){try{this.chartRenderer.init(t),this._updateData(),this._updateChart()}catch(n){n instanceof Error&&this.chartRenderer.renderError(n.message)}}unmount(){this.chartRenderer.clear()}updateSettingsAndData(t,n){try{let r=this.settings,a=this.data;this.settings=new xK(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){console.warn("no chart state for scatterplot")}export(){return this._updateChart(),l3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,l;return t.facetBy.some((s,c)=>{var f;return s.value!==((f=n.facetBy[c])==null?void 0:f.value)})||t.grouping.length!==n.grouping.length||t.grouping.some((s,c)=>{var f;return s.value!==((f=n.grouping[c])==null?void 0:f.value)})||(((r=t.label)==null?void 0:r.value)||((a=n.label)==null?void 0:a.value))&&((i=t.label)==null?void 0:i.value)!==((l=n.label)==null?void 0:l.value)||t.layers.length!==n.layers.length||t.layers.some((s,c)=>s.type!==n.layers[c].type)||!!t.trend!=!!n.trend}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var l;return t.data[i].length!==((l=n.data[i])==null?void 0:l.length)})}_updateData(){let{x:t,y:n,facetBy:r,grouping:a,keyColumn:i,trend:l,layers:s,inheritedAes:c,label:f}=this.settings,p=this.data.getColumnCategories(i.value),h=r.map(O=>this.data.getColumnCategories(O.value)),m=a.map(O=>this.data.getColumnCategories(O.value)),w=h.length?_K([...h]):[["null"]],E=m.length?_K([...m]):[["null"]],b=r.map(O=>O.value)??null;this.data.setGrouping([...b,i.value]);let B={x:this.data.rows.every(O=>{let Q=O[t.value];return Q===null||!(Number(Q)<0)}),y:this.data.rows.every(O=>{let Q=O[n.value];return Q===null||!(Number(Q)<0)})},T=s7t(this.data,w,t,n,f,p),P=Object.keys(T),M=K7t(T,P,E,a,l),z=Z7t(this.data,a,s,c),$=u7t(s,P,T,E,a);this.calculatedData={onlyPositive:B,dotsByFacets:T,facetKeys:P,facetKeysCombinations:w,trendsData:M,legendLabels:z,layersData:$}}_updateAesInData(){let t=this.calculatedData;if(!t)return;let{grouping:n,trend:r,layers:a,inheritedAes:i}=this.settings,{facetKeys:l,trendsData:s}=t;l.forEach(c=>{for(let f=0;f<a.length;f++)t.layersData[c][f].info=a[f]}),n.forEach(c=>{let f=new Set;a.forEach(p=>{p.aes&&Object.entries(p.aes).forEach(([h,m])=>{typeof m=="object"&&"type"in m&&m.value===c.value&&f.add(h)})}),t.legendLabels[c.value].usedAes=[...f],t.legendLabels[c.value].aesMap=i[c.value]}),s&&r&&Object.keys(s).forEach(c=>{s[c].forEach(f=>{f.color=r.color,f.bounded=r.bounded})})}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,facetSettings:r,grouping:a,keyColumn:i,inheritedAes:l,layers:s}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.facetKeys,this.calculatedData.facetKeysCombinations,this.calculatedData.dotsByFacets,this.calculatedData.trendsData,i,this.calculatedData.onlyPositive,this.calculatedData.legendLabels,this.calculatedData.layersData,l,a,s)}},Z8={TOP:30,BOTTOM:30,LEFT:30,RIGHT:30},m9=20,PK=4,xP=24;function q7t(e,t,n=[]){let r=e.data,a=[`x: ${Qi(e.x)}`,`y: ${Qi(e.y)}`];t.label&&a.unshift(`${t.label}: ${r[t.label]}`);for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function DK(e){return typeof e=="string"?e:e.label??e.value}function e5t({settingsId:e,scales:t,chartSettings:n,mainTitle:r,keyColumn:a,margins:i,chartSizes:l,onlyPositive:s,container:c,zoomStateKey:f,aesGetter:p,legendData:h,labels:m,selectedDot:w=null}){var K;let{title:E,xAxis:b,yAxis:B,frame:T,legend:P}=n,M=b.showTicks?PK:0,z=B.showTicks?PK:0,$=b.title,O=B.title,Q={left:0,right:l.chartWidth,top:0,bottom:l.chartHeight};return c?ie.jsxs(a2,{dataId:e,children:[ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${l.totalWidth} ${l.totalHeight}`,width:l.totalWidth,height:l.totalHeight,children:[ie.jsx("defs",{children:Dg}),ie.jsxs("g",{transform:`translate(${i.left},${i.top})`,fontFamily:"Manrope",children:[ie.jsx(i2,{title:r,show:E.show,position:E.position,leftPadding:i.left,rightPadding:i.right,chartsWidth:l.chartWidth}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[$&&ie.jsx("text",{x:l.chartWidth/2,y:l.chartHeight+i.bottom-m9/2,children:DK($)}),O&&ie.jsx("text",{x:-i.left+m9/2,y:l.chartHeight/2,transform:`rotate(-90,${-i.left+m9/2},${l.chartHeight/2})`,children:DK(O)})]}),ie.jsx(hK,{width:l.chartWidth,height:l.chartHeight,scaleX:t.x,scaleY:t.y,axisX:b,axisY:B,updatingKey:f,frameType:T.type}),ie.jsx("g",{transform:`translate(0,${l.chartHeight})`,children:ie.jsx(K8,{scale:t.x,orient:"bottom",onlyPositive:s.x,tickSize:M})}),ie.jsx("g",{children:ie.jsx(K8,{scale:t.y,orient:"left",onlyPositive:s.y,tickSize:z})}),w&&ie.jsx(Fc,{content:q7t(w,a,(K=n.tooltips)==null?void 0:K.content),x:t.x(w.x),y:t.y(w.y),active:!0,sideDistances:Q,container:c}),P.show&&ie.jsx("g",{transform:`translate(${l.chartWidth+xP},0)`,children:ie.jsx(yK,{legendData:h})})]})]}),CB.createPortal(ie.jsxs("g",{children:[m.map(j=>{let{name:W,height:V,bbox:U,width:Z}=j;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${U.minX},${U.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:Z,height:V,fill:"transparent",stroke:"none"}),ie.jsx("text",{x:0,y:V/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:W})]})},j.dot.id)}),w&&ie.jsx("circle",{cx:t.x(w.x),cy:t.y(w.y),r:5,fill:p(w.data)})]}),c)]}):null}var MK=e=>e.selection()!==e,HK=(e,t)=>{e=e||"g";let n=(i,l)=>l,r=null,a=function(i,l){l=l||(w=>w);let s=i.selection(),c=MK(i)?i:null,f=s.selectChildren(t==null?e:`${e}.${t}`).data(l,n),p=f.enter().append(e).attr("class",t),h=f.exit();f=f.merge(p);let m=c||r;return m&&(f=f.transition(m).style("opacity",1),p.style("opacity",1e-6),h=h.transition(m).style("opacity",1e-6)),h.remove(),f.enter=()=>p,f.exit=()=>h,f};return a.element=(...i)=>i.length?(e=i[0],a):e,a.className=(...i)=>i.length?(t=i[0],a):t,a.key=(...i)=>i.length?(n=i[0],a):n,a.transition=(...i)=>i.length?(r=i[0],a):r,a},IK=(e,t,n)=>{let r=t[n];if(typeof r!="function")throw new Error(`Attempt to rebind ${n} which isn't a function on the source object`);return(...a)=>{var i=r.apply(t,a);return i===t?e:i}},RK=(e,t,...n)=>{for(let r of n)e[r]=IK(e,t,r);return e},t5t=e=>t=>e.reduce((n,r)=>n&&r(n),t),BP=(e,t,...n)=>{let r=t5t(n);for(let a of Object.keys(t)){let i=r(a);i&&(e[i]=IK(e,t,a))}return e},n5t=e=>e.map(t=>typeof t=="string"?new RegExp(`^${t}$`):t),r5t=(...e)=>(e=n5t(e),t=>e.every(n=>!n.test(t))&&t),f2=e=>typeof e=="function"?e:()=>e;function a5t(){let e=arguments;return function(t,n){for(let r=0,a=e.length;r<a;r++)if(e[r](t,n)==null)return!1;return!0}}var i5t=(e,t)=>{switch(e){case"left":return t/2;case"right":return-t/2;default:return 0}},NK=e=>{let t=Object.assign({},e),n=()=>{};return Object.keys(t).forEach(r=>{n[r]=(...a)=>a.length?(t[r]=a[0],n):t[r]}),n},o5t=()=>{let e=()=>0,t=s=>s.x,n=s=>s.y,r="center",a=()=>5,i="vertical",l=NK({decorate:()=>{},defined:(s,c)=>a5t(e,t,n)(s,c),xScale:X1(),yScale:X1()});return l.values=(s,c)=>{let f=a(s,c),p=i5t(r,f),h=l.xScale(),m=l.yScale();if(i==="vertical"){let w=m(n(s,c),c),E=m(e(s,c),c),b=h(t(s,c),c)+p;return{d:s,x:b,y:w,y0:E,width:f,height:w-E,origin:[b,w],baseOrigin:[b,E],transposedX:b,transposedY:w}}else{let w=h(n(s,c),c),E=h(e(s,c),c),b=m(t(s,c),c)+p;return{d:s,x:b,y:w,y0:E,width:f,height:w-E,origin:[w,b],baseOrigin:[E,b],transposedX:w,transposedY:b}}},l.xValues=()=>i==="vertical"?[t]:[e,n],l.yValues=()=>i!=="vertical"?[t]:[e,n],l.baseValue=(...s)=>s.length?(e=f2(s[0]),l):e,l.crossValue=(...s)=>s.length?(t=f2(s[0]),l):t,l.mainValue=(...s)=>s.length?(n=f2(s[0]),l):n,l.bandwidth=(...s)=>s.length?(a=f2(s[0]),l):a,l.align=(...s)=>s.length?(r=s[0],l):r,l.orient=(...s)=>s.length?(i=s[0],l):i,l},l5t=()=>{let e=o5t(),t=f2(64),n=pL,r=Xw(),a=Xw(),i=Xw().type(Z0.UNSIGNED_SHORT),l=Xw().type(Z0.UNSIGNED_BYTE),s=rAt().crossValueAttribute(r).mainValueAttribute(a).sizeAttribute(i).definedAttribute(l),c=(E,b)=>!1,f=fAt,p=[],h=null,m=null,w=E=>{let b=f(e.xScale()),B=f(e.yScale()),T=!c(p,E);T&&(p=E,i.value((P,M)=>t(P,M)).data(E),l.value((P,M)=>e.defined()(P,M)).data(E)),(T||b.scale!==h)&&(h=b.scale,e.orient()==="vertical"?r.value((P,M)=>b.scale(e.crossValue()(P,M))).data(E):r.value((P,M)=>b.scale(e.mainValue()(P,M))).data(E)),(T||B.scale!==m)&&(m=B.scale,e.orient()==="vertical"?a.value((P,M)=>B.scale(e.mainValue()(P,M))).data(E):a.value((P,M)=>B.scale(e.crossValue()(P,M))).data(E)),s.xScale(b.webglScale).yScale(B.webglScale).type(gAt(n)).decorate(P=>e.decorate()(P,E,0)),s(E.length)};return w.size=(...E)=>E.length?(t=f2(E[0]),w):t,w.type=(...E)=>E.length?(n=E[0],w):n,w.equals=(...E)=>E.length?(c=E[0],w):c,w.scaleMapper=(...E)=>E.length?(f=E[0],w):f,BP(w,e,r5t("baseValue","bandwidth","align")),RK(w,s,"context","pixelRatio"),w},$K=()=>{let e=[],t=a=>a,n=(a,i)=>i,r=NK({decorate:()=>{},xScale:X1(),yScale:X1()});return r.xValues=()=>e.map(a=>a.xValues()).reduce((a,i)=>a.concat(i)),r.yValues=()=>e.map(a=>a.yValues()).reduce((a,i)=>a.concat(i)),r.mapping=(...a)=>a.length?(t=a[0],r):t,r.key=(...a)=>a.length?(n=a[0],r):n,r.series=(...a)=>a.length?(e=a[0],r):e,r},s5t=()=>{let e=$K(),t=HK("g"),n=HK("g","multi"),r=a=>{MK(a)&&(n.transition(a),t.transition(a));let i=e.mapping(),l=e.series(),s=e.xScale(),c=e.yScale();a.each((f,p,h)=>{let m=n(Fs(h[p]),l);m.each((w,E,b)=>{w.xScale(s).yScale(c);let B=i(f,E,l);t(Fs(b[E]),[B]).call(w)}),m.selection().order(),e.decorate()(m,f,p)})};return BP(r,e),RK(r,n,"key"),r},u5t=()=>{let e=null,t=1,n=$K(),r=a=>{let i=n.mapping(),l=n.series(),s=n.xScale(),c=n.yScale();l.forEach((f,p)=>{let h=i(a,p,l);f.context(e).pixelRatio(t).xScale(s).yScale(c);let m;f.decorate?(m=f.decorate(),f.decorate((w,E,b)=>{n.decorate()(w,a,p),m(w,E,b)})):n.decorate()(e,a,p),f(h),m&&f.decorate(m)})};return r.context=(...a)=>a.length?(e=a[0],r):e,r.pixelRatio=(...a)=>a.length?(t=a[0],r):t,BP(r,n),r};function c5t(e){return e&&typeof e=="object"&&e.type==="grouping"}function LK(e={},t,n){return function(r){var a,i;if(c5t(n)){let l=n.value,s=r[l];return(i=((a=e[l])==null?void 0:a[String(s)])??rP)==null?void 0:i[t]}return n}}var f5t=class{constructor(){ke(this,"reactRoot",null);ke(this,"parentNode",null);ke(this,"rootNode",null);ke(this,"canvasNode",null);ke(this,"svgLayerElement",null);ke(this,"svgLayerComponent",ie.jsx(ie.Fragment,{}));ke(this,"tools",null);ke(this,"margins",{top:Df,bottom:Df,left:Df,right:Df});ke(this,"chartSizes",{chartWidth:600,chartHeight:350,totalWidth:600,totalHeight:350});ke(this,"scales",{x:Ua().domain([0,10]).range([0,600]),y:Ua().domain([0,10]).range([350,0]),xOriginal:Ua().domain([0,10]).range([0,600]),yOriginal:Ua().domain([0,10]).range([350,0])});ke(this,"zoomStateKey","");ke(this,"selectedDot",null);ke(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});ke(this,"mainTitle",[]);ke(this,"legend",{width:0,height:0,items:[]});ke(this,"notCalculatedProps",{});ke(this,"allPossibleLabels",[]);ke(this,"visibleLabels",[])}clear(){var e,t;this.parentNode&&this.rootNode&&this.canvasNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),(t=this.parentNode)==null||t.removeChild(this.canvasNode),this.parentNode=null,this.rootNode=null,this.canvasNode=null,this.svgLayerElement=null,this.tools=null),setTimeout(()=>{var n;(n=this.reactRoot)==null||n.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.canvasNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.parentNode.appendChild(this.canvasNode),this.reactRoot=Fh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateViewport(e,t,n){let r=e.scale==="log"?Im():Ua(),{minX:a,minY:i,maxX:l,maxY:s}=n;if(e.lowerValue!==void 0&&(a=Math.max(a,e.lowerValue)),e.upperValue!==void 0&&(l=Math.min(l,e.upperValue)),t.lowerValue!==void 0&&(i=Math.max(i,t.lowerValue)),t.upperValue!==void 0&&(s=Math.min(s,t.upperValue)),e.symmetricRange!==void 0){let w=e.symmetricRange;if(w>=a&&w<=l){let E=Math.max(w-a,l-w);a=w-E,l=w+E}}if(typeof t.symmetricRange<"u"){let w=t.symmetricRange;if(w>=i&&w<=s){let E=Math.max(w-i,s-w);i=w-E,s=w+E}}let c=[0,this.chartSizes.chartWidth],f=r.copy().domain([a,l]).range([Z8.LEFT,this.chartSizes.chartWidth-Z8.RIGHT]);r.domain([f.invert(0),f.invert(this.chartSizes.chartWidth)]).range(c).nice(),this.scales.x=r,this.scales.xOriginal=r.copy();let p=t.scale==="log"?Im():Ua(),h=[this.chartSizes.chartHeight,0],m=p.copy().domain([i,s]).range([this.chartSizes.chartHeight-Z8.BOTTOM,Z8.TOP]);p.domain([m.invert(this.chartSizes.chartHeight),m.invert(0)]).range(h).nice(),this.scales.y=p,this.scales.yOriginal=p.copy()}updateCaptionsSize(e){let t=new Vs("600 14px Arial");function n(l){return Math.max(...l.map(s=>t.getTextWidth(s)))}let{ticks:r,format:a}=h9(this.scales.y,e),i=n(r.map(a));this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:i}}createMainTitle(e){this.mainTitle=Fv(e.name,this.chartSizes.totalWidth-this.margins.left-this.margins.right,20)}updateMargins(){let e=24*this.mainTitle.length,t=e>0?e+24*2:0;this.margins={top:Math.max(t,Df),bottom:Df+this.captionsSizes.xAxisCaptionsWidth+m9,left:Df+this.captionsSizes.yAxisCaptionsWidth+m9,right:this.legend.width+(this.legend.width>0?xP:0)+Df},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartHeight,this.legend.height)+this.margins.bottom,Fs(this.canvasNode).style("width",this.chartSizes.chartWidth+"px").style("height",this.chartSizes.chartHeight+"px").style("top",this.margins.top+"px").style("left",this.margins.left+"px")}updateLegendSize(e,t,n){if(!e.show){this.legend={width:0,height:0,items:[]};return}let r=new Vs("600 14px Arial"),a=16,i=48,l=20,s=24;function c(P,M){return Math.max(...P.map(z=>r.getTextWidth(String(z))+l),r.getTextWidth(M))}let f=[];n.forEach(P=>{let M=t[P.value];if(M.usedAes.length===0||!M.aesMap)return;let z=P.label??P.value,$=M.values,O={};$.forEach(Q=>{O[Q]||(O[Q]={...aP}),M.usedAes.forEach(K=>{var j,W;K==="dotFill"&&(O[Q].color=((j=M.aesMap[Q])==null?void 0:j[K])??Vt),K==="dotSize"&&(O[Q].size=((W=M.aesMap[Q])==null?void 0:W[K])??3)})}),f.push({columnKey:z,data:O,values:M.values,labels:M.labels})});let p=[],h=0,m=0,w=0,E=this.chartSizes.chartHeight,b=this.chartSizes.chartHeight;f.map(({columnKey:P,labels:M,values:z,data:$})=>{let O=P,Q=c(z.map(U=>M[U]),O),K=z.length*a;K>E&&(b=K);let j=nl().domain(z).range(z.map(U=>$[U])),W=w,V=m;p.push({type:"dots",id:P,width:Q,height:K,left:W,top:V,title:O,scale:j,values:z,labels:M}),h=Q,m+=K+i,m>E&&(m=0,w=Q+s)});let B=w+h+2*xP,T=b;this.legend={width:B,height:T,items:p}}initSettings(e,t,n,r,a,i,l,s){let{xAxis:c,yAxis:f,size:p,title:h,legend:m}=t;this.updateChartSizes(p),this.updateViewport(c,f,n),this.updateCaptionsSize(r.y),this.updateLegendSize(m,l,s),this.createMainTitle(h),this.updateMargins();let w=i.find($=>$.type==="dots"),E=LK(a,"dotFill",w.aes.dotFill),b=wAt().data(e).value($=>{let O=$7(E($.data));return[O.r/255,O.g/255,O.b/255,1]}),B=l5t().equals(($,O)=>$===O).size(100).crossValue($=>$.x).mainValue($=>$.y).decorate($=>b($)),T=Edt().scaleExtent([.1,1e3]).on("start",()=>{this.selectedDot=null}).on("zoom",$=>{let O=$.transform,Q=O.rescaleX(this.scales.xOriginal),K=O.rescaleY(this.scales.yOriginal);this.scales.x.domain(Q.domain()),this.scales.y.domain(K.domain()),this.zoomStateKey=`${O.x}_${O.y}_${O.k}`,this.renderSvgLayer(),this.renderWebglLayer()}).on("end",()=>{this.allPossibleLabels.forEach($=>{$.x=this.scales.x($.dot.x),$.y=this.scales.y($.dot.y)}),this.visibleLabels=X8(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.renderSvgLayer()}),P=x_().x($=>$.x).y($=>$.y).addAll(e),M=CAt().on("point",([$])=>{var W,V;if(!$){this.selectedDot=null,this.renderSvgLayer();return}let O=this.scales.x.invert($.x),Q=this.scales.y.invert($.y),K=(W=this.tools)==null?void 0:W.qt.find(O,Q),j=this.selectedDot&&!K||!this.selectedDot&&K||((V=this.selectedDot)==null?void 0:V.id)!==(K==null?void 0:K.id);this.selectedDot=K??null,j&&this.renderSvgLayer()}),z=Zdt({xScale:this.scales.x,yScale:this.scales.y}).xAxisHeight(()=>"0").yAxisWidth(()=>"0").svgPlotArea(s5t()).webglPlotArea(u5t().series([B]).mapping($=>$)).decorate($=>{let O=$.enter();O&&!this.svgLayerElement&&(O.style("grid-template-columns","0 auto 1fr auto 0"),O.style("grid-template-rows","0 auto 1fr auto 0"),this.svgLayerElement=O.select(".svg-plot-area.plot-area svg").node()),O.select(".svg-plot-area.plot-area").call(T).call(M)});this.tools={webglChart:z,zoom:T,qt:P,fillColor:b,pointSeries:B,aesGetter:E},Fs(this.canvasNode).datum(e).style("position","absolute").style("width",this.chartSizes.chartWidth+"px").style("height",this.chartSizes.chartHeight+"px").style("top",this.margins.top+"px").style("left",this.margins.left+"px")}updateAes(e,t){var a;if(this.tools===null)return;let n=t.find(i=>i.type==="dots"),r=LK(e,"dotFill",n.aes.dotFill);this.tools.aesGetter=r,(a=this.tools)==null||a.fillColor.value(i=>{let l=$7(r(i.data));return[l.r/255,l.g/255,l.b/255,1]})}updateData(e){this.tools!==null&&(Fs(this.canvasNode).datum(e),this.tools.fillColor.data(e),this.tools.qt=x_().x(t=>t.x).y(t=>t.y).addAll(e))}render(e,t,n,r,a,i,l,s,c,f,p){if(this.tools===null)this.initSettings(a,t,i,r,l,s,c,f);else{let{title:h,legend:m}=t;this.updateLegendSize(m,c,f),this.createMainTitle(h),this.updateMargins(),this.updateAes(l,s)}this.allPossibleLabels=p,this.allPossibleLabels.forEach(h=>{h.x=this.scales.x(h.dot.x),h.y=this.scales.y(h.dot.y)}),this.visibleLabels=X8(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.notCalculatedProps={settingsId:e,chartSettings:t,onlyPositive:r,keyColumn:n},this.renderWebglLayer(),this.renderSvgLayer()}renderWebglLayer(){var e,t;(e=this.tools)!=null&&e.webglChart&&Fs(this.canvasNode).call((t=this.tools)==null?void 0:t.webglChart)}renderSvgLayer(){var t,n;this.visibleLabels.forEach(r=>{r.x=this.scales.x(r.dot.x),r.y=this.scales.y(r.dot.y)}),p7t(this.visibleLabels);let e={...this.notCalculatedProps,chartSizes:this.chartSizes,scales:this.scales,margins:this.margins,mainTitle:this.mainTitle,captionsSizes:this.captionsSizes,container:this.svgLayerElement,zoomStateKey:this.zoomStateKey,selectedDot:this.selectedDot,aesGetter:(t=this.tools)==null?void 0:t.aesGetter,legendData:this.legend,labels:this.visibleLabels};this.svgLayerComponent=ie.jsx(e5t,{...e}),(n=this.reactRoot)==null||n.render(this.svgLayerComponent)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},d5t=f5t,kP=R.object({type:R.literal("grouping"),value:R.string()}),A5t=R.object({type:R.literal("dots"),aes:R.optional(R.object({dotFill:R.optional(R.union([R.string(),kP])),dotShape:R.optional(R.union([Ed,kP])),dotSize:R.optional(R.union([R.number(),kP]))}))}),p5t=A5t,h5t=R.object({type:R.literal("scatterplot-umap"),title:R.object({name:R.string(),show:R.optional(R.boolean()),position:R.optional(Rv)}),size:R.optional(R.object({width:R.optional(R.number()),height:R.optional(R.number())})),legend:R.optional(R.object({show:R.optional(R.boolean()),position:R.optional(_g)})),tooltips:R.optional(R.object({show:R.optional(R.boolean()),content:R.optional(R.array(er))})),frame:R.optional(R.object({type:R.optional(o9)})),keyColumn:er,x:er,y:er,xAxis:R.optional(Z3),yAxis:R.optional(Z3),grouping:R.optional(R.array(er)),label:R.optional(er),inheritedAes:R.optional(R.record(R.string(),K3)),layers:R.array(p5t)}),v5t=class{constructor(e){ke(this,"type","dots");ke(this,"aes",{dotFill:Vt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},FK=class{constructor(e){ke(this,"id");ke(this,"type","scatterplot-umap");ke(this,"keyColumn");ke(this,"x");ke(this,"y");ke(this,"grouping");ke(this,"label");ke(this,"chartSettings");ke(this,"inheritedAes");ke(this,"layers");var t,n,r,a;h5t.parse(e),this.id=ar.uniqueId("settings"),this.keyColumn=e.keyColumn,this.x=e.x,this.y=e.y,this.grouping=e.grouping??[],this.label=e.label??null,this.chartSettings={size:{width:((t=e==null?void 0:e.size)==null?void 0:t.width)??600,height:((n=e==null?void 0:e.size)==null?void 0:n.height)??350},title:{position:"center",show:!0,...e.title,name:((r=e.title)==null?void 0:r.name)??"Chart"},yAxis:{title:e.y.label??e.y.value,scale:"linear",showGrid:!0,showTicks:!0,...e.yAxis},xAxis:{title:e.x.label??e.x.value,scale:"linear",showGrid:!0,showTicks:!0,...e.xAxis},frame:{type:((a=e.frame)==null?void 0:a.type)??"full"},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.inheritedAes=e.inheritedAes??{},this.layers=e.layers.map(i=>{if(i.type==="dots")return new v5t(i);throw new Error("Unknown layer type")}).filter(Boolean)}};function m5t(e,t,n,r){return t.reduce((a,i)=>{let l=ar.uniqBy(e.rows,p=>p[i.value]),s=p=>String(p[i.value]),c=p=>i.valueLabels?String(p[i.valueLabels]):s(p),f=new Set;return n.forEach(p=>{p.aes&&Object.entries(p.aes).forEach(([h,m])=>{typeof m=="object"&&"type"in m&&m.value===i.value&&f.add(h)})}),a[i.value]={values:l.map(s),usedAes:[...f],aesMap:r[i.value],labels:l.reduce((p,h)=>(p[s(h)]=c(h),p),{})},a},{})}var g5t=10;function y5t(e){let t=[],n=new Vs("16px Manrope");for(let r of e){let a=r.label;if(!a)continue;let i=n.getTextMetrics(String(a));t.push({name:String(a),width:i.width,height:i.actualBoundingBoxAscent+i.actualBoundingBoxDescent,x:0,y:0,xPosition:"right",yPosition:"middle",bbox:{minX:0,maxX:0,minY:0,maxY:0},dot:r,padding:g5t})}return t}var w5t=class extends Tg{constructor(t,n){super(t,n);ke(this,"settings");ke(this,"chartRenderer",new d5t);ke(this,"calculatedData",null);this.settings=new FK(n)}mount(t){this.chartRenderer.init(t),this._updateData(),this._updateChart()}unmount(){this.chartRenderer.clear()}updateSettingsAndData(t,n){try{let r=this.settings,a=this.data;this.settings=new FK(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){console.warn("no chart state for scatterplot")}export(){return console.warn("export not implemented"),""}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,l;return t.grouping.length!==n.grouping.length||t.grouping.some((s,c)=>{var f;return s.value!==((f=n.grouping[c])==null?void 0:f.value)})||(((r=t.label)==null?void 0:r.value)||((a=n.label)==null?void 0:a.value))&&((i=t.label)==null?void 0:i.value)!==((l=n.label)==null?void 0:l.value)}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var l;return t.data[i].length!==((l=n.data[i])==null?void 0:l.length)})}_updateData(){let{x:t,y:n,keyColumn:r,label:a,grouping:i,layers:l,inheritedAes:s}=this.settings,c={x:!0,y:!0},f={minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0},p=this.data.rows.map(m=>{let w=Number(m[t.value]),E=Number(m[n.value]);return c.x&&w!==null&&w<0&&(c.x=!1),c.y&&E!==null&&E<0&&(c.y=!1),w!==null&&w<f.minX&&(f.minX=w),w!==null&&w>f.maxX&&(f.maxX=w),E!==null&&E<f.minY&&(f.minY=E),E!==null&&E>f.maxY&&(f.maxY=E),{x:w,y:E,id:String(m[r.value]),label:a&&m[a.value]?String(m[a.value]):null,data:m}}),h=m5t(this.data,i,l,s);this.calculatedData={onlyPositive:c,dots:p,allPossibleLabels:y5t(p),dotsExtents:f,legendLabels:h},this.chartRenderer.updateData(p)}_updateAesInData(){let t=this.calculatedData;if(!t)return;let{layers:n,inheritedAes:r,grouping:a}=this.settings;this.chartRenderer.updateAes(r,n),a.forEach(i=>{let l=new Set;n.forEach(s=>{s.aes&&Object.entries(s.aes).forEach(([c,f])=>{typeof f=="object"&&"type"in f&&f.value===i.value&&l.add(c)})}),t.legendLabels[i.value].usedAes=[...l],t.legendLabels[i.value].aesMap=r[i.value]})}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,keyColumn:r,inheritedAes:a,layers:i,grouping:l}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.onlyPositive,this.calculatedData.dots,this.calculatedData.dotsExtents,a,i,this.calculatedData.legendLabels,l,this.calculatedData.allPossibleLabels)}};function C5t(e){let t=JI(e),n=Rs(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function b5t(e){let t=Rs(e),[n,r]=_A(e);return t===void 0||n===void 0||r===void 0?a=>a:a=>(a-t)/(r-n)}function E5t(e,t){return e==="standardScaling"?C5t(t):e==="meanNormalization"?b5t(t):n=>n}function S5t(e,t,n,r,a,i,l,s,c,f){let p={meta:{facetKeys:l,xKeys:[],yKeys:[],xLabels:{},yLabels:{},facetKeyValues:l.reduce((b,B,T)=>(b[B]=s[T],b),{}),valueExtentSize:[1/0,-1/0],valueExtentColor:[1/0,-1/0]},facets:{}},h=new Set,m=new Set,w=t.valueLabels??t.value,E=n.valueLabels??n.value;if(e.rows.forEach(b=>{let B=i.length?i.map($=>b[$.value]).join("_"):"null",T=b[t.value],P=b[n.value],M=b[r.value]??f,z=b[a.value]??f;if(!(T===null||P===null||M===null||z===null)){if(p.facets[B]||(p.facets[B]={xKeys:[],yKeys:[],cells:{}}),p.facets[B].xKeys.push(T),p.facets[B].yKeys.push(P),h.has(T)||(h.add(T),p.meta.xKeys.push(T)),m.has(P)||(m.add(P),p.meta.yKeys.push(P)),p.facets[B].cells[T]||(p.facets[B].cells[T]={}),p.meta.valueExtentSize[0]=Math.min(M,p.meta.valueExtentSize[0]),p.meta.valueExtentSize[1]=Math.max(M,p.meta.valueExtentSize[1]),p.meta.valueExtentColor[0]=Math.min(z,p.meta.valueExtentColor[0]),p.meta.valueExtentColor[1]=Math.max(z,p.meta.valueExtentColor[1]),p.facets[B].cells[T][P])throw Error(`More than 1 value for x=${T}, y=${P}`);if(p.meta.xLabels[T]&&String(b[w])!==p.meta.xLabels[T])throw Error(`More than 1 x-label value for x=${T}`);if(p.meta.yLabels[P]&&String(b[E])!==p.meta.yLabels[P])throw Error(`More than 1 y-label value for y=${P}`);p.meta.xLabels[T]=String(b[w]),p.meta.yLabels[P]=String(b[E]),p.meta&&(p.facets[B].cells[T][P]={id:`${T}_${P}`,x:T,y:P,sizeValue:M,normalizedSizeValue:M,colorValue:z,normalizedColorValue:z,data:b})}}),l.forEach(b=>{let B=p.facets[b];B.xKeys=ar.uniq(B.xKeys),B.yKeys=ar.uniq(B.yKeys)}),c){let b=[1/0,-1/0];l.forEach(B=>{let{xKeys:T,yKeys:P,cells:M}=p.facets[B],z=c.direction==="row"?T:P,$=c.direction==="row"?P:T,O=c.direction==="row"?(Q,K)=>{var j;return(j=M[Q])==null?void 0:j[K]}:(Q,K)=>{var j;return(j=M[K])==null?void 0:j[Q]};$.forEach(Q=>{let K=[];z.forEach(W=>{var U;let V=(U=O(W,Q))==null?void 0:U.colorValue;V!==void 0&&K.push(V)});let j=E5t(c.method,K);z.forEach(W=>{let V=O(W,Q);V!==void 0&&(V.normalizedColorValue=j(V.colorValue),b[0]=Math.min(V.normalizedColorValue,b[0]),b[1]=Math.max(V.normalizedColorValue,b[1]))})})}),p.meta.valueExtentColor=b}return p.meta.valueExtentSize[0]===1/0&&(p.meta.valueExtentSize[0]=0),p.meta.valueExtentSize[1]===-1/0&&(p.meta.valueExtentSize[1]=0),p.meta.valueExtentColor[0]===1/0&&(p.meta.valueExtentColor[0]=0),p.meta.valueExtentColor[1]===-1/0&&(p.meta.valueExtentColor[1]=0),p}var x5t=15,Hg=8,J8=30,B5t=48,k5t=24,q8=16,d2=4,eE=4,VK=20,T5t=16,o1={left:["axis","axisTitle"],right:["axis","axisTitle"],top:["axis","axisTitle","facetTitle"],bottom:["axis","axisTitle"]};function _5t(e,t,n,r,a,i,l){let s=r.includes(t.position),c=r.includes(e.position),f=a.length>1,p=e.showTicks?eE:0,h=t.showTicks?eE:0,m=c&&e.showTitle?J8:0,w=s&&t.showTitle?J8:0,E=c&&e.showAxisLabels&&i>q8?n.xAxisCaptions+p+d2:0,b=s&&t.showAxisLabels&&l>q8?n.yAxisCaptions+h+d2:0;return{left:{axisTitle:t.position==="left"?w:0,axis:t.position==="left"?b:0},right:{axisTitle:t.position==="right"?w:0,axis:t.position==="right"?b:0},top:{facetTitle:f?B5t:0,axisTitle:e.position==="top"?m:0,axis:e.position==="top"?E:0},bottom:{axisTitle:e.position==="bottom"?m:0,axis:e.position==="bottom"?E:0}}}function P5t(e,t,n){return{left:o1.left.reduce((r,a,i)=>{let l=i>0?o1.left[i-1]:null,s=e.left[a];return r[a]={x:l?r[l].x-s:-s,y:0,width:s,height:n,isVisible:s>0},r},{}),right:o1.right.reduce((r,a,i)=>{let l=i>0?o1.right[i-1]:null,s=e.right[a];return r[a]={x:l?r[l].x+r[l].width:t,y:0,width:s,height:n,isVisible:s>0},r},{}),top:o1.top.reduce((r,a,i)=>{let l=i>0?o1.top[i-1]:null,s=e.top[a];return r[a]={x:0,y:l?r[l].y-s:-s,width:t,height:s,isVisible:s>0},r},{}),bottom:o1.bottom.reduce((r,a,i)=>{let l=i>0?o1.bottom[i-1]:null,s=e.bottom[a];return r[a]={x:0,y:l?r[l].y+r[l].height:n,width:t,height:s,isVisible:s>0},r},{})}}function D5t(e,t,n,r){let{xLabels:a,yLabels:i}=n.meta,l=e.xAxisLabels/180*Math.PI,s=e.yAxisLabels/180*Math.PI,c=0,f=0,p=e.xAxisLabels===45;if(p){let m=n.meta.xKeys,w=t.x,E=w>q8,b=a[m[0]];c=Math.max(c,(p&&E?r.getTextWidth(b)*Math.cos(l):0)-w/2)}let h=e.yAxisLabels===45;if(h){let m=n.meta.yKeys;if(m.length){let w=t.y,E=w>q8,b=i[m[m.length-1]];f=Math.max(f,(h&&E?r.getTextWidth(b)*Math.cos(s):0)-w/2)}}return{xCaptionTail:c,yCaptionTail:f}}function M5t({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:l,stepX:s,stepY:c,labelAngles:f,xLabels:p,yLabels:h}){let m=i.showTicks?eE:0,w=l.showTicks?eE:0,E=e.top.axis.isVisible||e.bottom.axis.isVisible,b=e.top.axisTitle.isVisible?e.top.axisTitle:e.bottom.axisTitle,B=e.top.axis.isVisible?e.top.axis:e.bottom.axis,T=e.left.axis.isVisible||e.right.axis.isVisible,P=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,M=e.left.axis.isVisible?e.left.axis:e.right.axis;return ie.jsxs("g",{children:[ie.jsxs("g",{children:[b.isVisible&&ie.jsxs("g",{transform:`translate(${b.x},${b.y})`,children:[ie.jsx("text",{x:b.width/2,y:b.height/2,textAnchor:"middle",dominantBaseline:"central",children:i.title}),t&&ie.jsx("rect",{width:b.width,height:b.height,stroke:Vt,fill:"none"})]}),E&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${B.x},${B.y})`,children:[n.map(z=>{let $=f.xAxisLabels!==0,O=i.position==="bottom",Q=O?0:B.height,K=O?Q+m:Q-m,j=O?K+d2:K-d2,W=a.x(z)+s/2,V=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:W,x2:W,y1:Q,y2:K,stroke:Vt}),ie.jsx("text",{x:W,y:j,textAnchor:$?O?"end":"start":"middle",transform:`rotate(${V},${W},${j})`,dominantBaseline:$?"central":O?"hanging":"auto",children:p[z]})]},z)}),t&&ie.jsx("rect",{width:B.width,height:B.height,stroke:Vt,fill:"none"})]})]}),ie.jsxs("g",{children:[P.isVisible&&ie.jsx("g",{transform:`translate(
15119
+ ${P.y+P.height/2})`,children:ie.jsx("text",{transform:`rotate(${l.position==="left"?-90:90})`,dominantBaseline:"central",textAnchor:"middle",children:l.title})}),t&&ie.jsx("rect",{x:P.x,y:P.y,width:P.width,height:P.height,stroke:Vt,fill:"none"}),T&&ie.jsx("g",{fontSize:"14px",transform:`translate(${M.x},${M.y})`,children:r.map(z=>{let $=f.yAxisLabels!==0,O=l.position==="left",Q=-(90-f.yAxisLabels),K=f.yAxisLabels===0?"middle":O?"end":"start",j=$?"central":O?"auto":"hanging",W=O?M.width:0,V=O?W-w:W+w,U=O?V-e2:V+e2,Z=a.y(z)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:W,x2:V,y1:Z,y2:Z,stroke:Vt}),ie.jsx("text",{x:U,y:Z,textAnchor:K,transform:`rotate(${Q},${U},${Z})`,dominantBaseline:j,children:h[z]})]},z)})}),t&&ie.jsx("rect",{x:M.x,y:M.y,height:M.height,width:M.width,stroke:Vt,fill:"none"})]})]})}function B2t({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:l,stepX:s,stepY:c,xGroupKeys:f,yGroupKeys:p,xKeysByGroups:h,yKeysByGroups:m,xGroupKeyValues:w,yGroupKeyValues:E,labelAngles:b,xLabels:B,yLabels:T}){return ie.jsxs("g",{fontWeight:"500",children:[ie.jsx(x2t,{sideElementBBoxes:e,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:l,stepX:s,stepY:c,labelAngles:b,xLabels:B,yLabels:T,debug:t}),ie.jsx(S2t,{sideElementBBoxes:e,xGroupKeys:f,yGroupKeys:p,xKeysByGroups:h,yKeysByGroups:m,xGroupKeyValues:w,yGroupKeyValues:E,scales:a,stepX:s,stepY:c,xAxis:i,yAxis:l,labelAngles:b,debug:t})]})}function rK(e,t="top"){let{source:n,target:r}=e;return t==="top"||t==="bottom"?`M ${n.x},${n.y} L ${r.x},${n.y} L${r.x},${r.y}`:`M ${n.x},${n.y} L ${n.x},${r.y} L${r.x},${r.y}`}function aK(e,t,n,r,a){if(!n)return"";let i=n.aes[e];if(!s9(i))return i;let l=i.value,s=a[l],c=r[l][t.data.keys[0]];return t.data.keys.every(f=>c===r[l][f])?s(String(c))[e]:s.unknown()[e]}var iK={x:0,y:0,width:0,height:0};function k2t({dendrograms:e,sideElementBBoxes:t,xDataByKeys:n,yDataByKeys:r,aesScales:a}){let i=e.x.data,l=e.y.data,s=i?t[i.position].dendro:iK,c=l?t[l.position].dendro:iK;function f(h,m){return aK(h,m,i,n,a)}function p(h,m){return aK(h,m,l,r,a)}return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${s.x},${s.y})`,children:i&&!i.hidden&&e.x.trees.map((h,m)=>{let w=h.links(),E=h.descendants();return ie.jsxs("g",{children:[w.map(b=>{let B=i.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:rK(b,i.position),stroke:f("lineColor",B),strokeWidth:f("lineWidth",B),strokeDasharray:jA(f("lineShape",B)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),i.showNodes&&E.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:Vc(f("dotShape",b),f("dotSize",b),f("dotFill",b))},`${b.x},${b.y}`))]},m)})}),ie.jsx("g",{transform:`translate(${c.x},${c.y})`,children:l&&!l.hidden&&e.y.trees.map((h,m)=>{let w=h.links(),E=h.descendants();return ie.jsxs("g",{children:[w.map(b=>{let B=l.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:rK(b,l.position),stroke:p("lineColor",B),strokeWidth:p("lineWidth",B),strokeDasharray:jA(p("lineShape",B)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),l.showNodes&&E.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:Vc(p("dotShape",b),p("dotSize",b),p("dotFill",b))},`${b.x},${b.y}`))]},m)})})]})}function T2t({frame:e,width:t,height:n,xGroupKeys:r,yGroupKeys:a,xKeysByGroups:i,yKeysByGroups:l,scales:s,stepX:c,stepY:f}){return ie.jsxs("g",{children:[e.type==="full"&&ie.jsx("rect",{fill:"none",stroke:Vt,x:"0",y:"0",width:t,height:n}),e.type==="groups"&&r.map(p=>{let h=i[p].length;if(h===0)return null;let m=h*c,w=s.x(i[p][0]);return a.map(E=>{let b=l[E].length;if(b===0)return null;let B=b*f,T=s.y(l[E][0]);return ie.jsx("rect",{x:w,y:T,width:m,height:B,stroke:Vt,fill:"none"},`${w}_${T}`)})})]})}function CP(e){if(e===null)return"null";if(typeof e=="number"){let t=e>0?Math.floor(e):Math.ceil(e),n=e-t;return t+Number(n.toPrecision(2))}return e}function _2t(e,t=[]){let n=e.data,r=[`X: ${e.x}`,`Y: ${e.y}`,`Value: ${CP(e.value)}${e.value!==e.normalizedValue?` (${CP(e.normalizedValue)})`:""}`];for(let a of t)r.push(`${a.label}: ${n[a.valueLabels??a.value]}`);return r}function P2t(e){let t=[];return e.xKey&&t.push(`X: ${e.xKey}`),e.yKey&&t.push(`Y: ${e.yKey}`),t.push(`${e.title}: ${CP(e.value)}`),t}function D2t({dendrograms:e,facetKey:t,dimensions:n,scales:r,cells:a,xGroupKeys:i,yGroupKeys:l,xKeysByGroups:s,yKeysByGroups:c,colorScale:f,chartSettings:p,cellsMeta:h,stepX:m,stepY:w,sharedX:E,sharedY:b,annotations:B,annotationColorScales:T,dendrogramAesScales:P,aes:M,labelAngles:z,chartSizes:$,margins:O,tooltipsContainer:Q}){let[K,j]=ir.useState(null),[W,V]=ir.useState(null),{xAxis:U,yAxis:Z,tooltips:q}=p,{width:oe,height:se}=n.inner,{padding:Te,chartEdgeSides:le,sideElementBBoxes:be}=n,{xGroupKeyValues:ge,yGroupKeyValues:Ae,xLabels:Se,yLabels:ze}=h,Re=r.x.domain(),Fe=r.y.domain(),Le={left:O.left+n.left+Te.left,right:$.totalWidth-(O.left+n.left+Te.left),top:O.top+n.top+Te.top,bottom:$.totalHeight-(O.top+n.top+Te.top)},je=!1;return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:fyt,children:[ie.jsxs("g",{transform:`translate(${Te.left},${Te.top})`,children:[ie.jsx(E2t,{sideElementBBoxes:be,annotations:B,cellsMeta:h,annotationColorScales:T,sharedX:E,sharedY:b,chartEdgeSides:le,width:oe,height:se,scales:r,stepX:m,stepY:w,aes:M,frame:p.frame,xGroupKeys:i,yGroupKeys:l,xKeysByGroups:s,yKeysByGroups:c,setSelectedAnnotation:V}),ie.jsx(k2t,{dendrograms:e,sideElementBBoxes:be,xDataByKeys:h.xDataByKeys,yDataByKeys:h.yDataByKeys,aesScales:P}),be.top.facetTitle.isVisible&&ie.jsx("text",{x:be.top.facetTitle.x,y:be.top.facetTitle.y+be.top.facetTitle.height-cyt,fontWeight:"500",fontSize:"20px",children:h.facetKeyValues[t].join(", ")}),je,Re.map(ct=>Fe.map(Qe=>{var st;let Je=(st=a==null?void 0:a[ct])==null?void 0:st[Qe];return Je?ie.jsx("rect",{x:r.x(ct),y:r.y(Qe),width:m,height:w,stroke:M.cellStrokeColor,fill:Je.value===null?M.emptyCellColor:f(Je.normalizedValue),onMouseOver:()=>j(Je),onMouseLeave:()=>j(null)},Je?Je.id:`${ct}_${Qe}`):null})),ie.jsx(T2t,{frame:p.frame,xGroupKeys:i,yGroupKeys:l,xKeysByGroups:s,yKeysByGroups:c,scales:r,stepX:m,stepY:w,width:oe,height:se}),ie.jsx(B2t,{xAxis:U,yAxis:Z,scales:r,stepX:m,stepY:w,debug:je,sideElementBBoxes:be,xKeys:Re,yKeys:Fe,xGroupKeys:i,yGroupKeys:l,xKeysByGroups:s,yKeysByGroups:c,xGroupKeyValues:ge,yGroupKeyValues:Ae,labelAngles:z,xLabels:Se,yLabels:ze})]}),p.tooltips.show&&K&&ie.jsx(Fc,{content:_2t(K,q==null?void 0:q.content),x:r.x(String(K.x))+m/2,y:r.y(String(K.y))+w/2,offset:Re.length>1?m/2:0,active:!0,sideDistances:Le,container:Q}),p.tooltips.show&&W&&ie.jsx(Fc,{content:P2t(W),x:W.x,y:W.y,offset:0,active:!0,sideDistances:Le,container:Q})]})}var oK=14,Y8=12,lK=-12;function M2t({data:e,height:t}){let{continuousItems:n,discreteItems:r}=e,a=!1;return ie.jsxs("g",{fontSize:"12px",children:[ie.jsx("defs",{children:n.map(i=>ie.jsx("linearGradient",{id:i.id,gradientTransform:"rotate(90)",children:i.scale.domain().reverse().map(l=>{let s=i.scale.domain(),c=s[s.length-1]-s[0],f=c>0?100-(l-s[0])/c*100:0;return ie.jsx("stop",{offset:`${f}%`,stopColor:i.scale(l)},l)})},i.id))}),n.map(i=>ie.jsxs("g",{transform:`translate(${i.left},${i.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:lK,children:i.title}),ie.jsx("rect",{x:"0",y:"0",width:oK,height:t,stroke:Vt,fill:`url(#${i.id})`}),ie.jsx("g",{transform:`translate(${oK},0)`,children:i.values.map(l=>{let s=i.scale.domain(),c=s[s.length-1]-s[0],f=c>0?t-t*(l-s[0])/c:0;return ie.jsxs("g",{transform:`translate(0,${f})`,children:[ie.jsx("line",{x1:"0",x2:-4,stroke:Vt}),ie.jsx("text",{x:8,y:4,children:l})]},l)})}),a]},i.id)),r.map(i=>ie.jsxs("g",{transform:`translate(${i.left},${i.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:lK,children:i.title}),i.values.map((l,s)=>ie.jsxs("g",{transform:`translate(0, ${s*(Y8+4)})`,children:[ie.jsx("rect",{x:"0",y:"0",width:Y8,height:Y8,fill:i.scale(l),rx:"1",ry:"1",stroke:Vt}),ie.jsx("text",{x:Y8+8,y:10,children:l})]},l)),a]},i.id))]})}function H2t({margins:e,captionsSizes:t,settingsId:n,chartSettings:r,chartSizes:a,chartsDimensions:i,facetKeys:l,facetSettings:s,xGroupKeys:c,yGroupKeys:f,scales:p,colorScale:h,groupedCells:m,cellsMeta:w,step:E,annotations:b,annotationColorScales:B,legend:T,aes:P,dendrograms:M,dendrogramAesScales:z,columnsCount:$,labelAngles:O}){let[Q,K]=ir.useState(),j=ir.useRef(null);ir.useEffect(()=>{j.current&&K(j.current)},[]);let W=i[l[0]].padding,V=i[l[$-1]].padding,U=e.left+a.chartsWidth+F8,Z=e.top+W.top;return ie.jsx(a2,{dataId:n,children:ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${a.totalWidth} ${a.totalHeight}`,width:a.totalWidth,height:a.totalHeight,fontFamily:"Manrope",children:[ie.jsx("defs",{children:Dg}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(i2,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:W.left,rightPadding:V.right,chartsWidth:a.chartsWidth}),l.map(q=>{let{cells:oe,xKeysByGroups:se,yKeysByGroups:Te}=m[q];return ie.jsx(D2t,{dendrograms:M[q],captionsSizes:t,facetKey:q,dimensions:i[q],xGroupKeys:c,yGroupKeys:f,xKeysByGroups:s.sharedX?w.xKeysByGroups:se,yKeysByGroups:s.sharedY?w.yKeysByGroups:Te,sharedX:s.sharedX,sharedY:s.sharedY,scales:{x:p.x[q],y:p.y[q]},cells:oe,cellsMeta:w,stepX:E.x[q],stepY:E.y[q],colorScale:h,chartSettings:r,aes:P,annotations:b,annotationColorScales:B,dendrogramAesScales:z,labelAngles:O,margins:e,chartSizes:a,tooltipsContainer:Q},q)})]}),ie.jsx("g",{transform:`translate(${U},${Z})`,children:ie.jsx(M2t,{data:T,height:a.chartHeight})}),ie.jsx("g",{ref:j})]})})}function sK(e,t,n){function r(a){a[n]=t(a.data.height),a.children&&a.children.forEach(r)}r(e)}function uK(e,t,n,r=n){function a(i){i[r]=i[n]+t,i.children&&i.children.forEach(a)}a(e)}var I2t=(e,t)=>{let n=Math.min(...t),r=Math.max(...t);if(n===r){let l=e%2===0?[]:[n];for(let s=1;s<e/2+1;s++)l.push(n+s),l.unshift(n-s);return l}if(e<2)return[n,r];let a=(r-n)/(e-1),i=[];for(let l=0;l<e-1;l++)i.push(n+a*l);return i.push(r),i};function cK(e,t,n){let r=n;return e&&(e.colorRange&&(r=e.colorRange),e.method==="standardScaling"&&(r=[-2,2]),e.method==="meanNormalization"&&(r=[-.75,.75])),I2t(t,r)}var R2t=class{constructor(){ke(this,"reactRoot",null);ke(this,"parentNode",null);ke(this,"rootNode",null);ke(this,"component",ie.jsx(ie.Fragment,{}));ke(this,"chartsDimensions",{});ke(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});ke(this,"margins",{top:Mg,bottom:Mg,left:Mg,right:Mg});ke(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xGroupCaptions:$v,yGroupCaptions:$v,xCaptionTail:0,yCaptionTail:0});ke(this,"labelAngles",{xAxisLabels:0,yAxisLabels:0,xGroupLabels:0,yGroupLabels:0});ke(this,"columnsCount",1);ke(this,"rowsCount",1);ke(this,"scales",{x:{null:nl().domain(["null"]).range([1])},y:{null:nl().domain(["null"]).range([1])}});ke(this,"step",{x:{},y:{}});ke(this,"colorScale",Ua().domain([0,1]).range(["white","black"]));ke(this,"annotationColorScales",{});ke(this,"dendrogramAesScales",{});ke(this,"legend",{width:0,height:0,discreteItems:[],continuousItems:[]});ke(this,"dendrograms",{})}clear(){var e;this.parentNode&&this.rootNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),this.parentNode=null,this.rootNode=null),setTimeout(()=>{var t;(t=this.reactRoot)==null||t.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.reactRoot=Fh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Mg,bottom:Mg,left:Mg,right:this.legend.width},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartsHeight+this.margins.bottom,this.legend.height)}updateLegendSize(e,t,n,r,a){if(!t.show){this.legend={width:0,height:0,continuousItems:[],discreteItems:[]};return}let i=16,l=48,s=24,c=[],f=[],p=0,h=0,m=0,w=this.chartSizes.chartsHeight,E=this.chartSizes.chartsHeight;if(e==="continuous"){let T=this.colorScale,P=P8(T,a),M=r.label??r.value;c.push({id:"heatmapValue",width:M8(P,M),height:this.chartSizes.chartHeight,left:0,top:0,scale:T,values:P,title:M}),m=0,h=c[0].width,p+=h+s}else if(e==="discrete"){let T=this.colorScale,P=r.label??r.value,M=sP(T,P),z=T.domain(),$=z.length*i;if(m+$>E)w=Math.max(w,$),m=$+l,p+=h+s,h=M,f.push({id:"heatmapValue",width:M,height:$,left:p,top:0,title:P,scale:T,values:z});else{M>h&&(h=M);let O=m;f.push({id:"heatmapValue",width:M,height:$,left:p,top:O,title:P,scale:T,values:z}),m+=$+l}}n.filter(T=>T.type==="continuous").forEach(T=>{let P=this.chartSizes.chartHeight,M=this.annotationColorScales[T.id].scale,z=P8(M,a),$=T.valueColumn.label??T.valueColumn.value,O=M8(z,$),Q=p;c.push({id:T.id,width:O,height:P,left:Q,top:0,title:$,scale:M,values:z}),p+=O+s,m=0}),n.filter(T=>T.type==="discrete").forEach(T=>{let P=this.annotationColorScales[T.id].scale,M=T.valueColumn.label??T.valueColumn.value,z=sP(P,M),$=P.domain(),O=$.length*i;if(m+O>E)w=Math.max(w,O),p+=h+s,h=z,m=O+l,f.push({id:T.id,width:z,height:O,left:p,top:0,title:M,scale:P,values:$});else{z>h&&(h=z);let Q=m;f.push({id:T.id,width:z,height:O,left:p,top:Q,title:M,scale:P,values:$}),m+=O+l}});let b=p+h+2*F8,B=w;this.legend={width:b,height:B,continuousItems:c,discreteItems:f}}updateCaptionsSize(e,t,n,r){let a=new Vs("bold 14px Arial"),{xGroupKeys:i,yGroupKeys:l,xKeysByGroups:s,yKeysByGroups:c,xLabels:f,yLabels:p}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle,xGroupLabels:t.groupLabelsAngle,yGroupLabels:n.groupLabelsAngle};let h=ar.flatten(Object.values(s)),m=ar.flatten(Object.values(c)),w=h.map(Q=>a.getTextWidth(f[Q])),E=m.map(Q=>a.getTextWidth(p[Q])),b=i.map(Q=>a.getTextWidth(Q)),B=l.map(Q=>a.getTextWidth(Q)),{xCaptionTail:T,yCaptionTail:P}=C2t(this.labelAngles,r,this.step,e,a),M=this.labelAngles.xGroupLabels/180*Math.PI,z=this.labelAngles.yGroupLabels/180*Math.PI,$=this.labelAngles.xAxisLabels/180*Math.PI,O=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:T,yCaptionTail:P,xGroupCaptions:Math.max(...b,0)*Math.sin(M)||$v,yGroupCaptions:Math.max(...B,0)*Math.sin(z)||$v,xAxisCaptions:Math.max(...w,0)*Math.sin($)||$v,yAxisCaptions:Math.max(...E,0)*Math.sin(O)||$v}}updateChartDimensions(e,t,n,r,a,i,l,s,c,f){let p=t.length,h=Math.min(a.nRows??p,p),m=Math.min(a.nCols??p,p);this.columnsCount=a.nRows?Math.ceil(p/h):m,this.rowsCount=Math.ceil(p/this.columnsCount);let{width:w,height:E}=e,{sharedX:b,sharedY:B}=a;this.chartsDimensions={};let T=0,P=0;t.forEach(($,O)=>{let Q=O%this.columnsCount+1,K=nK(O,t.length,this.columnsCount,this.rowsCount),j=this.step.x[$],W=this.step.y[$],V=m2t(i,l,this.captionsSizes,s,c,f,K,b,B,t,n,r,j,W),U=w2t(s,K,b,B);function Z(le){return Math.max(i1[le].reduce((be,ge)=>be+V[le][ge],0),U[le],syt)}let q={left:Z("left"),right:Z("right"),top:Z("top"),bottom:Z("bottom")};q.left<this.captionsSizes.xCaptionTail&&(q.left=this.captionsSizes.xCaptionTail),q.bottom<this.captionsSizes.yCaptionTail&&(q.bottom=this.captionsSizes.yCaptionTail);let oe=g2t(V,w,E),se=w+q.left+q.right,Te=E+q.top+q.bottom;this.chartsDimensions[$]={left:T,top:P,inner:{width:w,height:E},outer:{width:se,height:Te},padding:q,sideElementBBoxes:oe,chartEdgeSides:K},T+=se,Q===this.columnsCount&&(T=0,P+=Te)});let M=t.slice(0,this.columnsCount).reduce(($,O)=>$+this.chartsDimensions[O].outer.width,0),z=t.filter(($,O)=>O%this.columnsCount===0).reduce(($,O)=>$+this.chartsDimensions[O].outer.height,0);this.chartSizes.chartsWidth=M,this.chartSizes.chartsHeight=z}updateChartsSizes(e){let{width:t,height:n}=e;this.chartSizes.chartWidth=t,this.chartSizes.chartHeight=n}updateScales(e,t,n,r,a){let{width:i,height:l}=a,{meta:s,facets:c}=t,{sharedX:f,sharedY:p}=r;e.forEach(h=>{let m=c[h],{xGroupKeys:w,yGroupKeys:E}=s,{xKeysByGroups:b}=f?s:m,{yKeysByGroups:B}=p?s:m,T=w.map(Z=>b[Z].length),P=E.map(Z=>B[Z].length),M=T.reduce((Z,q)=>Z+q,0),z=P.reduce((Z,q)=>Z+q,0),$=(i-(T.filter(Z=>Z>0).length-1)*n)/M,O=(l-(P.filter(Z=>Z>0).length-1)*n)/z,Q=[],K=[],j=0;w.forEach(Z=>{let q=b[Z];K.push(...q),q.forEach(()=>{Q.push(j),j+=$}),q.length>0&&(j+=n)});let W=[],V=[],U=0;E.forEach(Z=>{let q=B[Z];V.push(...q),q.forEach(()=>{W.push(U),U+=O}),q.length>0&&(U+=n)}),this.scales.x[h]=nl().domain(K).range(Q),this.scales.y[h]=nl().domain(V).range(W),this.step.x[h]=$,this.step.y[h]=O})}updateAesScale(e,t,n,r,a,i,l){if(e==="continuous")n.valueColors?this.colorScale=Ua().domain(n.valuesByColors??cK(l,n.valueColors.length,t)).range(n.valueColors):n.colorsList&&(this.colorScale=Ua().domain(cK(l,n.colorsList.length,t)).range(n.colorsList));else if(n.colorsMap){let f=Object.entries(n.colorsMap);this.colorScale=nl().domain(f.map(p=>p[0])).range(f.map(p=>p[1])).unknown("#ccc")}else n.colorsList&&(this.colorScale=tK(n.colorsList,i.map(String)));let{xDataByKeys:s,yDataByKeys:c}=a.meta;r.forEach(f=>{let{colors:p,type:h,axis:m,valueColumn:w}=f,E=(m==="x"?s:c)[w.value];if(h==="discrete"){let b=ar.uniq(Object.values(E).map(String)).sort();this.annotationColorScales[f.id]={type:"discrete",scale:tK(p,b)}}else{let b=Object.values(E).map(Number);if(!b.length)return;let[B=b[0],T=b[0]]=_A(b);this.annotationColorScales[f.id]={type:"continuous",scale:y2t(p,B,T,0,.5,1)}}})}updateDendrogram(e,t,n,r,a,i,l){e.forEach(s=>{this.dendrograms[s]={x:{trees:[],data:i},y:{trees:[],data:l}};let{xKeysByGroups:c,yKeysByGroups:f}=r[s],{hierarchyX:p,hierarchyY:h}=a[s],m=Math.max(...p.map(E=>E.data.height)),w=Math.max(...h.map(E=>E.data.height));i&&(this.dendrograms[s].x.trees=p.map((E,b)=>{let B=t[b],T=c[B];fB().separation(()=>1).size([T.length*this.step.x[s],i.size])(E);let P=E,M=Ua().domain(i.position==="top"?[0,m]:[m,0]).range([i.size,0]);return sK(P,M,"y"),uK(P,this.scales.x[s](T[0]),"x"),P}),this.dendrograms[s].x.data=i),l&&(this.dendrograms[s].y.trees=h.map((E,b)=>{let B=n[b],T=f[B];fB().separation(()=>1).size([T.length*this.step.y[s],l.size])(E);let P=E,M=Ua().domain(l.position==="left"?[0,w]:[w,0]).range([l.size,0]);return uK(P,this.scales.y[s](T[0]),"x","y"),sK(P,M,"x"),P}),this.dendrograms[s].y.data=l)})}updateDendrogramAesScales(e){if(!e)return;let t=Object.keys(e);this.dendrogramAesScales=t.reduce((n,r)=>{let a=e[r],i=Object.keys(a);return n[r]=nl().domain(i).range(i.map(l=>({...gX,...a[l]}))).unknown(gX),n},{})}render(e,t,n,r,a,i,l,s,c,f,p,h,m){var j;let{meta:w,facets:E}=a,{facetKeys:b,xGroupKeys:B,yGroupKeys:T,valueExtent:P}=w,{xAxis:M,yAxis:z,title:$,size:O,valueType:Q}=t;this.updateChartsSizes(O),this.updateAesScale(Q,P,r,i,a,h,m),this.updateScales(b,a,r.groupGap,n,O),this.updateCaptionsSize(a,M,z,n),this.updateChartDimensions(O,b,B,T,n,M,z,i,s,c),this.updateLegendSize(Q,t.legend,i,l,P),this.updateMargins($),this.updateDendrogram(b,B,T,E,f,s,c),this.updateDendrogramAesScales(p);let K=ie.jsx(H2t,{aes:r,annotations:i,annotationColorScales:this.annotationColorScales,captionsSizes:this.captionsSizes,cellsMeta:w,columnsCount:this.columnsCount,chartsDimensions:this.chartsDimensions,chartSettings:t,chartSizes:this.chartSizes,colorScale:this.colorScale,dendrogramAesScales:this.dendrogramAesScales,dendrograms:this.dendrograms,facetKeys:b,facetSettings:n,groupedCells:E,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step,xGroupKeys:B,yGroupKeys:T});this.component=K,(j=this.reactRoot)==null||j.render(K)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},N2t=R2t,bP={lineColor:Vt,dotShape:"21",dotFill:Vt,dotSize:3,lineShape:"solid",lineWidth:1},fK={size:150,distance:"euclidean",linkage:"average",fillNA:0,showNodes:!0,hidden:!1,edgeInheritance:"up",aes:bP},dK=class{constructor(e){ke(this,"id");ke(this,"type","heatmap");ke(this,"facetSettings");ke(this,"xColumn");ke(this,"xGroupBy");ke(this,"yColumn");ke(this,"yGroupBy");ke(this,"valueColumn");ke(this,"facetBy");ke(this,"normalization");ke(this,"chartSettings");ke(this,"aes");ke(this,"annotations");ke(this,"dendrogramX");ke(this,"dendrogramY");ke(this,"inheritedDendrogramAes");ke(this,"NAValueAs");var t,n,r,a,i,l,s,c,f,p,h,m,w;if(bgt.parse(e),this.id=ar.uniqueId("settings"),this.facetSettings={sharedX:(e.facetBy??[]).length>0,sharedY:(e.facetBy??[]).length>0,...e.facetSettings},this.xColumn=e.xColumn,this.xGroupBy=e.xGroupBy??[],this.yColumn=e.yColumn,this.yGroupBy=e.yGroupBy??[],this.valueColumn=e.valueColumn,this.facetBy=e.facetBy??[],this.chartSettings={title:{position:"left",show:!0,...e.title,name:((t=e.title)==null?void 0:t.name)??"Chart"},size:{width:((n=e==null?void 0:e.size)==null?void 0:n.width)??(this.facetBy.length?400:600),height:((r=e==null?void 0:e.size)==null?void 0:r.height)??(this.facetBy.length?250:350)},frame:{type:((a=e.frame)==null?void 0:a.type)??"none"},valueType:e.valueType??"continuous",yAxis:{title:e.yColumn.label??e.yColumn.value,showTicks:!0,showTitle:!0,showAxisLabels:!0,showGroupLabels:!0,position:"left",groupingPosition:"left",axisLabelsAngle:90,groupLabelsAngle:0,...e.yAxis},xAxis:{title:e.xColumn.label??e.xColumn.value,showTicks:!0,showTitle:!0,showAxisLabels:!0,showGroupLabels:!0,position:"bottom",groupingPosition:"bottom",axisLabelsAngle:90,groupLabelsAngle:0,...e.xAxis},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.normalization=this.chartSettings.valueType==="continuous"?e.normalization??null:null,this.NAValueAs=e.NAValueAs??null,this.aes={colorsList:((i=e.aes)==null?void 0:i.colorsList)??["black","white","red"],colorsMap:((l=e.aes)==null?void 0:l.colorsMap)??null,valueColors:((s=e.aes)==null?void 0:s.valueColors)??null,valuesByColors:((c=e.aes)==null?void 0:c.valuesByColors)??null,cellStrokeColor:((f=e.aes)==null?void 0:f.cellStrokeColor)??"none",groupGap:((p=e.aes)==null?void 0:p.groupGap)??3,emptyCellColor:((h=e.aes)==null?void 0:h.emptyCellColor)??"white"},this.annotations=(e.annotations??[]).map(E=>E.axis==="x"?{id:ar.uniqueId("annotation"),axis:"x",valueColumn:E.valueColumn,position:E.position??this.chartSettings.xAxis.position,titlePosition:E.titlePosition??"right",showTitle:E.showTitle??!0,type:E.type,colors:E.colors??["white","black"]}:{id:ar.uniqueId("annotation"),axis:"y",valueColumn:E.valueColumn,position:E.position??this.chartSettings.yAxis.position,titlePosition:E.titlePosition??"top",showTitle:E.showTitle??!0,type:E.type,colors:E.colors??["white","black"]}),e.valueType==="discrete"&&(e.dendrogramX||e.dendrogramY))throw Error("Dendrogram is not available with discrete cells values");this.dendrogramX=e.dendrogramX?{...fK,position:"top",...e.dendrogramX,aes:{...bP,...(m=e.dendrogramX)==null?void 0:m.aes}}:null,this.dendrogramY=e.dendrogramY?{...fK,position:"left",...e.dendrogramY,aes:{...bP,...(w=e.dendrogramY)==null?void 0:w.aes}}:null,this.inheritedDendrogramAes=e.inheritedDendrogramAes??null}},$2t=class extends Tg{constructor(t,n){super(t,n);ke(this,"settings");ke(this,"chartRenderer",new N2t);ke(this,"calculatedData",null);this.settings=new dK(n)}mount(t){try{this.chartRenderer.init(t),this._updateData(),this._updateChart()}catch(n){n instanceof Error&&this.chartRenderer.renderError(n.message)}}unmount(){this.chartRenderer.clear()}updateSettingsAndData(t,n){try{let r=this.settings,a=this.data;this.settings=new dK(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){console.warn("no chart state for heatmap")}export(){return this._updateChart(),l3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var $,O,Q,K,j,W,V,U,Z,q,oe,se;let{xColumn:r,yColumn:a,valueColumn:i,xGroupBy:l,yGroupBy:s,facetBy:c,annotations:f,chartSettings:p,facetSettings:h,dendrogramX:m,dendrogramY:w,normalization:E,NAValueAs:b}=n,B=Object.values((($=t.dendrogramX)==null?void 0:$.aes)||{}).filter(s9),T=Object.values((m==null?void 0:m.aes)||{}).filter(s9),P=Object.values(((O=t.dendrogramY)==null?void 0:O.aes)||{}).filter(s9),M=Object.values((w==null?void 0:w.aes)||{}).filter(s9);function z(Te,le){return Te.length!==le.length||Te.some((be,ge)=>be.value!==le[ge].value)}return t.xColumn.value!==r.value||t.yColumn.value!==a.value||t.valueColumn.value!==i.value||z(t.xGroupBy,l)||z(t.yGroupBy,s)||z(t.facetBy,c)||z(t.annotations.map(Te=>Te.valueColumn),f.map(Te=>Te.valueColumn))||z(B,T)||z(P,M)||(n.dendrogramX||t.dendrogramX)&&(((Q=t.dendrogramX)==null?void 0:Q.distance)!==((K=n.dendrogramX)==null?void 0:K.distance)||((j=t.dendrogramX)==null?void 0:j.linkage)!==((W=n.dendrogramX)==null?void 0:W.linkage))||(n.dendrogramY||t.dendrogramY)&&(((V=t.dendrogramY)==null?void 0:V.distance)!==((U=n.dendrogramY)==null?void 0:U.distance)||((Z=t.dendrogramY)==null?void 0:Z.linkage)!==((q=n.dendrogramY)==null?void 0:q.linkage))||t.chartSettings.valueType!==p.valueType||t.facetSettings.sharedX!==h.sharedX||t.facetSettings.sharedY!==h.sharedY||((oe=t.normalization)==null?void 0:oe.method)!==(E==null?void 0:E.method)||((se=t.normalization)==null?void 0:se.direction)!==(E==null?void 0:E.direction)||t.NAValueAs!==b}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var l;return t.data[i].length!==((l=n.data[i])==null?void 0:l.length)})}_updateData(){let{xColumn:t,yColumn:n,valueColumn:r,xGroupBy:a,yGroupBy:i,facetBy:l,chartSettings:s,facetSettings:c,annotations:f,dendrogramX:p,dendrogramY:h,normalization:m,NAValueAs:w}=this.settings,E=f2t(this.data,t,n,r,l,a,i,f,p,h,m,w),b=v2t(E,p,h,c),B=s.valueType==="discrete"?this.data.getColumnCategories(r.value):[];this.calculatedData={groupedCellsData:E,dendrogramsData:b,cellUniqValues:B}}_updateAesInData(){}_updateChart(){if(!this.calculatedData)return;let{id:t,valueColumn:n,chartSettings:r,facetSettings:a,aes:i,annotations:l,dendrogramX:s,dendrogramY:c,inheritedDendrogramAes:f,normalization:p}=this.settings;this.chartRenderer.render(t,r,a,i,this.calculatedData.groupedCellsData,l,n,s,c,this.calculatedData.dendrogramsData,f,this.calculatedData.cellUniqValues,p)}},AK=(e,t)=>{let n=Math.min(...t),r=Math.max(...t);if(n===r)return[n];if(e<2)return[(n+r)/2];let a=(r-n)/e,i=[];for(let l=1;l<e;l++)i.push(n+a*l);return i};function L2t(e,t,n){let[r=0,a=0]=_A(e,s=>s[t.value]),i=AK(n,[r,a]),l=nR().thresholds(i).value(s=>s[t.value])(e);return{bins:l,minX:l[0].x0??0,maxX:l[l.length-1].x1??0,maxCount:_h(l,s=>s.length)??0}}function F2t(e,t,n){let[r=0,a=0]=_A(e,p=>p[t.value]),i=[r,a],l=AK(n,[r,a]),s=lx().domain(i).range(i),c=l.map(p=>s.invert(p)),f=nR().thresholds(c).value(p=>p[t.value])(e);return{bins:f,minX:f[0].x0??0,maxX:f[f.length-1].x1??0,maxCount:_h(f,p=>p.length)??0}}function V2t(e,t,n,r,a){let i={};return t.forEach(l=>{let s=e.getRowsByGrouping([...l]);i[l.join("_")]=a==="linear"?L2t(s,n,r):F2t(s,n,r)}),i}var O2t={TOP:30,BOTTOM:0,LEFT:10,RIGHT:10};function h9(e,t,n=!1){let r=Math.abs(e.range()[0]-e.range()[1]),a=n?Math.min(Math.floor(r/45),10):10,i=e.ticks(a).filter(s=>t&&s>=0||!t);n&&i.length>2&&Math.abs(e(i[1])-e(i[0]))<45&&(i=i.filter((s,c)=>c%2===0));let l=i.some(s=>Math.abs(s)<1e-4&&s!==0||s>1e4)?",e":",f";return{ticks:i,format:s=>e.tickFormat(a,l)(s)}}function Q2t(e){return`translate(${e},0)`}function z2t(e){return`translate(0,${e})`}function U2t(e){return e==="bottom"?`translate(0,${Mf})`:`translate(${-Mf},0)`}function G2t(e){return e==="bottom"?"hanging":"central"}function j2t(e){return e==="bottom"?"middle":"end"}var pK=({scale:e,tickSize:t=6,tickPadding:n=Mf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function l(b){return B=>{let T=b(B);return T===void 0?0:+T}}let{ticks:s,format:c}=h9(e,a,r==="bottom"),f=Math.max(t,0)+n,p=l(e.copy()),h=r==="bottom"?Q2t:z2t,m=r==="left"?-1:1,w={[(r==="left"?"x":"y")+"2"]:m*t},E={[r==="left"?"x":"y"]:m*f};return ie.jsx("g",{children:s.map((b,B)=>ie.jsxs("g",{className:"tick",transform:h(p(b)+i),children:[ie.jsx("line",{stroke:Vt,...w}),ie.jsx("g",{transform:U2t(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:G2t(r),textAnchor:j2t(r),...E,children:c(b)})})]},B))})},Y2t=1;function hK({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:l,updatingKey:s=""}){let[c,f]=ir.useState(e.ticks()),[p,h]=ir.useState(t.ticks()),{significantLines:m=[]}=a,{significantLines:w=[]}=i;return ir.useEffect(()=>{let E=e.ticks().filter(B=>!m.includes(B)),b=t.ticks().filter(B=>!w.includes(B));f(E),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Pf,children:[a.showGrid&&c.map(E=>{let b=e(E);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`x_${b}_${r}`)}),i.showGrid&&p.map(E=>{let b=t(E);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`y_${b}_${n}`)}),ie.jsx("g",{strokeDasharray:jA(a.significantLinesStyle),stroke:Vt,children:m.map(E=>{let b=e(E);return b<0||b>n?null:ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`significant_${b}_${r}`)})}),ie.jsx("g",{strokeDasharray:jA(i.significantLinesStyle),stroke:Vt,children:w.map(E=>{let b=t(E);return b<0||b>r?null:ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`significant_${b}_${n}`)})}),l!=="empty"&&ie.jsxs("g",{strokeWidth:Y2t,children:[(a.showGrid||l!=="left")&&ie.jsx("line",{stroke:l==="left"?Pf:Vt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||l!=="bottom")&&ie.jsx("line",{stroke:l==="bottom"?Pf:Vt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||l==="full")&&ie.jsx("line",{stroke:l==="full"?Vt:Pf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||l==="full")&&ie.jsx("line",{stroke:l==="full"?Vt:Pf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}function W2t({width:e,height:t,dimensions:n,scales:r,xAxis:a,yAxis:i,frameType:l,histogramData:s,facetSettings:c,captionsSizes:f,facetTitle:p,layers:h,aesColorGetter:m}){let{padding:w}=n,E=a.showTicks?4:0,b=i.showTicks?4:0,B=n.chartEdgeSides.includes("left")||!(c!=null&&c.sharedY),T=n.chartEdgeSides.includes("bottom")||!(c!=null&&c.sharedX),P=n.chartEdgeSides.includes("bottom"),M=!1;return ie.jsxs("g",{transform:`translate(${n.left+w.left},${n.top+w.top})`,children:[M,p.length&&ie.jsxs("g",{children:[l==="full"&&ie.jsx("rect",{x:"0",y:-w.top,height:w.top,width:e,fill:"#F7F8FA",stroke:Vt}),p.map((z,$)=>{let O=p.length,Q=(w.top-20*O)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:e/2,dy:Q+20/2-w.top,y:$*20,textAnchor:"middle",dominantBaseline:"central",children:z},$)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[P&&ie.jsx("text",{x:e/2,y:t+w.bottom-12-20/2,children:a.title}),M]}),ie.jsx(hK,{width:e,height:t,scaleX:r.x,scaleY:r.y,axisX:a,axisY:i,frameType:l}),T&&ie.jsxs("g",{transform:`translate(0,${t})`,children:[ie.jsx(pK,{scale:r.x,orient:"bottom",onlyPositive:!0,tickSize:E}),M]}),B&&ie.jsxs("g",{children:[ie.jsx(pK,{scale:r.y,orient:"left",tickSize:b}),M]}),h.map(z=>s.bins.map($=>ie.jsx("rect",{x:r.x($.x0),y:r.y($.length),fill:$[0]?m(z.aes.fillColor,$[0]):"",stroke:Vt,width:r.x($.x1)-r.x($.x0),height:r.y(0)-r.y($.length),opacity:z.aes.opacity??1},$.x0)))]})}function X2t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,columnsCount:a,facetKeys:i,facetSettings:l,scales:s,margins:c,mainTitle:f,facetTitles:p,captionsSizes:h,histogramDataByFacets:m,layers:w,aesColorGetter:E}){let{xAxis:b,yAxis:B,title:T,frame:P}=t,M=r[i[0]].padding,z=r[i[a-1]].padding;return ie.jsx(a2,{dataId:e,children:ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${n.totalWidth} ${n.totalHeight}`,width:n.totalWidth,height:n.totalHeight,children:[ie.jsx("defs",{children:Dg}),ie.jsxs("g",{transform:`translate(${c.left},${c.top})`,fontFamily:"Manrope",children:[ie.jsx(i2,{title:f,show:T.show,position:T.position,leftPadding:M.left,rightPadding:z.right,chartsWidth:n.chartsWidth}),i.map($=>ie.jsx(W2t,{scales:{x:s.x[$],y:s.y[$]},width:n.chartWidth,height:n.chartHeight,dimensions:r[$],margins:c,chartSizes:n,facetSettings:l,xAxis:b,yAxis:B,frameType:P.type,facetTitle:p[$],captionsSizes:h,histogramData:m[$],layers:w,aesColorGetter:E},$))]})]})})}function K2t(e,t,n,r){let a=[];return e%n===n-1&&a.push("right"),e%n===0&&a.push("left"),e<n&&a.push("top"),(Math.ceil((e+1)/n)===r||Math.ceil((e+1)/n)===r-1&&e%n>(t-1)%n)&&a.push("bottom"),a}function Z2t(e,t,n,r,a,i,l){let s=i.includes("left")||!(l!=null&&l.sharedY),c=i.includes("bottom")||!(l!=null&&l.sharedX),f=i.includes("bottom")&&e.title!=="",p=n.yAxisCaptionsWidth+2*6,h=(t.showTicks?4:0)+6,m=n.xAxisCaptionsWidth+2*6,w=e.showTicks?4:0,E=f?32:0,b=p+h+8,B=m+w+E+8,T=Math.max(...r.map(P=>a[P].length));return{left:s?b:12,top:T===0?0:6*2+T*20,bottom:c?B+8:12,right:12}}function J2t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function q2t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function e7t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function t7t(e,t){return function(n,r){var a,i;if(e7t(n)){let l=n.value;return(i=((a=e[l])==null?void 0:a[String(r[l])])??rP)==null?void 0:i[t]}return n}}var n7t=class{constructor(){ke(this,"reactRoot",null);ke(this,"parentNode",null);ke(this,"rootNode",null);ke(this,"component",ie.jsx(ie.Fragment,{}));ke(this,"margins",{top:24,bottom:24,left:24,right:24});ke(this,"chartsDimensions",{});ke(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});ke(this,"columnsCount",1);ke(this,"rowsCount",1);ke(this,"scales",{x:{null:Ua().domain([0,10]).range([0,600])},y:{null:Ua().domain([0,10]).range([350,0])}});ke(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});ke(this,"facetTitles",{});ke(this,"mainTitle",[])}clear(){var e;this.parentNode&&this.rootNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),this.parentNode=null,this.rootNode=null),setTimeout(()=>{var t;(t=this.reactRoot)==null||t.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.reactRoot=Fh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateChartDimensions(e,t,n,r){let{chartWidth:a,chartHeight:i}=this.chartSizes,l=0,s=0;this.chartsDimensions=e.reduce((p,h,m)=>{let[w,E]=q2t(m,this.columnsCount),b=K2t(m,e.length,this.columnsCount,this.rowsCount),B=Z2t(n,r,this.captionsSizes,J2t(e,this.rowsCount,this.columnsCount)[w],this.facetTitles,b,t),T=a+B.left+B.right,P=i+B.top+B.bottom;return p[h]={left:l,top:s,chartEdgeSides:b,padding:B,inner:{width:a,height:i},outer:{width:T,height:P}},l+=T,E===this.columnsCount-1&&(l=0,s+=P),p},{});let c=Math.max(...e.map(p=>this.chartsDimensions[p].outer.width+this.chartsDimensions[p].left)),f=Math.max(...e.map(p=>this.chartsDimensions[p].outer.height+this.chartsDimensions[p].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r){let a=e.length,i=Math.min(t.nRows??a,a),l=Math.min(t.nCols??a,a);this.columnsCount=t.nRows?Math.ceil(a/i):l,this.rowsCount=Math.ceil(a/this.columnsCount);let[s,c]=[1/0,-1/0],f=-1/0,p=e.reduce((h,m)=>{let w=r[m],{minX:E,maxX:b,maxCount:B}=w;return s=Math.min(s,E),c=Math.max(c,b),f=Math.max(f,B),h[m]={minX:E,maxX:b,maxY:B},h},{});e.forEach(h=>{let m=n.scale==="log"?lx():Ua(),w=p[h],E=t.sharedX?s:w.minX,b=t.sharedX?c:w.maxX;m.domain([E,b]).range([0,this.chartSizes.chartWidth]),this.scales.x[h]=m}),e.forEach(h=>{let m=Ua(),w=p[h],E=0,b=t.sharedY?f:w.maxY,B=[this.chartSizes.chartHeight,0],T=m.copy().domain([E,b]).range([this.chartSizes.chartHeight,O2t.TOP]);m.domain([T.invert(this.chartSizes.chartHeight),T.invert(0)]).range(B),this.scales.y[h]=m})}updateCaptionsSize(){let e=new Vs("600 14px Arial"),t=0;function n(r){return Math.max(...r.map(a=>e.getTextWidth(a)))}Object.values(this.scales.y).forEach(r=>{let{ticks:a,format:i}=h9(r,!1);t=Math.max(t,n(a.map(i)))}),this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:t}}createMainTitle(e,t){let n=this.chartsDimensions[e[0]],r=this.chartsDimensions[e[e.length-1]];this.mainTitle=Fv(t.name,this.chartSizes.chartsWidth-n.padding.left-r.padding.right,20)}createFacetTitles(e,t){this.facetTitles=e.reduce((n,r,a)=>(t[a].length===1&&t[a][0]==="null"?n[r]=[]:n[r]=Fv(t[a].join(", "),this.chartSizes.chartWidth,14),n),{})}updateMargins(){let e=24*this.mainTitle.length,t=e>0?e+24*2:0;this.margins={top:Math.max(t,24),bottom:24,left:24,right:24},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+this.chartSizes.chartsHeight+this.margins.bottom}render(e,t,n,r,a,i,l,s){var w;let{xAxis:c,yAxis:f,size:p,title:h}=t;this.updateChartSizes(p),this.updateViewport(r,n,c,i),this.updateCaptionsSize(),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,c,f),this.createMainTitle(r,h),this.updateMargins();let m=ie.jsx(X2t,{settingsId:e,chartSettings:t,facetKeys:r,facetSettings:n,chartSizes:this.chartSizes,chartsDimensions:this.chartsDimensions,scales:this.scales,columnsCount:this.columnsCount,margins:this.margins,mainTitle:this.mainTitle,facetTitles:this.facetTitles,captionsSizes:this.captionsSizes,histogramDataByFacets:i,layers:l,aesColorGetter:t7t(s,"fillColor")});this.component=m,(w=this.reactRoot)==null||w.render(m)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},r7t=n7t,a7t=10,i7t=class{constructor(e){ke(this,"type","bins");ke(this,"aes",{fillColor:"white",opacity:1});this.aes={...this.aes,...e.aes}}},o7t=class{constructor(e){ke(this,"type","binsLine");ke(this,"aes",{opacity:1});this.aes={...this.aes,...e.aes}}},vK=class{constructor(e){ke(this,"id");ke(this,"type","histogram");ke(this,"valueColumn");ke(this,"binsCount");ke(this,"facetSettings");ke(this,"facetBy");ke(this,"grouping");ke(this,"chartSettings");ke(this,"inheritedAes");ke(this,"layers");var t,n,r,a,i,l,s;_gt.parse(e),this.id=ar.uniqueId("settings"),this.facetSettings={sharedX:!0,sharedY:!0,titlePosition:"left",...e.facetSettings},this.valueColumn=e.valueColumn,this.binsCount=e.binsCount??a7t,this.facetBy=e.facetBy??[],this.grouping=e.grouping??[],this.chartSettings={size:{width:((t=e==null?void 0:e.size)==null?void 0:t.width)??(this.facetBy.length?400:600),height:((n=e==null?void 0:e.size)==null?void 0:n.height)??(this.facetBy.length?250:350)},title:{position:"center",show:!0,...e.title,name:((r=e.title)==null?void 0:r.name)??"Chart"},yAxis:{showGrid:!0,showTicks:!0,...e.yAxis},xAxis:{title:e.valueColumn.label??e.valueColumn.value??"",scale:((a=e.xAxis)==null?void 0:a.scale)??"linear",showGrid:((i=e.xAxis)==null?void 0:i.showGrid)??!0,showTicks:((l=e.xAxis)==null?void 0:l.showTicks)??!0},frame:{type:((s=e.frame)==null?void 0:s.type)??"full"},legend:{show:!0,position:"right",...e.legend}},this.inheritedAes=e.inheritedAes??{},this.layers=e.layers.map(c=>{if(c.type==="bins")return new i7t(c);if(c.type==="binsLine")return new o7t(c);oA(c,"Unknown layer type")}).filter(Boolean)}};function mK(e){if(!e.length)return[];let t=[[]];return e.forEach(n=>{let r=[];n.forEach(a=>{r.push(...t.map(i=>[...i,a]))}),t=r}),t}var l7t=class extends Tg{constructor(t,n){super(t,n);ke(this,"settings");ke(this,"chartRenderer",new r7t);ke(this,"calculatedData",null);this.settings=new vK(n)}mount(t){try{this.chartRenderer.init(t),this._updateData(),this._updateChart()}catch(n){n instanceof Error&&this.chartRenderer.renderError(n.message)}}unmount(){this.chartRenderer.clear()}updateSettingsAndData(t,n){try{let r=this.settings,a=this.data;this.settings=new vK(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){console.warn("no chart state for histogram")}export(){return this._updateChart(),l3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){return t.valueColumn.value!==n.valueColumn.value||t.facetBy.some((r,a)=>{var i;return r.value!==((i=n.facetBy[a])==null?void 0:i.value)})||t.grouping.length!==n.grouping.length||t.grouping.some((r,a)=>{var i;return r.value!==((i=n.grouping[a])==null?void 0:i.value)})||t.layers.length!==n.layers.length||t.layers.some((r,a)=>r.type!==n.layers[a].type)||t.binsCount!==n.binsCount||t.chartSettings.xAxis.scale!==n.chartSettings.xAxis.scale}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var l;return t.data[i].length!==((l=n.data[i])==null?void 0:l.length)})}_updateData(){let{valueColumn:t,facetBy:n,binsCount:r,chartSettings:a}=this.settings,i=n.map(f=>this.data.getColumnCategories(f.value)),l=i.length?mK([...i]):[["null"]],s=n.map(f=>f.value)??null;this.data.setGrouping([...s]);let c=V2t(this.data,l,t,r,a.xAxis.scale);this.calculatedData={facetKeys:l.map(f=>f.join(", ")),facetKeysCombinations:l,histogramDataByFacets:c}}_updateAesInData(){this.calculatedData}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,facetSettings:r,inheritedAes:a,layers:i}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.facetKeys,this.calculatedData.facetKeysCombinations,this.calculatedData.histogramDataByFacets,i,a)}};function s7t(e,t,n,r,a,i){let l={};return t.forEach(s=>{let c=[],f=1/0,p=1/0,h=-1/0,m=-1/0;i.forEach(w=>{e.getRowsByGrouping([...s,w]).forEach(E=>{let b=E[n.value],B=E[r.value];f=Math.min(f,b),p=Math.min(p,B),h=Math.max(h,b),m=Math.max(m,B),b!==null&&B!==null&&c.push({id:`${Object.values(E)}`,x:b,y:B,label:a?E[a.valueLabels??a.value]:null,data:E})})}),c.sort((w,E)=>w.x-E.x),l[s.join("_")]={minX:f,maxX:h,minY:p,maxY:m,dots:c}}),l}function u7t(e,t,n,r,a){return t.reduce((i,l)=>{let s=n[l].dots;return i[l]=e.map(c=>{if(c.type==="curve")return{type:"curve",info:c,geoms:r.map(f=>{let p=s.filter(m=>a.every((w,E)=>m.data[w.value]===f[E])),h=a.reduce((m,w,E)=>(m[w.value]=f[E],m),{});return{dots:p,data:h}})};if(c.type==="dots")return{type:"dots",info:c,geoms:s};oA(c,"Unknown scatterplot layer type")}),i},{})}var v9=12,gK=-12;function c7t({aes:e,label:t}){let n=Vc(e.shape,e.size,e.color);return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${v9/2},${v9/2})`,children:n}),ie.jsx("text",{x:v9+8,y:v9/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function yK({legendData:e}){return ie.jsx("g",{children:e.items.map(t=>{if(t.type==="dots")return ie.jsxs("g",{transform:`translate(${t.left},${t.top})`,fontSize:"14px",fontWeight:500,children:[ie.jsx("text",{fontWeight:600,y:gK,children:t.title}),t.values.map((n,r)=>ie.jsx("g",{transform:`translate(0, ${r*(v9+4)})`,children:ie.jsx(c7t,{aes:t.scale(n),label:t.labels[n]})},n)),!1]},t.id);if(t.type==="size"){let n=t.height/t.values.length;return ie.jsxs("g",{transform:`translate(${t.left},${t.top})`,fontSize:"14px",fontWeight:500,children:[ie.jsx("text",{fontWeight:500,y:gK,children:t.title}),t.values.map((r,a)=>{let i=t.scale(r);return ie.jsxs("g",{transform:`translate(0, ${a*n})`,children:[ie.jsx("circle",{r:i,cx:n/2,cy:n/2,fill:Vt}),ie.jsx("text",{x:n+4,y:n/2,alignmentBaseline:"central",children:t.labels[r]})]},r)}),!1]},t.id)}})})}function EP(e){let t=e.xPosition!=="middle"&&e.yPosition!=="middle",n=e.padding*(t?.7:1);return e.xPosition==="right"?e.x+n:e.xPosition==="middle"?e.x-e.width/2:e.x-e.width-n}function wK(e){let t=e.xPosition!=="middle"&&e.yPosition!=="middle",n=e.padding*(t?.7:1);return e.yPosition==="middle"?e.y-e.height/2:e.yPosition==="top"?e.y-n-e.height:e.y+n}function f7t(e,t){return EP(e)-t}function d7t(e,t){return wK(e)-t}function CK(e){let t=EP(e),n=t+e.width,r=wK(e),a=r+e.height;return{minX:t,maxX:n,minY:r,maxY:a}}function bK(e,t,n){let r=f7t(e,n),a=EP(e)+e.width+n,i=d7t(e,t),l=i+e.height+2*t;return{minX:r,maxX:a,minY:i,maxY:l}}function A7t(e,t,n){return e.minX>=0&&e.maxX<=t&&e.minY>=0&&e.maxY<=n}var W8=2;function p7t(e,t=W8,n=W8){e.forEach(r=>{r.bbox=CK(r),r.outerBBox=bK(r,t,n)})}function X8(e,t,n,r=W8,a=W8){let i=[],l=new eut,s=[["middle","right"],["top","right"],["bottom","right"],["middle","left"],["top","left"],["bottom","left"],["top","middle"],["bottom","middle"]];for(let c of e)for(let[f,p]of s){let h={...c,yPosition:f,xPosition:p};if(h.bbox=CK(h),h.outerBBox=bK(h,r,a),A7t(h.outerBBox,t,n)&&!l.collides(h.outerBBox)){i.push(h),l.insert(h.outerBBox);break}}return i}function h7t(e){return`translate(${e},0)`}function v7t(e){return`translate(0,${e})`}function m7t(e){return e==="bottom"?`translate(0,${Mf})`:`translate(${-Mf},0)`}function g7t(e){return e==="bottom"?"hanging":"central"}function y7t(e){return e==="bottom"?"middle":"end"}var K8=({scale:e,tickSize:t=6,tickPadding:n=Mf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function l(b){return B=>{let T=b(B);return T===void 0?0:+T}}let{ticks:s,format:c}=h9(e,a,r==="bottom"),f=Math.max(t,0)+n,p=l(e.copy()),h=r==="bottom"?h7t:v7t,m=r==="left"?-1:1,w={[(r==="left"?"x":"y")+"2"]:m*t},E={[r==="left"?"x":"y"]:m*f};return ie.jsx("g",{children:s.map((b,B)=>ie.jsxs("g",{className:"tick",transform:h(p(b)+i),children:[ie.jsx("line",{stroke:Vt,...w}),ie.jsx("g",{transform:m7t(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:g7t(r),textAnchor:y7t(r),...E,children:c(b)})})]},B))})},w7t=1;function C7t({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:l,updatingKey:s=""}){let[c,f]=ir.useState(e.ticks()),[p,h]=ir.useState(t.ticks()),{significantLines:m=[]}=a,{significantLines:w=[]}=i;return ir.useEffect(()=>{let E=e.ticks().filter(B=>!m.includes(B)),b=t.ticks().filter(B=>!w.includes(B));f(E),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Pf,children:[a.showGrid&&c.map(E=>{let b=e(E);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`x_${b}_${r}`)}),i.showGrid&&p.map(E=>{let b=t(E);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`y_${b}_${n}`)}),ie.jsx("g",{strokeDasharray:jA(a.significantLinesStyle),stroke:Vt,children:m.map(E=>{let b=e(E);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`significant_${b}_${r}`)})}),ie.jsx("g",{strokeDasharray:jA(i.significantLinesStyle),stroke:Vt,children:w.map(E=>{let b=t(E);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`significant_${b}_${n}`)})}),l!=="empty"&&ie.jsxs("g",{strokeWidth:w7t,children:[(a.showGrid||l!=="left")&&ie.jsx("line",{stroke:l==="left"?Pf:Vt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||l!=="bottom")&&ie.jsx("line",{stroke:l==="bottom"?Pf:Vt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||l==="full")&&ie.jsx("line",{stroke:l==="full"?Vt:Pf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||l==="full")&&ie.jsx("line",{stroke:l==="full"?Vt:Pf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}var b7t=new Vs("16px Manrope");function EK(e,t){return typeof e=="string"?e:t.length?t[0].data[e.value]:""}function E7t(e,t,n=[]){let r=e.data,a=[`x: ${Qi(e.x)}`,`y: ${Qi(e.y)}`];t.label&&a.unshift(`${t.label}: ${r[t.label]}`);for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function S7t(e){return typeof e.r2>"u"?null:ie.jsxs(ie.Fragment,{children:[ie.jsx("tspan",{children:"R"}),ie.jsx("tspan",{fontSize:"10px",dy:"-8",children:"2"}),ie.jsx("tspan",{dy:"8",children:` = ${Qi(e.r2)}`})]})}function x7t(e){return typeof e.pValue>"u"?null:ie.jsx("tspan",{children:`p-value = ${Qi(e.pValue)}`})}function B7t(e){if(typeof e.coefficients>"u")return null;let{slope:t,slopeError:n,intercept:r,interceptError:a}=e.coefficients;return ie.jsx("tspan",{children:ie.jsx("tspan",{children:`slope = ${Qi(t)} ± ${Qi(n)}, intercept = ${Qi(r)} ± ${Qi(a)}`})})}function k7t(e){let t=[S7t(e),x7t(e),B7t(e)].filter(n=>n!==null);return ie.jsx(ie.Fragment,{children:t.map((n,r)=>ie.jsxs("tspan",{children:[n,ie.jsx("tspan",{children:r<t.length-1&&", "})]},r))})}var SP=3;function SK(e,t,n,r){if(!r)return[];let a=[];for(let i of e){let l=i.label;if(!l)continue;let s=b7t.getTextMetrics(String(l));a.push({name:String(l),width:s.width,height:s.actualBoundingBoxAscent+s.actualBoundingBoxDescent,x:t.x(i.x),y:t.y(i.y),xPosition:"right",yPosition:"middle",bbox:{minX:0,maxX:0,minY:0,maxY:0},dot:i,padding:n.dotSize(r.info.aes.dotSize,i.data)+SP})}return a}function T7t({width:e,height:t,dimensions:n,scales:r,xAxis:a,yAxis:i,frameType:l,dotsData:s,facetSettings:c,trendsData:f,keyColumn:p,margins:h,chartSizes:m,tooltips:w,tooltipsContainer:E,captionsSizes:b,facetTitle:B,onlyPositive:T,layersData:P,aesGetters:M}){let[z,$]=ir.useState(null),{padding:O}=n,{dots:Q}=s,K=a.showTicks?X3:0,j=i.showTicks?X3:0,W=EK(a.title,Q),V=EK(i.title,Q),U=n.chartEdgeSides.includes("left")||!(c!=null&&c.sharedY),Z=n.chartEdgeSides.includes("bottom")||!(c!=null&&c.sharedX),q=n.chartEdgeSides.includes("left"),oe=n.chartEdgeSides.includes("bottom"),se={left:h.left+n.left+O.left,right:m.totalWidth-(h.left+n.left+O.left),top:h.top+n.top+O.top,bottom:m.totalHeight-(h.top+n.top+O.top)},Te=!1,[le,be]=ir.useState(()=>SK(Q,r,M,P.find(Re=>Re.type==="dots"))),[ge,Ae]=ir.useState(()=>X8(le,e,t,SP,SP)),[Se,ze]=ir.useState(null);return ir.useEffect(()=>{be(SK(Q,r,M,P.find(Re=>Re.type==="dots")))},[Q,r,M,P]),ir.useEffect(()=>{let Re=X8(le,e,t);Ae(Re)},[le,e,t]),ie.jsxs("g",{transform:`translate(${n.left+O.left},${n.top+O.top})`,children:[Te,B.length&&ie.jsxs("g",{children:[l==="full"&&ie.jsx("rect",{x:"0",y:-O.top,height:O.top,width:e,fill:"#F7F8FA",stroke:Vt}),B.map((Re,Fe)=>{let Le=B.length,je=(O.top-iP*Le)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:e/2,dy:je+iP/2-O.top,y:Fe*iP,textAnchor:"middle",dominantBaseline:"central",children:Re},Fe)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[oe&&ie.jsx("text",{x:e/2,y:t+O.bottom-Iv-i9/2,children:W}),Te,q&&ie.jsx("text",{x:-O.left+Iv+i9/2,y:t/2,transform:`rotate(-90,${-O.left+Iv+i9/2},${t/2})`,children:V}),Te]}),ie.jsx(C7t,{width:e,height:t,scaleX:r.x,scaleY:r.y,axisX:a,axisY:i,frameType:l}),Z&&ie.jsxs("g",{transform:`translate(0,${t})`,children:[ie.jsx(K8,{scale:r.x,orient:"bottom",onlyPositive:T.x,tickSize:K}),Te]}),U&&ie.jsxs("g",{children:[ie.jsx(K8,{scale:r.y,orient:"left",onlyPositive:T.y,tickSize:j}),Te]}),f&&f.map(({predict:Re,getArea:Fe,color:Le,data:je,bounded:ct,xBounds:Qe,stats:Je},st)=>{let[et,yt]=ct?Qe:r.x.domain(),wt=(yt-et)/15,Xt=Re(et),sr=Re(yt);if(isNaN(Xt)||isNaN(sr))return null;let rr=M.dotColor(Le,je);return ie.jsxs("g",{children:[ie.jsx("text",{y:st*20+20,fill:rr,x:e-8,textAnchor:"end",children:k7t(Je)}),ie.jsx("path",{d:Fe(r.x,r.y,ar.range(et,yt+wt/2,wt)),fill:rr,opacity:.2}),ie.jsx("line",{x1:r.x(et),x2:r.x(yt),y1:r.y(Xt),y2:r.y(sr),stroke:rr})]},st)}),P.map((Re,Fe)=>{if(Re.type==="dots")return ie.jsxs("g",{children:[Q.map(Le=>ie.jsx("g",{transform:`translate(${r.x(Le.x)},${r.y(Le.y)})`,onMouseOver:()=>$(Le),onMouseLeave:()=>$(null),children:Vc(M.dotShape(Re.info.aes.dotShape,Le.data),M.dotSize(Re.info.aes.dotSize,Le.data),M.dotColor(Re.info.aes.dotFill,Le.data))},Le.id)),ge.map(Le=>{let{name:je,height:ct,bbox:Qe,width:Je}=Le;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${Qe.minX},${Qe.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:Je,height:ct,fill:"transparent",stroke:"none",onMouseOver:()=>ze(Le.dot),onMouseLeave:()=>ze(null)}),ie.jsx("text",{x:0,y:ct/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:je})]})},Le.dot.id)}),Se&&ie.jsxs("g",{transform:`translate(${r.x(Se.x)},${r.y(Se.y)})`,children:[Vc(M.dotShape(Re.info.aes.dotShape,Se.data),M.dotSize(Re.info.aes.dotSize,Se.data)+1,"white","white"),Vc(M.dotShape(Re.info.aes.dotShape,Se.data),M.dotSize(Re.info.aes.dotSize,Se.data),M.dotColor(Re.info.aes.dotFill,Se.data))]},"activeDot")]},Fe);if(Re.type==="curve"&&!Re.info.smoothing)return Re.geoms.map((Le,je)=>ie.jsx("g",{children:ie.jsx("polyline",{points:Le.dots.map(ct=>`${r.x(ct.x)},${r.y(ct.y)}`).join(" "),fill:"none",stroke:M.lineColor(Re.info.aes.lineColor,Le.data),strokeWidth:Re.info.aes.lineWidth,strokeDasharray:jA(Re.info.aes.lineShape)})},je));if(Re.type==="curve"&&Re.info.smoothing)return Re.geoms.map((Le,je)=>ie.jsx("g",{children:ie.jsx("path",{d:V5().curve(O5).x(ct=>r.x(ct.x)).y(ct=>r.y(ct.y))(Le.dots)??"",fill:"none",stroke:M.lineColor(Re.info.aes.lineColor,Le.data),strokeWidth:Re.info.aes.lineWidth,strokeDasharray:jA(Re.info.aes.lineShape)})},je))}),w.show&&z&&ie.jsx(Fc,{content:E7t(z,p,w==null?void 0:w.content),x:r.x(z.x),y:r.y(z.y),active:!0,sideDistances:se,container:E})]})}function _7t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,facetKeys:a,facetSettings:i,scales:l,groupedDots:s,legendData:c,trendsData:f,columnsCount:p,margins:h,keyColumn:m,mainTitle:w,facetTitles:E,captionsSizes:b,onlyPositive:B,layersData:T,aesGetters:P}){let[M,z]=ir.useState(),$=ir.useRef(null);ir.useEffect(()=>{$.current&&z($.current)},[]);let{xAxis:O,yAxis:Q,title:K,frame:j,legend:W,tooltips:V}=t,U=r[a[0]].padding,Z=r[a[p-1]].padding,q=n.chartsWidth+lP,oe=U.top;return ie.jsx(a2,{dataId:e,children:ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${n.totalWidth} ${n.totalHeight}`,width:n.totalWidth,height:n.totalHeight,children:[ie.jsx("defs",{children:Dg}),ie.jsxs("g",{transform:`translate(${h.left},${h.top})`,fontFamily:"Manrope",children:[ie.jsx(i2,{title:w,show:K.show,position:K.position,leftPadding:U.left,rightPadding:Z.right,chartsWidth:n.chartsWidth}),a.map(se=>ie.jsx(T7t,{scales:{x:l.x[se],y:l.y[se]},width:n.chartWidth,height:n.chartHeight,dimensions:r[se],margins:h,chartSizes:n,facetSettings:i,xAxis:O,yAxis:Q,frameType:j.type,dotsData:s[se],trendsData:f?f[se]:null,tooltips:V,tooltipsContainer:M,keyColumn:m,facetTitle:E[se],captionsSizes:b,layersData:T[se],onlyPositive:B,aesGetters:P},se)),W.show&&ie.jsx("g",{transform:`translate(${q},${oe})`,children:ie.jsx(yK,{legendData:c})})]}),ie.jsx("g",{ref:$})]})})}function P7t(e,t,n,r){let a=[];return e%n===n-1&&a.push("right"),e%n===0&&a.push("left"),e<n&&a.push("top"),(Math.ceil((e+1)/n)===r||Math.ceil((e+1)/n)===r-1&&e%n>(t-1)%n)&&a.push("bottom"),a}function D7t(e,t,n,r,a,i,l){let s=i.includes("left")||!(l!=null&&l.sharedY),c=i.includes("left")&&t.title!=="",f=i.includes("bottom")||!(l!=null&&l.sharedX),p=i.includes("bottom")&&e.title!=="",h=n.yAxisCaptionsWidth+2*oP,m=(t.showTicks?X3:0)+oP,w=c?i9+Iv:0,E=n.xAxisCaptionsWidth+2*oP,b=e.showTicks?X3:0,B=p?i9+Iv:0,T=h+m+w+JW,P=E+b+B+JW,M=Math.max(...r.map(z=>a[z].length));return{left:s?T:Iv,top:M===0?0:Nmt*2+M*A9,bottom:f?P+8:Iv,right:Iv}}function M7t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function H7t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function I7t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function c2(e,t){return function(n,r){var a,i;if(T8(n)){let{domain:l,range:s}=n,c=Ly().domain(l).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}if(I7t(n)){let l=n.value;return(i=((a=e[l])==null?void 0:a[String(r[l])])??rP)==null?void 0:i[t]}return n}}function R7t(e){return{dotShape:c2(e,"dotShape"),dotColor:c2(e,"dotFill"),dotSize:c2(e,"dotSize"),lineShape:c2(e,"lineShape"),lineColor:c2(e,"lineColor"),trendColor:c2(e,"dotFill")}}var N7t=class{constructor(){ke(this,"reactRoot",null);ke(this,"parentNode",null);ke(this,"rootNode",null);ke(this,"component",ie.jsx(ie.Fragment,{}));ke(this,"margins",{top:Df,bottom:Df,left:Df,right:Df});ke(this,"chartsDimensions",{});ke(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});ke(this,"columnsCount",1);ke(this,"rowsCount",1);ke(this,"scales",{x:{null:Ua().domain([0,10]).range([0,600])},y:{null:Ua().domain([0,10]).range([350,0])}});ke(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});ke(this,"facetTitles",{});ke(this,"mainTitle",[]);ke(this,"legend",{width:0,height:0,items:[]})}clear(){var e;this.parentNode&&this.rootNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),this.parentNode=null,this.rootNode=null),setTimeout(()=>{var t;(t=this.reactRoot)==null||t.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.reactRoot=Fh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateChartDimensions(e,t,n,r){let{chartWidth:a,chartHeight:i}=this.chartSizes,l=0,s=0;this.chartsDimensions=e.reduce((p,h,m)=>{let[w,E]=H7t(m,this.columnsCount),b=P7t(m,e.length,this.columnsCount,this.rowsCount),B=D7t(n,r,this.captionsSizes,M7t(e,this.rowsCount,this.columnsCount)[w],this.facetTitles,b,t),T=a+B.left+B.right,P=i+B.top+B.bottom;return p[h]={left:l,top:s,chartEdgeSides:b,padding:B,inner:{width:a,height:i},outer:{width:T,height:P}},l+=T,E===this.columnsCount-1&&(l=0,s+=P),p},{});let c=Math.max(...e.map(p=>this.chartsDimensions[p].outer.width+this.chartsDimensions[p].left)),f=Math.max(...e.map(p=>this.chartsDimensions[p].outer.height+this.chartsDimensions[p].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r,a,i){let l=e.length,s=Math.min(t.nRows??l,l),c=Math.min(t.nCols??l,l);this.columnsCount=t.nRows?Math.ceil(l/s):c,this.rowsCount=Math.ceil(l/this.columnsCount);let[f,p]=[1/0,-1/0],[h,m]=[1/0,-1/0],w=e.reduce((b,B)=>{let T=a[B],{minX:P,minY:M,maxX:z,maxY:$}=T;return f=Math.min(f,P),h=Math.min(h,M),p=Math.max(p,z),m=Math.max(m,$),b[B]={minX:P,maxX:z,minY:M,maxY:$},b},{});e.forEach(b=>{let B=n.scale==="log"?Im():Ua(),T=w[b],P=n.lowerValue?Number(n.lowerValue):t.sharedX?f:T.minX,M=n.upperValue?Number(n.upperValue):t.sharedX?p:T.maxX;if(typeof n.symmetricRange<"u"){let O=n.symmetricRange;if(O>=P&&O<=M){let Q=Math.max(O-P,M-O);P=O-Q,M=O+Q}}let z=[0,this.chartSizes.chartWidth],$=B.copy().domain([P,M]).range([B8.LEFT,this.chartSizes.chartWidth-B8.RIGHT]);B.domain([$.invert(0),$.invert(this.chartSizes.chartWidth)]).range(z).nice(),this.scales.x[b]=B});let E=e.reduce((b,B)=>{let T=i?i[B]:[];return b[B]=T.reduce((P,M)=>{let z=M.bounded?M.xBounds:this.scales.x[B].domain(),$=M.getInterval(z[0]),O=M.getInterval(z[1]);return P.minY=Math.min(P.minY,isNaN($.left)?P.minY:$.left,isNaN(O.left)?P.minY:O.left),P.maxY=Math.max(P.maxY,isNaN($.right)?P.maxY:$.right,isNaN(O.right)?P.maxY:O.right),P},{minY:1/0,maxY:-1/0}),h=Math.min(h,b[B].minY),m=Math.max(m,b[B].maxY),b},{});e.forEach(b=>{let B=r.scale==="log"?Im():Ua(),T=w[b],P=E[b],M=r.lowerValue?Number(r.lowerValue):t.sharedY?h:Math.min(T.minY,P.minY),z=r.upperValue?Number(r.upperValue):t.sharedY?m:Math.max(T.maxY,P.maxY);if(typeof r.symmetricRange<"u"){let Q=r.symmetricRange;if(Q>=M&&Q<=z){let K=Math.max(Q-M,z-Q);M=Q-K,z=Q+K}}let $=[this.chartSizes.chartHeight,0],O=B.copy().domain([M,z]).range([this.chartSizes.chartHeight-B8.BOTTOM,B8.TOP]);B.domain([O.invert(this.chartSizes.chartHeight),O.invert(0)]).range($).nice(),this.scales.y[b]=B})}updateCaptionsSize(e){let t=new Vs("600 14px Arial"),n=0;function r(a){return Math.max(...a.map(i=>t.getTextWidth(i)))}Object.values(this.scales.y).forEach(a=>{let{ticks:i,format:l}=h9(a,e);n=Math.max(n,r(i.map(l)))}),this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:n}}createMainTitle(e,t){let n=this.chartsDimensions[e[0]],r=this.chartsDimensions[e[e.length-1]];this.mainTitle=Fv(t.name,this.chartSizes.chartsWidth-n.padding.left-r.padding.right,20)}createFacetTitles(e,t){this.facetTitles=e.reduce((n,r,a)=>(t[a].length===1&&t[a][0]==="null"?n[r]=[]:n[r]=Fv(t[a].join(", "),this.chartSizes.chartWidth,14),n),{})}updateMargins(){let e=24*this.mainTitle.length,t=e>0?e+24*2:0;this.margins={top:Math.max(t,Df),bottom:Df,left:Df,right:this.legend.width},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartsHeight,this.legend.height)+this.margins.bottom}updateLegendSize(e,t,n,r){if(!e.show){this.legend={width:0,height:0,items:[]};return}let a=new Vs("600 14px Manrope"),i=16,l=48,s=20,c=24;function f(M,z){return Math.max(...M.map($=>a.getTextWidth(String($))+s),a.getTextWidth(z))}let p=[];n.forEach(M=>{let z=t[M.value];if(z.usedAes.length===0||!z.aesMap)return;let $=M.label??M.value,O=z.values,Q={};O.forEach(K=>{Q[K]||(Q[K]={...aP}),z.usedAes.forEach(j=>{var W,V,U;(j==="dotFill"||j==="lineColor")&&(Q[K].color=((W=z.aesMap[K])==null?void 0:W[j])??Vt),j==="dotShape"&&(Q[K].shape=((V=z.aesMap[K])==null?void 0:V[j])??"21"),j==="dotSize"&&(Q[K].size=((U=z.aesMap[K])==null?void 0:U[j])??3)})}),p.push({columnKey:$,data:Q,values:z.values,labels:z.labels})});let h=[],m=0,w=0,E=0,b=this.chartSizes.chartsHeight,B=this.chartSizes.chartsHeight;p.map(({columnKey:M,labels:z,values:$,data:O})=>{let Q=M,K=f($.map(Z=>z[Z]),Q),j=$.length*i;j>b&&(B=j);let W=nl().domain($).range($.map(Z=>O[Z])),V=E,U=w;h.push({type:"dots",id:M,width:K,height:j,left:V,top:U,title:Q,scale:W,values:$,labels:z}),m=K,w+=j+l,w>b&&(w=0,E=K+c)}),r.forEach(M=>{if(M.type==="dots"&&T8(M.aes.dotSize)){w>B&&(w=0,E+=m+c);let{columnName:z,domain:$,range:O}=M.aes.dotSize,Q=z.label??z.value,K=Ly($,O),j=K.ticks(3),W=K.tickFormat(3),V=j.reduce((se,Te)=>(se[String(Te)]=W(Te),se),{}),U=f(j.map(se=>V[se]),Q),Z=(K(Math.max(...j))*2+4)*j.length;Z>B&&(B=Z);let q=E,oe=w;h.push({id:z.value,type:"size",width:U,height:Z,left:q,top:oe,title:Q,scale:K,values:j,labels:V}),m=U,w+=Z+l}});let T=E+m+2*lP,P=B;this.legend={width:T,height:P,items:h}}render(e,t,n,r,a,i,l,s,c,f,p,h,m,w){var z;let{xAxis:E,yAxis:b,size:B,title:T,legend:P}=t;this.updateChartSizes(B),this.updateViewport(r,n,E,b,i,l),this.updateCaptionsSize(c.y),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,E,b),this.updateLegendSize(P,f,m,w),this.createMainTitle(r,T),this.updateMargins();let M=ie.jsx(_7t,{settingsId:e,chartSettings:t,facetKeys:r,facetSettings:n,chartSizes:this.chartSizes,chartsDimensions:this.chartsDimensions,scales:this.scales,groupedDots:i,trendsData:l,legendData:this.legend,columnsCount:this.columnsCount,margins:this.margins,keyColumn:s,mainTitle:this.mainTitle,facetTitles:this.facetTitles,captionsSizes:this.captionsSizes,onlyPositive:c,layersData:p,aesGetters:R7t(h)});this.component=M,(z=this.reactRoot)==null||z.render(M)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},$7t=N7t,L7t=class{constructor(e){ke(this,"type","dots");ke(this,"aes",{dotFill:Vt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},F7t=class{constructor(e){ke(this,"type","curve");ke(this,"smoothing");ke(this,"aes",{lineColor:Vt,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},xK=class{constructor(e){ke(this,"id");ke(this,"type","scatterplot");ke(this,"keyColumn");ke(this,"facetSettings");ke(this,"x");ke(this,"y");ke(this,"facetBy");ke(this,"grouping");ke(this,"label");ke(this,"chartSettings");ke(this,"inheritedAes");ke(this,"trend");ke(this,"layers");var t,n,r,a;hgt.parse(e),this.id=ar.uniqueId("settings"),this.keyColumn=e.keyColumn,this.facetSettings={sharedX:!0,sharedY:!0,titlePosition:"left",...e.facetSettings},this.x=e.x,this.y=e.y,this.facetBy=e.facetBy??[],this.grouping=e.grouping??[],this.label=e.label??null,this.chartSettings={size:{width:((t=e==null?void 0:e.size)==null?void 0:t.width)??(this.facetBy.length?400:600),height:((n=e==null?void 0:e.size)==null?void 0:n.height)??(this.facetBy.length?250:350)},title:{position:"center",show:!0,...e.title,name:((r=e.title)==null?void 0:r.name)??"Chart"},yAxis:{title:e.y.label??e.y.value,scale:"linear",showGrid:!0,showTicks:!0,...e.yAxis},xAxis:{title:e.x.label??e.x.value,scale:"linear",showGrid:!0,showTicks:!0,...e.xAxis},frame:{type:((a=e.frame)==null?void 0:a.type)??"full"},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.inheritedAes=e.inheritedAes??{},this.trend=e!=null&&e.trend?{bounded:e.trend.bounded??!1,color:e.trend.color??Vt}:null,this.layers=e.layers.map(i=>{if(i.type==="dots")return new L7t(i);if(i.type==="curve")return new F7t(i);oA(i,"Unknown layer type")}).filter(Boolean)}},V7t=TAt(xmt()),BK=.05;function O7t(e){let t=3.3871328727963665,n=133.14166789178438,r=1971.5909503065513,a=13731.69376550946,i=45921.95393154987,l=67265.7709270087,s=33430.57558358813,c=2509.0809287301227,f=42.31333070160091,p=687.1870074920579,h=5394.196021424751,m=21213.794301586597,w=39307.89580009271,E=28729.085735721943,b=5226.495278852854,B=1.4234371107496835,T=4.630337846156546,P=5.769497221460691,M=3.6478483247632045,z=1.2704582524523684,$=.2417807251774506,O=.022723844989269184,Q=.0007745450142783414,K=2.053191626637759,j=1.6763848301838038,W=.6897673349851,V=.14810397642748008,U=.015198666563616457,Z=.0005475938084995345,q=10507500716444169e-25,oe=6.657904643501103,se=5.463784911164114,Te=1.7848265399172913,le=.29656057182850487,be=.026532189526576124,ge=.0012426609473880784,Ae=27115555687434876e-21,Se=20103343992922881e-23,ze=.599832206555888,Re=.1369298809227358,Fe=.014875361290850615,Le=.0007868691311456133,je=18463183175100548e-21,ct=1421511758316446e-22,Qe=20442631033899397e-31,Je=e-.5,st,et;return Math.abs(Je)<=.425?(st=.180625-Je*Je,et=Je*(((((((c*st+s)*st+l)*st+i)*st+a)*st+r)*st+n)*st+t)/(((((((b*st+E)*st+w)*st+m)*st+h)*st+p)*st+f)*st+1),et):(st=e,st=Math.sqrt(-Math.log(st)),st<=5?(st+=-1.6,et=(((((((Q*st+O)*st+$)*st+z)*st+M)*st+P)*st+T)*st+B)/(((((((q*st+Z)*st+U)*st+V)*st+W)*st+j)*st+K)*st+1)):(st+=-5,et=(((((((Se*st+Ae)*st+ge)*st+be)*st+le)*st+Te)*st+se)*st+oe)/(((((((Qe*st+ct)*st+je)*st+Le)*st+Fe)*st+Re)*st+ze)*st+1)),et=-et,et)}function kK(e,t){let{sin:n,cos:r,sqrt:a,pow:i,exp:l,PI:s}=Math,c,f;if(t==1)return r(e*s/2)/n(e*s/2);if(t==2)return a(2/(e*(2-e))-2);let p=1/(t-.5),h=48/(p*p),m=((20700*p/h-98)*p-16)*p+96.36,w=((94.5/(h+m)-3)/h+1)*a(p*s*.5)*t;return c=w*e,f=i(c,2/t),f>.05+p?(c=O7t(e/2),f=c*c,t<5&&(m=m+.3*(t-4.5)*(c+.6)),m=(((.05*w*c-5)*c-7)*c-2)*c+h+m,f=(((((.4*f+6.3)*f+36)*f+94.5)/m-f-3)/h+1)*c,f=p*f*f,f>.002?f=l(f)-1:f=.5*f*f+f):f=((1/(((t+6)/(t*f)-.089*w-.822)*(t+2)*3)+.5/(t+4))*f-1)*(t+1)/(t+2)+1/f,a(t*f)}function Q7t(e){let t=e.length,n=0,r=0,a=0,i=0;for(let c=0;c<e.length;++c){let f=e[c].x,p=e[c].y;if(!Number.isFinite(f)||!Number.isFinite(p)){--t;continue}n+=f,r+=p,a+=f*p,i+=f*f}let l=(t*a-n*r)/(t*i-n*n),s=(r-l*n)/t;return[l,s]}function z7t(e,t,n){let r=p=>p*t+n,a=e.length,i=Lc(e,p=>p.x)/e.length,l=kK(BK,a-2),s=Math.sqrt(Lc(e,p=>(p.y-r(p.x))**2)/(a-2)/Lc(e,p=>(p.x-i)**2)),c=s*l,f=s*Math.sqrt(Lc(e,p=>p.x**2)/a)*l;return{slope:t,intercept:n,slopeError:c,interceptError:f}}function U7t(e,t){let n=Lc(e,s=>s.x)/e.length,r=0,a=0;for(let s=0;s<e.length;++s)r+=Math.pow(e[s].x-n,2),a+=Math.pow(e[s].y-t(e[s].x),2);let i=Math.sqrt(a/(e.length-2)),l=kK(BK,e.length-2);return function(s){let c=t(s),f=i*Math.sqrt(1/e.length+Math.pow(s-n,2)/r),p=c-l*f,h=c+l*f;return{x:s,y:c,left:isNaN(p)?c:p,right:isNaN(h)?c:h}}}function G7t(e){let t=e.length;return Math.pow((t*Lc(e,n=>n.x*n.y)-Lc(e,n=>n.x)*Lc(e,n=>n.y))/(Math.sqrt(t*Lc(e,n=>n.x*n.x)-Math.pow(Lc(e,n=>n.x),2))*Math.sqrt(t*Lc(e,n=>n.y*n.y)-Math.pow(Lc(e,n=>n.y),2))),2)}function j7t(e,t){let n=Rs(e,t);return Rs(e.map(r=>(t(r)-n)**2))}function TK(e,t){return Math.sqrt(j7t(e,t))}function Y7t(e,t,n){let r=Rs(e,t),a=Rs(e,n),i=e.length;return Lc(e,l=>(l.x-r)*(l.y-a))/i}function W7t(e){let t=Y7t(e,a=>a.x,a=>a.y),n=TK(e,a=>a.x),r=TK(e,a=>a.y);return t/(n*r)}function X7t(e,t){let n=e.length,r=1,a=1,i=n-r-1,l=Rs(e,m=>m.y),s=Lc(e,m=>(t(m.x)-l)**2),c=Lc(e,m=>(t(m.x)-m.y)**2),f=s/a,p=c/i,h=f/p;return 1-(0,V7t.default)(h,a,i)}function K7t(e,t,n,r,a){return a?t.reduce((i,l)=>{let s=e[l].dots;return i[l]=n.map(c=>{let f=s.filter(B=>r.every((T,P)=>String(B.data[T.value])===c[P])),[p=0,h=0]=_A(f,B=>B.x),[m,w]=Q7t(f),E=B=>m*B+w,b=U7t(f,E);return{predict:E,getInterval:b,getArea:(B,T,P)=>TB().x(M=>B(M.x)).y0(M=>T(M.left)).y1(M=>T(M.right))(P.map(b))??"",color:a.color,bounded:a.bounded,data:f[0].data,showStats:!0,xBounds:[p,h],stats:{r2:G7t(f),r:W7t(f),pValue:X7t(f,E),coefficients:z7t(f,m,w)}}}),i},{}):null}function _K(e){if(!e.length)return[];let t=[[]];return e.forEach(n=>{let r=[];n.forEach(a=>{r.push(...t.map(i=>[...i,a]))}),t=r}),t}function Z7t(e,t,n,r){return t.reduce((a,i)=>{let l=ar.uniqBy(e.rows,p=>p[i.value]),s=p=>String(p[i.value]),c=p=>i.valueLabels?String(p[i.valueLabels]):s(p),f=new Set;return n.forEach(p=>{p.aes&&Object.entries(p.aes).forEach(([h,m])=>{typeof m=="object"&&"type"in m&&m.value===i.value&&f.add(h)})}),a[i.value]={values:l.map(s).filter(p=>p!=="null"),usedAes:[...f],aesMap:r[i.value],labels:l.reduce((p,h)=>(p[s(h)]=c(h),p),{})},a},{})}var J7t=class extends Tg{constructor(t,n){super(t,n);ke(this,"settings");ke(this,"chartRenderer",new $7t);ke(this,"calculatedData",null);this.settings=new xK(n)}mount(t){try{this.chartRenderer.init(t),this._updateData(),this._updateChart()}catch(n){n instanceof Error&&this.chartRenderer.renderError(n.message)}}unmount(){this.chartRenderer.clear()}updateSettingsAndData(t,n){try{let r=this.settings,a=this.data;this.settings=new xK(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){console.warn("no chart state for scatterplot")}export(){return this._updateChart(),l3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,l;return t.facetBy.some((s,c)=>{var f;return s.value!==((f=n.facetBy[c])==null?void 0:f.value)})||t.grouping.length!==n.grouping.length||t.grouping.some((s,c)=>{var f;return s.value!==((f=n.grouping[c])==null?void 0:f.value)})||(((r=t.label)==null?void 0:r.value)||((a=n.label)==null?void 0:a.value))&&((i=t.label)==null?void 0:i.value)!==((l=n.label)==null?void 0:l.value)||t.layers.length!==n.layers.length||t.layers.some((s,c)=>s.type!==n.layers[c].type)||!!t.trend!=!!n.trend}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var l;return t.data[i].length!==((l=n.data[i])==null?void 0:l.length)})}_updateData(){let{x:t,y:n,facetBy:r,grouping:a,keyColumn:i,trend:l,layers:s,inheritedAes:c,label:f}=this.settings,p=this.data.getColumnCategories(i.value),h=r.map(O=>this.data.getColumnCategories(O.value)),m=a.map(O=>this.data.getColumnCategories(O.value)),w=h.length?_K([...h]):[["null"]],E=m.length?_K([...m]):[["null"]],b=r.map(O=>O.value)??null;this.data.setGrouping([...b,i.value]);let B={x:this.data.rows.every(O=>{let Q=O[t.value];return Q===null||!(Number(Q)<0)}),y:this.data.rows.every(O=>{let Q=O[n.value];return Q===null||!(Number(Q)<0)})},T=s7t(this.data,w,t,n,f,p),P=Object.keys(T),M=K7t(T,P,E,a,l),z=Z7t(this.data,a,s,c),$=u7t(s,P,T,E,a);this.calculatedData={onlyPositive:B,dotsByFacets:T,facetKeys:P,facetKeysCombinations:w,trendsData:M,legendLabels:z,layersData:$}}_updateAesInData(){let t=this.calculatedData;if(!t)return;let{grouping:n,trend:r,layers:a,inheritedAes:i}=this.settings,{facetKeys:l,trendsData:s}=t;l.forEach(c=>{for(let f=0;f<a.length;f++)t.layersData[c][f].info=a[f]}),n.forEach(c=>{let f=new Set;a.forEach(p=>{p.aes&&Object.entries(p.aes).forEach(([h,m])=>{typeof m=="object"&&"type"in m&&m.value===c.value&&f.add(h)})}),t.legendLabels[c.value].usedAes=[...f],t.legendLabels[c.value].aesMap=i[c.value]}),s&&r&&Object.keys(s).forEach(c=>{s[c].forEach(f=>{f.color=r.color,f.bounded=r.bounded})})}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,facetSettings:r,grouping:a,keyColumn:i,inheritedAes:l,layers:s}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.facetKeys,this.calculatedData.facetKeysCombinations,this.calculatedData.dotsByFacets,this.calculatedData.trendsData,i,this.calculatedData.onlyPositive,this.calculatedData.legendLabels,this.calculatedData.layersData,l,a,s)}},Z8={TOP:30,BOTTOM:30,LEFT:30,RIGHT:30},m9=20,PK=4,xP=24;function q7t(e,t,n=[]){let r=e.data,a=[`x: ${Qi(e.x)}`,`y: ${Qi(e.y)}`];t.label&&a.unshift(`${t.label}: ${r[t.label]}`);for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function DK(e){return typeof e=="string"?e:e.label??e.value}function e5t({settingsId:e,scales:t,chartSettings:n,mainTitle:r,keyColumn:a,margins:i,chartSizes:l,onlyPositive:s,container:c,zoomStateKey:f,aesGetter:p,legendData:h,labels:m,selectedDot:w=null}){var K;let{title:E,xAxis:b,yAxis:B,frame:T,legend:P}=n,M=b.showTicks?PK:0,z=B.showTicks?PK:0,$=b.title,O=B.title,Q={left:0,right:l.chartWidth,top:0,bottom:l.chartHeight};return c?ie.jsxs(a2,{dataId:e,children:[ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${l.totalWidth} ${l.totalHeight}`,width:l.totalWidth,height:l.totalHeight,children:[ie.jsx("defs",{children:Dg}),ie.jsxs("g",{transform:`translate(${i.left},${i.top})`,fontFamily:"Manrope",children:[ie.jsx(i2,{title:r,show:E.show,position:E.position,leftPadding:i.left,rightPadding:i.right,chartsWidth:l.chartWidth}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[$&&ie.jsx("text",{x:l.chartWidth/2,y:l.chartHeight+i.bottom-m9/2,children:DK($)}),O&&ie.jsx("text",{x:-i.left+m9/2,y:l.chartHeight/2,transform:`rotate(-90,${-i.left+m9/2},${l.chartHeight/2})`,children:DK(O)})]}),ie.jsx(hK,{width:l.chartWidth,height:l.chartHeight,scaleX:t.x,scaleY:t.y,axisX:b,axisY:B,updatingKey:f,frameType:T.type}),ie.jsx("g",{transform:`translate(0,${l.chartHeight})`,children:ie.jsx(K8,{scale:t.x,orient:"bottom",onlyPositive:s.x,tickSize:M})}),ie.jsx("g",{children:ie.jsx(K8,{scale:t.y,orient:"left",onlyPositive:s.y,tickSize:z})}),w&&ie.jsx(Fc,{content:q7t(w,a,(K=n.tooltips)==null?void 0:K.content),x:t.x(w.x),y:t.y(w.y),active:!0,sideDistances:Q,container:c}),P.show&&ie.jsx("g",{transform:`translate(${l.chartWidth+xP},0)`,children:ie.jsx(yK,{legendData:h})})]})]}),CB.createPortal(ie.jsxs("g",{children:[m.map(j=>{let{name:W,height:V,bbox:U,width:Z}=j;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${U.minX},${U.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:Z,height:V,fill:"transparent",stroke:"none"}),ie.jsx("text",{x:0,y:V/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:W})]})},j.dot.id)}),w&&ie.jsx("circle",{cx:t.x(w.x),cy:t.y(w.y),r:5,fill:p(w.data)})]}),c)]}):null}var MK=e=>e.selection()!==e,HK=(e,t)=>{e=e||"g";let n=(i,l)=>l,r=null,a=function(i,l){l=l||(w=>w);let s=i.selection(),c=MK(i)?i:null,f=s.selectChildren(t==null?e:`${e}.${t}`).data(l,n),p=f.enter().append(e).attr("class",t),h=f.exit();f=f.merge(p);let m=c||r;return m&&(f=f.transition(m).style("opacity",1),p.style("opacity",1e-6),h=h.transition(m).style("opacity",1e-6)),h.remove(),f.enter=()=>p,f.exit=()=>h,f};return a.element=(...i)=>i.length?(e=i[0],a):e,a.className=(...i)=>i.length?(t=i[0],a):t,a.key=(...i)=>i.length?(n=i[0],a):n,a.transition=(...i)=>i.length?(r=i[0],a):r,a},IK=(e,t,n)=>{let r=t[n];if(typeof r!="function")throw new Error(`Attempt to rebind ${n} which isn't a function on the source object`);return(...a)=>{var i=r.apply(t,a);return i===t?e:i}},RK=(e,t,...n)=>{for(let r of n)e[r]=IK(e,t,r);return e},t5t=e=>t=>e.reduce((n,r)=>n&&r(n),t),BP=(e,t,...n)=>{let r=t5t(n);for(let a of Object.keys(t)){let i=r(a);i&&(e[i]=IK(e,t,a))}return e},n5t=e=>e.map(t=>typeof t=="string"?new RegExp(`^${t}$`):t),r5t=(...e)=>(e=n5t(e),t=>e.every(n=>!n.test(t))&&t),f2=e=>typeof e=="function"?e:()=>e;function a5t(){let e=arguments;return function(t,n){for(let r=0,a=e.length;r<a;r++)if(e[r](t,n)==null)return!1;return!0}}var i5t=(e,t)=>{switch(e){case"left":return t/2;case"right":return-t/2;default:return 0}},NK=e=>{let t=Object.assign({},e),n=()=>{};return Object.keys(t).forEach(r=>{n[r]=(...a)=>a.length?(t[r]=a[0],n):t[r]}),n},o5t=()=>{let e=()=>0,t=s=>s.x,n=s=>s.y,r="center",a=()=>5,i="vertical",l=NK({decorate:()=>{},defined:(s,c)=>a5t(e,t,n)(s,c),xScale:X1(),yScale:X1()});return l.values=(s,c)=>{let f=a(s,c),p=i5t(r,f),h=l.xScale(),m=l.yScale();if(i==="vertical"){let w=m(n(s,c),c),E=m(e(s,c),c),b=h(t(s,c),c)+p;return{d:s,x:b,y:w,y0:E,width:f,height:w-E,origin:[b,w],baseOrigin:[b,E],transposedX:b,transposedY:w}}else{let w=h(n(s,c),c),E=h(e(s,c),c),b=m(t(s,c),c)+p;return{d:s,x:b,y:w,y0:E,width:f,height:w-E,origin:[w,b],baseOrigin:[E,b],transposedX:w,transposedY:b}}},l.xValues=()=>i==="vertical"?[t]:[e,n],l.yValues=()=>i!=="vertical"?[t]:[e,n],l.baseValue=(...s)=>s.length?(e=f2(s[0]),l):e,l.crossValue=(...s)=>s.length?(t=f2(s[0]),l):t,l.mainValue=(...s)=>s.length?(n=f2(s[0]),l):n,l.bandwidth=(...s)=>s.length?(a=f2(s[0]),l):a,l.align=(...s)=>s.length?(r=s[0],l):r,l.orient=(...s)=>s.length?(i=s[0],l):i,l},l5t=()=>{let e=o5t(),t=f2(64),n=pL,r=Xw(),a=Xw(),i=Xw().type(Z0.UNSIGNED_SHORT),l=Xw().type(Z0.UNSIGNED_BYTE),s=rAt().crossValueAttribute(r).mainValueAttribute(a).sizeAttribute(i).definedAttribute(l),c=(E,b)=>!1,f=fAt,p=[],h=null,m=null,w=E=>{let b=f(e.xScale()),B=f(e.yScale()),T=!c(p,E);T&&(p=E,i.value((P,M)=>t(P,M)).data(E),l.value((P,M)=>e.defined()(P,M)).data(E)),(T||b.scale!==h)&&(h=b.scale,e.orient()==="vertical"?r.value((P,M)=>b.scale(e.crossValue()(P,M))).data(E):r.value((P,M)=>b.scale(e.mainValue()(P,M))).data(E)),(T||B.scale!==m)&&(m=B.scale,e.orient()==="vertical"?a.value((P,M)=>B.scale(e.mainValue()(P,M))).data(E):a.value((P,M)=>B.scale(e.crossValue()(P,M))).data(E)),s.xScale(b.webglScale).yScale(B.webglScale).type(gAt(n)).decorate(P=>e.decorate()(P,E,0)),s(E.length)};return w.size=(...E)=>E.length?(t=f2(E[0]),w):t,w.type=(...E)=>E.length?(n=E[0],w):n,w.equals=(...E)=>E.length?(c=E[0],w):c,w.scaleMapper=(...E)=>E.length?(f=E[0],w):f,BP(w,e,r5t("baseValue","bandwidth","align")),RK(w,s,"context","pixelRatio"),w},$K=()=>{let e=[],t=a=>a,n=(a,i)=>i,r=NK({decorate:()=>{},xScale:X1(),yScale:X1()});return r.xValues=()=>e.map(a=>a.xValues()).reduce((a,i)=>a.concat(i)),r.yValues=()=>e.map(a=>a.yValues()).reduce((a,i)=>a.concat(i)),r.mapping=(...a)=>a.length?(t=a[0],r):t,r.key=(...a)=>a.length?(n=a[0],r):n,r.series=(...a)=>a.length?(e=a[0],r):e,r},s5t=()=>{let e=$K(),t=HK("g"),n=HK("g","multi"),r=a=>{MK(a)&&(n.transition(a),t.transition(a));let i=e.mapping(),l=e.series(),s=e.xScale(),c=e.yScale();a.each((f,p,h)=>{let m=n(Fs(h[p]),l);m.each((w,E,b)=>{w.xScale(s).yScale(c);let B=i(f,E,l);t(Fs(b[E]),[B]).call(w)}),m.selection().order(),e.decorate()(m,f,p)})};return BP(r,e),RK(r,n,"key"),r},u5t=()=>{let e=null,t=1,n=$K(),r=a=>{let i=n.mapping(),l=n.series(),s=n.xScale(),c=n.yScale();l.forEach((f,p)=>{let h=i(a,p,l);f.context(e).pixelRatio(t).xScale(s).yScale(c);let m;f.decorate?(m=f.decorate(),f.decorate((w,E,b)=>{n.decorate()(w,a,p),m(w,E,b)})):n.decorate()(e,a,p),f(h),m&&f.decorate(m)})};return r.context=(...a)=>a.length?(e=a[0],r):e,r.pixelRatio=(...a)=>a.length?(t=a[0],r):t,BP(r,n),r};function c5t(e){return e&&typeof e=="object"&&e.type==="grouping"}function LK(e={},t,n){return function(r){var a,i;if(c5t(n)){let l=n.value,s=r[l];return(i=((a=e[l])==null?void 0:a[String(s)])??rP)==null?void 0:i[t]}return n}}var f5t=class{constructor(){ke(this,"reactRoot",null);ke(this,"parentNode",null);ke(this,"rootNode",null);ke(this,"canvasNode",null);ke(this,"svgLayerElement",null);ke(this,"svgLayerComponent",ie.jsx(ie.Fragment,{}));ke(this,"tools",null);ke(this,"margins",{top:Df,bottom:Df,left:Df,right:Df});ke(this,"chartSizes",{chartWidth:600,chartHeight:350,totalWidth:600,totalHeight:350});ke(this,"scales",{x:Ua().domain([0,10]).range([0,600]),y:Ua().domain([0,10]).range([350,0]),xOriginal:Ua().domain([0,10]).range([0,600]),yOriginal:Ua().domain([0,10]).range([350,0])});ke(this,"zoomStateKey","");ke(this,"selectedDot",null);ke(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});ke(this,"mainTitle",[]);ke(this,"legend",{width:0,height:0,items:[]});ke(this,"notCalculatedProps",{});ke(this,"allPossibleLabels",[]);ke(this,"visibleLabels",[])}clear(){var e,t;this.parentNode&&this.rootNode&&this.canvasNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),(t=this.parentNode)==null||t.removeChild(this.canvasNode),this.parentNode=null,this.rootNode=null,this.canvasNode=null,this.svgLayerElement=null,this.tools=null),setTimeout(()=>{var n;(n=this.reactRoot)==null||n.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.canvasNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.parentNode.appendChild(this.canvasNode),this.reactRoot=Fh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateViewport(e,t,n){let r=e.scale==="log"?Im():Ua(),{minX:a,minY:i,maxX:l,maxY:s}=n;if(e.lowerValue!==void 0&&(a=Math.max(a,e.lowerValue)),e.upperValue!==void 0&&(l=Math.min(l,e.upperValue)),t.lowerValue!==void 0&&(i=Math.max(i,t.lowerValue)),t.upperValue!==void 0&&(s=Math.min(s,t.upperValue)),e.symmetricRange!==void 0){let w=e.symmetricRange;if(w>=a&&w<=l){let E=Math.max(w-a,l-w);a=w-E,l=w+E}}if(typeof t.symmetricRange<"u"){let w=t.symmetricRange;if(w>=i&&w<=s){let E=Math.max(w-i,s-w);i=w-E,s=w+E}}let c=[0,this.chartSizes.chartWidth],f=r.copy().domain([a,l]).range([Z8.LEFT,this.chartSizes.chartWidth-Z8.RIGHT]);r.domain([f.invert(0),f.invert(this.chartSizes.chartWidth)]).range(c).nice(),this.scales.x=r,this.scales.xOriginal=r.copy();let p=t.scale==="log"?Im():Ua(),h=[this.chartSizes.chartHeight,0],m=p.copy().domain([i,s]).range([this.chartSizes.chartHeight-Z8.BOTTOM,Z8.TOP]);p.domain([m.invert(this.chartSizes.chartHeight),m.invert(0)]).range(h).nice(),this.scales.y=p,this.scales.yOriginal=p.copy()}updateCaptionsSize(e){let t=new Vs("600 14px Arial");function n(l){return Math.max(...l.map(s=>t.getTextWidth(s)))}let{ticks:r,format:a}=h9(this.scales.y,e),i=n(r.map(a));this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:i}}createMainTitle(e){this.mainTitle=Fv(e.name,this.chartSizes.totalWidth-this.margins.left-this.margins.right,20)}updateMargins(){let e=24*this.mainTitle.length,t=e>0?e+24*2:0;this.margins={top:Math.max(t,Df),bottom:Df+this.captionsSizes.xAxisCaptionsWidth+m9,left:Df+this.captionsSizes.yAxisCaptionsWidth+m9,right:this.legend.width+(this.legend.width>0?xP:0)+Df},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartHeight,this.legend.height)+this.margins.bottom,Fs(this.canvasNode).style("width",this.chartSizes.chartWidth+"px").style("height",this.chartSizes.chartHeight+"px").style("top",this.margins.top+"px").style("left",this.margins.left+"px")}updateLegendSize(e,t,n){if(!e.show){this.legend={width:0,height:0,items:[]};return}let r=new Vs("600 14px Arial"),a=16,i=48,l=20,s=24;function c(P,M){return Math.max(...P.map(z=>r.getTextWidth(String(z))+l),r.getTextWidth(M))}let f=[];n.forEach(P=>{let M=t[P.value];if(M.usedAes.length===0||!M.aesMap)return;let z=P.label??P.value,$=M.values,O={};$.forEach(Q=>{O[Q]||(O[Q]={...aP}),M.usedAes.forEach(K=>{var j,W;K==="dotFill"&&(O[Q].color=((j=M.aesMap[Q])==null?void 0:j[K])??Vt),K==="dotSize"&&(O[Q].size=((W=M.aesMap[Q])==null?void 0:W[K])??3)})}),f.push({columnKey:z,data:O,values:M.values,labels:M.labels})});let p=[],h=0,m=0,w=0,E=this.chartSizes.chartHeight,b=this.chartSizes.chartHeight;f.map(({columnKey:P,labels:M,values:z,data:$})=>{let O=P,Q=c(z.map(U=>M[U]),O),K=z.length*a;K>E&&(b=K);let j=nl().domain(z).range(z.map(U=>$[U])),W=w,V=m;p.push({type:"dots",id:P,width:Q,height:K,left:W,top:V,title:O,scale:j,values:z,labels:M}),h=Q,m+=K+i,m>E&&(m=0,w=Q+s)});let B=w+h+2*xP,T=b;this.legend={width:B,height:T,items:p}}initSettings(e,t,n,r,a,i,l,s){let{xAxis:c,yAxis:f,size:p,title:h,legend:m}=t;this.updateChartSizes(p),this.updateViewport(c,f,n),this.updateCaptionsSize(r.y),this.updateLegendSize(m,l,s),this.createMainTitle(h),this.updateMargins();let w=i.find($=>$.type==="dots"),E=LK(a,"dotFill",w.aes.dotFill),b=wAt().data(e).value($=>{let O=$7(E($.data));return[O.r/255,O.g/255,O.b/255,1]}),B=l5t().equals(($,O)=>$===O).size(100).crossValue($=>$.x).mainValue($=>$.y).decorate($=>b($)),T=Edt().scaleExtent([.1,1e3]).on("start",()=>{this.selectedDot=null}).on("zoom",$=>{let O=$.transform,Q=O.rescaleX(this.scales.xOriginal),K=O.rescaleY(this.scales.yOriginal);this.scales.x.domain(Q.domain()),this.scales.y.domain(K.domain()),this.zoomStateKey=`${O.x}_${O.y}_${O.k}`,this.renderSvgLayer(),this.renderWebglLayer()}).on("end",()=>{this.allPossibleLabels.forEach($=>{$.x=this.scales.x($.dot.x),$.y=this.scales.y($.dot.y)}),this.visibleLabels=X8(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.renderSvgLayer()}),P=x_().x($=>$.x).y($=>$.y).addAll(e),M=CAt().on("point",([$])=>{var W,V;if(!$){this.selectedDot=null,this.renderSvgLayer();return}let O=this.scales.x.invert($.x),Q=this.scales.y.invert($.y),K=(W=this.tools)==null?void 0:W.qt.find(O,Q),j=this.selectedDot&&!K||!this.selectedDot&&K||((V=this.selectedDot)==null?void 0:V.id)!==(K==null?void 0:K.id);this.selectedDot=K??null,j&&this.renderSvgLayer()}),z=Zdt({xScale:this.scales.x,yScale:this.scales.y}).xAxisHeight(()=>"0").yAxisWidth(()=>"0").svgPlotArea(s5t()).webglPlotArea(u5t().series([B]).mapping($=>$)).decorate($=>{let O=$.enter();O&&!this.svgLayerElement&&(O.style("grid-template-columns","0 auto 1fr auto 0"),O.style("grid-template-rows","0 auto 1fr auto 0"),this.svgLayerElement=O.select(".svg-plot-area.plot-area svg").node()),O.select(".svg-plot-area.plot-area").call(T).call(M)});this.tools={webglChart:z,zoom:T,qt:P,fillColor:b,pointSeries:B,aesGetter:E},Fs(this.canvasNode).datum(e).style("position","absolute").style("width",this.chartSizes.chartWidth+"px").style("height",this.chartSizes.chartHeight+"px").style("top",this.margins.top+"px").style("left",this.margins.left+"px")}updateAes(e,t){var a;if(this.tools===null)return;let n=t.find(i=>i.type==="dots"),r=LK(e,"dotFill",n.aes.dotFill);this.tools.aesGetter=r,(a=this.tools)==null||a.fillColor.value(i=>{let l=$7(r(i.data));return[l.r/255,l.g/255,l.b/255,1]})}updateData(e){this.tools!==null&&(Fs(this.canvasNode).datum(e),this.tools.fillColor.data(e),this.tools.qt=x_().x(t=>t.x).y(t=>t.y).addAll(e))}render(e,t,n,r,a,i,l,s,c,f,p){if(this.tools===null)this.initSettings(a,t,i,r,l,s,c,f);else{let{title:h,legend:m}=t;this.updateLegendSize(m,c,f),this.createMainTitle(h),this.updateMargins(),this.updateAes(l,s)}this.allPossibleLabels=p,this.allPossibleLabels.forEach(h=>{h.x=this.scales.x(h.dot.x),h.y=this.scales.y(h.dot.y)}),this.visibleLabels=X8(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.notCalculatedProps={settingsId:e,chartSettings:t,onlyPositive:r,keyColumn:n},this.renderWebglLayer(),this.renderSvgLayer()}renderWebglLayer(){var e,t;(e=this.tools)!=null&&e.webglChart&&Fs(this.canvasNode).call((t=this.tools)==null?void 0:t.webglChart)}renderSvgLayer(){var t,n;this.visibleLabels.forEach(r=>{r.x=this.scales.x(r.dot.x),r.y=this.scales.y(r.dot.y)}),p7t(this.visibleLabels);let e={...this.notCalculatedProps,chartSizes:this.chartSizes,scales:this.scales,margins:this.margins,mainTitle:this.mainTitle,captionsSizes:this.captionsSizes,container:this.svgLayerElement,zoomStateKey:this.zoomStateKey,selectedDot:this.selectedDot,aesGetter:(t=this.tools)==null?void 0:t.aesGetter,legendData:this.legend,labels:this.visibleLabels};this.svgLayerComponent=ie.jsx(e5t,{...e}),(n=this.reactRoot)==null||n.render(this.svgLayerComponent)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},d5t=f5t,kP=R.object({type:R.literal("grouping"),value:R.string()}),A5t=R.object({type:R.literal("dots"),aes:R.optional(R.object({dotFill:R.optional(R.union([R.string(),kP])),dotShape:R.optional(R.union([Ed,kP])),dotSize:R.optional(R.union([R.number(),kP]))}))}),p5t=A5t,h5t=R.object({type:R.literal("scatterplot-umap"),title:R.object({name:R.string(),show:R.optional(R.boolean()),position:R.optional(Rv)}),size:R.optional(R.object({width:R.optional(R.number()),height:R.optional(R.number())})),legend:R.optional(R.object({show:R.optional(R.boolean()),position:R.optional(_g)})),tooltips:R.optional(R.object({show:R.optional(R.boolean()),content:R.optional(R.array(er))})),frame:R.optional(R.object({type:R.optional(o9)})),keyColumn:er,x:er,y:er,xAxis:R.optional(Z3),yAxis:R.optional(Z3),grouping:R.optional(R.array(er)),label:R.optional(er),inheritedAes:R.optional(R.record(R.string(),K3)),layers:R.array(p5t)}),v5t=class{constructor(e){ke(this,"type","dots");ke(this,"aes",{dotFill:Vt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},FK=class{constructor(e){ke(this,"id");ke(this,"type","scatterplot-umap");ke(this,"keyColumn");ke(this,"x");ke(this,"y");ke(this,"grouping");ke(this,"label");ke(this,"chartSettings");ke(this,"inheritedAes");ke(this,"layers");var t,n,r,a;h5t.parse(e),this.id=ar.uniqueId("settings"),this.keyColumn=e.keyColumn,this.x=e.x,this.y=e.y,this.grouping=e.grouping??[],this.label=e.label??null,this.chartSettings={size:{width:((t=e==null?void 0:e.size)==null?void 0:t.width)??600,height:((n=e==null?void 0:e.size)==null?void 0:n.height)??350},title:{position:"center",show:!0,...e.title,name:((r=e.title)==null?void 0:r.name)??"Chart"},yAxis:{title:e.y.label??e.y.value,scale:"linear",showGrid:!0,showTicks:!0,...e.yAxis},xAxis:{title:e.x.label??e.x.value,scale:"linear",showGrid:!0,showTicks:!0,...e.xAxis},frame:{type:((a=e.frame)==null?void 0:a.type)??"full"},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.inheritedAes=e.inheritedAes??{},this.layers=e.layers.map(i=>{if(i.type==="dots")return new v5t(i);throw new Error("Unknown layer type")}).filter(Boolean)}};function m5t(e,t,n,r){return t.reduce((a,i)=>{let l=ar.uniqBy(e.rows,p=>p[i.value]),s=p=>String(p[i.value]),c=p=>i.valueLabels?String(p[i.valueLabels]):s(p),f=new Set;return n.forEach(p=>{p.aes&&Object.entries(p.aes).forEach(([h,m])=>{typeof m=="object"&&"type"in m&&m.value===i.value&&f.add(h)})}),a[i.value]={values:l.map(s),usedAes:[...f],aesMap:r[i.value],labels:l.reduce((p,h)=>(p[s(h)]=c(h),p),{})},a},{})}var g5t=10;function y5t(e){let t=[],n=new Vs("16px Manrope");for(let r of e){let a=r.label;if(!a)continue;let i=n.getTextMetrics(String(a));t.push({name:String(a),width:i.width,height:i.actualBoundingBoxAscent+i.actualBoundingBoxDescent,x:0,y:0,xPosition:"right",yPosition:"middle",bbox:{minX:0,maxX:0,minY:0,maxY:0},dot:r,padding:g5t})}return t}var w5t=class extends Tg{constructor(t,n){super(t,n);ke(this,"settings");ke(this,"chartRenderer",new d5t);ke(this,"calculatedData",null);this.settings=new FK(n)}mount(t){this.chartRenderer.init(t),this._updateData(),this._updateChart()}unmount(){this.chartRenderer.clear()}updateSettingsAndData(t,n){try{let r=this.settings,a=this.data;this.settings=new FK(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){console.warn("no chart state for scatterplot")}export(){return console.warn("export not implemented"),""}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,l;return t.grouping.length!==n.grouping.length||t.grouping.some((s,c)=>{var f;return s.value!==((f=n.grouping[c])==null?void 0:f.value)})||(((r=t.label)==null?void 0:r.value)||((a=n.label)==null?void 0:a.value))&&((i=t.label)==null?void 0:i.value)!==((l=n.label)==null?void 0:l.value)}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var l;return t.data[i].length!==((l=n.data[i])==null?void 0:l.length)})}_updateData(){let{x:t,y:n,keyColumn:r,label:a,grouping:i,layers:l,inheritedAes:s}=this.settings,c={x:!0,y:!0},f={minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0},p=this.data.rows.reduce((m,w)=>{if(w[t.value]===null||w[n.value]===null)return m;let E=Number(w[t.value]),b=Number(w[n.value]);return c.x&&E!==null&&E<0&&(c.x=!1),c.y&&b!==null&&b<0&&(c.y=!1),E!==null&&E<f.minX&&(f.minX=E),E!==null&&E>f.maxX&&(f.maxX=E),b!==null&&b<f.minY&&(f.minY=b),b!==null&&b>f.maxY&&(f.maxY=b),m.push({x:E,y:b,id:String(w[r.value]),label:a&&w[a.value]?String(w[a.value]):null,data:w}),m},[]),h=m5t(this.data,i,l,s);this.calculatedData={onlyPositive:c,dots:p,allPossibleLabels:y5t(p),dotsExtents:f,legendLabels:h},this.chartRenderer.updateData(p)}_updateAesInData(){let t=this.calculatedData;if(!t)return;let{layers:n,inheritedAes:r,grouping:a}=this.settings;this.chartRenderer.updateAes(r,n),a.forEach(i=>{let l=new Set;n.forEach(s=>{s.aes&&Object.entries(s.aes).forEach(([c,f])=>{typeof f=="object"&&"type"in f&&f.value===i.value&&l.add(c)})}),t.legendLabels[i.value].usedAes=[...l],t.legendLabels[i.value].aesMap=r[i.value]})}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,keyColumn:r,inheritedAes:a,layers:i,grouping:l}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.onlyPositive,this.calculatedData.dots,this.calculatedData.dotsExtents,a,i,this.calculatedData.legendLabels,l,this.calculatedData.allPossibleLabels)}};function C5t(e){let t=JI(e),n=Rs(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function b5t(e){let t=Rs(e),[n,r]=_A(e);return t===void 0||n===void 0||r===void 0?a=>a:a=>(a-t)/(r-n)}function E5t(e,t){return e==="standardScaling"?C5t(t):e==="meanNormalization"?b5t(t):n=>n}function S5t(e,t,n,r,a,i,l,s,c,f){let p={meta:{facetKeys:l,xKeys:[],yKeys:[],xLabels:{},yLabels:{},facetKeyValues:l.reduce((b,B,T)=>(b[B]=s[T],b),{}),valueExtentSize:[1/0,-1/0],valueExtentColor:[1/0,-1/0]},facets:{}},h=new Set,m=new Set,w=t.valueLabels??t.value,E=n.valueLabels??n.value;if(e.rows.forEach(b=>{let B=i.length?i.map($=>b[$.value]).join("_"):"null",T=b[t.value],P=b[n.value],M=b[r.value]??f,z=b[a.value]??f;if(!(T===null||P===null||M===null||z===null)){if(p.facets[B]||(p.facets[B]={xKeys:[],yKeys:[],cells:{}}),p.facets[B].xKeys.push(T),p.facets[B].yKeys.push(P),h.has(T)||(h.add(T),p.meta.xKeys.push(T)),m.has(P)||(m.add(P),p.meta.yKeys.push(P)),p.facets[B].cells[T]||(p.facets[B].cells[T]={}),p.meta.valueExtentSize[0]=Math.min(M,p.meta.valueExtentSize[0]),p.meta.valueExtentSize[1]=Math.max(M,p.meta.valueExtentSize[1]),p.meta.valueExtentColor[0]=Math.min(z,p.meta.valueExtentColor[0]),p.meta.valueExtentColor[1]=Math.max(z,p.meta.valueExtentColor[1]),p.facets[B].cells[T][P])throw Error(`More than 1 value for x=${T}, y=${P}`);if(p.meta.xLabels[T]&&String(b[w])!==p.meta.xLabels[T])throw Error(`More than 1 x-label value for x=${T}`);if(p.meta.yLabels[P]&&String(b[E])!==p.meta.yLabels[P])throw Error(`More than 1 y-label value for y=${P}`);p.meta.xLabels[T]=String(b[w]),p.meta.yLabels[P]=String(b[E]),p.meta&&(p.facets[B].cells[T][P]={id:`${T}_${P}`,x:T,y:P,sizeValue:M,normalizedSizeValue:M,colorValue:z,normalizedColorValue:z,data:b})}}),l.forEach(b=>{let B=p.facets[b];B.xKeys=ar.uniq(B.xKeys),B.yKeys=ar.uniq(B.yKeys)}),c){let b=[1/0,-1/0];l.forEach(B=>{let{xKeys:T,yKeys:P,cells:M}=p.facets[B],z=c.direction==="row"?T:P,$=c.direction==="row"?P:T,O=c.direction==="row"?(Q,K)=>{var j;return(j=M[Q])==null?void 0:j[K]}:(Q,K)=>{var j;return(j=M[K])==null?void 0:j[Q]};$.forEach(Q=>{let K=[];z.forEach(W=>{var U;let V=(U=O(W,Q))==null?void 0:U.colorValue;V!==void 0&&K.push(V)});let j=E5t(c.method,K);z.forEach(W=>{let V=O(W,Q);V!==void 0&&(V.normalizedColorValue=j(V.colorValue),b[0]=Math.min(V.normalizedColorValue,b[0]),b[1]=Math.max(V.normalizedColorValue,b[1]))})})}),p.meta.valueExtentColor=b}return p.meta.valueExtentSize[0]===1/0&&(p.meta.valueExtentSize[0]=0),p.meta.valueExtentSize[1]===-1/0&&(p.meta.valueExtentSize[1]=0),p.meta.valueExtentColor[0]===1/0&&(p.meta.valueExtentColor[0]=0),p.meta.valueExtentColor[1]===-1/0&&(p.meta.valueExtentColor[1]=0),p}var x5t=15,Hg=8,J8=30,B5t=48,k5t=24,q8=16,d2=4,eE=4,VK=20,T5t=16,o1={left:["axis","axisTitle"],right:["axis","axisTitle"],top:["axis","axisTitle","facetTitle"],bottom:["axis","axisTitle"]};function _5t(e,t,n,r,a,i,l){let s=r.includes(t.position),c=r.includes(e.position),f=a.length>1,p=e.showTicks?eE:0,h=t.showTicks?eE:0,m=c&&e.showTitle?J8:0,w=s&&t.showTitle?J8:0,E=c&&e.showAxisLabels&&i>q8?n.xAxisCaptions+p+d2:0,b=s&&t.showAxisLabels&&l>q8?n.yAxisCaptions+h+d2:0;return{left:{axisTitle:t.position==="left"?w:0,axis:t.position==="left"?b:0},right:{axisTitle:t.position==="right"?w:0,axis:t.position==="right"?b:0},top:{facetTitle:f?B5t:0,axisTitle:e.position==="top"?m:0,axis:e.position==="top"?E:0},bottom:{axisTitle:e.position==="bottom"?m:0,axis:e.position==="bottom"?E:0}}}function P5t(e,t,n){return{left:o1.left.reduce((r,a,i)=>{let l=i>0?o1.left[i-1]:null,s=e.left[a];return r[a]={x:l?r[l].x-s:-s,y:0,width:s,height:n,isVisible:s>0},r},{}),right:o1.right.reduce((r,a,i)=>{let l=i>0?o1.right[i-1]:null,s=e.right[a];return r[a]={x:l?r[l].x+r[l].width:t,y:0,width:s,height:n,isVisible:s>0},r},{}),top:o1.top.reduce((r,a,i)=>{let l=i>0?o1.top[i-1]:null,s=e.top[a];return r[a]={x:0,y:l?r[l].y-s:-s,width:t,height:s,isVisible:s>0},r},{}),bottom:o1.bottom.reduce((r,a,i)=>{let l=i>0?o1.bottom[i-1]:null,s=e.bottom[a];return r[a]={x:0,y:l?r[l].y+r[l].height:n,width:t,height:s,isVisible:s>0},r},{})}}function D5t(e,t,n,r){let{xLabels:a,yLabels:i}=n.meta,l=e.xAxisLabels/180*Math.PI,s=e.yAxisLabels/180*Math.PI,c=0,f=0,p=e.xAxisLabels===45;if(p){let m=n.meta.xKeys,w=t.x,E=w>q8,b=a[m[0]];c=Math.max(c,(p&&E?r.getTextWidth(b)*Math.cos(l):0)-w/2)}let h=e.yAxisLabels===45;if(h){let m=n.meta.yKeys;if(m.length){let w=t.y,E=w>q8,b=i[m[m.length-1]];f=Math.max(f,(h&&E?r.getTextWidth(b)*Math.cos(s):0)-w/2)}}return{xCaptionTail:c,yCaptionTail:f}}function M5t({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:l,stepX:s,stepY:c,labelAngles:f,xLabels:p,yLabels:h}){let m=i.showTicks?eE:0,w=l.showTicks?eE:0,E=e.top.axis.isVisible||e.bottom.axis.isVisible,b=e.top.axisTitle.isVisible?e.top.axisTitle:e.bottom.axisTitle,B=e.top.axis.isVisible?e.top.axis:e.bottom.axis,T=e.left.axis.isVisible||e.right.axis.isVisible,P=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,M=e.left.axis.isVisible?e.left.axis:e.right.axis;return ie.jsxs("g",{children:[ie.jsxs("g",{children:[b.isVisible&&ie.jsxs("g",{transform:`translate(${b.x},${b.y})`,children:[ie.jsx("text",{x:b.width/2,y:b.height/2,textAnchor:"middle",dominantBaseline:"central",children:i.title}),t&&ie.jsx("rect",{width:b.width,height:b.height,stroke:Vt,fill:"none"})]}),E&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${B.x},${B.y})`,children:[n.map(z=>{let $=f.xAxisLabels!==0,O=i.position==="bottom",Q=O?0:B.height,K=O?Q+m:Q-m,j=O?K+d2:K-d2,W=a.x(z)+s/2,V=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:W,x2:W,y1:Q,y2:K,stroke:Vt}),ie.jsx("text",{x:W,y:j,textAnchor:$?O?"end":"start":"middle",transform:`rotate(${V},${W},${j})`,dominantBaseline:$?"central":O?"hanging":"auto",children:p[z]})]},z)}),t&&ie.jsx("rect",{width:B.width,height:B.height,stroke:Vt,fill:"none"})]})]}),ie.jsxs("g",{children:[P.isVisible&&ie.jsx("g",{transform:`translate(
15120
15120
  ${P.x+P.width/2},
15121
15121
  ${P.y+P.height/2})`,children:ie.jsx("text",{transform:`rotate(${l.position==="left"?-90:90})`,dominantBaseline:"central",textAnchor:"middle",children:l.title})}),t&&ie.jsx("rect",{x:P.x,y:P.y,width:P.width,height:P.height,stroke:Vt,fill:"none"}),T&&ie.jsx("g",{fontSize:"14px",transform:`translate(${M.x},${M.y})`,children:r.map(z=>{let $=f.yAxisLabels!==0,O=l.position==="left",Q=-(90-f.yAxisLabels),K=f.yAxisLabels===0?"middle":O?"end":"start",j=$?"central":O?"auto":"hanging",W=O?M.width:0,V=O?W-w:W+w,U=O?V-d2:V+d2,Z=a.y(z)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:W,x2:V,y1:Z,y2:Z,stroke:Vt}),ie.jsx("text",{x:U,y:Z,textAnchor:K,transform:`rotate(${Q},${U},${Z})`,dominantBaseline:j,children:h[z]})]},z)})}),t&&ie.jsx("rect",{x:M.x,y:M.y,height:M.height,width:M.width,stroke:Vt,fill:"none"})]})]})}function tE(e){if(e===null)return"null";if(typeof e=="number"){let t=e>0?Math.floor(e):Math.ceil(e),n=e-t;return t+Number(n.toPrecision(2))}return e}function H5t(e,t=[]){let n=e.data,r=[`X: ${e.x}`,`Y: ${e.y}`,`Value (color): ${tE(e.colorValue)}${e.colorValue!==e.normalizedColorValue?` (${tE(e.normalizedColorValue)})`:""}`,`Value (size): ${tE(e.sizeValue)}${e.sizeValue!==e.normalizedSizeValue?` (${tE(e.normalizedSizeValue)})`:""}`];for(let a of t)r.push(`${a.label}: ${n[a.valueLabels??a.value]}`);return r}function I5t({facetKey:e,dimensions:t,scales:n,cells:r,colorScale:a,sizeScale:i,chartSettings:l,cellsMeta:s,stepX:c,stepY:f,aes:p,labelAngles:h,chartSizes:m,margins:w,tooltipsContainer:E}){let[b,B]=ir.useState(null),{xAxis:T,yAxis:P,tooltips:M}=l,{width:z,height:$}=t.inner,{padding:O,sideElementBBoxes:Q}=t,{xLabels:K,yLabels:j}=s,W=n.x.domain(),V=n.y.domain(),U={left:w.left+t.left+O.left,right:m.totalWidth-(w.left+t.left+O.left),top:w.top+t.top+O.top,bottom:m.totalHeight-(w.top+t.top+O.top)},Z=!1;return ie.jsxs("g",{transform:`translate(${t.left},${t.top})`,fontSize:T5t,children:[ie.jsxs("g",{transform:`translate(${O.left},${O.top})`,children:[Q.top.facetTitle.isVisible&&ie.jsx("text",{x:Q.top.facetTitle.x,y:Q.top.facetTitle.y+Q.top.facetTitle.height-k5t,fontWeight:"500",fontSize:"20px",children:s.facetKeyValues[e].join(", ")}),Z,W.map(q=>V.map(oe=>{var Te;let se=(Te=r==null?void 0:r[q])==null?void 0:Te[oe];return se?ie.jsx("circle",{cx:n.x(q)+c/2,cy:n.y(oe)+f/2,r:i(se.normalizedSizeValue),stroke:p.cellStrokeColor,fill:se.colorValue===null?p.emptyCellColor:a(se.normalizedColorValue),onMouseOver:()=>B(se),onMouseLeave:()=>B(null)},se?se.id:`${q}_${oe}`):null})),ie.jsx("g",{children:l.frame.type==="full"&&ie.jsx("rect",{fill:"none",stroke:Vt,x:"0",y:"0",width:z,height:$})}),ie.jsx("g",{fontWeight:"500",children:ie.jsx(M5t,{sideElementBBoxes:Q,xKeys:W,yKeys:V,scales:n,xAxis:T,yAxis:P,stepX:c,stepY:f,labelAngles:h,xLabels:K,yLabels:j,debug:Z})})]}),l.tooltips.show&&b&&ie.jsx(Fc,{content:H5t(b,M==null?void 0:M.content),x:n.x(String(b.x))+c/2,y:n.y(String(b.y))+f/2,offset:W.length>1?c/2:0,active:!0,sideDistances:U,container:E})]})}var OK=14,QK=-12;function R5t({data:e}){let{items:t}=e,n=t.filter(a=>a.type==="gradient"),r=!1;return ie.jsxs("g",{fontSize:"12px",children:[ie.jsx("defs",{children:n.map(a=>ie.jsx("linearGradient",{id:a.id,gradientTransform:"rotate(90)",children:a.scale.domain().reverse().map(i=>{let l=a.scale.domain(),s=l[l.length-1]-l[0],c=s>0?100-(i-l[0])/s*100:0;return ie.jsx("stop",{offset:`${c}%`,stopColor:a.scale(i)},i)})},a.id))}),t.map(a=>{if(a.type==="gradient")return ie.jsxs("g",{transform:`translate(${a.left},${a.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:QK,children:a.title}),ie.jsx("rect",{x:"0",y:"0",width:OK,height:a.height,stroke:Vt,fill:`url(#${a.id})`}),ie.jsx("g",{transform:`translate(${OK},0)`,children:a.values.map(i=>{let l=a.scale.domain(),s=l[l.length-1]-l[0],c=s>0?a.height-a.height*(i-l[0])/s:0;return ie.jsxs("g",{transform:`translate(0,${c})`,children:[ie.jsx("line",{x1:"0",x2:-4,stroke:Vt}),ie.jsx("text",{x:8,y:4,children:i})]},i)})}),r]},a.id);if(a.type==="size"){let i=a.height/a.values.length;return ie.jsxs("g",{transform:`translate(${a.left},${a.top})`,fontSize:"14px",fontWeight:500,children:[ie.jsx("text",{fontWeight:500,y:QK,children:a.title}),a.values.map((l,s)=>{let c=a.scale(l);return ie.jsxs("g",{transform:`translate(0, ${s*i})`,children:[ie.jsx("circle",{r:c,cx:i/2,cy:i/2,fill:Vt}),ie.jsx("text",{x:i+4,y:i/2,alignmentBaseline:"central",children:a.labels[l]})]},l)}),r]},a.id)}})]})}function N5t({margins:e,captionsSizes:t,settingsId:n,chartSettings:r,chartSizes:a,chartsDimensions:i,facetKeys:l,scales:s,colorScale:c,sizeScale:f,groupedCells:p,cellsMeta:h,step:m,legend:w,aes:E,columnsCount:b,labelAngles:B}){let[T,P]=ir.useState(),M=ir.useRef(null);ir.useEffect(()=>{M.current&&P(M.current)},[]);let z=i[l[0]].padding,$=i[l[b-1]].padding,O=e.left+a.chartsWidth+VK,Q=e.top+z.top;return ie.jsx(a2,{dataId:n,children:ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${a.totalWidth} ${a.totalHeight}`,width:a.totalWidth,height:a.totalHeight,fontFamily:"Manrope",children:[ie.jsx("defs",{children:Dg}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(i2,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:z.left,rightPadding:$.right,chartsWidth:a.chartsWidth}),l.map(K=>{let{cells:j}=p[K];return ie.jsx(I5t,{captionsSizes:t,facetKey:K,dimensions:i[K],scales:s,cells:j,cellsMeta:h,stepX:m.x,stepY:m.y,colorScale:c,sizeScale:f,chartSettings:r,aes:E,labelAngles:B,margins:e,chartSizes:a,tooltipsContainer:T},K)})]}),ie.jsx("g",{transform:`translate(${O},${Q})`,children:ie.jsx(R5t,{data:w})}),ie.jsx("g",{ref:M})]})})}var $5t=(e,t)=>{let n=Math.min(...t),r=Math.max(...t);if(n===r){let l=e%2===0?[]:[n];for(let s=1;s<e/2+1;s++)l.push(n+s),l.unshift(n-s);return l}if(e<2)return[n,r];let a=(r-n)/(e-1),i=[];for(let l=0;l<e-1;l++)i.push(n+a*l);return i.push(r),i};function L5t(e,t,n){let r=n;return e&&(e.colorRange&&(r=e.colorRange),e.method==="standardScaling"&&(r=[-2,2]),e.method==="meanNormalization"&&(r=[-.75,.75])),$5t(t,r)}var F5t=class{constructor(){ke(this,"reactRoot",null);ke(this,"parentNode",null);ke(this,"rootNode",null);ke(this,"component",ie.jsx(ie.Fragment,{}));ke(this,"chartsDimensions",{});ke(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});ke(this,"margins",{top:Hg,bottom:Hg,left:Hg,right:Hg});ke(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xCaptionTail:0,yCaptionTail:0});ke(this,"labelAngles",{xAxisLabels:0,yAxisLabels:0});ke(this,"columnsCount",1);ke(this,"rowsCount",1);ke(this,"scales",{x:nl().domain(["null"]).range([1]),y:nl().domain(["null"]).range([1])});ke(this,"step",{x:10,y:10});ke(this,"colorScale",Ua().domain([0,1]).range(["white","black"]));ke(this,"sizeScale",Ly().domain([0,1]).range([3,20]));ke(this,"legend",{width:0,height:0,items:[]})}clear(){var e;this.parentNode&&this.rootNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),this.parentNode=null,this.rootNode=null),setTimeout(()=>{var t;(t=this.reactRoot)==null||t.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.reactRoot=Fh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Hg,bottom:Hg,left:Hg,right:this.legend.width},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartsHeight+this.margins.bottom,this.legend.height)}updateLegendSize(e,t,n){if(!e.show){this.legend={width:0,height:0,items:[]};return}let r=20,a=[],i=0,l=this.chartSizes.chartsHeight,s=this.colorScale.domain(),c=P8(this.colorScale,[s[0],s[s.length-1]]),f=t.label??t.value,p={id:"colorValue",type:"gradient",width:M8(c,f),height:Math.min(this.chartSizes.chartHeight,350),left:0,top:0,scale:this.colorScale,values:c,title:f};a.push(p),i+=p.width+r;let h=p.width,m=n.label??n.value,w=this.sizeScale.ticks(3),E=this.sizeScale.tickFormat(3),b=w.reduce((O,Q)=>(O[String(Q)]=E(Q),O),{}),B=new Vs("600 14px Manrope");function T(O,Q){return Math.max(...O.map(K=>B.getTextWidth(String(K))+r),B.getTextWidth(Q))}let P=T(w.map(O=>b[O]),m),M=(this.sizeScale(Math.max(...w))*2+4)*w.length,z=i;a.push({id:n.value,type:"size",width:P,height:M,left:z,top:0,title:m,scale:this.sizeScale,values:w,labels:b});let $=i+h+2*VK;this.legend={width:$,height:l,items:a}}updateCaptionsSize(e,t,n){let r=new Vs("bold 14px Arial"),{xKeys:a,yKeys:i,xLabels:l,yLabels:s}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle};let c=a.map(E=>r.getTextWidth(l[E])),f=i.map(E=>r.getTextWidth(s[E])),{xCaptionTail:p,yCaptionTail:h}=D5t(this.labelAngles,this.step,e,r),m=this.labelAngles.xAxisLabels/180*Math.PI,w=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:p,yCaptionTail:h,xAxisCaptions:Math.max(...c,0)*Math.sin(m)||J8,yAxisCaptions:Math.max(...f,0)*Math.sin(w)||J8}}updateChartDimensions(e,t,n,r){let a=e.length,i=Math.min(t.nRows??a,a),l=Math.min(t.nCols??a,a);this.columnsCount=t.nRows?Math.ceil(a/i):l,this.rowsCount=Math.ceil(a/this.columnsCount),this.chartsDimensions={};let s=0,c=0;e.forEach((h,m)=>{let w=m%this.columnsCount+1,E=nK(m,e.length,this.columnsCount,this.rowsCount),b=this.chartSizes.chartWidth,B=this.chartSizes.chartHeight,T=_5t(n,r,this.captionsSizes,E,e,this.step.x,this.step.y);function P(Q){return Math.max(o1[Q].reduce((K,j)=>K+T[Q][j],0),x5t)}let M={left:P("left"),right:P("right"),top:P("top"),bottom:P("bottom")};M.left<this.captionsSizes.xCaptionTail&&(M.left=this.captionsSizes.xCaptionTail),M.bottom<this.captionsSizes.yCaptionTail&&(M.bottom=this.captionsSizes.yCaptionTail);let z=P5t(T,b,B),$=b+M.left+M.right,O=B+M.top+M.bottom;this.chartsDimensions[h]={left:s,top:c,inner:{width:b,height:B},outer:{width:$,height:O},padding:M,sideElementBBoxes:z,chartEdgeSides:E},s+=$,w===this.columnsCount&&(s=0,c+=O)});let f=e.slice(0,this.columnsCount).reduce((h,m)=>h+this.chartsDimensions[m].outer.width,0),p=e.filter((h,m)=>m%this.columnsCount===0).reduce((h,m)=>h+this.chartsDimensions[m].outer.height,0);this.chartSizes.chartsWidth=f,this.chartSizes.chartsHeight=p}updateChartsSizes(e,t){let{width:n,height:r,cellSize:a}=t;a&&(this.chartSizes.chartWidth=e.meta.xKeys.length*a,this.chartSizes.chartHeight=e.meta.yKeys.length*a),n&&r&&(this.chartSizes.chartWidth=n,this.chartSizes.chartHeight=r)}updateScales(e,t){let{width:n,height:r,cellSize:a}=t,{meta:i}=e,l=i.xKeys,s=i.yKeys;a?(this.step.x=a,this.step.y=a):n&&r&&(this.step.x=n/l.length,this.step.y=r/s.length);let c=new Array(l.length).fill(null).map((p,h)=>h*this.step.x),f=new Array(s.length).fill(null).map((p,h)=>h*this.step.y);this.scales.x=nl().domain(l).range(c),this.scales.y=nl().domain(s).range(f)}updateAesScale(e,t,n,r){this.colorScale=Ua().domain(L5t(r,e.colorsList.length,n)).range(e.colorsList),this.sizeScale=Ly(t,[e.minRadius,e.maxRadius])}render(e,t,n,r,a,i,l,s,c){var P;let{meta:f,facets:p}=a,{valueExtentSize:h,valueExtentColor:m}=f,{xAxis:w,yAxis:E,title:b,size:B}=t;this.updateChartsSizes(a,B),this.updateAesScale(c,h,m,s),this.updateScales(a,B),this.updateCaptionsSize(a,w,E),this.updateChartDimensions(r,n,w,E),this.updateLegendSize(t.legend,i,l),this.updateMargins(b);let T=ie.jsx(N5t,{aes:c,captionsSizes:this.captionsSizes,cellsMeta:f,columnsCount:this.columnsCount,chartsDimensions:this.chartsDimensions,chartSettings:t,chartSizes:this.chartSizes,sizeScale:this.sizeScale,colorScale:this.colorScale,facetKeys:r,facetSettings:n,groupedCells:p,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step});this.component=T,(P=this.reactRoot)==null||P.render(T)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},V5t=F5t,zK=class{constructor(e){ke(this,"id");ke(this,"type","bubble");ke(this,"facetSettings");ke(this,"valueColumnSize");ke(this,"valueColumnColor");ke(this,"xColumn");ke(this,"yColumn");ke(this,"facetBy");ke(this,"normalization");ke(this,"NAValueAs");ke(this,"chartSettings");ke(this,"aes");var a,i,l,s,c,f,p,h,m,w;Pgt.parse(e),this.id=ar.uniqueId("settings"),this.facetSettings={titlePosition:"left",...e.facetSettings},this.facetBy=e.facetBy??[],this.valueColumnSize=e.valueSize,this.valueColumnColor=e.valueColor,this.xColumn=e.xColumn,this.yColumn=e.yColumn,this.NAValueAs=e.NAValueAs??null,this.normalization=e.normalization??null;let t=((a=e.size)==null?void 0:a.cellSize)??null,n=t?null:((i=e==null?void 0:e.size)==null?void 0:i.width)??(this.facetBy.length?400:600),r=t?null:((l=e==null?void 0:e.size)==null?void 0:l.height)??(this.facetBy.length?250:350);this.chartSettings={size:{width:n,height:r,cellSize:t},title:{position:"center",show:!0,...e.title,name:((s=e.title)==null?void 0:s.name)??"Chart"},yAxis:{title:e.yColumn.label??e.yColumn.value,showTicks:!0,showTitle:!0,showAxisLabels:!0,position:"left",axisLabelsAngle:90,...e.yAxis},xAxis:{title:e.xColumn.label??e.xColumn.value,showTicks:!0,showTitle:!0,showAxisLabels:!0,position:"bottom",axisLabelsAngle:90,...e.xAxis},frame:{type:((c=e.frame)==null?void 0:c.type)??"full"},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.aes={minRadius:((f=e.aes)==null?void 0:f.minRadius)??3,maxRadius:((p=e.aes)==null?void 0:p.maxRadius)??20,colorsList:((h=e.aes)==null?void 0:h.colorsList)??["black","white","red"],cellStrokeColor:((m=e.aes)==null?void 0:m.cellStrokeColor)??Vt,emptyCellColor:((w=e.aes)==null?void 0:w.emptyCellColor)??"white"}}},O5t=class extends Tg{constructor(t,n){super(t,n);ke(this,"settings");ke(this,"chartRenderer",new V5t);ke(this,"calculatedData",null);this.settings=new zK(n)}mount(t){try{this.chartRenderer.init(t),this._updateData(),this._updateChart()}catch(n){n instanceof Error&&this.chartRenderer.renderError(n.message)}}unmount(){this.chartRenderer.clear()}updateSettingsAndData(t,n){try{let r=this.settings,a=this.data;this.settings=new zK(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){console.warn("no chart state for bubble chart")}export(){return this._updateChart(),l3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,l;return t.facetBy.some((s,c)=>{var f;return s.value!==((f=n.facetBy[c])==null?void 0:f.value)})||((r=t.normalization)==null?void 0:r.method)!==((a=n.normalization)==null?void 0:a.method)||((i=t.normalization)==null?void 0:i.direction)!==((l=n.normalization)==null?void 0:l.direction)||t.xColumn.value!==n.xColumn.value||t.yColumn.value!==n.yColumn.value||t.valueColumnColor.value!==n.valueColumnColor.value||t.valueColumnSize.value!==n.valueColumnSize.value||t.NAValueAs!==n.NAValueAs}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var l;return t.data[i].length!==((l=n.data[i])==null?void 0:l.length)})}_updateData(){let{facetBy:t,xColumn:n,yColumn:r,valueColumnSize:a,valueColumnColor:i,normalization:l,NAValueAs:s}=this.settings,c=t.map(h=>this.data.getColumnCategories(h.value)),f=(c.length?mK([...c]):[["null"]]).map(h=>h.join(", ")),p=t.map(h=>h.value)??null;this.data.setGrouping([...p]),this.calculatedData={facetKeys:f,groupedCellsData:S5t(this.data,n,r,a,i,t,f,c,l,s)}}_updateAesInData(){this.calculatedData}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,facetSettings:r,valueColumnColor:a,valueColumnSize:i,normalization:l,aes:s}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.facetKeys,this.calculatedData.groupedCellsData,a,i,l,s)}};function Q5t(e){return"type"in e&&e.type==="columns"}var UK=class gI{constructor(t,n){ke(this,"id");ke(this,"data");ke(this,"rowsCount");ke(this,"columnNames");ke(this,"rowsGrouped");this.id=t,this.data=n,this.columnNames=Object.keys(n),this.rowsCount=this.columnNames.length?n[this.columnNames[0]].length:0}static from(t){if(t instanceof gI)return t;if(Q5t(t))return new gI(t.id,t.values);oA(t,"Unknown input data format")}get rows(){let t=this.columnNames,n=[];for(let r=0;r<this.rowsCount;r++)n.push(t.reduce((a,i)=>(a[i]=this.data[i][r],a),{}));return n}getColumn(t){return this.data[t]}getColumnCategories(t){if(!this.columnNames.includes(t))throw new Error(`Column ${t} does not exist`);return ar.uniq(this.getColumn(t)).map(String)}setGrouping(t){let n={grouped:{},rows:this.rows},r=[n];t.forEach(a=>{let i=a===null?["null"]:this.getColumnCategories(a),l=[];r.forEach(s=>{if(a===null)s.grouped={null:{rows:s.rows,grouped:{}}},l.push(s.grouped.null);else{let c=ar.groupBy(s.rows,f=>String(f[a]));s.grouped=i.reduce((f,p)=>(f[p]={rows:c[p]??[],grouped:{}},l.push(f[p]),f),{})}}),r=l}),this.rowsGrouped=n.grouped}getColumnByGrouping(t,n){if(!this.rowsGrouped)return[];if(!t.length)return this.rows.map(a=>Number(a[n]));let r={grouped:this.rowsGrouped,rows:this.rows};return t.forEach(a=>{let i=r.grouped[a??"null"];if(!i)return[];r=i}),r.rows.map(a=>Number(a[n]))}getRowsByGrouping(t){if(!this.rowsGrouped)return[];if(!t.length)return this.rows;let n={grouped:this.rowsGrouped,rows:this.rows};return t.forEach(r=>{let a=n.grouped[r??"null"];if(!a)return[];n=a}),n==null?void 0:n.rows}},z5t=class yI{constructor(t){ke(this,"node");ke(this,"chart");this.chart=t}static createChart(t,n,r){let{type:a}=n;if(a==="discrete")return new l2t(t,n);if(a==="dendro")return new iyt(t,n,r);if(a==="scatterplot")return new J7t(t,n);if(a==="scatterplot-umap")return new w5t(t,n);if(a==="heatmap")return new $2t(t,n);if(a==="histogram")return new l7t(t,n);if(a==="bubble")return new O5t(t,n);oA(a,`Unknown chart type: ${a}`)}static newPlot(t,n,r){let a=UK.from(t);return new this(yI.createChart(a,n,r))}get calculatedData(){return this.chart.calculatedData}mount(t){this.node=t,this.chart.mount(t)}unmount(){delete this.node,this.chart.unmount()}updateSettingsAndData(t,n){if(n.type!==this.chart.settings.type){let r=yI.createChart(this.chart.data,n);this.node?(this.chart.unmount(),this.chart=r,this.chart.mount(this.node)):this.chart=r}else this.chart.updateSettingsAndData(UK.from(t),n)}updateChartState(t,n){this.chart.updateChartState(t,n)}export(){return this.chart.export()}};/*! Bundled license information:
15122
15122
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/graph-maker",
3
- "version": "1.1.50",
3
+ "version": "1.1.51",
4
4
  "type": "module",
5
5
  "main": "dist/graph-maker.umd.cjs",
6
6
  "module": "dist/graph-maker.js",
@@ -33,7 +33,7 @@
33
33
  "ag-grid-vue3": "^33.0.2",
34
34
  "@ag-grid-community/core": "^32.3.3",
35
35
  "@milaboratories/helpers": "^1.6.11",
36
- "@milaboratories/miplots4": "^1.0.70",
36
+ "@milaboratories/miplots4": "^1.0.71",
37
37
  "@milaboratories/pf-plots": "^1.0.85",
38
38
  "@platforma-sdk/model": "^1.22.59",
39
39
  "@platforma-sdk/ui-vue": "^1.22.59",