@milaboratories/graph-maker 1.1.74 → 1.1.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/graph-maker.js +4 -4
- package/dist/graph-maker.umd.cjs +1 -1
- package/package.json +2 -2
package/dist/graph-maker.js
CHANGED
|
@@ -89871,9 +89871,9 @@ function vbt(e, t, n = []) {
|
|
|
89871
89871
|
for (let i of n) a.push(`${i.label}: ${r[i.valueLabels ?? i.value]}`);
|
|
89872
89872
|
return a;
|
|
89873
89873
|
}
|
|
89874
|
-
function mbt(e) {
|
|
89875
|
-
let
|
|
89876
|
-
return e.xKey &&
|
|
89874
|
+
function mbt(e, t) {
|
|
89875
|
+
let n = [];
|
|
89876
|
+
return e.xKey && n.push(`X: ${t.xLabels[e.xKey]}`), e.yKey && n.push(`Y: ${t.yLabels[e.yKey]}`), n.push(`${e.title}: ${vH(e.value)}`), n;
|
|
89877
89877
|
}
|
|
89878
89878
|
function gbt({ dendrograms: e, facetKey: t, dimensions: n, scales: r, cells: a, xGroupKeys: i, yGroupKeys: o, xKeysByGroups: s, yKeysByGroups: c, colorScale: f, chartSettings: A, cellsMeta: p, stepX: v, stepY: g, sharedX: b, sharedY: C, annotations: E, annotationColorScales: B, dendrogramAesScales: _, aes: M, labelAngles: N, chartSizes: P, margins: O, tooltipsContainer: V }) {
|
|
89879
89879
|
let [J, q] = pr.useState(null), [Y, z] = pr.useState(null), { xAxis: $, yAxis: j, tooltips: U } = A, { width: ne, height: le } = n.inner, { padding: xe, chartEdgeSides: ie, sideElementBBoxes: be } = n, { xGroupKeyValues: Me, yGroupKeyValues: ce, xLabels: ge, yLabels: et } = p, Oe = r.x.domain(), Ze = r.y.domain(), Ue = { left: O.left + n.left + xe.left, right: P.totalWidth - (O.left + n.left + xe.left), top: O.top + n.top + xe.top, bottom: P.totalHeight - (O.top + n.top + xe.top) }, qe = !1;
|
|
@@ -89881,7 +89881,7 @@ function gbt({ dendrograms: e, facetKey: t, dimensions: n, scales: r, cells: a,
|
|
|
89881
89881
|
var Re;
|
|
89882
89882
|
let st = (Re = a == null ? void 0 : a[mt]) == null ? void 0 : Re[Ke];
|
|
89883
89883
|
return st ? ae.jsx("rect", { x: r.x(mt), y: r.y(Ke), width: v, height: g, stroke: M.cellStrokeColor, fill: st.value === null ? M.emptyCellColor : f(st.normalizedValue), onMouseOver: () => q(st), onMouseLeave: () => q(null) }, st ? st.id : `${mt}_${Ke}`) : null;
|
|
89884
|
-
})), ae.jsx(hbt, { frame: A.frame, xGroupKeys: i, yGroupKeys: o, xKeysByGroups: s, yKeysByGroups: c, scales: r, stepX: v, stepY: g, width: ne, height: le }), ae.jsx(dbt, { xAxis: $, yAxis: j, scales: r, stepX: v, stepY: g, debug: qe, sideElementBBoxes: be, xKeys: Oe, yKeys: Ze, xGroupKeys: i, yGroupKeys: o, xKeysByGroups: s, yKeysByGroups: c, xGroupKeyValues: Me, yGroupKeyValues: ce, labelAngles: N, xLabels: ge, yLabels: et })] }), A.tooltips.show && J && ae.jsx(xf, { content: vbt(J, p, U == null ? void 0 : U.content), x: r.x(String(J.x)) + v / 2, y: r.y(String(J.y)) + g / 2, offset: Oe.length > 1 ? v / 2 : 0, active: !0, sideDistances: Ue, container: V }), A.tooltips.show && Y && ae.jsx(xf, { content: mbt(Y), x: Y.x, y: Y.y, offset: 0, active: !0, sideDistances: Ue, container: V })] });
|
|
89884
|
+
})), ae.jsx(hbt, { frame: A.frame, xGroupKeys: i, yGroupKeys: o, xKeysByGroups: s, yKeysByGroups: c, scales: r, stepX: v, stepY: g, width: ne, height: le }), ae.jsx(dbt, { xAxis: $, yAxis: j, scales: r, stepX: v, stepY: g, debug: qe, sideElementBBoxes: be, xKeys: Oe, yKeys: Ze, xGroupKeys: i, yGroupKeys: o, xKeysByGroups: s, yKeysByGroups: c, xGroupKeyValues: Me, yGroupKeyValues: ce, labelAngles: N, xLabels: ge, yLabels: et })] }), A.tooltips.show && J && ae.jsx(xf, { content: vbt(J, p, U == null ? void 0 : U.content), x: r.x(String(J.x)) + v / 2, y: r.y(String(J.y)) + g / 2, offset: Oe.length > 1 ? v / 2 : 0, active: !0, sideDistances: Ue, container: V }), A.tooltips.show && Y && ae.jsx(xf, { content: mbt(Y, p), x: Y.x, y: Y.y, offset: 0, active: !0, sideDistances: Ue, container: V })] });
|
|
89885
89885
|
}
|
|
89886
89886
|
var jY = 14, U8 = 12, GY = -12;
|
|
89887
89887
|
function ybt({ data: e, height: t }) {
|
package/dist/graph-maker.umd.cjs
CHANGED
|
@@ -15178,7 +15178,7 @@ void main() {
|
|
|
15178
15178
|
L 0,0 z`}function Jyt(e,t,n,r,a){switch(n){case"left":return Wyt(e,t,a);case"right":return Xyt(e,t,a);case"top":return Kyt(e,t,r);case"bottom":return Zyt(e,t,r);default:mA(n,"Unknown tooltip direction")}}function qyt(e,t,n,r,a,i,o){return o?i.right-n-a-xs>e?"right":"left":i.top+r-a-xs>t?"top":"bottom"}function e3t(e,t,n,r,a,i){return e==="left"||e==="right"?`translate(${e==="left"?-(r+xs+t):r+xs},${-n/2+i})`:`translate(${-t/2+a},${e==="top"?-(n+r+xs):r+xs})`}function t3t(e,t){return e==="left"||e==="right"?`translate(${e==="left"?-t:t},0)`:`translate(0,${e==="top"?-t:t})`}function n3t(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 r3t(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 Mc({content:e,x:t,y:n,active:r,container:a,sideDistances:i,offset:o=jyt,horizontal:s=!0}){if(!r||!a&&a!==null)return null;let c=Yyt(e),f=Gyt(e),A=qyt(c,f,t,n,o,i,s),h=n3t(A,i,t,c),m=r3t(A,i,n,f),y=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:t3t(A,o),d:Jyt(c,f,A,h,m),fill:Wt}),ie.jsx("g",{fontSize:"14px",fontFamily:"Manrope",fill:"white",transform:e3t(A,c,f,o,h,m),children:e.map((E,b)=>ie.jsx("text",{x:EX,y:bX+AP*b+AP/2,dominantBaseline:"central",children:E},b))})]});return a===null?y:xB.createPortal(y,a)}function a3t(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 i3t(e,t){return[`X: ${t[e.x]}`,`Node: ${e.y}`,`Value: ${a3t(e.value)}`]}function o3t({heatmapData:e,scales:t,step:n,colorScale:r,tooltipsContainer:a,chartSizes:i,selectedNode:o,labels:s}){let{xKeys:c,yKeys:f,cells:A,meta:h}=e,[m,y]=nr.useState(null),E={left:i.treeWidth+30+oc.LEFT,right:i.heatmapWidth+oc.RIGHT,top:oc.TOP,bottom:i.heatmapHeight+oc.BOTTOM};return ie.jsxs("g",{onMouseLeave:()=>y(null),children:[s.length&&ie.jsx("g",{transform:"translate(0,-8)",children:c.map((b,x)=>ie.jsxs("text",{x:t.x(b)+2,fontWeight:"500",children:[ie.jsx("title",{children:h.xLabels[b]}),s[x]]},b))}),c.map(b=>f.map(x=>{var _;let k=(_=A==null?void 0:A[b])==null?void 0:_[x];return ie.jsx("rect",{x:t.x(b),y:t.y(x),width:n.x,height:n.y,stroke:"white",strokeWidth:"1px",fill:k?r(k==null?void 0:k.value):Fgt,onMouseOver:()=>{(k==null?void 0:k.value)!==null&&typeof(k==null?void 0:k.value)<"u"?y(k):y(null)},opacity:o&&o.data.rawData[0].id!==(k==null?void 0:k.data.id)?iP:1},k?k.id:`${b}_${x}`)})),s.length&&ie.jsx("line",{x1:"0",x2:i.heatmapWidth,y1:"0",y2:"0",stroke:Wt,strokeWidth:"1px"}),m&&a&&ie.jsx(Mc,{content:i3t(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 l3t(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"?h3e(i?d3e:f3e).x(o=>i?o.x:o.y).y(o=>i?o.y:o.x).source(o=>o.target).target(o=>o.source)(e)??"":i?`M ${r.x},${r.y} L${a.x},${a.y}`:`M ${r.y},${r.x} L${a.y},${a.x}`}function SX({links:e,connectionType:t,rootPosition:n,edgeInheritance:r,aesGetters:a,selected:i}){return ie.jsx(ie.Fragment,{children:e.map(o=>{let{source:s,target:c}=o,f=(r==="up"?s:c).data.rawData[0];return ie.jsx("path",{d:l3t(o,t,n),stroke:i?Vgt:a.lineColor(f),strokeWidth:i?2:1,fill:"none"},`${o.source.id},${o.target.id}`)})})}function A9(e){return ei().domain([0,1]).range([e,Wt])(.25)}var L8=1.4;function df(e,t=6,n=Wt,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*L8;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*L8;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
|
|
15179
15179
|
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*L8;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??A9(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??A9(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??A9(n)});case"23":{let a=t*L8;return ie.jsx("path",{d:`M0,-${a}L ${a},0 L 0,${a} L -${a},0z`,fill:n,stroke:r??A9(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??A9(n)});default:mA(e,`Unknown point shape ${e}`)}}var s3t=12;function xX({nodes:e,rootPosition:t,showLeavesLabels:n,showNodesLabels:r,aesGetters:a,selectedNodeId:i,onClick:o,onSelectedUpdate:s}){let c=t==="top",[f,A]=nr.useState(null);return nr.useEffect(()=>{A(null)},[i]),ie.jsxs(ie.Fragment,{children:[ie.jsx("g",{children:e.map(h=>{let m=h.data.rawData[0],y=a.nodeSize(m),E=a.nodeColor(m),b=c?h.x:h.y,x=c?h.y:h.x;return ie.jsx("g",{transform:`translate(${b},${x})`,style:{cursor:"pointer"},onClick:k=>{k.stopPropagation(),o({x:b+oc.LEFT,y:x+oc.TOP,info:h.data.rawData}),s(h)},children:ie.jsx("g",{children:ie.jsx("circle",{cx:0,cy:0,r:y+s3t,fill:i===h.id?dX:f===h.id?E:"transparent",opacity:iP,onMouseOver:()=>A(h.id??null),onMouseLeave:()=>A(null)})})},h.id)})}),ie.jsx("g",{children:e.map(h=>{let m=h.data.rawData[0],y=a.nodeShape(m),E=a.nodeSize(m),b=a.nodeColor(m),x=c?h.x:h.y,k=c?h.y:h.x;return ie.jsx("g",{transform:`translate(${x},${k})`,style:{cursor:"pointer"},onClick:_=>{_.stopPropagation(),o({x:x+oc.LEFT,y:k+oc.TOP,info:h.data.rawData}),s(h)},children:ie.jsx("g",{onMouseOver:()=>A(h.id??null),onMouseLeave:()=>A(null),children:df(y,E,i===h.id?dX:b)})},h.id)})}),ie.jsx("g",{children:e.map(h=>{let m=h.data.rawData[0],y=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:y+4,y:"4",paintOrder:"stroke",stroke:"white",strokeWidth:"3",children:h.data.label})},h.id)})})]})}var BX=14,N8=12,p9=12,$8=-12;function u3t({aes:e,label:t}){let n=df(e.shape,e.size,e.color);return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${p9/2},${p9/2})`,children:n}),ie.jsx("text",{x:p9+8,y:p9/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function c3t({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],o=i>0?(r-a[0])/i*100:0;return ie.jsx("stop",{offset:`${o}%`,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:$8,children:n.title}),ie.jsx("rect",{x:"0",y:"0",width:BX,height:n.height,stroke:Wt,fill:`url(#${n.id})`}),ie.jsx("g",{transform:`translate(${BX},0)`,children:n.values.map(i=>{let o=a-r,s=o>0?n.height*(i-r)/o:0;return ie.jsxs("g",{transform:`translate(0,${s})`,children:[ie.jsx("line",{x1:"0",x2:-4,stroke:Wt}),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:$8,children:n.title}),n.values.map((r,a)=>ie.jsxs("g",{transform:`translate(0, ${a*(N8+4)})`,children:[ie.jsx("rect",{x:"0",y:"0",width:N8,height:N8,fill:n.scale(r),rx:"1",ry:"1"}),ie.jsx("text",{x:N8+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:$8,children:n.title}),n.values.map((r,a)=>ie.jsx("g",{transform:`translate(0, ${a*(p9+4)})`,children:ie.jsx(u3t,{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:$8,children:n.title}),n.values.map((a,i)=>{let o=n.scale(a);return ie.jsxs("g",{transform:`translate(0, ${i*r})`,children:[ie.jsx("circle",{r:o,cx:r/2,cy:r/2,fill:Wt}),ie.jsx("text",{x:r+4,y:r/2,alignmentBaseline:"central",children:n.labels[a]})]},a)}),!1]},n.id)}})]})}function kX(e){if(!e)return null;let t=new Set,n=e;for(;n;)t.add(n.id),n=n.parent;return t}function f3t({chartSettings:e,chartSizes:t,nodes:n,links:r,connectionType:a,rootPosition:i,edgeInheritance:o,showNodes:s,showEdges:c,showLeavesLabels:f,showNodesLabels:A,aesGetters:h,labels:m,heatmapData:y,heatmapScales:E,heatmapStep:b,heatmapColor:x,heatmapLabels:k,legendData:_,onClick:D}){let O=nr.useRef(null),[H,V]=nr.useState(null),z=nr.useRef(null);nr.useEffect(()=>{z.current&&V(z.current);function re(){ee(null),U(null)}function se(Se){Object.entries(Se.detail).forEach(([oe,Ce])=>{if(oe==="selectedNode"){let Te=n.find(fe=>fe.data.rawData[0].id===Ce)??null;ee(kX(Te)),U(Te)}})}return document.addEventListener("click",re),document.addEventListener(oP,se),()=>{document.removeEventListener("click",re),document.removeEventListener(oP,se)}},[]);let[q,ee]=hb.useState(null),[W,U]=hb.useState(null),$=q!==null,G={connectionType:a,rootPosition:i,edgeInheritance:o,aesGetters:h},j={rootPosition:i,showLeavesLabels:f,showNodesLabels:A,aesGetters:h,labels:m,onClick:D,selectedNodeId:W==null?void 0:W.id,onSelectedUpdate:re=>{ee(kX(re)),U(re)}};return ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${t.totalWidth} ${t.totalHeight}`,ref:O,width:t.totalWidth,height:t.totalHeight,children:[ie.jsx("defs",{children:Hg}),ie.jsxs("g",{transform:`translate(${oc.LEFT},${oc.TOP})`,fontFamily:"Manrope",children:[ie.jsx("text",{x:"0",y:"-12",fontSize:"20",children:e.title.name}),ie.jsxs("g",{opacity:$?iP:1,children:[c&&ie.jsx(SX,{links:r.filter(re=>{let{source:se,target:Se}=re;return!q||!(q.has(se.id??"")&&q.has(Se.id??""))}),selected:!1,...G}),s&&ie.jsx(xX,{nodes:n.filter(re=>!re.data.isFake&&!(q!=null&&q.has(re.id??""))),...j})]}),$&&ie.jsxs("g",{children:[c&&ie.jsx(SX,{links:r.filter(re=>{let{source:se,target:Se}=re;return q.has(se.id??"")&&q.has(Se.id??"")}),selected:!0,...G}),s&&ie.jsx(xX,{nodes:n.filter(re=>!re.data.isFake&&(q==null?void 0:q.has(re.id??""))),...j})]}),y!==null&&ie.jsx("g",{transform:`translate(${t.treeWidth+30},0)`,children:ie.jsx(o3t,{heatmapData:y,scales:E,step:b,colorScale:x,chartSizes:t,labels:k,selectedNode:W,tooltipsContainer:H})}),e.legend.show&&ie.jsx("g",{transform:`translate(${t.treeWidth+30+t.heatmapWidth+30},0)`,children:ie.jsx(c3t,{legendData:_})})]}),ie.jsx("g",{ref:z})]})}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 h9(e){if(pX(e))return t=>e.valuesMap[String(t[e.columnName.value])];if(Lv(e)){let{domain:t,range:n}=e,r=Qy().domain(t).range(n);return a=>{let i=r(Number(a[e.columnName.value]));return Math.max(1,i)}}return t=>e}function d3t(e){return{nodeShape:h9(e.nodeShape),nodeColor:h9(e.nodeColor),nodeSize:h9(e.nodeSize),lineShape:h9(e.lineShape),lineColor:h9(e.lineColor)}}var A3t=(e,t)=>{let n=Math.min(...t),r=Math.max(...t);if(n===r){let o=e%2===0?[]:[n];for(let s=1;s<e/2+1;s++)o.push(n+s),o.unshift(n-s);return o}if(e<2)return[n,r];let a=(r-n)/(e-1),i=[];for(let o=0;o<e-1;o++)i.push(n+a*o);return i.push(r),i};function p3t(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 h3t=class{constructor(){Me(this,"component",ie.jsx(ie.Fragment,{}));Me(this,"reactRoot",null);Me(this,"parentNode",null);Me(this,"rootNode",null);Me(this,"chartSizes",{treeWidth:600,treeHeight:350,heatmapWidth:0,heatmapHeight:0,totalWidth:1200+oc.LEFT+oc.RIGHT,totalHeight:350+oc.TOP+oc.BOTTOM,labelsOffset:0});Me(this,"legend",{width:0,height:0,items:[]});Me(this,"heatmapScales",{x:Hl().domain(["null"]).range([1]),y:Hl().domain(["null"]).range([1])});Me(this,"heatmapStep",{x:0,y:0});Me(this,"heatmapColorScale",{scale:Hl([]),getter:()=>"white"});Me(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=Oh(this.rootNode))}updateHeatmapScales(e,t,n){if(e===null){this.chartSizes.heatmapWidth=0;return}let{xKeysByGroups:r,xGroupKeys:a,xKeys:i,yKeys:o}=e,s=5,c=a.map(x=>r[x].length),f=c.reduce((x,k)=>x+k,0),A=this.chartSizes.treeHeight/o.length,h=Math.min(Math.max((400-(c.filter(x=>x>0).length-1)*s)/f,n.minCellWidth),n.maxCellWidth),m=[],y=0;a.forEach(x=>{let k=r[x];k.forEach(()=>{m.push(y),y+=h}),k.length>0&&(y+=s)}),this.heatmapScales.x=Hl().domain(i).range(m),this.heatmapScales.y=Hl().domain(o).range(o.map((x,k)=>k*A)),this.heatmapStep.x=h,this.heatmapStep.y=A;let{colorsList:E,colorsMap:b}=t.aes;if(t.valueType==="continuous"&&E){let x=ei().domain(A3t(E.length,e.meta.valueExtent)).range(E);this.heatmapColorScale={scale:x,getter:k=>x(k)}}if(t.valueType==="discrete"&&b){let x=Object.keys(b).filter(k=>e.meta.uniqueValues.has(k));this.heatmapColorScale={scale:Hl(x,x.map(k=>b[k])).unknown(u9),getter:k=>k?b[k]??u9:u9}}if(t.valueType==="stringSource"&&E){let x=[...e.meta.uniqueValues],k=Hl(x,x.map((_,D)=>E[D%E.length])).unknown(u9);this.heatmapColorScale={scale:k,getter:_=>_?k(_):u9}}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 o=new ou("600 14px Arial"),s=16,c=48,f=20,A=24;function h(O,H){return Math.max(...O.map(V=>o.getTextWidth(String(V))+f),o.getTextWidth(H))}let m=[];[n.nodeColor,n.nodeShape,n.lineColor].filter(pX).map(O=>O.columnName).forEach(O=>{let H=t[O.value];if(H.usedAes.length===0||!H.aesMap)return;let V=O.label??O.value,z=H.values,q={};z.forEach(ee=>{q[ee]||(q[ee]={...sP}),H.usedAes.forEach(W=>{var U,$,G;(W==="dotFill"||W==="lineColor")&&(q[ee].color=((U=H.aesMap[ee])==null?void 0:U[W])??Wt),W==="dotShape"&&(q[ee].shape=(($=H.aesMap[ee])==null?void 0:$[W])??"21"),W==="dotSize"&&(q[ee].size=((G=H.aesMap[ee])==null?void 0:G[W])??3)})}),m.push({columnKey:V,data:q,values:H.values,labels:H.labels})});let y=[],E=0,b=0,x=0,k=Math.min(this.chartSizes.treeHeight,400);if(r&&a){let O=i.valueType,H=r.label??r.value;if(O==="continuous"){let V=this.heatmapColorScale.scale,z=i2(V,a.meta.valueExtent,4),q={id:"heatmapValue",type:"continuous",width:o2(z,H),height:k,left:0,top:0,title:H,scale:V,values:z,labels:{}};y.push(q),b=q.height+c,E=q.width}else{let V=this.heatmapColorScale.scale,z=dP(V,H),q=V.domain(),ee=q.length*s,W={id:"heatmapValue",type:"discrete",width:z,height:ee,left:0,top:0,title:H,scale:V,values:q,labels:{}};y.push(W),b=W.height+c,E=W.width}}if(m.map(({columnKey:O,labels:H,values:V,data:z})=>{b>k&&(b=0,x+=E+A);let q=O,ee=h(V.map(j=>H[j]),q),W=V.length*s;W>k&&(k=W);let U=Hl().domain(V).range(V.map(j=>z[j])),$=x,G=b;y.push({id:O,type:"nodes",width:ee,height:W,left:$,top:G,title:q,scale:U,values:V,labels:H}),E=ee,b+=W+c}),Lv(n.nodeSize)){b>k&&(b=0,x+=E+A);let{columnName:O,domain:H,range:V}=n.nodeSize,z=O.label??O.value,q=Qy(H,V),ee=q.ticks(3),W=q.tickFormat(3),U=ee.reduce((se,Se)=>(se[String(Se)]=W(Se),se),{}),$=h(ee.map(se=>U[se]),z),G=(q(Math.max(...ee))*2+4)*ee.length;G>k&&(k=G);let j=x,re=b;y.push({id:O.value,type:"size",width:$,height:G,left:j,top:re,title:z,scale:q,values:ee,labels:U}),E=$,b+=G+c}let _=x+E+2*fP,D=k;this.legend={width:_,height:D,items:y}}updateChartSizes(e,t,n){let r=n.leaves().length;this.chartSizes.treeWidth=t?e.width/2:e.width;let a=p3t(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+oc.LEFT+oc.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)+oc.TOP+oc.BOTTOM}prepareTableLabels(e){let t=new ou("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],o=t.getTextWidth(i);if(o<r)return i;let s=i,c=s==null?void 0:s.length;for(;o>r&&c>0;)c--,s=(i==null?void 0:i.substring(0,c))+n,o=t.getTextWidth(s);return c>0?s:""})}addLabelsWidthToTreeArea(e,t){if(!t)return;let n=e.leaves(),r=new ou("bold 14px Manrope"),a=0;n.forEach(i=>{if(!i.data.label)return;let o=r.getTextWidth(i.data.label),s=i.y+o-this.chartSizes.treeWidth+8;s>a&&(a=s)}),this.chartSizes.treeWidth+=a}render(e,t,n,r,a,i,o,s,c,f,A,h,m,y,E,b,x){var H;this.updateChartSizes(e.size,m,t),this.updateHeatmapScales(m,y,e.size),this.updateLegendSize(e.legend,E,f,h,m,y),this.prepareTableLabels(m);let k=r==="top"?[this.chartSizes.treeWidth,this.chartSizes.treeHeight]:[this.chartSizes.treeHeight,this.chartSizes.treeWidth];vB().size(k).separation(()=>1)(t);let _=t;jgt(_,r==="top"?this.chartSizes.treeHeight:this.chartSizes.treeWidth,b==="alignLeavesToLine"),Ggt(_),this.addLabelsWidthToTreeArea(_,s),this.updateTotalSizes(m);let D=d3t(f),O=ie.jsx(f3t,{chartSizes:this.chartSizes,chartSettings:e,nodes:_.descendants(),links:_.links(),connectionType:n,rootPosition:r,edgeInheritance:a,showNodes:i,showEdges:o,showLeavesLabels:s,showNodesLabels:c,aesGetters:D,labels:A,heatmapData:m,heatmapScales:this.heatmapScales,heatmapStep:this.heatmapStep,heatmapColor:this.heatmapColorScale.getter,heatmapLabels:this.heatmapLabels,legendData:this.legend,onClick:x});this.component=O,(H=this.reactRoot)==null||H.render(O)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},v3t=h3t,TX=class{constructor(e){Me(this,"type","dendro");Me(this,"chartSettings");Me(this,"mode");Me(this,"leavesMode");Me(this,"id");Me(this,"parentId");Me(this,"height",null);Me(this,"labels");Me(this,"heatmapAnnotation");Me(this,"heatmapAxis");Me(this,"heatmapGroup");Me(this,"heatmapSettings");Me(this,"connectionType","rectangle");Me(this,"edgeInheritance","up");Me(this,"rootPosition","top");Me(this,"showNodes",!0);Me(this,"showEdges",!0);Me(this,"showLeavesLabels",!0);Me(this,"showNodesLabels",!0);Me(this,"aes",{nodeShape:"21",nodeColor:Wt,nodeSize:3,lineShape:"solid",lineColor:Wt});var t,n,r,a,i,o,s,c,f,A;Lyt.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)??Ngt,maxCellWidth:((i=e==null?void 0:e.size)==null?void 0:i.maxCellWidth)??$gt,minCellHeight:(o=e==null?void 0:e.size)==null?void 0:o.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"],...(A=e.heatmapSettings)==null?void 0:A.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 F8(e){return typeof e!="object"?!1:"valuesMap"in e}function _X(e,t){let{nodeColor:n,nodeShape:r,lineColor:a}=t,i=[n,r,a].filter(F8);return Ir.uniqBy(i,o=>o.columnName.value).reduce((o,s)=>{let{columnName:c}=s,f=Ir.uniqBy(e.rows,E=>E[c.value]),A=E=>String(E[c.value]),h=E=>c.valueLabels?String(E[c.valueLabels]):A(E),m=new Set,y=f.reduce((E,b)=>{let x=A(b);return E[x]||(E[x]={}),E},{});return F8(n)&&c.value===n.columnName.value&&(m.add("dotFill"),f.forEach(E=>{let b=A(E);y[b].dotFill=n.valuesMap[b]})),F8(r)&&c.value===r.columnName.value&&(m.add("dotShape"),f.forEach(E=>{let b=A(E);y[b].dotShape=r.valuesMap[b]})),F8(a)&&c.value===a.columnName.value&&(m.add("lineColor"),f.forEach(E=>{let b=A(E);y[b].lineColor=a.valuesMap[b]})),o[c.value]={values:f.map(A).sort(),usedAes:[...m],aesMap:y,labels:f.reduce((E,b)=>(E[A(b)]=h(b),E),{})},o},{})}var m3t=class extends Pg{constructor(t,n,r){super(t,n);Me(this,"settings");Me(this,"onClick",()=>YS);Me(this,"chartRenderer",new v3t);Me(this,"calculatedData",null);this.settings=new TX(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 TX(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(oP,{detail:{[t]:n}});document.dispatchEvent(r)}}export(){return this._updateChart(),p3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var A,h;let{mode:r,id:a,parentId:i,heatmapAnnotation:o,heatmapAxis:s,heatmapGroup:c}=n;function f(m,y){return m.length!==y.length||m.some((E,b)=>E.value!==y[b].value)}return t.mode!==r||t.id.value!==a.value||t.parentId.value!==i.value||((A=t.heatmapAnnotation)==null?void 0:A.value)!==(o==null?void 0:o.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 o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{mode:t,id:n,parentId:r,aes:a,heatmapAnnotation:i,heatmapAxis:o,heatmapGroup:s,heatmapSettings:c,height:f,labels:A}=this.settings,h=Ugt(n.value,r.value,(f==null?void 0:f.value)??null,A.valueLabels??A.value??null,this.data.rows,t==="useAllNodesAsLeaves"),m=Ogt(this.data,c.valueType,i,o,s,n,h),y=_X(this.data,a);this.calculatedData={chartSizes:this.chartRenderer.chartSizes,hierarchy:h,heatmapData:m,legendLabels:y}}_updateAesInData(){this.calculatedData&&(this.calculatedData.legendLabels=_X(this.data,this.settings.aes))}_updateChart(){if(!this.calculatedData)return;let{heatmapAnnotation:t,chartSettings:n,connectionType:r,edgeInheritance:a,rootPosition:i,showNodes:o,showEdges:s,showLeavesLabels:c,showNodesLabels:f,aes:A,labels:h,heatmapSettings:m,leavesMode:y}=this.settings;this.chartRenderer.render(n,this.calculatedData.hierarchy,r,i,a,o,s,c,f,A,h,t,this.calculatedData.heatmapData,m,this.calculatedData.legendLabels,y,this.onClick)}};function g3t(e,t,n,r,a,i){let o=-1/0;return{type:"logo",geoms:t.reduce((s,c)=>{let f=c.join("_");return s[f]=[],n.forEach(A=>{let h=0,m={};r.forEach(E=>{let b=a.getRowsByGrouping([...c,A,E]);if(!b.length)return;let x=xc(b,k=>Number(k[i.value]));m[E]={height:x,key:E},h+=x});let y=h;e.normalize&&r.forEach(E=>{m[E]&&(m[E].height=m[E].height/y*100)}),o=Math.max(o,h),s[f].push({key:`logo_${A}`,valuesMap:m,primaryGrouping:A,boundsY:{min:0,max:e.normalize?y:100}})}),s},{}),meta:{minY:0,maxY:e.normalize?100:o,normalize:e.normalize},aes:e.aes}}var v9={TOP:30,BOTTOM:30},l1=30,y3t=6,m9=20,pP=15,V8=24,l2=25,w3t=12,PX={fillColor:"white",lineColor:Wt,lineWidth:1,lineShape:"solid",dotSize:3,dotFill:Wt,dotShape:"21"},hP=20,DX=4,qf=4,MX=25,C3t=15,Ig=8,$v=30,b3t=48,E3t=24,s2=16,u2=4,O8=4,Q8=20,S3t=16,Qd=16,c2=8,s1={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"]},HX={fillColor:"white",lineColor:Wt,lineWidth:1,lineShape:"solid",dotSize:3,dotFill:Wt,dotShape:"21"};function x3t(e){return`translate(${e},0)`}function B3t(e){return`translate(0,${e})`}var g9=21;function k3t(e,t){if(e==="45deg"){let n=t==="left"?-g9/2:0,r=t==="bottom"?g9/2:-g9/2;return`translate(${n},${r}) rotate(-45)`}return e==="90deg"&&t==="bottom"?`translate(${-g9/2},${qf+g9/2}) rotate(-90)`:t==="bottom"?`translate(0,${qf})`:`translate(${-qf},0)`}function T3t(e,t){return t==="left"||t==="bottom"&&e==="90deg"?"central":e==="center"?"hanging":"auto"}function _3t(e,t){return t==="left"||t==="bottom"&&e!=="center"?"end":"middle"}var IX=({scale:e,tickSize:t=6,tickPadding:n=qf,orient:r="bottom",labelsPosition:a="center",labels:i={},offset:o=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function s(x,k){return x.bandwidth&&(k=Math.max(0,x.bandwidth()-k*2)/2),x!=null&&x.round()&&(k=Math.round(k)),_=>{let D=x(_);return D===void 0?0:D+k}}let c=e.domain(),f=x=>i[x]??[x],A=Math.max(t,0)+n,h=s(e.copy(),o),m=r==="bottom"?x3t:B3t,y=r==="left"?-1:1,E={[(r==="left"?"x":"y")+"2"]:y*t},b={[r==="left"?"x":"y"]:y*A};return ie.jsx("g",{children:c.map((x,k)=>ie.jsxs("g",{className:"tick",transform:m(h(x)+o),children:[ie.jsx("line",{stroke:Wt,...E}),ie.jsx("g",{transform:k3t(a,r),children:f(x).map((_,D)=>ie.jsx("text",{fill:Wt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:T3t(a,r),textAnchor:_3t(a,r),dy:20*D,...b,children:_},`${_}_${D}`))})]},k))})};function RX(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 P3t({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,o=e.xSecondary.bandwidth(),s=r.width==="auto"?o*.8:Math.min(o,r.width),c=Math.abs(e.y(n.value)-e.y(0)),f=RX(e,"lineColor",r.lineColor,n),A=RX(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(n.boundsY.min),y:a?e.y(n.boundsY.max):-s/2,fill:A})})}function go(e){return isNaN(e)?"?":e===0?"0":Math.abs(e)<.01?G5(".1e")(e):G5(".2f")(e)}function LX(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 D3t({scales:e,orientation:t,geom:n,aes:r,min:a,max:i,binsCount:o,hasKeyFromColumn:s,sideDistances:c,showTooltips:f,tooltipsContainer:A}){let[h,m]=nr.useState(null),y=t==="vertical",E=(e.xPrimary(n.primaryGrouping)??0)+(e.xSecondary(n.secondaryGrouping)??0)+e.xSecondary.bandwidth()/2,b=LX(e,"lineColor",r.lineColor,n),x=LX(e,"fillColor",r.fillColor,n),k=n.bins,_=r.dotSize?r.dotSize:Math.abs(e.y(i)-e.y(a))/o/2;return ie.jsx("g",{transform:y?`translate(${E},0)`:`translate(0, ${E})`,stroke:b,fill:x,strokeWidth:r.lineWidth,children:k.map(({x:D,count:O,dots:H})=>ie.jsx("g",{transform:y?`translate(0,${e.y(D)})`:`translate(${e.y(D)},0)`,children:H.map((V,z)=>{let q=(z-O/2)*2*_+_,ee=y?q:0,W=y?0:q;return ie.jsxs("g",{children:[ie.jsx("circle",{opacity:r.opacity,cx:ee,cy:W,r:_,onMouseOver:()=>m(V.key),onMouseLeave:()=>m(null)}),f&&ie.jsx(Mc,{content:s?[V.key,go(V.value)]:[go(V.value)],x:(y?E:e.y(D))+ee,y:(y?e.y(D):E)+W,sideDistances:c,horizontal:y,offset:_,active:h===V.key,container:A})]},V.key)})},D))})}function tp(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:mA(e,`Unknown line shape ${e}`)}}function z8(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 M3t(e,t){return t?[e.id,`${go(e.y)}`]:[`${go(e.y)}`]}function H3t({scales:e,orientation:t,box:n,aes:r,hasKeyFromColumn:a,sideDistances:i,showTooltips:o,elementsAmount:s,tooltipsContainer:c}){let[f,A]=nr.useState(!1),[h,m]=nr.useState(null),y=t==="vertical",E=(e.xPrimary(n.primaryGrouping)??0)+(e.xSecondary(n.secondaryGrouping)??0)+e.xSecondary.bandwidth()/2,b=e.xSecondary.bandwidth(),x=r.boxWidth==="auto"?b*.8:Math.min(b,r.boxWidth),k=Math.abs(e.y(n.lower)-e.y(n.upper)),_=z8(e,"lineColor",r.lineColor,n),D=z8(e,"fillColor",r.fillColor,n),O=z8(e,"dotShape",r.dotShape,n),H=z8(e,"dotSize",r.dotSize,n),V=df(O,H,_),z=Math.abs(e.y.range()[0]-e.y.range()[1]);return ie.jsxs("g",{transform:y?`translate(${E},0)`:`translate(0, ${E})`,opacity:r.opacity,stroke:_,strokeWidth:r.lineWidth,strokeDasharray:tp(r.lineShape),children:[ie.jsx("line",{x1:y?0:e.y(n.min),x2:y?0:e.y(n.lower),y1:y?e.y(n.min):0,y2:y?e.y(n.lower):0}),ie.jsx("line",{x1:y?0:e.y(n.upper),x2:y?0:e.y(n.max),y1:y?e.y(n.upper):0,y2:y?e.y(n.max):0}),ie.jsx("rect",{width:y?x:k,height:y?k:x,x:y?-x/2:e.y(n.lower),y:y?e.y(n.upper):-x/2,fill:D}),ie.jsx("line",{x1:y?-x/2:e.y(n.middle),x2:y?x/2:e.y(n.middle),y1:y?e.y(n.middle):-x/2,y2:y?e.y(n.middle):x/2}),o&&c&&ie.jsx("rect",{onMouseOver:()=>A(!0),onMouseLeave:()=>A(!1),width:y?b:z,x:y?-b/2:0,y:y?0:-b/2,height:y?z:b,fill:"transparent",stroke:"none"}),r.showOutliers&&n.outliers.map(q=>ie.jsxs("g",{transform:y?`translate(0,${e.y(q.y)})`:`translate(${e.y(q.y)},0)`,strokeDasharray:"0",children:[V,o&&c&&ie.jsx("circle",{onMouseOver:()=>m(q.id),onMouseLeave:()=>m(null),r:"15",fill:"transparent",stroke:"none"}),o&&ie.jsx(Mc,{content:M3t(q,a),x:y?E:e.y(q.y),y:y?e.y(q.y):E,sideDistances:i,horizontal:!0,active:h===q.id,container:c})]},q.id)),o&&ie.jsx(Mc,{content:[`Max = ${go(n.max)}`,`Upper = ${go(n.upper)}`,`Median = ${go(n.middle)}`,`Lower = ${go(n.lower)}`,`Min = ${go(n.min)}`],x:y?E:e.y(n.middle),y:y?e.y(n.middle):E,sideDistances:i,horizontal:y,active:f,offset:s>1?b/2:b/4,container:c})]})}function vP(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 I3t(e,t,n){return n?[t,`${go(e)}`]:[`${go(e)}`]}function R3t({scales:e,orientation:t,geom:n,aes:r,hasKeyFromColumn:a,sideDistances:i,showTooltips:o,tooltipsContainer:s}){let[c,f]=nr.useState(null),A=t==="vertical",h=(e.xPrimary(n.primaryGrouping)??0)+(e.xSecondary(n.secondaryGrouping)??0)+e.xSecondary.bandwidth()/2,m=e.xSecondary.bandwidth()*r.jitter,y=_=>(1-_*2)*(m/2),E=vP(e,"lineColor",r.lineColor,n),b=vP(e,"dotFill",r.dotFill,n),x=vP(e,"dotShape",r.dotShape,n),k=df(x,r.dotSize,b);return ie.jsx("g",{transform:A?`translate(${h},0)`:`translate(0, ${h})`,stroke:E,children:n.values.map(({y:_,jitter:D,id:O})=>ie.jsxs("g",{opacity:r.opacity,transform:A?`translate(${y(D)},${e.y(_)})`:`translate(${e.y(_)},${y(D)})`,children:[k,o&&s&&ie.jsx("circle",{onMouseOver:()=>f(O),onMouseLeave:()=>f(null),r:"4",fill:"transparent",stroke:"none"}),o&&ie.jsx(Mc,{content:I3t(_,O,a),x:h+y(D),y:e.y(_),active:c===O,sideDistances:i,container:s})]},O))})}function mP(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 L3t({scales:e,orientation:t,errorBar:n,aes:r,sideDistances:a,showTooltips:i,tooltipsContainer:o}){let[s,c]=nr.useState(!1),f=t==="vertical",A=mP(e,"lineColor",r.lineColor,n),h=mP(e,"fillColor",r.fillColor,n),m=mP(e,"dotShape",r.dotShape,n),y=(e.xPrimary(n.primaryGrouping)??0)+e.xPrimary.bandwidth()/2,E=r.width==="auto"?e.xPrimary.bandwidth()*.2:r.width,b=e.y(n.min),x=e.y(n.max),k=e.y(n.value),_=df(m,r.dotSize,h);return ie.jsxs("g",{opacity:r.opacity,stroke:A,fill:"none",transform:f?`translate(${y},0)`:`translate(0,${y})`,strokeWidth:r.lineWidth,children:[ie.jsx("line",{x1:f?0:b,x2:f?0:x,y1:f?b:0,y2:f?x: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:x,x2:f?E/2:x,y1:f?x:-E/2,y2:f?x:E/2}),r.showDots&&ie.jsxs("g",{transform:f?`translate(0,${k})`:`translate(${k},0)`,children:[_,i&&o&&ie.jsx("circle",{onMouseOver:()=>c(!0),onMouseLeave:()=>c(!1),r:"15",fill:"transparent",stroke:"none"}),i&&ie.jsx(Mc,{content:[go(n.value)],x:f?y:k,y:f?k:y,sideDistances:a,horizontal:!0,active:s,container:o})]})]})}function U8(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 N3t(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 $3t({scales:e,orientation:t,line:n,aes:r,sideDistances:a,showTooltips:i,secondaryGrouping:o,tooltipsContainer:s}){let[c,f]=nr.useState(null),A=t==="vertical",h=U8(e,"lineColor",r.lineColor,n),m=U8(e,"dotFill",r.fillColor,n),y=U8(e,"lineShape",r.lineShape,n),E=U8(e,"dotShape",r.dotShape,n),b=N3t(n.dots,e.xPrimary.domain(),e),x=df(E,r.dotSize,m);return ie.jsxs("g",{opacity:r.opacity,stroke:h,strokeDasharray:tp(y),strokeWidth:r.lineWidth,children:[ie.jsx("polyline",{points:b.map(([k,_])=>A?[k,_]:[_,k]).join(" "),stroke:h,fill:"none"},n.key),r.dotShape!==null&&ie.jsx("g",{children:b.map(([k,_,D,O])=>ie.jsxs("g",{transform:A?`translate(${k},${_})`:`translate(${_},${k})`,strokeDasharray:"none",stroke:"none",children:[x,i&&s&&ie.jsx("circle",{onMouseOver:()=>f(D),onMouseLeave:()=>f(null),r:"15",fill:"transparent",stroke:"none"}),i&&ie.jsx(Mc,{content:[o.valueLabels[n.key],go(O)],x:A?k:_,y:A?_:k,sideDistances:a,horizontal:!0,active:c===D,container:s})]},D))})]})}var F3t={A:rr.A,B:rr.B,C:rr.C,D:rr.D,E:rr.E,F:rr.F,G:rr.G,H:rr.H,I:rr.I,J:rr.J,K:rr.K,L:rr.L,M:rr.M,N:rr.N,O:rr.O,P:rr.P,Q:rr.Q,R:rr.R,S:rr.S,T:rr.T,U:rr.U,V:rr.V,W:rr.W,X:rr.X,Y:rr.Y,Z:rr.Z,a:rr.LC_a,b:rr.LC_b,c:rr.LC_c,d:rr.LC_d,e:rr.LC_e,f:rr.LC_f,g:rr.LC_g,h:rr.LC_h,i:rr.LC_i,j:rr.LC_j,k:rr.LC_k,l:rr.LC_l,m:rr.LC_m,n:rr.LC_n,o:rr.LC_o,p:rr.LC_p,q:rr.LC_q,r:rr.LC_r,s:rr.LC_s,t:rr.LC_t,u:rr.LC_u,v:rr.LC_v,w:rr.LC_w,x:rr.LC_x,y:rr.LC_y,z:rr.LC_z,N0:rr.N0,N1:rr.N1,N2:rr.N2,N3:rr.N3,N4:rr.N4,N5:rr.N5,N6:rr.N6,N7:rr.N7,N8:rr.N8,N9:rr.N9};function V3t({scales:e,orientation:t,geom:n,aes:r,sideDistances:a,showTooltips:i,elementsAmount:o,tooltipsContainer:s,normalize:c}){let[f,A]=nr.useState(null),h=t==="vertical",m=e.xPrimary.bandwidth(),y=(e.xPrimary(n.primaryGrouping)??0)+m/2,E=r.width==="auto"?m*.9:Math.min(m,r.width),b=[...e.xSecondary.domain()].filter(_=>n.valuesMap[_]).sort((_,D)=>{let O=n.valuesMap[_],H=n.valuesMap[D];return O.height-H.height}),x={},k=0;return b.forEach(_=>{if(!n.valuesMap[_])return;let D=n.valuesMap[_].height;x[_]={y1:k,y2:k+D},k+=D}),ie.jsx("g",{transform:h?`translate(${y},0)`:`translate(0, ${y})`,opacity:r.opacity,children:b.map(_=>{if(!n.valuesMap[_])return null;let{y1:D,y2:O}=x[_],H=e.y(D),V=e.y(O),z=Math.abs(H-V),q=typeof r.fillColor=="string"?r.fillColor:r.fillColor[_],ee=h?-E/2:Math.min(H,V),W=h?Math.min(H,V):-E/2,U=F3t[_];if(U)return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${ee},${W})`,children:ie.jsx("g",{transform:h?`scale(${E/100},${z/100})`:`scale(${z/100},${E/100})`,fill:q,onMouseOver:()=>A(_),onMouseLeave:()=>A(null),children:ie.jsx(U,{})})}),i&&ie.jsx(Mc,{content:[_,go(n.valuesMap[_].height)+(c?"%":"")],x:h?y:(H+V)/2,y:h?(H+V)/2:y,sideDistances:a,horizontal:h,offset:o>1?m/2:m/4,active:f===_,container:s})]},_)})})}function f2(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 O3t({scales:e,orientation:t,geom:n,aes:r,sideDistances:a,showTooltips:i,tooltipsContainer:o}){let[s,c]=nr.useState(null),f=t==="vertical",A=f2(e,"lineColor",r.lineColor,n.id),h=f2(e,"lineShape",r.lineShape,n.id),m=f2(e,"fillColor",r.dotFill,n.key1),y=f2(e,"dotShape",r.dotShape,n.key1),E=f2(e,"fillColor",r.dotFill,n.key2),b=f2(e,"dotShape",r.dotShape,n.key2),x=df(y,r.dotSize,m),k=df(b,r.dotSize,E);function _(D){return n.grouping==="primary"?(e.xPrimary(D)??0)+e.xPrimary.bandwidth()/2:(e.xPrimary(n.id)??0)+(e.xSecondary(D)??0)+e.xSecondary.bandwidth()/2}return ie.jsx("g",{opacity:r.opacity,children:n.pairs.map(D=>{let O=f?_(n.key1):e.y(D.key1.value),H=f?_(n.key2):e.y(D.key2.value),V=f?e.y(D.key1.value):_(n.key1),z=f?e.y(D.key2.value):_(n.key2);return ie.jsxs("g",{children:[ie.jsx("line",{x1:O,y1:V,x2:H,y2:z,stroke:A,strokeDasharray:tp(h),strokeWidth:r.lineWidth,fill:"none"}),ie.jsxs("g",{transform:`translate(${O},${V})`,children:[x,i&&o&&ie.jsx("circle",{onMouseOver:()=>c(D.key1.id),onMouseLeave:()=>c(null),r:"15",fill:"transparent",stroke:"none"}),i&&ie.jsx(Mc,{content:[D.id,go(D.key1.value)],x:O,y:V,sideDistances:a,horizontal:!0,active:s===D.key1.id,container:o})]}),ie.jsxs("g",{transform:`translate(${H},${z})`,children:[k,i&&o&&ie.jsx("circle",{onMouseOver:()=>c(D.key2.id),onMouseLeave:()=>c(null),r:"15",fill:"transparent",stroke:"none"}),i&&ie.jsx(Mc,{content:[D.id,go(D.key2.value)],x:H,y:z,sideDistances:a,horizontal:!0,active:s===D.key2.id,container:o})]})]},D.id)})})}function NX(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 Q3t(e,t,n){return n?[t,`${go(e)}`]:[`${go(e)}`]}function z3t({scales:e,orientation:t,geom:n,aes:r,hasKeyFromColumn:a,sideDistances:i,showTooltips:o,tooltipsContainer:s}){let[c,f]=nr.useState(null),A=t==="vertical",h=(e.xPrimary(n.primaryGrouping)??0)+(e.xSecondary(n.secondaryGrouping)??0)+e.xSecondary.bandwidth()/2,m=e.xSecondary.bandwidth(),y=r.width==="auto"?m*.8:Math.min(m,r.width),E=_=>(1-_*2)*(y/2),b=NX(e,"dotFill",r.dotFill,n),x=NX(e,"dotShape",r.dotShape,n),k=df(x,r.dotSize,b);return ie.jsx("g",{transform:A?`translate(${h},0)`:`translate(0, ${h})`,children:n.points.map(({x:_,y:D,jitter:O,id:H})=>{let V=A?D*E(O):e.y(_),z=A?e.y(_):D*E(O);return ie.jsxs("g",{opacity:r.opacity,transform:`translate(${V},${z})`,children:[k,o&&s&&ie.jsx("circle",{onMouseOver:()=>f(H),onMouseLeave:()=>f(null),r:"4",fill:"transparent",stroke:"none"}),o&&ie.jsx(Mc,{content:Q3t(D,H,a),x:h+V,y:z,active:c===H,sideDistances:i,container:s})]},H)})})}function $X(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 U3t({scales:e,orientation:t,geom:n,aes:r,sideDistances:a,showTooltips:i,elementsAmount:o,tooltipsContainer:s,normalize:c,secondaryGrouping:f}){let[A,h]=nr.useState(null),m=t==="vertical",y=e.xPrimary.bandwidth(),E=(e.xPrimary(n.primaryGrouping)??0)+y/2,b=r.width==="auto"?y*.8:Math.min(y,r.width),x=e.xSecondary.domain().reverse(),k={},_=0;return x.forEach(D=>{if(!n.valuesMap[D])return;let O=n.valuesMap[D].height;k[D]={y1:_,y2:_+O},_+=O}),ie.jsx("g",{transform:m?`translate(${E},0)`:`translate(0, ${E})`,opacity:r.opacity,strokeWidth:r.lineWidth,children:x.map(D=>{if(!n.valuesMap[D])return null;let{y1:O,y2:H}=k[D],V=e.y(O),z=e.y(H),q=Math.abs(V-z),ee=$X(e,"lineColor",r.lineColor,n.primaryGrouping,D),W=$X(e,"fillColor",r.fillColor,n.primaryGrouping,D);return ie.jsxs("g",{children:[ie.jsx("rect",{width:m?b:q,height:m?q:b,x:m?-b/2:Math.min(V,z),y:m?Math.min(V,z):-b/2,fill:W,stroke:ee,onMouseOver:()=>h(D),onMouseLeave:()=>h(null)}),i&&ie.jsx(Mc,{content:[f.valueLabels[D],go(n.valuesMap[D].height)+(c?"%":"")],x:m?E:(V+z)/2,y:m?(V+z)/2:E,sideDistances:a,horizontal:m,offset:o>1?y/2:y/4,active:A===D,container:s})]},D)})})}function FX(e,t,n,r){let a=t.reduce((i,o,s)=>(i[o]=s,i),{});return e.filter(([,i])=>r?i<=n.one:!0).sort(([[i,o]],[[s,c]])=>i!==o?a[o]-a[i]:a[c]-a[s])}function j3t(e,t){let n=t.reduce((a,i,o)=>(a[i]=o,a),{}),r=[];return e.map(([[a,i]])=>{let o=n[a],s=n[i];for(let c=0;c<r.length;c++)if(r[c]<o)return r[c]=s,c;return r.push(s),r.length-1})}function VX(e,t,n,r){let a=t.reduce((o,s,c)=>(o[s]=c,o),{}),i=[];return FX(e,t,n,!r).forEach(([[o,s]])=>{let c=a[o],f=a[s];for(let A=0;A<i.length;A++)if(i[A]<c){i[A]=f;return}i.push(f)}),i.length}var G3t={ttest:"TTest",anova:"ANOVA",kruskalWallis:"Kruskal-Wallis",wilcoxon:"Wilcoxon"};function Y3t(e,t){return e<=t.three?"***":e<=t.two?"**":e<=t.one?"*":"ns"}function gP(e,t,n,r){return!r&&e>n.one?"":t==="significance"?Y3t(e,n):go(e)}var d2=18,yP=12;function W3t({orientation:e,scales:t,testMethod:n,values:r,statType:a,format:i,ns:o,significanceLevels:s,yShift:c}){if(!r.length)return null;let f=k=>(t.xPrimary(k)??0)+t.xPrimary.bandwidth()/2,A=e==="vertical",h=Math.abs(t.xPrimary.range()[1]-t.xPrimary.range()[0]),m=Math.abs(t.y.range()[1]-t.y.range()[0]),y=t.xPrimary.domain(),E=a==="pairwise"?FX(r,y,s,!o):r,b=a==="pairwise"?j3t(E,y):[],x=Math.max(...b);return ie.jsxs("g",{fontSize:"14px",transform:A?`translate(0,${c})`:`translate(${m-c},0)`,children:[a==="overall"&&ie.jsx("text",{x:A?h/2:-d2,y:A?d2:h/2,transform:A?"":`rotate(90,${-d2},${h/2})`,textAnchor:"middle",children:`${G3t[n]}, p = ${gP(r[0][1],"pValue",s,!0)}`}),a==="referenceGroup"&&ie.jsx("g",{children:r.map(([[k],_])=>ie.jsx("text",{x:A?f(k):-d2,y:A?d2:f(k),transform:A?"":`rotate(90,${-d2},${f(k)})`,textAnchor:"middle",children:gP(_,i,s,o)},k))}),a==="pairwise"&&ie.jsx("g",{children:E.map(([[k,_],D],O)=>{let H=f(k),V=f(_),z=(H+V)/2;return ie.jsxs("g",{transform:A?`translate(0,${(x-b[O])*l2})`:`translate(${-(x-b[O])*l2},0)`,children:[ie.jsx("text",{x:A?z:-yP,y:A?yP:z,transform:A?"":`rotate(90,${-yP},${z})`,textAnchor:"middle",children:gP(D,i,s,o)}),ie.jsx("path",{d:A?`M ${H},21 v-4 h ${V-H} v4`:`M -21,${H} h 4 v ${V-H} h-4`,fill:"none",stroke:Wt})]},`${k}_${_}`)})})]})}function X3t(e){return`translate(${e},0)`}function K3t(e){return`translate(0,${e})`}function Z3t(e){return e==="bottom"?`translate(0,${qf})`:`translate(${-qf},0)`}function J3t(e){return e==="bottom"?"hanging":"central"}function q3t(e){return e==="bottom"?"middle":"end"}var OX=({scale:e,tickSize:t=6,tickPadding:n=qf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function o(_){return D=>{let O=_(D);return O===void 0?0:+O}}let s=Math.abs(e.range()[0]-e.range()[1]),c=Math.min(Math.floor(s/MX),10),f=e.ticks(c).filter(_=>a&&_>=0||!a),A=f.some(_=>Math.abs(_)<1e-4&&_!==0||_>1e4)?",e":",f",h=_=>e.tickFormat(c,A)(_),m=Math.max(t,0)+n,y=o(e.copy()),E=r==="bottom"?X3t:K3t,b=r==="left"?-1:1,x={[(r==="left"?"x":"y")+"2"]:b*t},k={[r==="left"?"x":"y"]:b*m};return ie.jsx("g",{children:f.map((_,D)=>ie.jsxs("g",{className:"tick",transform:E(y(_)+i),children:[ie.jsx("line",{stroke:Wt,...x}),ie.jsx("g",{transform:Z3t(r),children:ie.jsx("text",{fill:Wt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:J3t(r),textAnchor:q3t(r),...k,children:h(_)})})]},D))})};function QX(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 e2t({scales:e,orientation:t,violin:n,aes:r,maxViolinDensity:a}){let i=t==="vertical",o=(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=QX(e,"lineColor",r.lineColor,n),A=QX(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(${o},0)`:`translate(0, ${o})`,opacity:r.opacity,stroke:f,fill:A,strokeWidth:r.lineWidth,strokeDasharray:tp(r.lineShape),children:[ie.jsx("path",{d:h,stroke:"none"}),ie.jsx("path",{d:m,fill:"none"})]})}var t2t=1;function n2t({scaleX:e,scaleY:t,orientation:n,width:r,height:a,axisX:i,axisY:o,frameType:s}){let[c,f]=nr.useState(e.domain()),A=Math.abs(t.range()[0]-t.range()[1]),h=Math.min(Math.floor(A/MX),10),[m,y]=nr.useState(t.ticks(h)),E=e.bandwidth()/2,b=_=>(e(_)??0)+E,x=_=>t(_),k=n==="vertical";return nr.useEffect(()=>{let _=e.domain(),D=t.ticks(h);f(_),y(D)},[e,t]),ie.jsxs("g",{stroke:Zf,children:[i.showGrid&&c.map(_=>{let D=b(_)+(i.linesBetweenCategories?E:0);return ie.jsx("line",{x1:k?D:0,x2:k?D:r,y1:k?0:D,y2:k?a:D},`x_${_}`)}),o.showGrid&&m.map(_=>{let D=x(_);return ie.jsx("line",{x1:k?0:D,x2:k?r:D,y1:k?D:0,y2:k?D:a},`y_${_}`)}),s!=="empty"&&ie.jsxs("g",{strokeWidth:t2t,children:[(i.showGrid||s!=="left")&&ie.jsx("line",{stroke:s==="left"?Zf:Wt,x1:"0",x2:r,y1:a,y2:a}),(i.showGrid||s!=="bottom")&&ie.jsx("line",{stroke:s==="bottom"?Zf:Wt,x1:"0",x2:"0",y1:"0",y2:a}),(i.showGrid||s==="full")&&ie.jsx("line",{stroke:s==="full"?Wt:Zf,x1:r,x2:r,y1:"0",y2:a}),(o.showGrid||s==="full")&&ie.jsx("line",{stroke:s==="full"?Wt:Zf,x1:"0",x2:r,y1:"0",y2:"0"})]})]})}function r2t(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 o=VX(i.values[n],t,i.meta.significanceLevels,i.meta.ns);r.push(r[r.length-1]+l2*o)}else r.push(r[r.length-1]+l2)}return r}function zX(e){return typeof e=="string"?e:e.value}function a2t({facetSettings:e,facetTitle:t,dimensions:n,scales:r,orientation:a,layersData:i,statsData:o,facetKey:s,xAxis:c,yAxis:f,frameType:A,tooltips:h,tooltipsContainer:m,keyColumn:y,chartSizes:E,margins:b,xLabels:x,onlyPositive:k,secondaryGrouping:_}){let D=a==="vertical",O=r2t(o,r.xPrimary.domain(),s),H=c.showTicks?DX:0,V=f.showTicks?DX:0,z=zX(c.title),q=zX(f.title),ee=n.chartEdgeSides.includes("left")||D&&!(e!=null&&e.sharedY)||!D&&!(e!=null&&e.sharedX),W=n.chartEdgeSides.includes("bottom")||D&&!(e!=null&&e.sharedX)||!D&&!(e!=null&&e.sharedY),U=n.chartEdgeSides.includes("left"),$=n.chartEdgeSides.includes("bottom"),{width:G,height:j}=n.inner,{left:re,top:se,padding:Se}=n,oe={left:b.left+re+Se.left,right:E.totalWidth-(b.left+re+Se.left),top:b.top+se+Se.top,bottom:E.totalHeight-(b.top+se+Se.top)},Ce=`translate(${re+Se.left},${se+Se.top})`,Te=!1;return ie.jsxs("g",{transform:Ce,children:[Te,t.length&&ie.jsxs("g",{children:[A==="full"&&ie.jsx("rect",{x:"0",y:-Se.top,height:Se.top,width:G,fill:"#F7F8FA",stroke:Wt}),t.map((fe,me)=>{let Xe=t.length,Ne=(Se.top-m9*Xe)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Wt,x:G/2,dy:Ne+m9/2-Se.top,y:me*m9,textAnchor:"middle",dominantBaseline:"central",children:fe},me)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Wt,children:[$&&ie.jsx("text",{x:G/2,y:j+Se.bottom-l1/2,children:D?z:q}),$&&Te&&ie.jsx("rect",{x:"0",y:j+Se.bottom-l1,width:G,height:l1,fill:"none",stroke:"black"}),U&&ie.jsx("text",{x:-Se.left+l1/2,y:j/2,transform:`rotate(-90,${-Se.left+l1/2},${j/2})`,children:D?q:z}),U&&Te&&ie.jsx("rect",{x:-Se.left,y:"0",width:l1,height:j,fill:"none",stroke:"black"})]}),ie.jsx(n2t,{orientation:a,width:G,height:j,scaleX:r.xPrimary,scaleY:r.y,axisX:c,axisY:f,frameType:A}),W&&ie.jsx("g",{transform:`translate(0,${j})`,children:D?ie.jsx(IX,{scale:r.xPrimary,orient:"bottom",labelsPosition:c.labelsPosition,tickSize:H,labels:x}):ie.jsx(OX,{scale:r.y,onlyPositive:k,orient:"bottom",tickSize:V})}),ee&&ie.jsx("g",{children:D?ie.jsx(OX,{scale:r.y,onlyPositive:k,orient:"left",tickSize:V}):ie.jsx(IX,{scale:r.xPrimary,orient:"left",labelsPosition:c.labelsPosition,tickSize:H,labels:x})}),ie.jsxs("g",{children:[i.map(fe=>ie.jsxs("g",{children:[fe.type==="box"&&fe.geoms[s].map(me=>ie.jsx(H3t,{box:me,elementsAmount:fe.geoms[s].length,scales:r,orientation:a,aes:fe.aes,hasKeyFromColumn:y!==null,sideDistances:oe,showTooltips:h.box.show,tooltipsContainer:m},me.key)),fe.type==="violin"&&fe.geoms[s].map(me=>ie.jsx(e2t,{violin:me,scales:r,orientation:a,maxViolinDensity:fe.meta.maxDensity,aes:fe.aes},me.key)),fe.type==="dot"&&fe.geoms[s].map(me=>ie.jsx(R3t,{geom:me,scales:r,orientation:a,aes:fe.aes,hasKeyFromColumn:y!==null,sideDistances:oe,showTooltips:h.dot.show,tooltipsContainer:m},me.key)),fe.type==="line"&&fe.geoms[s].map(me=>ie.jsx($3t,{line:me,scales:r,orientation:a,sideDistances:oe,aes:fe.aes,showTooltips:h.line.show,secondaryGrouping:_,tooltipsContainer:m},me.key)),fe.type==="errorbar"&&fe.geoms[s].map(me=>ie.jsx(L3t,{errorBar:me,scales:r,orientation:a,aes:fe.aes,sideDistances:oe,showTooltips:h.errorBar.show,tooltipsContainer:m},me.key)),fe.type==="bar"&&fe.geoms[s].map(me=>ie.jsx(P3t,{bar:me,scales:r,orientation:a,aes:fe.aes},me.key)),fe.type==="stackedBar"&&fe.geoms[s].map(me=>ie.jsx(U3t,{geom:me,elementsAmount:fe.geoms[s].length,scales:r,orientation:a,aes:fe.aes,normalize:fe.meta.normalize,sideDistances:oe,showTooltips:h.stackedBar.show,secondaryGrouping:_,tooltipsContainer:m},me.key)),fe.type==="binnedDots"&&fe.geoms[s].map(me=>ie.jsx(D3t,{geom:me,scales:r,orientation:a,aes:fe.aes,binsCount:fe.meta.binsCount,min:fe.meta.minY,max:fe.meta.maxY,hasKeyFromColumn:fe.meta.hasKeyFromColumn,sideDistances:oe,showTooltips:h.stackedBar.show,tooltipsContainer:m},me.key)),fe.type==="pairedPoints"&&fe.geoms[s].map(me=>ie.jsx(O3t,{geom:me,scales:r,orientation:a,sideDistances:oe,aes:fe.aes,showTooltips:h.pairedPoints.show,tooltipsContainer:m},me.id)),fe.type==="sina"&&fe.geoms[s].map(me=>ie.jsx(z3t,{geom:me,scales:r,orientation:a,sideDistances:oe,aes:fe.aes,hasKeyFromColumn:y!==null,showTooltips:!1,tooltipsContainer:m},me.key)),fe.type==="logo"&&fe.geoms[s].map(me=>ie.jsx(V3t,{geom:me,elementsAmount:fe.geoms[s].length,scales:r,orientation:a,aes:fe.aes,normalize:fe.meta.normalize,sideDistances:oe,showTooltips:!0,tooltipsContainer:m},me.key))]},fe.type)),o.map((fe,me)=>ie.jsx(W3t,{yShift:O[me],scales:r,orientation:a,statType:fe.meta.statType,values:fe.values[s],testMethod:fe.meta.testMethod,format:fe.meta.format,ns:fe.meta.ns,significanceLevels:fe.meta.significanceLevels},`${fe.meta.statType}_${fe.meta.testMethod}`))]})]})}var A2=class extends hb.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 i2t(e,t,n,r){return e==="left"?n:e==="right"?t-r:(t-(n+r))/2+n}function o2t(e){return e==="left"?"start":e==="right"?"end":"middle"}function p2({show:e,position:t,title:n,chartsWidth:r,leftPadding:a,rightPadding:i}){return e?ie.jsx("g",{children:n.map((o,s)=>ie.jsx("text",{x:i2t(t,r,a,i),textAnchor:o2t(t),y:-(n.length-s-1)*24-24-24/2,fontSize:"20px",fontFamily:"Manrope",fontWeight:"500",dominantBaseline:"central",children:o},`${o}_${s}`))}):null}var Fv=12,l2t=-12,s2t=3,u2t=24;function c2t(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 f2t({aes:e,label:t,usedAes:n}){let r=n.lineShape,a=n.dotShape,i=n.fillColor||n.lineColor&&!n.lineShape||n.dotFill&&!n.dotShape,o=a?df(e.dotShape??"21",s2t,i?Wt:e.dotFill??Wt):null,s=(a&&r?2*Fv:0)-6,c=r?s+u2t+8:Fv+8;return ie.jsxs("g",{children:[i&&ie.jsx("rect",{width:Fv,height:Fv,stroke:e.fillColor??e.lineColor,fill:e.fillColor??e.lineColor,rx:"1",ry:"1"}),a&&ie.jsx("g",{transform:`translate(${Fv/2},${Fv/2})`,children:o}),r&&ie.jsx("path",{transform:`translate(${s},-5)`,fillRule:"evenodd",clipRule:"evenodd",d:c2t(e.lineShape),fill:e.lineColor}),ie.jsx("text",{x:c,y:Fv/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function d2t({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:l2t,children:t.title}),t.values.map((n,r)=>ie.jsx("g",{transform:`translate(0, ${r*(Fv+4)})`,children:ie.jsx(f2t,{aes:t.scale(n),label:t.valueLabels[n],usedAes:t.usedAes})},n)),!1]},t.id))})}function A2t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,facetKeys:a,facetTitles:i,facetSettings:o,scales:s,layersData:c,statsData:f,legendData:A,margins:h,columnsCount:m,keyColumn:y,xLabels:E,chartTitle:b,onlyPositive:x,secondaryGrouping:k}){let[_,D]=nr.useState(),{orientation:O,xAxis:H,yAxis:V,title:z,legend:q,frame:ee}=t,W=r[a[0]].padding,U=r[a[m-1]].padding,$=n.chartsWidth+Q8,G=W.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:Hg}),ie.jsxs("g",{transform:`translate(${h.left},${h.top})`,fontFamily:"Manrope",children:[ie.jsx(p2,{title:b,show:z.show,position:z.position,leftPadding:W.left,rightPadding:U.right,chartsWidth:n.chartsWidth}),a.map(j=>ie.jsx(a2t,{facetKey:j,facetTitle:i[j],facetSettings:o,orientation:O,scales:{...s,xPrimary:s.xPrimary[j],xSecondary:s.xSecondary[j],y:s.y[j]},chartSizes:n,margins:h,dimensions:r[j],layersData:c,statsData:f,xAxis:H,yAxis:V,frameType:ee.type,tooltips:t.tooltips,tooltipsContainer:_,keyColumn:y,xLabels:E[j],onlyPositive:x,secondaryGrouping:k},j)),q.show&&ie.jsx("g",{transform:`translate(${$},${G})`,children:ie.jsx(d2t,{legendData:A})})]}),ie.jsx("g",{ref:j=>{j&&!_&&D(j)}})]})})}function UX(e,t){let n=Object.keys(e.values),r=e.reduce((a,i)=>{if(i.meta.statType==="pairwise"){let o=Object.values(i.values).map(s=>VX(s,t,i.meta.significanceLevels,i.meta.ns));return a+l2*Math.max(...o)}return(i.meta.ns?t.length>0:n.some(o=>i.values[o].some(([,s])=>s<i.meta.significanceLevels.one)))?a+l2:a},w3t);return Math.max(v9.TOP,r)}function h2(e,t,n=r=>r){let r=A=>t==="log"?Math.log10(A):A,a=A=>t==="log"?Math.pow(10,A):A,i=e.map(n).map(r).sort((A,h)=>A-h),o=P0(i,.25),s=P0(i,.75),c=s-o,f=1.5;return[a(o-f*c),a(s+f*c)]}function p2t(e,t,n,r=14){let a=new ou(`600 ${r}px Manrope`),i=[];e.split(new RegExp("(?=[_-])|(?<=[_-])")).forEach(h=>{a.getTextWidth(h)>n?i.push(...h.split("")):i.push(h)});let o="",s=0,c=0,f="";for(;s<=t;){let h=a.getTextWidth(o+i[c]);h<t&&(o+=i[c],f=o,c++),s=h}o="",s=0;let A=[];for(c;c<i.length;c++){let h=a.getTextWidth(o+i[c]);h<n?(o+=i[c],s=h):(A.push(o),o=i[c],s=a.getTextWidth(i[c]))}return{firstPart:f,lines:A,lastPart:o,lastPartLength:s}}function Vv(e,t,n){let r=new ou(`600 ${n}px Manrope`);if(e.trim()==="")return[];if(r.getTextWidth(e)<=t)return[e];let a=e.split(/\s+/),i=[],o="",s=0;for(let c=0;c<a.length;c++){let f=`${o} ${a[c]}`,A=r.getTextWidth(f);if(A<=t)o=f,s=A;else{let h=r.getTextWidth(a[c]);if(h>t){let{firstPart:m,lines:y,lastPart:E,lastPartLength:b}=p2t(a[c],t-s,t,n);i.push(`${o} ${m}`),i.push(...y),o=E,s=b}else i.push(o),o=a[c],s=h}}return i.push(o),i.filter(c=>c.length>0)}function h2t(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 v2t(e,t,n,r,a,i,o,s,c,f){let A=e==="vertical",h=o.includes("left")||A&&!(s!=null&&s.sharedY)||!A&&!(s!=null&&s.sharedX),m=o.includes("left")&&n.title!=="",y=o.includes("bottom")||A&&!(s!=null&&s.sharedX)||!A&&!(s!=null&&s.sharedY),E=o.includes("bottom")&&t.title!=="",b=r.yAxisCaptionsWidth,x=(n.showTicks?n2:0)+qf,k=m?l1:0,_=r.xAxisCaptionsWidthByRows[A?c:f],D=(t.showTicks?n2:0)+qf,O=E?l1:0,H=A?b+x+k:_+D+O,V=A?D+_+O:x+2*l1,z=Math.max(...a.map(q=>i[q].length));return{left:h?H:pP,top:z===0?0:y3t*2+z*m9,bottom:y?V:pP,right:pP}}function m2t(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 jX(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function g2t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function y2t(e){return typeof e=="object"&&"type"in e}var w2t=class{constructor(){Me(this,"reactRoot",null);Me(this,"parentNode",null);Me(this,"rootNode",null);Me(this,"component",ie.jsx(ie.Fragment,{}));Me(this,"chartsDimensions",{});Me(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Me(this,"columnsCount",1);Me(this,"rowsCount",1);Me(this,"scales",{xPrimary:{null:V5().range([0,600]).domain(["1"])},xSecondary:{null:V5().range([0,600]).domain(["1"])},y:{null:ei().domain([0,10]).range([350,0]).nice()},xPrimaryAes:Hl().unknown(PX),xSecondaryAes:Hl().unknown(PX)});Me(this,"facetTitles",{});Me(this,"mainTitle",[]);Me(this,"axisLabelsX",{});Me(this,"captionsSizes",{xAxisCaptionsWidthByRows:[],xCaptionsTail:0,yAxisCaptionsWidth:100});Me(this,"legend",{width:0,height:0,items:[]});Me(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=Oh(this.rootNode))}updateChartSize(e,t,n,r,a,i){let o=UX(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:A,height:h}=e;a==="vertical"&&o>v9.TOP&&(h+=o),a==="horizontal"&&o>v9.TOP&&(A+=o),this.chartSizes.chartWidth=A,this.chartSizes.chartHeight=h}updateChartDimensions(e,t,n,r,a){let{chartWidth:i,chartHeight:o}=this.chartSizes,s=0,c=0;this.chartsDimensions=e.reduce((h,m,y)=>{let[E,b]=g2t(y,this.columnsCount),x=h2t(y,e.length,this.columnsCount,this.rowsCount),k=v2t(n,r,a,this.captionsSizes,jX(e,this.rowsCount,this.columnsCount)[E],this.facetTitles,x,t,E,b),_=i+k.left+k.right,D=o+k.top+k.bottom;return h[m]={left:s,top:c,chartEdgeSides:x,padding:k,inner:{width:i,height:o},outer:{width:_,height:D}},s+=_,b===this.columnsCount-1&&(s=0,c+=D),h},{});let f=Math.max(...e.map(h=>this.chartsDimensions[h].outer.width+this.chartsDimensions[h].left)),A=Math.max(...e.map(h=>this.chartsDimensions[h].outer.height+this.chartsDimensions[h].top));this.chartSizes.chartsWidth=f,this.chartSizes.chartsHeight=A}updateViewport(e,t,n,r,a,i,o,s,c){let f=e==="vertical",A=UX(s,t),h=a===null||a.sharedX,m=a===null||a.sharedY,{chartHeight:y,chartWidth:E}=this.chartSizes;r.forEach(b=>{let x=i.scale==="log"?Rm():ei(),k=Math.min(...m?o.map(({meta:H})=>H.minY):o.map(({geoms:H})=>Math.min(...H[b].map(({boundsY:V})=>V.min)))),_=Math.max(...m?o.map(({meta:H})=>H.maxY):o.map(({geoms:H})=>Math.max(...H[b].map(({boundsY:V})=>V.max)))),D=x.copy().domain([k,_]).range(f?[y-v9.BOTTOM,A]:[v9.BOTTOM,E-A]);x.domain([D.invert(f?y:0),D.invert(f?0:E)]).range(f?[y,0]:[0,E]),this.scales.y[b]=x;let O=h?t:c[b];this.scales.xPrimary[b]=V5().domain(O).range(f?[0,E]:[y,0]),this.scales.xSecondary[b]=V5().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]=Vv(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=Vv(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 o(s,c){return s==="center"?1/0:Math.floor(s==="45deg"?c*Math.sin(Math.PI/4)/hP:c/hP)}this.axisLabelsX=e.reduce((s,c)=>{let f=this.scales.xPrimary[c],A=f.bandwidth(),h=a[t.labelsPosition],m=t.labelsPosition==="center"?Math.min(h,A):h,y=n.valueLabels;return s[c]=f.domain().reduce((E,b)=>{let x=y[b];if(!i)E[b]=[x];else{let k=o(t.labelsPosition,A),_=Vv(x,m,14);E[b]=_.length>k?[x]:_}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 ou("600 14px Manrope"),a=e==="vertical";function i(y){return y.length?Math.max(...y.map(E=>r.getTextWidth(E))):0}function o(y){return y.length?Math.max(...y.map(i)):0}let s=[],c=0,f=jX(t,this.rowsCount,this.columnsCount),A=m2t(t,this.rowsCount,this.columnsCount);if(!a)s=A.map(y=>Math.max(...y.map(E=>o(this.scales.xPrimary[E].domain().map(b=>this.axisLabelsX[E][b])))));else{if(n.labelsPosition==="center"&&(s=f.map(y=>Math.max(...y.map(E=>Math.max(...this.scales.xPrimary[E].domain().map(b=>b?this.axisLabelsX[E][b].length*hP:0)))))),n.labelsPosition==="45deg"){let y=Math.sin(Math.PI/4);s=f.map(E=>Math.max(...E.map(b=>{let x=this.scales.xPrimary[b].domain().map(_=>this.axisLabelsX[b][_]),k=o(x);return k>0?k*y+14:0}))),c=Math.max(...A[0].map(E=>{let b=this.scales.xPrimary[E].domain(),x=this.axisLabelsX[E][b[0]];return Math.max(i(x)*y-this.scales.xPrimary[E].bandwidth()/2+14,0)}))}n.labelsPosition==="90deg"&&(s=f.map(y=>Math.max(...y.map(E=>o(this.scales.xPrimary[E].domain().map(b=>this.axisLabelsX[E][b]))))))}let h=Ir.flatten(t.map(y=>{let E=this.scales.y[y],b=E.ticks(),x=b.some(_=>Math.abs(_)<1e-4&&_!==0||_>1e4)?",e":",f",k=E.tickFormat(10,x);return b.map(k)})),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(V8,a?this.captionsSizes.xCaptionsTail-n.padding.left:0),right:Math.max(this.legend.width,V8),top:Math.max(24*this.mainTitle.length+24*2,V8),bottom:Math.max(V8,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 ou("600 14px Manrope"),i=16,o=48,s=20,c=24;function f(V,z){return Math.max(...V.map(q=>a.getTextWidth(String(q))+s),a.getTextWidth(z))}let A=[],h=0,m=0,y=0,E=this.chartSizes.chartsHeight,b=this.chartSizes.chartsHeight;function x(V,z){return r.some(q=>{let ee=q.aes[z];return ee&&y2t(ee)&&ee.type===V})}function k(V){return{dotFill:x(V,"dotFill"),fillColor:x(V,"fillColor"),lineColor:x(V,"lineColor"),dotShape:x(V,"dotShape"),lineShape:x(V,"lineShape")}}let _=k("primaryGrouping"),D=k("secondaryGrouping");if(Object.values(_).some(V=>V)&&t.inheritedAes){let{keys:V,label:z,valueLabels:q}=t,ee=f(V.map($=>q[$]),z),W=V.length*i;W>b&&(b=W);let U=this.scales.xPrimaryAes;A.push({id:"primary",width:ee,height:W,left:0,top:0,title:z,scale:U,values:V,valueLabels:q,usedAes:_}),h=ee,m+=W+o,m>E&&(m=0,y=ee+c)}if(Object.values(D).some(V=>V)&&n.inheritedAes){let{keys:V,label:z,valueLabels:q}=n,ee=f(V.map(j=>q[j]),z),W=V.length*i;W>b&&(b=W,m=0,y+=h+c,h=ee),ee>h&&(h=ee);let U=this.scales.xSecondaryAes,$=y,G=m;A.push({id:"secondary",width:ee,height:W,left:$,top:G,title:z,scale:U,values:V,valueLabels:q,usedAes:D})}let O=y+h+2*Q8,H=b;this.legend={width:O,height:H,items:A}}render(e,t,n,r,a,i,o,s,c,f,A,h){var k;let{orientation:m,xAxis:y,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,A),this.createAxisLabels(i,y,n,m),this.createFacetTitles(i,o),this.updateCaptionsSize(m,i,y),this.updateChartDimensions(i,a,m,y,E),this.updateLegendSize(t.legend,n,r,s),this.createMainTitle(i,t.title),this.updateMargins(m,i),this.updateAesScales(n,r);let x=ie.jsx(A2t,{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,secondaryGrouping:r});this.component=x,(k=this.reactRoot)==null||k.render(x)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},C2t=w2t;function b2t(e,t,n,r=!1){let a=e.map(t).sort((i,o)=>i-o);if(r){let i=Ir.find(a,o=>o>0);if(!i)throw Error("Group with all zeros in log scale");return a.map(o=>o===0?i:o).map(n)}return a.map(n)}var E2t=class{constructor(e,t,n,r,a,i,o,s,c,f,A=!0){Me(this,"lower");Me(this,"middle");Me(this,"upper");Me(this,"min");Me(this,"max");Me(this,"outliers");Me(this,"primaryGrouping");Me(this,"secondaryGrouping");Me(this,"key");Me(this,"boundsY");if(e.length===0)throw Error("Unable to create box on empty data");if(o>s||o>c||s>c)throw Error(`Invalid box bounds values: lower=${o}, middle=${s}, upper=${c}`);if(f<0)throw Error(`Invalid box whiskers coefficient: k=${f}. It should be positive`);let h=H=>Number(H[t]);this.primaryGrouping=a===null?"":String(a),this.secondaryGrouping=i===null?"":String(i),this.key=`box_${this.primaryGrouping}_${this.secondaryGrouping}`;let m=H=>r==="log"?Math.log10(H):H,y=H=>r==="log"?Math.pow(10,H):H,E=b2t(e,h,m,r==="log"),b=P0(E,o),x=P0(E,s),k=P0(E,c),_=k-b;this.upper=y(k),this.middle=y(x),this.lower=y(b),this.min=Math.max(AC(e,h),y(b-f*_)),this.max=Math.min(Dh(e,h),y(k+f*_)),this.outliers=e.filter(H=>h(H)<this.min||h(H)>this.max).map((H,V)=>({y:h(H),data:H,id:String(n?H[n]:V)}));let[D=1/0,O=-1/0]=$A(this.outliers,H=>H.y);this.boundsY={min:A?Math.min(this.min,D):this.min,max:A?Math.max(this.max,O):this.max}}};function S2t(e,t,n,r,a,i,o,s){let c=1/0,f=-1/0;return{type:"box",geoms:t.reduce((A,h)=>{let m=h.join("_");return A[m]=[],n.forEach(y=>{r.forEach(E=>{let b=a.getRowsByGrouping([...h,y,E]);if(!b.length)return;let x=new E2t(b,i.value,(o==null?void 0:o.value)??null,s.scale,y,E,e.stat.lower,e.stat.medium,e.stat.upper,e.stat.k,e.aes.showOutliers);x.boundsY.min<c&&(c=x.boundsY.min),x.boundsY.max>f&&(f=x.boundsY.max),A[m].push(x)})}),A},{}),meta:{minY:c,maxY:f},aes:e.aes}}var GX=40;function x2t(e,t){return function(n){return t.map(function(r){return[r,tu(n,a=>e(r-a))]})}}function B2t(e){return function(t){return 1/Math.sqrt(2*Math.PI)*Math.pow(Math.E,-.5*Math.pow(t/e,2))}}function k2t(e){let t=tu(e);return tu(e.map(n=>Math.pow(n-t,2)))}function T2t(e){return Math.sqrt(k2t(e))}function _2t(e){let t=P0(e,.25),n=(P0(e,.75)-t)/1.34,r=T2t(e);return 1.06*Math.min(r,n)*Math.pow(e.length,-1/5)}var P2t=class{constructor(e,t,n,r,a,i){Me(this,"getArea");Me(this,"getLine");Me(this,"maxDensity");Me(this,"primaryGrouping");Me(this,"secondaryGrouping");Me(this,"key");Me(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 o=_=>t==="log"?Math.log10(_):_,s=_=>t==="log"?Math.pow(10,_):_,c=e.filter(_=>t==="log"&&Number(_)===0?(console.warn("Value = 0 on chart with log scale, it was removed from calculation"),!1):!0).map(o).sort((_,D)=>_-D),f=c[0],A=c[c.length-1],h=A-f,m=_2t(c),y=r!=="auto"?r:m/3>h/GX?GX:h/(m/3),E=n?f:f-3*m,b=n?A:A+3*m,x=ei().domain([E,b]).ticks(y);this.boundsY={min:s(x[0]),max:s(x[x.length-1])};let k=x2t(B2t(m),x)(c).map(([_,D])=>[s(_),D]);this.maxDensity=Dh(k,([,_])=>_),this.getArea=(_,D,O,H)=>{let V=_==="vertical",z=H??this.maxDensity,q=ei().domain([-z,z]).range([-O/2,O/2]);return V?MB().curve(G7).x0(ee=>q(ee[1])).x1(ee=>q(-ee[1])).y(ee=>D(ee[0]))(k):MB().curve(G7).y0(ee=>q(ee[1])).y1(ee=>q(-ee[1])).x(ee=>D(ee[0]))(k)},this.getLine=(_,D,O,H)=>{let V=_==="vertical",z=H??this.maxDensity,q=ei().domain([-z,z]).range([-O/2,O/2]);return j7().curve(G7).x(V?ee=>q(ee[1]):ee=>D(ee[0])).y(V?ee=>D(ee[0]):ee=>q(ee[1]))(k)+" "+j7().curve(G7).x(V?ee=>q(-ee[1]):ee=>D(ee[0])).y(V?ee=>D(ee[0]):ee=>q(-ee[1]))(k)}}};function D2t(e,t,n,r,a,i,o){let s=0,c=1/0,f=-1/0;return{type:"violin",geoms:t.reduce((A,h)=>{let m=h.join("_");return A[m]=[],n.forEach(y=>{r.forEach(E=>{let b=a.getColumnByGrouping([...h,y,E],i.value);if(!b.length)return;let x=new P2t(b,o.scale,e.stat.trim,e.stat.stepsCount,y,E);x.maxDensity>s&&(s=x.maxDensity),x.boundsY.min<c&&(c=x.boundsY.min),x.boundsY.max>f&&(f=x.boundsY.max),A[m].push(x)})}),A},{}),meta:{maxDensity:s,minY:c,maxY:f},aes:e.aes}}var M2t=30;function H2t(e,t){return function(n){return t.map(function(r){return tu(n,a=>e(r-a))})}}function I2t(e){return function(t){return 1/Math.sqrt(2*Math.PI)*Math.pow(Math.E,-.5*Math.pow(t/e,2))}}function R2t(e){let t=tu(e);return tu(e.map(n=>Math.pow(n-t,2)))}function L2t(e){return Math.sqrt(R2t(e))}function N2t(e){let t=P0(e,.25),n=(P0(e,.75)-t)/1.34,r=L2t(e);return 1.06*Math.min(r,n)*Math.pow(e.length,-1/5)}var $2t=class{constructor(e,t,n,r,a,i){Me(this,"key");Me(this,"maxDensity");Me(this,"primaryGrouping");Me(this,"secondaryGrouping");Me(this,"points");Me(this,"boundsY");let o=M2t;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=D=>n==="log"?Math.log10(D):D,c=D=>n==="log"?Math.pow(10,D):D,f=D=>Number(D[t.value]),A=e.filter(D=>n==="log"&&f(D)===0?(console.warn("Value = 0 on chart with log scale, it was removed from calculation"),!1):!0).sort((D,O)=>s(f(D))-s(f(O))),h=A.map(D=>s(f(D))),m=h[0],y=h[A.length-1],E=(y-m)/o,b=N2t(h),x=Ir.range(m+E,y,E);this.boundsY={min:c(m),max:c(y)};let k=H2t(I2t(b),x)(h),_=ei().domain(x).range(k).clamp(!0);this.maxDensity=Dh(k),this.points=A.map((D,O)=>({x:f(D),y:_(s(f(D)))/this.maxDensity,id:String(O),jitter:i(),data:D}))}};function F2t(e,t,n,r,a,i,o){let s=0,c=1/0,f=-1/0,A=R$(1);return{type:"sina",geoms:t.reduce((h,m)=>{let y=m.join("_");return h[y]=[],n.forEach(E=>{r.forEach(b=>{let x=a.getRowsByGrouping([...m,E,b]);if(!x.length)return;let k=x;if(!e.aes.showOutliers){let D=V=>Number(V[i.value]),[O,H]=h2(x,o.scale,D);k=x.filter(V=>{let z=D(V);return z>=O&&z<=H})}let _=new $2t(k,i,o.scale,E,b,A);_.maxDensity>s&&(s=_.maxDensity),_.boundsY.min<c&&(c=_.boundsY.min),_.boundsY.max>f&&(f=_.boundsY.max),h[y].push(_)})}),h},{}),meta:{maxDensity:s,minY:c,maxY:f},aes:e.aes}}function V2t(e,t,n,r,a,i,o,s){let c=1/0,f=-1/0,A=R$(1);return{type:"dot",geoms:t.reduce((h,m)=>{let y=m.join("_");return h[y]=[],n.forEach(E=>{r.forEach(b=>{let x=a.getRowsByGrouping([...m,E,b]);if(!x.length)return;let k=H=>Number(H[i.value]),_=x.map((H,V)=>({y:k(H),jitter:A(),id:String(s?H[s.value]:V),data:H}));if(!e.aes.showOutliers){let[H,V]=h2(x,o.scale,k);_=_.filter(({y:z})=>z>=H&&z<=V)}let[D=1/0,O=-1/0]=$A(_,H=>H.y);D<c&&(c=D),O>f&&(f=O),h[y].push({key:`dots_${E}_${b}`,values:_,primaryGrouping:E,secondaryGrouping:b,boundsY:{min:D,max:O}})})}),h},{}),meta:{minY:c,maxY:f},aes:e.aes}}function O2t(e,t){if(t==="median")return uR(e,.5);if(t==="mean")return tu(e);mA(t,`Unknown line points calculation for dot layer: ${t}`)}function Q2t(e,t,n,r,a,i,o){let s=1/0,c=-1/0;return{type:"line",geoms:t.reduce((f,A)=>{let h=A.join("_");f[h]=[];let m=-1/0,y=1/0;return e.aes.showOutliers||([m,y]=h2(a.getColumnByGrouping([...A],i.value),o.scale)),r.forEach(E=>{let b={key:`${E}`,boundsY:{min:1/0,max:-1/0},dots:{}},x=!1,k=D=>o.scale==="log"?Math.log10(D):D,_=D=>o.scale==="log"?Math.pow(10,D):D;n.forEach(D=>{let O=a.getColumnByGrouping([...A,D,E],i.value);if(!O.length){x=!0;return}let H=O;if(e.aes.showOutliers||(H=O.filter(z=>z>=m&&z<=y)),!H.length){x=!0;return}let V=_(O2t(H.map(k),e.pointsValues));b.dots[D]=V,V<s&&(s=V),V>c&&(c=V),V<b.boundsY.min&&(b.boundsY.min=V),V>b.boundsY.max&&(b.boundsY.max=V)}),x||f[h].push(b)}),f},{}),meta:{minY:s,maxY:c},aes:e.aes}}function z2t(e){let t=tu(e);return tu(e.map(n=>Math.pow(n-t,2)))}function wP(e){return Math.sqrt(z2t(e))}function U2t(e){return wP(e)/Math.sqrt(e.length)}function j2t(e){return 1.96*wP(e)}function G2t(e,t){if(t==="median")return uR(e,.5);if(t==="mean")return tu(e);mA(t,"Unknown points calculation")}function Y2t(e,t){if(t==="sd")return wP(e);if(t==="se")return U2t(e);if(t==="ci")return j2t(e);mA(t,"Unknown error interval calculation")}function W2t(e,t,n,r,a,i,o){let s=1/0,c=-1/0;return{type:"errorbar",geoms:t.reduce((f,A)=>{let h=A.join("_");f[h]=[];let m=E=>o.scale==="log"?Math.log10(E):E,y=E=>o.scale==="log"?Math.pow(10,E):E;return n.forEach(E=>{r.forEach(b=>{let x=a.getColumnByGrouping([...A,E,b],i.value);if(!x.length)return;let k=x.map(m),_=y(G2t(k,e.pointsValues)),D=y(Y2t(k,e.interval)),O=_-D,H=_+D;O<s&&(s=O),H>c&&(c=H),f[h].push({key:`errorbar_${E}_${b}`,primaryGrouping:E,secondaryGrouping:b,value:_,min:O,max:H,boundsY:{min:O,max:H}})})}),f},{}),meta:{minY:s,maxY:c},aes:e.aes}}function X2t(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,o=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 Dh(e,o)??o(e[0]);case"min":return AC(e,o)??o(e[0]);case"median":{let s=e.map(c=>Number(c[n])).map(a).sort((c,f)=>c-f);return i(P0(s,.5))}case"mean":return tu(e,o)??o(e[0]);default:mA(r,`Unknown bar height function ${r}`)}}function K2t(e,t,n,r,a,i,o){let s=-1/0,c=1/0;return{type:"bar",geoms:t.reduce((f,A)=>{let h=A.join("_");return f[h]=[],n.forEach(m=>{r.forEach(y=>{let E=a.getRowsByGrouping([...A,m,y]);if(!E.length)return;let b=X2t(E,o.scale,i.value,e.height);s=Math.max(s,b,0),c=Math.min(c,b,0),f[h].push({key:`bar_${m}_${y}`,value:b,primaryGrouping:m,secondaryGrouping:y,boundsY:{min:Math.min(0,b),max:Math.max(0,b)}})})}),f},{}),meta:{minY:c,maxY:s},aes:e.aes}}function Z2t(e,t,n,r,a,i){let o=-1/0,s=1/0;return{type:"stackedBar",geoms:t.reduce((c,f)=>{let A=f.join("_");return c[A]=[],n.forEach(h=>{let m=0,y={};r.forEach(x=>{let k=a.getRowsByGrouping([...f,h,x]);if(!k.length)return;let _=xc(k,D=>Number(D[i.value]));y[x]={height:_,key:x},m+=_});let E=m;e.normalize&&r.forEach(x=>{y[x]&&(y[x].height=y[x].height/E*100)}),o=Math.max(o,0,m),s=Math.min(s,0,m);let b=e.normalize?100:E;c[A].push({key:`stackedBar_${h}`,valuesMap:y,primaryGrouping:h,boundsY:{min:Math.min(b,0),max:Math.max(b,0)}})}),c},{}),meta:{minY:e.normalize?0:s,maxY:e.normalize?100:o,normalize:e.normalize},aes:e.aes}}var YX=30;function J2t(e,t,n,r,a,i){let o=e.map(m=>n(a(m))),s=e.length,c=e.map(A),f=[];function A(m,y){return{key:i(m,y),value:a(m)}}let h=0;for(let m=1;m<s;++m){let y=o[h],E=o[m],b=o[m-1];if(E>=y+t){let x=Math.min((y+b)/2,E-t);o.fill(x,h,m),f.push({x:r(x),count:m-h,dots:c.slice(h,m)}),h=m}}return o.fill((o[h]+o[s-1])/2,h,s),f.push({x:r((o[h]+o[s-1])/2),count:s-h,dots:c.slice(h,s)}),f}var q2t=class{constructor(e,t,n,r,a,i,o,s,c,f){Me(this,"bins");Me(this,"primaryGrouping");Me(this,"secondaryGrouping");Me(this,"key");Me(this,"boundsY");this.primaryGrouping=n===null?"":String(n),this.secondaryGrouping=r===null?"":String(r),this.key=`binnedDots_${this.primaryGrouping}_${this.secondaryGrouping}`;let A=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=J2t(A,a,i,o,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 e5t(e,t,n,r,a,i,o){let s=x=>o.scale==="log"?Math.log10(x):x,c=x=>o.scale==="log"?Math.pow(10,x):x,f=x=>Number(x[i.value]),A=1/0,h=-1/0,m=a.getRowsByGrouping([]),[y=f(m[0]),E=f(m[0])]=$A(m.filter(x=>Number(x[i.value])===0&&o.scale==="log"?(console.warn(`Item with ${i.value} = 0 is not shown on chart with log scale`),!1):!0),x=>Number(x[i.value])),b=Math.abs(s(y)-s(E))/YX;return{type:"binnedDots",geoms:t.reduce((x,k)=>{let _=k.join("_");return x[_]=[],n.forEach(D=>{r.forEach(O=>{let H=a.getRowsByGrouping([...k,D,O]);if(!H.length)return;let V=H;if(!e.aes.showOutliers){let[q,ee]=h2(H,o.scale,f);V=H.filter(W=>{let U=f(W);return U>=q&&U<=ee})}let z=new q2t(V,i.value,D,O,b,s,c,f,o.scale,e.keyColumn);z.boundsY.min<A&&(A=z.boundsY.min),z.boundsY.max>h&&(h=z.boundsY.max),x[_].push(z)})}),x},{}),meta:{minY:Math.min(y,E,A),maxY:Math.max(y,E,h),binsCount:YX,hasKeyFromColumn:e.keyColumn!==null},aes:e.aes}}function t5t(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 WX(e,t,n,r,a,i,o,s,c){let f=Ir.groupBy(n,D=>D[a.value]),A=Ir.groupBy(r,D=>D[a.value]),h=Object.keys(f),m=Object.keys(A);if(Ir.uniq(h).length!==h.length||Ir.uniq(m).length!==m.length)throw Error(`Non unique keys in groups ${e}, ${t} for paired points layer`);if(h.length!==m.length||Ir.intersection(h,m).length!==h.length)throw Error(`Keys in groups ${e}, ${t} not match for paired points layer`);let y=D=>Number(D[i.value]),E=1/0,b=-1/0,x=!1,k=c==="log",_=h.map(D=>{let O=f[D][0],H=A[D][0],V=y(O),z=y(H);return(V===0||z===0)&&(x=!0),E=Math.min(E,k&&V===0?1/0:V,k&&z===0?1/0:z),b=Math.max(b,k&&V===0?-1/0:V,k&&z===0?-1/0:z),{id:D,key1:{id:`${D}_${e}`,value:V,data:O},key2:{id:`${D}_${t}`,value:z,data:H}}});if(!s){E=1/0,b=-1/0;let[D,O]=h2(n,c,y),[H,V]=h2(r,c,y);_=_.filter(({key1:z,key2:q})=>z.value<D||z.value>O||q.value<H||q.value>V?!1:(E=Math.min(E,k&&z.value===0?1/0:z.value,k&&q.value===0?1/0:q.value),b=Math.max(b,k&&z.value===0?-1/0:z.value,k&&q.value===0?-1/0:q.value),!0))}return E=x?E/10:E,b=Math.max(b,E),{id:`${e}_${t}`,key1:e,key2:t,pairs:_.map(D=>({...D,key1:{...D.key1,value:D.key1.value===0?E:D.key1.value},key2:{...D.key2,value:D.key2.value===0?E:D.key2.value}})),grouping:o,boundsY:{min:E,max:b}}}function n5t(e,t,n,r,a,i,o){let s=t5t(n,r),c=1/0,f=-1/0;return{type:"pairedPoints",geoms:t.reduce((A,h)=>{let m=h.join("_");if(A[m]=[],s==="primary"){let[y,E]=n,b=a.getRowsByGrouping([...h,y]),x=a.getRowsByGrouping([...h,E]),k=WX(y,E,b,x,e.linkColumn,i,s,e.aes.showOutliers,o.scale);c=Math.min(c,k.boundsY.min),f=Math.max(f,k.boundsY.max),A[m].push(k)}else s==="secondary"&&n.forEach(y=>{let[E,b]=r,x=a.getRowsByGrouping([...h,y,E]),k=a.getRowsByGrouping([...h,y,b]),_=WX(E,b,x,k,e.linkColumn,i,s,e.aes.showOutliers,o.scale);c=Math.min(c,_.boundsY.min),f=Math.max(f,_.boundsY.max),A[m].push(_)});return A},{}),meta:{minY:c,maxY:f},aes:e.aes}}function XX(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 v2(e,t){return Ir.orderBy(e.map((n,r)=>[n,r]),([n])=>n,[t?"desc":"asc"]).map(([,n])=>n)}function r5t(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 a5t(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 KX(e,t){if(e.length<1)throw new Error("pmin requires at least one element");return e.map(n=>Math.min(n,t))}function i5t(e){if(e.length<1)throw new Error("pAdjust requires at least one element");return Math.min(...e)}function o5t(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 l5t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=v2(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=v2(r,!1),o=a5t(a),s=KX(o,1),c=new Array(t);for(let f=0;f<t;++f)c[f]=s[i[f]];return c}function s5t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=XX(t,t),r=v2(e,!1),a=new Array(t);for(let h=0;h<t;++h)a[h]=e[r[h]];let i=r.slice(),o=v2(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 A=i5t(f);s.fill(A),c.fill(A);for(let h=t;h>=2;--h){let m=XX(1,t-h+1);for(let x=0;x<t-h+1;++x)m[x]--;let y=h-1,E=new Array(y);for(let x=0;x<y;++x)E[x]=t-h+2+x-1;let b=h*a[E[0]]/2;for(let x=1;x<y;++x){let k=a[E[x]]*h/(2+x);k<b&&(b=k)}for(let x=0;x<t-h+1;++x)s[m[x]]=Math.min(a[m[x]]*h,b);for(let x=0;x<y;++x)s[E[x]]=s[t-h];for(let x=0;x<t;++x)c[x]<s[x]&&(c[x]=s[x])}for(let h=0;h<t;++h)s[h]=c[o[h]];return s}var u5t=class{constructor(e,t,n){this.ni=e,this.o=t,this.ro=n}result(e){let t=r5t(e),n=KX(t,1),r=new Array(e.length);for(let a=0;a<e.length;++a)r[a]=n[this.ro[a]];return r}};function CP(e){let t=e.length,n=new Array(t),r=v2(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=v2(r,!1);return new u5t(n,r,a)}function c5t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=CP(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 f5t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=CP(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 d5t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=CP(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 ZX(e,t){switch(t){case"BenjaminiHochberg":return c5t(e);case"BenjaminiYekutieli":return f5t(e);case"Bonferroni":return o5t(e);case"Hochberg":return d5t(e);case"Holm":return l5t(e);case"Hommel":return s5t(e);case null:return e;default:throw new Error(`Unknown p-value correction method: ${t}`)}}function A5t(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 p5t(e){return .5*A5t(-e/Math.sqrt(2))}var h5t=class{constructor(e,t){this.value=e,this.position=t}getValue(){return this.value}getPosition(){return this.position}};function v5t(e){let t=new Array(e.length);for(let o=0;o<e.length;o++)t[o]=new h5t(e[o],o);let n=g5t(t);t.sort((o,s)=>o.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 o=1;o<t.length;o++)t[o].getValue()>t[o-1].getValue()&&(a=o+1,i.length>1&&JX(r,i),i=[]),i.push(t[o].getPosition()),r[t[o].getPosition()]=a;return i.length>1&&JX(r,i),m5t(r,n),r}function JX(e,t){let n=(2*e[t[0]]+t.length-1)/2;t.forEach(r=>{e[r]=n})}function m5t(e,t){t.forEach(n=>{e[n]=NaN})}function g5t(e){let t=[];for(let n=0;n<e.length;n++)isNaN(e[n].getValue())&&t.push(n);return t}var y5t=class{constructor(){Me(this,"SMALL_SAMPLE_SIZE",50)}mannWhitneyU(e,t){let n=[...e,...t],r=v5t(n),a=0;for(let s=0;s<e.length;s++)a+=r[s];let i=a-e.length*(e.length+1)/2,o=e.length*t.length-i;return Math.min(i,o)}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*p5t(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,o=0;for(;o<=a;)i+=this.uDensity(e,t,o),o++;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)]/Ir.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 o=n;for(let s=2;s<=r;s++){i[s]=0,o=o+n;let c=o+2,f=1+o/2,A=s;for(let h=1;h<=f;h++){A++,c=c-1;let m=a[h]+i[h];a[h]=m,i[A]=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=Ir.sum(Object.values(n).map(o=>o*o*o-o)),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 bP(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 jat(e[0],e[1]).pValue}let r=uit(e[0],e[1]).pValue;return isNaN(r)?1:r}case"anova":{let r=Kze(Ir.flatten(e),Ir.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 sct(e[0],e[1]).pValue}let r=new y5t().mannWhitneyUTest(e[0],e[1]);return isNaN(r)?1:r}case"kruskalWallis":{let r=Dst(...e).pValue;return isNaN(r)?1:r}default:throw new Error("Unknown test method")}}function w5t(e){return e.slice(0,-1).reduce((t,n,r)=>t.concat(e.slice(r+1).map(a=>[n,a])),[])}function C5t(e,t,n,r,a){return{type:"stats",values:t.reduce((i,o)=>{let s=[];switch(e.statType){case"overall":{let c=n.map(A=>a.getColumnByGrouping([...o,A],r.value)).filter(A=>A.length>0);if(c.length<2)break;let f=bP(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([...o,c],r.value);if(f.length===0){s=[];break}let A=n.filter(m=>m!==c).map(m=>[m,a.getColumnByGrouping([...o,m],r.value)]).filter(([,m])=>m.length>0);if(A.length<2&&e.correctionMethod!==null)break;let h=ZX(A.map(([,m])=>bP([f,m],e.testMethod,e.paired)),e.correctionMethod);s=A.map(([m],y)=>[[m],h[y]]);break}case"pairwise":{let c=w5t(n).map(([A,h])=>[[A,h],[a.getColumnByGrouping([...o,A],r.value),a.getColumnByGrouping([...o,h],r.value)]]).filter(([,[A,h]])=>A.length&&h.length);if(c.length<1)break;let f=ZX(c.map(([,A])=>bP(A,e.testMethod,e.paired)),e.correctionMethod);s=c.map(([A],h)=>[A,f[h]]);break}default:throw new Error("Unknown statType")}return i[o.join("_")]=s,i},{}),meta:{statType:e.statType,testMethod:e.testMethod,format:e.format,ns:e.ns,significanceLevels:e.significanceLevels}}}var y9="#3e9838",m2="21",g2=3,np=class{},qX=class extends np{constructor(t){super();Me(this,"type","box");Me(this,"stat",{upper:.75,medium:.5,lower:.25,k:1.5});Me(this,"aes",{showOutliers:!0,boxWidth:"auto",dotShape:m2,dotFill:Wt,dotSize:g2,lineColor:Wt,fillColor:y9,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])}},eK=class extends np{constructor(t){super();Me(this,"type","violin");Me(this,"stat",{bandwidth:"auto",stepsCount:40,trim:!0});Me(this,"aes",{width:"auto",lineColor:Wt,fillColor:y9,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])}},tK=class extends np{constructor(t){super();Me(this,"type","dot");Me(this,"aes",{showOutliers:!0,jitter:.8,lineColor:"none",dotFill:Wt,dotShape:m2,dotSize:g2,opacity:1});this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="dot"&&this.aes.showOutliers===t.aes.showOutliers}},nK=class extends np{constructor(t){super();Me(this,"type","line");Me(this,"pointsValues");Me(this,"aes",{showOutliers:!0,lineWidth:1,lineShape:"solid",fillColor:"none",lineColor:Wt,dotShape:m2,dotSize:g2,opacity:1});this.pointsValues=t.pointsValues,this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="line"&&this.pointsValues===t.pointsValues}},rK=class extends np{constructor(t){super();Me(this,"type","errorbar");Me(this,"pointsValues");Me(this,"interval");Me(this,"aes",{showDots:!0,width:"auto",lineWidth:1,fillColor:"none",lineColor:Wt,dotShape:m2,dotSize:g2,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}},aK=class extends np{constructor(t){super();Me(this,"type","bar");Me(this,"height");Me(this,"aes",{width:"auto",lineWidth:1,fillColor:"none",lineColor:Wt,opacity:1});this.height=t.height??"max",this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="bar"&&this.height===t.height}},iK=class extends np{constructor(t){super();Me(this,"type","stackedBar");Me(this,"normalize",!1);Me(this,"aes",{width:"auto",lineWidth:1,fillColor:y9,lineColor:"none",opacity:1});this.normalize=t.normalize??!1,this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="stackedBar"&&t.normalize===this.normalize}},oK=class extends np{constructor(t){super();Me(this,"type","logo");Me(this,"normalize",!1);Me(this,"aes",{width:"auto",fillColor:y9,lineColor:"none",opacity:1});this.normalize=t.normalize??!1,this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="logo"&&t.normalize===this.normalize}},lK=class extends np{constructor(t){super();Me(this,"type","binnedDots");Me(this,"method");Me(this,"position");Me(this,"keyColumn");Me(this,"aes",{showOutliers:!0,width:"auto",lineWidth:1,fillColor:"none",lineColor:Wt,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)}},sK=class extends np{constructor(t){super();Me(this,"type","pairedPoints");Me(this,"linkColumn");Me(this,"aes",{showOutliers:!0,lineWidth:1,lineColor:Wt,lineShape:"solid",dotFill:Wt,dotSize:g2,dotShape:m2,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}},uK=class extends np{constructor(t){super();Me(this,"type","sina");Me(this,"aes",{showOutliers:!0,width:"auto",dotFill:y9,dotSize:g2,dotShape:m2,opacity:1});this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="sina"&&this.aes.showOutliers===t.aes.showOutliers}},j8=class extends np{constructor(t){var n,r,a;super();Me(this,"type","stat");Me(this,"statType");Me(this,"testMethod");Me(this,"paired");Me(this,"ns");Me(this,"format");Me(this,"referenceGroup",null);Me(this,"correctionMethod",null);Me(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])}},cK=class{constructor(e){Me(this,"id");Me(this,"type","discrete");Me(this,"y");Me(this,"keyColumn");Me(this,"primaryGrouping");Me(this,"secondaryGrouping");Me(this,"facetSettings");Me(this,"facetBy");Me(this,"chartSettings");Me(this,"layers");var t,n,r,a,i,o,s,c;Eyt.parse(e),this.id=Ir.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:((o=(i=e.primaryGrouping)==null?void 0:i.columnName)==null?void 0:o.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 qX(f);if(f.type==="violin")return new eK(f);if(f.type==="dot")return new tK(f);if(f.type==="line")return new nK(f);if(f.type==="errorbar")return new rK(f);if(f.type==="bar")return new aK(f);if(f.type==="stackedBar")return new iK(f);if(f.type==="stat")return new j8(f);if(f.type==="binnedDots")return new lK(f);if(f.type==="pairedPoints")return new sK(f);if(f.type==="sina")return new uK(f);if(f.type==="logo")return new oK(f);mA(f,"Unknown layer type")}).filter(Boolean)}};function fK(e,t=null,n=null){let r=(t==null?void 0:t.value)??null,a=r===null?["null"]:e.getColumnCategories(r);return Ir.intersection(n??a,a).map(String)}function dK(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 G8(e,t){if(!t)return{keys:["null"],value:null,label:"",valueLabels:{null:""},inheritedAes:null};let n=t.columnName.value,r=Ir.uniqBy(e.rows,c=>c[n]),a=c=>String(c[n]),i=c=>t.columnName.valueLabels?String(c[t.columnName.valueLabels]):a(c),o=r.map(a),s=(t.order??o).map(String);return{keys:Ir.intersection(s,o),value:n,label:t.columnName.label??n,valueLabels:r.reduce((c,f)=>(c[a(f)]=i(f),c),{}),inheritedAes:t.inheritedAes??null}}var b5t=class extends Pg{constructor(t,n){super(t,n);Me(this,"settings");Me(this,"chartRenderer",new C2t);Me(this,"calculatedData",null);this.settings=new cK(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 cK(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(),p3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,o;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)??"")!==(((o=n.secondaryGrouping)==null?void 0:o.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 o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{chartSettings:t,y:n,keyColumn:r,facetBy:a,layers:i,facetSettings:o}=this.settings,{yAxis:s}=t,c=this.data.rows.every(x=>{let k=x[n.value];return k===null||!(Number(k)<0)}),f=G8(this.data,this.settings.primaryGrouping),A=G8(this.data,this.settings.secondaryGrouping),h=a.map(x=>x.value)??null,m=a.length?dK(a.map(x=>{var k;return fK(this.data,x,(k=o==null?void 0:o.order)==null?void 0:k[x.value])})):[["null"]];this.data.setGrouping([...h,f.value,A.value]);let y=m.reduce((x,k)=>(x[k.join("_")]=f.keys.filter(_=>this.data.getRowsByGrouping([...k,_]).length>0),x),{}),E=i.filter(x=>!(x instanceof j8)).map(x=>{if(x instanceof qX)return S2t(x,m,f.keys,A.keys,this.data,n,r,s);if(x instanceof eK)return D2t(x,m,f.keys,A.keys,this.data,n,s);if(x instanceof tK)return V2t(x,m,f.keys,A.keys,this.data,n,s,r);if(x instanceof nK)return Q2t(x,m,f.keys,A.keys,this.data,n,s);if(x instanceof rK)return W2t(x,m,f.keys,A.keys,this.data,n,s);if(x instanceof aK)return K2t(x,m,f.keys,A.keys,this.data,n,s);if(x instanceof iK)return Z2t(x,m,f.keys,A.keys,this.data,n);if(x instanceof lK)return e5t(x,m,f.keys,A.keys,this.data,n,s);if(x instanceof sK)return n5t(x,m,f.keys,A.keys,this.data,n,s);if(x instanceof uK)return F2t(x,m,f.keys,A.keys,this.data,n,s);if(x instanceof oK)return g3t(x,m,f.keys,A.keys,this.data,n);throw new Error("Unknown layer type")}),b=i.filter(x=>x instanceof j8).map(x=>{if(f.value===null)throw new Error("Cannot calculate p-value without data grouping");return C5t(x,m,f.keys,n,this.data)});this.calculatedData={layersData:E,statsLayersData:b,primaryGrouping:f,secondaryGrouping:A,facetKeyLists:m,nonEmptyGroupsByFacets:y,onlyPositive:c}}_updateAesInData(){if(this.calculatedData===null)return;let{layers:t,facetBy:n,primaryGrouping:r,secondaryGrouping:a,facetSettings:i}=this.settings,o=t.filter(s=>!(s instanceof j8));for(let s=0;s<o.length;s++){let c=o[s];"aes"in c&&(this.calculatedData.layersData[s].aes=c.aes)}this.calculatedData.primaryGrouping=G8(this.data,r),this.calculatedData.secondaryGrouping=G8(this.data,a),this.calculatedData.facetKeyLists=n.length?dK(n.map(s=>{var c;return fK(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 E5t(e){let t=rR(e),n=tu(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function S5t(e){let t=tu(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 x5t(e,t){return e==="standardScaling"?E5t(t):e==="meanNormalization"?S5t(t):n=>n}function EP(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 B5t(e,t,n,r,a,i,o,s,c,f,A,h){let m=a.length?a.map(j=>e.getColumnCategories(j.value)):[["null"]],y=i.length?i.map(j=>e.getColumnCategories(j.value)):[["null"]],E=o.length?o.map(j=>e.getColumnCategories(j.value)):[["null"]],b=EP(m),x=EP(y),k=EP(E),_=b.map(j=>j.join("_")),D=x.map(j=>j.join("_")),O=k.map(j=>j.join("_")),H={meta:{facetKeys:_,xGroupKeys:D,yGroupKeys:O,xKeysByGroups:{},yKeysByGroups:{},xLabels:{},yLabels:{},xDataByKeys:{},yDataByKeys:{},facetKeyValues:_.reduce((j,re,se)=>(j[re]=b[se],j),{}),xGroupKeyValues:D.reduce((j,re,se)=>(j[re]=x[se],j),{}),yGroupKeyValues:O.reduce((j,re,se)=>(j[re]=k[se],j),{}),valueExtent:[1/0,-1/0]},facets:{}},V=t.valueLabels??t.value,z=n.valueLabels??n.value,q=s.filter(j=>j.axis==="x").map(j=>j.valueColumn.value),ee=s.filter(j=>j.axis==="y").map(j=>j.valueColumn.value),W=Object.values(c??{}).map(j=>j.value),U=Object.values(f??{}).map(j=>j.value),$=Ir.uniq([...q,...W,V]),G=Ir.uniq([...ee,...U,z]);if(e.rows.forEach(j=>{let re=a.length?a.map(fe=>j[fe.value]).join("_"):"null",se=i.length?i.map(fe=>j[fe.value]).join("_"):"null",Se=o.length?o.map(fe=>j[fe.value]).join("_"):"null",oe=j[t.value],Ce=j[n.value],Te=j[r.value]??h;if(!(oe===null||Ce===null||Te===null)){if(H.facets[re]||(H.facets[re]={xKeys:[],yKeys:[],xKeysByGroups:{},yKeysByGroups:{},cells:{}}),H.facets[re].xKeysByGroups[se]||(H.facets[re].xKeysByGroups[se]=[]),H.facets[re].yKeysByGroups[Se]||(H.facets[re].yKeysByGroups[Se]=[]),H.facets[re].xKeys.push(oe),H.facets[re].yKeys.push(Ce),H.facets[re].xKeysByGroups[se].push(oe),H.facets[re].yKeysByGroups[Se].push(Ce),H.facets[re].cells[oe]||(H.facets[re].cells[oe]={}),H.meta.valueExtent[0]=Math.min(Te,H.meta.valueExtent[0]),H.meta.valueExtent[1]=Math.max(Te,H.meta.valueExtent[1]),H.facets[re].cells[oe][Ce])throw Error(`More than 1 value for x=${oe}, y=${Ce}`);if(H.meta.xLabels[oe]&&String(j[V])!==H.meta.xLabels[oe])throw Error(`More than 1 x-label value for x=${oe}`);if(H.meta.yLabels[Ce]&&String(j[z])!==H.meta.yLabels[Ce])throw Error(`More than 1 y-label value for y=${Ce}`);H.meta.xLabels[oe]=String(j[V]),H.meta.yLabels[Ce]=String(j[z]),$.forEach(fe=>{let me=typeof H.meta.xDataByKeys[fe]<"u",Xe=me&&typeof H.meta.xDataByKeys[fe][oe]<"u";if(me||(H.meta.xDataByKeys[fe]={}),Xe&&H.meta.xDataByKeys[fe][oe]!==j[fe])throw Error(`More than 1 value for x = ${oe} and column = ${fe}`);Xe||(H.meta.xDataByKeys[fe][oe]=j[fe])}),G.forEach(fe=>{let me=typeof H.meta.yDataByKeys[fe]<"u",Xe=me&&typeof H.meta.yDataByKeys[fe][Ce]<"u";if(me||(H.meta.yDataByKeys[fe]={}),Xe&&H.meta.yDataByKeys[fe][Ce]!==j[fe])throw Error(`More than 1 value for y = ${Ce} and column = ${fe}`);Xe||(H.meta.yDataByKeys[fe][Ce]=j[fe])}),H.facets[re].cells[oe][Ce]={id:`${oe}_${Ce}`,x:oe,y:Ce,value:Te,normalizedValue:Te,data:j}}}),_.forEach(j=>{let re=H.facets[j];re.xKeys=Ir.uniq(re.xKeys),re.yKeys=Ir.uniq(re.yKeys),D.forEach(se=>{H.facets[j].xKeysByGroups[se]=Ir.uniq(H.facets[j].xKeysByGroups[se])}),O.forEach(se=>{H.facets[j].yKeysByGroups[se]=Ir.uniq(H.facets[j].yKeysByGroups[se])})}),A){let j=[1/0,-1/0];_.forEach(re=>{let{xKeys:se,yKeys:Se,cells:oe}=H.facets[re],Ce=A.direction==="row"?se:Se,Te=A.direction==="row"?Se:se,fe=A.direction==="row"?(me,Xe)=>{var Ne;return(Ne=oe[me])==null?void 0:Ne[Xe]}:(me,Xe)=>{var Ne;return(Ne=oe[Xe])==null?void 0:Ne[me]};Te.forEach(me=>{let Xe=[];Ce.forEach(Ge=>{var We;let Qe=(We=fe(Ge,me))==null?void 0:We.value;Qe!==void 0&&Xe.push(Qe)});let Ne=x5t(A.method,Xe);Ce.forEach(Ge=>{let Qe=fe(Ge,me);Qe!==void 0&&(Qe.normalizedValue=Ne(Qe.value),j[0]=Math.min(Qe.normalizedValue,j[0]),j[1]=Math.max(Qe.normalizedValue,j[1]))})})}),H.meta.valueExtent=j}return H.meta.xKeysByGroups=D.reduce((j,re)=>(j[re]=Ir.uniq(Ir.flatten(_.map(se=>H.facets[se].xKeysByGroups[re]))),j),{}),H.meta.yKeysByGroups=O.reduce((j,re)=>(j[re]=Ir.uniq(Ir.flatten(_.map(se=>H.facets[se].yKeysByGroups[re]))),j),{}),H.meta.valueExtent[0]===1/0&&(H.meta.valueExtent[0]=0),H.meta.valueExtent[1]===-1/0&&(H.meta.valueExtent[1]=0),H}function AK(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 pK(e,t){return Math.sqrt(AK(e,t))}var hK=(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},k5t=(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},T5t=(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 _5t(e){switch(e){case"average":return hK;case"complete":return k5t;case"single":return T5t;default:return hK}}function P5t(e){switch(e){case"euclidean":return pK;case"squaredEuclidean":return AK;default:return pK}}function vK(e=[],t,n="euclidean",r="average"){let a=P5t(n),i=_5t(r),o=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,A=0,h=0;for(let y=0;y<s.length;y++)for(let E=y+1;E<s.length;E++){let b=i(s[y].indexes,s[E].indexes,o);b<f&&(f=b,A=y,h=E)}let m={keys:[...s[A].keys,...s[h].keys],indexes:[...s[A].indexes,...s[h].indexes],height:f,children:[s[A],s[h]]};s.splice(Math.max(A,h),1),s.splice(Math.min(A,h),1),s.push(m)}return s[0]}function D5t(e,t,n,r){let{facetKeys:a,xGroupKeys:i,yGroupKeys:o}=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:[]},A=e.facets[c];if(t){let h=[],m=[];i.forEach(y=>{let E=A.xKeysByGroups[y],b=A.yKeys,x=vK(E,E.map(k=>b.map(_=>{var D;return((D=A.cells[k][_])==null?void 0:D.normalizedValue)??t.fillNA})),t.distance,t.linkage);e.facets[c].xKeysByGroups[y]=x.keys,m.push(...x.keys),h.push(x)}),e.facets[c].xKeys=m,f.hierarchyX=h.map(y=>pb(y))}if(n){let h=[],m=[];o.forEach(y=>{let E=A.yKeysByGroups[y],b=A.xKeys,x=vK(E,E.map(k=>b.map(_=>{var D;return((D=A.cells[_][k])==null?void 0:D.normalizedValue)??n.fillNA})),n.distance,n.linkage);e.facets[c].yKeysByGroups[y]=x.keys,m.push(...x.keys),h.push(x)}),e.facets[c].yKeys=m,f.hierarchyY=h.map(y=>pb(y))}s[c]=f}),s}function M5t(e,t,n,r,a,i,o,s,c,f,A,h,m,y){let E=h.length>1&&(!c||o.includes(t.groupingPosition)),b=!c||o.includes(t.position),x=A.length>1&&(!s||o.includes(e.groupingPosition)),k=!s||o.includes(e.position),_=f.length>1,D=r.filter(se=>o.includes(se.position)||!s&&["left","right"].includes(se.position)||!c&&["top","bottom"].includes(se.position)),O=D.filter(se=>se.position==="left").length,H=D.filter(se=>se.position==="right").length,V=D.filter(se=>se.position==="top").length,z=D.filter(se=>se.position==="bottom").length,q=e.showTicks?O8:0,ee=t.showTicks?O8:0,W=k&&e.showTitle?$v:0,U=b&&t.showTitle?$v:0,$=k&&e.showAxisLabels&&m>s2?n.xAxisCaptions+q+u2:0,G=b&&t.showAxisLabels&&y>s2?n.yAxisCaptions+ee+u2:0,j=x&&e.showGroupLabels?n.xGroupCaptions:0,re=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"?U:0,groups:t.groupingPosition==="left"?re:0,axis:t.position==="left"?G:0,annotations:O*Qd+(O&&c2)},right:{dendro:!(i!=null&&i.hidden)&&(i==null?void 0:i.position)==="right"?i.size:0,axisTitle:t.position==="right"?U:0,groups:t.groupingPosition==="right"?re:0,axis:t.position==="right"?G:0,annotations:H*Qd+(H&&c2)},top:{facetTitle:_?b3t: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"?j:0,axis:e.position==="top"?$:0,annotations:V*Qd+(V&&c2)},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"?j:0,axis:e.position==="bottom"?$:0,annotations:z*Qd+(z&&c2)}}}function H5t(e,t,n){return{left:s1.left.reduce((r,a,i)=>{let o=i>0?s1.left[i-1]:null,s=e.left[a];return r[a]={x:o?r[o].x-s:-s,y:0,width:s,height:n,isVisible:s>0},r},{}),right:s1.right.reduce((r,a,i)=>{let o=i>0?s1.right[i-1]:null,s=e.right[a];return r[a]={x:o?r[o].x+r[o].width:t,y:0,width:s,height:n,isVisible:s>0},r},{}),top:s1.top.reduce((r,a,i)=>{let o=i>0?s1.top[i-1]:null,s=e.top[a];return r[a]={x:0,y:o?r[o].y-s:-s,width:t,height:s,isVisible:s>0},r},{}),bottom:s1.bottom.reduce((r,a,i)=>{let o=i>0?s1.bottom[i-1]:null,s=e.bottom[a];return r[a]={x:0,y:o?r[o].y+r[o].height:n,width:t,height:s,isVisible:s>0},r},{})}}function SP(e,t,n){let r=(t-e)/n,a=Ir.range(e,t-r/2,r);return a.push(t),a}function mK(e,t){let n=SP(0,1,e.length-1),r=ei().domain(n).range(e),a=SP(0,1,t.length-1).map(i=>r(i));return Hl().domain(t).range(a).unknown("#ccc")}function I5t(e,t,n,r,a,i){let o=SP(0,1,e.length-1),s=ei().domain(o).range(e),c=[r,...o.filter(b=>b>r&&b<a),a],f=[a,...o.filter(b=>b>a&&b<i),i],A=(n-t)/2,h=c.map(b=>t+A*(b-r)/(a-r)),m=f.map(b=>(t+n)/2+A*(b-a)/(i-a)),y=c.map(b=>s(b)),E=f.map(b=>s(b));return ei().domain(h.concat(m.slice(1))).range(y.concat(E.slice(1)))}function R5t(e,t,n,r){let a=e.filter(A=>A.showTitle&&(t.includes(A.position)||!n&&["left","right"].includes(A.position)||!r&&["top","bottom"].includes(A.position))),i=a.filter(A=>A.titlePosition==="left").map(A=>A.valueColumn.label??A.valueColumn.value),o=a.filter(A=>A.titlePosition==="right").map(A=>A.valueColumn.label??A.valueColumn.value),s=a.filter(A=>A.titlePosition==="top").map(A=>A.valueColumn.label??A.valueColumn.value),c=a.filter(A=>A.titlePosition==="bottom").map(A=>A.valueColumn.label??A.valueColumn.value),f=new ou("bold 14px Arial");return{left:Math.max(...i.map(A=>f.getTextWidth(A))),right:Math.max(...o.map(A=>f.getTextWidth(A))),top:Math.max(...s.map(A=>f.getTextWidth(A))),bottom:Math.max(...c.map(A=>f.getTextWidth(A)))}}function L5t(e,t,n,r,a){let{facetKeys:i,xGroupKeys:o,yGroupKeys:s,xKeysByGroups:c,yKeysByGroups:f,xLabels:A,yLabels:h}=r.meta,m=e.xGroupLabels/180*Math.PI,y=e.yGroupLabels/180*Math.PI,E=e.xAxisLabels/180*Math.PI,b=e.yAxisLabels/180*Math.PI,x=0,k=0,_=e.xGroupLabels===45,D=e.xAxisLabels===45;if(_||D)if(!t.sharedX)i.forEach(V=>{let z=o.find(G=>r.facets[V].xKeysByGroups[G].length>0);if(!z)return;let q=r.facets[V].xKeysByGroups[z],ee=n.x[V],W=ee>s2,U=q.length*ee/2,$=A[q[0]];x=Math.max(x,(_?a.getTextWidth(z)*Math.cos(m):0)-U,(D&&W?a.getTextWidth($)*Math.cos(E):0)-ee/2)});else{let V=o[0],z=i[0];if(V){let q=c[V],ee=n.x[z],W=ee>s2,U=q.length*ee/2,$=A[q[0]];x=Math.max(x,(_?a.getTextWidth(V)*Math.cos(m):0)-U,(D&&W?a.getTextWidth($)*Math.cos(E):0)-ee/2)}}let O=e.yGroupLabels===45,H=e.yAxisLabels===45;if(O||H)if(!t.sharedY)i.forEach(V=>{let z=Ir.findLast(s,G=>r.facets[V].yKeysByGroups[G].length>0);if(!z)return;let q=r.facets[V].yKeysByGroups[z],ee=n.y[V],W=ee>s2,U=q.length*ee/2,$=h[q[q.length-1]];k=Math.max(k,(O?a.getTextWidth(z)*Math.cos(y):0)-U,(H&&W?a.getTextWidth($)*Math.cos(b):0)-ee/2)});else{let V=s[s.length-1],z=i[0];if(V){let q=f[V],ee=n.y[z],W=ee>s2,U=q.length*ee/2,$=h[q[q.length-1]];k=Math.max(k,(O?a.getTextWidth(V)*Math.cos(y):0)-U,(H&&W?a.getTextWidth($)*Math.cos(b):0)-ee/2)}}return{xCaptionTail:x,yCaptionTail:k}}function gK(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 N5t(e,t,n,r,a){if(e){let s=Qd/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,o=Qd/2;return{x:i,y:o,rotate:0,anchor:n==="right"?"start":"end"}}function Y8({data:e,scales:t,stepX:n,stepY:r,x:a,y:i,annotation:o,showTitle:s,width:c,height:f,colorScale:A,aes:h,frame:m,xGroupKeys:y,yGroupKeys:E,xKeysByGroups:b,yKeysByGroups:x,setSelectedAnnotation:k}){let{position:_,titlePosition:D,valueColumn:O}=o,H=_==="left"||_==="right",V=(H?t.y:t.x).domain(),z=N5t(H,_,D,c,f);return ie.jsxs("g",{transform:`translate(${a},${i})`,children:[V.map(q=>{let ee=e==null?void 0:e[q],W=A.type==="continuous"?A.scale(Number(ee)):A.scale(String(ee)),U=H?0:t.x(q),$=H?t.y(q):0,G=H?Qd:n,j=H?r:Qd;return ie.jsx("rect",{x:U,y:$,width:G,height:j,fill:W,stroke:h.cellStrokeColor,onMouseOver:()=>k({x:a+U+G,y:i+$+j/2,xKey:H?null:q,yKey:H?q:null,value:ee,title:O.label??O.value}),onMouseLeave:()=>k(null)},q)}),m.type==="groups"&&!H&&y.map(q=>{let ee=b[q].length;if(ee===0)return null;let W=ee*n,U=t.x(b[q][0]);return ie.jsx("rect",{x:U,width:W,height:Qd,stroke:Wt,fill:"none"},`${U}_${i}`)}),m.type==="groups"&&H&&E.map(q=>{let ee=x[q].length;if(ee===0)return null;let W=ee*r,U=t.y(x[q][0]);return ie.jsx("rect",{y:U,width:Qd,height:W,stroke:Wt,fill:"none"},`${a}_${U}`)}),s&&ie.jsx("g",{fontWeight:"500",fontSize:"14px",transform:`translate(${z.x},${z.y}) rotate(${z.rotate})`,children:ie.jsx("text",{textAnchor:z.anchor,dominantBaseline:"central",children:O.label??O.value})})]})}function W8(e,t){return e.showTitle&&t.includes(e.titlePosition)}function $5t({sideElementBBoxes:e,annotations:t,annotationColorScales:n,cellsMeta:r,chartEdgeSides:a,sharedX:i,sharedY:o,width:s,height:c,scales:f,stepX:A,stepY:h,aes:m,frame:y,xGroupKeys:E,yGroupKeys:b,xKeysByGroups:x,yKeysByGroups:k,setSelectedAnnotation:_}){let D=t.filter(U=>a.includes(U.position)||!i&&["left","right"].includes(U.position)||!o&&["top","bottom"].includes(U.position)),O=D.filter(U=>U.position==="left"),H=D.filter(U=>U.position==="right"),V=D.filter(U=>U.position==="top"),z=D.filter(U=>U.position==="bottom"),{xDataByKeys:q,yDataByKeys:ee}=r,W={scales:f,stepX:A,stepY:h,width:s,height:c,aes:m,frame:y,xGroupKeys:E,yGroupKeys:b,xKeysByGroups:x,yKeysByGroups:k,setSelectedAnnotation:_};return ie.jsxs("g",{children:[O.map((U,$)=>ie.jsx(Y8,{annotation:U,colorScale:n[U.id],data:ee[U.valueColumn.value],showTitle:W8(U,a),x:e.left.annotations.x+$*Qd,y:e.left.annotations.y,...W},U.id)),H.map((U,$)=>ie.jsx(Y8,{annotation:U,colorScale:n[U.id],data:ee[U.valueColumn.value],showTitle:W8(U,a),x:e.right.annotations.x+$*Qd+c2,y:e.right.annotations.y,...W},U.id)),V.map((U,$)=>ie.jsx(Y8,{annotation:U,colorScale:n[U.id],data:q[U.valueColumn.value],showTitle:W8(U,a),x:e.top.annotations.x,y:e.top.annotations.y+$*Qd,...W},U.id)),z.map((U,$)=>ie.jsx(Y8,{annotation:U,colorScale:n[U.id],data:q[U.valueColumn.value],showTitle:W8(U,a),x:e.bottom.annotations.x,y:e.bottom.annotations.y+$*Qd+c2,...W},U.id))]})}function F5t({sideElementBBoxes:e,xGroupKeys:t,yGroupKeys:n,xKeysByGroups:r,yKeysByGroups:a,xGroupKeyValues:i,yGroupKeyValues:o,scales:s,stepX:c,stepY:f,xAxis:A,yAxis:h,labelAngles:m,debug:y}){let E=e.top.groups.isVisible||e.bottom.groups.isVisible,b=e.top.groups.isVisible?e.top.groups:e.bottom.groups,x=e.left.groups.isVisible||e.right.groups.isVisible,k=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(_=>{let D=r[_].length;if(D===0)return null;let O=m.xGroupLabels!==0,H=A.groupingPosition==="top",V=D*c,z=s.x(r[_][0])+V/2,q=O?H?b.height:0:b.height/2,ee=-m.xGroupLabels,W=O?H?"start":"end":"middle";return ie.jsxs("g",{transform:`translate(${z},${q})`,children:[ie.jsx("text",{transform:`rotate(${ee})`,dominantBaseline:"central",textAnchor:W,children:i[_].join(", ")}),y&&ie.jsx("rect",{x:-V/2,width:V,height:b.height,stroke:"black",fill:"none"})]},_)})}),x&&ie.jsx("g",{transform:`translate(${k.x},${k.y})`,children:n.map(_=>{let D=a[_].length;if(D===0)return null;let O=D*f,H=h.groupingPosition==="left",V=H?k.width:0,z=s.y(a[_][0])+O/2,q=m.yGroupLabels!==0,ee=m.yGroupLabels===45?-45:(H?-1:1)*(90-m.yGroupLabels),W=q?H?"end":"start":"middle";return ie.jsxs("g",{transform:`translate(${V},${z})`,children:[ie.jsx("text",{y:q?0:-k.width/2,transform:`rotate(${ee})`,dominantBaseline:"central",textAnchor:W,children:o[_].join(", ")}),y&&ie.jsx("rect",{x:-k.width/2,y:-O/2,width:k.width,height:O,stroke:"black",fill:"none"})]},_)})})]})}function V5t({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:f,xLabels:A,yLabels:h}){let m=i.showTicks?O8:0,y=o.showTicks?O8:0,E=e.top.axis.isVisible||e.bottom.axis.isVisible,b=e.top.axisTitle.isVisible?e.top.axisTitle:e.bottom.axisTitle,x=e.top.axis.isVisible?e.top.axis:e.bottom.axis,k=e.left.axis.isVisible||e.right.axis.isVisible,_=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,D=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:Wt,fill:"none"})]}),E&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${x.x},${x.y})`,children:[n.map(O=>{let H=f.xAxisLabels!==0,V=i.position==="bottom",z=V?0:x.height,q=V?z+m:z-m,ee=V?q+u2:q-u2,W=a.x(O)+s/2,U=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:W,x2:W,y1:z,y2:q,stroke:Wt}),ie.jsx("text",{x:W,y:ee,textAnchor:H?V?"end":"start":"middle",transform:`rotate(${U},${W},${ee})`,dominantBaseline:H?"central":V?"hanging":"auto",children:A[O]})]},O)}),t&&ie.jsx("rect",{width:x.width,height:x.height,stroke:Wt,fill:"none"})]})]}),ie.jsxs("g",{children:[_.isVisible&&ie.jsx("g",{transform:`translate(
|
|
15180
15180
|
${_.x+_.width/2},
|
|
15181
|
-
${_.y+_.height/2})`,children:ie.jsx("text",{transform:`rotate(${o.position==="left"?-90:90})`,dominantBaseline:"central",textAnchor:"middle",children:o.title})}),t&&ie.jsx("rect",{x:_.x,y:_.y,width:_.width,height:_.height,stroke:Wt,fill:"none"}),k&&ie.jsx("g",{fontSize:"14px",transform:`translate(${D.x},${D.y})`,children:r.map(O=>{let H=f.yAxisLabels!==0,V=o.position==="left",z=-(90-f.yAxisLabels),q=f.yAxisLabels===0?"middle":V?"end":"start",ee=H?"central":V?"auto":"hanging",W=V?D.width:0,U=V?W-y:W+y,$=V?U-u2:U+u2,G=a.y(O)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:W,x2:U,y1:G,y2:G,stroke:Wt}),ie.jsx("text",{x:$,y:G,textAnchor:q,transform:`rotate(${z},${$},${G})`,dominantBaseline:ee,children:h[O]})]},O)})}),t&&ie.jsx("rect",{x:D.x,y:D.y,height:D.height,width:D.width,stroke:Wt,fill:"none"})]})]})}function O5t({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:h,yKeysByGroups:m,xGroupKeyValues:y,yGroupKeyValues:E,labelAngles:b,xLabels:x,yLabels:k}){return ie.jsxs("g",{fontWeight:"500",children:[ie.jsx(V5t,{sideElementBBoxes:e,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:b,xLabels:x,yLabels:k,debug:t}),ie.jsx(F5t,{sideElementBBoxes:e,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:h,yKeysByGroups:m,xGroupKeyValues:y,yGroupKeyValues:E,scales:a,stepX:s,stepY:c,xAxis:i,yAxis:o,labelAngles:b,debug:t})]})}function yK(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 wK(e,t,n,r,a){if(!n)return"";let i=n.aes[e];if(!d9(i))return i;let o=i.value,s=a[o],c=r[o][t.data.keys[0]];return t.data.keys.every(f=>c===r[o][f])?s(String(c))[e]:s.unknown()[e]}var CK={x:0,y:0,width:0,height:0};function Q5t({dendrograms:e,sideElementBBoxes:t,xDataByKeys:n,yDataByKeys:r,aesScales:a}){let i=e.x.data,o=e.y.data,s=i?t[i.position].dendro:CK,c=o?t[o.position].dendro:CK;function f(h,m){return wK(h,m,i,n,a)}function A(h,m){return wK(h,m,o,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 y=h.links(),E=h.descendants();return ie.jsxs("g",{children:[y.map(b=>{let x=i.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:yK(b,i.position),stroke:f("lineColor",x),strokeWidth:f("lineWidth",x),strokeDasharray:tp(f("lineShape",x)),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:df(f("dotShape",b),f("dotSize",b),f("dotFill",b))},`${b.x},${b.y}`))]},m)})}),ie.jsx("g",{transform:`translate(${c.x},${c.y})`,children:o&&!o.hidden&&e.y.trees.map((h,m)=>{let y=h.links(),E=h.descendants();return ie.jsxs("g",{children:[y.map(b=>{let x=o.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:yK(b,o.position),stroke:A("lineColor",x),strokeWidth:A("lineWidth",x),strokeDasharray:tp(A("lineShape",x)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),o.showNodes&&E.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:df(A("dotShape",b),A("dotSize",b),A("dotFill",b))},`${b.x},${b.y}`))]},m)})})]})}function z5t({frame:e,width:t,height:n,xGroupKeys:r,yGroupKeys:a,xKeysByGroups:i,yKeysByGroups:o,scales:s,stepX:c,stepY:f}){return ie.jsxs("g",{children:[e.type==="full"&&ie.jsx("rect",{fill:"none",stroke:Wt,x:"0",y:"0",width:t,height:n}),e.type==="groups"&&r.map(A=>{let h=i[A].length;if(h===0)return null;let m=h*c,y=s.x(i[A][0]);return a.map(E=>{let b=o[E].length;if(b===0)return null;let x=b*f,k=s.y(o[E][0]);return ie.jsx("rect",{x:y,y:k,width:m,height:x,stroke:Wt,fill:"none"},`${y}_${k}`)})})]})}function xP(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 U5t(e,t,n=[]){let r=e.data,a=[`X: ${t.xLabels[e.x]}`,`Y: ${t.yLabels[e.y]}`,`Value: ${xP(e.value)}${e.value!==e.normalizedValue?` (${xP(e.normalizedValue)})`:""}`];for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function j5t(e){let t=[];return e.xKey&&t.push(`X: ${e.xKey}`),e.yKey&&t.push(`Y: ${e.yKey}`),t.push(`${e.title}: ${xP(e.value)}`),t}function G5t({dendrograms:e,facetKey:t,dimensions:n,scales:r,cells:a,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,colorScale:f,chartSettings:A,cellsMeta:h,stepX:m,stepY:y,sharedX:E,sharedY:b,annotations:x,annotationColorScales:k,dendrogramAesScales:_,aes:D,labelAngles:O,chartSizes:H,margins:V,tooltipsContainer:z}){let[q,ee]=nr.useState(null),[W,U]=nr.useState(null),{xAxis:$,yAxis:G,tooltips:j}=A,{width:re,height:se}=n.inner,{padding:Se,chartEdgeSides:oe,sideElementBBoxes:Ce}=n,{xGroupKeyValues:Te,yGroupKeyValues:fe,xLabels:me,yLabels:Xe}=h,Ne=r.x.domain(),Ge=r.y.domain(),Qe={left:V.left+n.left+Se.left,right:H.totalWidth-(V.left+n.left+Se.left),top:V.top+n.top+Se.top,bottom:H.totalHeight-(V.top+n.top+Se.top)},We=!1;return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:S3t,children:[ie.jsxs("g",{transform:`translate(${Se.left},${Se.top})`,children:[ie.jsx($5t,{sideElementBBoxes:Ce,annotations:x,cellsMeta:h,annotationColorScales:k,sharedX:E,sharedY:b,chartEdgeSides:oe,width:re,height:se,scales:r,stepX:m,stepY:y,aes:D,frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,setSelectedAnnotation:U}),ie.jsx(Q5t,{dendrograms:e,sideElementBBoxes:Ce,xDataByKeys:h.xDataByKeys,yDataByKeys:h.yDataByKeys,aesScales:_}),Ce.top.facetTitle.isVisible&&ie.jsx("text",{x:Ce.top.facetTitle.x,y:Ce.top.facetTitle.y+Ce.top.facetTitle.height-E3t,fontWeight:"500",fontSize:"20px",children:h.facetKeyValues[t].join(", ")}),We,Ne.map(dt=>Ge.map(je=>{var He;let rt=(He=a==null?void 0:a[dt])==null?void 0:He[je];return rt?ie.jsx("rect",{x:r.x(dt),y:r.y(je),width:m,height:y,stroke:D.cellStrokeColor,fill:rt.value===null?D.emptyCellColor:f(rt.normalizedValue),onMouseOver:()=>ee(rt),onMouseLeave:()=>ee(null)},rt?rt.id:`${dt}_${je}`):null})),ie.jsx(z5t,{frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,scales:r,stepX:m,stepY:y,width:re,height:se}),ie.jsx(O5t,{xAxis:$,yAxis:G,scales:r,stepX:m,stepY:y,debug:We,sideElementBBoxes:Ce,xKeys:Ne,yKeys:Ge,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,xGroupKeyValues:Te,yGroupKeyValues:fe,labelAngles:O,xLabels:me,yLabels:Xe})]}),A.tooltips.show&&q&&ie.jsx(Mc,{content:U5t(q,h,j==null?void 0:j.content),x:r.x(String(q.x))+m/2,y:r.y(String(q.y))+y/2,offset:Ne.length>1?m/2:0,active:!0,sideDistances:Qe,container:z}),A.tooltips.show&&W&&ie.jsx(Mc,{content:j5t(W),x:W.x,y:W.y,offset:0,active:!0,sideDistances:Qe,container:z})]})}var bK=14,X8=12,EK=-12;function Y5t({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(o=>{let s=i.scale.domain(),c=s[s.length-1]-s[0],f=c>0?100-(o-s[0])/c*100:0;return ie.jsx("stop",{offset:`${f}%`,stopColor:i.scale(o)},o)})},i.id))}),n.map(i=>ie.jsxs("g",{transform:`translate(${i.left},${i.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:EK,children:i.title}),ie.jsx("rect",{x:"0",y:"0",width:bK,height:t,stroke:Wt,fill:`url(#${i.id})`}),ie.jsx("g",{transform:`translate(${bK},0)`,children:i.values.map(o=>{let s=i.scale.domain(),c=s[s.length-1]-s[0],f=c>0?t-t*(o-s[0])/c:0;return ie.jsxs("g",{transform:`translate(0,${f})`,children:[ie.jsx("line",{x1:"0",x2:-4,stroke:Wt}),ie.jsx("text",{x:8,y:4,children:o})]},o)})}),a]},i.id)),r.map(i=>ie.jsxs("g",{transform:`translate(${i.left},${i.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:EK,children:i.title}),i.values.map((o,s)=>ie.jsxs("g",{transform:`translate(0, ${s*(X8+4)})`,children:[ie.jsx("rect",{x:"0",y:"0",width:X8,height:X8,fill:i.scale(o),rx:"1",ry:"1",stroke:Wt}),ie.jsx("text",{x:X8+8,y:10,children:o})]},o)),a]},i.id))]})}function W5t({margins:e,captionsSizes:t,settingsId:n,chartSettings:r,chartSizes:a,chartsDimensions:i,facetKeys:o,facetSettings:s,xGroupKeys:c,yGroupKeys:f,scales:A,colorScale:h,groupedCells:m,cellsMeta:y,step:E,annotations:b,annotationColorScales:x,legend:k,aes:_,dendrograms:D,dendrogramAesScales:O,columnsCount:H,labelAngles:V}){let[z,q]=nr.useState(),ee=nr.useRef(null);nr.useEffect(()=>{ee.current&&q(ee.current)},[]);let W=i[o[0]].padding,U=i[o[H-1]].padding,$=e.left+a.chartsWidth+Q8,G=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:Hg}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(p2,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:W.left,rightPadding:U.right,chartsWidth:a.chartsWidth}),o.map(j=>{let{cells:re,xKeysByGroups:se,yKeysByGroups:Se}=m[j];return ie.jsx(G5t,{dendrograms:D[j],captionsSizes:t,facetKey:j,dimensions:i[j],xGroupKeys:c,yGroupKeys:f,xKeysByGroups:s.sharedX?y.xKeysByGroups:se,yKeysByGroups:s.sharedY?y.yKeysByGroups:Se,sharedX:s.sharedX,sharedY:s.sharedY,scales:{x:A.x[j],y:A.y[j]},cells:re,cellsMeta:y,stepX:E.x[j],stepY:E.y[j],colorScale:h,chartSettings:r,aes:_,annotations:b,annotationColorScales:x,dendrogramAesScales:O,labelAngles:V,margins:e,chartSizes:a,tooltipsContainer:z},j)})]}),ie.jsx("g",{transform:`translate(${$},${G})`,children:ie.jsx(Y5t,{data:k,height:a.chartHeight})}),ie.jsx("g",{ref:ee})]})})}function SK(e,t,n){function r(a){a[n]=t(a.data.height),a.children&&a.children.forEach(r)}r(e)}function xK(e,t,n,r=n){function a(i){i[r]=i[n]+t,i.children&&i.children.forEach(a)}a(e)}var X5t=(e,t)=>{let n=Math.min(...t),r=Math.max(...t);if(n===r){let o=e%2===0?[]:[n];for(let s=1;s<e/2+1;s++)o.push(n+s),o.unshift(n-s);return o}if(e<2)return[n,r];let a=(r-n)/(e-1),i=[];for(let o=0;o<e-1;o++)i.push(n+a*o);return i.push(r),i};function BK(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])),X5t(t,r)}var K5t=class{constructor(){Me(this,"reactRoot",null);Me(this,"parentNode",null);Me(this,"rootNode",null);Me(this,"component",ie.jsx(ie.Fragment,{}));Me(this,"chartsDimensions",{});Me(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Me(this,"margins",{top:Ig,bottom:Ig,left:Ig,right:Ig});Me(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xGroupCaptions:$v,yGroupCaptions:$v,xCaptionTail:0,yCaptionTail:0});Me(this,"labelAngles",{xAxisLabels:0,yAxisLabels:0,xGroupLabels:0,yGroupLabels:0});Me(this,"columnsCount",1);Me(this,"rowsCount",1);Me(this,"scales",{x:{null:Hl().domain(["null"]).range([1])},y:{null:Hl().domain(["null"]).range([1])}});Me(this,"step",{x:{},y:{}});Me(this,"colorScale",ei().domain([0,1]).range(["white","black"]));Me(this,"annotationColorScales",{});Me(this,"dendrogramAesScales",{});Me(this,"legend",{width:0,height:0,discreteItems:[],continuousItems:[]});Me(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=Oh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Ig,bottom:Ig,left:Ig,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,o=48,s=24,c=[],f=[],A=0,h=0,m=0,y=this.chartSizes.chartsHeight,E=this.chartSizes.chartsHeight;if(e==="continuous"){let k=this.colorScale,_=i2(k,a),D=r.label??r.value;c.push({id:"heatmapValue",width:o2(_,D),height:this.chartSizes.chartHeight,left:0,top:0,scale:k,values:_,title:D}),m=0,h=c[0].width,A+=h+s}else if(e==="discrete"){let k=this.colorScale,_=r.label??r.value,D=dP(k,_),O=k.domain(),H=O.length*i;if(m+H>E)y=Math.max(y,H),m=H+o,A+=h+s,h=D,f.push({id:"heatmapValue",width:D,height:H,left:A,top:0,title:_,scale:k,values:O});else{D>h&&(h=D);let V=m;f.push({id:"heatmapValue",width:D,height:H,left:A,top:V,title:_,scale:k,values:O}),m+=H+o}}n.filter(k=>k.type==="continuous").forEach(k=>{let _=this.chartSizes.chartHeight,D=this.annotationColorScales[k.id].scale,O=i2(D,a),H=k.valueColumn.label??k.valueColumn.value,V=o2(O,H),z=A;c.push({id:k.id,width:V,height:_,left:z,top:0,title:H,scale:D,values:O}),A+=V+s,m=0}),n.filter(k=>k.type==="discrete").forEach(k=>{let _=this.annotationColorScales[k.id].scale,D=k.valueColumn.label??k.valueColumn.value,O=dP(_,D),H=_.domain(),V=H.length*i;if(m+V>E)y=Math.max(y,V),A+=h+s,h=O,m=V+o,f.push({id:k.id,width:O,height:V,left:A,top:0,title:D,scale:_,values:H});else{O>h&&(h=O);let z=m;f.push({id:k.id,width:O,height:V,left:A,top:z,title:D,scale:_,values:H}),m+=V+o}});let b=A+h+2*Q8,x=y;this.legend={width:b,height:x,continuousItems:c,discreteItems:f}}updateCaptionsSize(e,t,n,r){let a=new ou("bold 14px Arial"),{xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,xLabels:f,yLabels:A}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle,xGroupLabels:t.groupLabelsAngle,yGroupLabels:n.groupLabelsAngle};let h=Ir.flatten(Object.values(s)),m=Ir.flatten(Object.values(c)),y=h.map(z=>a.getTextWidth(f[z])),E=m.map(z=>a.getTextWidth(A[z])),b=i.map(z=>a.getTextWidth(z)),x=o.map(z=>a.getTextWidth(z)),{xCaptionTail:k,yCaptionTail:_}=L5t(this.labelAngles,r,this.step,e,a),D=this.labelAngles.xGroupLabels/180*Math.PI,O=this.labelAngles.yGroupLabels/180*Math.PI,H=this.labelAngles.xAxisLabels/180*Math.PI,V=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:k,yCaptionTail:_,xGroupCaptions:Math.max(...b,0)*Math.sin(D)||$v,yGroupCaptions:Math.max(...x,0)*Math.sin(O)||$v,xAxisCaptions:Math.max(...y,0)*Math.sin(H)||$v,yAxisCaptions:Math.max(...E,0)*Math.sin(V)||$v}}updateChartDimensions(e,t,n,r,a,i,o,s,c,f){let A=t.length,h=Math.min(a.nRows??A,A),m=Math.min(a.nCols??A,A);this.columnsCount=a.nRows?Math.ceil(A/h):m,this.rowsCount=Math.ceil(A/this.columnsCount);let{width:y,height:E}=e,{sharedX:b,sharedY:x}=a;this.chartsDimensions={};let k=0,_=0;t.forEach((H,V)=>{let z=V%this.columnsCount+1,q=gK(V,t.length,this.columnsCount,this.rowsCount),ee=this.step.x[H],W=this.step.y[H],U=M5t(i,o,this.captionsSizes,s,c,f,q,b,x,t,n,r,ee,W),$=R5t(s,q,b,x);function G(oe){return Math.max(s1[oe].reduce((Ce,Te)=>Ce+U[oe][Te],0),$[oe],C3t)}let j={left:G("left"),right:G("right"),top:G("top"),bottom:G("bottom")};j.left<this.captionsSizes.xCaptionTail&&(j.left=this.captionsSizes.xCaptionTail),j.bottom<this.captionsSizes.yCaptionTail&&(j.bottom=this.captionsSizes.yCaptionTail);let re=H5t(U,y,E),se=y+j.left+j.right,Se=E+j.top+j.bottom;this.chartsDimensions[H]={left:k,top:_,inner:{width:y,height:E},outer:{width:se,height:Se},padding:j,sideElementBBoxes:re,chartEdgeSides:q},k+=se,z===this.columnsCount&&(k=0,_+=Se)});let D=t.slice(0,this.columnsCount).reduce((H,V)=>H+this.chartsDimensions[V].outer.width,0),O=t.filter((H,V)=>V%this.columnsCount===0).reduce((H,V)=>H+this.chartsDimensions[V].outer.height,0);this.chartSizes.chartsWidth=D,this.chartSizes.chartsHeight=O}updateChartsSizes(e){let{width:t,height:n}=e;this.chartSizes.chartWidth=t,this.chartSizes.chartHeight=n}updateScales(e,t,n,r,a,i,o,s,c){let{width:f,height:A}=a,{meta:h,facets:m}=t,{sharedX:y,sharedY:E}=r,b=(k,_={})=>[...k].sort((D,O)=>i.sorting==="asc"?(_[D]??D).localeCompare(_[O]??O,"en",{numeric:!0}):(_[O]??O).localeCompare(_[D]??D,"en",{numeric:!0})),x=(k,_={})=>[...k].sort((D,O)=>o.sorting==="asc"?(_[D]??D).localeCompare(_[O]??O,"en",{numeric:!0}):(_[O]??O).localeCompare(_[D]??D,"en",{numeric:!0}));e.forEach(k=>{let _=m[k],D=b(h.xGroupKeys),O=x(h.yGroupKeys),{xKeysByGroups:H}=y?h:_,{yKeysByGroups:V}=E?h:_,z=D.map(Ce=>H[Ce].length),q=O.map(Ce=>V[Ce].length),ee=z.reduce((Ce,Te)=>Ce+Te,0),W=q.reduce((Ce,Te)=>Ce+Te,0),U=(f-(z.filter(Ce=>Ce>0).length-1)*n)/ee,$=(A-(q.filter(Ce=>Ce>0).length-1)*n)/W,G=[],j=[],re=0;D.forEach(Ce=>{let Te=s?H[Ce]:b(H[Ce],h.xLabels);j.push(...Te),Te.forEach(()=>{G.push(re),re+=U}),Te.length>0&&(re+=n)});let se=[],Se=[],oe=0;O.forEach(Ce=>{let Te=c?V[Ce]:x(V[Ce],h.yLabels);Se.push(...Te),Te.forEach(()=>{se.push(oe),oe+=$}),Te.length>0&&(oe+=n)}),this.scales.x[k]=Hl().domain(j).range(G),this.scales.y[k]=Hl().domain(Se).range(se),this.step.x[k]=U,this.step.y[k]=$})}updateAesScale(e,t,n,r,a,i,o){if(e==="continuous")n.valueColors?this.colorScale=ei().domain(n.valuesByColors??BK(o,n.valueColors.length,t)).range(n.valueColors):n.colorsList&&(this.colorScale=ei().domain(BK(o,n.colorsList.length,t)).range(n.colorsList));else if(n.colorsMap){let f=Object.entries(n.colorsMap);this.colorScale=Hl().domain(f.map(A=>A[0])).range(f.map(A=>A[1])).unknown("#ccc")}else n.colorsList&&(this.colorScale=mK(n.colorsList,i.map(String)));let{xDataByKeys:s,yDataByKeys:c}=a.meta;r.forEach(f=>{let{colors:A,type:h,axis:m,valueColumn:y}=f,E=(m==="x"?s:c)[y.value];if(h==="discrete"){let b=Ir.uniq(Object.values(E).map(String)).sort();this.annotationColorScales[f.id]={type:"discrete",scale:mK(A,b)}}else{let b=Object.values(E).map(Number);if(!b.length)return;let[x=b[0],k=b[0]]=$A(b);this.annotationColorScales[f.id]={type:"continuous",scale:I5t(A,x,k,0,.5,1)}}})}updateDendrogram(e,t,n,r,a,i,o){e.forEach(s=>{this.dendrograms[s]={x:{trees:[],data:i},y:{trees:[],data:o}};let{xKeysByGroups:c,yKeysByGroups:f}=r[s],{hierarchyX:A,hierarchyY:h}=a[s],m=Math.max(...A.map(E=>E.data.height)),y=Math.max(...h.map(E=>E.data.height));i&&(this.dendrograms[s].x.trees=A.map((E,b)=>{let x=t[b],k=c[x];vB().separation(()=>1).size([k.length*this.step.x[s],i.size])(E);let _=E,D=ei().domain(i.position==="top"?[0,m]:[m,0]).range([i.size,0]);return SK(_,D,"y"),xK(_,this.scales.x[s](k[0]),"x"),_}),this.dendrograms[s].x.data=i),o&&(this.dendrograms[s].y.trees=h.map((E,b)=>{let x=n[b],k=f[x];vB().separation(()=>1).size([k.length*this.step.y[s],o.size])(E);let _=E,D=ei().domain(o.position==="left"?[0,y]:[y,0]).range([o.size,0]);return xK(_,this.scales.y[s](k[0]),"x","y"),SK(_,D,"x"),_}),this.dendrograms[s].y.data=o)})}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]=Hl().domain(i).range(i.map(o=>({...HX,...a[o]}))).unknown(HX),n},{})}render(e,t,n,r,a,i,o,s,c,f,A,h,m){var ee;let{meta:y,facets:E}=a,{facetKeys:b,xGroupKeys:x,yGroupKeys:k,valueExtent:_}=y,{xAxis:D,yAxis:O,title:H,size:V,valueType:z}=t;this.updateChartsSizes(V),this.updateAesScale(z,_,r,i,a,h,m),this.updateScales(b,a,r.groupGap,n,V,t.xAxis,t.yAxis,s,c),this.updateCaptionsSize(a,D,O,n),this.updateChartDimensions(V,b,x,k,n,D,O,i,s,c),this.updateLegendSize(z,t.legend,i,o,_),this.updateMargins(H),this.updateDendrogram(b,x,k,E,f,s,c),this.updateDendrogramAesScales(A);let q=ie.jsx(W5t,{aes:r,annotations:i,annotationColorScales:this.annotationColorScales,captionsSizes:this.captionsSizes,cellsMeta:y,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:x,yGroupKeys:k});this.component=q,(ee=this.reactRoot)==null||ee.render(q)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},Z5t=K5t,BP={lineColor:Wt,dotShape:"21",dotFill:Wt,dotSize:3,lineShape:"solid",lineWidth:1},kK={size:150,distance:"euclidean",linkage:"average",fillNA:0,showNodes:!0,hidden:!1,edgeInheritance:"up",aes:BP},TK=class{constructor(e){Me(this,"id");Me(this,"type","heatmap");Me(this,"facetSettings");Me(this,"xColumn");Me(this,"xGroupBy");Me(this,"yColumn");Me(this,"yGroupBy");Me(this,"valueColumn");Me(this,"facetBy");Me(this,"normalization");Me(this,"chartSettings");Me(this,"aes");Me(this,"annotations");Me(this,"dendrogramX");Me(this,"dendrogramY");Me(this,"inheritedDendrogramAes");Me(this,"NAValueAs");var t,n,r,a,i,o,s,c,f,A,h,m,y;if(Iyt.parse(e),this.id=Ir.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,sorting:"asc",...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,sorting:"asc",...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:((o=e.aes)==null?void 0:o.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:((A=e.aes)==null?void 0:A.groupGap)??3,emptyCellColor:((h=e.aes)==null?void 0:h.emptyCellColor)??"white"},this.annotations=(e.annotations??[]).map(E=>E.axis==="x"?{id:Ir.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:Ir.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?{...kK,position:"top",...e.dendrogramX,aes:{...BP,...(m=e.dendrogramX)==null?void 0:m.aes}}:null,this.dendrogramY=e.dendrogramY?{...kK,position:"left",...e.dendrogramY,aes:{...BP,...(y=e.dendrogramY)==null?void 0:y.aes}}:null,this.inheritedDendrogramAes=e.inheritedDendrogramAes??null}},J5t=class extends Pg{constructor(t,n){super(t,n);Me(this,"settings");Me(this,"chartRenderer",new Z5t);Me(this,"calculatedData",null);this.settings=new TK(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 TK(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(),p3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var H,V,z,q,ee,W,U,$,G,j,re,se;let{xColumn:r,yColumn:a,valueColumn:i,xGroupBy:o,yGroupBy:s,facetBy:c,annotations:f,chartSettings:A,facetSettings:h,dendrogramX:m,dendrogramY:y,normalization:E,NAValueAs:b}=n,x=Object.values(((H=t.dendrogramX)==null?void 0:H.aes)||{}).filter(d9),k=Object.values((m==null?void 0:m.aes)||{}).filter(d9),_=Object.values(((V=t.dendrogramY)==null?void 0:V.aes)||{}).filter(d9),D=Object.values((y==null?void 0:y.aes)||{}).filter(d9);function O(Se,oe){return Se.length!==oe.length||Se.some((Ce,Te)=>Ce.value!==oe[Te].value)}return t.xColumn.value!==r.value||t.yColumn.value!==a.value||t.valueColumn.value!==i.value||O(t.xGroupBy,o)||O(t.yGroupBy,s)||O(t.facetBy,c)||O(t.annotations.map(Se=>Se.valueColumn),f.map(Se=>Se.valueColumn))||O(x,k)||O(_,D)||(n.dendrogramX||t.dendrogramX)&&(((z=t.dendrogramX)==null?void 0:z.distance)!==((q=n.dendrogramX)==null?void 0:q.distance)||((ee=t.dendrogramX)==null?void 0:ee.linkage)!==((W=n.dendrogramX)==null?void 0:W.linkage))||(n.dendrogramY||t.dendrogramY)&&(((U=t.dendrogramY)==null?void 0:U.distance)!==(($=n.dendrogramY)==null?void 0:$.distance)||((G=t.dendrogramY)==null?void 0:G.linkage)!==((j=n.dendrogramY)==null?void 0:j.linkage))||t.chartSettings.valueType!==A.valueType||t.facetSettings.sharedX!==h.sharedX||t.facetSettings.sharedY!==h.sharedY||((re=t.normalization)==null?void 0:re.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 o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{xColumn:t,yColumn:n,valueColumn:r,xGroupBy:a,yGroupBy:i,facetBy:o,chartSettings:s,facetSettings:c,annotations:f,dendrogramX:A,dendrogramY:h,normalization:m,NAValueAs:y}=this.settings,E=B5t(this.data,t,n,r,o,a,i,f,A,h,m,y),b=D5t(E,A,h,c),x=s.valueType==="discrete"?this.data.getColumnCategories(r.value):[];this.calculatedData={groupedCellsData:E,dendrogramsData:b,cellUniqValues:x}}_updateAesInData(){}_updateChart(){if(!this.calculatedData)return;let{id:t,valueColumn:n,chartSettings:r,facetSettings:a,aes:i,annotations:o,dendrogramX:s,dendrogramY:c,inheritedDendrogramAes:f,normalization:A}=this.settings;this.chartRenderer.render(t,r,a,i,this.calculatedData.groupedCellsData,o,n,s,c,this.calculatedData.dendrogramsData,f,this.calculatedData.cellUniqValues,A)}},_K=(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 o=1;o<e;o++)i.push(n+a*o);return i};function q5t(e,t,n){let[r=0,a=0]=$A(e,s=>s[t.value]),i=_K(n,[r,a]),o=lR().thresholds(i).value(s=>s[t.value])(e);return{bins:o,minX:o[0].x0??0,maxX:o[o.length-1].x1??0,maxCount:Dh(o,s=>s.length)??0}}function e7t(e,t,n){let[r=0,a=0]=$A(e,A=>A[t.value]),i=[r,a],o=_K(n,[r,a]),s=Lm().domain(i).range(i),c=o.map(A=>s.invert(A)),f=lR().thresholds(c).value(A=>A[t.value])(e);return{bins:f,minX:f[0].x0??0,maxX:f[f.length-1].x1??0,maxCount:Dh(f,A=>A.length)??0}}function t7t(e,t,n,r,a){let i={};return t.forEach(o=>{let s=e.getRowsByGrouping([...o]);i[o.join("_")]=a==="linear"?q5t(s,n,r):e7t(s,n,r)}),i}var n7t={TOP:30,BOTTOM:0,LEFT:10,RIGHT:10};function w9(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 o=i.some(s=>Math.abs(s)<1e-4&&s!==0||s>1e4)?",e":",f";return{ticks:i,format:s=>e.tickFormat(a,o)(s)}}function r7t(e){return`translate(${e},0)`}function a7t(e){return`translate(0,${e})`}function i7t(e){return e==="bottom"?`translate(0,${qf})`:`translate(${-qf},0)`}function o7t(e){return e==="bottom"?"hanging":"central"}function l7t(e){return e==="bottom"?"middle":"end"}var PK=({scale:e,tickSize:t=6,tickPadding:n=qf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function o(b){return x=>{let k=b(x);return k===void 0?0:+k}}let{ticks:s,format:c}=w9(e,a,r==="bottom"),f=Math.max(t,0)+n,A=o(e.copy()),h=r==="bottom"?r7t:a7t,m=r==="left"?-1:1,y={[(r==="left"?"x":"y")+"2"]:m*t},E={[r==="left"?"x":"y"]:m*f};return ie.jsx("g",{children:s.map((b,x)=>ie.jsxs("g",{className:"tick",transform:h(A(b)+i),children:[ie.jsx("line",{stroke:Wt,...y}),ie.jsx("g",{transform:i7t(r),children:ie.jsx("text",{fill:Wt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:o7t(r),textAnchor:l7t(r),...E,children:c(b)})})]},x))})},s7t=1;function DK({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=nr.useState(e.ticks()),[A,h]=nr.useState(t.ticks()),{significantLines:m=[]}=a,{significantLines:y=[]}=i;return nr.useEffect(()=>{let E=e.ticks().filter(x=>!m.includes(x)),b=t.ticks().filter(x=>!y.includes(x));f(E),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Zf,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&&A.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:tp(a.significantLinesStyle),stroke:Wt,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:tp(i.significantLinesStyle),stroke:Wt,children:y.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}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:s7t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?Zf:Wt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?Zf:Wt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Wt:Zf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Wt:Zf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}function u7t({width:e,height:t,dimensions:n,scales:r,xAxis:a,yAxis:i,frameType:o,histogramData:s,facetSettings:c,captionsSizes:f,facetTitle:A,layers:h,aesColorGetter:m}){let{padding:y}=n,E=a.showTicks?4:0,b=i.showTicks?4:0,x=n.chartEdgeSides.includes("left")||!(c!=null&&c.sharedY),k=n.chartEdgeSides.includes("bottom")||!(c!=null&&c.sharedX),_=n.chartEdgeSides.includes("bottom"),D=!1;return ie.jsxs("g",{transform:`translate(${n.left+y.left},${n.top+y.top})`,children:[D,A.length&&ie.jsxs("g",{children:[o==="full"&&ie.jsx("rect",{x:"0",y:-y.top,height:y.top,width:e,fill:"#F7F8FA",stroke:Wt}),A.map((O,H)=>{let V=A.length,z=(y.top-20*V)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Wt,x:e/2,dy:z+20/2-y.top,y:H*20,textAnchor:"middle",dominantBaseline:"central",children:O},H)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Wt,children:[_&&ie.jsx("text",{x:e/2,y:t+y.bottom-12-20/2,children:a.title}),D]}),ie.jsx(DK,{width:e,height:t,scaleX:r.x,scaleY:r.y,axisX:a,axisY:i,frameType:o}),k&&ie.jsxs("g",{transform:`translate(0,${t})`,children:[ie.jsx(PK,{scale:r.x,orient:"bottom",onlyPositive:!0,tickSize:E}),D]}),x&&ie.jsxs("g",{children:[ie.jsx(PK,{scale:r.y,orient:"left",tickSize:b}),D]}),h.map(O=>s.bins.map(H=>ie.jsx("rect",{x:r.x(H.x0),y:r.y(H.length),fill:H[0]?m(O.aes.fillColor,H[0]):"",stroke:Wt,width:r.x(H.x1)-r.x(H.x0),height:r.y(0)-r.y(H.length),opacity:O.aes.opacity??1},H.x0)))]})}function c7t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,columnsCount:a,facetKeys:i,facetSettings:o,scales:s,margins:c,mainTitle:f,facetTitles:A,captionsSizes:h,histogramDataByFacets:m,layers:y,aesColorGetter:E}){let{xAxis:b,yAxis:x,title:k,frame:_}=t,D=r[i[0]].padding,O=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:Hg}),ie.jsxs("g",{transform:`translate(${c.left},${c.top})`,fontFamily:"Manrope",children:[ie.jsx(p2,{title:f,show:k.show,position:k.position,leftPadding:D.left,rightPadding:O.right,chartsWidth:n.chartsWidth}),i.map(H=>ie.jsx(u7t,{scales:{x:s.x[H],y:s.y[H]},width:n.chartWidth,height:n.chartHeight,dimensions:r[H],margins:c,chartSizes:n,facetSettings:o,xAxis:b,yAxis:x,frameType:_.type,facetTitle:A[H],captionsSizes:h,histogramData:m[H],layers:y,aesColorGetter:E},H))]})]})})}function f7t(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,o){let s=i.includes("left")||!(o!=null&&o.sharedY),c=i.includes("bottom")||!(o!=null&&o.sharedX),f=i.includes("bottom")&&e.title!=="",A=n.yAxisCaptionsWidth+2*6,h=(t.showTicks?4:0)+6,m=n.xAxisCaptionsWidth+2*6,y=e.showTicks?4:0,E=f?32:0,b=A+h+8,x=m+y+E+8,k=Math.max(...r.map(_=>a[_].length));return{left:s?b:12,top:k===0?0:6*2+k*20,bottom:c?x+8:12,right:12}}function A7t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function p7t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function h7t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function v7t(e,t){return function(n,r){var a,i;if(h7t(n)){let o=n.value;return(i=((a=e[o])==null?void 0:a[String(r[o])])??lP)==null?void 0:i[t]}return n}}var m7t=class{constructor(){Me(this,"reactRoot",null);Me(this,"parentNode",null);Me(this,"rootNode",null);Me(this,"component",ie.jsx(ie.Fragment,{}));Me(this,"margins",{top:24,bottom:24,left:24,right:24});Me(this,"chartsDimensions",{});Me(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Me(this,"columnsCount",1);Me(this,"rowsCount",1);Me(this,"scales",{x:{null:ei().domain([0,10]).range([0,600])},y:{null:ei().domain([0,10]).range([350,0])}});Me(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Me(this,"facetTitles",{});Me(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=Oh(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,o=0,s=0;this.chartsDimensions=e.reduce((A,h,m)=>{let[y,E]=p7t(m,this.columnsCount),b=f7t(m,e.length,this.columnsCount,this.rowsCount),x=d7t(n,r,this.captionsSizes,A7t(e,this.rowsCount,this.columnsCount)[y],this.facetTitles,b,t),k=a+x.left+x.right,_=i+x.top+x.bottom;return A[h]={left:o,top:s,chartEdgeSides:b,padding:x,inner:{width:a,height:i},outer:{width:k,height:_}},o+=k,E===this.columnsCount-1&&(o=0,s+=_),A},{});let c=Math.max(...e.map(A=>this.chartsDimensions[A].outer.width+this.chartsDimensions[A].left)),f=Math.max(...e.map(A=>this.chartsDimensions[A].outer.height+this.chartsDimensions[A].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),o=Math.min(t.nCols??a,a);this.columnsCount=t.nRows?Math.ceil(a/i):o,this.rowsCount=Math.ceil(a/this.columnsCount);let[s,c]=[1/0,-1/0],f=-1/0,A=e.reduce((h,m)=>{let y=r[m],{minX:E,maxX:b,maxCount:x}=y;return s=Math.min(s,E),c=Math.max(c,b),f=Math.max(f,x),h[m]={minX:E,maxX:b,maxY:x},h},{});e.forEach(h=>{let m=n.scale==="log"?Lm():ei(),y=A[h],E=t.sharedX?s:y.minX,b=t.sharedX?c:y.maxX;m.domain([E,b]).range([0,this.chartSizes.chartWidth]),this.scales.x[h]=m}),e.forEach(h=>{let m=ei(),y=A[h],E=0,b=t.sharedY?f:y.maxY,x=[this.chartSizes.chartHeight,0],k=m.copy().domain([E,b]).range([this.chartSizes.chartHeight,n7t.TOP]);m.domain([k.invert(this.chartSizes.chartHeight),k.invert(0)]).range(x),this.scales.y[h]=m})}updateCaptionsSize(){let e=new ou("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}=w9(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=Vv(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]=Vv(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,o,s){var y;let{xAxis:c,yAxis:f,size:A,title:h}=t;this.updateChartSizes(A),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(c7t,{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:o,aesColorGetter:v7t(s,"fillColor")});this.component=m,(y=this.reactRoot)==null||y.render(m)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},g7t=m7t,y7t=10,w7t=class{constructor(e){Me(this,"type","bins");Me(this,"aes",{fillColor:"white",opacity:1});this.aes={...this.aes,...e.aes}}},C7t=class{constructor(e){Me(this,"type","binsLine");Me(this,"aes",{opacity:1});this.aes={...this.aes,...e.aes}}},MK=class{constructor(e){Me(this,"id");Me(this,"type","histogram");Me(this,"valueColumn");Me(this,"binsCount");Me(this,"facetSettings");Me(this,"facetBy");Me(this,"grouping");Me(this,"chartSettings");Me(this,"inheritedAes");Me(this,"layers");var t,n,r,a,i,o,s;Oyt.parse(e),this.id=Ir.uniqueId("settings"),this.facetSettings={sharedX:!0,sharedY:!0,titlePosition:"left",...e.facetSettings},this.valueColumn=e.valueColumn,this.binsCount=e.binsCount??y7t,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:((o=e.xAxis)==null?void 0:o.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 w7t(c);if(c.type==="binsLine")return new C7t(c);mA(c,"Unknown layer type")}).filter(Boolean)}};function HK(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 b7t=class extends Pg{constructor(t,n){super(t,n);Me(this,"settings");Me(this,"chartRenderer",new g7t);Me(this,"calculatedData",null);this.settings=new MK(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 MK(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(),p3(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 o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{valueColumn:t,facetBy:n,binsCount:r,chartSettings:a}=this.settings,i=n.map(f=>this.data.getColumnCategories(f.value)),o=i.length?HK([...i]):[["null"]],s=n.map(f=>f.value)??null;this.data.setGrouping([...s]);let c=t7t(this.data,o,t,r,a.xAxis.scale);this.calculatedData={facetKeys:o.map(f=>f.join(", ")),facetKeysCombinations:o,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 E7t(e,t,n,r,a,i){let o={};return t.forEach(s=>{let c=[],f=1/0,A=1/0,h=-1/0,m=-1/0;i.forEach(y=>{e.getRowsByGrouping([...s,y]).forEach(E=>{let b=E[n.value],x=E[r.value];f=Math.min(f,b),A=Math.min(A,x),h=Math.max(h,b),m=Math.max(m,x),b!==null&&x!==null&&c.push({id:`${Object.values(E)}`,x:b,y:x,label:a?E[a.valueLabels??a.value]:null,data:E})})}),c.sort((y,E)=>y.x-E.x),o[s.join("_")]={minX:f,maxX:h,minY:A,maxY:m,dots:c}}),o}function S7t(e,t,n,r,a){return t.reduce((i,o)=>{let s=n[o].dots;return i[o]=e.map(c=>{if(c.type==="curve")return{type:"curve",info:c,geoms:r.map(f=>{let A=s.filter(m=>a.every((y,E)=>m.data[y.value]===f[E])),h=a.reduce((m,y,E)=>(m[y.value]=f[E],m),{});return{dots:A,data:h}})};if(c.type==="dots")return{type:"dots",info:c,geoms:s};mA(c,"Unknown scatterplot layer type")}),i},{})}var IK=(e,t)=>{let n=Math.min(...t),r=Math.max(...t);if(n===r){let o=e%2===0?[]:[n];for(let s=1;s<e/2+1;s++)o.push(n+s),o.unshift(n-s);return o}if(e<2)return[n,r];let a=(r-n)/(e-1),i=[];for(let o=0;o<e-1;o++)i.push(n+a*o);return i.push(r),i};function x7t(e,t,n){if(n==="linear")return IK(e,t);if(n==="log"){let r=IK(e,t),a=Lm(t,t),i=r.map(o=>a.invert(o));return i[0]=t[0],i[i.length-1]=t[1],i}return[]}function K8(e,t,n){return(n==="log"?Lm():ei()).domain(x7t(e.length,t,n)).range(e)}var C9=12,kP=-12,RK=14;function B7t({aes:e,label:t}){let n=df(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 LK({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().reverse().map(r=>{let a=n.scale.domain(),i=a[a.length-1]-a[0],o=i>0?100-(r-a[0])/i*100:0;return ie.jsx("stop",{offset:`${o}%`,stopColor:n.scale(r)},r)})},n.id))}),e.items.map(n=>{if(n.type==="continuous")return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:kP,children:n.title}),ie.jsx("rect",{x:"0",y:"0",width:RK,height:n.height,stroke:Wt,fill:`url(#${n.id})`}),ie.jsx("g",{transform:`translate(${RK},0)`,children:n.values.map(r=>{let a=n.tickPositionScale(r)??0;return ie.jsxs("g",{transform:`translate(0,${a})`,children:[ie.jsx("line",{x1:"0",x2:-4,stroke:Wt}),ie.jsx("text",{x:8,y:4,children:r})]},r)})}),!1]},n.id);if(n.type==="dots")return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:"14px",fontWeight:500,children:[ie.jsx("text",{fontWeight:600,y:kP,children:n.title}),n.values.map((r,a)=>ie.jsx("g",{transform:`translate(0, ${a*(C9+4)})`,children:ie.jsx(B7t,{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:kP,children:n.title}),n.values.map((a,i)=>{let o=n.scale(a);return ie.jsxs("g",{transform:`translate(0, ${i*r})`,children:[ie.jsx("circle",{r:o,cx:r/2,cy:r/2,fill:Wt}),ie.jsx("text",{x:r+4,y:r/2,alignmentBaseline:"central",children:n.labels[a]})]},a)}),!1]},n.id)}})]})}function TP(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 NK(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 k7t(e,t){return TP(e)-t}function T7t(e,t){return NK(e)-t}function $K(e){let t=TP(e),n=t+e.width,r=NK(e),a=r+e.height;return{minX:t,maxX:n,minY:r,maxY:a}}function FK(e,t,n){let r=k7t(e,n),a=TP(e)+e.width+n,i=T7t(e,t),o=i+e.height+2*t;return{minX:r,maxX:a,minY:i,maxY:o}}function _7t(e,t,n){return e.minX>=0&&e.maxX<=t&&e.minY>=0&&e.maxY<=n}var Z8=2;function P7t(e,t=Z8,n=Z8){e.forEach(r=>{r.bbox=$K(r),r.outerBBox=FK(r,t,n)})}function J8(e,t,n,r=Z8,a=Z8){let i=[],o=new cct,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,A]of s){let h={...c,yPosition:f,xPosition:A};if(h.bbox=$K(h),h.outerBBox=FK(h,r,a),_7t(h.outerBBox,t,n)&&!o.collides(h.outerBBox)){i.push(h),o.insert(h.outerBBox);break}}return i}function D7t(e){return`translate(${e},0)`}function M7t(e){return`translate(0,${e})`}function H7t(e){return e==="bottom"?`translate(0,${qf})`:`translate(${-qf},0)`}function I7t(e){return e==="bottom"?"hanging":"central"}function R7t(e){return e==="bottom"?"middle":"end"}var q8=({scale:e,tickSize:t=6,tickPadding:n=qf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function o(b){return x=>{let k=b(x);return k===void 0?0:+k}}let{ticks:s,format:c}=w9(e,a,r==="bottom"),f=Math.max(t,0)+n,A=o(e.copy()),h=r==="bottom"?D7t:M7t,m=r==="left"?-1:1,y={[(r==="left"?"x":"y")+"2"]:m*t},E={[r==="left"?"x":"y"]:m*f};return ie.jsx("g",{children:s.map((b,x)=>ie.jsxs("g",{className:"tick",transform:h(A(b)+i),children:[ie.jsx("line",{stroke:Wt,...y}),ie.jsx("g",{transform:H7t(r),children:ie.jsx("text",{fill:Wt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:I7t(r),textAnchor:R7t(r),...E,children:c(b)})})]},x))})},L7t=1;function N7t({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=nr.useState(e.ticks()),[A,h]=nr.useState(t.ticks()),{significantLines:m=[]}=a,{significantLines:y=[]}=i;return nr.useEffect(()=>{let E=e.ticks().filter(x=>!m.includes(x)),b=t.ticks().filter(x=>!y.includes(x));f(E),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Zf,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&&A.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:tp(a.significantLinesStyle),stroke:Wt,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:tp(i.significantLinesStyle),stroke:Wt,children:y.map(E=>{let b=t(E);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`significant_${b}_${n}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:L7t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?Zf:Wt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?Zf:Wt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Wt:Zf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Wt:Zf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}var $7t=new ou("16px Manrope");function VK(e,t){return typeof e=="string"?e:t.length?t[0].data[e.value]:""}function F7t(e,t,n=[]){let r=e.data,a=[`x: ${go(e.x)}`,`y: ${go(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 V7t(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:` = ${go(e.r2)}`})]})}function O7t(e){return typeof e.pValue>"u"?null:ie.jsx("tspan",{children:`p-value = ${go(e.pValue)}`})}function Q7t(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 = ${go(t)} ± ${go(n)}, intercept = ${go(r)} ± ${go(a)}`})})}function z7t(e){let t=[V7t(e),O7t(e),Q7t(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 _P=3;function OK(e,t,n,r){if(!r)return[];let a=[];for(let i of e){let o=i.label;if(!o)continue;let s=$7t.getTextMetrics(String(o));a.push({name:String(o),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)+_P})}return a}function U7t({width:e,height:t,dimensions:n,scales:r,xAxis:a,yAxis:i,frameType:o,dotsData:s,facetSettings:c,trendsData:f,keyColumn:A,margins:h,chartSizes:m,tooltips:y,tooltipsContainer:E,captionsSizes:b,facetTitle:x,onlyPositive:k,layersData:_,aesGetters:D}){let[O,H]=nr.useState(null),{padding:V}=n,{dots:z}=s,q=a.showTicks?n2:0,ee=i.showTicks?n2:0,W=VK(a.title,z),U=VK(i.title,z),$=n.chartEdgeSides.includes("left")||!(c!=null&&c.sharedY),G=n.chartEdgeSides.includes("bottom")||!(c!=null&&c.sharedX),j=n.chartEdgeSides.includes("left"),re=n.chartEdgeSides.includes("bottom"),se={left:h.left+n.left+V.left,right:m.totalWidth-(h.left+n.left+V.left),top:h.top+n.top+V.top,bottom:m.totalHeight-(h.top+n.top+V.top)},Se=!1,[oe,Ce]=nr.useState(()=>OK(z,r,D,_.find(Ne=>Ne.type==="dots"))),[Te,fe]=nr.useState(()=>J8(oe,e,t,_P,_P)),[me,Xe]=nr.useState(null);return nr.useEffect(()=>{Ce(OK(z,r,D,_.find(Ne=>Ne.type==="dots")))},[z,r,D,_]),nr.useEffect(()=>{let Ne=J8(oe,e,t);fe(Ne)},[oe,e,t]),ie.jsxs("g",{transform:`translate(${n.left+V.left},${n.top+V.top})`,children:[Se,x.length&&ie.jsxs("g",{children:[o==="full"&&ie.jsx("rect",{x:"0",y:-V.top,height:V.top,width:e,fill:"#F7F8FA",stroke:Wt}),x.map((Ne,Ge)=>{let Qe=x.length,We=(V.top-uP*Qe)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Wt,x:e/2,dy:We+uP/2-V.top,y:Ge*uP,textAnchor:"middle",dominantBaseline:"central",children:Ne},Ge)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Wt,children:[re&&ie.jsx("text",{x:e/2,y:t+V.bottom-Iv-c9/2,children:W}),Se,j&&ie.jsx("text",{x:-V.left+Iv+c9/2,y:t/2,transform:`rotate(-90,${-V.left+Iv+c9/2},${t/2})`,children:U}),Se]}),ie.jsx(N7t,{width:e,height:t,scaleX:r.x,scaleY:r.y,axisX:a,axisY:i,frameType:o}),G&&ie.jsxs("g",{transform:`translate(0,${t})`,children:[ie.jsx(q8,{scale:r.x,orient:"bottom",onlyPositive:k.x,tickSize:q}),Se]}),$&&ie.jsxs("g",{children:[ie.jsx(q8,{scale:r.y,orient:"left",onlyPositive:k.y,tickSize:ee}),Se]}),f&&f.map(({predict:Ne,getArea:Ge,color:Qe,data:We,bounded:dt,xBounds:je,stats:rt},He)=>{let[$e,ut]=dt?je:r.x.domain(),ct=(ut-$e)/15,Bt=Ne($e),dn=Ne(ut);if(isNaN(Bt)||isNaN(dn))return null;let yn=D.dotColor(Qe,We);return ie.jsxs("g",{children:[ie.jsx("text",{y:He*20+20,fill:yn,x:e-8,textAnchor:"end",children:z7t(rt)}),ie.jsx("path",{d:Ge(r.x,r.y,Ir.range($e,ut+ct/2,ct)),fill:yn,opacity:.2}),ie.jsx("line",{x1:r.x($e),x2:r.x(ut),y1:r.y(Bt),y2:r.y(dn),stroke:yn})]},He)}),_.map((Ne,Ge)=>{if(Ne.type==="dots")return ie.jsxs("g",{children:[z.map(Qe=>ie.jsx("g",{transform:`translate(${r.x(Qe.x)},${r.y(Qe.y)})`,onMouseOver:()=>H(Qe),onMouseLeave:()=>H(null),children:df(D.dotShape(Ne.info.aes.dotShape,Qe.data),D.dotSize(Ne.info.aes.dotSize,Qe.data),D.dotColor(Ne.info.aes.dotFill,Qe.data))},Qe.id)),Te.map(Qe=>{let{name:We,height:dt,bbox:je,width:rt}=Qe;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${je.minX},${je.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:rt,height:dt,fill:"transparent",stroke:"none",onMouseOver:()=>Xe(Qe.dot),onMouseLeave:()=>Xe(null)}),ie.jsx("text",{x:0,y:dt/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:We})]})},Qe.dot.id)}),me&&ie.jsxs("g",{transform:`translate(${r.x(me.x)},${r.y(me.y)})`,children:[df(D.dotShape(Ne.info.aes.dotShape,me.data),D.dotSize(Ne.info.aes.dotSize,me.data)+1,"white","white"),df(D.dotShape(Ne.info.aes.dotShape,me.data),D.dotSize(Ne.info.aes.dotSize,me.data),D.dotColor(Ne.info.aes.dotFill,me.data))]},"activeDot")]},Ge);if(Ne.type==="curve"&&!Ne.info.smoothing)return Ne.geoms.map((Qe,We)=>ie.jsx("g",{children:ie.jsx("polyline",{points:Qe.dots.map(dt=>`${r.x(dt.x)},${r.y(dt.y)}`).join(" "),fill:"none",stroke:D.lineColor(Ne.info.aes.lineColor,Qe.data),strokeWidth:Ne.info.aes.lineWidth,strokeDasharray:tp(Ne.info.aes.lineShape)})},We));if(Ne.type==="curve"&&Ne.info.smoothing)return Ne.geoms.map((Qe,We)=>ie.jsx("g",{children:ie.jsx("path",{d:j7().curve(G7).x(dt=>r.x(dt.x)).y(dt=>r.y(dt.y))(Qe.dots)??"",fill:"none",stroke:D.lineColor(Ne.info.aes.lineColor,Qe.data),strokeWidth:Ne.info.aes.lineWidth,strokeDasharray:tp(Ne.info.aes.lineShape)})},We))}),y.show&&O&&ie.jsx(Mc,{content:F7t(O,A,y==null?void 0:y.content),x:r.x(O.x),y:r.y(O.y),active:!0,sideDistances:se,container:E})]})}function j7t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,facetKeys:a,facetSettings:i,scales:o,groupedDots:s,legendData:c,trendsData:f,columnsCount:A,margins:h,keyColumn:m,mainTitle:y,facetTitles:E,captionsSizes:b,onlyPositive:x,layersData:k,aesGetters:_}){let[D,O]=nr.useState(),H=nr.useRef(null);nr.useEffect(()=>{H.current&&O(H.current)},[]);let{xAxis:V,yAxis:z,title:q,frame:ee,legend:W,tooltips:U}=t,$=r[a[0]].padding,G=r[a[A-1]].padding,j=n.chartsWidth+fP,re=$.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:Hg}),ie.jsxs("g",{transform:`translate(${h.left},${h.top})`,fontFamily:"Manrope",children:[ie.jsx(p2,{title:y,show:q.show,position:q.position,leftPadding:$.left,rightPadding:G.right,chartsWidth:n.chartsWidth}),a.map(se=>ie.jsx(U7t,{scales:{x:o.x[se],y:o.y[se]},width:n.chartWidth,height:n.chartHeight,dimensions:r[se],margins:h,chartSizes:n,facetSettings:i,xAxis:V,yAxis:z,frameType:ee.type,dotsData:s[se],trendsData:f?f[se]:null,tooltips:U,tooltipsContainer:D,keyColumn:m,facetTitle:E[se],captionsSizes:b,layersData:k[se],onlyPositive:x,aesGetters:_},se)),W.show&&ie.jsx("g",{transform:`translate(${j},${re})`,children:ie.jsx(LK,{legendData:c})})]}),ie.jsx("g",{ref:H})]})})}function G7t(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 Y7t(e,t,n,r,a,i,o){let s=i.includes("left")||!(o!=null&&o.sharedY),c=i.includes("left")&&t.title!=="",f=i.includes("bottom")||!(o!=null&&o.sharedX),A=i.includes("bottom")&&e.title!=="",h=n.yAxisCaptionsWidth+2*cP,m=(t.showTicks?n2:0)+cP,y=c?c9+Iv:0,E=n.xAxisCaptionsWidth+2*cP,b=e.showTicks?n2:0,x=A?c9+Iv:0,k=h+m+y+AX,_=E+b+x+AX,D=Math.max(...r.map(O=>a[O].length));return{left:s?k:Iv,top:D===0?0:Ygt*2+D*m9,bottom:f?_+8:Iv,right:Iv}}function W7t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function X7t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function K7t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function y2(e,t){return function(n,r){var a,i;if(Lv(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=Qy().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}if(Lv(n)&&(t==="dotFill"||t==="lineColor")){let{domain:o,range:s,type:c="linear"}=n;return K8(s,o,c)(Number(r[n.columnName.value]))}if(K7t(n)){let o=n.value;return(i=((a=e[o])==null?void 0:a[String(r[o])])??lP)==null?void 0:i[t]}return n}}function Z7t(e){return{dotShape:y2(e,"dotShape"),dotColor:y2(e,"dotFill"),dotSize:y2(e,"dotSize"),lineShape:y2(e,"lineShape"),lineColor:y2(e,"lineColor"),trendColor:y2(e,"dotFill")}}var J7t=class{constructor(){Me(this,"reactRoot",null);Me(this,"parentNode",null);Me(this,"rootNode",null);Me(this,"component",ie.jsx(ie.Fragment,{}));Me(this,"margins",{top:Jf,bottom:Jf,left:Jf,right:Jf});Me(this,"chartsDimensions",{});Me(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Me(this,"columnsCount",1);Me(this,"rowsCount",1);Me(this,"scales",{x:{null:ei().domain([0,10]).range([0,600])},y:{null:ei().domain([0,10]).range([350,0])}});Me(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Me(this,"facetTitles",{});Me(this,"mainTitle",[]);Me(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=Oh(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,o=0,s=0;this.chartsDimensions=e.reduce((A,h,m)=>{let[y,E]=X7t(m,this.columnsCount),b=G7t(m,e.length,this.columnsCount,this.rowsCount),x=Y7t(n,r,this.captionsSizes,W7t(e,this.rowsCount,this.columnsCount)[y],this.facetTitles,b,t),k=a+x.left+x.right,_=i+x.top+x.bottom;return A[h]={left:o,top:s,chartEdgeSides:b,padding:x,inner:{width:a,height:i},outer:{width:k,height:_}},o+=k,E===this.columnsCount-1&&(o=0,s+=_),A},{});let c=Math.max(...e.map(A=>this.chartsDimensions[A].outer.width+this.chartsDimensions[A].left)),f=Math.max(...e.map(A=>this.chartsDimensions[A].outer.height+this.chartsDimensions[A].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r,a,i){let o=e.length,s=Math.min(t.nRows??o,o),c=Math.min(t.nCols??o,o);this.columnsCount=t.nRows?Math.ceil(o/s):c,this.rowsCount=Math.ceil(o/this.columnsCount);let[f,A]=[1/0,-1/0],[h,m]=[1/0,-1/0],y=e.reduce((b,x)=>{let k=a[x],{minX:_,minY:D,maxX:O,maxY:H}=k;return f=Math.min(f,_),h=Math.min(h,D),A=Math.max(A,O),m=Math.max(m,H),b[x]={minX:_,maxX:O,minY:D,maxY:H},b},{});e.forEach(b=>{let x=n.scale==="log"?Rm():ei(),k=y[b],_=n.lowerValue?Number(n.lowerValue):t.sharedX?f:k.minX,D=n.upperValue?Number(n.upperValue):t.sharedX?A:k.maxX;if(typeof n.symmetricRange<"u"){let V=n.symmetricRange;if(V>=_&&V<=D){let z=Math.max(V-_,D-V);_=V-z,D=V+z}}let O=[0,this.chartSizes.chartWidth],H=x.copy().domain([_,D]).range([M8.LEFT,this.chartSizes.chartWidth-M8.RIGHT]);x.domain([H.invert(0),H.invert(this.chartSizes.chartWidth)]).range(O).nice(),this.scales.x[b]=x});let E=e.reduce((b,x)=>{let k=i?i[x]:[];return b[x]=k.reduce((_,D)=>{let O=D.bounded?D.xBounds:this.scales.x[x].domain(),H=D.getInterval(O[0]),V=D.getInterval(O[1]);return _.minY=Math.min(_.minY,isNaN(H.left)?_.minY:H.left,isNaN(V.left)?_.minY:V.left),_.maxY=Math.max(_.maxY,isNaN(H.right)?_.maxY:H.right,isNaN(V.right)?_.maxY:V.right),_},{minY:1/0,maxY:-1/0}),h=Math.min(h,b[x].minY),m=Math.max(m,b[x].maxY),b},{});e.forEach(b=>{let x=r.scale==="log"?Rm():ei(),k=y[b],_=E[b],D=r.lowerValue?Number(r.lowerValue):t.sharedY?h:Math.min(k.minY,_.minY),O=r.upperValue?Number(r.upperValue):t.sharedY?m:Math.max(k.maxY,_.maxY);if(typeof r.symmetricRange<"u"){let z=r.symmetricRange;if(z>=D&&z<=O){let q=Math.max(z-D,O-z);D=z-q,O=z+q}}let H=[this.chartSizes.chartHeight,0],V=x.copy().domain([D,O]).range([this.chartSizes.chartHeight-M8.BOTTOM,M8.TOP]);x.domain([V.invert(this.chartSizes.chartHeight),V.invert(0)]).range(H).nice(),this.scales.y[b]=x})}updateCaptionsSize(e){let t=new ou("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:o}=w9(a,e);n=Math.max(n,r(i.map(o)))}),this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:n}}createMainTitle(e,t){let n=this.chartsDimensions[e[0]],r=this.chartsDimensions[e[e.length-1]];this.mainTitle=Vv(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]=Vv(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,Jf),bottom:Jf,left:Jf,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 ou("600 14px Manrope"),i=16,o=48,s=20,c=24;function f(D,O){return Math.max(...D.map(H=>a.getTextWidth(String(H))+s),a.getTextWidth(O))}let A=[];n.forEach(D=>{let O=t[D.value];if(O.usedAes.length===0||!O.aesMap)return;let H=D.label??D.value,V=O.values,z={};V.forEach(q=>{z[q]||(z[q]={...sP}),O.usedAes.forEach(ee=>{var W,U,$;(ee==="dotFill"||ee==="lineColor")&&(z[q].color=((W=O.aesMap[q])==null?void 0:W[ee])??Wt),ee==="dotShape"&&(z[q].shape=((U=O.aesMap[q])==null?void 0:U[ee])??"21"),ee==="dotSize"&&(z[q].size=(($=O.aesMap[q])==null?void 0:$[ee])??3)})}),A.push({columnKey:H,data:z,values:O.values,labels:O.labels})});let h=[],m=0,y=0,E=0,b=this.chartSizes.chartsHeight,x=this.chartSizes.chartsHeight;r.forEach(D=>{if(D.type==="dots"&&Lv(D.aes.dotFill)){let{domain:O,range:H,columnName:V,type:z="linear"}=D.aes.dotFill,q=V.label??V.value,ee=this.chartSizes.chartHeight,W=K8(H,O,"linear"),U=(z==="log"?Lm():ei()).domain(O).range([ee,0]),$=i2(U,O),G=o2($,q),j=E;h.push({id:"dotFill",type:"continuous",width:G,height:ee,left:j,top:0,title:q,scale:W,tickPositionScale:U,values:$}),E+=G+c,y=0}}),A.map(({columnKey:D,labels:O,values:H,data:V})=>{let z=D,q=f(H.map(G=>O[G]),z),ee=H.length*i;ee>b&&(x=ee);let W=Hl().domain(H).range(H.map(G=>V[G])),U=E,$=y;h.push({type:"dots",id:D,width:q,height:ee,left:U,top:$,title:z,scale:W,values:H,labels:O}),m=q,y+=ee+o,y>b&&(y=0,E=q+c)}),r.forEach(D=>{if(D.type==="dots"&&Lv(D.aes.dotSize)){y>x&&(y=0,E+=m+c);let{columnName:O,domain:H,range:V}=D.aes.dotSize,z=O.label??O.value,q=Qy(H,V),ee=q.ticks(3),W=q.tickFormat(3),U=ee.reduce((se,Se)=>(se[String(Se)]=W(Se),se),{}),$=f(ee.map(se=>U[se]),z),G=(q(Math.max(...ee))*2+4)*ee.length;G>x&&(x=G);let j=E,re=y;h.push({id:O.value,type:"size",width:$,height:G,left:j,top:re,title:z,scale:q,values:ee,labels:U}),m=$,y+=G+o}});let k=E+m+2*fP,_=x;this.legend={width:k,height:_,items:h}}render(e,t,n,r,a,i,o,s,c,f,A,h,m,y){var O;let{xAxis:E,yAxis:b,size:x,title:k,legend:_}=t;this.updateChartSizes(x),this.updateViewport(r,n,E,b,i,o),this.updateCaptionsSize(c.y),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,E,b),this.updateLegendSize(_,f,m,y),this.createMainTitle(r,k),this.updateMargins();let D=ie.jsx(j7t,{settingsId:e,chartSettings:t,facetKeys:r,facetSettings:n,chartSizes:this.chartSizes,chartsDimensions:this.chartsDimensions,scales:this.scales,groupedDots:i,trendsData:o,legendData:this.legend,columnsCount:this.columnsCount,margins:this.margins,keyColumn:s,mainTitle:this.mainTitle,facetTitles:this.facetTitles,captionsSizes:this.captionsSizes,onlyPositive:c,layersData:A,aesGetters:Z7t(h)});this.component=D,(O=this.reactRoot)==null||O.render(D)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},q7t=J7t,ewt=class{constructor(e){Me(this,"type","dots");Me(this,"aes",{dotFill:Wt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},twt=class{constructor(e){Me(this,"type","curve");Me(this,"smoothing");Me(this,"aes",{lineColor:Wt,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},QK=class{constructor(e){Me(this,"id");Me(this,"type","scatterplot");Me(this,"keyColumn");Me(this,"facetSettings");Me(this,"x");Me(this,"y");Me(this,"facetBy");Me(this,"grouping");Me(this,"label");Me(this,"chartSettings");Me(this,"inheritedAes");Me(this,"trend");Me(this,"layers");var t,n,r,a;kyt.parse(e),this.id=Ir.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??Wt}:null,this.layers=e.layers.map(i=>{if(i.type==="dots")return new ewt(i);if(i.type==="curve")return new twt(i);mA(i,"Unknown layer type")}).filter(Boolean)}},nwt=Fpt(Lgt()),zK=.05;function rwt(e){let t=3.3871328727963665,n=133.14166789178438,r=1971.5909503065513,a=13731.69376550946,i=45921.95393154987,o=67265.7709270087,s=33430.57558358813,c=2509.0809287301227,f=42.31333070160091,A=687.1870074920579,h=5394.196021424751,m=21213.794301586597,y=39307.89580009271,E=28729.085735721943,b=5226.495278852854,x=1.4234371107496835,k=4.630337846156546,_=5.769497221460691,D=3.6478483247632045,O=1.2704582524523684,H=.2417807251774506,V=.022723844989269184,z=.0007745450142783414,q=2.053191626637759,ee=1.6763848301838038,W=.6897673349851,U=.14810397642748008,$=.015198666563616457,G=.0005475938084995345,j=10507500716444169e-25,re=6.657904643501103,se=5.463784911164114,Se=1.7848265399172913,oe=.29656057182850487,Ce=.026532189526576124,Te=.0012426609473880784,fe=27115555687434876e-21,me=20103343992922881e-23,Xe=.599832206555888,Ne=.1369298809227358,Ge=.014875361290850615,Qe=.0007868691311456133,We=18463183175100548e-21,dt=1421511758316446e-22,je=20442631033899397e-31,rt=e-.5,He,$e;return Math.abs(rt)<=.425?(He=.180625-rt*rt,$e=rt*(((((((c*He+s)*He+o)*He+i)*He+a)*He+r)*He+n)*He+t)/(((((((b*He+E)*He+y)*He+m)*He+h)*He+A)*He+f)*He+1),$e):(He=e,He=Math.sqrt(-Math.log(He)),He<=5?(He+=-1.6,$e=(((((((z*He+V)*He+H)*He+O)*He+D)*He+_)*He+k)*He+x)/(((((((j*He+G)*He+$)*He+U)*He+W)*He+ee)*He+q)*He+1)):(He+=-5,$e=(((((((me*He+fe)*He+Te)*He+Ce)*He+oe)*He+Se)*He+se)*He+re)/(((((((je*He+dt)*He+We)*He+Qe)*He+Ge)*He+Ne)*He+Xe)*He+1)),$e=-$e,$e)}function UK(e,t){let{sin:n,cos:r,sqrt:a,pow:i,exp:o,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 A=1/(t-.5),h=48/(A*A),m=((20700*A/h-98)*A-16)*A+96.36,y=((94.5/(h+m)-3)/h+1)*a(A*s*.5)*t;return c=y*e,f=i(c,2/t),f>.05+A?(c=rwt(e/2),f=c*c,t<5&&(m=m+.3*(t-4.5)*(c+.6)),m=(((.05*y*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=A*f*f,f>.002?f=o(f)-1:f=.5*f*f+f):f=((1/(((t+6)/(t*f)-.089*y-.822)*(t+2)*3)+.5/(t+4))*f-1)*(t+1)/(t+2)+1/f,a(t*f)}function awt(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,A=e[c].y;if(!Number.isFinite(f)||!Number.isFinite(A)){--t;continue}n+=f,r+=A,a+=f*A,i+=f*f}let o=(t*a-n*r)/(t*i-n*n),s=(r-o*n)/t;return[o,s]}function iwt(e,t,n){let r=A=>A*t+n,a=e.length,i=xc(e,A=>A.x)/e.length,o=UK(zK,a-2),s=Math.sqrt(xc(e,A=>(A.y-r(A.x))**2)/(a-2)/xc(e,A=>(A.x-i)**2)),c=s*o,f=s*Math.sqrt(xc(e,A=>A.x**2)/a)*o;return{slope:t,intercept:n,slopeError:c,interceptError:f}}function owt(e,t){let n=xc(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)),o=UK(zK,e.length-2);return function(s){let c=t(s),f=i*Math.sqrt(1/e.length+Math.pow(s-n,2)/r),A=c-o*f,h=c+o*f;return{x:s,y:c,left:isNaN(A)?c:A,right:isNaN(h)?c:h}}}function lwt(e){let t=e.length;return Math.pow((t*xc(e,n=>n.x*n.y)-xc(e,n=>n.x)*xc(e,n=>n.y))/(Math.sqrt(t*xc(e,n=>n.x*n.x)-Math.pow(xc(e,n=>n.x),2))*Math.sqrt(t*xc(e,n=>n.y*n.y)-Math.pow(xc(e,n=>n.y),2))),2)}function swt(e,t){let n=tu(e,t);return tu(e.map(r=>(t(r)-n)**2))}function jK(e,t){return Math.sqrt(swt(e,t))}function uwt(e,t,n){let r=tu(e,t),a=tu(e,n),i=e.length;return xc(e,o=>(o.x-r)*(o.y-a))/i}function cwt(e){let t=uwt(e,a=>a.x,a=>a.y),n=jK(e,a=>a.x),r=jK(e,a=>a.y);return t/(n*r)}function fwt(e,t){let n=e.length,r=1,a=1,i=n-r-1,o=tu(e,m=>m.y),s=xc(e,m=>(t(m.x)-o)**2),c=xc(e,m=>(t(m.x)-m.y)**2),f=s/a,A=c/i,h=f/A;return 1-(0,nwt.default)(h,a,i)}function dwt(e,t,n,r,a){return a?t.reduce((i,o)=>{let s=e[o].dots;return i[o]=n.map(c=>{let f=s.filter(x=>r.every((k,_)=>String(x.data[k.value])===c[_])),[A=0,h=0]=$A(f,x=>x.x),[m,y]=awt(f),E=x=>m*x+y,b=owt(f,E);return{predict:E,getInterval:b,getArea:(x,k,_)=>MB().x(D=>x(D.x)).y0(D=>k(D.left)).y1(D=>k(D.right))(_.map(b))??"",color:a.color,bounded:a.bounded,data:f[0].data,showStats:!0,xBounds:[A,h],stats:{r2:lwt(f),r:cwt(f),pValue:fwt(f,E),coefficients:iwt(f,m,y)}}}),i},{}):null}function GK(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 YK(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function Awt(e,t,n,r){return t.reduce((a,i)=>{let o=Ir.uniqBy(e.rows,h=>h[i.value]),s=h=>String(h[i.value]),c=h=>i.valueLabels?String(h[i.valueLabels]):s(h),f=new Set;n.forEach(h=>{h.aes&&Object.entries(h.aes).forEach(([m,y])=>{YK(y)&&y.value===i.value&&f.add(m)})});let A=o.reduce((h,m)=>(h[s(m)]=c(m),h),{});return a[i.value]={values:o.map(s).filter(h=>h!=="null").sort((h,m)=>A[h].localeCompare(A[m],"en",{numeric:!0})),usedAes:[...f],aesMap:r[i.value],labels:A},a},{})}var pwt=class extends Pg{constructor(t,n){super(t,n);Me(this,"settings");Me(this,"chartRenderer",new q7t);Me(this,"calculatedData",null);this.settings=new QK(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 QK(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(),p3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,o;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)!==((o=n.label)==null?void 0:o.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 o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{x:t,y:n,facetBy:r,grouping:a,keyColumn:i,trend:o,layers:s,inheritedAes:c,label:f}=this.settings,A=this.data.getColumnCategories(i.value),h=r.map(V=>this.data.getColumnCategories(V.value)),m=a.map(V=>this.data.getColumnCategories(V.value)),y=h.length?GK([...h]):[["null"]],E=m.length?GK([...m]):[["null"]],b=r.map(V=>V.value)??null;this.data.setGrouping([...b,i.value]);let x={x:this.data.rows.every(V=>{let z=V[t.value];return z===null||!(Number(z)<0)}),y:this.data.rows.every(V=>{let z=V[n.value];return z===null||!(Number(z)<0)})},k=E7t(this.data,y,t,n,f,A),_=Object.keys(k),D=dwt(k,_,E,a,o),O=Awt(this.data,a,s,c),H=S7t(s,_,k,E,a);this.calculatedData={onlyPositive:x,dotsByFacets:k,facetKeys:_,facetKeysCombinations:y,trendsData:D,legendLabels:O,layersData:H}}_updateAesInData(){let t=this.calculatedData;if(!t)return;let{grouping:n,trend:r,layers:a,inheritedAes:i}=this.settings,{facetKeys:o,trendsData:s}=t;o.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(A=>{A.aes&&Object.entries(A.aes).forEach(([h,m])=>{YK(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:o,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,o,a,s)}},eE={TOP:30,BOTTOM:30,LEFT:30,RIGHT:30},b9=20,WK=4,PP=24;function hwt(e,t,n=[]){let r=e.data,a=[`x: ${go(e.x)}`,`y: ${go(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 XK(e){return typeof e=="string"?e:e.label??e.value}function vwt({scales:e,chartSettings:t,mainTitle:n,keyColumn:r,margins:a,chartSizes:i,onlyPositive:o,container:s,zoomStateKey:c,legendData:f,selectedDot:A=null}){var H;let{title:h,xAxis:m,yAxis:y,frame:E,legend:b}=t,x=m.showTicks?WK:0,k=y.showTicks?WK:0,_=m.title,D=y.title,O={left:0,right:i.chartWidth,top:0,bottom:i.chartHeight};return s?ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${i.totalWidth} ${i.totalHeight}`,width:i.totalWidth,height:i.totalHeight,style:{pointerEvents:"none"},children:[ie.jsx("defs",{children:Hg}),ie.jsxs("g",{transform:`translate(${a.left},${a.top})`,fontFamily:"Manrope",children:[ie.jsx(p2,{title:n,show:h.show,position:h.position,leftPadding:a.left,rightPadding:a.right,chartsWidth:i.chartWidth}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Wt,children:[_&&ie.jsx("text",{x:i.chartWidth/2,y:i.chartHeight+a.bottom-b9/2,children:XK(_)}),D&&ie.jsx("text",{x:-a.left+b9/2,y:i.chartHeight/2,transform:`rotate(-90,${-a.left+b9/2},${i.chartHeight/2})`,children:XK(D)})]}),ie.jsx(DK,{width:i.chartWidth,height:i.chartHeight,scaleX:e.x,scaleY:e.y,axisX:m,axisY:y,updatingKey:c,frameType:E.type}),ie.jsx("g",{transform:`translate(0,${i.chartHeight})`,children:ie.jsx(q8,{scale:e.x,orient:"bottom",onlyPositive:o.x,tickSize:x})}),ie.jsx("g",{children:ie.jsx(q8,{scale:e.y,orient:"left",onlyPositive:o.y,tickSize:k})}),A&&ie.jsx(Mc,{content:hwt(A,r,(H=t.tooltips)==null?void 0:H.content),x:e.x(A.x),y:e.y(A.y),active:!0,sideDistances:O,container:s}),b.show&&ie.jsx("g",{transform:`translate(${i.chartWidth+PP},0)`,children:ie.jsx(LK,{legendData:f})})]})]}):null}var mwt=hb.memo(vwt);function gwt({scales:e,chartSizes:t,onPolygonUpdate:n}){let[r,a]=nr.useState([]),[i,o]=nr.useState(null),[s,c]=nr.useState(null),f=nr.useRef(s),A=nr.useRef(i),h=nr.useRef(r);function m(E){if(!f.current)return;let b=E.key==="Enter",x=E.key===" ",k=E.shiftKey,_=e.x.invert(f.current[0]),D=e.y.invert(f.current[1]),O=h.current,H=A.current;k&&x&&!A.current?(O=[],H=[_,D],n([])):x&&A.current?(O=[...O,[A.current,[_,D]]],H=[_,D]):b&&A.current&&(O.length>2&&(O=[...O,[O[O.length-1][1],O[0][0]]]),H=null,O.length<=2?n([]):n(O.map(V=>V[0]))),a(O),o(H),h.current=O,A.current=H}nr.useEffect(()=>(document.addEventListener("keydown",m),()=>document.removeEventListener("keydown",m)),[]),nr.useEffect(()=>{if(i&&s)return;if(r.length===0){n([]);return}let E=r.map(b=>b[0]);E.push(r[r.length-1][1]),n(E)},[r]);function y(E){let b=[E.nativeEvent.offsetX,E.nativeEvent.offsetY];c(b),f.current=b}return ie.jsxs("g",{children:[ie.jsx("rect",{fill:"transparent",width:t.chartWidth,height:t.chartHeight,onMouseMove:y}),r.map(([E,b],x)=>ie.jsx("line",{x1:e.x(E[0]),y1:e.y(E[1]),x2:e.x(b[0]),y2:e.y(b[1]),stroke:Wt},x)),i&&s&&ie.jsx("line",{x1:e.x(i[0]),y1:e.y(i[1]),x2:s[0],y2:s[1],stroke:Wt},"lastLine")]})}function ywt({scales:e,container:t,labels:n,aesGetter:r,chartSizes:a,onPolygonUpdate:i,selectedDot:o=null}){return t?ie.jsxs("g",{children:[n.map(s=>{let{name:c,height:f,bbox:A,width:h}=s;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${A.minX},${A.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:h,height:f,fill:"transparent",stroke:"none"}),ie.jsx("text",{x:0,y:f/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:c})]})},s.dot.id)}),ie.jsx(gwt,{scales:e,chartSizes:a,onPolygonUpdate:i}),o&&ie.jsx("circle",{cx:e.x(o.x),cy:e.y(o.y),r:5,fill:r(o.data)})]}):null}var wwt=ywt;function Cwt({settingsId:e,scales:t,chartSettings:n,mainTitle:r,keyColumn:a,margins:i,chartSizes:o,captionsSizes:s,onlyPositive:c,container:f,zoomStateKey:A,aesGetter:h,legendData:m,labels:y,onPolygonUpdate:E,selectedDot:b=null}){return f?ie.jsx("div",{children:ie.jsxs(A2,{dataId:e,children:[ie.jsx(mwt,{scales:t,keyColumn:a,margins:i,mainTitle:r,captionsSizes:s,chartSettings:n,chartSizes:o,onlyPositive:c,container:f,selectedDot:b,zoomStateKey:A,legendData:m}),xB.createPortal(ie.jsx(wwt,{scales:t,container:f,aesGetter:h,labels:y,chartSizes:o,selectedDot:b,onPolygonUpdate:E}),f)]})}):null}var KK=e=>e.selection()!==e,ZK=(e,t)=>{e=e||"g";let n=(i,o)=>o,r=null,a=function(i,o){o=o||(y=>y);let s=i.selection(),c=KK(i)?i:null,f=s.selectChildren(t==null?e:`${e}.${t}`).data(o,n),A=f.enter().append(e).attr("class",t),h=f.exit();f=f.merge(A);let m=c||r;return m&&(f=f.transition(m).style("opacity",1),A.style("opacity",1e-6),h=h.transition(m).style("opacity",1e-6)),h.remove(),f.enter=()=>A,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},JK=(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}},qK=(e,t,...n)=>{for(let r of n)e[r]=JK(e,t,r);return e},bwt=e=>t=>e.reduce((n,r)=>n&&r(n),t),DP=(e,t,...n)=>{let r=bwt(n);for(let a of Object.keys(t)){let i=r(a);i&&(e[i]=JK(e,t,a))}return e},Ewt=e=>e.map(t=>typeof t=="string"?new RegExp(`^${t}$`):t),Swt=(...e)=>(e=Ewt(e),t=>e.every(n=>!n.test(t))&&t),w2=e=>typeof e=="function"?e:()=>e;function xwt(){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 Bwt=(e,t)=>{switch(e){case"left":return t/2;case"right":return-t/2;default:return 0}},eZ=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},kwt=()=>{let e=()=>0,t=s=>s.x,n=s=>s.y,r="center",a=()=>5,i="vertical",o=eZ({decorate:()=>{},defined:(s,c)=>xwt(e,t,n)(s,c),xScale:J1(),yScale:J1()});return o.values=(s,c)=>{let f=a(s,c),A=Bwt(r,f),h=o.xScale(),m=o.yScale();if(i==="vertical"){let y=m(n(s,c),c),E=m(e(s,c),c),b=h(t(s,c),c)+A;return{d:s,x:b,y,y0:E,width:f,height:y-E,origin:[b,y],baseOrigin:[b,E],transposedX:b,transposedY:y}}else{let y=h(n(s,c),c),E=h(e(s,c),c),b=m(t(s,c),c)+A;return{d:s,x:b,y,y0:E,width:f,height:y-E,origin:[y,b],baseOrigin:[E,b],transposedX:y,transposedY:b}}},o.xValues=()=>i==="vertical"?[t]:[e,n],o.yValues=()=>i!=="vertical"?[t]:[e,n],o.baseValue=(...s)=>s.length?(e=w2(s[0]),o):e,o.crossValue=(...s)=>s.length?(t=w2(s[0]),o):t,o.mainValue=(...s)=>s.length?(n=w2(s[0]),o):n,o.bandwidth=(...s)=>s.length?(a=w2(s[0]),o):a,o.align=(...s)=>s.length?(r=s[0],o):r,o.orient=(...s)=>s.length?(i=s[0],o):i,o},Twt=()=>{let e=kwt(),t=w2(64),n=T$,r=e9(),a=e9(),i=e9().type(eh.UNSIGNED_SHORT),o=e9().type(eh.UNSIGNED_BYTE),s=Apt().crossValueAttribute(r).mainValueAttribute(a).sizeAttribute(i).definedAttribute(o),c=(E,b)=>!1,f=Cpt,A=[],h=null,m=null,y=E=>{let b=f(e.xScale()),x=f(e.yScale()),k=!c(A,E);k&&(A=E,i.value((_,D)=>t(_,D)).data(E),o.value((_,D)=>e.defined()(_,D)).data(E)),(k||b.scale!==h)&&(h=b.scale,e.orient()==="vertical"?r.value((_,D)=>b.scale(e.crossValue()(_,D))).data(E):r.value((_,D)=>b.scale(e.mainValue()(_,D))).data(E)),(k||x.scale!==m)&&(m=x.scale,e.orient()==="vertical"?a.value((_,D)=>x.scale(e.mainValue()(_,D))).data(E):a.value((_,D)=>x.scale(e.crossValue()(_,D))).data(E)),s.xScale(b.webglScale).yScale(x.webglScale).type(Tpt(n)).decorate(_=>e.decorate()(_,E,0)),s(E.length)};return y.size=(...E)=>E.length?(t=w2(E[0]),y):t,y.type=(...E)=>E.length?(n=E[0],y):n,y.equals=(...E)=>E.length?(c=E[0],y):c,y.scaleMapper=(...E)=>E.length?(f=E[0],y):f,DP(y,e,Swt("baseValue","bandwidth","align")),qK(y,s,"context","pixelRatio"),y},tZ=()=>{let e=[],t=a=>a,n=(a,i)=>i,r=eZ({decorate:()=>{},xScale:J1(),yScale:J1()});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},_wt=()=>{let e=tZ(),t=ZK("g"),n=ZK("g","multi"),r=a=>{KK(a)&&(n.transition(a),t.transition(a));let i=e.mapping(),o=e.series(),s=e.xScale(),c=e.yScale();a.each((f,A,h)=>{let m=n(iu(h[A]),o);m.each((y,E,b)=>{y.xScale(s).yScale(c);let x=i(f,E,o);t(iu(b[E]),[x]).call(y)}),m.selection().order(),e.decorate()(m,f,A)})};return DP(r,e),qK(r,n,"key"),r},Pwt=()=>{let e=null,t=1,n=tZ(),r=a=>{let i=n.mapping(),o=n.series(),s=n.xScale(),c=n.yScale();o.forEach((f,A)=>{let h=i(a,A,o);f.context(e).pixelRatio(t).xScale(s).yScale(c);let m;f.decorate?(m=f.decorate(),f.decorate((y,E,b)=>{n.decorate()(y,a,A),m(y,E,b)})):n.decorate()(e,a,A),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,DP(r,n),r};function Dwt(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function nZ(e={},t,n){return function(r){var a,i;if(Dwt(n)){let o=n.value,s=r[o];return(i=((a=e[o])==null?void 0:a[String(s)])??lP)==null?void 0:i[t]}if(Lv(n)&&t==="dotFill"){let{domain:o,range:s,type:c="linear"}=n;return K8(s,o,c)(Number(r[n.columnName.value]))}return n}}var Mwt=class{constructor(){Me(this,"reactRoot",null);Me(this,"parentNode",null);Me(this,"rootNode",null);Me(this,"canvasNode",null);Me(this,"svgLayerElement",null);Me(this,"svgLayerComponent",ie.jsx(ie.Fragment,{}));Me(this,"tools",null);Me(this,"margins",{top:Jf,bottom:Jf,left:Jf,right:Jf});Me(this,"chartSizes",{chartWidth:600,chartHeight:350,totalWidth:600,totalHeight:350});Me(this,"scales",{x:ei().domain([0,10]).range([0,600]),y:ei().domain([0,10]).range([350,0]),xOriginal:ei().domain([0,10]).range([0,600]),yOriginal:ei().domain([0,10]).range([350,0])});Me(this,"polygon",[]);Me(this,"onPolygonUpdateOutside",()=>{});Me(this,"zoomStateKey","");Me(this,"selectedDot",null);Me(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Me(this,"mainTitle",[]);Me(this,"legend",{width:0,height:0,items:[]});Me(this,"notCalculatedProps",{});Me(this,"allPossibleLabels",[]);Me(this,"visibleLabels",[]);Me(this,"onPolygonUpdate",e=>{this.updateByLasso(e),this.onPolygonUpdateOutside(e)})}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=Oh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateViewport(e,t,n){let r=e.scale==="log"?Rm():ei(),{minX:a,minY:i,maxX:o,maxY:s}=n;if(e.lowerValue!==void 0&&(a=Math.max(a,e.lowerValue)),e.upperValue!==void 0&&(o=Math.min(o,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 y=e.symmetricRange;if(y>=a&&y<=o){let E=Math.max(y-a,o-y);a=y-E,o=y+E}}if(typeof t.symmetricRange<"u"){let y=t.symmetricRange;if(y>=i&&y<=s){let E=Math.max(y-i,s-y);i=y-E,s=y+E}}let c=[0,this.chartSizes.chartWidth],f=r.copy().domain([a,o]).range([eE.LEFT,this.chartSizes.chartWidth-eE.RIGHT]);r.domain([f.invert(0),f.invert(this.chartSizes.chartWidth)]).range(c).nice(),this.scales.x=r,this.scales.xOriginal=r.copy();let A=t.scale==="log"?Rm():ei(),h=[this.chartSizes.chartHeight,0],m=A.copy().domain([i,s]).range([this.chartSizes.chartHeight-eE.BOTTOM,eE.TOP]);A.domain([m.invert(this.chartSizes.chartHeight),m.invert(0)]).range(h).nice(),this.scales.y=A,this.scales.yOriginal=A.copy()}updateCaptionsSize(e){let t=new ou("600 14px Arial");function n(o){return Math.max(...o.map(s=>t.getTextWidth(s)))}let{ticks:r,format:a}=w9(this.scales.y,e),i=n(r.map(a));this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:i}}createMainTitle(e){this.mainTitle=Vv(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,Jf),bottom:Jf+this.captionsSizes.xAxisCaptionsWidth+b9,left:Jf+this.captionsSizes.yAxisCaptionsWidth+b9,right:this.legend.width+(this.legend.width>0?PP:0)+Jf},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,iu(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,r){if(!e.show){this.legend={width:0,height:0,items:[]};return}let a=new ou("600 14px Arial"),i=16,o=48,s=20,c=24;function f(D,O){return Math.max(...D.map(H=>a.getTextWidth(String(H))+s),a.getTextWidth(O))}let A=[];n.forEach(D=>{let O=t[D.value];if(O.usedAes.length===0||!O.aesMap)return;let H=D.label??D.value,V=O.values,z={};V.forEach(q=>{z[q]||(z[q]={...sP}),O.usedAes.forEach(ee=>{var W,U;ee==="dotFill"&&(z[q].color=((W=O.aesMap[q])==null?void 0:W[ee])??Wt),ee==="dotSize"&&(z[q].size=((U=O.aesMap[q])==null?void 0:U[ee])??3)})}),A.push({columnKey:H,data:z,values:O.values,labels:O.labels})});let h=[],m=0,y=0,E=0,b=this.chartSizes.chartHeight,x=this.chartSizes.chartHeight;r.forEach(D=>{if(D.type==="dots"&&Lv(D.aes.dotFill)){let{domain:O,range:H,columnName:V,type:z="linear"}=D.aes.dotFill,q=V.label??V.value,ee=this.chartSizes.chartHeight,W=K8(H,O,"linear"),U=(z==="log"?Lm():ei()).domain(O).range([ee,0]),$=i2(U,O),G=o2($,q),j=E;h.push({id:"dotFill",type:"continuous",width:G,height:ee,left:j,top:0,title:q,scale:W,tickPositionScale:U,values:$}),E+=G+c,y=0}}),A.map(({columnKey:D,labels:O,values:H,data:V})=>{let z=D,q=f(H.map(G=>O[G]),z),ee=H.length*i;ee>b&&(x=ee);let W=Hl().domain(H).range(H.map(G=>V[G])),U=E,$=y;h.push({type:"dots",id:D,width:q,height:ee,left:U,top:$,title:z,scale:W,values:H,labels:O}),m=q,y+=ee+o,y>b&&(y=0,E=q+c)});let k=E+m+2*PP,_=x;this.legend={width:k,height:_,items:h}}initSettings(e,t,n,r,a,i,o,s){let{xAxis:c,yAxis:f,size:A,title:h,legend:m}=t;this.updateChartSizes(A),this.updateViewport(c,f,n),this.updateCaptionsSize(r.y),this.updateLegendSize(m,o,s,i),this.createMainTitle(h),this.updateMargins();let y=i.find(H=>H.type==="dots"),E=nZ(a,"dotFill",y.aes.dotFill),b=Ppt().data(e).value(H=>{let V=Vy(E(H.data));return[V.r/255,V.g/255,V.b/255,1]}),x=Twt().equals((H,V)=>H===V).size(50).crossValue(H=>H.x).mainValue(H=>H.y).decorate(H=>b(H)),k=HAt().scaleExtent([.1,1e3]).on("start",()=>{this.selectedDot=null}).on("zoom",H=>{let V=H.transform,z=V.rescaleX(this.scales.xOriginal),q=V.rescaleY(this.scales.yOriginal);this.scales.x.domain(z.domain()),this.scales.y.domain(q.domain()),this.zoomStateKey=`${V.x}_${V.y}_${V.k}`,this.renderSvgLayer(),this.renderWebglLayer()}).on("end",()=>{this.allPossibleLabels.forEach(H=>{H.x=this.scales.x(H.dot.x),H.y=this.scales.y(H.dot.y)}),this.visibleLabels=J8(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.renderSvgLayer()}),_=__().x(H=>H.x).y(H=>H.y).addAll(e),D=Dpt().on("point",([H])=>{var W,U;if(!H){this.selectedDot=null,this.renderSvgLayer();return}let V=this.scales.x.invert(H.x),z=this.scales.y.invert(H.y),q=(W=this.tools)==null?void 0:W.qt.find(V,z),ee=this.selectedDot&&!q||!this.selectedDot&&q||((U=this.selectedDot)==null?void 0:U.id)!==(q==null?void 0:q.id);this.selectedDot=q??null,ee&&this.renderSvgLayer()}),O=lpt({xScale:this.scales.x,yScale:this.scales.y}).xAxisHeight(()=>"0").yAxisWidth(()=>"0").svgPlotArea(_wt()).webglPlotArea(Pwt().series([x]).mapping(H=>H)).decorate(H=>{let V=H.enter();V&&!this.svgLayerElement&&(V.style("grid-template-columns","0 auto 1fr auto 0"),V.style("grid-template-rows","0 auto 1fr auto 0"),this.svgLayerElement=V.select(".svg-plot-area.plot-area svg").node()),V.select(".svg-plot-area.plot-area").call(k).call(D)});this.tools={webglChart:O,zoom:k,qt:_,fillColor:b,pointSeries:x,aesGetter:E},iu(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=nZ(e,"dotFill",n.aes.dotFill);this.tools.aesGetter=r,(a=this.tools)==null||a.fillColor.value(i=>{let o=Vy(r(i.data));return[o.r/255,o.g/255,o.b/255,1]})}updateByLasso(e){var t;this.tools!==null&&((t=this.tools)==null||t.fillColor.value(n=>{var o;let r=((o=this.tools)==null?void 0:o.aesGetter)??(()=>Wt),a=Vy(r(n.data)),i=e.length<2||Mpt(e,[n.x,n.y])?1:.2;return[a.r/255,a.g/255,a.b/255,i]}),this.renderWebglLayer())}updateData(e){this.tools!==null&&(iu(this.canvasNode).datum(e),this.tools.fillColor.data(e),this.tools.qt=__().x(t=>t.x).y(t=>t.y).addAll(e))}render(e,t,n,r,a,i,o,s,c,f,A,h){if(this.tools===null)this.initSettings(a,t,i,r,o,s,c,f),this.onPolygonUpdateOutside=h;else{let{title:m,legend:y}=t;this.updateLegendSize(y,c,f,s),this.createMainTitle(m),this.updateMargins(),this.updateAes(o,s)}this.allPossibleLabels=A,this.allPossibleLabels.forEach(m=>{m.x=this.scales.x(m.dot.x),m.y=this.scales.y(m.dot.y)}),this.visibleLabels=J8(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&&iu(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={settingsId:this.notCalculatedProps.settingsId,chartSettings:this.notCalculatedProps.chartSettings,onlyPositive:this.notCalculatedProps.onlyPositive,keyColumn:this.notCalculatedProps.keyColumn,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,onPolygonUpdate:this.onPolygonUpdate};this.svgLayerComponent=ie.jsx(Cwt,{...e}),(n=this.reactRoot)==null||n.render(this.svgLayerComponent)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},Hwt=Mwt,MP=I.object({type:I.literal("grouping"),value:I.string()}),Iwt=I.object({type:I.literal("dots"),aes:I.optional(I.object({dotFill:I.optional(I.union([I.string(),MP,o1(I.string())])),dotShape:I.optional(I.union([Od,MP])),dotSize:I.optional(I.union([I.number(),MP]))}))}),Rwt=Iwt,Lwt=I.object({type:I.literal("scatterplot-umap"),title:I.object({name:I.string(),show:I.optional(I.boolean()),position:I.optional(Rv)}),size:I.optional(I.object({width:I.optional(I.number()),height:I.optional(I.number())})),legend:I.optional(I.object({show:I.optional(I.boolean()),position:I.optional(Dg)})),tooltips:I.optional(I.object({show:I.optional(I.boolean()),content:I.optional(I.array(Tr))})),frame:I.optional(I.object({type:I.optional(f9)})),keyColumn:Tr,x:Tr,y:Tr,xAxis:I.optional(a2),yAxis:I.optional(a2),grouping:I.optional(I.array(Tr)),label:I.optional(Tr),inheritedAes:I.optional(I.record(I.string(),r2)),layers:I.array(Rwt)}),Nwt=class{constructor(e){Me(this,"type","dots");Me(this,"aes",{dotFill:Wt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},rZ=class{constructor(e){Me(this,"id");Me(this,"type","scatterplot-umap");Me(this,"keyColumn");Me(this,"x");Me(this,"y");Me(this,"grouping");Me(this,"label");Me(this,"chartSettings");Me(this,"inheritedAes");Me(this,"layers");var t,n,r,a;Lwt.parse(e),this.id=Ir.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 Nwt(i);throw new Error("Unknown layer type")}).filter(Boolean)}};function aZ(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function $wt(e,t,n,r){return t.reduce((a,i)=>{let o=Ir.uniqBy(e.rows,h=>h[i.value]),s=h=>String(h[i.value]),c=h=>i.valueLabels?String(h[i.valueLabels]):s(h),f=new Set;n.forEach(h=>{h.aes&&Object.entries(h.aes).forEach(([m,y])=>{aZ(y)&&y.value===i.value&&f.add(m)})});let A=o.reduce((h,m)=>(h[s(m)]=c(m),h),{});return a[i.value]={values:o.map(s).sort((h,m)=>A[h].localeCompare(A[m],"en",{numeric:!0})),usedAes:[...f],aesMap:r[i.value],labels:A},a},{})}var Fwt=10;function Vwt(e){let t=[],n=new ou("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:Fwt})}return t}var Owt=class extends Pg{constructor(t,n,r){super(t,n);Me(this,"settings");Me(this,"chartRenderer",new Hwt);Me(this,"onPolygonUpdate",()=>YS);Me(this,"calculatedData",null);this.settings=new rZ(n),r&&(this.onPolygonUpdate=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 rZ(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,o;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)!==((o=n.label)==null?void 0:o.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 o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{x:t,y:n,keyColumn:r,label:a,grouping:i,layers:o,inheritedAes:s}=this.settings,c={x:!0,y:!0},f={minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0},A=this.data.rows.reduce((m,y)=>{if(y[t.value]===null||y[n.value]===null)return m;let E=Number(y[t.value]),b=Number(y[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(y[r.value]),label:a&&y[a.value]?String(y[a.value]):null,data:y}),m},[]),h=$wt(this.data,i,o,s);this.calculatedData={onlyPositive:c,dots:A,allPossibleLabels:Vwt(A),dotsExtents:f,legendLabels:h},this.chartRenderer.updateData(A)}_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 o=new Set;n.forEach(s=>{s.aes&&Object.entries(s.aes).forEach(([c,f])=>{aZ(f)&&f.value===i.value&&o.add(c)})}),t.legendLabels[i.value].usedAes=[...o],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:o}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.onlyPositive,this.calculatedData.dots,this.calculatedData.dotsExtents,a,i,this.calculatedData.legendLabels,o,this.calculatedData.allPossibleLabels,this.onPolygonUpdate)}};function Qwt(e){let t=rR(e),n=tu(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function zwt(e){let t=tu(e),[n,r]=$A(e);return t===void 0||n===void 0||r===void 0?a=>a:a=>(a-t)/(r-n)}function Uwt(e,t){return e==="standardScaling"?Qwt(t):e==="meanNormalization"?zwt(t):n=>n}function jwt(e,t,n,r,a,i,o,s,c,f){let A={meta:{facetKeys:o,xKeys:[],yKeys:[],xLabels:{},yLabels:{},facetKeyValues:o.reduce((b,x,k)=>(b[x]=s[k],b),{}),valueExtentSize:[1/0,-1/0],valueExtentColor:[1/0,-1/0]},facets:{}},h=new Set,m=new Set,y=t.valueLabels??t.value,E=n.valueLabels??n.value;if(e.rows.forEach(b=>{let x=i.length?i.map(H=>b[H.value]).join("_"):"null",k=b[t.value],_=b[n.value],D=b[r.value]??f,O=b[a.value]??f;if(!(k===null||_===null||D===null||O===null)){if(A.facets[x]||(A.facets[x]={xKeys:[],yKeys:[],cells:{}}),A.facets[x].xKeys.push(k),A.facets[x].yKeys.push(_),h.has(k)||(h.add(k),A.meta.xKeys.push(k)),m.has(_)||(m.add(_),A.meta.yKeys.push(_)),A.facets[x].cells[k]||(A.facets[x].cells[k]={}),A.meta.valueExtentSize[0]=Math.min(D,A.meta.valueExtentSize[0]),A.meta.valueExtentSize[1]=Math.max(D,A.meta.valueExtentSize[1]),A.meta.valueExtentColor[0]=Math.min(O,A.meta.valueExtentColor[0]),A.meta.valueExtentColor[1]=Math.max(O,A.meta.valueExtentColor[1]),A.facets[x].cells[k][_])throw Error(`More than 1 value for x=${k}, y=${_}`);if(A.meta.xLabels[k]&&String(b[y])!==A.meta.xLabels[k])throw Error(`More than 1 x-label value for x=${k}`);if(A.meta.yLabels[_]&&String(b[E])!==A.meta.yLabels[_])throw Error(`More than 1 y-label value for y=${_}`);A.meta.xLabels[k]=String(b[y]),A.meta.yLabels[_]=String(b[E]),A.meta&&(A.facets[x].cells[k][_]={id:`${k}_${_}`,x:k,y:_,sizeValue:D,normalizedSizeValue:D,colorValue:O,normalizedColorValue:O,data:b})}}),o.forEach(b=>{let x=A.facets[b];x.xKeys=Ir.uniq(x.xKeys),x.yKeys=Ir.uniq(x.yKeys)}),c){let b=[1/0,-1/0];o.forEach(x=>{let{xKeys:k,yKeys:_,cells:D}=A.facets[x],O=c.direction==="row"?k:_,H=c.direction==="row"?_:k,V=c.direction==="row"?(z,q)=>{var ee;return(ee=D[z])==null?void 0:ee[q]}:(z,q)=>{var ee;return(ee=D[q])==null?void 0:ee[z]};H.forEach(z=>{let q=[];O.forEach(W=>{var $;let U=($=V(W,z))==null?void 0:$.colorValue;U!==void 0&&q.push(U)});let ee=Uwt(c.method,q);O.forEach(W=>{let U=V(W,z);U!==void 0&&(U.normalizedColorValue=ee(U.colorValue),b[0]=Math.min(U.normalizedColorValue,b[0]),b[1]=Math.max(U.normalizedColorValue,b[1]))})})}),A.meta.valueExtentColor=b}return A.meta.valueExtentSize[0]===1/0&&(A.meta.valueExtentSize[0]=0),A.meta.valueExtentSize[1]===-1/0&&(A.meta.valueExtentSize[1]=0),A.meta.valueExtentColor[0]===1/0&&(A.meta.valueExtentColor[0]=0),A.meta.valueExtentColor[1]===-1/0&&(A.meta.valueExtentColor[1]=0),A}var Gwt=15,Rg=8,tE=30,Ywt=48,Wwt=24,nE=16,C2=4,rE=4,iZ=20,Xwt=16,u1={left:["axis","axisTitle"],right:["axis","axisTitle"],top:["axis","axisTitle","facetTitle"],bottom:["axis","axisTitle"]};function Kwt(e,t,n,r,a,i,o){let s=r.includes(t.position),c=r.includes(e.position),f=a.length>1,A=e.showTicks?rE:0,h=t.showTicks?rE:0,m=c&&e.showTitle?tE:0,y=s&&t.showTitle?tE:0,E=c&&e.showAxisLabels&&i>nE?n.xAxisCaptions+A+C2:0,b=s&&t.showAxisLabels&&o>nE?n.yAxisCaptions+h+C2:0;return{left:{axisTitle:t.position==="left"?y:0,axis:t.position==="left"?b:0},right:{axisTitle:t.position==="right"?y:0,axis:t.position==="right"?b:0},top:{facetTitle:f?Ywt: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 Zwt(e,t,n){return{left:u1.left.reduce((r,a,i)=>{let o=i>0?u1.left[i-1]:null,s=e.left[a];return r[a]={x:o?r[o].x-s:-s,y:0,width:s,height:n,isVisible:s>0},r},{}),right:u1.right.reduce((r,a,i)=>{let o=i>0?u1.right[i-1]:null,s=e.right[a];return r[a]={x:o?r[o].x+r[o].width:t,y:0,width:s,height:n,isVisible:s>0},r},{}),top:u1.top.reduce((r,a,i)=>{let o=i>0?u1.top[i-1]:null,s=e.top[a];return r[a]={x:0,y:o?r[o].y-s:-s,width:t,height:s,isVisible:s>0},r},{}),bottom:u1.bottom.reduce((r,a,i)=>{let o=i>0?u1.bottom[i-1]:null,s=e.bottom[a];return r[a]={x:0,y:o?r[o].y+r[o].height:n,width:t,height:s,isVisible:s>0},r},{})}}function Jwt(e,t,n,r){let{xLabels:a,yLabels:i}=n.meta,o=e.xAxisLabels/180*Math.PI,s=e.yAxisLabels/180*Math.PI,c=0,f=0,A=e.xAxisLabels===45;if(A){let m=n.meta.xKeys,y=t.x,E=y>nE,b=a[m[0]];c=Math.max(c,(A&&E?r.getTextWidth(b)*Math.cos(o):0)-y/2)}let h=e.yAxisLabels===45;if(h){let m=n.meta.yKeys;if(m.length){let y=t.y,E=y>nE,b=i[m[m.length-1]];f=Math.max(f,(h&&E?r.getTextWidth(b)*Math.cos(s):0)-y/2)}}return{xCaptionTail:c,yCaptionTail:f}}function qwt({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:f,xLabels:A,yLabels:h}){let m=i.showTicks?rE:0,y=o.showTicks?rE:0,E=e.top.axis.isVisible||e.bottom.axis.isVisible,b=e.top.axisTitle.isVisible?e.top.axisTitle:e.bottom.axisTitle,x=e.top.axis.isVisible?e.top.axis:e.bottom.axis,k=e.left.axis.isVisible||e.right.axis.isVisible,_=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,D=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:Wt,fill:"none"})]}),E&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${x.x},${x.y})`,children:[n.map(O=>{let H=f.xAxisLabels!==0,V=i.position==="bottom",z=V?0:x.height,q=V?z+m:z-m,ee=V?q+C2:q-C2,W=a.x(O)+s/2,U=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:W,x2:W,y1:z,y2:q,stroke:Wt}),ie.jsx("text",{x:W,y:ee,textAnchor:H?V?"end":"start":"middle",transform:`rotate(${U},${W},${ee})`,dominantBaseline:H?"central":V?"hanging":"auto",children:A[O]})]},O)}),t&&ie.jsx("rect",{width:x.width,height:x.height,stroke:Wt,fill:"none"})]})]}),ie.jsxs("g",{children:[_.isVisible&&ie.jsx("g",{transform:`translate(
|
|
15181
|
+
${_.y+_.height/2})`,children:ie.jsx("text",{transform:`rotate(${o.position==="left"?-90:90})`,dominantBaseline:"central",textAnchor:"middle",children:o.title})}),t&&ie.jsx("rect",{x:_.x,y:_.y,width:_.width,height:_.height,stroke:Wt,fill:"none"}),k&&ie.jsx("g",{fontSize:"14px",transform:`translate(${D.x},${D.y})`,children:r.map(O=>{let H=f.yAxisLabels!==0,V=o.position==="left",z=-(90-f.yAxisLabels),q=f.yAxisLabels===0?"middle":V?"end":"start",ee=H?"central":V?"auto":"hanging",W=V?D.width:0,U=V?W-y:W+y,$=V?U-u2:U+u2,G=a.y(O)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:W,x2:U,y1:G,y2:G,stroke:Wt}),ie.jsx("text",{x:$,y:G,textAnchor:q,transform:`rotate(${z},${$},${G})`,dominantBaseline:ee,children:h[O]})]},O)})}),t&&ie.jsx("rect",{x:D.x,y:D.y,height:D.height,width:D.width,stroke:Wt,fill:"none"})]})]})}function O5t({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:h,yKeysByGroups:m,xGroupKeyValues:y,yGroupKeyValues:E,labelAngles:b,xLabels:x,yLabels:k}){return ie.jsxs("g",{fontWeight:"500",children:[ie.jsx(V5t,{sideElementBBoxes:e,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:b,xLabels:x,yLabels:k,debug:t}),ie.jsx(F5t,{sideElementBBoxes:e,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:h,yKeysByGroups:m,xGroupKeyValues:y,yGroupKeyValues:E,scales:a,stepX:s,stepY:c,xAxis:i,yAxis:o,labelAngles:b,debug:t})]})}function yK(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 wK(e,t,n,r,a){if(!n)return"";let i=n.aes[e];if(!d9(i))return i;let o=i.value,s=a[o],c=r[o][t.data.keys[0]];return t.data.keys.every(f=>c===r[o][f])?s(String(c))[e]:s.unknown()[e]}var CK={x:0,y:0,width:0,height:0};function Q5t({dendrograms:e,sideElementBBoxes:t,xDataByKeys:n,yDataByKeys:r,aesScales:a}){let i=e.x.data,o=e.y.data,s=i?t[i.position].dendro:CK,c=o?t[o.position].dendro:CK;function f(h,m){return wK(h,m,i,n,a)}function A(h,m){return wK(h,m,o,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 y=h.links(),E=h.descendants();return ie.jsxs("g",{children:[y.map(b=>{let x=i.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:yK(b,i.position),stroke:f("lineColor",x),strokeWidth:f("lineWidth",x),strokeDasharray:tp(f("lineShape",x)),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:df(f("dotShape",b),f("dotSize",b),f("dotFill",b))},`${b.x},${b.y}`))]},m)})}),ie.jsx("g",{transform:`translate(${c.x},${c.y})`,children:o&&!o.hidden&&e.y.trees.map((h,m)=>{let y=h.links(),E=h.descendants();return ie.jsxs("g",{children:[y.map(b=>{let x=o.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:yK(b,o.position),stroke:A("lineColor",x),strokeWidth:A("lineWidth",x),strokeDasharray:tp(A("lineShape",x)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),o.showNodes&&E.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:df(A("dotShape",b),A("dotSize",b),A("dotFill",b))},`${b.x},${b.y}`))]},m)})})]})}function z5t({frame:e,width:t,height:n,xGroupKeys:r,yGroupKeys:a,xKeysByGroups:i,yKeysByGroups:o,scales:s,stepX:c,stepY:f}){return ie.jsxs("g",{children:[e.type==="full"&&ie.jsx("rect",{fill:"none",stroke:Wt,x:"0",y:"0",width:t,height:n}),e.type==="groups"&&r.map(A=>{let h=i[A].length;if(h===0)return null;let m=h*c,y=s.x(i[A][0]);return a.map(E=>{let b=o[E].length;if(b===0)return null;let x=b*f,k=s.y(o[E][0]);return ie.jsx("rect",{x:y,y:k,width:m,height:x,stroke:Wt,fill:"none"},`${y}_${k}`)})})]})}function xP(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 U5t(e,t,n=[]){let r=e.data,a=[`X: ${t.xLabels[e.x]}`,`Y: ${t.yLabels[e.y]}`,`Value: ${xP(e.value)}${e.value!==e.normalizedValue?` (${xP(e.normalizedValue)})`:""}`];for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function j5t(e,t){let n=[];return e.xKey&&n.push(`X: ${t.xLabels[e.xKey]}`),e.yKey&&n.push(`Y: ${t.yLabels[e.yKey]}`),n.push(`${e.title}: ${xP(e.value)}`),n}function G5t({dendrograms:e,facetKey:t,dimensions:n,scales:r,cells:a,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,colorScale:f,chartSettings:A,cellsMeta:h,stepX:m,stepY:y,sharedX:E,sharedY:b,annotations:x,annotationColorScales:k,dendrogramAesScales:_,aes:D,labelAngles:O,chartSizes:H,margins:V,tooltipsContainer:z}){let[q,ee]=nr.useState(null),[W,U]=nr.useState(null),{xAxis:$,yAxis:G,tooltips:j}=A,{width:re,height:se}=n.inner,{padding:Se,chartEdgeSides:oe,sideElementBBoxes:Ce}=n,{xGroupKeyValues:Te,yGroupKeyValues:fe,xLabels:me,yLabels:Xe}=h,Ne=r.x.domain(),Ge=r.y.domain(),Qe={left:V.left+n.left+Se.left,right:H.totalWidth-(V.left+n.left+Se.left),top:V.top+n.top+Se.top,bottom:H.totalHeight-(V.top+n.top+Se.top)},We=!1;return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:S3t,children:[ie.jsxs("g",{transform:`translate(${Se.left},${Se.top})`,children:[ie.jsx($5t,{sideElementBBoxes:Ce,annotations:x,cellsMeta:h,annotationColorScales:k,sharedX:E,sharedY:b,chartEdgeSides:oe,width:re,height:se,scales:r,stepX:m,stepY:y,aes:D,frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,setSelectedAnnotation:U}),ie.jsx(Q5t,{dendrograms:e,sideElementBBoxes:Ce,xDataByKeys:h.xDataByKeys,yDataByKeys:h.yDataByKeys,aesScales:_}),Ce.top.facetTitle.isVisible&&ie.jsx("text",{x:Ce.top.facetTitle.x,y:Ce.top.facetTitle.y+Ce.top.facetTitle.height-E3t,fontWeight:"500",fontSize:"20px",children:h.facetKeyValues[t].join(", ")}),We,Ne.map(dt=>Ge.map(je=>{var He;let rt=(He=a==null?void 0:a[dt])==null?void 0:He[je];return rt?ie.jsx("rect",{x:r.x(dt),y:r.y(je),width:m,height:y,stroke:D.cellStrokeColor,fill:rt.value===null?D.emptyCellColor:f(rt.normalizedValue),onMouseOver:()=>ee(rt),onMouseLeave:()=>ee(null)},rt?rt.id:`${dt}_${je}`):null})),ie.jsx(z5t,{frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,scales:r,stepX:m,stepY:y,width:re,height:se}),ie.jsx(O5t,{xAxis:$,yAxis:G,scales:r,stepX:m,stepY:y,debug:We,sideElementBBoxes:Ce,xKeys:Ne,yKeys:Ge,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,xGroupKeyValues:Te,yGroupKeyValues:fe,labelAngles:O,xLabels:me,yLabels:Xe})]}),A.tooltips.show&&q&&ie.jsx(Mc,{content:U5t(q,h,j==null?void 0:j.content),x:r.x(String(q.x))+m/2,y:r.y(String(q.y))+y/2,offset:Ne.length>1?m/2:0,active:!0,sideDistances:Qe,container:z}),A.tooltips.show&&W&&ie.jsx(Mc,{content:j5t(W,h),x:W.x,y:W.y,offset:0,active:!0,sideDistances:Qe,container:z})]})}var bK=14,X8=12,EK=-12;function Y5t({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(o=>{let s=i.scale.domain(),c=s[s.length-1]-s[0],f=c>0?100-(o-s[0])/c*100:0;return ie.jsx("stop",{offset:`${f}%`,stopColor:i.scale(o)},o)})},i.id))}),n.map(i=>ie.jsxs("g",{transform:`translate(${i.left},${i.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:EK,children:i.title}),ie.jsx("rect",{x:"0",y:"0",width:bK,height:t,stroke:Wt,fill:`url(#${i.id})`}),ie.jsx("g",{transform:`translate(${bK},0)`,children:i.values.map(o=>{let s=i.scale.domain(),c=s[s.length-1]-s[0],f=c>0?t-t*(o-s[0])/c:0;return ie.jsxs("g",{transform:`translate(0,${f})`,children:[ie.jsx("line",{x1:"0",x2:-4,stroke:Wt}),ie.jsx("text",{x:8,y:4,children:o})]},o)})}),a]},i.id)),r.map(i=>ie.jsxs("g",{transform:`translate(${i.left},${i.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:EK,children:i.title}),i.values.map((o,s)=>ie.jsxs("g",{transform:`translate(0, ${s*(X8+4)})`,children:[ie.jsx("rect",{x:"0",y:"0",width:X8,height:X8,fill:i.scale(o),rx:"1",ry:"1",stroke:Wt}),ie.jsx("text",{x:X8+8,y:10,children:o})]},o)),a]},i.id))]})}function W5t({margins:e,captionsSizes:t,settingsId:n,chartSettings:r,chartSizes:a,chartsDimensions:i,facetKeys:o,facetSettings:s,xGroupKeys:c,yGroupKeys:f,scales:A,colorScale:h,groupedCells:m,cellsMeta:y,step:E,annotations:b,annotationColorScales:x,legend:k,aes:_,dendrograms:D,dendrogramAesScales:O,columnsCount:H,labelAngles:V}){let[z,q]=nr.useState(),ee=nr.useRef(null);nr.useEffect(()=>{ee.current&&q(ee.current)},[]);let W=i[o[0]].padding,U=i[o[H-1]].padding,$=e.left+a.chartsWidth+Q8,G=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:Hg}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(p2,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:W.left,rightPadding:U.right,chartsWidth:a.chartsWidth}),o.map(j=>{let{cells:re,xKeysByGroups:se,yKeysByGroups:Se}=m[j];return ie.jsx(G5t,{dendrograms:D[j],captionsSizes:t,facetKey:j,dimensions:i[j],xGroupKeys:c,yGroupKeys:f,xKeysByGroups:s.sharedX?y.xKeysByGroups:se,yKeysByGroups:s.sharedY?y.yKeysByGroups:Se,sharedX:s.sharedX,sharedY:s.sharedY,scales:{x:A.x[j],y:A.y[j]},cells:re,cellsMeta:y,stepX:E.x[j],stepY:E.y[j],colorScale:h,chartSettings:r,aes:_,annotations:b,annotationColorScales:x,dendrogramAesScales:O,labelAngles:V,margins:e,chartSizes:a,tooltipsContainer:z},j)})]}),ie.jsx("g",{transform:`translate(${$},${G})`,children:ie.jsx(Y5t,{data:k,height:a.chartHeight})}),ie.jsx("g",{ref:ee})]})})}function SK(e,t,n){function r(a){a[n]=t(a.data.height),a.children&&a.children.forEach(r)}r(e)}function xK(e,t,n,r=n){function a(i){i[r]=i[n]+t,i.children&&i.children.forEach(a)}a(e)}var X5t=(e,t)=>{let n=Math.min(...t),r=Math.max(...t);if(n===r){let o=e%2===0?[]:[n];for(let s=1;s<e/2+1;s++)o.push(n+s),o.unshift(n-s);return o}if(e<2)return[n,r];let a=(r-n)/(e-1),i=[];for(let o=0;o<e-1;o++)i.push(n+a*o);return i.push(r),i};function BK(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])),X5t(t,r)}var K5t=class{constructor(){Me(this,"reactRoot",null);Me(this,"parentNode",null);Me(this,"rootNode",null);Me(this,"component",ie.jsx(ie.Fragment,{}));Me(this,"chartsDimensions",{});Me(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Me(this,"margins",{top:Ig,bottom:Ig,left:Ig,right:Ig});Me(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xGroupCaptions:$v,yGroupCaptions:$v,xCaptionTail:0,yCaptionTail:0});Me(this,"labelAngles",{xAxisLabels:0,yAxisLabels:0,xGroupLabels:0,yGroupLabels:0});Me(this,"columnsCount",1);Me(this,"rowsCount",1);Me(this,"scales",{x:{null:Hl().domain(["null"]).range([1])},y:{null:Hl().domain(["null"]).range([1])}});Me(this,"step",{x:{},y:{}});Me(this,"colorScale",ei().domain([0,1]).range(["white","black"]));Me(this,"annotationColorScales",{});Me(this,"dendrogramAesScales",{});Me(this,"legend",{width:0,height:0,discreteItems:[],continuousItems:[]});Me(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=Oh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Ig,bottom:Ig,left:Ig,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,o=48,s=24,c=[],f=[],A=0,h=0,m=0,y=this.chartSizes.chartsHeight,E=this.chartSizes.chartsHeight;if(e==="continuous"){let k=this.colorScale,_=i2(k,a),D=r.label??r.value;c.push({id:"heatmapValue",width:o2(_,D),height:this.chartSizes.chartHeight,left:0,top:0,scale:k,values:_,title:D}),m=0,h=c[0].width,A+=h+s}else if(e==="discrete"){let k=this.colorScale,_=r.label??r.value,D=dP(k,_),O=k.domain(),H=O.length*i;if(m+H>E)y=Math.max(y,H),m=H+o,A+=h+s,h=D,f.push({id:"heatmapValue",width:D,height:H,left:A,top:0,title:_,scale:k,values:O});else{D>h&&(h=D);let V=m;f.push({id:"heatmapValue",width:D,height:H,left:A,top:V,title:_,scale:k,values:O}),m+=H+o}}n.filter(k=>k.type==="continuous").forEach(k=>{let _=this.chartSizes.chartHeight,D=this.annotationColorScales[k.id].scale,O=i2(D,a),H=k.valueColumn.label??k.valueColumn.value,V=o2(O,H),z=A;c.push({id:k.id,width:V,height:_,left:z,top:0,title:H,scale:D,values:O}),A+=V+s,m=0}),n.filter(k=>k.type==="discrete").forEach(k=>{let _=this.annotationColorScales[k.id].scale,D=k.valueColumn.label??k.valueColumn.value,O=dP(_,D),H=_.domain(),V=H.length*i;if(m+V>E)y=Math.max(y,V),A+=h+s,h=O,m=V+o,f.push({id:k.id,width:O,height:V,left:A,top:0,title:D,scale:_,values:H});else{O>h&&(h=O);let z=m;f.push({id:k.id,width:O,height:V,left:A,top:z,title:D,scale:_,values:H}),m+=V+o}});let b=A+h+2*Q8,x=y;this.legend={width:b,height:x,continuousItems:c,discreteItems:f}}updateCaptionsSize(e,t,n,r){let a=new ou("bold 14px Arial"),{xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,xLabels:f,yLabels:A}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle,xGroupLabels:t.groupLabelsAngle,yGroupLabels:n.groupLabelsAngle};let h=Ir.flatten(Object.values(s)),m=Ir.flatten(Object.values(c)),y=h.map(z=>a.getTextWidth(f[z])),E=m.map(z=>a.getTextWidth(A[z])),b=i.map(z=>a.getTextWidth(z)),x=o.map(z=>a.getTextWidth(z)),{xCaptionTail:k,yCaptionTail:_}=L5t(this.labelAngles,r,this.step,e,a),D=this.labelAngles.xGroupLabels/180*Math.PI,O=this.labelAngles.yGroupLabels/180*Math.PI,H=this.labelAngles.xAxisLabels/180*Math.PI,V=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:k,yCaptionTail:_,xGroupCaptions:Math.max(...b,0)*Math.sin(D)||$v,yGroupCaptions:Math.max(...x,0)*Math.sin(O)||$v,xAxisCaptions:Math.max(...y,0)*Math.sin(H)||$v,yAxisCaptions:Math.max(...E,0)*Math.sin(V)||$v}}updateChartDimensions(e,t,n,r,a,i,o,s,c,f){let A=t.length,h=Math.min(a.nRows??A,A),m=Math.min(a.nCols??A,A);this.columnsCount=a.nRows?Math.ceil(A/h):m,this.rowsCount=Math.ceil(A/this.columnsCount);let{width:y,height:E}=e,{sharedX:b,sharedY:x}=a;this.chartsDimensions={};let k=0,_=0;t.forEach((H,V)=>{let z=V%this.columnsCount+1,q=gK(V,t.length,this.columnsCount,this.rowsCount),ee=this.step.x[H],W=this.step.y[H],U=M5t(i,o,this.captionsSizes,s,c,f,q,b,x,t,n,r,ee,W),$=R5t(s,q,b,x);function G(oe){return Math.max(s1[oe].reduce((Ce,Te)=>Ce+U[oe][Te],0),$[oe],C3t)}let j={left:G("left"),right:G("right"),top:G("top"),bottom:G("bottom")};j.left<this.captionsSizes.xCaptionTail&&(j.left=this.captionsSizes.xCaptionTail),j.bottom<this.captionsSizes.yCaptionTail&&(j.bottom=this.captionsSizes.yCaptionTail);let re=H5t(U,y,E),se=y+j.left+j.right,Se=E+j.top+j.bottom;this.chartsDimensions[H]={left:k,top:_,inner:{width:y,height:E},outer:{width:se,height:Se},padding:j,sideElementBBoxes:re,chartEdgeSides:q},k+=se,z===this.columnsCount&&(k=0,_+=Se)});let D=t.slice(0,this.columnsCount).reduce((H,V)=>H+this.chartsDimensions[V].outer.width,0),O=t.filter((H,V)=>V%this.columnsCount===0).reduce((H,V)=>H+this.chartsDimensions[V].outer.height,0);this.chartSizes.chartsWidth=D,this.chartSizes.chartsHeight=O}updateChartsSizes(e){let{width:t,height:n}=e;this.chartSizes.chartWidth=t,this.chartSizes.chartHeight=n}updateScales(e,t,n,r,a,i,o,s,c){let{width:f,height:A}=a,{meta:h,facets:m}=t,{sharedX:y,sharedY:E}=r,b=(k,_={})=>[...k].sort((D,O)=>i.sorting==="asc"?(_[D]??D).localeCompare(_[O]??O,"en",{numeric:!0}):(_[O]??O).localeCompare(_[D]??D,"en",{numeric:!0})),x=(k,_={})=>[...k].sort((D,O)=>o.sorting==="asc"?(_[D]??D).localeCompare(_[O]??O,"en",{numeric:!0}):(_[O]??O).localeCompare(_[D]??D,"en",{numeric:!0}));e.forEach(k=>{let _=m[k],D=b(h.xGroupKeys),O=x(h.yGroupKeys),{xKeysByGroups:H}=y?h:_,{yKeysByGroups:V}=E?h:_,z=D.map(Ce=>H[Ce].length),q=O.map(Ce=>V[Ce].length),ee=z.reduce((Ce,Te)=>Ce+Te,0),W=q.reduce((Ce,Te)=>Ce+Te,0),U=(f-(z.filter(Ce=>Ce>0).length-1)*n)/ee,$=(A-(q.filter(Ce=>Ce>0).length-1)*n)/W,G=[],j=[],re=0;D.forEach(Ce=>{let Te=s?H[Ce]:b(H[Ce],h.xLabels);j.push(...Te),Te.forEach(()=>{G.push(re),re+=U}),Te.length>0&&(re+=n)});let se=[],Se=[],oe=0;O.forEach(Ce=>{let Te=c?V[Ce]:x(V[Ce],h.yLabels);Se.push(...Te),Te.forEach(()=>{se.push(oe),oe+=$}),Te.length>0&&(oe+=n)}),this.scales.x[k]=Hl().domain(j).range(G),this.scales.y[k]=Hl().domain(Se).range(se),this.step.x[k]=U,this.step.y[k]=$})}updateAesScale(e,t,n,r,a,i,o){if(e==="continuous")n.valueColors?this.colorScale=ei().domain(n.valuesByColors??BK(o,n.valueColors.length,t)).range(n.valueColors):n.colorsList&&(this.colorScale=ei().domain(BK(o,n.colorsList.length,t)).range(n.colorsList));else if(n.colorsMap){let f=Object.entries(n.colorsMap);this.colorScale=Hl().domain(f.map(A=>A[0])).range(f.map(A=>A[1])).unknown("#ccc")}else n.colorsList&&(this.colorScale=mK(n.colorsList,i.map(String)));let{xDataByKeys:s,yDataByKeys:c}=a.meta;r.forEach(f=>{let{colors:A,type:h,axis:m,valueColumn:y}=f,E=(m==="x"?s:c)[y.value];if(h==="discrete"){let b=Ir.uniq(Object.values(E).map(String)).sort();this.annotationColorScales[f.id]={type:"discrete",scale:mK(A,b)}}else{let b=Object.values(E).map(Number);if(!b.length)return;let[x=b[0],k=b[0]]=$A(b);this.annotationColorScales[f.id]={type:"continuous",scale:I5t(A,x,k,0,.5,1)}}})}updateDendrogram(e,t,n,r,a,i,o){e.forEach(s=>{this.dendrograms[s]={x:{trees:[],data:i},y:{trees:[],data:o}};let{xKeysByGroups:c,yKeysByGroups:f}=r[s],{hierarchyX:A,hierarchyY:h}=a[s],m=Math.max(...A.map(E=>E.data.height)),y=Math.max(...h.map(E=>E.data.height));i&&(this.dendrograms[s].x.trees=A.map((E,b)=>{let x=t[b],k=c[x];vB().separation(()=>1).size([k.length*this.step.x[s],i.size])(E);let _=E,D=ei().domain(i.position==="top"?[0,m]:[m,0]).range([i.size,0]);return SK(_,D,"y"),xK(_,this.scales.x[s](k[0]),"x"),_}),this.dendrograms[s].x.data=i),o&&(this.dendrograms[s].y.trees=h.map((E,b)=>{let x=n[b],k=f[x];vB().separation(()=>1).size([k.length*this.step.y[s],o.size])(E);let _=E,D=ei().domain(o.position==="left"?[0,y]:[y,0]).range([o.size,0]);return xK(_,this.scales.y[s](k[0]),"x","y"),SK(_,D,"x"),_}),this.dendrograms[s].y.data=o)})}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]=Hl().domain(i).range(i.map(o=>({...HX,...a[o]}))).unknown(HX),n},{})}render(e,t,n,r,a,i,o,s,c,f,A,h,m){var ee;let{meta:y,facets:E}=a,{facetKeys:b,xGroupKeys:x,yGroupKeys:k,valueExtent:_}=y,{xAxis:D,yAxis:O,title:H,size:V,valueType:z}=t;this.updateChartsSizes(V),this.updateAesScale(z,_,r,i,a,h,m),this.updateScales(b,a,r.groupGap,n,V,t.xAxis,t.yAxis,s,c),this.updateCaptionsSize(a,D,O,n),this.updateChartDimensions(V,b,x,k,n,D,O,i,s,c),this.updateLegendSize(z,t.legend,i,o,_),this.updateMargins(H),this.updateDendrogram(b,x,k,E,f,s,c),this.updateDendrogramAesScales(A);let q=ie.jsx(W5t,{aes:r,annotations:i,annotationColorScales:this.annotationColorScales,captionsSizes:this.captionsSizes,cellsMeta:y,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:x,yGroupKeys:k});this.component=q,(ee=this.reactRoot)==null||ee.render(q)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},Z5t=K5t,BP={lineColor:Wt,dotShape:"21",dotFill:Wt,dotSize:3,lineShape:"solid",lineWidth:1},kK={size:150,distance:"euclidean",linkage:"average",fillNA:0,showNodes:!0,hidden:!1,edgeInheritance:"up",aes:BP},TK=class{constructor(e){Me(this,"id");Me(this,"type","heatmap");Me(this,"facetSettings");Me(this,"xColumn");Me(this,"xGroupBy");Me(this,"yColumn");Me(this,"yGroupBy");Me(this,"valueColumn");Me(this,"facetBy");Me(this,"normalization");Me(this,"chartSettings");Me(this,"aes");Me(this,"annotations");Me(this,"dendrogramX");Me(this,"dendrogramY");Me(this,"inheritedDendrogramAes");Me(this,"NAValueAs");var t,n,r,a,i,o,s,c,f,A,h,m,y;if(Iyt.parse(e),this.id=Ir.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,sorting:"asc",...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,sorting:"asc",...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:((o=e.aes)==null?void 0:o.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:((A=e.aes)==null?void 0:A.groupGap)??3,emptyCellColor:((h=e.aes)==null?void 0:h.emptyCellColor)??"white"},this.annotations=(e.annotations??[]).map(E=>E.axis==="x"?{id:Ir.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:Ir.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?{...kK,position:"top",...e.dendrogramX,aes:{...BP,...(m=e.dendrogramX)==null?void 0:m.aes}}:null,this.dendrogramY=e.dendrogramY?{...kK,position:"left",...e.dendrogramY,aes:{...BP,...(y=e.dendrogramY)==null?void 0:y.aes}}:null,this.inheritedDendrogramAes=e.inheritedDendrogramAes??null}},J5t=class extends Pg{constructor(t,n){super(t,n);Me(this,"settings");Me(this,"chartRenderer",new Z5t);Me(this,"calculatedData",null);this.settings=new TK(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 TK(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(),p3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var H,V,z,q,ee,W,U,$,G,j,re,se;let{xColumn:r,yColumn:a,valueColumn:i,xGroupBy:o,yGroupBy:s,facetBy:c,annotations:f,chartSettings:A,facetSettings:h,dendrogramX:m,dendrogramY:y,normalization:E,NAValueAs:b}=n,x=Object.values(((H=t.dendrogramX)==null?void 0:H.aes)||{}).filter(d9),k=Object.values((m==null?void 0:m.aes)||{}).filter(d9),_=Object.values(((V=t.dendrogramY)==null?void 0:V.aes)||{}).filter(d9),D=Object.values((y==null?void 0:y.aes)||{}).filter(d9);function O(Se,oe){return Se.length!==oe.length||Se.some((Ce,Te)=>Ce.value!==oe[Te].value)}return t.xColumn.value!==r.value||t.yColumn.value!==a.value||t.valueColumn.value!==i.value||O(t.xGroupBy,o)||O(t.yGroupBy,s)||O(t.facetBy,c)||O(t.annotations.map(Se=>Se.valueColumn),f.map(Se=>Se.valueColumn))||O(x,k)||O(_,D)||(n.dendrogramX||t.dendrogramX)&&(((z=t.dendrogramX)==null?void 0:z.distance)!==((q=n.dendrogramX)==null?void 0:q.distance)||((ee=t.dendrogramX)==null?void 0:ee.linkage)!==((W=n.dendrogramX)==null?void 0:W.linkage))||(n.dendrogramY||t.dendrogramY)&&(((U=t.dendrogramY)==null?void 0:U.distance)!==(($=n.dendrogramY)==null?void 0:$.distance)||((G=t.dendrogramY)==null?void 0:G.linkage)!==((j=n.dendrogramY)==null?void 0:j.linkage))||t.chartSettings.valueType!==A.valueType||t.facetSettings.sharedX!==h.sharedX||t.facetSettings.sharedY!==h.sharedY||((re=t.normalization)==null?void 0:re.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 o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{xColumn:t,yColumn:n,valueColumn:r,xGroupBy:a,yGroupBy:i,facetBy:o,chartSettings:s,facetSettings:c,annotations:f,dendrogramX:A,dendrogramY:h,normalization:m,NAValueAs:y}=this.settings,E=B5t(this.data,t,n,r,o,a,i,f,A,h,m,y),b=D5t(E,A,h,c),x=s.valueType==="discrete"?this.data.getColumnCategories(r.value):[];this.calculatedData={groupedCellsData:E,dendrogramsData:b,cellUniqValues:x}}_updateAesInData(){}_updateChart(){if(!this.calculatedData)return;let{id:t,valueColumn:n,chartSettings:r,facetSettings:a,aes:i,annotations:o,dendrogramX:s,dendrogramY:c,inheritedDendrogramAes:f,normalization:A}=this.settings;this.chartRenderer.render(t,r,a,i,this.calculatedData.groupedCellsData,o,n,s,c,this.calculatedData.dendrogramsData,f,this.calculatedData.cellUniqValues,A)}},_K=(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 o=1;o<e;o++)i.push(n+a*o);return i};function q5t(e,t,n){let[r=0,a=0]=$A(e,s=>s[t.value]),i=_K(n,[r,a]),o=lR().thresholds(i).value(s=>s[t.value])(e);return{bins:o,minX:o[0].x0??0,maxX:o[o.length-1].x1??0,maxCount:Dh(o,s=>s.length)??0}}function e7t(e,t,n){let[r=0,a=0]=$A(e,A=>A[t.value]),i=[r,a],o=_K(n,[r,a]),s=Lm().domain(i).range(i),c=o.map(A=>s.invert(A)),f=lR().thresholds(c).value(A=>A[t.value])(e);return{bins:f,minX:f[0].x0??0,maxX:f[f.length-1].x1??0,maxCount:Dh(f,A=>A.length)??0}}function t7t(e,t,n,r,a){let i={};return t.forEach(o=>{let s=e.getRowsByGrouping([...o]);i[o.join("_")]=a==="linear"?q5t(s,n,r):e7t(s,n,r)}),i}var n7t={TOP:30,BOTTOM:0,LEFT:10,RIGHT:10};function w9(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 o=i.some(s=>Math.abs(s)<1e-4&&s!==0||s>1e4)?",e":",f";return{ticks:i,format:s=>e.tickFormat(a,o)(s)}}function r7t(e){return`translate(${e},0)`}function a7t(e){return`translate(0,${e})`}function i7t(e){return e==="bottom"?`translate(0,${qf})`:`translate(${-qf},0)`}function o7t(e){return e==="bottom"?"hanging":"central"}function l7t(e){return e==="bottom"?"middle":"end"}var PK=({scale:e,tickSize:t=6,tickPadding:n=qf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function o(b){return x=>{let k=b(x);return k===void 0?0:+k}}let{ticks:s,format:c}=w9(e,a,r==="bottom"),f=Math.max(t,0)+n,A=o(e.copy()),h=r==="bottom"?r7t:a7t,m=r==="left"?-1:1,y={[(r==="left"?"x":"y")+"2"]:m*t},E={[r==="left"?"x":"y"]:m*f};return ie.jsx("g",{children:s.map((b,x)=>ie.jsxs("g",{className:"tick",transform:h(A(b)+i),children:[ie.jsx("line",{stroke:Wt,...y}),ie.jsx("g",{transform:i7t(r),children:ie.jsx("text",{fill:Wt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:o7t(r),textAnchor:l7t(r),...E,children:c(b)})})]},x))})},s7t=1;function DK({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=nr.useState(e.ticks()),[A,h]=nr.useState(t.ticks()),{significantLines:m=[]}=a,{significantLines:y=[]}=i;return nr.useEffect(()=>{let E=e.ticks().filter(x=>!m.includes(x)),b=t.ticks().filter(x=>!y.includes(x));f(E),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Zf,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&&A.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:tp(a.significantLinesStyle),stroke:Wt,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:tp(i.significantLinesStyle),stroke:Wt,children:y.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}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:s7t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?Zf:Wt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?Zf:Wt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Wt:Zf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Wt:Zf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}function u7t({width:e,height:t,dimensions:n,scales:r,xAxis:a,yAxis:i,frameType:o,histogramData:s,facetSettings:c,captionsSizes:f,facetTitle:A,layers:h,aesColorGetter:m}){let{padding:y}=n,E=a.showTicks?4:0,b=i.showTicks?4:0,x=n.chartEdgeSides.includes("left")||!(c!=null&&c.sharedY),k=n.chartEdgeSides.includes("bottom")||!(c!=null&&c.sharedX),_=n.chartEdgeSides.includes("bottom"),D=!1;return ie.jsxs("g",{transform:`translate(${n.left+y.left},${n.top+y.top})`,children:[D,A.length&&ie.jsxs("g",{children:[o==="full"&&ie.jsx("rect",{x:"0",y:-y.top,height:y.top,width:e,fill:"#F7F8FA",stroke:Wt}),A.map((O,H)=>{let V=A.length,z=(y.top-20*V)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Wt,x:e/2,dy:z+20/2-y.top,y:H*20,textAnchor:"middle",dominantBaseline:"central",children:O},H)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Wt,children:[_&&ie.jsx("text",{x:e/2,y:t+y.bottom-12-20/2,children:a.title}),D]}),ie.jsx(DK,{width:e,height:t,scaleX:r.x,scaleY:r.y,axisX:a,axisY:i,frameType:o}),k&&ie.jsxs("g",{transform:`translate(0,${t})`,children:[ie.jsx(PK,{scale:r.x,orient:"bottom",onlyPositive:!0,tickSize:E}),D]}),x&&ie.jsxs("g",{children:[ie.jsx(PK,{scale:r.y,orient:"left",tickSize:b}),D]}),h.map(O=>s.bins.map(H=>ie.jsx("rect",{x:r.x(H.x0),y:r.y(H.length),fill:H[0]?m(O.aes.fillColor,H[0]):"",stroke:Wt,width:r.x(H.x1)-r.x(H.x0),height:r.y(0)-r.y(H.length),opacity:O.aes.opacity??1},H.x0)))]})}function c7t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,columnsCount:a,facetKeys:i,facetSettings:o,scales:s,margins:c,mainTitle:f,facetTitles:A,captionsSizes:h,histogramDataByFacets:m,layers:y,aesColorGetter:E}){let{xAxis:b,yAxis:x,title:k,frame:_}=t,D=r[i[0]].padding,O=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:Hg}),ie.jsxs("g",{transform:`translate(${c.left},${c.top})`,fontFamily:"Manrope",children:[ie.jsx(p2,{title:f,show:k.show,position:k.position,leftPadding:D.left,rightPadding:O.right,chartsWidth:n.chartsWidth}),i.map(H=>ie.jsx(u7t,{scales:{x:s.x[H],y:s.y[H]},width:n.chartWidth,height:n.chartHeight,dimensions:r[H],margins:c,chartSizes:n,facetSettings:o,xAxis:b,yAxis:x,frameType:_.type,facetTitle:A[H],captionsSizes:h,histogramData:m[H],layers:y,aesColorGetter:E},H))]})]})})}function f7t(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,o){let s=i.includes("left")||!(o!=null&&o.sharedY),c=i.includes("bottom")||!(o!=null&&o.sharedX),f=i.includes("bottom")&&e.title!=="",A=n.yAxisCaptionsWidth+2*6,h=(t.showTicks?4:0)+6,m=n.xAxisCaptionsWidth+2*6,y=e.showTicks?4:0,E=f?32:0,b=A+h+8,x=m+y+E+8,k=Math.max(...r.map(_=>a[_].length));return{left:s?b:12,top:k===0?0:6*2+k*20,bottom:c?x+8:12,right:12}}function A7t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function p7t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function h7t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function v7t(e,t){return function(n,r){var a,i;if(h7t(n)){let o=n.value;return(i=((a=e[o])==null?void 0:a[String(r[o])])??lP)==null?void 0:i[t]}return n}}var m7t=class{constructor(){Me(this,"reactRoot",null);Me(this,"parentNode",null);Me(this,"rootNode",null);Me(this,"component",ie.jsx(ie.Fragment,{}));Me(this,"margins",{top:24,bottom:24,left:24,right:24});Me(this,"chartsDimensions",{});Me(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Me(this,"columnsCount",1);Me(this,"rowsCount",1);Me(this,"scales",{x:{null:ei().domain([0,10]).range([0,600])},y:{null:ei().domain([0,10]).range([350,0])}});Me(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Me(this,"facetTitles",{});Me(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=Oh(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,o=0,s=0;this.chartsDimensions=e.reduce((A,h,m)=>{let[y,E]=p7t(m,this.columnsCount),b=f7t(m,e.length,this.columnsCount,this.rowsCount),x=d7t(n,r,this.captionsSizes,A7t(e,this.rowsCount,this.columnsCount)[y],this.facetTitles,b,t),k=a+x.left+x.right,_=i+x.top+x.bottom;return A[h]={left:o,top:s,chartEdgeSides:b,padding:x,inner:{width:a,height:i},outer:{width:k,height:_}},o+=k,E===this.columnsCount-1&&(o=0,s+=_),A},{});let c=Math.max(...e.map(A=>this.chartsDimensions[A].outer.width+this.chartsDimensions[A].left)),f=Math.max(...e.map(A=>this.chartsDimensions[A].outer.height+this.chartsDimensions[A].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),o=Math.min(t.nCols??a,a);this.columnsCount=t.nRows?Math.ceil(a/i):o,this.rowsCount=Math.ceil(a/this.columnsCount);let[s,c]=[1/0,-1/0],f=-1/0,A=e.reduce((h,m)=>{let y=r[m],{minX:E,maxX:b,maxCount:x}=y;return s=Math.min(s,E),c=Math.max(c,b),f=Math.max(f,x),h[m]={minX:E,maxX:b,maxY:x},h},{});e.forEach(h=>{let m=n.scale==="log"?Lm():ei(),y=A[h],E=t.sharedX?s:y.minX,b=t.sharedX?c:y.maxX;m.domain([E,b]).range([0,this.chartSizes.chartWidth]),this.scales.x[h]=m}),e.forEach(h=>{let m=ei(),y=A[h],E=0,b=t.sharedY?f:y.maxY,x=[this.chartSizes.chartHeight,0],k=m.copy().domain([E,b]).range([this.chartSizes.chartHeight,n7t.TOP]);m.domain([k.invert(this.chartSizes.chartHeight),k.invert(0)]).range(x),this.scales.y[h]=m})}updateCaptionsSize(){let e=new ou("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}=w9(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=Vv(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]=Vv(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,o,s){var y;let{xAxis:c,yAxis:f,size:A,title:h}=t;this.updateChartSizes(A),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(c7t,{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:o,aesColorGetter:v7t(s,"fillColor")});this.component=m,(y=this.reactRoot)==null||y.render(m)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},g7t=m7t,y7t=10,w7t=class{constructor(e){Me(this,"type","bins");Me(this,"aes",{fillColor:"white",opacity:1});this.aes={...this.aes,...e.aes}}},C7t=class{constructor(e){Me(this,"type","binsLine");Me(this,"aes",{opacity:1});this.aes={...this.aes,...e.aes}}},MK=class{constructor(e){Me(this,"id");Me(this,"type","histogram");Me(this,"valueColumn");Me(this,"binsCount");Me(this,"facetSettings");Me(this,"facetBy");Me(this,"grouping");Me(this,"chartSettings");Me(this,"inheritedAes");Me(this,"layers");var t,n,r,a,i,o,s;Oyt.parse(e),this.id=Ir.uniqueId("settings"),this.facetSettings={sharedX:!0,sharedY:!0,titlePosition:"left",...e.facetSettings},this.valueColumn=e.valueColumn,this.binsCount=e.binsCount??y7t,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:((o=e.xAxis)==null?void 0:o.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 w7t(c);if(c.type==="binsLine")return new C7t(c);mA(c,"Unknown layer type")}).filter(Boolean)}};function HK(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 b7t=class extends Pg{constructor(t,n){super(t,n);Me(this,"settings");Me(this,"chartRenderer",new g7t);Me(this,"calculatedData",null);this.settings=new MK(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 MK(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(),p3(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 o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{valueColumn:t,facetBy:n,binsCount:r,chartSettings:a}=this.settings,i=n.map(f=>this.data.getColumnCategories(f.value)),o=i.length?HK([...i]):[["null"]],s=n.map(f=>f.value)??null;this.data.setGrouping([...s]);let c=t7t(this.data,o,t,r,a.xAxis.scale);this.calculatedData={facetKeys:o.map(f=>f.join(", ")),facetKeysCombinations:o,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 E7t(e,t,n,r,a,i){let o={};return t.forEach(s=>{let c=[],f=1/0,A=1/0,h=-1/0,m=-1/0;i.forEach(y=>{e.getRowsByGrouping([...s,y]).forEach(E=>{let b=E[n.value],x=E[r.value];f=Math.min(f,b),A=Math.min(A,x),h=Math.max(h,b),m=Math.max(m,x),b!==null&&x!==null&&c.push({id:`${Object.values(E)}`,x:b,y:x,label:a?E[a.valueLabels??a.value]:null,data:E})})}),c.sort((y,E)=>y.x-E.x),o[s.join("_")]={minX:f,maxX:h,minY:A,maxY:m,dots:c}}),o}function S7t(e,t,n,r,a){return t.reduce((i,o)=>{let s=n[o].dots;return i[o]=e.map(c=>{if(c.type==="curve")return{type:"curve",info:c,geoms:r.map(f=>{let A=s.filter(m=>a.every((y,E)=>m.data[y.value]===f[E])),h=a.reduce((m,y,E)=>(m[y.value]=f[E],m),{});return{dots:A,data:h}})};if(c.type==="dots")return{type:"dots",info:c,geoms:s};mA(c,"Unknown scatterplot layer type")}),i},{})}var IK=(e,t)=>{let n=Math.min(...t),r=Math.max(...t);if(n===r){let o=e%2===0?[]:[n];for(let s=1;s<e/2+1;s++)o.push(n+s),o.unshift(n-s);return o}if(e<2)return[n,r];let a=(r-n)/(e-1),i=[];for(let o=0;o<e-1;o++)i.push(n+a*o);return i.push(r),i};function x7t(e,t,n){if(n==="linear")return IK(e,t);if(n==="log"){let r=IK(e,t),a=Lm(t,t),i=r.map(o=>a.invert(o));return i[0]=t[0],i[i.length-1]=t[1],i}return[]}function K8(e,t,n){return(n==="log"?Lm():ei()).domain(x7t(e.length,t,n)).range(e)}var C9=12,kP=-12,RK=14;function B7t({aes:e,label:t}){let n=df(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 LK({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().reverse().map(r=>{let a=n.scale.domain(),i=a[a.length-1]-a[0],o=i>0?100-(r-a[0])/i*100:0;return ie.jsx("stop",{offset:`${o}%`,stopColor:n.scale(r)},r)})},n.id))}),e.items.map(n=>{if(n.type==="continuous")return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:kP,children:n.title}),ie.jsx("rect",{x:"0",y:"0",width:RK,height:n.height,stroke:Wt,fill:`url(#${n.id})`}),ie.jsx("g",{transform:`translate(${RK},0)`,children:n.values.map(r=>{let a=n.tickPositionScale(r)??0;return ie.jsxs("g",{transform:`translate(0,${a})`,children:[ie.jsx("line",{x1:"0",x2:-4,stroke:Wt}),ie.jsx("text",{x:8,y:4,children:r})]},r)})}),!1]},n.id);if(n.type==="dots")return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:"14px",fontWeight:500,children:[ie.jsx("text",{fontWeight:600,y:kP,children:n.title}),n.values.map((r,a)=>ie.jsx("g",{transform:`translate(0, ${a*(C9+4)})`,children:ie.jsx(B7t,{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:kP,children:n.title}),n.values.map((a,i)=>{let o=n.scale(a);return ie.jsxs("g",{transform:`translate(0, ${i*r})`,children:[ie.jsx("circle",{r:o,cx:r/2,cy:r/2,fill:Wt}),ie.jsx("text",{x:r+4,y:r/2,alignmentBaseline:"central",children:n.labels[a]})]},a)}),!1]},n.id)}})]})}function TP(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 NK(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 k7t(e,t){return TP(e)-t}function T7t(e,t){return NK(e)-t}function $K(e){let t=TP(e),n=t+e.width,r=NK(e),a=r+e.height;return{minX:t,maxX:n,minY:r,maxY:a}}function FK(e,t,n){let r=k7t(e,n),a=TP(e)+e.width+n,i=T7t(e,t),o=i+e.height+2*t;return{minX:r,maxX:a,minY:i,maxY:o}}function _7t(e,t,n){return e.minX>=0&&e.maxX<=t&&e.minY>=0&&e.maxY<=n}var Z8=2;function P7t(e,t=Z8,n=Z8){e.forEach(r=>{r.bbox=$K(r),r.outerBBox=FK(r,t,n)})}function J8(e,t,n,r=Z8,a=Z8){let i=[],o=new cct,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,A]of s){let h={...c,yPosition:f,xPosition:A};if(h.bbox=$K(h),h.outerBBox=FK(h,r,a),_7t(h.outerBBox,t,n)&&!o.collides(h.outerBBox)){i.push(h),o.insert(h.outerBBox);break}}return i}function D7t(e){return`translate(${e},0)`}function M7t(e){return`translate(0,${e})`}function H7t(e){return e==="bottom"?`translate(0,${qf})`:`translate(${-qf},0)`}function I7t(e){return e==="bottom"?"hanging":"central"}function R7t(e){return e==="bottom"?"middle":"end"}var q8=({scale:e,tickSize:t=6,tickPadding:n=qf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function o(b){return x=>{let k=b(x);return k===void 0?0:+k}}let{ticks:s,format:c}=w9(e,a,r==="bottom"),f=Math.max(t,0)+n,A=o(e.copy()),h=r==="bottom"?D7t:M7t,m=r==="left"?-1:1,y={[(r==="left"?"x":"y")+"2"]:m*t},E={[r==="left"?"x":"y"]:m*f};return ie.jsx("g",{children:s.map((b,x)=>ie.jsxs("g",{className:"tick",transform:h(A(b)+i),children:[ie.jsx("line",{stroke:Wt,...y}),ie.jsx("g",{transform:H7t(r),children:ie.jsx("text",{fill:Wt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:I7t(r),textAnchor:R7t(r),...E,children:c(b)})})]},x))})},L7t=1;function N7t({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=nr.useState(e.ticks()),[A,h]=nr.useState(t.ticks()),{significantLines:m=[]}=a,{significantLines:y=[]}=i;return nr.useEffect(()=>{let E=e.ticks().filter(x=>!m.includes(x)),b=t.ticks().filter(x=>!y.includes(x));f(E),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Zf,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&&A.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:tp(a.significantLinesStyle),stroke:Wt,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:tp(i.significantLinesStyle),stroke:Wt,children:y.map(E=>{let b=t(E);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`significant_${b}_${n}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:L7t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?Zf:Wt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?Zf:Wt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Wt:Zf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Wt:Zf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}var $7t=new ou("16px Manrope");function VK(e,t){return typeof e=="string"?e:t.length?t[0].data[e.value]:""}function F7t(e,t,n=[]){let r=e.data,a=[`x: ${go(e.x)}`,`y: ${go(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 V7t(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:` = ${go(e.r2)}`})]})}function O7t(e){return typeof e.pValue>"u"?null:ie.jsx("tspan",{children:`p-value = ${go(e.pValue)}`})}function Q7t(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 = ${go(t)} ± ${go(n)}, intercept = ${go(r)} ± ${go(a)}`})})}function z7t(e){let t=[V7t(e),O7t(e),Q7t(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 _P=3;function OK(e,t,n,r){if(!r)return[];let a=[];for(let i of e){let o=i.label;if(!o)continue;let s=$7t.getTextMetrics(String(o));a.push({name:String(o),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)+_P})}return a}function U7t({width:e,height:t,dimensions:n,scales:r,xAxis:a,yAxis:i,frameType:o,dotsData:s,facetSettings:c,trendsData:f,keyColumn:A,margins:h,chartSizes:m,tooltips:y,tooltipsContainer:E,captionsSizes:b,facetTitle:x,onlyPositive:k,layersData:_,aesGetters:D}){let[O,H]=nr.useState(null),{padding:V}=n,{dots:z}=s,q=a.showTicks?n2:0,ee=i.showTicks?n2:0,W=VK(a.title,z),U=VK(i.title,z),$=n.chartEdgeSides.includes("left")||!(c!=null&&c.sharedY),G=n.chartEdgeSides.includes("bottom")||!(c!=null&&c.sharedX),j=n.chartEdgeSides.includes("left"),re=n.chartEdgeSides.includes("bottom"),se={left:h.left+n.left+V.left,right:m.totalWidth-(h.left+n.left+V.left),top:h.top+n.top+V.top,bottom:m.totalHeight-(h.top+n.top+V.top)},Se=!1,[oe,Ce]=nr.useState(()=>OK(z,r,D,_.find(Ne=>Ne.type==="dots"))),[Te,fe]=nr.useState(()=>J8(oe,e,t,_P,_P)),[me,Xe]=nr.useState(null);return nr.useEffect(()=>{Ce(OK(z,r,D,_.find(Ne=>Ne.type==="dots")))},[z,r,D,_]),nr.useEffect(()=>{let Ne=J8(oe,e,t);fe(Ne)},[oe,e,t]),ie.jsxs("g",{transform:`translate(${n.left+V.left},${n.top+V.top})`,children:[Se,x.length&&ie.jsxs("g",{children:[o==="full"&&ie.jsx("rect",{x:"0",y:-V.top,height:V.top,width:e,fill:"#F7F8FA",stroke:Wt}),x.map((Ne,Ge)=>{let Qe=x.length,We=(V.top-uP*Qe)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Wt,x:e/2,dy:We+uP/2-V.top,y:Ge*uP,textAnchor:"middle",dominantBaseline:"central",children:Ne},Ge)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Wt,children:[re&&ie.jsx("text",{x:e/2,y:t+V.bottom-Iv-c9/2,children:W}),Se,j&&ie.jsx("text",{x:-V.left+Iv+c9/2,y:t/2,transform:`rotate(-90,${-V.left+Iv+c9/2},${t/2})`,children:U}),Se]}),ie.jsx(N7t,{width:e,height:t,scaleX:r.x,scaleY:r.y,axisX:a,axisY:i,frameType:o}),G&&ie.jsxs("g",{transform:`translate(0,${t})`,children:[ie.jsx(q8,{scale:r.x,orient:"bottom",onlyPositive:k.x,tickSize:q}),Se]}),$&&ie.jsxs("g",{children:[ie.jsx(q8,{scale:r.y,orient:"left",onlyPositive:k.y,tickSize:ee}),Se]}),f&&f.map(({predict:Ne,getArea:Ge,color:Qe,data:We,bounded:dt,xBounds:je,stats:rt},He)=>{let[$e,ut]=dt?je:r.x.domain(),ct=(ut-$e)/15,Bt=Ne($e),dn=Ne(ut);if(isNaN(Bt)||isNaN(dn))return null;let yn=D.dotColor(Qe,We);return ie.jsxs("g",{children:[ie.jsx("text",{y:He*20+20,fill:yn,x:e-8,textAnchor:"end",children:z7t(rt)}),ie.jsx("path",{d:Ge(r.x,r.y,Ir.range($e,ut+ct/2,ct)),fill:yn,opacity:.2}),ie.jsx("line",{x1:r.x($e),x2:r.x(ut),y1:r.y(Bt),y2:r.y(dn),stroke:yn})]},He)}),_.map((Ne,Ge)=>{if(Ne.type==="dots")return ie.jsxs("g",{children:[z.map(Qe=>ie.jsx("g",{transform:`translate(${r.x(Qe.x)},${r.y(Qe.y)})`,onMouseOver:()=>H(Qe),onMouseLeave:()=>H(null),children:df(D.dotShape(Ne.info.aes.dotShape,Qe.data),D.dotSize(Ne.info.aes.dotSize,Qe.data),D.dotColor(Ne.info.aes.dotFill,Qe.data))},Qe.id)),Te.map(Qe=>{let{name:We,height:dt,bbox:je,width:rt}=Qe;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${je.minX},${je.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:rt,height:dt,fill:"transparent",stroke:"none",onMouseOver:()=>Xe(Qe.dot),onMouseLeave:()=>Xe(null)}),ie.jsx("text",{x:0,y:dt/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:We})]})},Qe.dot.id)}),me&&ie.jsxs("g",{transform:`translate(${r.x(me.x)},${r.y(me.y)})`,children:[df(D.dotShape(Ne.info.aes.dotShape,me.data),D.dotSize(Ne.info.aes.dotSize,me.data)+1,"white","white"),df(D.dotShape(Ne.info.aes.dotShape,me.data),D.dotSize(Ne.info.aes.dotSize,me.data),D.dotColor(Ne.info.aes.dotFill,me.data))]},"activeDot")]},Ge);if(Ne.type==="curve"&&!Ne.info.smoothing)return Ne.geoms.map((Qe,We)=>ie.jsx("g",{children:ie.jsx("polyline",{points:Qe.dots.map(dt=>`${r.x(dt.x)},${r.y(dt.y)}`).join(" "),fill:"none",stroke:D.lineColor(Ne.info.aes.lineColor,Qe.data),strokeWidth:Ne.info.aes.lineWidth,strokeDasharray:tp(Ne.info.aes.lineShape)})},We));if(Ne.type==="curve"&&Ne.info.smoothing)return Ne.geoms.map((Qe,We)=>ie.jsx("g",{children:ie.jsx("path",{d:j7().curve(G7).x(dt=>r.x(dt.x)).y(dt=>r.y(dt.y))(Qe.dots)??"",fill:"none",stroke:D.lineColor(Ne.info.aes.lineColor,Qe.data),strokeWidth:Ne.info.aes.lineWidth,strokeDasharray:tp(Ne.info.aes.lineShape)})},We))}),y.show&&O&&ie.jsx(Mc,{content:F7t(O,A,y==null?void 0:y.content),x:r.x(O.x),y:r.y(O.y),active:!0,sideDistances:se,container:E})]})}function j7t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,facetKeys:a,facetSettings:i,scales:o,groupedDots:s,legendData:c,trendsData:f,columnsCount:A,margins:h,keyColumn:m,mainTitle:y,facetTitles:E,captionsSizes:b,onlyPositive:x,layersData:k,aesGetters:_}){let[D,O]=nr.useState(),H=nr.useRef(null);nr.useEffect(()=>{H.current&&O(H.current)},[]);let{xAxis:V,yAxis:z,title:q,frame:ee,legend:W,tooltips:U}=t,$=r[a[0]].padding,G=r[a[A-1]].padding,j=n.chartsWidth+fP,re=$.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:Hg}),ie.jsxs("g",{transform:`translate(${h.left},${h.top})`,fontFamily:"Manrope",children:[ie.jsx(p2,{title:y,show:q.show,position:q.position,leftPadding:$.left,rightPadding:G.right,chartsWidth:n.chartsWidth}),a.map(se=>ie.jsx(U7t,{scales:{x:o.x[se],y:o.y[se]},width:n.chartWidth,height:n.chartHeight,dimensions:r[se],margins:h,chartSizes:n,facetSettings:i,xAxis:V,yAxis:z,frameType:ee.type,dotsData:s[se],trendsData:f?f[se]:null,tooltips:U,tooltipsContainer:D,keyColumn:m,facetTitle:E[se],captionsSizes:b,layersData:k[se],onlyPositive:x,aesGetters:_},se)),W.show&&ie.jsx("g",{transform:`translate(${j},${re})`,children:ie.jsx(LK,{legendData:c})})]}),ie.jsx("g",{ref:H})]})})}function G7t(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 Y7t(e,t,n,r,a,i,o){let s=i.includes("left")||!(o!=null&&o.sharedY),c=i.includes("left")&&t.title!=="",f=i.includes("bottom")||!(o!=null&&o.sharedX),A=i.includes("bottom")&&e.title!=="",h=n.yAxisCaptionsWidth+2*cP,m=(t.showTicks?n2:0)+cP,y=c?c9+Iv:0,E=n.xAxisCaptionsWidth+2*cP,b=e.showTicks?n2:0,x=A?c9+Iv:0,k=h+m+y+AX,_=E+b+x+AX,D=Math.max(...r.map(O=>a[O].length));return{left:s?k:Iv,top:D===0?0:Ygt*2+D*m9,bottom:f?_+8:Iv,right:Iv}}function W7t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function X7t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function K7t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function y2(e,t){return function(n,r){var a,i;if(Lv(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=Qy().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}if(Lv(n)&&(t==="dotFill"||t==="lineColor")){let{domain:o,range:s,type:c="linear"}=n;return K8(s,o,c)(Number(r[n.columnName.value]))}if(K7t(n)){let o=n.value;return(i=((a=e[o])==null?void 0:a[String(r[o])])??lP)==null?void 0:i[t]}return n}}function Z7t(e){return{dotShape:y2(e,"dotShape"),dotColor:y2(e,"dotFill"),dotSize:y2(e,"dotSize"),lineShape:y2(e,"lineShape"),lineColor:y2(e,"lineColor"),trendColor:y2(e,"dotFill")}}var J7t=class{constructor(){Me(this,"reactRoot",null);Me(this,"parentNode",null);Me(this,"rootNode",null);Me(this,"component",ie.jsx(ie.Fragment,{}));Me(this,"margins",{top:Jf,bottom:Jf,left:Jf,right:Jf});Me(this,"chartsDimensions",{});Me(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Me(this,"columnsCount",1);Me(this,"rowsCount",1);Me(this,"scales",{x:{null:ei().domain([0,10]).range([0,600])},y:{null:ei().domain([0,10]).range([350,0])}});Me(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Me(this,"facetTitles",{});Me(this,"mainTitle",[]);Me(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=Oh(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,o=0,s=0;this.chartsDimensions=e.reduce((A,h,m)=>{let[y,E]=X7t(m,this.columnsCount),b=G7t(m,e.length,this.columnsCount,this.rowsCount),x=Y7t(n,r,this.captionsSizes,W7t(e,this.rowsCount,this.columnsCount)[y],this.facetTitles,b,t),k=a+x.left+x.right,_=i+x.top+x.bottom;return A[h]={left:o,top:s,chartEdgeSides:b,padding:x,inner:{width:a,height:i},outer:{width:k,height:_}},o+=k,E===this.columnsCount-1&&(o=0,s+=_),A},{});let c=Math.max(...e.map(A=>this.chartsDimensions[A].outer.width+this.chartsDimensions[A].left)),f=Math.max(...e.map(A=>this.chartsDimensions[A].outer.height+this.chartsDimensions[A].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r,a,i){let o=e.length,s=Math.min(t.nRows??o,o),c=Math.min(t.nCols??o,o);this.columnsCount=t.nRows?Math.ceil(o/s):c,this.rowsCount=Math.ceil(o/this.columnsCount);let[f,A]=[1/0,-1/0],[h,m]=[1/0,-1/0],y=e.reduce((b,x)=>{let k=a[x],{minX:_,minY:D,maxX:O,maxY:H}=k;return f=Math.min(f,_),h=Math.min(h,D),A=Math.max(A,O),m=Math.max(m,H),b[x]={minX:_,maxX:O,minY:D,maxY:H},b},{});e.forEach(b=>{let x=n.scale==="log"?Rm():ei(),k=y[b],_=n.lowerValue?Number(n.lowerValue):t.sharedX?f:k.minX,D=n.upperValue?Number(n.upperValue):t.sharedX?A:k.maxX;if(typeof n.symmetricRange<"u"){let V=n.symmetricRange;if(V>=_&&V<=D){let z=Math.max(V-_,D-V);_=V-z,D=V+z}}let O=[0,this.chartSizes.chartWidth],H=x.copy().domain([_,D]).range([M8.LEFT,this.chartSizes.chartWidth-M8.RIGHT]);x.domain([H.invert(0),H.invert(this.chartSizes.chartWidth)]).range(O).nice(),this.scales.x[b]=x});let E=e.reduce((b,x)=>{let k=i?i[x]:[];return b[x]=k.reduce((_,D)=>{let O=D.bounded?D.xBounds:this.scales.x[x].domain(),H=D.getInterval(O[0]),V=D.getInterval(O[1]);return _.minY=Math.min(_.minY,isNaN(H.left)?_.minY:H.left,isNaN(V.left)?_.minY:V.left),_.maxY=Math.max(_.maxY,isNaN(H.right)?_.maxY:H.right,isNaN(V.right)?_.maxY:V.right),_},{minY:1/0,maxY:-1/0}),h=Math.min(h,b[x].minY),m=Math.max(m,b[x].maxY),b},{});e.forEach(b=>{let x=r.scale==="log"?Rm():ei(),k=y[b],_=E[b],D=r.lowerValue?Number(r.lowerValue):t.sharedY?h:Math.min(k.minY,_.minY),O=r.upperValue?Number(r.upperValue):t.sharedY?m:Math.max(k.maxY,_.maxY);if(typeof r.symmetricRange<"u"){let z=r.symmetricRange;if(z>=D&&z<=O){let q=Math.max(z-D,O-z);D=z-q,O=z+q}}let H=[this.chartSizes.chartHeight,0],V=x.copy().domain([D,O]).range([this.chartSizes.chartHeight-M8.BOTTOM,M8.TOP]);x.domain([V.invert(this.chartSizes.chartHeight),V.invert(0)]).range(H).nice(),this.scales.y[b]=x})}updateCaptionsSize(e){let t=new ou("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:o}=w9(a,e);n=Math.max(n,r(i.map(o)))}),this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:n}}createMainTitle(e,t){let n=this.chartsDimensions[e[0]],r=this.chartsDimensions[e[e.length-1]];this.mainTitle=Vv(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]=Vv(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,Jf),bottom:Jf,left:Jf,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 ou("600 14px Manrope"),i=16,o=48,s=20,c=24;function f(D,O){return Math.max(...D.map(H=>a.getTextWidth(String(H))+s),a.getTextWidth(O))}let A=[];n.forEach(D=>{let O=t[D.value];if(O.usedAes.length===0||!O.aesMap)return;let H=D.label??D.value,V=O.values,z={};V.forEach(q=>{z[q]||(z[q]={...sP}),O.usedAes.forEach(ee=>{var W,U,$;(ee==="dotFill"||ee==="lineColor")&&(z[q].color=((W=O.aesMap[q])==null?void 0:W[ee])??Wt),ee==="dotShape"&&(z[q].shape=((U=O.aesMap[q])==null?void 0:U[ee])??"21"),ee==="dotSize"&&(z[q].size=(($=O.aesMap[q])==null?void 0:$[ee])??3)})}),A.push({columnKey:H,data:z,values:O.values,labels:O.labels})});let h=[],m=0,y=0,E=0,b=this.chartSizes.chartsHeight,x=this.chartSizes.chartsHeight;r.forEach(D=>{if(D.type==="dots"&&Lv(D.aes.dotFill)){let{domain:O,range:H,columnName:V,type:z="linear"}=D.aes.dotFill,q=V.label??V.value,ee=this.chartSizes.chartHeight,W=K8(H,O,"linear"),U=(z==="log"?Lm():ei()).domain(O).range([ee,0]),$=i2(U,O),G=o2($,q),j=E;h.push({id:"dotFill",type:"continuous",width:G,height:ee,left:j,top:0,title:q,scale:W,tickPositionScale:U,values:$}),E+=G+c,y=0}}),A.map(({columnKey:D,labels:O,values:H,data:V})=>{let z=D,q=f(H.map(G=>O[G]),z),ee=H.length*i;ee>b&&(x=ee);let W=Hl().domain(H).range(H.map(G=>V[G])),U=E,$=y;h.push({type:"dots",id:D,width:q,height:ee,left:U,top:$,title:z,scale:W,values:H,labels:O}),m=q,y+=ee+o,y>b&&(y=0,E=q+c)}),r.forEach(D=>{if(D.type==="dots"&&Lv(D.aes.dotSize)){y>x&&(y=0,E+=m+c);let{columnName:O,domain:H,range:V}=D.aes.dotSize,z=O.label??O.value,q=Qy(H,V),ee=q.ticks(3),W=q.tickFormat(3),U=ee.reduce((se,Se)=>(se[String(Se)]=W(Se),se),{}),$=f(ee.map(se=>U[se]),z),G=(q(Math.max(...ee))*2+4)*ee.length;G>x&&(x=G);let j=E,re=y;h.push({id:O.value,type:"size",width:$,height:G,left:j,top:re,title:z,scale:q,values:ee,labels:U}),m=$,y+=G+o}});let k=E+m+2*fP,_=x;this.legend={width:k,height:_,items:h}}render(e,t,n,r,a,i,o,s,c,f,A,h,m,y){var O;let{xAxis:E,yAxis:b,size:x,title:k,legend:_}=t;this.updateChartSizes(x),this.updateViewport(r,n,E,b,i,o),this.updateCaptionsSize(c.y),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,E,b),this.updateLegendSize(_,f,m,y),this.createMainTitle(r,k),this.updateMargins();let D=ie.jsx(j7t,{settingsId:e,chartSettings:t,facetKeys:r,facetSettings:n,chartSizes:this.chartSizes,chartsDimensions:this.chartsDimensions,scales:this.scales,groupedDots:i,trendsData:o,legendData:this.legend,columnsCount:this.columnsCount,margins:this.margins,keyColumn:s,mainTitle:this.mainTitle,facetTitles:this.facetTitles,captionsSizes:this.captionsSizes,onlyPositive:c,layersData:A,aesGetters:Z7t(h)});this.component=D,(O=this.reactRoot)==null||O.render(D)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},q7t=J7t,ewt=class{constructor(e){Me(this,"type","dots");Me(this,"aes",{dotFill:Wt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},twt=class{constructor(e){Me(this,"type","curve");Me(this,"smoothing");Me(this,"aes",{lineColor:Wt,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},QK=class{constructor(e){Me(this,"id");Me(this,"type","scatterplot");Me(this,"keyColumn");Me(this,"facetSettings");Me(this,"x");Me(this,"y");Me(this,"facetBy");Me(this,"grouping");Me(this,"label");Me(this,"chartSettings");Me(this,"inheritedAes");Me(this,"trend");Me(this,"layers");var t,n,r,a;kyt.parse(e),this.id=Ir.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??Wt}:null,this.layers=e.layers.map(i=>{if(i.type==="dots")return new ewt(i);if(i.type==="curve")return new twt(i);mA(i,"Unknown layer type")}).filter(Boolean)}},nwt=Fpt(Lgt()),zK=.05;function rwt(e){let t=3.3871328727963665,n=133.14166789178438,r=1971.5909503065513,a=13731.69376550946,i=45921.95393154987,o=67265.7709270087,s=33430.57558358813,c=2509.0809287301227,f=42.31333070160091,A=687.1870074920579,h=5394.196021424751,m=21213.794301586597,y=39307.89580009271,E=28729.085735721943,b=5226.495278852854,x=1.4234371107496835,k=4.630337846156546,_=5.769497221460691,D=3.6478483247632045,O=1.2704582524523684,H=.2417807251774506,V=.022723844989269184,z=.0007745450142783414,q=2.053191626637759,ee=1.6763848301838038,W=.6897673349851,U=.14810397642748008,$=.015198666563616457,G=.0005475938084995345,j=10507500716444169e-25,re=6.657904643501103,se=5.463784911164114,Se=1.7848265399172913,oe=.29656057182850487,Ce=.026532189526576124,Te=.0012426609473880784,fe=27115555687434876e-21,me=20103343992922881e-23,Xe=.599832206555888,Ne=.1369298809227358,Ge=.014875361290850615,Qe=.0007868691311456133,We=18463183175100548e-21,dt=1421511758316446e-22,je=20442631033899397e-31,rt=e-.5,He,$e;return Math.abs(rt)<=.425?(He=.180625-rt*rt,$e=rt*(((((((c*He+s)*He+o)*He+i)*He+a)*He+r)*He+n)*He+t)/(((((((b*He+E)*He+y)*He+m)*He+h)*He+A)*He+f)*He+1),$e):(He=e,He=Math.sqrt(-Math.log(He)),He<=5?(He+=-1.6,$e=(((((((z*He+V)*He+H)*He+O)*He+D)*He+_)*He+k)*He+x)/(((((((j*He+G)*He+$)*He+U)*He+W)*He+ee)*He+q)*He+1)):(He+=-5,$e=(((((((me*He+fe)*He+Te)*He+Ce)*He+oe)*He+Se)*He+se)*He+re)/(((((((je*He+dt)*He+We)*He+Qe)*He+Ge)*He+Ne)*He+Xe)*He+1)),$e=-$e,$e)}function UK(e,t){let{sin:n,cos:r,sqrt:a,pow:i,exp:o,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 A=1/(t-.5),h=48/(A*A),m=((20700*A/h-98)*A-16)*A+96.36,y=((94.5/(h+m)-3)/h+1)*a(A*s*.5)*t;return c=y*e,f=i(c,2/t),f>.05+A?(c=rwt(e/2),f=c*c,t<5&&(m=m+.3*(t-4.5)*(c+.6)),m=(((.05*y*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=A*f*f,f>.002?f=o(f)-1:f=.5*f*f+f):f=((1/(((t+6)/(t*f)-.089*y-.822)*(t+2)*3)+.5/(t+4))*f-1)*(t+1)/(t+2)+1/f,a(t*f)}function awt(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,A=e[c].y;if(!Number.isFinite(f)||!Number.isFinite(A)){--t;continue}n+=f,r+=A,a+=f*A,i+=f*f}let o=(t*a-n*r)/(t*i-n*n),s=(r-o*n)/t;return[o,s]}function iwt(e,t,n){let r=A=>A*t+n,a=e.length,i=xc(e,A=>A.x)/e.length,o=UK(zK,a-2),s=Math.sqrt(xc(e,A=>(A.y-r(A.x))**2)/(a-2)/xc(e,A=>(A.x-i)**2)),c=s*o,f=s*Math.sqrt(xc(e,A=>A.x**2)/a)*o;return{slope:t,intercept:n,slopeError:c,interceptError:f}}function owt(e,t){let n=xc(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)),o=UK(zK,e.length-2);return function(s){let c=t(s),f=i*Math.sqrt(1/e.length+Math.pow(s-n,2)/r),A=c-o*f,h=c+o*f;return{x:s,y:c,left:isNaN(A)?c:A,right:isNaN(h)?c:h}}}function lwt(e){let t=e.length;return Math.pow((t*xc(e,n=>n.x*n.y)-xc(e,n=>n.x)*xc(e,n=>n.y))/(Math.sqrt(t*xc(e,n=>n.x*n.x)-Math.pow(xc(e,n=>n.x),2))*Math.sqrt(t*xc(e,n=>n.y*n.y)-Math.pow(xc(e,n=>n.y),2))),2)}function swt(e,t){let n=tu(e,t);return tu(e.map(r=>(t(r)-n)**2))}function jK(e,t){return Math.sqrt(swt(e,t))}function uwt(e,t,n){let r=tu(e,t),a=tu(e,n),i=e.length;return xc(e,o=>(o.x-r)*(o.y-a))/i}function cwt(e){let t=uwt(e,a=>a.x,a=>a.y),n=jK(e,a=>a.x),r=jK(e,a=>a.y);return t/(n*r)}function fwt(e,t){let n=e.length,r=1,a=1,i=n-r-1,o=tu(e,m=>m.y),s=xc(e,m=>(t(m.x)-o)**2),c=xc(e,m=>(t(m.x)-m.y)**2),f=s/a,A=c/i,h=f/A;return 1-(0,nwt.default)(h,a,i)}function dwt(e,t,n,r,a){return a?t.reduce((i,o)=>{let s=e[o].dots;return i[o]=n.map(c=>{let f=s.filter(x=>r.every((k,_)=>String(x.data[k.value])===c[_])),[A=0,h=0]=$A(f,x=>x.x),[m,y]=awt(f),E=x=>m*x+y,b=owt(f,E);return{predict:E,getInterval:b,getArea:(x,k,_)=>MB().x(D=>x(D.x)).y0(D=>k(D.left)).y1(D=>k(D.right))(_.map(b))??"",color:a.color,bounded:a.bounded,data:f[0].data,showStats:!0,xBounds:[A,h],stats:{r2:lwt(f),r:cwt(f),pValue:fwt(f,E),coefficients:iwt(f,m,y)}}}),i},{}):null}function GK(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 YK(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function Awt(e,t,n,r){return t.reduce((a,i)=>{let o=Ir.uniqBy(e.rows,h=>h[i.value]),s=h=>String(h[i.value]),c=h=>i.valueLabels?String(h[i.valueLabels]):s(h),f=new Set;n.forEach(h=>{h.aes&&Object.entries(h.aes).forEach(([m,y])=>{YK(y)&&y.value===i.value&&f.add(m)})});let A=o.reduce((h,m)=>(h[s(m)]=c(m),h),{});return a[i.value]={values:o.map(s).filter(h=>h!=="null").sort((h,m)=>A[h].localeCompare(A[m],"en",{numeric:!0})),usedAes:[...f],aesMap:r[i.value],labels:A},a},{})}var pwt=class extends Pg{constructor(t,n){super(t,n);Me(this,"settings");Me(this,"chartRenderer",new q7t);Me(this,"calculatedData",null);this.settings=new QK(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 QK(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(),p3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,o;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)!==((o=n.label)==null?void 0:o.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 o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{x:t,y:n,facetBy:r,grouping:a,keyColumn:i,trend:o,layers:s,inheritedAes:c,label:f}=this.settings,A=this.data.getColumnCategories(i.value),h=r.map(V=>this.data.getColumnCategories(V.value)),m=a.map(V=>this.data.getColumnCategories(V.value)),y=h.length?GK([...h]):[["null"]],E=m.length?GK([...m]):[["null"]],b=r.map(V=>V.value)??null;this.data.setGrouping([...b,i.value]);let x={x:this.data.rows.every(V=>{let z=V[t.value];return z===null||!(Number(z)<0)}),y:this.data.rows.every(V=>{let z=V[n.value];return z===null||!(Number(z)<0)})},k=E7t(this.data,y,t,n,f,A),_=Object.keys(k),D=dwt(k,_,E,a,o),O=Awt(this.data,a,s,c),H=S7t(s,_,k,E,a);this.calculatedData={onlyPositive:x,dotsByFacets:k,facetKeys:_,facetKeysCombinations:y,trendsData:D,legendLabels:O,layersData:H}}_updateAesInData(){let t=this.calculatedData;if(!t)return;let{grouping:n,trend:r,layers:a,inheritedAes:i}=this.settings,{facetKeys:o,trendsData:s}=t;o.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(A=>{A.aes&&Object.entries(A.aes).forEach(([h,m])=>{YK(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:o,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,o,a,s)}},eE={TOP:30,BOTTOM:30,LEFT:30,RIGHT:30},b9=20,WK=4,PP=24;function hwt(e,t,n=[]){let r=e.data,a=[`x: ${go(e.x)}`,`y: ${go(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 XK(e){return typeof e=="string"?e:e.label??e.value}function vwt({scales:e,chartSettings:t,mainTitle:n,keyColumn:r,margins:a,chartSizes:i,onlyPositive:o,container:s,zoomStateKey:c,legendData:f,selectedDot:A=null}){var H;let{title:h,xAxis:m,yAxis:y,frame:E,legend:b}=t,x=m.showTicks?WK:0,k=y.showTicks?WK:0,_=m.title,D=y.title,O={left:0,right:i.chartWidth,top:0,bottom:i.chartHeight};return s?ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${i.totalWidth} ${i.totalHeight}`,width:i.totalWidth,height:i.totalHeight,style:{pointerEvents:"none"},children:[ie.jsx("defs",{children:Hg}),ie.jsxs("g",{transform:`translate(${a.left},${a.top})`,fontFamily:"Manrope",children:[ie.jsx(p2,{title:n,show:h.show,position:h.position,leftPadding:a.left,rightPadding:a.right,chartsWidth:i.chartWidth}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Wt,children:[_&&ie.jsx("text",{x:i.chartWidth/2,y:i.chartHeight+a.bottom-b9/2,children:XK(_)}),D&&ie.jsx("text",{x:-a.left+b9/2,y:i.chartHeight/2,transform:`rotate(-90,${-a.left+b9/2},${i.chartHeight/2})`,children:XK(D)})]}),ie.jsx(DK,{width:i.chartWidth,height:i.chartHeight,scaleX:e.x,scaleY:e.y,axisX:m,axisY:y,updatingKey:c,frameType:E.type}),ie.jsx("g",{transform:`translate(0,${i.chartHeight})`,children:ie.jsx(q8,{scale:e.x,orient:"bottom",onlyPositive:o.x,tickSize:x})}),ie.jsx("g",{children:ie.jsx(q8,{scale:e.y,orient:"left",onlyPositive:o.y,tickSize:k})}),A&&ie.jsx(Mc,{content:hwt(A,r,(H=t.tooltips)==null?void 0:H.content),x:e.x(A.x),y:e.y(A.y),active:!0,sideDistances:O,container:s}),b.show&&ie.jsx("g",{transform:`translate(${i.chartWidth+PP},0)`,children:ie.jsx(LK,{legendData:f})})]})]}):null}var mwt=hb.memo(vwt);function gwt({scales:e,chartSizes:t,onPolygonUpdate:n}){let[r,a]=nr.useState([]),[i,o]=nr.useState(null),[s,c]=nr.useState(null),f=nr.useRef(s),A=nr.useRef(i),h=nr.useRef(r);function m(E){if(!f.current)return;let b=E.key==="Enter",x=E.key===" ",k=E.shiftKey,_=e.x.invert(f.current[0]),D=e.y.invert(f.current[1]),O=h.current,H=A.current;k&&x&&!A.current?(O=[],H=[_,D],n([])):x&&A.current?(O=[...O,[A.current,[_,D]]],H=[_,D]):b&&A.current&&(O.length>2&&(O=[...O,[O[O.length-1][1],O[0][0]]]),H=null,O.length<=2?n([]):n(O.map(V=>V[0]))),a(O),o(H),h.current=O,A.current=H}nr.useEffect(()=>(document.addEventListener("keydown",m),()=>document.removeEventListener("keydown",m)),[]),nr.useEffect(()=>{if(i&&s)return;if(r.length===0){n([]);return}let E=r.map(b=>b[0]);E.push(r[r.length-1][1]),n(E)},[r]);function y(E){let b=[E.nativeEvent.offsetX,E.nativeEvent.offsetY];c(b),f.current=b}return ie.jsxs("g",{children:[ie.jsx("rect",{fill:"transparent",width:t.chartWidth,height:t.chartHeight,onMouseMove:y}),r.map(([E,b],x)=>ie.jsx("line",{x1:e.x(E[0]),y1:e.y(E[1]),x2:e.x(b[0]),y2:e.y(b[1]),stroke:Wt},x)),i&&s&&ie.jsx("line",{x1:e.x(i[0]),y1:e.y(i[1]),x2:s[0],y2:s[1],stroke:Wt},"lastLine")]})}function ywt({scales:e,container:t,labels:n,aesGetter:r,chartSizes:a,onPolygonUpdate:i,selectedDot:o=null}){return t?ie.jsxs("g",{children:[n.map(s=>{let{name:c,height:f,bbox:A,width:h}=s;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${A.minX},${A.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:h,height:f,fill:"transparent",stroke:"none"}),ie.jsx("text",{x:0,y:f/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:c})]})},s.dot.id)}),ie.jsx(gwt,{scales:e,chartSizes:a,onPolygonUpdate:i}),o&&ie.jsx("circle",{cx:e.x(o.x),cy:e.y(o.y),r:5,fill:r(o.data)})]}):null}var wwt=ywt;function Cwt({settingsId:e,scales:t,chartSettings:n,mainTitle:r,keyColumn:a,margins:i,chartSizes:o,captionsSizes:s,onlyPositive:c,container:f,zoomStateKey:A,aesGetter:h,legendData:m,labels:y,onPolygonUpdate:E,selectedDot:b=null}){return f?ie.jsx("div",{children:ie.jsxs(A2,{dataId:e,children:[ie.jsx(mwt,{scales:t,keyColumn:a,margins:i,mainTitle:r,captionsSizes:s,chartSettings:n,chartSizes:o,onlyPositive:c,container:f,selectedDot:b,zoomStateKey:A,legendData:m}),xB.createPortal(ie.jsx(wwt,{scales:t,container:f,aesGetter:h,labels:y,chartSizes:o,selectedDot:b,onPolygonUpdate:E}),f)]})}):null}var KK=e=>e.selection()!==e,ZK=(e,t)=>{e=e||"g";let n=(i,o)=>o,r=null,a=function(i,o){o=o||(y=>y);let s=i.selection(),c=KK(i)?i:null,f=s.selectChildren(t==null?e:`${e}.${t}`).data(o,n),A=f.enter().append(e).attr("class",t),h=f.exit();f=f.merge(A);let m=c||r;return m&&(f=f.transition(m).style("opacity",1),A.style("opacity",1e-6),h=h.transition(m).style("opacity",1e-6)),h.remove(),f.enter=()=>A,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},JK=(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}},qK=(e,t,...n)=>{for(let r of n)e[r]=JK(e,t,r);return e},bwt=e=>t=>e.reduce((n,r)=>n&&r(n),t),DP=(e,t,...n)=>{let r=bwt(n);for(let a of Object.keys(t)){let i=r(a);i&&(e[i]=JK(e,t,a))}return e},Ewt=e=>e.map(t=>typeof t=="string"?new RegExp(`^${t}$`):t),Swt=(...e)=>(e=Ewt(e),t=>e.every(n=>!n.test(t))&&t),w2=e=>typeof e=="function"?e:()=>e;function xwt(){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 Bwt=(e,t)=>{switch(e){case"left":return t/2;case"right":return-t/2;default:return 0}},eZ=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},kwt=()=>{let e=()=>0,t=s=>s.x,n=s=>s.y,r="center",a=()=>5,i="vertical",o=eZ({decorate:()=>{},defined:(s,c)=>xwt(e,t,n)(s,c),xScale:J1(),yScale:J1()});return o.values=(s,c)=>{let f=a(s,c),A=Bwt(r,f),h=o.xScale(),m=o.yScale();if(i==="vertical"){let y=m(n(s,c),c),E=m(e(s,c),c),b=h(t(s,c),c)+A;return{d:s,x:b,y,y0:E,width:f,height:y-E,origin:[b,y],baseOrigin:[b,E],transposedX:b,transposedY:y}}else{let y=h(n(s,c),c),E=h(e(s,c),c),b=m(t(s,c),c)+A;return{d:s,x:b,y,y0:E,width:f,height:y-E,origin:[y,b],baseOrigin:[E,b],transposedX:y,transposedY:b}}},o.xValues=()=>i==="vertical"?[t]:[e,n],o.yValues=()=>i!=="vertical"?[t]:[e,n],o.baseValue=(...s)=>s.length?(e=w2(s[0]),o):e,o.crossValue=(...s)=>s.length?(t=w2(s[0]),o):t,o.mainValue=(...s)=>s.length?(n=w2(s[0]),o):n,o.bandwidth=(...s)=>s.length?(a=w2(s[0]),o):a,o.align=(...s)=>s.length?(r=s[0],o):r,o.orient=(...s)=>s.length?(i=s[0],o):i,o},Twt=()=>{let e=kwt(),t=w2(64),n=T$,r=e9(),a=e9(),i=e9().type(eh.UNSIGNED_SHORT),o=e9().type(eh.UNSIGNED_BYTE),s=Apt().crossValueAttribute(r).mainValueAttribute(a).sizeAttribute(i).definedAttribute(o),c=(E,b)=>!1,f=Cpt,A=[],h=null,m=null,y=E=>{let b=f(e.xScale()),x=f(e.yScale()),k=!c(A,E);k&&(A=E,i.value((_,D)=>t(_,D)).data(E),o.value((_,D)=>e.defined()(_,D)).data(E)),(k||b.scale!==h)&&(h=b.scale,e.orient()==="vertical"?r.value((_,D)=>b.scale(e.crossValue()(_,D))).data(E):r.value((_,D)=>b.scale(e.mainValue()(_,D))).data(E)),(k||x.scale!==m)&&(m=x.scale,e.orient()==="vertical"?a.value((_,D)=>x.scale(e.mainValue()(_,D))).data(E):a.value((_,D)=>x.scale(e.crossValue()(_,D))).data(E)),s.xScale(b.webglScale).yScale(x.webglScale).type(Tpt(n)).decorate(_=>e.decorate()(_,E,0)),s(E.length)};return y.size=(...E)=>E.length?(t=w2(E[0]),y):t,y.type=(...E)=>E.length?(n=E[0],y):n,y.equals=(...E)=>E.length?(c=E[0],y):c,y.scaleMapper=(...E)=>E.length?(f=E[0],y):f,DP(y,e,Swt("baseValue","bandwidth","align")),qK(y,s,"context","pixelRatio"),y},tZ=()=>{let e=[],t=a=>a,n=(a,i)=>i,r=eZ({decorate:()=>{},xScale:J1(),yScale:J1()});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},_wt=()=>{let e=tZ(),t=ZK("g"),n=ZK("g","multi"),r=a=>{KK(a)&&(n.transition(a),t.transition(a));let i=e.mapping(),o=e.series(),s=e.xScale(),c=e.yScale();a.each((f,A,h)=>{let m=n(iu(h[A]),o);m.each((y,E,b)=>{y.xScale(s).yScale(c);let x=i(f,E,o);t(iu(b[E]),[x]).call(y)}),m.selection().order(),e.decorate()(m,f,A)})};return DP(r,e),qK(r,n,"key"),r},Pwt=()=>{let e=null,t=1,n=tZ(),r=a=>{let i=n.mapping(),o=n.series(),s=n.xScale(),c=n.yScale();o.forEach((f,A)=>{let h=i(a,A,o);f.context(e).pixelRatio(t).xScale(s).yScale(c);let m;f.decorate?(m=f.decorate(),f.decorate((y,E,b)=>{n.decorate()(y,a,A),m(y,E,b)})):n.decorate()(e,a,A),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,DP(r,n),r};function Dwt(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function nZ(e={},t,n){return function(r){var a,i;if(Dwt(n)){let o=n.value,s=r[o];return(i=((a=e[o])==null?void 0:a[String(s)])??lP)==null?void 0:i[t]}if(Lv(n)&&t==="dotFill"){let{domain:o,range:s,type:c="linear"}=n;return K8(s,o,c)(Number(r[n.columnName.value]))}return n}}var Mwt=class{constructor(){Me(this,"reactRoot",null);Me(this,"parentNode",null);Me(this,"rootNode",null);Me(this,"canvasNode",null);Me(this,"svgLayerElement",null);Me(this,"svgLayerComponent",ie.jsx(ie.Fragment,{}));Me(this,"tools",null);Me(this,"margins",{top:Jf,bottom:Jf,left:Jf,right:Jf});Me(this,"chartSizes",{chartWidth:600,chartHeight:350,totalWidth:600,totalHeight:350});Me(this,"scales",{x:ei().domain([0,10]).range([0,600]),y:ei().domain([0,10]).range([350,0]),xOriginal:ei().domain([0,10]).range([0,600]),yOriginal:ei().domain([0,10]).range([350,0])});Me(this,"polygon",[]);Me(this,"onPolygonUpdateOutside",()=>{});Me(this,"zoomStateKey","");Me(this,"selectedDot",null);Me(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Me(this,"mainTitle",[]);Me(this,"legend",{width:0,height:0,items:[]});Me(this,"notCalculatedProps",{});Me(this,"allPossibleLabels",[]);Me(this,"visibleLabels",[]);Me(this,"onPolygonUpdate",e=>{this.updateByLasso(e),this.onPolygonUpdateOutside(e)})}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=Oh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateViewport(e,t,n){let r=e.scale==="log"?Rm():ei(),{minX:a,minY:i,maxX:o,maxY:s}=n;if(e.lowerValue!==void 0&&(a=Math.max(a,e.lowerValue)),e.upperValue!==void 0&&(o=Math.min(o,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 y=e.symmetricRange;if(y>=a&&y<=o){let E=Math.max(y-a,o-y);a=y-E,o=y+E}}if(typeof t.symmetricRange<"u"){let y=t.symmetricRange;if(y>=i&&y<=s){let E=Math.max(y-i,s-y);i=y-E,s=y+E}}let c=[0,this.chartSizes.chartWidth],f=r.copy().domain([a,o]).range([eE.LEFT,this.chartSizes.chartWidth-eE.RIGHT]);r.domain([f.invert(0),f.invert(this.chartSizes.chartWidth)]).range(c).nice(),this.scales.x=r,this.scales.xOriginal=r.copy();let A=t.scale==="log"?Rm():ei(),h=[this.chartSizes.chartHeight,0],m=A.copy().domain([i,s]).range([this.chartSizes.chartHeight-eE.BOTTOM,eE.TOP]);A.domain([m.invert(this.chartSizes.chartHeight),m.invert(0)]).range(h).nice(),this.scales.y=A,this.scales.yOriginal=A.copy()}updateCaptionsSize(e){let t=new ou("600 14px Arial");function n(o){return Math.max(...o.map(s=>t.getTextWidth(s)))}let{ticks:r,format:a}=w9(this.scales.y,e),i=n(r.map(a));this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:i}}createMainTitle(e){this.mainTitle=Vv(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,Jf),bottom:Jf+this.captionsSizes.xAxisCaptionsWidth+b9,left:Jf+this.captionsSizes.yAxisCaptionsWidth+b9,right:this.legend.width+(this.legend.width>0?PP:0)+Jf},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,iu(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,r){if(!e.show){this.legend={width:0,height:0,items:[]};return}let a=new ou("600 14px Arial"),i=16,o=48,s=20,c=24;function f(D,O){return Math.max(...D.map(H=>a.getTextWidth(String(H))+s),a.getTextWidth(O))}let A=[];n.forEach(D=>{let O=t[D.value];if(O.usedAes.length===0||!O.aesMap)return;let H=D.label??D.value,V=O.values,z={};V.forEach(q=>{z[q]||(z[q]={...sP}),O.usedAes.forEach(ee=>{var W,U;ee==="dotFill"&&(z[q].color=((W=O.aesMap[q])==null?void 0:W[ee])??Wt),ee==="dotSize"&&(z[q].size=((U=O.aesMap[q])==null?void 0:U[ee])??3)})}),A.push({columnKey:H,data:z,values:O.values,labels:O.labels})});let h=[],m=0,y=0,E=0,b=this.chartSizes.chartHeight,x=this.chartSizes.chartHeight;r.forEach(D=>{if(D.type==="dots"&&Lv(D.aes.dotFill)){let{domain:O,range:H,columnName:V,type:z="linear"}=D.aes.dotFill,q=V.label??V.value,ee=this.chartSizes.chartHeight,W=K8(H,O,"linear"),U=(z==="log"?Lm():ei()).domain(O).range([ee,0]),$=i2(U,O),G=o2($,q),j=E;h.push({id:"dotFill",type:"continuous",width:G,height:ee,left:j,top:0,title:q,scale:W,tickPositionScale:U,values:$}),E+=G+c,y=0}}),A.map(({columnKey:D,labels:O,values:H,data:V})=>{let z=D,q=f(H.map(G=>O[G]),z),ee=H.length*i;ee>b&&(x=ee);let W=Hl().domain(H).range(H.map(G=>V[G])),U=E,$=y;h.push({type:"dots",id:D,width:q,height:ee,left:U,top:$,title:z,scale:W,values:H,labels:O}),m=q,y+=ee+o,y>b&&(y=0,E=q+c)});let k=E+m+2*PP,_=x;this.legend={width:k,height:_,items:h}}initSettings(e,t,n,r,a,i,o,s){let{xAxis:c,yAxis:f,size:A,title:h,legend:m}=t;this.updateChartSizes(A),this.updateViewport(c,f,n),this.updateCaptionsSize(r.y),this.updateLegendSize(m,o,s,i),this.createMainTitle(h),this.updateMargins();let y=i.find(H=>H.type==="dots"),E=nZ(a,"dotFill",y.aes.dotFill),b=Ppt().data(e).value(H=>{let V=Vy(E(H.data));return[V.r/255,V.g/255,V.b/255,1]}),x=Twt().equals((H,V)=>H===V).size(50).crossValue(H=>H.x).mainValue(H=>H.y).decorate(H=>b(H)),k=HAt().scaleExtent([.1,1e3]).on("start",()=>{this.selectedDot=null}).on("zoom",H=>{let V=H.transform,z=V.rescaleX(this.scales.xOriginal),q=V.rescaleY(this.scales.yOriginal);this.scales.x.domain(z.domain()),this.scales.y.domain(q.domain()),this.zoomStateKey=`${V.x}_${V.y}_${V.k}`,this.renderSvgLayer(),this.renderWebglLayer()}).on("end",()=>{this.allPossibleLabels.forEach(H=>{H.x=this.scales.x(H.dot.x),H.y=this.scales.y(H.dot.y)}),this.visibleLabels=J8(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.renderSvgLayer()}),_=__().x(H=>H.x).y(H=>H.y).addAll(e),D=Dpt().on("point",([H])=>{var W,U;if(!H){this.selectedDot=null,this.renderSvgLayer();return}let V=this.scales.x.invert(H.x),z=this.scales.y.invert(H.y),q=(W=this.tools)==null?void 0:W.qt.find(V,z),ee=this.selectedDot&&!q||!this.selectedDot&&q||((U=this.selectedDot)==null?void 0:U.id)!==(q==null?void 0:q.id);this.selectedDot=q??null,ee&&this.renderSvgLayer()}),O=lpt({xScale:this.scales.x,yScale:this.scales.y}).xAxisHeight(()=>"0").yAxisWidth(()=>"0").svgPlotArea(_wt()).webglPlotArea(Pwt().series([x]).mapping(H=>H)).decorate(H=>{let V=H.enter();V&&!this.svgLayerElement&&(V.style("grid-template-columns","0 auto 1fr auto 0"),V.style("grid-template-rows","0 auto 1fr auto 0"),this.svgLayerElement=V.select(".svg-plot-area.plot-area svg").node()),V.select(".svg-plot-area.plot-area").call(k).call(D)});this.tools={webglChart:O,zoom:k,qt:_,fillColor:b,pointSeries:x,aesGetter:E},iu(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=nZ(e,"dotFill",n.aes.dotFill);this.tools.aesGetter=r,(a=this.tools)==null||a.fillColor.value(i=>{let o=Vy(r(i.data));return[o.r/255,o.g/255,o.b/255,1]})}updateByLasso(e){var t;this.tools!==null&&((t=this.tools)==null||t.fillColor.value(n=>{var o;let r=((o=this.tools)==null?void 0:o.aesGetter)??(()=>Wt),a=Vy(r(n.data)),i=e.length<2||Mpt(e,[n.x,n.y])?1:.2;return[a.r/255,a.g/255,a.b/255,i]}),this.renderWebglLayer())}updateData(e){this.tools!==null&&(iu(this.canvasNode).datum(e),this.tools.fillColor.data(e),this.tools.qt=__().x(t=>t.x).y(t=>t.y).addAll(e))}render(e,t,n,r,a,i,o,s,c,f,A,h){if(this.tools===null)this.initSettings(a,t,i,r,o,s,c,f),this.onPolygonUpdateOutside=h;else{let{title:m,legend:y}=t;this.updateLegendSize(y,c,f,s),this.createMainTitle(m),this.updateMargins(),this.updateAes(o,s)}this.allPossibleLabels=A,this.allPossibleLabels.forEach(m=>{m.x=this.scales.x(m.dot.x),m.y=this.scales.y(m.dot.y)}),this.visibleLabels=J8(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&&iu(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={settingsId:this.notCalculatedProps.settingsId,chartSettings:this.notCalculatedProps.chartSettings,onlyPositive:this.notCalculatedProps.onlyPositive,keyColumn:this.notCalculatedProps.keyColumn,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,onPolygonUpdate:this.onPolygonUpdate};this.svgLayerComponent=ie.jsx(Cwt,{...e}),(n=this.reactRoot)==null||n.render(this.svgLayerComponent)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},Hwt=Mwt,MP=I.object({type:I.literal("grouping"),value:I.string()}),Iwt=I.object({type:I.literal("dots"),aes:I.optional(I.object({dotFill:I.optional(I.union([I.string(),MP,o1(I.string())])),dotShape:I.optional(I.union([Od,MP])),dotSize:I.optional(I.union([I.number(),MP]))}))}),Rwt=Iwt,Lwt=I.object({type:I.literal("scatterplot-umap"),title:I.object({name:I.string(),show:I.optional(I.boolean()),position:I.optional(Rv)}),size:I.optional(I.object({width:I.optional(I.number()),height:I.optional(I.number())})),legend:I.optional(I.object({show:I.optional(I.boolean()),position:I.optional(Dg)})),tooltips:I.optional(I.object({show:I.optional(I.boolean()),content:I.optional(I.array(Tr))})),frame:I.optional(I.object({type:I.optional(f9)})),keyColumn:Tr,x:Tr,y:Tr,xAxis:I.optional(a2),yAxis:I.optional(a2),grouping:I.optional(I.array(Tr)),label:I.optional(Tr),inheritedAes:I.optional(I.record(I.string(),r2)),layers:I.array(Rwt)}),Nwt=class{constructor(e){Me(this,"type","dots");Me(this,"aes",{dotFill:Wt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},rZ=class{constructor(e){Me(this,"id");Me(this,"type","scatterplot-umap");Me(this,"keyColumn");Me(this,"x");Me(this,"y");Me(this,"grouping");Me(this,"label");Me(this,"chartSettings");Me(this,"inheritedAes");Me(this,"layers");var t,n,r,a;Lwt.parse(e),this.id=Ir.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 Nwt(i);throw new Error("Unknown layer type")}).filter(Boolean)}};function aZ(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function $wt(e,t,n,r){return t.reduce((a,i)=>{let o=Ir.uniqBy(e.rows,h=>h[i.value]),s=h=>String(h[i.value]),c=h=>i.valueLabels?String(h[i.valueLabels]):s(h),f=new Set;n.forEach(h=>{h.aes&&Object.entries(h.aes).forEach(([m,y])=>{aZ(y)&&y.value===i.value&&f.add(m)})});let A=o.reduce((h,m)=>(h[s(m)]=c(m),h),{});return a[i.value]={values:o.map(s).sort((h,m)=>A[h].localeCompare(A[m],"en",{numeric:!0})),usedAes:[...f],aesMap:r[i.value],labels:A},a},{})}var Fwt=10;function Vwt(e){let t=[],n=new ou("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:Fwt})}return t}var Owt=class extends Pg{constructor(t,n,r){super(t,n);Me(this,"settings");Me(this,"chartRenderer",new Hwt);Me(this,"onPolygonUpdate",()=>YS);Me(this,"calculatedData",null);this.settings=new rZ(n),r&&(this.onPolygonUpdate=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 rZ(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,o;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)!==((o=n.label)==null?void 0:o.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 o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{x:t,y:n,keyColumn:r,label:a,grouping:i,layers:o,inheritedAes:s}=this.settings,c={x:!0,y:!0},f={minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0},A=this.data.rows.reduce((m,y)=>{if(y[t.value]===null||y[n.value]===null)return m;let E=Number(y[t.value]),b=Number(y[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(y[r.value]),label:a&&y[a.value]?String(y[a.value]):null,data:y}),m},[]),h=$wt(this.data,i,o,s);this.calculatedData={onlyPositive:c,dots:A,allPossibleLabels:Vwt(A),dotsExtents:f,legendLabels:h},this.chartRenderer.updateData(A)}_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 o=new Set;n.forEach(s=>{s.aes&&Object.entries(s.aes).forEach(([c,f])=>{aZ(f)&&f.value===i.value&&o.add(c)})}),t.legendLabels[i.value].usedAes=[...o],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:o}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.onlyPositive,this.calculatedData.dots,this.calculatedData.dotsExtents,a,i,this.calculatedData.legendLabels,o,this.calculatedData.allPossibleLabels,this.onPolygonUpdate)}};function Qwt(e){let t=rR(e),n=tu(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function zwt(e){let t=tu(e),[n,r]=$A(e);return t===void 0||n===void 0||r===void 0?a=>a:a=>(a-t)/(r-n)}function Uwt(e,t){return e==="standardScaling"?Qwt(t):e==="meanNormalization"?zwt(t):n=>n}function jwt(e,t,n,r,a,i,o,s,c,f){let A={meta:{facetKeys:o,xKeys:[],yKeys:[],xLabels:{},yLabels:{},facetKeyValues:o.reduce((b,x,k)=>(b[x]=s[k],b),{}),valueExtentSize:[1/0,-1/0],valueExtentColor:[1/0,-1/0]},facets:{}},h=new Set,m=new Set,y=t.valueLabels??t.value,E=n.valueLabels??n.value;if(e.rows.forEach(b=>{let x=i.length?i.map(H=>b[H.value]).join("_"):"null",k=b[t.value],_=b[n.value],D=b[r.value]??f,O=b[a.value]??f;if(!(k===null||_===null||D===null||O===null)){if(A.facets[x]||(A.facets[x]={xKeys:[],yKeys:[],cells:{}}),A.facets[x].xKeys.push(k),A.facets[x].yKeys.push(_),h.has(k)||(h.add(k),A.meta.xKeys.push(k)),m.has(_)||(m.add(_),A.meta.yKeys.push(_)),A.facets[x].cells[k]||(A.facets[x].cells[k]={}),A.meta.valueExtentSize[0]=Math.min(D,A.meta.valueExtentSize[0]),A.meta.valueExtentSize[1]=Math.max(D,A.meta.valueExtentSize[1]),A.meta.valueExtentColor[0]=Math.min(O,A.meta.valueExtentColor[0]),A.meta.valueExtentColor[1]=Math.max(O,A.meta.valueExtentColor[1]),A.facets[x].cells[k][_])throw Error(`More than 1 value for x=${k}, y=${_}`);if(A.meta.xLabels[k]&&String(b[y])!==A.meta.xLabels[k])throw Error(`More than 1 x-label value for x=${k}`);if(A.meta.yLabels[_]&&String(b[E])!==A.meta.yLabels[_])throw Error(`More than 1 y-label value for y=${_}`);A.meta.xLabels[k]=String(b[y]),A.meta.yLabels[_]=String(b[E]),A.meta&&(A.facets[x].cells[k][_]={id:`${k}_${_}`,x:k,y:_,sizeValue:D,normalizedSizeValue:D,colorValue:O,normalizedColorValue:O,data:b})}}),o.forEach(b=>{let x=A.facets[b];x.xKeys=Ir.uniq(x.xKeys),x.yKeys=Ir.uniq(x.yKeys)}),c){let b=[1/0,-1/0];o.forEach(x=>{let{xKeys:k,yKeys:_,cells:D}=A.facets[x],O=c.direction==="row"?k:_,H=c.direction==="row"?_:k,V=c.direction==="row"?(z,q)=>{var ee;return(ee=D[z])==null?void 0:ee[q]}:(z,q)=>{var ee;return(ee=D[q])==null?void 0:ee[z]};H.forEach(z=>{let q=[];O.forEach(W=>{var $;let U=($=V(W,z))==null?void 0:$.colorValue;U!==void 0&&q.push(U)});let ee=Uwt(c.method,q);O.forEach(W=>{let U=V(W,z);U!==void 0&&(U.normalizedColorValue=ee(U.colorValue),b[0]=Math.min(U.normalizedColorValue,b[0]),b[1]=Math.max(U.normalizedColorValue,b[1]))})})}),A.meta.valueExtentColor=b}return A.meta.valueExtentSize[0]===1/0&&(A.meta.valueExtentSize[0]=0),A.meta.valueExtentSize[1]===-1/0&&(A.meta.valueExtentSize[1]=0),A.meta.valueExtentColor[0]===1/0&&(A.meta.valueExtentColor[0]=0),A.meta.valueExtentColor[1]===-1/0&&(A.meta.valueExtentColor[1]=0),A}var Gwt=15,Rg=8,tE=30,Ywt=48,Wwt=24,nE=16,C2=4,rE=4,iZ=20,Xwt=16,u1={left:["axis","axisTitle"],right:["axis","axisTitle"],top:["axis","axisTitle","facetTitle"],bottom:["axis","axisTitle"]};function Kwt(e,t,n,r,a,i,o){let s=r.includes(t.position),c=r.includes(e.position),f=a.length>1,A=e.showTicks?rE:0,h=t.showTicks?rE:0,m=c&&e.showTitle?tE:0,y=s&&t.showTitle?tE:0,E=c&&e.showAxisLabels&&i>nE?n.xAxisCaptions+A+C2:0,b=s&&t.showAxisLabels&&o>nE?n.yAxisCaptions+h+C2:0;return{left:{axisTitle:t.position==="left"?y:0,axis:t.position==="left"?b:0},right:{axisTitle:t.position==="right"?y:0,axis:t.position==="right"?b:0},top:{facetTitle:f?Ywt: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 Zwt(e,t,n){return{left:u1.left.reduce((r,a,i)=>{let o=i>0?u1.left[i-1]:null,s=e.left[a];return r[a]={x:o?r[o].x-s:-s,y:0,width:s,height:n,isVisible:s>0},r},{}),right:u1.right.reduce((r,a,i)=>{let o=i>0?u1.right[i-1]:null,s=e.right[a];return r[a]={x:o?r[o].x+r[o].width:t,y:0,width:s,height:n,isVisible:s>0},r},{}),top:u1.top.reduce((r,a,i)=>{let o=i>0?u1.top[i-1]:null,s=e.top[a];return r[a]={x:0,y:o?r[o].y-s:-s,width:t,height:s,isVisible:s>0},r},{}),bottom:u1.bottom.reduce((r,a,i)=>{let o=i>0?u1.bottom[i-1]:null,s=e.bottom[a];return r[a]={x:0,y:o?r[o].y+r[o].height:n,width:t,height:s,isVisible:s>0},r},{})}}function Jwt(e,t,n,r){let{xLabels:a,yLabels:i}=n.meta,o=e.xAxisLabels/180*Math.PI,s=e.yAxisLabels/180*Math.PI,c=0,f=0,A=e.xAxisLabels===45;if(A){let m=n.meta.xKeys,y=t.x,E=y>nE,b=a[m[0]];c=Math.max(c,(A&&E?r.getTextWidth(b)*Math.cos(o):0)-y/2)}let h=e.yAxisLabels===45;if(h){let m=n.meta.yKeys;if(m.length){let y=t.y,E=y>nE,b=i[m[m.length-1]];f=Math.max(f,(h&&E?r.getTextWidth(b)*Math.cos(s):0)-y/2)}}return{xCaptionTail:c,yCaptionTail:f}}function qwt({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:f,xLabels:A,yLabels:h}){let m=i.showTicks?rE:0,y=o.showTicks?rE:0,E=e.top.axis.isVisible||e.bottom.axis.isVisible,b=e.top.axisTitle.isVisible?e.top.axisTitle:e.bottom.axisTitle,x=e.top.axis.isVisible?e.top.axis:e.bottom.axis,k=e.left.axis.isVisible||e.right.axis.isVisible,_=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,D=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:Wt,fill:"none"})]}),E&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${x.x},${x.y})`,children:[n.map(O=>{let H=f.xAxisLabels!==0,V=i.position==="bottom",z=V?0:x.height,q=V?z+m:z-m,ee=V?q+C2:q-C2,W=a.x(O)+s/2,U=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:W,x2:W,y1:z,y2:q,stroke:Wt}),ie.jsx("text",{x:W,y:ee,textAnchor:H?V?"end":"start":"middle",transform:`rotate(${U},${W},${ee})`,dominantBaseline:H?"central":V?"hanging":"auto",children:A[O]})]},O)}),t&&ie.jsx("rect",{width:x.width,height:x.height,stroke:Wt,fill:"none"})]})]}),ie.jsxs("g",{children:[_.isVisible&&ie.jsx("g",{transform:`translate(
|
|
15182
15182
|
${_.x+_.width/2},
|
|
15183
15183
|
${_.y+_.height/2})`,children:ie.jsx("text",{transform:`rotate(${o.position==="left"?-90:90})`,dominantBaseline:"central",textAnchor:"middle",children:o.title})}),t&&ie.jsx("rect",{x:_.x,y:_.y,width:_.width,height:_.height,stroke:Wt,fill:"none"}),k&&ie.jsx("g",{fontSize:"14px",transform:`translate(${D.x},${D.y})`,children:r.map(O=>{let H=f.yAxisLabels!==0,V=o.position==="left",z=-(90-f.yAxisLabels),q=f.yAxisLabels===0?"middle":V?"end":"start",ee=H?"central":V?"auto":"hanging",W=V?D.width:0,U=V?W-y:W+y,$=V?U-C2:U+C2,G=a.y(O)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:W,x2:U,y1:G,y2:G,stroke:Wt}),ie.jsx("text",{x:$,y:G,textAnchor:q,transform:`rotate(${z},${$},${G})`,dominantBaseline:ee,children:h[O]})]},O)})}),t&&ie.jsx("rect",{x:D.x,y:D.y,height:D.height,width:D.width,stroke:Wt,fill:"none"})]})]})}function aE(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 e9t(e,t,n=[]){let r=e.data,a=[`X: ${t.xLabels[e.x]}`,`Y: ${t.yLabels[e.y]}`,`Value (color): ${aE(e.colorValue)}${e.colorValue!==e.normalizedColorValue?` (${aE(e.normalizedColorValue)})`:""}`,`Value (size): ${aE(e.sizeValue)}${e.sizeValue!==e.normalizedSizeValue?` (${aE(e.normalizedSizeValue)})`:""}`];for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function t9t({facetKey:e,dimensions:t,scales:n,cells:r,colorScale:a,sizeScale:i,chartSettings:o,cellsMeta:s,stepX:c,stepY:f,aes:A,labelAngles:h,chartSizes:m,margins:y,tooltipsContainer:E}){let[b,x]=nr.useState(null),{xAxis:k,yAxis:_,tooltips:D}=o,{width:O,height:H}=t.inner,{padding:V,sideElementBBoxes:z}=t,{xLabels:q,yLabels:ee}=s,W=n.x.domain(),U=n.y.domain(),$={left:y.left+t.left+V.left,right:m.totalWidth-(y.left+t.left+V.left),top:y.top+t.top+V.top,bottom:m.totalHeight-(y.top+t.top+V.top)},G=!1;return ie.jsxs("g",{transform:`translate(${t.left},${t.top})`,fontSize:Xwt,children:[ie.jsxs("g",{transform:`translate(${V.left},${V.top})`,children:[z.top.facetTitle.isVisible&&ie.jsx("text",{x:z.top.facetTitle.x,y:z.top.facetTitle.y+z.top.facetTitle.height-Wwt,fontWeight:"500",fontSize:"20px",children:s.facetKeyValues[e].join(", ")}),G,W.map(j=>U.map(re=>{var Se;let se=(Se=r==null?void 0:r[j])==null?void 0:Se[re];return se?ie.jsx("circle",{cx:n.x(j)+c/2,cy:n.y(re)+f/2,r:i(se.normalizedSizeValue),stroke:A.cellStrokeColor,fill:se.colorValue===null?A.emptyCellColor:a(se.normalizedColorValue),onMouseOver:()=>x(se),onMouseLeave:()=>x(null)},se?se.id:`${j}_${re}`):null})),ie.jsx("g",{children:o.frame.type==="full"&&ie.jsx("rect",{fill:"none",stroke:Wt,x:"0",y:"0",width:O,height:H})}),ie.jsx("g",{fontWeight:"500",children:ie.jsx(qwt,{sideElementBBoxes:z,xKeys:W,yKeys:U,scales:n,xAxis:k,yAxis:_,stepX:c,stepY:f,labelAngles:h,xLabels:q,yLabels:ee,debug:G})})]}),o.tooltips.show&&b&&ie.jsx(Mc,{content:e9t(b,s,D==null?void 0:D.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:$,container:E})]})}var oZ=14,lZ=-12;function n9t({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 o=a.scale.domain(),s=o[o.length-1]-o[0],c=s>0?100-(i-o[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:lZ,children:a.title}),ie.jsx("rect",{x:"0",y:"0",width:oZ,height:a.height,stroke:Wt,fill:`url(#${a.id})`}),ie.jsx("g",{transform:`translate(${oZ},0)`,children:a.values.map(i=>{let o=a.scale.domain(),s=o[o.length-1]-o[0],c=s>0?a.height-a.height*(i-o[0])/s:0;return ie.jsxs("g",{transform:`translate(0,${c})`,children:[ie.jsx("line",{x1:"0",x2:-4,stroke:Wt}),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:lZ,children:a.title}),a.values.map((o,s)=>{let c=a.scale(o);return ie.jsxs("g",{transform:`translate(0, ${s*i})`,children:[ie.jsx("circle",{r:c,cx:i/2,cy:i/2,fill:Wt}),ie.jsx("text",{x:i+4,y:i/2,alignmentBaseline:"central",children:a.labels[o]})]},o)}),r]},a.id)}})]})}function r9t({margins:e,captionsSizes:t,settingsId:n,chartSettings:r,chartSizes:a,chartsDimensions:i,facetKeys:o,scales:s,colorScale:c,sizeScale:f,groupedCells:A,cellsMeta:h,step:m,legend:y,aes:E,columnsCount:b,labelAngles:x}){let[k,_]=nr.useState(),D=nr.useRef(null);nr.useEffect(()=>{D.current&&_(D.current)},[]);let O=i[o[0]].padding,H=i[o[b-1]].padding,V=e.left+a.chartsWidth+iZ,z=e.top+O.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:Hg}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(p2,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:O.left,rightPadding:H.right,chartsWidth:a.chartsWidth}),o.map(q=>{let{cells:ee}=A[q];return ie.jsx(t9t,{captionsSizes:t,facetKey:q,dimensions:i[q],scales:s,cells:ee,cellsMeta:h,stepX:m.x,stepY:m.y,colorScale:c,sizeScale:f,chartSettings:r,aes:E,labelAngles:x,margins:e,chartSizes:a,tooltipsContainer:k},q)})]}),ie.jsx("g",{transform:`translate(${V},${z})`,children:ie.jsx(n9t,{data:y})}),ie.jsx("g",{ref:D})]})})}var a9t=(e,t)=>{let n=Math.min(...t),r=Math.max(...t);if(n===r){let o=e%2===0?[]:[n];for(let s=1;s<e/2+1;s++)o.push(n+s),o.unshift(n-s);return o}if(e<2)return[n,r];let a=(r-n)/(e-1),i=[];for(let o=0;o<e-1;o++)i.push(n+a*o);return i.push(r),i};function i9t(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])),a9t(t,r)}var o9t=class{constructor(){Me(this,"reactRoot",null);Me(this,"parentNode",null);Me(this,"rootNode",null);Me(this,"component",ie.jsx(ie.Fragment,{}));Me(this,"chartsDimensions",{});Me(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Me(this,"margins",{top:Rg,bottom:Rg,left:Rg,right:Rg});Me(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xCaptionTail:0,yCaptionTail:0});Me(this,"labelAngles",{xAxisLabels:0,yAxisLabels:0});Me(this,"columnsCount",1);Me(this,"rowsCount",1);Me(this,"scales",{x:Hl().domain(["null"]).range([1]),y:Hl().domain(["null"]).range([1])});Me(this,"step",{x:10,y:10});Me(this,"colorScale",ei().domain([0,1]).range(["white","black"]));Me(this,"sizeScale",Qy().domain([0,1]).range([3,20]));Me(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=Oh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Rg,bottom:Rg,left:Rg,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,o=this.chartSizes.chartsHeight,s=this.colorScale.domain(),c=i2(this.colorScale,[s[0],s[s.length-1]]),f=t.label??t.value,A={id:"colorValue",type:"gradient",width:o2(c,f),height:Math.min(this.chartSizes.chartHeight,350),left:0,top:0,scale:this.colorScale,values:c,title:f};a.push(A),i+=A.width+r;let h=A.width,m=n.label??n.value,y=this.sizeScale.ticks(3),E=this.sizeScale.tickFormat(3),b=y.reduce((V,z)=>(V[String(z)]=E(z),V),{}),x=new ou("600 14px Manrope");function k(V,z){return Math.max(...V.map(q=>x.getTextWidth(String(q))+r),x.getTextWidth(z))}let _=k(y.map(V=>b[V]),m),D=(this.sizeScale(Math.max(...y))*2+4)*y.length,O=i;a.push({id:n.value,type:"size",width:_,height:D,left:O,top:0,title:m,scale:this.sizeScale,values:y,labels:b});let H=i+h+2*iZ;this.legend={width:H,height:o,items:a}}updateCaptionsSize(e,t,n){let r=new ou("bold 14px Arial"),{xKeys:a,yKeys:i,xLabels:o,yLabels:s}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle};let c=a.map(E=>r.getTextWidth(o[E])),f=i.map(E=>r.getTextWidth(s[E])),{xCaptionTail:A,yCaptionTail:h}=Jwt(this.labelAngles,this.step,e,r),m=this.labelAngles.xAxisLabels/180*Math.PI,y=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:A,yCaptionTail:h,xAxisCaptions:Math.max(...c,0)*Math.sin(m)||tE,yAxisCaptions:Math.max(...f,0)*Math.sin(y)||tE}}updateChartDimensions(e,t,n,r){let a=e.length,i=Math.min(t.nRows??a,a),o=Math.min(t.nCols??a,a);this.columnsCount=t.nRows?Math.ceil(a/i):o,this.rowsCount=Math.ceil(a/this.columnsCount),this.chartsDimensions={};let s=0,c=0;e.forEach((h,m)=>{let y=m%this.columnsCount+1,E=gK(m,e.length,this.columnsCount,this.rowsCount),b=this.chartSizes.chartWidth,x=this.chartSizes.chartHeight,k=Kwt(n,r,this.captionsSizes,E,e,this.step.x,this.step.y);function _(z){return Math.max(u1[z].reduce((q,ee)=>q+k[z][ee],0),Gwt)}let D={left:_("left"),right:_("right"),top:_("top"),bottom:_("bottom")};D.left<this.captionsSizes.xCaptionTail&&(D.left=this.captionsSizes.xCaptionTail),D.bottom<this.captionsSizes.yCaptionTail&&(D.bottom=this.captionsSizes.yCaptionTail);let O=Zwt(k,b,x),H=b+D.left+D.right,V=x+D.top+D.bottom;this.chartsDimensions[h]={left:s,top:c,inner:{width:b,height:x},outer:{width:H,height:V},padding:D,sideElementBBoxes:O,chartEdgeSides:E},s+=H,y===this.columnsCount&&(s=0,c+=V)});let f=e.slice(0,this.columnsCount).reduce((h,m)=>h+this.chartsDimensions[m].outer.width,0),A=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=A}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,n,r){let{width:a,height:i,cellSize:o}=t,{meta:s}=e,c=(E,b={})=>[...E].sort((x,k)=>n.sorting==="asc"?(b[x]??x).localeCompare(b[k]??k,"en",{numeric:!0}):(b[k]??k).localeCompare(b[x]??x,"en",{numeric:!0})),f=(E,b={})=>[...E].sort((x,k)=>r.sorting==="asc"?(b[x]??x).localeCompare(b[k]??k,"en",{numeric:!0}):(b[k]??k).localeCompare(b[x]??x,"en",{numeric:!0})),A=c(s.xKeys,s.xLabels),h=f(s.yKeys,s.yLabels);o?(this.step.x=o,this.step.y=o):a&&i&&(this.step.x=a/A.length,this.step.y=i/h.length);let m=new Array(A.length).fill(null).map((E,b)=>b*this.step.x),y=new Array(h.length).fill(null).map((E,b)=>b*this.step.y);this.scales.x=Hl().domain(A).range(m),this.scales.y=Hl().domain(h).range(y)}updateAesScale(e,t,n,r){this.colorScale=ei().domain(i9t(r,e.colorsList.length,n)).range(e.colorsList),this.sizeScale=Qy(t,[e.minRadius,e.maxRadius])}render(e,t,n,r,a,i,o,s,c){var _;let{meta:f,facets:A}=a,{valueExtentSize:h,valueExtentColor:m}=f,{xAxis:y,yAxis:E,title:b,size:x}=t;this.updateChartsSizes(a,x),this.updateAesScale(c,h,m,s),this.updateScales(a,x,t.xAxis,t.yAxis),this.updateCaptionsSize(a,y,E),this.updateChartDimensions(r,n,y,E),this.updateLegendSize(t.legend,i,o),this.updateMargins(b);let k=ie.jsx(r9t,{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:A,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step});this.component=k,(_=this.reactRoot)==null||_.render(k)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Nv,{message:e}))}},l9t=o9t,sZ=class{constructor(e){Me(this,"id");Me(this,"type","bubble");Me(this,"facetSettings");Me(this,"valueColumnSize");Me(this,"valueColumnColor");Me(this,"xColumn");Me(this,"yColumn");Me(this,"facetBy");Me(this,"normalization");Me(this,"NAValueAs");Me(this,"chartSettings");Me(this,"aes");var a,i,o,s,c,f,A,h,m,y;Qyt.parse(e),this.id=Ir.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:((o=e==null?void 0:e.size)==null?void 0:o.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,sorting:"asc",...e.yAxis},xAxis:{title:e.xColumn.label??e.xColumn.value,showTicks:!0,showTitle:!0,showAxisLabels:!0,position:"bottom",axisLabelsAngle:90,sorting:"asc",...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:((A=e.aes)==null?void 0:A.maxRadius)??20,colorsList:((h=e.aes)==null?void 0:h.colorsList)??["black","white","red"],cellStrokeColor:((m=e.aes)==null?void 0:m.cellStrokeColor)??Wt,emptyCellColor:((y=e.aes)==null?void 0:y.emptyCellColor)??"white"}}},s9t=class extends Pg{constructor(t,n){super(t,n);Me(this,"settings");Me(this,"chartRenderer",new l9t);Me(this,"calculatedData",null);this.settings=new sZ(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 sZ(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(),p3(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,o;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)!==((o=n.normalization)==null?void 0:o.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 o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{facetBy:t,xColumn:n,yColumn:r,valueColumnSize:a,valueColumnColor:i,normalization:o,NAValueAs:s}=this.settings,c=t.map(h=>this.data.getColumnCategories(h.value)),f=(c.length?HK([...c]):[["null"]]).map(h=>h.join(", ")),A=t.map(h=>h.value)??null;this.data.setGrouping([...A]),this.calculatedData={facetKeys:f,groupedCellsData:jwt(this.data,n,r,a,i,t,f,c,o,s)}}_updateAesInData(){this.calculatedData}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,facetSettings:r,valueColumnColor:a,valueColumnSize:i,normalization:o,aes:s}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.facetKeys,this.calculatedData.groupedCellsData,a,i,o,s)}};function u9t(e){return"type"in e&&e.type==="columns"}var uZ=class xI{constructor(t,n){Me(this,"id");Me(this,"data");Me(this,"rowsCount");Me(this,"columnNames");Me(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 xI)return t;if(u9t(t))return new xI(t.id,t.values);mA(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 Ir.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),o=[];r.forEach(s=>{if(a===null)s.grouped={null:{rows:s.rows,grouped:{}}},o.push(s.grouped.null);else{let c=Ir.groupBy(s.rows,f=>String(f[a]));s.grouped=i.reduce((f,A)=>(f[A]={rows:c[A]??[],grouped:{}},o.push(f[A]),f),{})}}),r=o}),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}},c9t=class BI{constructor(t){Me(this,"node");Me(this,"chart");this.chart=t}static createChart(t,n,r){let{type:a}=n;if(a==="discrete")return new b5t(t,n);if(a==="dendro")return new m3t(t,n,r);if(a==="scatterplot")return new pwt(t,n);if(a==="scatterplot-umap")return new Owt(t,n,r);if(a==="heatmap")return new J5t(t,n);if(a==="histogram")return new b7t(t,n);if(a==="bubble")return new s9t(t,n);mA(a,`Unknown chart type: ${a}`)}static newPlot(t,n,r){let a=uZ.from(t);return new this(BI.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=BI.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(uZ.from(t),n)}updateChartState(t,n){this.chart.updateChartState(t,n)}export(){return this.chart.export()}};/*! Bundled license information:
|
|
15184
15184
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/graph-maker",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.75",
|
|
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.
|
|
36
|
+
"@milaboratories/miplots4": "^1.0.82",
|
|
37
37
|
"@milaboratories/pf-plots": "^1.0.99",
|
|
38
38
|
"@platforma-sdk/model": "^1.29.14",
|
|
39
39
|
"@platforma-sdk/ui-vue": "^1.29.15",
|