@milaboratories/graph-maker 1.1.117 → 1.1.119
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 +9 -1
- package/dist/graph-maker.umd.cjs +2 -2
- package/package.json +2 -2
package/dist/graph-maker.js
CHANGED
|
@@ -90396,6 +90396,10 @@ var tSt = class {
|
|
|
90396
90396
|
if (n.forEach((A) => {
|
|
90397
90397
|
let d = t[A.value];
|
|
90398
90398
|
if (d.usedAes.length === 0 || !d.aesMap) return;
|
|
90399
|
+
if (d.values.length > 100) {
|
|
90400
|
+
console.warn(`Too many values for discrete legend (${d.values.length})`);
|
|
90401
|
+
return;
|
|
90402
|
+
}
|
|
90399
90403
|
let h = {};
|
|
90400
90404
|
d.values.forEach((w) => {
|
|
90401
90405
|
h[w] || (h[w] = { ...Jm }), d.usedAes.forEach((x) => {
|
|
@@ -90954,6 +90958,10 @@ var $St = class {
|
|
|
90954
90958
|
if (n.forEach((A) => {
|
|
90955
90959
|
let d = t[A.value];
|
|
90956
90960
|
if (d.usedAes.length === 0 || !d.aesMap) return;
|
|
90961
|
+
if (d.values.length > 100) {
|
|
90962
|
+
console.warn(`Too many values for discrete legend (${d.values.length})`);
|
|
90963
|
+
return;
|
|
90964
|
+
}
|
|
90957
90965
|
let h = {};
|
|
90958
90966
|
d.values.forEach((w) => {
|
|
90959
90967
|
h[w] || (h[w] = { ...Jm }), d.usedAes.forEach((x) => {
|
|
@@ -91565,7 +91573,7 @@ var ZW = class GH {
|
|
|
91565
91573
|
}
|
|
91566
91574
|
getColumnCategories(t) {
|
|
91567
91575
|
if (!this.columnNames.includes(t)) throw new Error(`Column ${t} does not exist`);
|
|
91568
|
-
return dr.uniq(this.getColumn(t)).map(String);
|
|
91576
|
+
return dr.uniq(this.getColumn(t)).filter((n) => n !== null).map(String);
|
|
91569
91577
|
}
|
|
91570
91578
|
setGrouping(t) {
|
|
91571
91579
|
let n = { grouped: {}, rows: this.rows }, r = [n];
|
package/dist/graph-maker.umd.cjs
CHANGED
|
@@ -15125,9 +15125,9 @@ void main() {
|
|
|
15125
15125
|
`)),k(!0)}let Z=ie.jsxs("g",{className:oK,transform:`translate(${o.left+t},${o.top+n})`,opacity:r?1:0,stroke:"none",fill:"none",style:{pointerEvents:a?"all":"none"},children:[ie.jsx("path",{transform:h4t(v,c),d:f4t(A,h,v,g,C),fill:Vt}),ie.jsxs("g",{fontSize:"14px",fontFamily:"Manrope",fill:"white",transform:A4t(v,A,h,c,g,C),children:[e.map((ee,le)=>ie.jsx("text",{x:qC,y:JC+TM*le+TM/2,dominantBaseline:"central",children:ee},le)),a&&ie.jsxs("g",{transform:b,children:[ie.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4.0006 2.93945L8.0006 6.93945L12.0006 2.93945L13.0613 4.00011L9.06126 8.00011L13.0613 12.0001L12.0006 13.0608L8.0006 9.06077L4.0006 13.0608L2.93994 12.0001L6.93994 8.00011L2.93994 4.00011L4.0006 2.93945Z",fill:P?aK:iK}),ie.jsx("rect",{x:"-8",y:"-8",width:"24",height:"24",fill:"transparent",onClick:s,onMouseOver:()=>I(!0),onMouseLeave:()=>I(!1),style:{cursor:"pointer"}})]}),a&&ie.jsxs("g",{transform:x,children:[B?ie.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M14.0601 4.43439L6.33313 12.5477L1.93945 7.93439L3.02566 6.8999L6.33313 10.3727L12.9739 3.3999L14.0601 4.43439Z",fill:"#07AD3E"}):ie.jsxs("g",{children:[ie.jsx("g",{clipPath:"url(#clip0_16418_6183)",children:ie.jsx("path",{d:"M16.0005 13H14.5005V1.5H3.00049V0H14.5005C15.3289 2.86102e-06 16.0005 0.671575 16.0005 1.5V13ZM1.34717 15.9922C0.641178 15.9205 0.0799799 15.3593 0.00830078 14.6533L0.000488281 14.5V4.5C0.000488281 3.72334 0.590765 3.08461 1.34717 3.00781L1.50049 3H11.5005L11.6538 3.00781C12.4102 3.08461 13.0005 3.72334 13.0005 4.5V14.5L12.9927 14.6533C12.921 15.3593 12.3598 15.9205 11.6538 15.9922L11.5005 16H1.50049L1.34717 15.9922ZM11.5005 4.5H1.50049V14.5H11.5005V4.5Z",fill:$?aK:iK})}),ie.jsx("defs",{children:ie.jsx("clipPath",{id:"clip0_16418_6183",children:ie.jsx("rect",{width:"16",height:"16",transform:"translate(0.000488281)",fill:"white"})})})]}),ie.jsx("rect",{x:"-8",y:"-8",width:"24",height:"24",fill:"transparent",onClick:F,onMouseOver:()=>N(!0),onMouseLeave:()=>N(!1),style:{cursor:"pointer"}})]})]})]});return i===null?Z:cu.createPortal(Z,i)}function m4t(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 g4t(e,t){return[`X: ${t[e.x]}`,`Node: ${e.y}`,`Value: ${m4t(e.value)}`]}function y4t({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,[v,g]=tn.useState(null),C={left:i.treeWidth+30+Qu.LEFT,right:i.heatmapWidth+Qu.RIGHT,top:Qu.TOP,bottom:i.heatmapHeight+Qu.BOTTOM};return ie.jsxs("g",{onMouseLeave:()=>g(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 k;let B=(k=A==null?void 0:A[b])==null?void 0:k[x];return ie.jsx("rect",{x:t.x(b),y:t.y(x),width:n.x,height:n.y,stroke:"white",strokeWidth:"1px",fill:B?r(B==null?void 0:B.value):X5t,onMouseOver:()=>{(B==null?void 0:B.value)!==null&&typeof(B==null?void 0:B.value)<"u"?g(B):g(null)},opacity:o&&o.data.rawData[0].id!==(B==null?void 0:B.data.id)?SM:1},B?B.id:`${b}_${x}`)})),s.length&&ie.jsx("line",{x1:"0",x2:i.heatmapWidth,y1:"0",y2:"0",stroke:Vt,strokeWidth:"1px"}),v&&a&&ie.jsx(fu,{content:g4t(v,e.meta.xLabels),x:t.x(v.x)+n.x/2,y:t.y(v.y)+n.y/2,offset:c.length>1?n.x/2:0,active:!0,fixed:!1,sideDistances:C,container:a})]})}function w4t(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"?_4e(i?x4e:S4e).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 lK({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:w4t(o,t,n),stroke:i?K5t:a.lineColor(f),strokeWidth:i?2:1,fill:"none"},`${o.source.id},${o.target.id}`)})})}function w9(e){return Zr().domain([0,1]).range([e,Vt])(.25)}var eS=1.4;function Yc(e,t=6,n=Vt,r=null){switch(e){case null:return"";case"0":return ie.jsx("path",{d:`M -${t},-${t} l ${t*2},0 l 0,${t*2} l -${t*2},0 l 0,-${t*2}z`,fill:"none",stroke:n});case"1":return ie.jsx("path",{d:`M -${t},0 a ${t},${t} 0 1,0 ${t*2},0 a ${t},${t} 0 1,0 -${t*2},0z`,fill:"none",stroke:n});case"2":return ie.jsx("path",{d:`M0,-${t}L ${2*t*Math.tan(Math.PI/6)},${t}L ${-2*t*Math.tan(Math.PI/6)},${t}z`,fill:"none",stroke:n});case"3":return ie.jsx("path",{d:`M0,-${t}L 0,${t} M -${t},0 L ${t},0`,fill:"none",stroke:n});case"4":return ie.jsx("path",{d:`M-${t},-${t}L ${t},${t} M ${t},-${t} L -${t},${t}`,fill:"none",stroke:n});case"5":{let a=t*eS;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*eS;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
|
|
15126
15126
|
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*eS;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??w9(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??w9(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??w9(n)});case"23":{let a=t*eS;return ie.jsx("path",{d:`M0,-${a}L ${a},0 L 0,${a} L -${a},0z`,fill:n,stroke:r??w9(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??w9(n)});default:f1(e,`Unknown point shape ${e}`)}}var b4t=12;function sK({nodes:e,rootPosition:t,showLeavesLabels:n,showNodesLabels:r,aesGetters:a,selectedNodeId:i,onClick:o,onSelectedUpdate:s}){let c=t==="top",[f,A]=tn.useState(null);return tn.useEffect(()=>{A(null)},[i]),ie.jsxs(ie.Fragment,{children:[ie.jsx("g",{children:e.map(h=>{let v=h.data.rawData[0],g=a.nodeSize(v),C=a.nodeColor(v),b=c?h.x:h.y,x=c?h.y:h.x;return ie.jsx("g",{transform:`translate(${b},${x})`,style:{cursor:"pointer"},onClick:B=>{B.stopPropagation(),o({x:b+Qu.LEFT,y:x+Qu.TOP,info:h.data.rawData}),s(h)},children:ie.jsx("g",{children:ie.jsx("circle",{cx:0,cy:0,r:g+b4t,fill:i===h.id?GX:f===h.id?C:"transparent",opacity:SM,onMouseOver:()=>A(h.id??null),onMouseLeave:()=>A(null)})})},h.id)})}),ie.jsx("g",{children:e.map(h=>{let v=h.data.rawData[0],g=a.nodeShape(v),C=a.nodeSize(v),b=a.nodeColor(v),x=c?h.x:h.y,B=c?h.y:h.x;return ie.jsx("g",{transform:`translate(${x},${B})`,style:{cursor:"pointer"},onClick:k=>{k.stopPropagation(),o({x:x+Qu.LEFT,y:B+Qu.TOP,info:h.data.rawData}),s(h)},children:ie.jsx("g",{onMouseOver:()=>A(h.id??null),onMouseLeave:()=>A(null),children:Yc(g,C,i===h.id?GX:b)})},h.id)})}),ie.jsx("g",{children:e.map(h=>{let v=h.data.rawData[0],g=a.nodeSize(v),C=c?h.x:h.y,b=c?h.y:h.x;return ie.jsx("g",{transform:`translate(${C},${b})`,style:{pointerEvents:"none"},children:(r&&h.children||n&&!h.children)&&ie.jsx("text",{x:g+4,y:"4",paintOrder:"stroke",stroke:"white",strokeWidth:"3",children:h.data.label})},h.id)})})]})}var uK=14,tS=12,b9=12,nS=-12;function C4t({aes:e,label:t}){let n=Yc(e.shape,e.size,e.color);return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${b9/2},${b9/2})`,children:n}),ie.jsx("text",{x:b9+8,y:b9/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function S4t({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:nS,children:n.title}),ie.jsx("rect",{x:"0",y:"0",width:uK,height:n.height,stroke:Vt,fill:`url(#${n.id})`}),ie.jsx("g",{transform:`translate(${uK},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:Vt}),ie.jsx("text",{x:8,y:4,children:i})]},i)})}),!1]},n.id)}if(n.type==="discrete")return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:nS,children:n.title}),n.values.map((r,a)=>ie.jsxs("g",{transform:`translate(0, ${a*(tS+4)})`,children:[ie.jsx("rect",{x:"0",y:"0",width:tS,height:tS,fill:n.scale(r),rx:"1",ry:"1"}),ie.jsx("text",{x:tS+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:nS,children:n.title}),n.values.map((r,a)=>ie.jsx("g",{transform:`translate(0, ${a*(b9+4)})`,children:ie.jsx(C4t,{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:nS,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:Vt}),ie.jsx("text",{x:r+4,y:r/2,alignmentBaseline:"central",children:n.labels[a]})]},a)}),!1]},n.id)}})]})}function cK(e){if(!e)return null;let t=new Set,n=e;for(;n;)t.add(n.id),n=n.parent;return t}function x4t({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:v,heatmapData:g,heatmapScales:C,heatmapStep:b,heatmapColor:x,heatmapLabels:B,legendData:k,onClick:P}){let I=tn.useRef(null),[$,N]=tn.useState(null),F=tn.useRef(null);tn.useEffect(()=>{F.current&&N(F.current);function X(){ee(null),Q(null)}function te(pe){Object.entries(pe.detail).forEach(([ae,ge])=>{if(ae==="selectedNode"){let me=n.find(fe=>fe.data.rawData[0].id===ge)??null;ee(cK(me)),Q(me)}})}return document.addEventListener("click",X),document.addEventListener(xM,te),()=>{document.removeEventListener("click",X),document.removeEventListener(xM,te)}},[]);let[Z,ee]=k8.useState(null),[le,Q]=k8.useState(null),j=Z!==null,U={connectionType:a,rootPosition:i,edgeInheritance:o,aesGetters:h},Y={rootPosition:i,showLeavesLabels:f,showNodesLabels:A,aesGetters:h,labels:v,onClick:P,selectedNodeId:le==null?void 0:le.id,onSelectedUpdate:X=>{ee(cK(X)),Q(X)}};return ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${t.totalWidth} ${t.totalHeight}`,ref:I,width:t.totalWidth,height:t.totalHeight,children:[ie.jsx("defs",{children:Nm}),ie.jsxs("g",{transform:`translate(${Qu.LEFT},${Qu.TOP})`,fontFamily:"Manrope",children:[ie.jsx("text",{x:"0",y:"-12",fontSize:"20",children:e.title.name}),ie.jsxs("g",{opacity:j?SM:1,children:[c&&ie.jsx(lK,{links:r.filter(X=>{let{source:te,target:pe}=X;return!Z||!(Z.has(te.id??"")&&Z.has(pe.id??""))}),selected:!1,...U}),s&&ie.jsx(sK,{nodes:n.filter(X=>!X.data.isFake&&!(Z!=null&&Z.has(X.id??""))),...Y})]}),j&&ie.jsxs("g",{children:[c&&ie.jsx(lK,{links:r.filter(X=>{let{source:te,target:pe}=X;return Z.has(te.id??"")&&Z.has(pe.id??"")}),selected:!0,...U}),s&&ie.jsx(sK,{nodes:n.filter(X=>!X.data.isFake&&(Z==null?void 0:Z.has(X.id??""))),...Y})]}),g!==null&&ie.jsx("g",{transform:`translate(${t.treeWidth+30},0)`,children:ie.jsx(y4t,{heatmapData:g,scales:C,step:b,colorScale:x,chartSizes:t,labels:B,selectedNode:le,tooltipsContainer:$})}),e.legend.show&&ie.jsx("g",{transform:`translate(${t.treeWidth+30+t.heatmapWidth+30},0)`,children:ie.jsx(S4t,{legendData:k})})]}),ie.jsx("g",{ref:F})]})}function Qv({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",padding:"20px",lineHeight:"25px"},children:e})}function C9(e){if(WX(e))return t=>e.valuesMap[String(t[e.columnName.value])];if(th(e)){let{domain:t,range:n}=e,r=rv().domain(t).range(n);return a=>{let i=r(Number(a[e.columnName.value]));return Math.max(1,i)}}return t=>e}function E4t(e){return{nodeShape:C9(e.nodeShape),nodeColor:C9(e.nodeColor),nodeSize:C9(e.nodeSize),lineShape:C9(e.lineShape),lineColor:C9(e.lineColor)}}var B4t=(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 _4t(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 T4t=class{constructor(){Be(this,"component",ie.jsx(ie.Fragment,{}));Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"chartSizes",{treeWidth:600,treeHeight:350,heatmapWidth:0,heatmapHeight:0,totalWidth:1200+Qu.LEFT+Qu.RIGHT,totalHeight:350+Qu.TOP+Qu.BOTTOM,labelsOffset:0});Be(this,"legend",{width:0,height:0,items:[]});Be(this,"heatmapScales",{x:Qo().domain(["null"]).range([1]),y:Qo().domain(["null"]).range([1])});Be(this,"heatmapStep",{x:0,y:0});Be(this,"heatmapColorScale",{scale:Qo([]),getter:()=>"white"});Be(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=Qh(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,B)=>x+B,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),v=[],g=0;a.forEach(x=>{let B=r[x];B.forEach(()=>{v.push(g),g+=h}),B.length>0&&(g+=s)}),this.heatmapScales.x=Qo().domain(i).range(v),this.heatmapScales.y=Qo().domain(o).range(o.map((x,B)=>B*A)),this.heatmapStep.x=h,this.heatmapStep.y=A;let{colorsList:C,colorsMap:b}=t.aes;if(t.valueType==="continuous"&&C){let x=Zr().domain(B4t(C.length,e.meta.valueExtent)).range(C);this.heatmapColorScale={scale:x,getter:B=>x(B)}}if(t.valueType==="discrete"&&b){let x=Object.keys(b).filter(B=>e.meta.uniqueValues.has(B));this.heatmapColorScale={scale:Qo(x,x.map(B=>b[B])).unknown(v9),getter:B=>B?b[B]??v9:v9}}if(t.valueType==="stringSource"&&C){let x=[...e.meta.uniqueValues],B=Qo(x,x.map((k,P)=>C[P%C.length])).unknown(v9);this.heatmapColorScale={scale:B,getter:k=>k?B(k):v9}}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 hc("600 14px Arial"),s=16,c=48,f=20,A=24;function h(I,$){return Math.max(...I.map(N=>o.getTextWidth(String(N))+f),o.getTextWidth($))}let v=[];[n.nodeColor,n.nodeShape,n.lineColor].filter(WX).map(I=>I.columnName).forEach(I=>{let $=t[I.value];if($.usedAes.length===0||!$.aesMap)return;let N=I.label??I.value,F=$.values,Z={};F.forEach(ee=>{Z[ee]||(Z[ee]={...zv}),$.usedAes.forEach(le=>{var Q,j,U;(le==="dotFill"||le==="lineColor")&&(Z[ee].color=((Q=$.aesMap[ee])==null?void 0:Q[le])??Vt),le==="dotShape"&&(Z[ee].shape=((j=$.aesMap[ee])==null?void 0:j[le])??"21"),le==="dotSize"&&(Z[ee].size=((U=$.aesMap[ee])==null?void 0:U[le])??3)})}),v.push({columnKey:N,data:Z,values:$.values,labels:$.labels})});let g=[],C=0,b=0,x=0,B=Math.min(this.chartSizes.treeHeight,400);if(r&&a){let I=i.valueType,$=r.label??r.value;if(I==="continuous"){let N=this.heatmapColorScale.scale,F=h3(N,a.meta.valueExtent,4),Z={id:"heatmapValue",type:"continuous",width:nK(F,$),height:B,left:0,top:0,title:$,scale:N,values:F,labels:{}};g.push(Z),b=Z.height+c,C=Z.width}else{let N=this.heatmapColorScale.scale,F=n4t(N,$),Z=N.domain(),ee=Z.length*s,le={id:"heatmapValue",type:"discrete",width:F,height:ee,left:0,top:0,title:$,scale:N,values:Z,labels:{}};g.push(le),b=le.height+c,C=le.width}}if(v.map(({columnKey:I,labels:$,values:N,data:F})=>{b>B&&(b=0,x+=C+A);let Z=I,ee=h(N.map(Y=>$[Y]),Z),le=N.length*s;le>B&&(B=le);let Q=Qo().domain(N).range(N.map(Y=>F[Y])),j=x,U=b;g.push({id:I,type:"nodes",width:ee,height:le,left:j,top:U,title:Z,scale:Q,values:N,labels:$}),C=ee,b+=le+c}),th(n.nodeSize)){b>B&&(b=0,x+=C+A);let{columnName:I,domain:$,range:N}=n.nodeSize,F=I.label??I.value,Z=rv($,N),ee=Z.ticks(3),le=Z.tickFormat(3),Q=ee.reduce((te,pe)=>(te[String(pe)]=le(pe),te),{}),j=h(ee.map(te=>Q[te]),F),U=(Z(Math.max(...ee))*2+4)*ee.length;U>B&&(B=U);let Y=x,X=b;g.push({id:I.value,type:"size",width:j,height:U,left:Y,top:X,title:F,scale:Z,values:ee,labels:Q}),C=j,b+=U+c}let k=x+C+2*WC,P=B;this.legend={width:k,height:P,items:g}}updateChartSizes(e,t,n){let r=n.leaves().length;this.chartSizes.treeWidth=t?e.width/2:e.width;let a=_4t(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+Qu.LEFT+Qu.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)+Qu.TOP+Qu.BOTTOM}prepareTableLabels(e){let t=new hc("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 hc("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,v,g,C,b,x){var $;this.updateChartSizes(e.size,v,t),this.updateHeatmapScales(v,g,e.size),this.updateLegendSize(e.legend,C,f,h,v,g),this.prepareTableLabels(v);let B=r==="top"?[this.chartSizes.treeWidth,this.chartSizes.treeHeight]:[this.chartSizes.treeHeight,this.chartSizes.treeWidth];IB().size(B).separation(()=>1)(t);let k=t;t3t(k,r==="top"?this.chartSizes.treeHeight:this.chartSizes.treeWidth,b==="alignLeavesToLine"),n3t(k),this.addLabelsWidthToTreeArea(k,s),this.updateTotalSizes(v);let P=E4t(f),I=ie.jsx(x4t,{chartSizes:this.chartSizes,chartSettings:e,nodes:k.descendants(),links:k.links(),connectionType:n,rootPosition:r,edgeInheritance:a,showNodes:i,showEdges:o,showLeavesLabels:s,showNodesLabels:c,aesGetters:P,labels:A,heatmapData:v,heatmapScales:this.heatmapScales,heatmapStep:this.heatmapStep,heatmapColor:this.heatmapColorScale.getter,heatmapLabels:this.heatmapLabels,legendData:this.legend,onClick:x});this.component=I,($=this.reactRoot)==null||$.render(I)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Qv,{message:e}))}},k4t=T4t,fK=class{constructor(e){Be(this,"type","dendro");Be(this,"chartSettings");Be(this,"mode");Be(this,"leavesMode");Be(this,"id");Be(this,"parentId");Be(this,"height",null);Be(this,"labels");Be(this,"heatmapAnnotation");Be(this,"heatmapAxis");Be(this,"heatmapGroup");Be(this,"heatmapSettings");Be(this,"connectionType","rectangle");Be(this,"edgeInheritance","up");Be(this,"rootPosition","top");Be(this,"showNodes",!0);Be(this,"showEdges",!0);Be(this,"showLeavesLabels",!0);Be(this,"showNodesLabels",!0);Be(this,"aes",{nodeShape:"21",nodeColor:Vt,nodeSize:3,lineShape:"solid",lineColor:Vt});var t,n,r,a,i,o,s,c,f,A;G3t.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)??Y5t,maxCellWidth:((i=e==null?void 0:e.size)==null?void 0:i.maxCellWidth)??W5t,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 rS(e){return typeof e!="object"?!1:"valuesMap"in e}function dK(e,t){let{nodeColor:n,nodeShape:r,lineColor:a}=t,i=[n,r,a].filter(rS);return Zn.uniqBy(i,o=>o.columnName.value).reduce((o,s)=>{let{columnName:c}=s,f=Zn.uniqBy(e.rows,C=>C[c.value]),A=C=>String(C[c.value]),h=C=>c.valueLabels?String(C[c.valueLabels]):A(C),v=new Set,g=f.reduce((C,b)=>{let x=A(b);return C[x]||(C[x]={}),C},{});return rS(n)&&c.value===n.columnName.value&&(v.add("dotFill"),f.forEach(C=>{let b=A(C);g[b].dotFill=n.valuesMap[b]})),rS(r)&&c.value===r.columnName.value&&(v.add("dotShape"),f.forEach(C=>{let b=A(C);g[b].dotShape=r.valuesMap[b]})),rS(a)&&c.value===a.columnName.value&&(v.add("lineColor"),f.forEach(C=>{let b=A(C);g[b].lineColor=a.valuesMap[b]})),o[c.value]={values:f.map(A).sort(),usedAes:[...v],aesMap:g,labels:f.reduce((C,b)=>(C[A(b)]=h(b),C),{})},o},{})}var M4t=class extends Lm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"onClick",()=>fw);Be(this,"chartRenderer",new k4t);Be(this,"calculatedData",null);this.settings=new fK(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 fK(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){if(document){let r=new CustomEvent(xM,{detail:{[t]:n}});document.dispatchEvent(r)}}export(){return this._updateChart(),b5(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(v,g){return v.length!==g.length||v.some((C,b)=>C.value!==g[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=e3t(n.value,r.value,(f==null?void 0:f.value)??null,A.valueLabels??A.value??null,this.data.rows,t==="useAllNodesAsLeaves"),v=Z5t(this.data,c.valueType,i,o,s,n,h),g=dK(this.data,a);this.calculatedData={chartSizes:this.chartRenderer.chartSizes,hierarchy:h,heatmapData:v,legendLabels:g}}_updateAesInData(){this.calculatedData&&(this.calculatedData.legendLabels=dK(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:v,leavesMode:g}=this.settings;this.chartRenderer.render(n,this.calculatedData.hierarchy,r,i,a,o,s,c,f,A,h,t,this.calculatedData.heatmapData,v,this.calculatedData.legendLabels,g,this.onClick)}};function P4t(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,v={};r.forEach(C=>{let b=a.getRowsByGrouping([...c,A,C]);if(!b.length)return;let x=lc(b,B=>Number(B[i.value]));v[C]={height:x,key:C},h+=x});let g=h;e.normalize&&r.forEach(C=>{v[C]&&(v[C].height=v[C].height/g*100)}),o=Math.max(o,h),s[f].push({key:`logo_${A}`,valuesMap:v,primaryGrouping:A,boundsY:{min:0,max:e.normalize?g:100}})}),s},{}),meta:{minY:0,maxY:e.normalize?100:o,normalize:e.normalize},aes:e.aes}}var H4t={TOP:30,BOTTOM:30},lp=30,D4t=6,S9=20,MM=15,$4t=24,v3=25,I4t=12,AK={fillColor:"white",lineColor:Vt,lineWidth:1,lineShape:"solid",dotSize:3,dotFill:Vt,dotShape:"21"},PM=20,hK=4,zf=4,pK=36,vK=25;function L4t(e){return`translate(${e},0)`}function R4t(e){return`translate(0,${e})`}var x9=21;function V4t(e,t){if(e==="45deg"){let n=t==="left"?-x9/2:0,r=t==="bottom"?x9/2:-x9/2;return`translate(${n},${r}) rotate(-45)`}return e==="90deg"&&t==="bottom"?`translate(${-x9/2},${zf+x9/2}) rotate(-90)`:t==="bottom"?`translate(0,${zf})`:`translate(${-zf},0)`}function N4t(e,t){return t==="left"||t==="bottom"&&e==="90deg"?"central":e==="center"?"hanging":"auto"}function z4t(e,t){return t==="left"||t==="bottom"&&e!=="center"?"end":"middle"}var mK=({scale:e,tickSize:t=6,tickPadding:n=zf,orient:r="bottom",labelsPosition:a="center",labels:i={},offset:o=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function s(x,B){return x.bandwidth&&(B=Math.max(0,x.bandwidth()-B*2)/2),x!=null&&x.round()&&(B=Math.round(B)),k=>{let P=x(k);return P===void 0?0:P+B}}let c=e.domain(),f=x=>i[x]??[],A=Math.max(t,0)+n,h=s(e.copy(),o),v=r==="bottom"?L4t:R4t,g=r==="left"?-1:1,C={[(r==="left"?"x":"y")+"2"]:g*t},b={[r==="left"?"x":"y"]:g*A};return ie.jsx("g",{children:c.map((x,B)=>ie.jsxs("g",{className:"tick",transform:v(h(x)+o),children:[ie.jsx("line",{stroke:Vt,...C}),ie.jsx("g",{transform:V4t(a,r),children:f(x).map((k,P)=>ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:N4t(a,r),textAnchor:z4t(a,r),dy:20*P,...b,children:k},`${k}_${P}`))})]},B))})};function gK(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 O4t({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=gK(e,"lineColor",r.lineColor,n),A=gK(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 ni(e){return isNaN(e)?"?":e===0?"0":Math.abs(e)<.01?ry(".1e")(e):ry(".2f")(e)}function yK(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 F4t({facetKey:e,scales:t,orientation:n,geom:r,aes:a,min:i,max:o,binsCount:s,hasKeyFromColumn:c,sideDistances:f,showTooltips:A,activeElementContainer:h,tooltipsContainer:v,tooltipsData:g}){let C=n==="vertical",b=(t.xPrimary(r.primaryGrouping)??0)+(t.xSecondary(r.secondaryGrouping)??0)+t.xSecondary.bandwidth()/2,x=yK(t,"lineColor",a.lineColor,r),B=yK(t,"fillColor",a.fillColor,r),k=r.bins,P=a.dotSize?a.dotSize:Math.abs(t.y(o)-t.y(i))/s/2,I=h&&g.fixed;return ie.jsx("g",{children:k.map(({x:$,count:N,dots:F})=>ie.jsx("g",{children:F.map((Z,ee)=>{let le=(ee-N/2)*2*P+P,Q=C?le:0,j=C?0:le,U=`binnedDot_${r.key}_${Z.key}`,Y=g.selectedData===U&&g.currentFacet===e&&I,X=ie.jsxs("g",{transform:C?`translate(${b},${t.y($)})`:`translate(${t.y($)},${b})`,stroke:x,fill:B,strokeWidth:a.lineWidth,children:[ie.jsx("circle",{opacity:a.opacity,cx:Q,cy:j,r:P,onMouseOver:()=>g.onMouseOver(U,e),onMouseLeave:()=>g.onMouseLeave()}),A&&ie.jsx(fu,{content:c?[Z.key,ni(Z.value)]:[ni(Z.value)],x:(C?b:t.y($))+Q,y:(C?t.y($):b)+j,sideDistances:f,horizontal:C,offset:P,active:U===g.selectedData&&g.currentFacet===e,fixed:g.fixed,onClose:g.onClose,container:v})]},Z.key);return Y?cu.createPortal(X,h):X})},$))})}function Of(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:f1(e,`Unknown line shape ${e}`)}}function aS(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 Q4t(e,t){return t?[e.id,`${ni(e.y)}`]:[`${ni(e.y)}`]}function j4t({facetKey:e,scales:t,orientation:n,box:r,aes:a,hasKeyFromColumn:i,sideDistances:o,showTooltips:s,elementsAmount:c,activeElementContainer:f,tooltipsContainer:A,tooltipsData:h}){let v=n==="vertical",g=(t.xPrimary(r.primaryGrouping)??0)+(t.xSecondary(r.secondaryGrouping)??0)+t.xSecondary.bandwidth()/2,C=t.xSecondary.bandwidth(),b=a.boxWidth==="auto"?C*.8:Math.min(C,a.boxWidth),x=Math.abs(t.y(r.lower)-t.y(r.upper)),B=aS(t,"lineColor",a.lineColor,r),k=aS(t,"fillColor",a.fillColor,r),P=aS(t,"dotShape",a.dotShape,r),I=aS(t,"dotSize",a.dotSize,r),$=Yc(P,I,B),N=Math.abs(t.y.range()[0]-t.y.range()[1]),F=f&&h.fixed,Z=h.selectedData===r&&F,ee=ie.jsxs("g",{transform:v?`translate(${g},0)`:`translate(0, ${g})`,opacity:a.opacity,stroke:B,strokeWidth:a.lineWidth,strokeDasharray:Of(a.lineShape),children:[ie.jsx("line",{x1:v?0:t.y(r.min),x2:v?0:t.y(r.lower),y1:v?t.y(r.min):0,y2:v?t.y(r.lower):0}),ie.jsx("line",{x1:v?0:t.y(r.upper),x2:v?0:t.y(r.max),y1:v?t.y(r.upper):0,y2:v?t.y(r.max):0}),ie.jsx("rect",{width:v?b:x,height:v?x:b,x:v?-b/2:t.y(r.lower),y:v?t.y(r.upper):-b/2,fill:k}),ie.jsx("line",{x1:v?-b/2:t.y(r.middle),x2:v?b/2:t.y(r.middle),y1:v?t.y(r.middle):-b/2,y2:v?t.y(r.middle):b/2}),s&&A&&ie.jsx("rect",{onMouseOver:()=>h.onMouseOver(r,e),onMouseLeave:h.onMouseLeave,width:v?C:N,x:v?-C/2:0,y:v?0:-C/2,height:v?N:C,fill:"transparent",stroke:"none"}),a.showOutliers&&r.outliers.map(le=>{let Q=h.selectedData===le&&h.currentFacet===e&&F,j=v?Q?g:0:t.y(le.y),U=v?t.y(le.y):Q?g:0,Y=ie.jsxs("g",{transform:`translate(${j},${U})`,strokeDasharray:"0",children:[$,s&&A&&ie.jsx("circle",{onMouseOver:()=>h.onMouseOver(le,e),onMouseLeave:h.onMouseLeave,r:"15",fill:"transparent",stroke:"none"}),s&&ie.jsx(fu,{content:Q4t(le,i),x:v?g:t.y(le.y),y:v?t.y(le.y):g,sideDistances:o,horizontal:!0,active:h.selectedData===le&&h.currentFacet===e,onClose:h.onClose,fixed:h.fixed,container:A})]},le.id);return Q?cu.createPortal(Y,f):Y}),s&&ie.jsx(fu,{content:[`Max = ${ni(r.max)}`,`Upper = ${ni(r.upper)}`,`Median = ${ni(r.middle)}`,`Lower = ${ni(r.lower)}`,`Min = ${ni(r.min)}`],x:v?g:t.y(r.middle),y:v?t.y(r.middle):g,sideDistances:o,horizontal:v,active:h.active&&h.selectedData===r&&h.currentFacet===e,fixed:h.fixed,onClose:h.onClose,offset:c>1?C/2:C/4,container:A})]});return Z?cu.createPortal(ee,f):ee}function HM(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 U4t(e,t,n){return n?[t,`${ni(e)}`]:[`${ni(e)}`]}function G4t({facetKey:e,scales:t,orientation:n,geom:r,aes:a,hasKeyFromColumn:i,sideDistances:o,showTooltips:s,activeElementContainer:c,tooltipsContainer:f,tooltipsData:A}){let h=n==="vertical",v=(t.xPrimary(r.primaryGrouping)??0)+(t.xSecondary(r.secondaryGrouping)??0)+t.xSecondary.bandwidth()/2,g=t.xSecondary.bandwidth()*a.jitter,C=I=>(1-I*2)*(g/2),b=HM(t,"lineColor",a.lineColor,r),x=HM(t,"dotFill",a.dotFill,r),B=HM(t,"dotShape",a.dotShape,r),k=Yc(B,a.dotSize,x),P=c&&A.fixed;return ie.jsx("g",{transform:h?`translate(${v},0)`:`translate(0, ${v})`,stroke:b,children:r.values.map(I=>{let{jitter:$,id:N}=I,F=A.selectedData===I&&P,Z=C($),ee=h?F?v+Z:Z:t.y(I.y),le=h?t.y(I.y):F?v+Z:Z,Q=ie.jsxs("g",{opacity:a.opacity,transform:`translate(${ee},${le})`,children:[k,s&&f&&ie.jsx("circle",{onMouseOver:()=>A.onMouseOver(I,e),onMouseLeave:()=>A.onMouseLeave(),r:"4",fill:"transparent",stroke:"none"}),s&&ie.jsx(fu,{content:U4t(I.y,N,i),x:v+C($),y:le,active:A.active&&A.selectedData===I&&A.currentFacet===e,fixed:A.fixed,onClose:A.onClose,sideDistances:o,container:f})]},N);return F?cu.createPortal(Q,c):Q})})}function DM(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 Y4t({facetKey:e,scales:t,orientation:n,errorBar:r,aes:a,sideDistances:i,showTooltips:o,activeElementContainer:s,tooltipsContainer:c,tooltipsData:f}){let A=n==="vertical",h=DM(t,"lineColor",a.lineColor,r),v=DM(t,"fillColor",a.fillColor,r),g=DM(t,"dotShape",a.dotShape,r),C=(t.xPrimary(r.primaryGrouping)??0)+t.xPrimary.bandwidth()/2,b=a.width==="auto"?t.xPrimary.bandwidth()*.2:a.width,x=t.y(r.min),B=t.y(r.max),k=t.y(r.value),P=Yc(g,a.dotSize,v),I=s&&f.fixed,$=f.selectedData===r&&I,N=a.showDots?ie.jsxs("g",{transform:A?`translate(${C},${k})`:`translate(${k},${C})`,children:[P,o&&c&&ie.jsx("circle",{onMouseOver:()=>f.onMouseOver(r,e),onMouseLeave:()=>f.onMouseLeave(),r:"15",fill:"transparent",stroke:"none"}),o&&ie.jsx(fu,{content:[ni(r.value)],x:A?C:k,y:A?k:C,sideDistances:i,horizontal:!0,active:f.active&&f.selectedData===r&&f.currentFacet===e,fixed:f.fixed,onClose:f.onClose,container:c})]}):null;return ie.jsxs("g",{opacity:a.opacity,stroke:h,fill:"none",strokeWidth:a.lineWidth,children:[ie.jsxs("g",{transform:A?`translate(${C},0)`:`translate(0,${C})`,children:[ie.jsx("line",{x1:A?0:x,x2:A?0:B,y1:A?x:0,y2:A?B:0}),ie.jsx("line",{x1:A?-b/2:x,x2:A?b/2:x,y1:A?x:-b/2,y2:A?x:b/2}),ie.jsx("line",{x1:A?-b/2:B,x2:A?b/2:B,y1:A?B:-b/2,y2:A?B:b/2})]}),$?cu.createPortal(N,s):N]})}function iS(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 W4t(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 X4t({facetKey:e,scales:t,orientation:n,line:r,aes:a,sideDistances:i,showTooltips:o,secondaryGrouping:s,activeElementContainer:c,tooltipsContainer:f,tooltipsData:A}){let h=n==="vertical",v=iS(t,"lineColor",a.lineColor,r),g=iS(t,"dotFill",a.fillColor,r),C=iS(t,"lineShape",a.lineShape,r),b=iS(t,"dotShape",a.dotShape,r),x=W4t(r.dots,t.xPrimary.domain(),t),B=Yc(b,a.dotSize,g),k=c&&A.fixed;return ie.jsxs("g",{opacity:a.opacity,stroke:v,strokeDasharray:Of(C),strokeWidth:a.lineWidth,children:[ie.jsx("polyline",{points:x.map(([P,I])=>h?[P,I]:[I,P]).join(" "),stroke:v,fill:"none"},r.key),a.dotShape!==null&&ie.jsx("g",{children:x.map(P=>{let[I,$,N,F]=P,Z=A.selectedData,ee=Z&&e===A.currentFacet&&Z.every((j,U)=>j===P[U]),le=ee&&k,Q=ie.jsxs("g",{transform:h?`translate(${I},${$})`:`translate(${$},${I})`,strokeDasharray:"none",stroke:"none",children:[B,o&&f&&ie.jsx("circle",{onMouseOver:()=>A.onMouseOver(P,e),onMouseLeave:()=>A.onMouseLeave(),r:"15",fill:"transparent",stroke:"none"}),o&&ie.jsx(fu,{content:[s.valueLabels[r.key],ni(F)],x:h?I:$,y:h?$:I,sideDistances:i,horizontal:!0,active:ee,fixed:A.fixed,onClose:A.onClose,container:f})]},N);return le?cu.createPortal(Q,c):Q})})]})}var wK={A:"M100 100H75.9062L68.8622 76.6168H31.0006L24.1052 100H0L33.1961 0H66.8839L100 100ZM43.3619 34.7342L35.6089 61.0056H64.2424L56.7296 34.7342L50.6575 13.3372H49.3425L43.3619 34.7342Z",B:"M45.4184 0C56.8913 0 66.0972 1.04768 73.0217 3.15678C80.0142 5.26596 85.0715 8.18391 88.1943 11.8979C91.3839 15.5655 92.982 19.7862 92.982 24.5538C92.9812 30.6489 90.5672 35.6664 85.7508 39.6085C80.9994 43.5053 74.7182 45.8 66.9129 46.4882C73.4281 46.8551 79.1309 47.9556 84.0176 49.7889C88.9734 51.5771 92.8725 54.104 95.7238 57.3594C98.5744 60.614 99.9992 64.6461 100 69.4588C100 76.0611 97.792 81.6556 93.3797 86.2406C88.967 90.78 82.8289 94.2265 74.9538 96.565C67.0793 98.8571 57.809 100 47.1516 100H0V0H45.4184ZM27.8022 85.1468H44.8075C51.9358 85.1468 57.8845 83.9734 62.6367 81.635C67.4532 79.2511 69.8667 75.2176 69.8679 69.5356C69.8679 65.5037 68.6429 62.4975 66.2026 60.5258C63.7586 58.5542 60.5964 57.2647 56.7268 56.6686C52.8573 56.0267 48.8175 55.7091 44.6086 55.7091H27.8022V85.1468ZM27.8022 41.8154H42.1651C47.1205 41.8153 51.3011 41.2654 54.6953 40.165C58.0867 39.065 60.6592 37.4343 62.4236 35.2811C64.2566 33.0803 65.1797 30.3733 65.1797 27.1637C65.1795 22.7623 63.2071 19.5998 59.2698 17.6742C55.3323 15.7028 49.4604 14.7189 41.6536 14.7189H27.8022V41.8154Z",C:"M54.4005 0C63.8911 0.000435932 72.0623 1.41634 78.9173 4.24058C85.84 7.0661 91.116 11.2405 94.7422 16.7591C98.4335 22.2332 100.183 28.9442 99.9849 36.8902H73.4814C73.1518 32.5637 72.2691 28.9393 70.8186 26.0255C69.4341 23.0678 67.3207 20.8581 64.4859 19.4013C61.7175 17.901 57.9898 17.1566 53.3106 17.1563C47.7087 17.1563 42.9921 18.2992 39.1689 20.5931C35.3456 22.8444 32.4717 26.3789 30.5598 31.1899C28.6478 36.0022 27.7207 42.2329 27.7866 49.8707C27.8529 60.4208 29.9968 68.5683 34.2159 74.3071C38.5013 80.0017 44.6742 82.8437 52.7173 82.8437C57.4631 82.8435 61.2207 82.3345 63.9893 81.3193C66.8227 80.3039 68.8628 78.8265 70.115 76.8847C71.4333 74.8983 72.1629 72.4942 72.2949 69.6693H99.5848C99.4529 74.6128 98.1741 78.9828 95.7355 82.779C93.3624 86.5311 90.0312 89.6883 85.7467 92.2487C81.528 94.8089 76.5838 96.7539 70.9152 98.0783C65.2452 99.3587 59.0727 100 52.4138 100C41.2735 99.9995 31.782 97.9636 23.9373 93.9024C16.1587 89.8408 10.2268 84.0567 6.13955 76.5521C2.05273 69.0031 0 60.0208 0 49.6027C2.4153e-05 39.0955 2.11331 30.1555 6.3327 22.7827C10.5515 15.367 16.713 9.71467 24.8203 5.82964C32.9297 1.94454 42.7968 0 54.4005 0Z",D:"M36.9306 0C57.3372 0 72.9524 4.0091 83.7717 12.0322C94.5911 20.0563 100 32.3963 100 49.0405C99.9993 60.0888 97.4138 69.3977 92.2316 76.9622C87.0488 84.527 79.7265 90.2594 70.2684 94.1566C60.8744 98.054 49.7583 100 36.9306 100H0V0H36.9306ZM26.9252 82.5273H36.3476C43.9924 82.5273 50.4765 81.4275 55.789 79.2266C61.1642 76.9798 65.2464 73.4042 68.0315 68.4993C70.8817 63.5933 72.3021 57.1738 72.3021 49.242C72.302 41.2205 71.0145 34.8935 68.4246 30.2629C65.8339 25.6332 61.8118 22.3539 56.372 20.4279C50.9299 18.5022 43.8631 17.5398 35.1817 17.5398H26.9252V82.5273Z",E:"M96.3517 16.6379H29.2614V40.0307H88.741V56.1217H29.2614V82.8728H100V100H0V0H96.3517V16.6379Z",F:"M100 16.7818H30.2939V42.228H91.4268L91.3057 58.6644H30.2939V100H0V0H99.894L100 16.7818Z",G:"M55.4382 0.00126929C64.1095 -0.0425219 71.651 1.04689 78.0577 3.25536C84.5282 5.42011 89.637 8.84438 93.3902 13.5261C97.2079 18.1639 99.4172 24.1682 100 31.5438H74.7528C74.2349 28.8504 73.2941 26.4228 71.9355 24.2591C70.6416 22.0953 68.6385 20.3723 65.9217 19.0913C63.2041 17.8106 59.5139 17.1689 54.8557 17.1685C48.2538 17.1685 42.9402 18.493 38.9273 21.1436C34.9157 23.7495 32.0032 27.4813 30.191 32.3388C28.3787 37.1541 27.4685 42.9001 27.4685 49.5708C27.4685 56.374 28.4388 62.2729 30.3806 67.2649C32.3871 72.2567 35.3719 76.0982 39.3201 78.7929C43.3329 81.4873 48.3491 82.8328 54.3681 82.8328C58.8318 82.8327 62.7771 82.4142 66.2061 81.5755C69.6366 80.692 72.4273 79.541 74.5632 78.1273V61.635H53.7857V45.4662H99.1196L99.0248 86.8819C95.9195 89.2658 92.1976 91.4495 87.864 93.4363C83.5274 95.4243 78.602 97.0138 73.1004 98.2066C67.6639 99.3991 61.7068 100 55.235 100C43.5888 99.9995 33.6549 97.9905 25.4368 93.9725C17.2167 89.9083 10.9027 84.0915 6.50142 76.5372C2.16601 68.9836 0 59.9951 0 49.5708C7.19725e-06 39.1892 2.16484 30.3054 6.50142 22.9279C10.9027 15.5521 17.2482 9.89511 25.5316 5.96403C33.8158 2.03341 43.7893 0.0454419 55.4382 0.00126929Z",H:"M28.0722 40.0307H71.9138V0H100V100H71.9138V57.0812H28.0722V100H0V0H28.0722V40.0307Z",I:"M100 16.7146H65.2015V75.9931C65.2015 78.2398 64.5115 79.9418 63.1258 81.0881C61.8137 82.1874 59.8078 82.9184 57.1123 83.2854H100V100H0V83.2854H34.6764V23.9973C34.6772 21.7535 35.3684 20.0789 36.7521 18.9791C38.1379 17.8328 40.1552 17.0815 42.7808 16.7146H0V0H100V16.7146Z",K:"M25.5221 49.2804L40.9481 31.9804L67.9564 0H97.5272L57.5016 43.0628L100 100H71.1723L41.5375 57.5801L25.5221 73.2585V100H0V0H25.5221V49.2804Z",L:"M31.8025 82.7384H100V100H0V0H31.8025V82.7384Z",M:"M47.5503 42.0169L49.8164 54.5385H50.3608L52.4497 42.0169L62.6155 0H96.8224L100 100H78.4023L77.9592 58.4629L78.7695 12.7231H77.3136L70.4266 36.9315L59.5265 74.621H40.4735L29.4088 36.9315L22.5978 12.7231H21.0533L22.142 58.4629L21.5977 100H0L3.17762 0H37.2959L47.5503 42.0169Z",N:"M66.0971 57.4938L77.5346 80.877H78.2406L73.2703 51.516V0H100V100H64.8828L33.9029 42.7749L22.9737 20.6294H22.0559L26.7156 49.7889V100H0V0H34.9195L66.0971 57.4938Z",P:"M49.614 0C65.9884 0 78.4836 2.53923 87.092 7.62809C95.7004 12.6718 100 20.7713 100 31.9133C99.9996 36.3592 99.1326 40.6455 97.3859 44.7707C95.6384 48.8971 92.8172 52.5881 88.934 55.8434C85.0516 59.0521 79.9422 61.6227 73.6015 63.5483C67.2584 65.4282 59.4822 66.3692 50.2912 66.3692H34.1731C32.2339 66.3685 30.557 65.8604 29.1345 64.8532C28.1138 64.0613 27.4654 63.0777 27.2112 61.8979L27.0893 60.6601V100H0V0H49.614ZM27.0893 50.0672H48.3543C53.853 50.067 58.3506 49.4736 61.8448 48.2825C65.3396 47.0446 67.9365 45.1407 69.6194 42.5734C71.3664 40.0066 72.2329 36.7043 72.2335 32.6713C72.2335 28.7754 71.2617 25.6329 69.3214 23.2489C67.445 20.8654 64.6653 19.1414 60.9779 18.0867C57.2886 17.0322 52.7814 16.5036 47.4739 16.5036H27.0893V50.0672Z",Q:"M50 0C66.0982 0.000380175 78.4597 3.59164 87.0755 10.7794C95.692 17.9687 100 28.241 100 41.582C99.9995 50.6968 98.0845 58.4254 94.2485 64.7615C90.412 71.0606 84.7408 75.8568 77.2572 79.1547C76.6607 79.4197 76.0326 79.6555 75.4146 79.8992C76.1355 80.0194 76.9062 80.2004 77.731 80.4343C79.4291 80.916 80.8793 81.8049 82.0742 83.102L97.4467 100H67.452L55.712 83.9162C53.8622 84.0259 51.9607 84.1023 50 84.1024C39.3081 84.1024 30.214 82.4529 22.7297 79.1547C15.3107 75.857 9.65038 71.0593 5.75151 64.7615C1.9155 58.4254 0.00050139 50.6968 0 41.582C0 28.241 4.30801 17.9687 12.9245 10.7794C21.6036 3.5922 33.9645 0 50 0ZM50 14.2846C42.5168 14.2846 36.7574 16.4143 32.7323 20.6747C28.7071 24.9364 26.6912 31.9098 26.6912 41.582C26.6917 51.4747 28.7076 58.665 32.7323 63.1485C36.7574 67.5945 42.5165 69.8178 50 69.8178C57.6084 69.8173 63.398 67.5945 67.3598 63.1485C71.3217 58.665 73.2951 51.4747 73.2956 41.582C73.2956 31.9098 71.3221 24.9364 67.3598 20.6747C63.398 16.4143 57.6081 14.2851 50 14.2846Z",R:"M44.4713 0C59.0103 0 70.3242 2.35844 78.3943 7.08117C86.5255 11.8032 90.5898 19.0937 90.5911 28.9484C90.5911 32.2037 89.9122 35.4395 88.5672 38.649C87.2866 41.8578 85.2158 44.8412 82.3348 47.5916C79.4538 50.2958 75.6687 52.5395 70.9958 54.3274C68.56 55.2719 65.8456 56.0119 62.8736 56.5726C62.9225 56.5803 62.9727 56.5936 63.021 56.6014C65.0053 56.9226 66.7655 57.5677 68.3018 58.53C69.9023 59.4471 71.3804 60.8226 72.7248 62.6559L100 100H71.3711L41.8845 59.9021H26.605V100H0V0H44.4713ZM26.605 44.2238H42.0721C47.3231 44.2238 51.5492 43.5999 54.7514 42.3623C58.0179 41.0785 60.3953 39.2912 61.8684 36.9987C63.4046 34.7065 64.1737 32.0195 64.1737 28.9484C64.1729 25.2834 63.2118 22.4872 61.2921 20.5623C59.3706 18.6365 56.8011 17.283 53.5987 16.5036C50.3972 15.7247 46.7758 15.333 42.7423 15.333L26.605 15.2658V44.2238Z",S:"M50.5755 0C64.0221 0 74.604 2.42428 82.3151 7.27866C90.0897 12.1329 94.5868 19.4156 95.7978 29.124H70.6461C70.391 26.3633 69.3763 24.021 67.5922 22.1062C65.8722 20.1487 63.5464 18.6566 60.6175 17.6328C57.7497 16.6085 54.2673 16.0951 50.1887 16.0951C44.2643 16.0955 39.4247 16.9267 35.6658 18.5741C31.9066 20.2219 30.0247 22.7593 30.0247 26.1883C30.0252 28.7257 30.7599 30.8846 32.2252 32.6654C33.6901 34.401 36.2678 36.0471 39.96 37.6048C43.7199 39.119 48.9519 40.8136 55.6431 42.6841C61.3149 44.2428 66.797 45.7831 72.0864 47.2973C77.3748 48.7668 82.0942 50.5032 86.2359 52.507C90.4401 54.4662 93.7798 56.9841 96.2645 60.0559C98.7497 63.0841 99.9984 66.9574 99.9986 71.6775C100.062 77.6453 97.9605 82.7703 93.6907 87.0457C89.4847 91.2763 83.6794 94.5021 76.2872 96.7288C68.9599 98.9104 60.519 99.9997 50.9622 100C41.0206 100 32.1881 98.8903 24.477 96.6636C16.7676 94.437 10.7101 90.9431 6.31336 86.1789C1.98004 81.3693 -0.121801 75.1754 0.00544797 67.6048H25.8239C25.9515 71.3879 27.0275 74.5038 29.0645 76.9525C31.1676 79.3574 34.1359 81.1233 37.9596 82.2367C41.7825 83.3495 46.3709 83.9049 51.7224 83.9049C56.4382 83.9049 60.4213 83.4329 63.6714 82.4977C66.9848 81.5179 69.4694 80.1824 71.1262 78.4902C72.8454 76.7544 73.7125 74.8201 73.7134 72.6841C73.7134 70.0124 72.6846 67.8753 70.6461 66.2721C68.607 64.6245 65.4601 63.1461 61.1909 61.8546C56.9848 60.5631 51.5621 59.0528 44.9343 57.3159C37.2253 55.2678 30.2839 52.9043 24.1036 50.233C17.9237 47.5171 13.0722 44.248 9.56734 40.4194C6.06248 36.5895 4.31316 31.9981 4.31297 26.6542C4.31297 20.7769 6.31449 15.8551 10.3275 11.8919C14.3419 7.92869 19.8552 4.9605 26.8641 3.00093C33.874 0.996878 41.7812 5.03329e-05 50.5755 0Z",T:"M100 17.0505H63.592V100H36.408V24.4867C36.408 22.4234 37.0203 20.7427 38.25 19.4588C39.5445 18.175 41.5288 17.3714 44.1826 17.0505H0V0H100V17.0505Z",U:"M27.3115 59.9622C27.3115 64.1165 27.8423 67.639 28.8938 70.5293C30.0115 73.3748 31.5581 75.7075 33.5305 77.5142C35.5021 79.2737 37.9016 80.558 40.7265 81.3705C43.6177 82.183 46.8374 82.5893 50.3853 82.5898C53.7384 82.5898 56.8011 82.1835 59.5625 81.3705C62.3226 80.5579 64.6595 79.2744 66.5658 77.5142C68.5383 75.7075 70.0542 73.3748 71.1062 70.5293C72.1574 67.6392 72.6747 64.116 72.6747 59.9622V0.141777H100V62.8072C100 71.1631 97.8926 78.1212 93.6846 83.6768C89.4768 89.1863 83.6229 93.2922 76.1282 96.0019C68.633 98.6665 59.9889 100 50.1926 100C40.2652 99.9998 31.515 98.6666 23.9543 96.0019C16.3967 93.337 10.5082 89.2515 6.3016 83.7429C2.09459 78.2328 0 71.2525 0 62.8072V0H27.3115V59.9622Z",V:"M44.0874 62.7231L49.6536 83.2182H50.5136L55.817 62.7231L74.0564 0H100L66.2685 100H33.8151L0 0H25.9436L44.0874 62.7231Z",W:"M28.541 72.347C28.7554 74.7771 29.0518 77.1238 29.4269 79.3706C29.8018 81.5705 30.0986 84.069 30.3129 86.8643H30.8736L33.3632 63.6826L39.2284 24.0741H60.8501L66.648 63.6826L69.1376 86.8643H69.7768C69.9911 84.0688 70.2629 81.5706 70.5843 79.3706C70.9594 77.1238 71.2559 74.7771 71.4702 72.347L78.2999 0H100L83.2791 100H59.6501L54.2671 69.2573C53.3025 63.7551 52.524 58.6162 51.9345 53.8476C51.3987 49.034 50.8305 43.8719 50.2411 38.3708H49.7589C49.1695 43.8717 48.5876 49.0341 47.9982 53.8476C47.4087 58.6621 46.6551 63.801 45.7441 69.2573L40.5181 100H16.8891L0 0H21.7898L28.541 72.347Z",X:"M39.6147 20.9077L50.2513 38.3036L60.6365 21.042L72.3857 0H99.653L65.3506 50.2015L100 100H72.8165L59.9426 78.8141L49.9162 61.8307L40.2249 78.958L27.0998 100H0L34.9007 50.2015L0.430725 0H27.4468L39.6147 20.9077Z",Y:"M39.5066 28.2L49.3154 48.3496H50.5076L74.5397 0H100L61.5911 66.9449V100H38.4089V66.9641L0 0H25.543L39.5066 28.2Z",Z:"M43.1362 77.3748L36.708 83.8419L50.0528 83.2182H94.8918V100H0L56.2962 23.5176L64.7175 16.3021L52.5079 16.7818H5.67582V0H100L43.1362 77.3748Z"},K4t=()=>ie.jsx("path",{d:"M 0 49 h 100 v 2 h -100 z"});function Z4t({facetKey:e,scales:t,orientation:n,geom:r,aes:a,sideDistances:i,showTooltips:o,elementsAmount:s,normalize:c,activeElementContainer:f,tooltipsContainer:A,tooltipsData:h}){let v=n==="vertical",g=t.xPrimary.bandwidth(),C=(t.xPrimary(r.primaryGrouping)??0)+g/2,b=a.width==="auto"?g*.95:Math.min(g,a.width),x=(g-b)/2,B=[...t.xSecondary.domain()].filter($=>r.valuesMap[$]).sort(($,N)=>{let F=r.valuesMap[$],Z=r.valuesMap[N];return F.height-Z.height}),k={},P=0;B.forEach($=>{if(!r.valuesMap[$])return;let N=r.valuesMap[$].height;k[$]={y1:P,y2:P+N},P+=N});let I=f&&h.fixed;return ie.jsx("g",{opacity:a.opacity,children:B.map($=>{if(!r.valuesMap[$])return null;let{y1:N,y2:F}=k[$],Z=t.y(N),ee=t.y(F),le=Math.abs(Z-ee)-2*x,Q=typeof a.fillColor=="string"?a.fillColor:a.fillColor[$],j=v?-b/2:Math.min(Z,ee)+x,U=v?Math.min(Z,ee)+x:-b/2,Y=$==="-";if(!Y&&!wK[$])return;let X=`logo_${r.key}_${$}`,te=h.currentFacet===e&&h.selectedData===X&&I,pe=ie.jsxs("g",{transform:v?`translate(${C},0)`:`translate(0, ${C})`,children:[ie.jsx("g",{transform:`translate(${j},${U})`,children:Y?ie.jsx("g",{transform:v?`scale(${b/100},1) translate(0,${le/2-50})`:`scale(${le/100},1) translate(0,${b/2-50}) `,children:K4t()}):ie.jsx("g",{transform:v?`scale(${b/100},${le/100})`:`scale(${le/100},${b/100})`,fill:Q,onMouseOver:()=>h.onMouseOver(X,e),onMouseLeave:()=>h.onMouseLeave(),children:ie.jsx("path",{d:wK[$],fillRule:"evenodd",clipRule:"evenodd"})})}),o&&ie.jsx(fu,{content:[$,ni(r.valuesMap[$].height)+(c?"%":"")],x:v?C:(Z+ee)/2,y:v?(Z+ee)/2:C,sideDistances:i,horizontal:v,offset:s>1?g/2:g/4,active:X===h.selectedData&&h.currentFacet===e,fixed:h.fixed,onClose:h.onClose,container:A})]},$);return te?cu.createPortal(pe,f):pe})})}function m3(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 J4t({facetKey:e,scales:t,orientation:n,geom:r,aes:a,sideDistances:i,showTooltips:o,activeElementContainer:s,tooltipsContainer:c,tooltipsData:f}){let A=n==="vertical",h=m3(t,"lineColor",a.lineColor,r.id),v=m3(t,"lineShape",a.lineShape,r.id),g=m3(t,"fillColor",a.dotFill,r.key1),C=m3(t,"dotShape",a.dotShape,r.key1),b=m3(t,"fillColor",a.dotFill,r.key2),x=m3(t,"dotShape",a.dotShape,r.key2),B=Yc(C,a.dotSize,g),k=Yc(x,a.dotSize,b);function P($){return r.grouping==="primary"?(t.xPrimary($)??0)+t.xPrimary.bandwidth()/2:(t.xPrimary(r.id)??0)+(t.xSecondary($)??0)+t.xSecondary.bandwidth()/2}let I=s&&f.fixed;return ie.jsx("g",{opacity:a.opacity,children:r.pairs.map($=>{let N=A?P(r.key1):t.y($.key1.value),F=A?P(r.key2):t.y($.key2.value),Z=A?t.y($.key1.value):P(r.key1),ee=A?t.y($.key2.value):P(r.key2),le=`pairedPoints_${$.id}_${$.key1.id}`,Q=`pairedPoints_${$.id}_${$.key2.id}`,j=f.currentFacet===e&&f.selectedData===le&&I,U=f.currentFacet===e&&f.selectedData===Q&&I,Y=ie.jsxs("g",{transform:`translate(${N},${Z})`,children:[B,o&&c&&ie.jsx("circle",{onMouseOver:()=>f.onMouseOver(le,e),onMouseLeave:()=>f.onMouseLeave(),r:"15",fill:"transparent",stroke:"none"}),o&&ie.jsx(fu,{content:[$.id,ni($.key1.value)],x:N,y:Z,sideDistances:i,horizontal:!0,active:le===f.selectedData&&f.currentFacet===e,fixed:f.fixed,onClose:f.onClose,container:c})]}),X=ie.jsxs("g",{transform:`translate(${F},${ee})`,children:[k,o&&c&&ie.jsx("circle",{onMouseOver:()=>f.onMouseOver(Q,e),onMouseLeave:()=>f.onMouseLeave(),r:"15",fill:"transparent",stroke:"none"}),o&&ie.jsx(fu,{content:[$.id,ni($.key2.value)],x:F,y:ee,sideDistances:i,horizontal:!0,active:Q===f.selectedData&&f.currentFacet===e,fixed:f.fixed,onClose:f.onClose,container:c})]});return ie.jsxs("g",{children:[ie.jsx("line",{x1:N,y1:Z,x2:F,y2:ee,stroke:h,strokeDasharray:Of(v),strokeWidth:a.lineWidth,fill:"none"}),j?cu.createPortal(Y,s):Y,U?cu.createPortal(Y,s):X]},$.id)})})}function bK(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 q4t(e,t,n){return n?[t,`${ni(e)}`]:[`${ni(e)}`]}function eyt({scales:e,orientation:t,geom:n,aes:r,hasKeyFromColumn:a,sideDistances:i,showTooltips:o,tooltipsContainer:s}){let[c,f]=tn.useState(null),A=t==="vertical",h=(e.xPrimary(n.primaryGrouping)??0)+(e.xSecondary(n.secondaryGrouping)??0)+e.xSecondary.bandwidth()/2,v=e.xSecondary.bandwidth(),g=r.width==="auto"?v*.8:Math.min(v,r.width),C=k=>(1-k*2)*(g/2),b=bK(e,"dotFill",r.dotFill,n),x=bK(e,"dotShape",r.dotShape,n),B=Yc(x,r.dotSize,b);return ie.jsx("g",{transform:A?`translate(${h},0)`:`translate(0, ${h})`,children:n.points.map(({x:k,y:P,jitter:I,id:$})=>{let N=A?P*C(I):e.y(k),F=A?e.y(k):P*C(I);return ie.jsxs("g",{opacity:r.opacity,transform:`translate(${N},${F})`,children:[B,o&&s&&ie.jsx("circle",{onMouseOver:()=>f($),onMouseLeave:()=>f(null),r:"4",fill:"transparent",stroke:"none"}),o&&ie.jsx(fu,{content:q4t(P,$,a),x:h+N,y:F,active:c===$,fixed:!1,sideDistances:i,container:s})]},$)})})}function CK(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 tyt({facetKey:e,scales:t,orientation:n,geom:r,aes:a,sideDistances:i,showTooltips:o,elementsAmount:s,normalize:c,secondaryGrouping:f,activeElementContainer:A,tooltipsContainer:h,tooltipsData:v}){let g=n==="vertical",C=t.xPrimary.bandwidth(),b=(t.xPrimary(r.primaryGrouping)??0)+C/2,x=a.width==="auto"?C*.8:Math.min(C,a.width),B=t.xSecondary.domain().reverse(),k={},P=0;B.forEach($=>{if(!r.valuesMap[$])return;let N=r.valuesMap[$].height;k[$]={y1:P,y2:P+N},P+=N});let I=A&&v.fixed;return ie.jsx("g",{opacity:a.opacity,strokeWidth:a.lineWidth,children:B.map($=>{if(!r.valuesMap[$])return null;let{y1:N,y2:F}=k[$],Z=t.y(N),ee=t.y(F),le=Math.abs(Z-ee),Q=CK(t,"lineColor",a.lineColor,r.primaryGrouping,$),j=CK(t,"fillColor",a.fillColor,r.primaryGrouping,$),U=`stackedBar_${r.primaryGrouping}_${$}`,Y=ie.jsx("rect",{width:g?x:le,height:g?le:x,x:g?b-x/2:Math.min(Z,ee),y:g?Math.min(Z,ee):b-x/2,fill:j,stroke:Q,onMouseOver:()=>v.onMouseOver(U,e),onMouseLeave:()=>v.onMouseLeave()}),X=v.selectedData===U&&e===v.currentFacet&&I;return ie.jsxs("g",{children:[X?cu.createPortal(Y,A):Y,o&&ie.jsx(fu,{content:[f.valueLabels[$],ni(r.valuesMap[$].height)+(c?"%":"")],x:g?b:(Z+ee)/2,y:g?(Z+ee)/2:b,sideDistances:i,horizontal:g,offset:s>1?C/2:C/4,active:U===v.selectedData&&e===v.currentFacet,fixed:v.fixed,onClose:v.onClose,container:h})]},$)})})}function SK(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 nyt(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 xK(e,t,n,r){let a=t.reduce((o,s,c)=>(o[s]=c,o),{}),i=[];return SK(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 ryt={ttest:"TTest",anova:"ANOVA",kruskalWallis:"Kruskal-Wallis",wilcoxon:"Wilcoxon"};function ayt(e,t){return e<=t.three?"***":e<=t.two?"**":e<=t.one?"*":"ns"}function $M(e,t,n,r){return!r&&e>n.one?"":t==="significance"?ayt(e,n):ni(e)}var g3=18,IM=12;function iyt({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=B=>(t.xPrimary(B)??0)+t.xPrimary.bandwidth()/2,A=e==="vertical",h=Math.abs(t.xPrimary.range()[1]-t.xPrimary.range()[0]),v=Math.abs(t.y.range()[1]-t.y.range()[0]),g=t.xPrimary.domain(),C=a==="pairwise"?SK(r,g,s,!o):r,b=a==="pairwise"?nyt(C,g):[],x=Math.max(...b);return ie.jsxs("g",{fontSize:"14px",transform:A?`translate(0,${c})`:`translate(${v-c},0)`,children:[a==="overall"&&ie.jsx("text",{x:A?h/2:-g3,y:A?g3:h/2,transform:A?"":`rotate(90,${-g3},${h/2})`,textAnchor:"middle",children:`${ryt[n]}, p = ${$M(r[0][1],"pValue",s,!0)}`}),a==="referenceGroup"&&ie.jsx("g",{children:r.map(([[B],k])=>ie.jsx("text",{x:A?f(B):-g3,y:A?g3:f(B),transform:A?"":`rotate(90,${-g3},${f(B)})`,textAnchor:"middle",children:$M(k,i,s,o)},B))}),a==="pairwise"&&ie.jsx("g",{children:C.map(([[B,k],P],I)=>{let $=f(B),N=f(k),F=($+N)/2;return ie.jsxs("g",{transform:A?`translate(0,${(x-b[I])*v3})`:`translate(${-(x-b[I])*v3},0)`,children:[ie.jsx("text",{x:A?F:-IM,y:A?IM:F,transform:A?"":`rotate(90,${-IM},${F})`,textAnchor:"middle",children:$M(P,i,s,o)}),ie.jsx("path",{d:A?`M ${$},21 v-4 h ${N-$} v4`:`M -21,${$} h 4 v ${N-$} h-4`,fill:"none",stroke:Vt})]},`${B}_${k}`)})})]})}function oyt(e){return`translate(${e},0)`}function lyt(e){return`translate(0,${e})`}function syt(e){return e==="bottom"?`translate(0,${zf})`:`translate(${-zf},0)`}function uyt(e){return e==="bottom"?"hanging":"central"}function cyt(e){return e==="bottom"?"middle":"end"}var EK=({scale:e,tickSize:t=6,tickPadding:n=zf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5,hiddenLabels:o=!1})=>{function s(P){return I=>{let $=P(I);return $===void 0?0:+$}}let c=Math.abs(e.range()[0]-e.range()[1]),f=Math.min(Math.floor(c/vK),10),A=o?[]:e.ticks(f).filter(P=>a&&P>=0||!a),h=A.some(P=>Math.abs(P)<1e-4&&P!==0||P>1e4)?",e":",f",v=P=>e.tickFormat(f,h)(P),g=Math.max(t,0)+n,C=s(e.copy()),b=r==="bottom"?oyt:lyt,x=r==="left"?-1:1,B={[(r==="left"?"x":"y")+"2"]:x*t},k={[r==="left"?"x":"y"]:x*g};return ie.jsx("g",{children:A.map((P,I)=>ie.jsxs("g",{className:"tick",transform:b(C(P)+i),children:[ie.jsx("line",{stroke:Vt,...B}),ie.jsx("g",{transform:syt(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:uyt(r),textAnchor:cyt(r),...k,children:v(P)})})]},I))})};function BK(e,t,n,r){if(n&&typeof n=="object"&&"type"in n){if(n.type==="primaryGrouping")return e.xPrimaryAes(r.primaryGrouping)[t];if(n.type==="secondaryGrouping")return e.xSecondaryAes(r.secondaryGrouping)[t]}return n}function fyt({facetKey:e,scales:t,orientation:n,violin:r,aes:a,maxViolinDensity:i,showTooltips:o,sideDistances:s,elementsAmount:c,activeElementContainer:f,tooltipsContainer:A,tooltipsData:h}){let v=n==="vertical",g=(t.xPrimary(r.primaryGrouping)??0)+(t.xSecondary(r.secondaryGrouping)??0)+t.xSecondary.bandwidth()/2,C=t.xSecondary.bandwidth(),b=a.width==="auto"?C*.8:Math.min(C,a.width),x=BK(t,"lineColor",a.lineColor,r),B=BK(t,"fillColor",a.fillColor,r),k=r.getArea(n,t.y,b,i)??"",P=r.getLine(n,t.y,b,i)??"",I=Math.abs(t.y.range()[0]-t.y.range()[1]),$=f&&h.fixed,N=h.selectedData===r&&$,F=ie.jsxs("g",{transform:v?`translate(${g},0)`:`translate(0, ${g})`,opacity:a.opacity,stroke:x,fill:B,strokeWidth:a.lineWidth,strokeDasharray:Of(a.lineShape),children:[ie.jsx("clipPath",{id:`violin_${r.key}`,children:ie.jsx("path",{d:k})}),ie.jsx("path",{d:k,stroke:"none"}),a.showQuartiles&&ie.jsxs("g",{clipPath:`url(#violin_${r.key})`,strokeWidth:a.lineWidth,stroke:x,children:[ie.jsx("line",{x1:v?-b/2:t.y(r.quartiles.q1),x2:v?b/2:t.y(r.quartiles.q1),y1:v?t.y(r.quartiles.q1):-b/2,y2:v?t.y(r.quartiles.q1):b/2,strokeDasharray:Of(a.quartilesLineStyle)}),ie.jsx("line",{x1:v?-b/2:t.y(r.quartiles.q2),x2:v?b/2:t.y(r.quartiles.q2),y1:v?t.y(r.quartiles.q2):-b/2,y2:v?t.y(r.quartiles.q2):b/2,strokeDasharray:Of(a.medianLineStyle)}),ie.jsx("line",{x1:v?-b/2:t.y(r.quartiles.q3),x2:v?b/2:t.y(r.quartiles.q3),y1:v?t.y(r.quartiles.q3):-b/2,y2:v?t.y(r.quartiles.q3):b/2,strokeDasharray:Of(a.quartilesLineStyle)})]}),ie.jsx("path",{d:P,fill:"none"}),o&&A&&ie.jsx("rect",{onMouseOver:()=>h.onMouseOver(r,e),onMouseLeave:h.onMouseLeave,width:v?C:I,x:v?-C/2:0,y:v?0:-C/2,height:v?I:C,fill:"transparent",stroke:"none"}),o&&ie.jsx(fu,{content:[`Quartile 3 = ${ni(r.quartiles.q3)}`,`Median = ${ni(r.quartiles.q2)}`,`Quartile 1 = ${ni(r.quartiles.q1)}`],x:v?g:t.y(r.quartiles.q2),y:v?t.y(r.quartiles.q2):g,sideDistances:s,horizontal:v,active:h.active&&h.selectedData===r&&h.currentFacet===e,fixed:h.fixed,offset:c>1?b/2:b/4,onClose:h.onClose,container:A})]});return N?cu.createPortal(F,f):F}var dyt=1;function Ayt({scaleX:e,scaleY:t,orientation:n,width:r,height:a,axisX:i,axisY:o,frameType:s}){let[c,f]=tn.useState(e.domain()),A=Math.abs(t.range()[0]-t.range()[1]),h=Math.min(Math.floor(A/vK),10),[v,g]=tn.useState(t.ticks(h)),C=e.bandwidth()/2,b=k=>(e(k)??0)+C,x=k=>t(k),B=n==="vertical";return tn.useEffect(()=>{let k=e.domain(),P=t.ticks(h);f(k),g(P)},[e,t]),ie.jsxs("g",{stroke:Nf,children:[i.showGrid&&c.map(k=>{let P=b(k)+(i.linesBetweenCategories?C:0);return ie.jsx("line",{x1:B?P:0,x2:B?P:r,y1:B?0:P,y2:B?a:P},`x_${k}`)}),o.showGrid&&v.map(k=>{let P=x(k);return ie.jsx("line",{x1:B?0:P,x2:B?r:P,y1:B?P:0,y2:B?P:a},`y_${k}`)}),s!=="empty"&&ie.jsxs("g",{strokeWidth:dyt,children:[(i.showGrid||s!=="left")&&ie.jsx("line",{stroke:s==="left"?Nf:Vt,x1:"0",x2:r,y1:a,y2:a}),(i.showGrid||s!=="bottom")&&ie.jsx("line",{stroke:s==="bottom"?Nf:Vt,x1:"0",x2:"0",y1:"0",y2:a}),(i.showGrid||s==="full")&&ie.jsx("line",{stroke:s==="full"?Vt:Nf,x1:r,x2:r,y1:"0",y2:a}),(o.showGrid||s==="full")&&ie.jsx("line",{stroke:s==="full"?Vt:Nf,x1:"0",x2:r,y1:"0",y2:"0"})]})]})}function hyt(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=xK(i.values[n],t,i.meta.significanceLevels,i.meta.ns);r.push(r[r.length-1]+v3*o)}else r.push(r[r.length-1]+v3)}return r}function _K(e){return typeof e=="string"?e:e.value}function pyt({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:v,keyColumn:g,chartSizes:C,margins:b,xLabels:x,onlyPositive:B,secondaryGrouping:k,tooltipsData:P}){let[I,$]=tn.useState(),N=a==="vertical",F=hyt(o,r.xPrimary.domain(),s),Z=c.showTicks?hK:0,ee=f.showTicks?hK:0,le=_K(c.title),Q=_K(f.title),j=n.chartEdgeSides.includes("left")||N&&!(e!=null&&e.sharedY)||!N&&!(e!=null&&e.sharedX),U=n.chartEdgeSides.includes("bottom")||N&&!(e!=null&&e.sharedX)||!N&&!(e!=null&&e.sharedY),Y=n.chartEdgeSides.includes("left"),X=n.chartEdgeSides.includes("bottom"),{width:te,height:pe}=n.inner,{left:ae,top:ge,padding:me}=n,fe={left:b.left+ae+me.left,right:C.totalWidth-(b.left+ae+me.left),top:b.top+ge+me.top,bottom:C.totalHeight-(b.top+ge+me.top)},Ce=`translate(${ae+me.left},${ge+me.top})`,De=!1;return ie.jsxs("g",{transform:Ce,children:[De,t.length&&ie.jsxs("g",{children:[A==="full"&&ie.jsx("rect",{x:"0",y:-me.top,height:me.top,width:te,fill:"#F7F8FA",stroke:Vt}),t.map((ke,$e)=>{let je=t.length,Oe=(me.top-S9*je)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:te/2,dy:Oe+S9/2-me.top,y:$e*S9,textAnchor:"middle",dominantBaseline:"central",children:ke},$e)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[X&&ie.jsx("text",{x:te/2,y:pe+me.bottom-lp/2,children:N?le:Q}),X&&De&&ie.jsx("rect",{x:"0",y:pe+me.bottom-lp,width:te,height:lp,fill:"none",stroke:"black"}),Y&&ie.jsx("text",{x:-me.left+lp/2,y:pe/2,transform:`rotate(-90,${-me.left+lp/2},${pe/2})`,children:N?Q:le}),Y&&De&&ie.jsx("rect",{x:-me.left,y:"0",width:lp,height:pe,fill:"none",stroke:"black"})]}),ie.jsx(Ayt,{orientation:a,width:te,height:pe,scaleX:r.xPrimary,scaleY:r.y,axisX:c,axisY:f,frameType:A}),U&&ie.jsx("g",{transform:`translate(0,${pe})`,children:N?ie.jsx(mK,{scale:r.xPrimary,orient:"bottom",labelsPosition:c.labelsPosition,tickSize:Z,labels:x}):ie.jsx(EK,{scale:r.y,onlyPositive:B,orient:"bottom",tickSize:ee,hiddenLabels:f.hiddenLabels})}),j&&ie.jsx("g",{children:N?ie.jsx(EK,{scale:r.y,onlyPositive:B,orient:"left",tickSize:ee,hiddenLabels:f.hiddenLabels}):ie.jsx(mK,{scale:r.xPrimary,orient:"left",labelsPosition:c.labelsPosition,tickSize:Z,labels:x})}),ie.jsxs("g",{children:[i.map(ke=>ie.jsxs("g",{children:[ke.type==="box"&&ke.geoms[s].map($e=>ie.jsx(j4t,{facetKey:s,box:$e,elementsAmount:ke.geoms[s].length,scales:r,orientation:a,aes:ke.aes,hasKeyFromColumn:g!==null,sideDistances:fe,showTooltips:h.box.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="violin"&&ke.geoms[s].map($e=>ie.jsx(fyt,{facetKey:s,violin:$e,elementsAmount:ke.geoms[s].length,scales:r,orientation:a,maxViolinDensity:ke.meta.maxDensity,aes:ke.aes,sideDistances:fe,showTooltips:h.violin.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="dot"&&ke.geoms[s].map($e=>ie.jsx(G4t,{facetKey:s,geom:$e,scales:r,orientation:a,aes:ke.aes,hasKeyFromColumn:g!==null,sideDistances:fe,showTooltips:h.dot.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="line"&&ke.geoms[s].map($e=>ie.jsx(X4t,{facetKey:s,line:$e,scales:r,orientation:a,sideDistances:fe,aes:ke.aes,showTooltips:h.line.show,secondaryGrouping:k,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="errorbar"&&ke.geoms[s].map($e=>ie.jsx(Y4t,{facetKey:s,errorBar:$e,scales:r,orientation:a,aes:ke.aes,sideDistances:fe,showTooltips:h.errorBar.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="bar"&&ke.geoms[s].map($e=>ie.jsx(O4t,{bar:$e,scales:r,orientation:a,aes:ke.aes},$e.key)),ke.type==="stackedBar"&&ke.geoms[s].map($e=>ie.jsx(tyt,{facetKey:s,geom:$e,elementsAmount:ke.geoms[s].length,scales:r,orientation:a,aes:ke.aes,normalize:ke.meta.normalize,sideDistances:fe,showTooltips:h.stackedBar.show,secondaryGrouping:k,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="binnedDots"&&ke.geoms[s].map($e=>ie.jsx(F4t,{facetKey:s,geom:$e,scales:r,orientation:a,aes:ke.aes,binsCount:ke.meta.binsCount,min:ke.meta.minY,max:ke.meta.maxY,hasKeyFromColumn:ke.meta.hasKeyFromColumn,sideDistances:fe,showTooltips:h.stackedBar.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="pairedPoints"&&ke.geoms[s].map($e=>ie.jsx(J4t,{facetKey:s,geom:$e,scales:r,orientation:a,sideDistances:fe,aes:ke.aes,showTooltips:h.pairedPoints.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.id)),ke.type==="sina"&&ke.geoms[s].map($e=>ie.jsx(eyt,{geom:$e,scales:r,orientation:a,sideDistances:fe,aes:ke.aes,hasKeyFromColumn:g!==null,showTooltips:!1,tooltipsContainer:v},$e.key)),ke.type==="logo"&&ke.geoms[s].map($e=>ie.jsx(Z4t,{facetKey:s,geom:$e,elementsAmount:ke.geoms[s].length,scales:r,orientation:a,aes:ke.aes,normalize:ke.meta.normalize,sideDistances:fe,showTooltips:h.logo.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key))]},ke.type)),o.map((ke,$e)=>ie.jsx(iyt,{yShift:F[$e],scales:r,orientation:a,statType:ke.meta.statType,values:ke.values[s],testMethod:ke.meta.testMethod,format:ke.meta.format,ns:ke.meta.ns,significanceLevels:ke.meta.significanceLevels},`${ke.meta.statType}_${ke.meta.testMethod}`))]}),ie.jsxs("g",{children:[P.fixed&&ie.jsx("rect",{width:C.chartWidth,height:C.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:ke=>{ke&&!I&&$(ke)}})]})]})}var y3=class extends k8.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(Qv,{message:this.state.message}):this.props.children}};function vyt(e,t,n,r){return e==="left"?n:e==="right"?t-r:(t-(n+r))/2+n}function myt(e){return e==="left"?"start":e==="right"?"end":"middle"}function w3({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:vyt(t,r,a,i),textAnchor:myt(t),y:-(n.length-s-1)*24-24-24/2,fontSize:"20px",fontFamily:"Manrope",fontWeight:"500",dominantBaseline:"central",children:o},`${o}_${s}`))}):null}var pc=12,E9=-12,TK=14;function gyt(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"}var yyt=3,wyt=24;function byt({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?Yc(e.dotShape??"21",yyt,i?Vt:e.dotFill??Vt):null,s=(a&&r?2*pc:0)-6,c=r?s+wyt+8:pc+8;return ie.jsxs("g",{children:[i&&ie.jsx("rect",{width:pc,height:pc,stroke:e.fillColor??e.lineColor,fill:e.fillColor??e.lineColor,rx:"1",ry:"1"}),a&&ie.jsx("g",{transform:`translate(${pc/2},${pc/2})`,children:o}),r&&ie.jsx("path",{transform:`translate(${s},-5)`,fillRule:"evenodd",clipRule:"evenodd",d:gyt(e.lineShape),fill:e.lineColor}),ie.jsx("text",{x:c,y:pc/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function Cyt({aes:e,label:t}){let n=Yc(e.shape,e.size,e.color);return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${pc/2},${pc/2})`,children:n}),ie.jsx("text",{x:pc+8,y:pc/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function b3({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:E9,children:n.title}),ie.jsx("rect",{x:"0",y:"0",width:TK,height:n.height,stroke:Vt,fill:`url(#${n.id})`}),ie.jsx("g",{transform:`translate(${TK},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:Vt}),ie.jsx("text",{x:8,y:4,children:r})]},r)})}),!1]},n.id);if(n.type==="discreteColor")return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:E9,children:n.title}),n.values.map((r,a)=>ie.jsxs("g",{transform:`translate(0, ${a*(pc+4)})`,children:[ie.jsx("rect",{x:"0",y:"0",width:pc,height:pc,fill:n.scale(r),rx:"1",ry:"1",stroke:Vt}),ie.jsx("text",{x:pc+8,y:10,children:n.labels[r]??r})]},r)),!1]},n.id);if(n.type==="discreteMulti")return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:"14px",fontWeight:500,children:[ie.jsx("text",{fontWeight:600,y:E9,children:n.title}),n.values.map((r,a)=>ie.jsx("g",{transform:`translate(0, ${a*(pc+4)})`,children:ie.jsx(byt,{aes:n.scale(r),label:n.labels[r],usedAes:n.usedAes})},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:500,y:E9,children:n.title}),n.values.map((r,a)=>ie.jsx("g",{transform:`translate(0, ${a*(pc+4)})`,children:ie.jsx(Cyt,{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:E9,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:Vt}),ie.jsx("text",{x:r+4,y:r/2,alignmentBaseline:"central",children:n.labels[a]})]},a)}),!1]},n.id)}})]})}function Syt({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:v,keyColumn:g,xLabels:C,chartTitle:b,onlyPositive:x,secondaryGrouping:B,onTooltipHintSwitch:k}){let[P,I]=tn.useState(),$=p3(k),{orientation:N,xAxis:F,yAxis:Z,title:ee,legend:le,frame:Q}=t,j=r[a[0]].padding,U=r[a[v-1]].padding,Y=n.chartsWidth+pK,X=j.top;return ie.jsx(y3,{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:Nm}),ie.jsxs("g",{transform:`translate(${h.left},${h.top})`,fontFamily:"Manrope",children:[ie.jsx(w3,{title:b,show:ee.show,position:ee.position,leftPadding:j.left,rightPadding:U.right,chartsWidth:n.chartsWidth}),a.map(te=>ie.jsx(pyt,{facetKey:te,facetTitle:i[te],facetSettings:o,orientation:N,scales:{...s,xPrimary:s.xPrimary[te],xSecondary:s.xSecondary[te],y:s.y[te]},chartSizes:n,margins:h,dimensions:r[te],layersData:c,statsData:f,xAxis:F,yAxis:Z,frameType:Q.type,tooltips:t.tooltips,tooltipsContainer:P,keyColumn:g,xLabels:C[te],onlyPositive:x,secondaryGrouping:B,tooltipsData:$},te)),le.show&&ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(b3,{legendData:A})})]}),ie.jsx("g",{style:{outline:"none"},ref:te=>{te&&!P&&I(te)}})]})})}function kK(e,t,n){let r=Object.keys(e.values),a=e.length?e.reduce((i,o)=>{if(o.meta.statType==="pairwise"){let s=Object.values(o.values).map(c=>xK(c,t,o.meta.significanceLevels,o.meta.ns));return i+v3*Math.max(...s)}return(o.meta.ns?t.length>0:r.some(s=>o.values[s].some(([,c])=>c<o.meta.significanceLevels.one)))?i+v3:i},I4t):0;return Math.max(n,a)}function C3(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 xyt(e,t,n,r=14){let a=new hc(`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 jv(e,t,n){let r=new hc(`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:v,lines:g,lastPart:C,lastPartLength:b}=xyt(a[c],t-s,t,n);i.push(`${o} ${v}`),i.push(...g),o=C,s=b}else i.push(o),o=a[c],s=h}}return i.push(o),i.filter(c=>c.length>0)}var MK=new hc("600 14px Manrope"),Eyt=16,LM=48,Byt=20,zm=24;function RM(e,t){return Math.max(...e.map(n=>MK.getTextWidth(String(n))+Byt),MK.getTextWidth(t))}function _yt(e,t,n,r){let a=[[]],i=0,o=t,s=0;return e.forEach(c=>{i+r<=o?(a[s].push(c),i+=r):(a.push([c]),s++,i=r,o=n)}),a}function S3(e,t,n){let r=n??t,a=0,i=0,o=0;e.sort((c,f)=>c.type==="continuous"&&f.type!=="continuous"?-1:f.type==="continuous"&&c.type!=="continuous"?1:c.type==="dots"&&f.type!=="dots"?-1:f.type==="dots"&&c.type!=="dots"?1:0);let s=[];return e.forEach(c=>{let{type:f,values:A,title:h,id:v,scale:g}=c;if(f==="continuous"){let C=nK(A,h),b=r;t-i<b&&(o+=a+zm,a=0,i=0);let x=o,B=i;C>a&&(a=C),i+=b+LM,i>=t&&(o+=a+zm,a=0,i=0),s.push({...c,width:C,height:b,left:x,top:B})}else if(f==="size"){let{labels:C}=c,b=g(Math.max(...A))*2+4,x=RM(A.map(I=>C[I]),h),B=A.length*b;t-i<B&&(o+=a+zm,a=0,i=0);let k=o,P=i;x>a&&(a=x),i+=B+LM,i>=t&&(o+=a+zm,a=0,i=0),s.push({...c,width:x,height:B,left:k,top:P})}else{let{labels:C}=c,b=Eyt,x=t-i;x<b&&(x=t,o+=a+zm,a=0,i=0);let B=_yt(A,x,t,b),k=RM([],h),P=a===0,I=o+k+zm;B.forEach(($,N)=>{let F=N===B.length-1,Z=N>0?"":h,ee=N>0?`${v}_${N}`:v,le=RM($.map(Y=>C[Y]),P&&!F?"":Z),Q=$.length*b,j=o,U=i;le>a&&(a=le),F?i+=Q+LM:i=t,i>=t&&(o+=a+zm,P&&F&&o<I&&(o=I),a=0,i=0),s.push({...c,id:ee,title:Z,width:le,height:Q,left:j,top:U,values:$})})}}),s}function Tyt(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 kyt(e,t,n,r,a,i,o,s,c,f,A){let h=e==="vertical",v=o.includes("left")||h&&!(s!=null&&s.sharedY)||!h&&!(s!=null&&s.sharedX),g=o.includes("left")&&n.title!=="",C=o.includes("bottom")||h&&!(s!=null&&s.sharedX)||!h&&!(s!=null&&s.sharedY),b=o.includes("bottom")&&t.title!=="",x=r.yAxisCaptionsWidth,B=(n.showTicks?f3:0)+(n.hiddenLabels?0:zf),k=g?lp:0,P=r.xAxisCaptionsWidthByRows[h?c:f],I=(t.showTicks?f3:0)+(t.hiddenLabels?0:zf),$=b?lp:0,N=h?x+B+k:P+I+$,F=h?I+P+$:B+2*lp,Z=Math.max(...a.map(ee=>i[ee].length));return{left:v?N:MM,top:Z===0?0:D4t*2+Z*S9,bottom:C?F:MM,right:A?0:MM}}function Myt(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 PK(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function Pyt(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function Hyt(e){return typeof e=="object"&&"type"in e}var Dyt=class{constructor(){Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"component",ie.jsx(ie.Fragment,{}));Be(this,"chartsDimensions",{});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Be(this,"columnsCount",1);Be(this,"rowsCount",1);Be(this,"scales",{xPrimary:{null:Z4().range([0,600]).domain(["1"])},xSecondary:{null:Z4().range([0,600]).domain(["1"])},y:{null:Zr().domain([0,10]).range([350,0]).nice()},xPrimaryAes:Qo().unknown(AK),xSecondaryAes:Qo().unknown(AK)});Be(this,"facetTitles",{});Be(this,"mainTitle",[]);Be(this,"axisLabelsX",{});Be(this,"captionsSizes",{xAxisCaptionsWidthByRows:[],xCaptionsTail:0,yAxisCaptionsWidth:100});Be(this,"legend",{width:0,height:0,items:[]});Be(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=Qh(this.rootNode))}updateChartSize(e,t,n,r,a,i){let o=e.innerOffset,s=e.innerOffset,c=kK(i,r,e.innerOffset),f=t.length,A=Math.min((n==null?void 0:n.nRows)??f,f),h=Math.min((n==null?void 0:n.nCols)??f,f);this.columnsCount=n!=null&&n.nRows?Math.ceil(f/A):h,this.rowsCount=Math.ceil(f/this.columnsCount);let{width:v,height:g}=e;a==="vertical"&&c>o&&(g+=c),a==="horizontal"&&c>s&&(v+=c),this.chartSizes.chartWidth=v,this.chartSizes.chartHeight=g}updateChartDimensions(e,t,n,r,a){let{chartWidth:i,chartHeight:o}=this.chartSizes,s=0,c=0;this.chartsDimensions=e.reduce((h,v,g)=>{let[C,b]=Pyt(g,this.columnsCount),x=Tyt(g,e.length,this.columnsCount,this.rowsCount),B=kyt(n,r,a,this.captionsSizes,PK(e,this.rowsCount,this.columnsCount)[C],this.facetTitles,x,t,C,b,b===this.columnsCount-1),k=i+B.left+B.right,P=o+B.top+B.bottom;return h[v]={left:s,top:c,chartEdgeSides:x,padding:B,inner:{width:i,height:o},outer:{width:k,height:P}},s+=k,b===this.columnsCount-1&&(s=0,c+=P),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,f){let A=c.innerOffset,h=e==="vertical",v=kK(s,t,c.innerOffset),g=a===null||a.sharedX,C=a===null||a.sharedY,{chartHeight:b,chartWidth:x}=this.chartSizes;r.forEach(B=>{let k=i.scale==="log"?j2():Zr(),P=Math.min(...C?o.map(({meta:F})=>F.minY):o.map(({geoms:F})=>Math.min(...F[B].map(({boundsY:Z})=>Z.min)))),I=Math.max(...C?o.map(({meta:F})=>F.maxY):o.map(({geoms:F})=>Math.max(...F[B].map(({boundsY:Z})=>Z.max)))),$=k.copy().domain([P,I]).range(h?[b-A,v]:[A,x-v]);k.domain([$.invert(h?b:0),$.invert(h?0:x)]).range(h?[b,0]:[0,x]),this.scales.y[B]=k;let N=g?t:f[B];this.scales.xPrimary[B]=Z4().domain(N).range(h?[0,x]:[b,0]),this.scales.xSecondary[B]=Z4().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]=jv(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=jv(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)/PM:c/PM)}this.axisLabelsX=e.reduce((s,c)=>{let f=this.scales.xPrimary[c],A=f.bandwidth(),h=a[t.labelsPosition],v=t.labelsPosition==="center"?Math.min(h,A):h,g=n.valueLabels;return s[c]=f.domain().reduce((C,b)=>{if(t.hiddenLabels)return C[b]=[],C;let x=g[b];if(!i)C[b]=[x];else{let B=o(t.labelsPosition,A),k=jv(x,v,14);C[b]=k.length>B?[x]:k}return C},{}),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,r){let a=new hc("600 14px Manrope"),i=e==="vertical";function o(C){return C.length?Math.max(...C.map(b=>a.getTextWidth(b))):0}function s(C){return C.length?Math.max(...C.map(o)):0}let c=[],f=0,A=PK(t,this.rowsCount,this.columnsCount),h=Myt(t,this.rowsCount,this.columnsCount);if(!i)c=h.map(C=>Math.max(...C.map(b=>s(this.scales.xPrimary[b].domain().map(x=>this.axisLabelsX[b][x])))));else{if(n.labelsPosition==="center"&&(c=A.map(C=>Math.max(...C.map(b=>Math.max(...this.scales.xPrimary[b].domain().map(x=>x?this.axisLabelsX[b][x].length*PM:0)))))),n.labelsPosition==="45deg"){let C=Math.sin(Math.PI/4);c=A.map(b=>Math.max(...b.map(x=>{let B=this.scales.xPrimary[x].domain().map(P=>this.axisLabelsX[x][P]),k=s(B);return k>0?k*C+14:0}))),f=Math.max(...h[0].map(b=>{let x=this.scales.xPrimary[b].domain(),B=this.axisLabelsX[b][x[0]];return Math.max(o(B)*C-this.scales.xPrimary[b].bandwidth()/2+14,0)}))}n.labelsPosition==="90deg"&&(c=A.map(C=>Math.max(...C.map(b=>s(this.scales.xPrimary[b].domain().map(x=>this.axisLabelsX[b][x]))))))}let v=Zn.flatten(t.map(C=>{if(r.hiddenLabels)return[];let b=this.scales.y[C],x=b.ticks(),B=x.some(P=>Math.abs(P)<1e-4&&P!==0||P>1e4)?",e":",f",k=b.tickFormat(10,B);return x.map(k)})),g=o(v);this.captionsSizes={xCaptionsTail:f,xAxisCaptionsWidthByRows:c,yAxisCaptionsWidth:g}}updateMargins(e,t,n){let r=this.chartsDimensions[t[0]],a=this.chartsDimensions[t[t.length-1]],i=e==="vertical",o=this.mainTitle.length?24*this.mainTitle.length+24*2:0,s=n.outerOffset;this.margins={left:Math.max(s,i?this.captionsSizes.xCaptionsTail-r.padding.left:0),right:this.legend.width+s,top:Math.max(o,s),bottom:Math.max(s,i?0:this.captionsSizes.xCaptionsTail-a.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=this.chartSizes.chartHeight,i={width:0,height:0,left:0,top:0},o=[];function s(C,b){return r.some(x=>{let B=x.aes[b];return B&&Hyt(B)&&B.type===C})}function c(C){return{dotFill:s(C,"dotFill"),fillColor:s(C,"fillColor"),lineColor:s(C,"lineColor"),dotShape:s(C,"dotShape"),lineShape:s(C,"lineShape")}}let f=c("primaryGrouping"),A=c("secondaryGrouping");if(Object.values(f).some(C=>C)&&t.inheritedAes&&o.push({type:"discreteMulti",id:"primary",title:t.label,scale:this.scales.xPrimaryAes,values:t.keys,labels:t.valueLabels,usedAes:f,...i}),Object.values(A).some(C=>C)&&n.inheritedAes&&o.push({type:"discreteMulti",id:"secondary",title:n.label,scale:this.scales.xSecondaryAes,values:n.keys,labels:n.valueLabels,usedAes:A,...i}),!o.length){this.legend={width:0,height:0,items:[]};return}let h=S3(o,this.chartSizes.chartHeight),v=h[h.length-1],g=v.left+v.width+pK;this.legend={width:g,height:a,items:h}}render(e,t,n,r,a,i,o,s,c,f,A,h,v){var k;let{orientation:g,xAxis:C,yAxis:b,size:x}=t;this.updateChartSize(x,i,a,n.keys,g,c),this.updateViewport(g,n.keys,r.keys,i,a,b,s,c,x,A),this.createAxisLabels(i,C,n,g),this.createFacetTitles(i,o),this.updateCaptionsSize(g,i,C,b),this.updateChartDimensions(i,a,g,C,b),this.updateLegendSize(t.legend,n,r,s),this.createMainTitle(i,t.title),this.updateMargins(g,i,x),this.updateAesScales(n,r);let B=ie.jsx(Syt,{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,onTooltipHintSwitch:v});this.component=B,(k=this.reactRoot)==null||k.render(B)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Qv,{message:e}))}},$yt=Dyt;function Iyt(e,t,n,r=!1){let a=e.map(t).sort((i,o)=>i-o);if(r){let i=Zn.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 Lyt=class{constructor(e,t,n,r,a,i,o,s,c,f,A=!0){Be(this,"lower");Be(this,"middle");Be(this,"upper");Be(this,"min");Be(this,"max");Be(this,"outliers");Be(this,"primaryGrouping");Be(this,"secondaryGrouping");Be(this,"key");Be(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=$=>Number($[t]);this.primaryGrouping=a===null?"":String(a),this.secondaryGrouping=i===null?"":String(i),this.key=`box_${this.primaryGrouping}_${this.secondaryGrouping}`;let v=$=>r==="log"?Math.log10($):$,g=$=>r==="log"?Math.pow(10,$):$,C=Iyt(e,h,v,r==="log"),b=P0(C,o),x=P0(C,s),B=P0(C,c),k=B-b;this.upper=g(B),this.middle=g(x),this.lower=g(b),this.min=Math.max(xw(e,h),g(b-f*k)),this.max=Math.min(Dh(e,h),g(B+f*k)),this.outliers=e.filter($=>h($)<this.min||h($)>this.max).map(($,N)=>({y:h($),data:$,id:String(n?$[n]:N)}));let[P=1/0,I=-1/0]=M0(this.outliers,$=>$.y);this.boundsY={min:A?Math.min(this.min,P):this.min,max:A?Math.max(this.max,I):this.max}}};function Ryt(e,t,n,r,a,i,o,s){let c=1/0,f=-1/0;return{type:"box",geoms:t.reduce((A,h)=>{let v=h.join("_");return A[v]=[],n.forEach(g=>{r.forEach(C=>{let b=a.getRowsByGrouping([...h,g,C]);if(!b.length)return;let x=new Lyt(b,i.value,(o==null?void 0:o.value)??null,s.scale,g,C,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[v].push(x)})}),A},{}),meta:{minY:c,maxY:f},aes:e.aes}}var HK=40;function Vyt(e,t){return function(n){return t.map(function(r){return[r,Vs(n,a=>e(r-a))]})}}function Nyt(e){return function(t){return 1/Math.sqrt(2*Math.PI)*Math.pow(Math.E,-.5*Math.pow(t/e,2))}}function zyt(e){let t=Vs(e);return Vs(e.map(n=>Math.pow(n-t,2)))}function Oyt(e){return Math.sqrt(zyt(e))}function Fyt(e,t,n){let r=(n-t)/1.34,a=Oyt(e);return 1.06*Math.min(a,r)*Math.pow(e.length,-1/5)}var Qyt=class{constructor(e,t,n,r,a,i){Be(this,"getArea");Be(this,"getLine");Be(this,"maxDensity");Be(this,"primaryGrouping");Be(this,"secondaryGrouping");Be(this,"key");Be(this,"boundsY");Be(this,"quartiles");if(e.length===0)throw Error("Unable to calculate violin on empty data");if(r!=="auto"&&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(($,N)=>$-N),f=c[0],A=c[c.length-1],h=A-f,v=P0(c,.25),g=P0(c,.5),C=P0(c,.75);this.quartiles={q1:s(v),q2:s(g),q3:s(C)};let b=Fyt(c,v,C),x=r!=="auto"?r:b/3>h/HK?HK:h/(b/3),B=n?f:f-3*b,k=n?A:A+3*b,P=Zr().domain([B,k]).ticks(x);this.boundsY={min:s(P[0]),max:s(P[P.length-1])};let I=Vyt(Nyt(b),P)(c).map(([$,N])=>[s($),N]);this.maxDensity=Dh(I,([,$])=>$),this.getArea=($,N,F,Z)=>{let ee=$==="vertical",le=Z??this.maxDensity,Q=Zr().domain([-le,le]).range([-F/2,F/2]);return ee?KB().curve(S5).x0(j=>Q(j[1])).x1(j=>Q(-j[1])).y(j=>N(j[0]))(I):KB().curve(S5).y0(j=>Q(j[1])).y1(j=>Q(-j[1])).x(j=>N(j[0]))(I)},this.getLine=($,N,F,Z)=>{let ee=$==="vertical",le=Z??this.maxDensity,Q=Zr().domain([-le,le]).range([-F/2,F/2]);return C5().curve(S5).x(ee?j=>Q(j[1]):j=>N(j[0])).y(ee?j=>N(j[0]):j=>Q(j[1]))(I)+" "+C5().curve(S5).x(ee?j=>Q(-j[1]):j=>N(j[0])).y(ee?j=>N(j[0]):j=>Q(-j[1]))(I)}}};function jyt(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 v=h.join("_");return A[v]=[],n.forEach(g=>{r.forEach(C=>{let b=a.getColumnByGrouping([...h,g,C],i.value);if(!b.length)return;let x=new Qyt(b,o.scale,e.stat.trim,e.stat.stepsCount,g,C);x.maxDensity>s&&(s=x.maxDensity),x.boundsY.min<c&&(c=x.boundsY.min),x.boundsY.max>f&&(f=x.boundsY.max),A[v].push(x)})}),A},{}),meta:{maxDensity:s,minY:c,maxY:f},aes:e.aes}}var Uyt=30;function Gyt(e,t){return function(n){return t.map(function(r){return Vs(n,a=>e(r-a))})}}function Yyt(e){return function(t){return 1/Math.sqrt(2*Math.PI)*Math.pow(Math.E,-.5*Math.pow(t/e,2))}}function Wyt(e){let t=Vs(e);return Vs(e.map(n=>Math.pow(n-t,2)))}function Xyt(e){return Math.sqrt(Wyt(e))}function Kyt(e){let t=P0(e,.25),n=(P0(e,.75)-t)/1.34,r=Xyt(e);return 1.06*Math.min(r,n)*Math.pow(e.length,-1/5)}var Zyt=class{constructor(e,t,n,r,a,i){Be(this,"key");Be(this,"maxDensity");Be(this,"primaryGrouping");Be(this,"secondaryGrouping");Be(this,"points");Be(this,"boundsY");let o=Uyt;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=P=>n==="log"?Math.log10(P):P,c=P=>n==="log"?Math.pow(10,P):P,f=P=>Number(P[t.value]),A=e.filter(P=>n==="log"&&f(P)===0?(console.warn("Value = 0 on chart with log scale, it was removed from calculation"),!1):!0).sort((P,I)=>s(f(P))-s(f(I))),h=A.map(P=>s(f(P))),v=h[0],g=h[A.length-1],C=(g-v)/o,b=Kyt(h),x=Zn.range(v+C,g,C);this.boundsY={min:c(v),max:c(g)};let B=Gyt(Yyt(b),x)(h),k=Zr().domain(x).range(B).clamp(!0);this.maxDensity=Dh(B),this.points=A.map((P,I)=>({x:f(P),y:k(s(f(P)))/this.maxDensity,id:String(I),jitter:i(),data:P}))}};function Jyt(e,t,n,r,a,i,o){let s=0,c=1/0,f=-1/0,A=pN(1);return{type:"sina",geoms:t.reduce((h,v)=>{let g=v.join("_");return h[g]=[],n.forEach(C=>{r.forEach(b=>{let x=a.getRowsByGrouping([...v,C,b]);if(!x.length)return;let B=x;if(!e.aes.showOutliers){let P=N=>Number(N[i.value]),[I,$]=C3(x,o.scale,P);B=x.filter(N=>{let F=P(N);return F>=I&&F<=$})}let k=new Zyt(B,i,o.scale,C,b,A);k.maxDensity>s&&(s=k.maxDensity),k.boundsY.min<c&&(c=k.boundsY.min),k.boundsY.max>f&&(f=k.boundsY.max),h[g].push(k)})}),h},{}),meta:{maxDensity:s,minY:c,maxY:f},aes:e.aes}}function qyt(e,t,n,r,a,i,o,s){let c=1/0,f=-1/0,A=pN(1);return{type:"dot",geoms:t.reduce((h,v)=>{let g=v.join("_");return h[g]=[],n.forEach(C=>{r.forEach(b=>{let x=a.getRowsByGrouping([...v,C,b]);if(!x.length)return;let B=$=>Number($[i.value]),k=x.map(($,N)=>({y:B($),jitter:A(),id:String(s?$[s.value]:N),data:$}));if(!e.aes.showOutliers){let[$,N]=C3(x,o.scale,B);k=k.filter(({y:F})=>F>=$&&F<=N)}let[P=1/0,I=-1/0]=M0(k,$=>$.y);P<c&&(c=P),I>f&&(f=I),h[g].push({key:`dots_${C}_${b}`,values:k,primaryGrouping:C,secondaryGrouping:b,boundsY:{min:P,max:I}})})}),h},{}),meta:{minY:c,maxY:f},aes:e.aes}}function e7t(e,t){if(t==="median")return HI(e,.5);if(t==="mean")return Vs(e);f1(t,`Unknown line points calculation for dot layer: ${t}`)}function t7t(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 v=-1/0,g=1/0;return e.aes.showOutliers||([v,g]=C3(a.getColumnByGrouping([...A],i.value),o.scale)),r.forEach(C=>{let b={key:`${C}`,boundsY:{min:1/0,max:-1/0},dots:{}},x=!1,B=P=>o.scale==="log"?Math.log10(P):P,k=P=>o.scale==="log"?Math.pow(10,P):P;n.forEach(P=>{let I=a.getColumnByGrouping([...A,P,C],i.value);if(!I.length){x=!0;return}let $=I;if(e.aes.showOutliers||($=I.filter(F=>F>=v&&F<=g)),!$.length){x=!0;return}let N=k(e7t($.map(B),e.pointsValues));b.dots[P]=N,N<s&&(s=N),N>c&&(c=N),N<b.boundsY.min&&(b.boundsY.min=N),N>b.boundsY.max&&(b.boundsY.max=N)}),x||f[h].push(b)}),f},{}),meta:{minY:s,maxY:c},aes:e.aes}}function n7t(e){let t=Vs(e);return Vs(e.map(n=>Math.pow(n-t,2)))}function VM(e){return Math.sqrt(n7t(e))}function r7t(e){return VM(e)/Math.sqrt(e.length)}function a7t(e){return 1.96*VM(e)}function i7t(e,t){if(t==="median")return HI(e,.5);if(t==="mean")return Vs(e);f1(t,"Unknown points calculation")}function o7t(e,t){if(t==="sd")return VM(e);if(t==="se")return r7t(e);if(t==="ci")return a7t(e);f1(t,"Unknown error interval calculation")}function l7t(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 v=C=>o.scale==="log"?Math.log10(C):C,g=C=>o.scale==="log"?Math.pow(10,C):C;return n.forEach(C=>{r.forEach(b=>{let x=a.getColumnByGrouping([...A,C,b],i.value);if(!x.length)return;let B=x.map(v),k=g(i7t(B,e.pointsValues)),P=g(o7t(B,e.interval)),I=k-P,$=k+P;I<s&&(s=I),$>c&&(c=$),f[h].push({key:`errorbar_${C}_${b}`,primaryGrouping:C,secondaryGrouping:b,value:k,min:I,max:$,boundsY:{min:I,max:$}})})}),f},{}),meta:{minY:s,maxY:c},aes:e.aes}}function s7t(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 xw(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 Vs(e,o)??o(e[0]);default:f1(r,`Unknown bar height function ${r}`)}}function u7t(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(v=>{r.forEach(g=>{let C=a.getRowsByGrouping([...A,v,g]);if(!C.length)return;let b=s7t(C,o.scale,i.value,e.height);s=Math.max(s,b,0),c=Math.min(c,b,0),f[h].push({key:`bar_${v}_${g}`,value:b,primaryGrouping:v,secondaryGrouping:g,boundsY:{min:Math.min(0,b),max:Math.max(0,b)}})})}),f},{}),meta:{minY:c,maxY:s},aes:e.aes}}function c7t(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 v=0,g={};r.forEach(x=>{let B=a.getRowsByGrouping([...f,h,x]);if(!B.length)return;let k=lc(B,P=>Number(P[i.value]));g[x]={height:k,key:x},v+=k});let C=v;e.normalize&&r.forEach(x=>{g[x]&&(g[x].height=g[x].height/C*100)}),o=Math.max(o,0,v),s=Math.min(s,0,v);let b=e.normalize?100:C;c[A].push({key:`stackedBar_${h}`,valuesMap:g,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 DK=30;function f7t(e,t,n,r,a,i){let o=e.map(v=>n(a(v))),s=e.length,c=e.map(A),f=[];function A(v,g){return{key:i(v,g),value:a(v)}}let h=0;for(let v=1;v<s;++v){let g=o[h],C=o[v],b=o[v-1];if(C>=g+t){let x=Math.min((g+b)/2,C-t);o.fill(x,h,v),f.push({x:r(x),count:v-h,dots:c.slice(h,v)}),h=v}}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 d7t=class{constructor(e,t,n,r,a,i,o,s,c,f){Be(this,"bins");Be(this,"primaryGrouping");Be(this,"secondaryGrouping");Be(this,"key");Be(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,v)=>i(s(h))-i(s(v)));this.bins=f7t(A,a,i,o,s,(h,v)=>String(f?h[f.value]:v)),this.boundsY={min:this.bins[0].x,max:this.bins[this.bins.length-1].x}}};function A7t(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,v=a.getRowsByGrouping([]),[g=f(v[0]),C=f(v[0])]=M0(v.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(g)-s(C))/DK;return{type:"binnedDots",geoms:t.reduce((x,B)=>{let k=B.join("_");return x[k]=[],n.forEach(P=>{r.forEach(I=>{let $=a.getRowsByGrouping([...B,P,I]);if(!$.length)return;let N=$;if(!e.aes.showOutliers){let[Z,ee]=C3($,o.scale,f);N=$.filter(le=>{let Q=f(le);return Q>=Z&&Q<=ee})}let F=new d7t(N,i.value,P,I,b,s,c,f,o.scale,e.keyColumn);F.boundsY.min<A&&(A=F.boundsY.min),F.boundsY.max>h&&(h=F.boundsY.max),x[k].push(F)})}),x},{}),meta:{minY:Math.min(g,C,A),maxY:Math.max(g,C,h),binsCount:DK,hasKeyFromColumn:e.keyColumn!==null},aes:e.aes}}function h7t(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 $K(e,t,n,r,a,i,o,s,c){let f=Zn.groupBy(n,P=>P[a.value]),A=Zn.groupBy(r,P=>P[a.value]),h=Object.keys(f),v=Object.keys(A);if(Zn.uniq(h).length!==h.length||Zn.uniq(v).length!==v.length)throw Error(`Non unique keys in groups ${e}, ${t} for paired points layer`);if(h.length!==v.length||Zn.intersection(h,v).length!==h.length)throw Error(`Keys in groups ${e}, ${t} not match for paired points layer`);let g=P=>Number(P[i.value]),C=1/0,b=-1/0,x=!1,B=c==="log",k=h.map(P=>{let I=f[P][0],$=A[P][0],N=g(I),F=g($);return(N===0||F===0)&&(x=!0),C=Math.min(C,B&&N===0?1/0:N,B&&F===0?1/0:F),b=Math.max(b,B&&N===0?-1/0:N,B&&F===0?-1/0:F),{id:P,key1:{id:`${P}_${e}`,value:N,data:I},key2:{id:`${P}_${t}`,value:F,data:$}}});if(!s){C=1/0,b=-1/0;let[P,I]=C3(n,c,g),[$,N]=C3(r,c,g);k=k.filter(({key1:F,key2:Z})=>F.value<P||F.value>I||Z.value<$||Z.value>N?!1:(C=Math.min(C,B&&F.value===0?1/0:F.value,B&&Z.value===0?1/0:Z.value),b=Math.max(b,B&&F.value===0?-1/0:F.value,B&&Z.value===0?-1/0:Z.value),!0))}return C=x?C/10:C,b=Math.max(b,C),{id:`${e}_${t}`,key1:e,key2:t,pairs:k.map(P=>({...P,key1:{...P.key1,value:P.key1.value===0?C:P.key1.value},key2:{...P.key2,value:P.key2.value===0?C:P.key2.value}})),grouping:o,boundsY:{min:C,max:b}}}function p7t(e,t,n,r,a,i,o){let s=h7t(n,r),c=1/0,f=-1/0;return{type:"pairedPoints",geoms:t.reduce((A,h)=>{let v=h.join("_");if(A[v]=[],s==="primary"){let[g,C]=n,b=a.getRowsByGrouping([...h,g]),x=a.getRowsByGrouping([...h,C]),B=$K(g,C,b,x,e.linkColumn,i,s,e.aes.showOutliers,o.scale);c=Math.min(c,B.boundsY.min),f=Math.max(f,B.boundsY.max),A[v].push(B)}else s==="secondary"&&n.forEach(g=>{let[C,b]=r,x=a.getRowsByGrouping([...h,g,C]),B=a.getRowsByGrouping([...h,g,b]),k=$K(C,b,x,B,e.linkColumn,i,s,e.aes.showOutliers,o.scale);c=Math.min(c,k.boundsY.min),f=Math.max(f,k.boundsY.max),A[v].push(k)});return A},{}),meta:{minY:c,maxY:f},aes:e.aes}}function IK(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 x3(e,t){return Zn.orderBy(e.map((n,r)=>[n,r]),([n])=>n,[t?"desc":"asc"]).map(([,n])=>n)}function v7t(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 m7t(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 LK(e,t){if(e.length<1)throw new Error("pmin requires at least one element");return e.map(n=>Math.min(n,t))}function g7t(e){if(e.length<1)throw new Error("pAdjust requires at least one element");return Math.min(...e)}function y7t(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 w7t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=x3(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=x3(r,!1),o=m7t(a),s=LK(o,1),c=new Array(t);for(let f=0;f<t;++f)c[f]=s[i[f]];return c}function b7t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=IK(t,t),r=x3(e,!1),a=new Array(t);for(let h=0;h<t;++h)a[h]=e[r[h]];let i=r.slice(),o=x3(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=g7t(f);s.fill(A),c.fill(A);for(let h=t;h>=2;--h){let v=IK(1,t-h+1);for(let x=0;x<t-h+1;++x)v[x]--;let g=h-1,C=new Array(g);for(let x=0;x<g;++x)C[x]=t-h+2+x-1;let b=h*a[C[0]]/2;for(let x=1;x<g;++x){let B=a[C[x]]*h/(2+x);B<b&&(b=B)}for(let x=0;x<t-h+1;++x)s[v[x]]=Math.min(a[v[x]]*h,b);for(let x=0;x<g;++x)s[C[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 C7t=class{constructor(e,t,n){this.ni=e,this.o=t,this.ro=n}result(e){let t=v7t(e),n=LK(t,1),r=new Array(e.length);for(let a=0;a<e.length;++a)r[a]=n[this.ro[a]];return r}};function NM(e){let t=e.length,n=new Array(t),r=x3(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=x3(r,!1);return new C7t(n,r,a)}function S7t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=NM(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 x7t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=NM(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 E7t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=NM(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 RK(e,t){switch(t){case"BenjaminiHochberg":return S7t(e);case"BenjaminiYekutieli":return x7t(e);case"Bonferroni":return y7t(e);case"Hochberg":return E7t(e);case"Holm":return w7t(e);case"Hommel":return b7t(e);case null:return e;default:throw new Error(`Unknown p-value correction method: ${t}`)}}function B7t(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 _7t(e){return .5*B7t(-e/Math.sqrt(2))}var T7t=class{constructor(e,t){this.value=e,this.position=t}getValue(){return this.value}getPosition(){return this.position}};function k7t(e){let t=new Array(e.length);for(let o=0;o<e.length;o++)t[o]=new T7t(e[o],o);let n=P7t(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&&VK(r,i),i=[]),i.push(t[o].getPosition()),r[t[o].getPosition()]=a;return i.length>1&&VK(r,i),M7t(r,n),r}function VK(e,t){let n=(2*e[t[0]]+t.length-1)/2;t.forEach(r=>{e[r]=n})}function M7t(e,t){t.forEach(n=>{e[n]=NaN})}function P7t(e){let t=[];for(let n=0;n<e.length;n++)isNaN(e[n].getValue())&&t.push(n);return t}var H7t=class{constructor(){Be(this,"SMALL_SAMPLE_SIZE",50)}mannWhitneyU(e,t){let n=[...e,...t],r=k7t(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*_7t(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)]/Zn.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 v=a[h]+i[h];a[h]=v,i[A]=v-a[c],a[c]=v}}return a}varU(e,t,n){let r=e*t;if(Object.keys(n).length===0)return r*(e+t+1)/12;let a=Zn.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 zM(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 nlt(e[0],e[1]).pValue}let r=wlt(e[0],e[1]).pValue;return isNaN(r)?1:r}case"anova":{let r=lGe(Zn.flatten(e),Zn.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 ydt(e[0],e[1]).pValue}let r=new H7t().mannWhitneyUTest(e[0],e[1]);return isNaN(r)?1:r}case"kruskalWallis":{let r=Fct(...e).pValue;return isNaN(r)?1:r}default:throw new Error("Unknown test method")}}function D7t(e){return e.slice(0,-1).reduce((t,n,r)=>t.concat(e.slice(r+1).map(a=>[n,a])),[])}function $7t(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=zM(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(v=>v!==c).map(v=>[v,a.getColumnByGrouping([...o,v],r.value)]).filter(([,v])=>v.length>0);if(A.length<2&&e.correctionMethod!==null)break;let h=RK(A.map(([,v])=>zM([f,v],e.testMethod,e.paired)),e.correctionMethod);s=A.map(([v],g)=>[[v],h[g]]);break}case"pairwise":{let c=D7t(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=RK(c.map(([,A])=>zM(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 B9="#3e9838",E3="21",B3=3,Z1=class{},NK=class extends Z1{constructor(t){super();Be(this,"type","box");Be(this,"stat",{upper:.75,medium:.5,lower:.25,k:1.5});Be(this,"aes",{showOutliers:!0,boxWidth:"auto",dotShape:E3,dotFill:Vt,dotSize:B3,lineColor:Vt,fillColor:B9,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])}},zK=class extends Z1{constructor(t){super();Be(this,"type","violin");Be(this,"stat",{bandwidth:"auto",stepsCount:40,trim:!0});Be(this,"aes",{width:"auto",lineColor:Vt,fillColor:B9,lineWidth:1,lineShape:"solid",opacity:1,showQuartiles:!0,medianLineStyle:"solid",quartilesLineStyle:"dashed"});this.stat={...this.stat,...t.stat},this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="violin"&&(this.stat.bandwidth!==t.stat.bandwidth||this.stat.trim!==t.stat.trim||this.stat.stepsCount!==t.stat.stepsCount)}},OK=class extends Z1{constructor(t){super();Be(this,"type","dot");Be(this,"aes",{showOutliers:!0,jitter:.8,lineColor:"none",dotFill:Vt,dotShape:E3,dotSize:B3,opacity:1});this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="dot"&&this.aes.showOutliers===t.aes.showOutliers}},FK=class extends Z1{constructor(t){super();Be(this,"type","line");Be(this,"pointsValues");Be(this,"aes",{showOutliers:!0,lineWidth:1,lineShape:"solid",fillColor:"none",lineColor:Vt,dotShape:E3,dotSize:B3,opacity:1});this.pointsValues=t.pointsValues,this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="line"&&this.pointsValues===t.pointsValues}},QK=class extends Z1{constructor(t){super();Be(this,"type","errorbar");Be(this,"pointsValues");Be(this,"interval");Be(this,"aes",{showDots:!0,width:"auto",lineWidth:1,fillColor:"none",lineColor:Vt,dotShape:E3,dotSize:B3,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}},jK=class extends Z1{constructor(t){super();Be(this,"type","bar");Be(this,"height");Be(this,"aes",{width:"auto",lineWidth:1,fillColor:"none",lineColor:Vt,opacity:1});this.height=t.height??"max",this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="bar"&&this.height===t.height}},UK=class extends Z1{constructor(t){super();Be(this,"type","stackedBar");Be(this,"normalize",!1);Be(this,"aes",{width:"auto",lineWidth:1,fillColor:B9,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}},GK=class extends Z1{constructor(t){super();Be(this,"type","logo");Be(this,"normalize",!1);Be(this,"aes",{width:"auto",fillColor:B9,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}},YK=class extends Z1{constructor(t){super();Be(this,"type","binnedDots");Be(this,"method");Be(this,"position");Be(this,"keyColumn");Be(this,"aes",{showOutliers:!0,width:"auto",lineWidth:1,fillColor:"none",lineColor:Vt,opacity:1});this.method=t.method??"dotdensity",this.position=t.position??"stack",this.keyColumn=t.keyColumn??null,this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){var n,r;return t.type==="binnedDots"&&this.method===t.method&&this.position===t.position&&((n=this.keyColumn)==null?void 0:n.value)===((r=t.keyColumn)==null?void 0:r.value)}},WK=class extends Z1{constructor(t){super();Be(this,"type","pairedPoints");Be(this,"linkColumn");Be(this,"aes",{showOutliers:!0,lineWidth:1,lineColor:Vt,lineShape:"solid",dotFill:Vt,dotSize:B3,dotShape:E3,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}},XK=class extends Z1{constructor(t){super();Be(this,"type","sina");Be(this,"aes",{showOutliers:!0,width:"auto",dotFill:B9,dotSize:B3,dotShape:E3,opacity:1});this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="sina"&&this.aes.showOutliers===t.aes.showOutliers}},oS=class extends Z1{constructor(t){var n,r,a;super();Be(this,"type","stat");Be(this,"statType");Be(this,"testMethod");Be(this,"paired");Be(this,"ns");Be(this,"format");Be(this,"referenceGroup",null);Be(this,"correctionMethod",null);Be(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])}},KK=class{constructor(e){Be(this,"id");Be(this,"type","discrete");Be(this,"y");Be(this,"keyColumn");Be(this,"primaryGrouping");Be(this,"secondaryGrouping");Be(this,"facetSettings");Be(this,"facetBy");Be(this,"chartSettings");Be(this,"layers");var t,n,r,a,i,o,s,c,f,A;D3t.parse(e),this.id=Zn.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),outerOffset:((r=e==null?void 0:e.size)==null?void 0:r.outerOffset)??$4t,innerOffset:((a=e==null?void 0:e.size)==null?void 0:a.innerOffset)??H4t.TOP},title:{position:"center",show:!0,...e.title,name:((i=e.title)==null?void 0:i.name)??"Chart"},orientation:e.orientation??"vertical",yAxis:{title:((o=e.y)==null?void 0:o.label)??e.y.value??"",scale:"linear",showGrid:!0,showTicks:!0,hiddenLabels:!1,...e.yAxis},xAxis:{title:((c=(s=e.primaryGrouping)==null?void 0:s.columnName)==null?void 0:c.label)??((f=e.primaryGrouping)==null?void 0:f.columnName.value)??"",showGrid:!0,showTicks:!0,linesBetweenCategories:!0,labelsPosition:"center",hiddenLabels:!1,...e.xAxis},frame:{type:((A=e.frame)==null?void 0:A.type)??"full"},legend:{show:!0,position:"right",...e.legend},tooltips:{box:{show:!0},violin:{show:!0},boxOutliers:{show:!0},line:{show:!0},errorBar:{show:!0},dot:{show:!0},binnedDots:{show:!0},pairedPoints:{show:!0},stackedBar:{show:!0},logo:{show:!1},...e.tooltips}},this.layers=e.layers.map(h=>{if(h.type==="box")return new NK(h);if(h.type==="violin")return new zK(h);if(h.type==="dot")return new OK(h);if(h.type==="line")return new FK(h);if(h.type==="errorbar")return new QK(h);if(h.type==="bar")return new jK(h);if(h.type==="stackedBar")return new UK(h);if(h.type==="stat")return new oS(h);if(h.type==="binnedDots")return new YK(h);if(h.type==="pairedPoints")return new WK(h);if(h.type==="sina")return new XK(h);if(h.type==="logo")return new GK(h);f1(h,"Unknown layer type")}).filter(Boolean)}};function ZK(e,t=null,n=null){let r=(t==null?void 0:t.value)??null,a=r===null?["null"]:e.getColumnCategories(r);return Zn.intersection(n??a,a).map(String)}function JK(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 lS(e,t){if(!t)return{keys:["null"],value:null,label:"",valueLabels:{null:""},inheritedAes:null};let n=t.columnName.value,r=Zn.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:Zn.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 I7t=class extends Lm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new $yt);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new KK(n),r&&(this.onTooltipHintSwitch=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 KK(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(),b5(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 B=x[n.value];return B===null||!(Number(B)<0)}),f=lS(this.data,this.settings.primaryGrouping),A=lS(this.data,this.settings.secondaryGrouping),h=a.map(x=>x.value)??null,v=a.length?JK(a.map(x=>{var B;return ZK(this.data,x,(B=o==null?void 0:o.order)==null?void 0:B[x.value])})):[["null"]];this.data.setGrouping([...h,f.value,A.value]);let g=v.reduce((x,B)=>(x[B.join("_")]=f.keys.filter(k=>this.data.getRowsByGrouping([...B,k]).length>0),x),{}),C=i.filter(x=>!(x instanceof oS)).map(x=>{if(x instanceof NK)return Ryt(x,v,f.keys,A.keys,this.data,n,r,s);if(x instanceof zK)return jyt(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof OK)return qyt(x,v,f.keys,A.keys,this.data,n,s,r);if(x instanceof FK)return t7t(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof QK)return l7t(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof jK)return u7t(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof UK)return c7t(x,v,f.keys,A.keys,this.data,n);if(x instanceof YK)return A7t(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof WK)return p7t(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof XK)return Jyt(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof GK)return P4t(x,v,f.keys,A.keys,this.data,n);throw new Error("Unknown layer type")}),b=i.filter(x=>x instanceof oS).map(x=>{if(f.value===null)throw new Error("Cannot calculate p-value without data grouping");return $7t(x,v,f.keys,n,this.data)});this.calculatedData={layersData:C,statsLayersData:b,primaryGrouping:f,secondaryGrouping:A,facetKeyLists:v,nonEmptyGroupsByFacets:g,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 oS));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=lS(this.data,r),this.calculatedData.secondaryGrouping=lS(this.data,a),this.calculatedData.facetKeyLists=n.length?JK(n.map(s=>{var c;return ZK(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,this.onTooltipHintSwitch)}},L7t=1e6;function R7t(e){let t=BI(e),n=Vs(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function V7t(e){let t=Vs(e),[n,r]=M0(e);return t===void 0||n===void 0||r===void 0||r===n?a=>a:a=>(a-t)/(r-n)}function N7t(e,t){return e==="standardScaling"?R7t(t):e==="meanNormalization"?V7t(t):n=>n}function OM(e){if(!e.length)return[];let t=[[]];return e.forEach(n=>{let r=[];n.forEach(a=>{r.push(...t.map(i=>[...i,a]))}),t=r}),t}function z7t(e,t,n,r,a,i,o,s,c,f,A,h){let v=a.length?a.map(Y=>e.getColumnCategories(Y.value)):[["null"]],g=i.length?i.map(Y=>e.getColumnCategories(Y.value)):[["null"]],C=o.length?o.map(Y=>e.getColumnCategories(Y.value)):[["null"]],b=OM(v),x=OM(g),B=OM(C),k=b.map(Y=>Y.join("_")),P=x.map(Y=>Y.join("_")),I=B.map(Y=>Y.join("_")),$={meta:{facetKeys:k,xGroupKeys:P,yGroupKeys:I,xKeysByGroups:{},yKeysByGroups:{},xLabels:{},yLabels:{},xGroupLabels:{},yGroupLabels:{},xDataByKeys:{},yDataByKeys:{},facetKeyValues:k.reduce((Y,X,te)=>(Y[X]=b[te],Y),{}),xGroupKeyValues:P.reduce((Y,X,te)=>(Y[X]=x[te],Y),{}),yGroupKeyValues:I.reduce((Y,X,te)=>(Y[X]=B[te],Y),{}),valueExtent:[1/0,-1/0]},facets:{}},N=t.valueLabels??t.value,F=n.valueLabels??n.value,Z=s.filter(Y=>Y.axis==="x").map(Y=>Y.valueColumn.value),ee=s.filter(Y=>Y.axis==="y").map(Y=>Y.valueColumn.value),le=Object.values(c??{}).map(Y=>Y.value),Q=Object.values(f??{}).map(Y=>Y.value),j=Zn.uniq([...Z,...le,N]),U=Zn.uniq([...ee,...Q,F]);if(e.rows.forEach(Y=>{let X=a.length?a.map(De=>Y[De.value]).join("_"):"null",te=i.length?i.map(De=>Y[De.value]).join("_"):"null",pe=o.length?o.map(De=>Y[De.value]).join("_"):"null",ae=i.length?i.map(De=>Y[De.valueLabels??De.value]).join(", "):"",ge=o.length?o.map(De=>Y[De.valueLabels??De.value]).join(", "):"";$.meta.xGroupLabels[te]=ae,$.meta.yGroupLabels[te]=ge;let me=Y[t.value],fe=Y[n.value],Ce=Y[r.value]??h;if(!(me===null||fe===null||Ce===null)){if($.facets[X]||($.facets[X]={xKeys:[],yKeys:[],xKeysByGroups:{},yKeysByGroups:{},cells:{}}),$.facets[X].xKeysByGroups[te]||($.facets[X].xKeysByGroups[te]=[]),$.facets[X].yKeysByGroups[pe]||($.facets[X].yKeysByGroups[pe]=[]),$.facets[X].xKeys.push(me),$.facets[X].yKeys.push(fe),$.facets[X].xKeysByGroups[te].push(me),$.facets[X].yKeysByGroups[pe].push(fe),$.facets[X].cells[me]||($.facets[X].cells[me]={}),$.meta.valueExtent[0]=Math.min(Ce,$.meta.valueExtent[0]),$.meta.valueExtent[1]=Math.max(Ce,$.meta.valueExtent[1]),$.facets[X].cells[me][fe])throw Error(`More than 1 value for x=${me}, y=${fe}`);if($.meta.xLabels[me]&&String(Y[N])!==$.meta.xLabels[me])throw Error(`More than 1 x-label value for x=${me}`);if($.meta.yLabels[fe]&&String(Y[F])!==$.meta.yLabels[fe])throw Error(`More than 1 y-label value for y=${fe}`);$.meta.xLabels[me]=String(Y[N]),$.meta.yLabels[fe]=String(Y[F]),j.forEach(De=>{let ke=typeof $.meta.xDataByKeys[De]<"u",$e=ke&&typeof $.meta.xDataByKeys[De][me]<"u";if(ke||($.meta.xDataByKeys[De]={}),$e&&$.meta.xDataByKeys[De][me]!==Y[De])throw Error(`More than 1 value for x = ${me} and column = ${De}`);$e||($.meta.xDataByKeys[De][me]=Y[De])}),U.forEach(De=>{let ke=typeof $.meta.yDataByKeys[De]<"u",$e=ke&&typeof $.meta.yDataByKeys[De][fe]<"u";if(ke||($.meta.yDataByKeys[De]={}),$e&&$.meta.yDataByKeys[De][fe]!==Y[De])throw Error(`More than 1 value for y = ${fe} and column = ${De}`);$e||($.meta.yDataByKeys[De][fe]=Y[De])}),$.facets[X].cells[me][fe]={id:`${me}_${fe}`,x:me,y:fe,value:Ce,normalizedValue:Ce,data:Y}}}),$.meta.facetKeys=$.meta.facetKeys.filter(Y=>$.facets[Y]),$.meta.facetKeys.forEach(Y=>{let X=$.facets[Y];if(X.xKeys=Zn.uniq(X.xKeys),X.yKeys=Zn.uniq(X.yKeys),X.xKeys.length*X.yKeys.length>L7t)throw Error(`Too many cells for graph rendering (${X.xKeys.length*X.yKeys.length})`);P.forEach(te=>{$.facets[Y].xKeysByGroups[te]=Zn.uniq($.facets[Y].xKeysByGroups[te])}),I.forEach(te=>{$.facets[Y].yKeysByGroups[te]=Zn.uniq($.facets[Y].yKeysByGroups[te])})}),A){let Y=[1/0,-1/0];$.meta.facetKeys.forEach(X=>{let{xKeys:te,yKeys:pe,cells:ae}=$.facets[X],ge=A.direction==="row"?te:pe,me=A.direction==="row"?pe:te,fe=A.direction==="row"?(Ce,De)=>{var ke;return(ke=ae[Ce])==null?void 0:ke[De]}:(Ce,De)=>{var ke;return(ke=ae[De])==null?void 0:ke[Ce]};me.forEach(Ce=>{let De=[];ge.forEach($e=>{var Oe;let je=(Oe=fe($e,Ce))==null?void 0:Oe.value;je!==void 0&&De.push(je)});let ke=N7t(A.method,De);ge.forEach($e=>{let je=fe($e,Ce);je!==void 0&&(je.normalizedValue=ke(je.value),Y[0]=Math.min(je.normalizedValue,Y[0]),Y[1]=Math.max(je.normalizedValue,Y[1]))})})}),$.meta.valueExtent=Y}return $.meta.xKeysByGroups=P.reduce((Y,X)=>(Y[X]=Zn.uniq(Zn.flatten($.meta.facetKeys.map(te=>$.facets[te].xKeysByGroups[X]))),Y),{}),$.meta.yKeysByGroups=I.reduce((Y,X)=>(Y[X]=Zn.uniq(Zn.flatten($.meta.facetKeys.map(te=>$.facets[te].yKeysByGroups[X]))),Y),{}),$.meta.valueExtent[0]===1/0&&($.meta.valueExtent[0]=0),$.meta.valueExtent[1]===-1/0&&($.meta.valueExtent[1]=0),$}function qK(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 eZ(e,t){return Math.sqrt(qK(e,t))}var tZ=(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},O7t=(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},F7t=(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 Q7t(e){switch(e){case"average":return tZ;case"complete":return O7t;case"single":return F7t;default:return tZ}}function j7t(e){switch(e){case"euclidean":return eZ;case"squaredEuclidean":return qK;default:return eZ}}function nZ(e=[],t,n="euclidean",r="average"){let a=j7t(n),i=Q7t(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 g=0;g<s.length;g++)for(let C=g+1;C<s.length;C++){let b=i(s[g].indexes,s[C].indexes,o);b<f&&(f=b,A=g,h=C)}let v={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(v)}return s[0]}function U7t(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=[],v=[];i.forEach(g=>{let C=A.xKeysByGroups[g],b=A.yKeys,x=nZ(C,C.map(B=>b.map(k=>{var P;return((P=A.cells[B][k])==null?void 0:P.normalizedValue)??t.fillNA})),t.distance,t.linkage);e.facets[c].xKeysByGroups[g]=x.keys,v.push(...x.keys),h.push(x)}),e.facets[c].xKeys=v,f.hierarchyX=h.map(g=>T8(g))}if(n){let h=[],v=[];o.forEach(g=>{let C=A.yKeysByGroups[g],b=A.xKeys,x=nZ(C,C.map(B=>b.map(k=>{var P;return((P=A.cells[k][B])==null?void 0:P.normalizedValue)??n.fillNA})),n.distance,n.linkage);e.facets[c].yKeysByGroups[g]=x.keys,v.push(...x.keys),h.push(x)}),e.facets[c].yKeys=v,f.hierarchyY=h.map(g=>T8(g))}s[c]=f}),s}var G7t=15,Uv=8,Gv=30,Y7t=48,W7t=24,_3=16,T3=4,sS=4,FM=20,X7t=16,Wc=16,k3=8,sp={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"]},rZ={fillColor:"white",lineColor:Vt,lineWidth:1,lineShape:"solid",dotSize:3,dotFill:Vt,dotShape:"21"};function K7t(e,t,n,r,a,i,o,s,c,f,A,h,v,g){let C=h.length>1&&(!c||o.includes(t.groupingPosition)),b=!c||o.includes(t.position),x=A.length>1&&(!s||o.includes(e.groupingPosition)),B=!s||o.includes(e.position),k=f.length>1,P=r.filter(te=>o.includes(te.position)||!s&&["left","right"].includes(te.position)||!c&&["top","bottom"].includes(te.position)),I=P.filter(te=>te.position==="left").length,$=P.filter(te=>te.position==="right").length,N=P.filter(te=>te.position==="top").length,F=P.filter(te=>te.position==="bottom").length,Z=e.showTicks?sS:0,ee=t.showTicks?sS:0,le=B&&e.showTitle?Gv:0,Q=b&&t.showTitle?Gv:0,j=B&&e.showAxisLabels&&v>_3?n.xAxisCaptions+Z+T3:0,U=b&&t.showAxisLabels&&g>_3?n.yAxisCaptions+ee+T3:0,Y=x&&e.showGroupLabels?n.xGroupCaptions:0,X=C&&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"?Q:0,groups:t.groupingPosition==="left"?X:0,axis:t.position==="left"?U:0,annotations:I*Wc+(I&&k3)},right:{dendro:!(i!=null&&i.hidden)&&(i==null?void 0:i.position)==="right"?i.size:0,axisTitle:t.position==="right"?Q:0,groups:t.groupingPosition==="right"?X:0,axis:t.position==="right"?U:0,annotations:$*Wc+($&&k3)},top:{facetTitle:k?Y7t:0,dendro:!(a!=null&&a.hidden)&&(a==null?void 0:a.position)==="top"?a.size:0,axisTitle:e.position==="top"?le:0,groups:e.groupingPosition==="top"?Y:0,axis:e.position==="top"?j:0,annotations:N*Wc+(N&&k3)},bottom:{dendro:!(a!=null&&a.hidden)&&(a==null?void 0:a.position)==="bottom"?a.size:0,axisTitle:e.position==="bottom"?le:0,groups:e.groupingPosition==="bottom"?Y:0,axis:e.position==="bottom"?j:0,annotations:F*Wc+(F&&k3)}}}function Z7t(e,t,n){return{left:sp.left.reduce((r,a,i)=>{let o=i>0?sp.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:sp.right.reduce((r,a,i)=>{let o=i>0?sp.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:sp.top.reduce((r,a,i)=>{let o=i>0?sp.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:sp.bottom.reduce((r,a,i)=>{let o=i>0?sp.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 QM(e,t,n){let r=(t-e)/n,a=Zn.range(e,t-r/2,r);return a.push(t),a}function aZ(e,t){let n=QM(0,1,e.length-1),r=Zr().domain(n).range(e),a=QM(0,1,t.length-1).map(i=>r(i));return Qo().domain(t).range(a).unknown("#ccc")}function J7t(e,t,n,r,a,i){let o=QM(0,1,e.length-1),s=Zr().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)),v=f.map(b=>(t+n)/2+A*(b-a)/(i-a)),g=c.map(b=>s(b)),C=f.map(b=>s(b));return Zr().domain(h.concat(v.slice(1))).range(g.concat(C.slice(1)))}var q7t=new hc("bold 14px Arial");function uS(e){let t=0;for(let n of e){let r=q7t.getTextWidth(n);r>t&&(t=r)}return t}function e9t(e,t,n,r){let a=e.filter(f=>f.showTitle&&(t.includes(f.position)||!n&&["left","right"].includes(f.position)||!r&&["top","bottom"].includes(f.position))),i=a.filter(f=>f.titlePosition==="left").map(f=>f.valueColumn.label??f.valueColumn.value),o=a.filter(f=>f.titlePosition==="right").map(f=>f.valueColumn.label??f.valueColumn.value),s=a.filter(f=>f.titlePosition==="top").map(f=>f.valueColumn.label??f.valueColumn.value),c=a.filter(f=>f.titlePosition==="bottom").map(f=>f.valueColumn.label??f.valueColumn.value);return{left:uS(i),right:uS(o),top:uS(s),bottom:uS(c)}}function t9t(e,t,n,r,a){let{facetKeys:i,xGroupKeys:o,yGroupKeys:s,xKeysByGroups:c,yKeysByGroups:f,xLabels:A,yLabels:h}=r.meta,v=e.xGroupLabels/180*Math.PI,g=e.yGroupLabels/180*Math.PI,C=e.xAxisLabels/180*Math.PI,b=e.yAxisLabels/180*Math.PI,x=0,B=0,k=e.xGroupLabels===45,P=e.xAxisLabels===45;if(k||P)if(!t.sharedX)i.forEach(N=>{let F=o.find(U=>r.facets[N].xKeysByGroups[U].length>0);if(!F)return;let Z=r.facets[N].xKeysByGroups[F],ee=n.x[N],le=ee>_3,Q=Z.length*ee/2,j=A[Z[0]];x=Math.max(x,(k?a.getTextWidth(F)*Math.cos(v):0)-Q,(P&&le?a.getTextWidth(j)*Math.cos(C):0)-ee/2)});else{let N=o[0],F=i[0];if(N){let Z=c[N],ee=n.x[F],le=ee>_3,Q=Z.length*ee/2,j=A[Z[0]];x=Math.max(x,(k?a.getTextWidth(N)*Math.cos(v):0)-Q,(P&&le?a.getTextWidth(j)*Math.cos(C):0)-ee/2)}}let I=e.yGroupLabels===45,$=e.yAxisLabels===45;if(I||$)if(!t.sharedY)i.forEach(N=>{let F=Zn.findLast(s,U=>r.facets[N].yKeysByGroups[U].length>0);if(!F)return;let Z=r.facets[N].yKeysByGroups[F],ee=n.y[N],le=ee>_3,Q=Z.length*ee/2,j=h[Z[Z.length-1]];B=Math.max(B,(I?a.getTextWidth(F)*Math.cos(g):0)-Q,($&&le?a.getTextWidth(j)*Math.cos(b):0)-ee/2)});else{let N=s[s.length-1],F=i[0];if(N){let Z=f[N],ee=n.y[F],le=ee>_3,Q=Z.length*ee/2,j=h[Z[Z.length-1]];B=Math.max(B,(I?a.getTextWidth(N)*Math.cos(g):0)-Q,($&&le?a.getTextWidth(j)*Math.cos(b):0)-ee/2)}}return{xCaptionTail:x,yCaptionTail:B}}function iZ(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 n9t(e,t,n,r,a){if(e){let s=Wc/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=Wc/2;return{x:i,y:o,rotate:0,anchor:n==="right"?"start":"end"}}function r9t(e){return e!==null&&!("data"in e)}function cS({facetKey:e,data:t,scales:n,stepX:r,stepY:a,x:i,y:o,annotation:s,showTitle:c,width:f,height:A,colorScale:h,aes:v,frame:g,xGroupKeys:C,yGroupKeys:b,xKeysByGroups:x,yKeysByGroups:B,tooltipsData:k,activeElementContainer:P}){let{position:I,titlePosition:$,valueColumn:N}=s,F=I==="left"||I==="right",Z=(F?n.y:n.x).domain(),ee=n9t(F,I,$,f,A),le=k.fixed&&P;return ie.jsxs("g",{children:[Z.map(Q=>{let j=t==null?void 0:t[Q],U=h.type==="continuous"?h.scale(Number(j)):h.scale(String(j)),Y=i+(F?0:n.x(Q)),X=o+(F?n.y(Q):0),te=F?Wc:r,pe=F?a:Wc,ae=F?null:Q,ge=F?Q:null,me=le&&r9t(k.selectedData)&&k.selectedData.xKey===ae&&k.selectedData.yKey===ge&&e===k.currentFacet,fe=ie.jsx("rect",{x:Y,y:X,width:te,height:pe,fill:U,stroke:v.cellStrokeColor,onMouseOver:()=>k.onMouseOver({x:Y+te,y:X+pe/2,xKey:ae,yKey:ge,value:j,title:N.label??N.value},e),onMouseLeave:()=>k.onMouseLeave()},Q);return me?cu.createPortal(fe,P):fe}),k.fixed&&!F&&C.map(Q=>{let j=x[Q].length;if(j===0)return null;let U=j*r,Y=n.x(x[Q][0]);return ie.jsx("rect",{x:Y+i,y:o,width:U,height:Wc,stroke:"none",fill:"rgba(255, 255, 255, 0.8)"},`${Y}_${o}`)}),k.fixed&&F&&b.map(Q=>{let j=B[Q].length;if(j===0)return null;let U=j*a,Y=n.y(B[Q][0]);return ie.jsx("rect",{x:i,y:Y+o,width:Wc,height:U,stroke:"none",fill:"rgba(255, 255, 255, 0.8)"},`${i}_${Y}`)}),g.type==="groups"&&!F&&C.map(Q=>{let j=x[Q].length;if(j===0)return null;let U=j*r,Y=n.x(x[Q][0]);return ie.jsx("rect",{x:Y+i,y:o,width:U,height:Wc,stroke:Vt,fill:"none"},`${Y}_${o}`)}),g.type==="groups"&&F&&b.map(Q=>{let j=B[Q].length;if(j===0)return null;let U=j*a,Y=n.y(B[Q][0]);return ie.jsx("rect",{x:i,y:Y+o,width:Wc,height:U,stroke:Vt,fill:"none"},`${i}_${Y}`)}),c&&ie.jsx("g",{fontWeight:"500",fontSize:"14px",transform:`translate(${i+ee.x},${o+ee.y}) rotate(${ee.rotate})`,children:ie.jsx("text",{textAnchor:ee.anchor,dominantBaseline:"central",children:N.label??N.value})})]})}function fS(e,t){return e.showTitle&&t.includes(e.titlePosition)}function a9t({facetKey:e,sideElementBBoxes:t,annotations:n,annotationColorScales:r,cellsMeta:a,chartEdgeSides:i,sharedX:o,sharedY:s,width:c,height:f,scales:A,stepX:h,stepY:v,aes:g,frame:C,xGroupKeys:b,yGroupKeys:x,xKeysByGroups:B,yKeysByGroups:k,tooltipsData:P,activeElementContainer:I}){let $=n.filter(U=>i.includes(U.position)||!o&&["left","right"].includes(U.position)||!s&&["top","bottom"].includes(U.position)),N=$.filter(U=>U.position==="left"),F=$.filter(U=>U.position==="right"),Z=$.filter(U=>U.position==="top"),ee=$.filter(U=>U.position==="bottom"),{xDataByKeys:le,yDataByKeys:Q}=a,j={facetKey:e,scales:A,stepX:h,stepY:v,width:c,height:f,aes:g,frame:C,xGroupKeys:b,yGroupKeys:x,xKeysByGroups:B,yKeysByGroups:k,tooltipsData:P,activeElementContainer:I};return ie.jsxs("g",{children:[N.map((U,Y)=>ie.jsx(cS,{annotation:U,colorScale:r[U.id],data:Q[U.valueColumn.value],showTitle:fS(U,i),x:t.left.annotations.x+Y*Wc,y:t.left.annotations.y,...j},U.id)),F.map((U,Y)=>ie.jsx(cS,{annotation:U,colorScale:r[U.id],data:Q[U.valueColumn.value],showTitle:fS(U,i),x:t.right.annotations.x+Y*Wc+k3,y:t.right.annotations.y,...j},U.id)),Z.map((U,Y)=>ie.jsx(cS,{annotation:U,colorScale:r[U.id],data:le[U.valueColumn.value],showTitle:fS(U,i),x:t.top.annotations.x,y:t.top.annotations.y+Y*Wc,...j},U.id)),ee.map((U,Y)=>ie.jsx(cS,{annotation:U,colorScale:r[U.id],data:le[U.valueColumn.value],showTitle:fS(U,i),x:t.bottom.annotations.x,y:t.bottom.annotations.y+Y*Wc+k3,...j},U.id))]})}function i9t({sideElementBBoxes:e,xGroupKeys:t,yGroupKeys:n,xKeysByGroups:r,yKeysByGroups:a,xGroupLabels:i,yGroupLabels:o,scales:s,stepX:c,stepY:f,xAxis:A,yAxis:h,labelAngles:v,debug:g}){let C=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,B=e.left.groups.isVisible?e.left.groups:e.right.groups;return ie.jsxs("g",{children:[C&&ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:t.map(k=>{let P=r[k].length;if(P===0)return null;let I=v.xGroupLabels!==0,$=A.groupingPosition==="top",N=P*c,F=s.x(r[k][0])+N/2,Z=I?$?b.height:0:b.height/2,ee=-v.xGroupLabels,le=I?$?"start":"end":"middle";return ie.jsxs("g",{transform:`translate(${F},${Z})`,children:[ie.jsx("text",{transform:`rotate(${ee})`,dominantBaseline:"central",textAnchor:le,children:i[k]}),g&&ie.jsx("rect",{x:-N/2,width:N,height:b.height,stroke:"black",fill:"none"})]},k)})}),x&&ie.jsx("g",{transform:`translate(${B.x},${B.y})`,children:n.map(k=>{let P=a[k].length;if(P===0)return null;let I=P*f,$=h.groupingPosition==="left",N=$?B.width:0,F=s.y(a[k][0])+I/2,Z=v.yGroupLabels!==0,ee=v.yGroupLabels===45?-45:($?-1:1)*(90-v.yGroupLabels),le=Z?$?"end":"start":"middle";return ie.jsxs("g",{transform:`translate(${N},${F})`,children:[ie.jsx("text",{y:Z?0:-B.width/2,transform:`rotate(${ee})`,dominantBaseline:"central",textAnchor:le,children:o[k]}),g&&ie.jsx("rect",{x:-B.width/2,y:-I/2,width:B.width,height:I,stroke:"black",fill:"none"})]},k)})})]})}function o9t({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 v=i.showTicks?sS:0,g=o.showTicks?sS:0,C=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,B=e.left.axis.isVisible||e.right.axis.isVisible,k=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,P=e.left.axis.isVisible?e.left.axis:e.right.axis;return ie.jsxs("g",{children:[ie.jsxs("g",{children:[b.isVisible&&ie.jsxs("g",{transform:`translate(${b.x},${b.y})`,children:[ie.jsx("text",{x:b.width/2,y:b.height/2,textAnchor:"middle",dominantBaseline:"central",children:i.title}),t&&ie.jsx("rect",{width:b.width,height:b.height,stroke:Vt,fill:"none"})]}),C&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${x.x},${x.y})`,children:[n.map(I=>{let $=f.xAxisLabels!==0,N=i.position==="bottom",F=N?0:x.height,Z=N?F+v:F-v,ee=N?Z+T3:Z-T3,le=a.x(I)+s/2,Q=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:le,y1:F,y2:Z,stroke:Vt}),ie.jsx("text",{x:le,y:ee,textAnchor:$?N?"end":"start":"middle",transform:`rotate(${Q},${le},${ee})`,dominantBaseline:$?"central":N?"hanging":"auto",children:A[I]})]},I)}),t&&ie.jsx("rect",{width:x.width,height:x.height,stroke:Vt,fill:"none"})]})]}),ie.jsxs("g",{children:[k.isVisible&&ie.jsx("g",{transform:`translate(
|
|
15127
15127
|
${k.x+k.width/2},
|
|
15128
|
-
${k.y+k.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:k.x,y:k.y,width:k.width,height:k.height,stroke:Vt,fill:"none"}),B&&ie.jsx("g",{fontSize:"14px",transform:`translate(${P.x},${P.y})`,children:r.map(I=>{let $=f.yAxisLabels!==0,N=o.position==="left",F=-(90-f.yAxisLabels),Z=f.yAxisLabels===0?"middle":N?"end":"start",ee=$?"central":N?"auto":"hanging",le=N?P.width:0,Q=N?le-g:le+g,j=N?Q-T3:Q+T3,U=a.y(I)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:Q,y1:U,y2:U,stroke:Vt}),ie.jsx("text",{x:j,y:U,textAnchor:Z,transform:`rotate(${F},${j},${U})`,dominantBaseline:ee,children:h[I]})]},I)})}),t&&ie.jsx("rect",{x:P.x,y:P.y,height:P.height,width:P.width,stroke:Vt,fill:"none"})]})]})}function l9t({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:v,labelAngles:g,xLabels:C,yLabels:b,xGroupLabels:x,yGroupLabels:B}){return ie.jsxs("g",{fontWeight:"500",children:[ie.jsx(o9t,{sideElementBBoxes:e,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:g,xLabels:C,yLabels:b,debug:t}),ie.jsx(i9t,{sideElementBBoxes:e,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:h,yKeysByGroups:v,xGroupLabels:x,yGroupLabels:B,scales:a,stepX:s,stepY:c,xAxis:i,yAxis:o,labelAngles:g,debug:t})]})}function oZ(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 lZ(e,t,n,r,a){if(!n)return"";let i=n.aes[e];if(!y9(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 sZ={x:0,y:0,width:0,height:0};function s9t({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:sZ,c=o?t[o.position].dendro:sZ;function f(h,v){return lZ(h,v,i,n,a)}function A(h,v){return lZ(h,v,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,v)=>{let g=h.links(),C=h.descendants();return ie.jsxs("g",{children:[g.map(b=>{let x=i.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:oZ(b,i.position),stroke:f("lineColor",x),strokeWidth:f("lineWidth",x),strokeDasharray:Of(f("lineShape",x)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),i.showNodes&&C.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:Yc(f("dotShape",b),f("dotSize",b),f("dotFill",b))},`${b.x},${b.y}`))]},v)})}),ie.jsx("g",{transform:`translate(${c.x},${c.y})`,children:o&&!o.hidden&&e.y.trees.map((h,v)=>{let g=h.links(),C=h.descendants();return ie.jsxs("g",{children:[g.map(b=>{let x=o.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:oZ(b,o.position),stroke:A("lineColor",x),strokeWidth:A("lineWidth",x),strokeDasharray:Of(A("lineShape",x)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),o.showNodes&&C.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:Yc(A("dotShape",b),A("dotSize",b),A("dotFill",b))},`${b.x},${b.y}`))]},v)})})]})}function u9t({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:Vt,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 v=h*c,g=s.x(i[A][0]);return a.map(C=>{let b=o[C].length;if(b===0)return null;let x=b*f,B=s.y(o[C][0]);return ie.jsx("rect",{x:g,y:B,width:v,height:x,stroke:Vt,fill:"none"},`${g}_${B}`)})})]})}function jM(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 c9t(e,t,n=[]){let r=e.data,a=[`X: ${t.xLabels[e.x]}`,`Y: ${t.yLabels[e.y]}`,`Value: ${jM(e.value)}${e.value!==e.normalizedValue?` (${jM(e.normalizedValue)})`:""}`];for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function f9t(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}: ${jM(e.value)}`),n}function d9t(e){return e!==null&&!("data"in e)}function uZ(e){return e!==null&&"data"in e}function A9t({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:v,stepY:g,sharedX:C,sharedY:b,annotations:x,annotationColorScales:B,dendrogramAesScales:k,aes:P,labelAngles:I,chartSizes:$,margins:N,tooltipsContainer:F,tooltipsData:Z}){let[ee,le]=tn.useState(),{xAxis:Q,yAxis:j,tooltips:U}=A,{width:Y,height:X}=n.inner,{padding:te,chartEdgeSides:pe,sideElementBBoxes:ae}=n,{xGroupLabels:ge,yGroupLabels:me,xLabels:fe,yLabels:Ce}=h,De=r.x.domain(),ke=r.y.domain(),$e={left:N.left+n.left+te.left,right:$.totalWidth-(N.left+n.left+te.left),top:N.top+n.top+te.top,bottom:$.totalHeight-(N.top+n.top+te.top)},je=!1,Oe=ee&&Z.fixed;return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:X7t,children:[ie.jsxs("g",{transform:`translate(${te.left},${te.top})`,children:[ie.jsx(a9t,{facetKey:t,sideElementBBoxes:ae,annotations:x,cellsMeta:h,annotationColorScales:B,sharedX:C,sharedY:b,chartEdgeSides:pe,width:Y,height:X,scales:r,stepX:v,stepY:g,aes:P,frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,tooltipsData:Z,activeElementContainer:ee}),ie.jsx(s9t,{dendrograms:e,sideElementBBoxes:ae,xDataByKeys:h.xDataByKeys,yDataByKeys:h.yDataByKeys,aesScales:k}),ae.top.facetTitle.isVisible&&ie.jsx("text",{x:ae.top.facetTitle.x,y:ae.top.facetTitle.y+ae.top.facetTitle.height-W7t,fontWeight:"500",fontSize:"20px",children:h.facetKeyValues[t].join(", ")}),je,De.map(ft=>ke.map(ze=>{var gt;let Xe=(gt=a==null?void 0:a[ft])==null?void 0:gt[ze],tt=Oe&&uZ(Z.selectedData)&&(Xe==null?void 0:Xe.id)===Z.selectedData.id,qe=Xe?ie.jsx("rect",{x:r.x(ft),y:r.y(ze),width:v,height:g,stroke:P.cellStrokeColor,fill:Xe.value===null?P.emptyCellColor:f(Xe.normalizedValue),onMouseOver:()=>Z.onMouseOver(Xe,t),onMouseLeave:()=>Z.onMouseLeave()},Xe?Xe.id:`${ft}_${ze}`):null;return tt?cu.createPortal(qe,ee):qe})),ie.jsx(u9t,{frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,scales:r,stepX:v,stepY:g,width:Y,height:X}),ie.jsx(l9t,{xAxis:Q,yAxis:j,scales:r,stepX:v,stepY:g,debug:je,sideElementBBoxes:ae,xKeys:De,yKeys:ke,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,xGroupLabels:ge,yGroupLabels:me,labelAngles:I,xLabels:fe,yLabels:Ce})]}),A.tooltips.show&&uZ(Z.selectedData)&&Z.currentFacet===t&&ie.jsx(fu,{content:c9t(Z.selectedData,h,U==null?void 0:U.content),x:r.x(String(Z.selectedData.x))+v/2,y:r.y(String(Z.selectedData.y))+g/2,offset:De.length>1?v/2:0,active:!0,sideDistances:$e,fixed:Z.fixed,onClose:Z.onClose,container:F}),A.tooltips.show&&d9t(Z.selectedData)&&Z.currentFacet===t&&ie.jsx(fu,{content:f9t(Z.selectedData,h),x:Z.selectedData.x,y:Z.selectedData.y,offset:0,active:!0,sideDistances:$e,fixed:Z.fixed,onClose:Z.onClose,container:F}),ie.jsxs("g",{transform:`translate(${te.left},${te.top})`,children:[Z.fixed&&ie.jsx("rect",{width:$.chartWidth,height:$.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:ft=>{ft&&!ee&&le(ft)}})]})]})}function h9t({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:v,cellsMeta:g,step:C,annotations:b,annotationColorScales:x,legend:B,aes:k,dendrograms:P,dendrogramAesScales:I,columnsCount:$,labelAngles:N,onTooltipHintSwitch:F}){let[Z,ee]=tn.useState(),le=p3(F),Q=tn.useRef(null);tn.useEffect(()=>{Q.current&&ee(Q.current)},[]);let j=i[o[0]].padding,U=i[o[$-1]].padding,Y=e.left+a.chartsWidth+FM,X=e.top+j.top;return ie.jsx(y3,{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:Nm}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(w3,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:j.left,rightPadding:U.right,chartsWidth:a.chartsWidth}),o.map(te=>{let{cells:pe,xKeysByGroups:ae,yKeysByGroups:ge}=v[te];return ie.jsx(A9t,{dendrograms:P[te],captionsSizes:t,facetKey:te,dimensions:i[te],xGroupKeys:c,yGroupKeys:f,xKeysByGroups:s.sharedX?g.xKeysByGroups:ae,yKeysByGroups:s.sharedY?g.yKeysByGroups:ge,sharedX:s.sharedX,sharedY:s.sharedY,scales:{x:A.x[te],y:A.y[te]},cells:pe,cellsMeta:g,stepX:C.x[te],stepY:C.y[te],colorScale:h,chartSettings:r,aes:k,annotations:b,annotationColorScales:x,dendrogramAesScales:I,labelAngles:N,margins:e,chartSizes:a,tooltipsContainer:Z,tooltipsData:le},te)})]}),ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(b3,{legendData:B})}),ie.jsx("g",{ref:Q,style:{outline:"none"}})]})})}function cZ(e,t,n){function r(a){a[n]=t(a.data.height),a.children&&a.children.forEach(r)}r(e)}function fZ(e,t,n,r=n){function a(i){i[r]=i[n]+t,i.children&&i.children.forEach(a)}a(e)}var p9t=(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 dZ(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])),p9t(t,r)}var v9t=class{constructor(){Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"component",ie.jsx(ie.Fragment,{}));Be(this,"chartsDimensions",{});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Be(this,"margins",{top:Uv,bottom:Uv,left:Uv,right:Uv});Be(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xGroupCaptions:Gv,yGroupCaptions:Gv,xCaptionTail:0,yCaptionTail:0});Be(this,"labelAngles",{xAxisLabels:0,yAxisLabels:0,xGroupLabels:0,yGroupLabels:0});Be(this,"columnsCount",1);Be(this,"rowsCount",1);Be(this,"scales",{x:{null:Qo().domain(["null"]).range([1])},y:{null:Qo().domain(["null"]).range([1])}});Be(this,"step",{x:{},y:{}});Be(this,"colorScale",Zr().domain([0,1]).range(["white","black"]));Be(this,"annotationColorScales",{});Be(this,"dendrogramAesScales",{});Be(this,"legend",{width:0,height:0,items:[]});Be(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=Qh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Uv,bottom:Uv,left:Uv,right:this.legend.width+Uv},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,items:[]};return}let i=this.chartSizes.chartHeight,o=[],s={width:0,height:0,left:0,top:0},c=v=>v.reduce((g,C)=>(g[C]=String(C),g),{});if(e==="continuous"){let v=this.colorScale,g=h3(v,a),C=Zr([g[0],g[g.length-1]],[i,0]),b=r.label??r.value;o.push({...s,type:"continuous",id:"heatmapValue",scale:v,values:g,title:b,tickPositionScale:C})}else if(e==="discrete"){let v=this.colorScale,g=r.label??r.value,C=v.domain(),b=c(C);o.push({...s,type:"discreteColor",id:"heatmapValue",title:g,scale:v,values:C,labels:b})}if(n.forEach(v=>{let g=v.valueColumn.label??v.valueColumn.value;if(v.type==="continuous"){let C=this.annotationColorScales[v.id].scale,b=h3(C,a),x=Zr([b[0],b[b.length-1]],[i,0]);o.push({...s,type:"continuous",id:v.id,tickPositionScale:x,title:g,scale:C,values:b})}if(v.type==="discrete"){let C=this.annotationColorScales[v.id].scale,b=C.domain(),x=c(b);o.push({...s,type:"discreteColor",id:v.id,title:g,scale:C,values:b,labels:x})}}),!o.length){this.legend={width:0,height:0,items:[]};return}let f=S3(o,this.chartSizes.chartHeight),A=f[f.length-1],h=A.left+A.width+FM;this.legend={width:h,height:i,items:f}}updateCaptionsSize(e,t,n,r){let a=new hc("bold 14px Arial"),{xGroupKeys:i,yGroupKeys:o,xGroupLabels:s,yGroupLabels:c,xKeysByGroups:f,yKeysByGroups:A,xLabels:h,yLabels:v}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle,xGroupLabels:t.groupLabelsAngle,yGroupLabels:n.groupLabelsAngle};function g(le,Q){let j=0;for(let U of le){let Y=a.getTextWidth(Q[U]);Y>j&&(j=Y)}return j}let C=Zn.flatten(Object.values(f)),b=Zn.flatten(Object.values(A)),x=g(C,h),B=g(b,v),k=g(i,s),P=g(o,c),{xCaptionTail:I,yCaptionTail:$}=t9t(this.labelAngles,r,this.step,e,a),N=this.labelAngles.xGroupLabels/180*Math.PI,F=this.labelAngles.yGroupLabels/180*Math.PI,Z=this.labelAngles.xAxisLabels/180*Math.PI,ee=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:I,yCaptionTail:$,xGroupCaptions:k*Math.sin(N)||Gv,yGroupCaptions:P*Math.sin(F)||Gv,xAxisCaptions:x*Math.sin(Z)||Gv,yAxisCaptions:B*Math.sin(ee)||Gv}}updateChartDimensions(e,t,n,r,a,i,o,s,c,f){let A=t.length,h=Math.min(a.nRows??A,A),v=Math.min(a.nCols??A,A);this.columnsCount=a.nRows?Math.ceil(A/h):v,this.rowsCount=Math.ceil(A/this.columnsCount);let{width:g,height:C}=e,{sharedX:b,sharedY:x}=a;this.chartsDimensions={};let B=0,k=0;t.forEach(($,N)=>{let F=N%this.columnsCount+1,Z=iZ(N,t.length,this.columnsCount,this.rowsCount),ee=this.step.x[$],le=this.step.y[$],Q=K7t(i,o,this.captionsSizes,s,c,f,Z,b,x,t,n,r,ee,le),j=e9t(s,Z,b,x);function U(ae){return Math.max(sp[ae].reduce((ge,me)=>ge+Q[ae][me],0),j[ae],G7t)}let Y={left:U("left"),right:U("right"),top:U("top"),bottom:U("bottom")};Y.left<this.captionsSizes.xCaptionTail&&(Y.left=this.captionsSizes.xCaptionTail),Y.bottom<this.captionsSizes.yCaptionTail&&(Y.bottom=this.captionsSizes.yCaptionTail);let X=Z7t(Q,g,C),te=g+Y.left+Y.right,pe=C+Y.top+Y.bottom;this.chartsDimensions[$]={left:B,top:k,inner:{width:g,height:C},outer:{width:te,height:pe},padding:Y,sideElementBBoxes:X,chartEdgeSides:Z},B+=te,F===this.columnsCount&&(B=0,k+=pe)});let P=t.slice(0,this.columnsCount).reduce(($,N)=>$+this.chartsDimensions[N].outer.width,0),I=t.filter(($,N)=>N%this.columnsCount===0).reduce(($,N)=>$+this.chartsDimensions[N].outer.height,0);this.chartSizes.chartsWidth=P,this.chartSizes.chartsHeight=I}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:v}=t,{sharedX:g,sharedY:C}=r,b=(B,k={})=>B.sort((P,I)=>i.sorting==="asc"?(k[P]??P).localeCompare(k[I]??I,"en",{numeric:!0}):(k[I]??I).localeCompare(k[P]??P,"en",{numeric:!0})),x=(B,k={})=>B.sort((P,I)=>o.sorting==="asc"?(k[P]??P).localeCompare(k[I]??I,"en",{numeric:!0}):(k[I]??I).localeCompare(k[P]??P,"en",{numeric:!0}));e.forEach(B=>{let k=v[B],P=b(h.xGroupKeys),I=x(h.yGroupKeys),{xKeysByGroups:$}=g?h:k,{yKeysByGroups:N}=C?h:k,F=P.map(ge=>$[ge].length),Z=I.map(ge=>N[ge].length),ee=F.reduce((ge,me)=>ge+me,0),le=Z.reduce((ge,me)=>ge+me,0),Q=(f-(F.filter(ge=>ge>0).length-1)*n)/ee,j=(A-(Z.filter(ge=>ge>0).length-1)*n)/le,U=[],Y=[],X=0;P.forEach(ge=>{let me=s?$[ge]:b($[ge],h.xLabels);Y.push(...me),me.forEach(()=>{U.push(X),X+=Q}),me.length>0&&(X+=n)});let te=[],pe=[],ae=0;I.forEach(ge=>{let me=c?N[ge]:x(N[ge],h.yLabels);pe.push(...me),me.forEach(()=>{te.push(ae),ae+=j}),me.length>0&&(ae+=n)}),this.scales.x[B]=Qo().domain(Y).range(U),this.scales.y[B]=Qo().domain(pe).range(te),this.step.x[B]=Q,this.step.y[B]=j})}updateAesScale(e,t,n,r,a,i,o){if(e==="continuous")n.valueColors?this.colorScale=Zr().domain(n.valuesByColors??dZ(o,n.valueColors.length,t)).range(n.valueColors):n.colorsList&&(this.colorScale=Zr().domain(dZ(o,n.colorsList.length,t)).range(n.colorsList));else if(n.colorsMap){let f=Object.entries(n.colorsMap);this.colorScale=Qo().domain(f.map(A=>A[0])).range(f.map(A=>A[1])).unknown("#ccc")}else n.colorsList&&(this.colorScale=aZ(n.colorsList,i.map(String)));let{xDataByKeys:s,yDataByKeys:c}=a.meta;r.forEach(f=>{let{colors:A,type:h,axis:v,valueColumn:g}=f,C=(v==="x"?s:c)[g.value];if(h==="discrete"){let b=Zn.uniq(Object.values(C).map(String)).sort();this.annotationColorScales[f.id]={type:"discrete",scale:aZ(A,b)}}else{let b=Object.values(C).map(Number);if(!b.length)return;let[x=b[0],B=b[0]]=M0(b);this.annotationColorScales[f.id]={type:"continuous",scale:J7t(A,x,B,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],v=Math.max(...A.map(C=>C.data.height)),g=Math.max(...h.map(C=>C.data.height));i&&(this.dendrograms[s].x.trees=A.map((C,b)=>{let x=t[b],B=c[x];IB().separation(()=>1).size([B.length*this.step.x[s],i.size])(C);let k=C,P=Zr().domain(i.position==="top"?[0,v]:[v,0]).range([i.size,0]);return cZ(k,P,"y"),fZ(k,this.scales.x[s](B[0]),"x"),k}),this.dendrograms[s].x.data=i),o&&(this.dendrograms[s].y.trees=h.map((C,b)=>{let x=n[b],B=f[x];IB().separation(()=>1).size([B.length*this.step.y[s],o.size])(C);let k=C,P=Zr().domain(o.position==="left"?[0,g]:[g,0]).range([o.size,0]);return fZ(k,this.scales.y[s](B[0]),"x","y"),cZ(k,P,"x"),k}),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]=Qo().domain(i).range(i.map(o=>({...rZ,...a[o]}))).unknown(rZ),n},{})}render(e,t,n,r,a,i,o,s,c,f,A,h,v,g){var le;let{meta:C,facets:b}=a,{facetKeys:x,xGroupKeys:B,yGroupKeys:k,valueExtent:P}=C,{xAxis:I,yAxis:$,title:N,size:F,valueType:Z}=t;this.updateChartsSizes(F),this.updateAesScale(Z,P,r,i,a,h,v),this.updateScales(x,a,r.groupGap,n,F,t.xAxis,t.yAxis,s,c),this.updateCaptionsSize(a,I,$,n),this.updateChartDimensions(F,x,B,k,n,I,$,i,s,c),this.updateLegendSize(Z,t.legend,i,o,P),this.updateMargins(N),this.updateDendrogram(x,B,k,b,f,s,c),this.updateDendrogramAesScales(A);let ee=ie.jsx(h9t,{aes:r,annotations:i,annotationColorScales:this.annotationColorScales,captionsSizes:this.captionsSizes,cellsMeta:C,columnsCount:this.columnsCount,chartsDimensions:this.chartsDimensions,chartSettings:t,chartSizes:this.chartSizes,colorScale:this.colorScale,dendrogramAesScales:this.dendrogramAesScales,dendrograms:this.dendrograms,facetKeys:x,facetSettings:n,groupedCells:b,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step,xGroupKeys:B,yGroupKeys:k,onTooltipHintSwitch:g});this.component=ee,(le=this.reactRoot)==null||le.render(ee)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Qv,{message:e}))}},m9t=v9t,UM={lineColor:Vt,dotShape:"21",dotFill:Vt,dotSize:3,lineShape:"solid",lineWidth:1},AZ={size:150,distance:"euclidean",linkage:"average",fillNA:0,showNodes:!0,hidden:!1,edgeInheritance:"up",aes:UM},hZ=class{constructor(e){Be(this,"id");Be(this,"type","heatmap");Be(this,"facetSettings");Be(this,"xColumn");Be(this,"xGroupBy");Be(this,"yColumn");Be(this,"yGroupBy");Be(this,"valueColumn");Be(this,"facetBy");Be(this,"normalization");Be(this,"chartSettings");Be(this,"aes");Be(this,"annotations");Be(this,"dendrogramX");Be(this,"dendrogramY");Be(this,"inheritedDendrogramAes");Be(this,"NAValueAs");var t,n,r,a,i,o,s,c,f,A,h,v,g;if(j3t.parse(e),this.id=Zn.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(C=>C.axis==="x"?{id:Zn.uniqueId("annotation"),axis:"x",valueColumn:C.valueColumn,position:C.position??this.chartSettings.xAxis.position,titlePosition:C.titlePosition??"right",showTitle:C.showTitle??!0,type:C.type,colors:C.colors??["white","black"]}:{id:Zn.uniqueId("annotation"),axis:"y",valueColumn:C.valueColumn,position:C.position??this.chartSettings.yAxis.position,titlePosition:C.titlePosition??"top",showTitle:C.showTitle??!0,type:C.type,colors:C.colors??["white","black"]}),e.valueType==="discrete"&&(e.dendrogramX||e.dendrogramY))throw Error("Dendrogram is not available with discrete cells values");this.dendrogramX=e.dendrogramX?{...AZ,position:"top",...e.dendrogramX,aes:{...UM,...(v=e.dendrogramX)==null?void 0:v.aes}}:null,this.dendrogramY=e.dendrogramY?{...AZ,position:"left",...e.dendrogramY,aes:{...UM,...(g=e.dendrogramY)==null?void 0:g.aes}}:null,this.inheritedDendrogramAes=e.inheritedDendrogramAes??null}},g9t=class extends Lm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new m9t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new hZ(n),r&&(this.onTooltipHintSwitch=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 hZ(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(),b5(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var $,N,F,Z,ee,le,Q,j,U,Y,X,te;let{xColumn:r,yColumn:a,valueColumn:i,xGroupBy:o,yGroupBy:s,facetBy:c,annotations:f,chartSettings:A,facetSettings:h,dendrogramX:v,dendrogramY:g,normalization:C,NAValueAs:b}=n,x=Object.values((($=t.dendrogramX)==null?void 0:$.aes)||{}).filter(y9),B=Object.values((v==null?void 0:v.aes)||{}).filter(y9),k=Object.values(((N=t.dendrogramY)==null?void 0:N.aes)||{}).filter(y9),P=Object.values((g==null?void 0:g.aes)||{}).filter(y9);function I(pe,ae){return pe.length!==ae.length||pe.some((ge,me)=>ge.value!==ae[me].value)}return t.xColumn.value!==r.value||t.yColumn.value!==a.value||t.valueColumn.value!==i.value||I(t.xGroupBy,o)||I(t.yGroupBy,s)||I(t.facetBy,c)||I(t.annotations.map(pe=>pe.valueColumn),f.map(pe=>pe.valueColumn))||I(x,B)||I(k,P)||(n.dendrogramX||t.dendrogramX)&&(((F=t.dendrogramX)==null?void 0:F.distance)!==((Z=n.dendrogramX)==null?void 0:Z.distance)||((ee=t.dendrogramX)==null?void 0:ee.linkage)!==((le=n.dendrogramX)==null?void 0:le.linkage))||(n.dendrogramY||t.dendrogramY)&&(((Q=t.dendrogramY)==null?void 0:Q.distance)!==((j=n.dendrogramY)==null?void 0:j.distance)||((U=t.dendrogramY)==null?void 0:U.linkage)!==((Y=n.dendrogramY)==null?void 0:Y.linkage))||t.chartSettings.valueType!==A.valueType||t.facetSettings.sharedX!==h.sharedX||t.facetSettings.sharedY!==h.sharedY||((X=t.normalization)==null?void 0:X.method)!==(C==null?void 0:C.method)||((te=t.normalization)==null?void 0:te.direction)!==(C==null?void 0:C.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:v,NAValueAs:g}=this.settings,C=z7t(this.data,t,n,r,o,a,i,f,A,h,v,g),b=U7t(C,A,h,c),x=s.valueType==="discrete"?this.data.getColumnCategories(r.value):[];this.calculatedData={groupedCellsData:C,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,this.onTooltipHintSwitch)}},pZ=(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 vZ(e,t,n){return e.map(r=>({count:r.length,y:{straight:r.length,reverse:r.length},rows:r,x:r.x0??0,groupingKey:t,groupingKeyIdx:n,width:(r.x1??0)-(r.x0??0)}))}function y9t(e,t,n,r,a,i){let o=pZ(n,r),s=MI().domain(r).thresholds(o).value(c=>c[t.value])(e);return{bins:vZ(s,a,i),maxCount:Dh(s,c=>c.length)??0}}function w9t(e,t,n,r,a,i){let o=pZ(n,r),s=nv().domain(r).range(r),c=o.map(A=>s.invert(A)),f=MI().domain(r).thresholds(c).value(A=>A[t.value])(e);return{bins:vZ(f,a,i),maxCount:Dh(f,A=>A.length)??0}}function b9t(e,t,n,r,a,i){let o={};return t.forEach(s=>{var b,x;let c=s.join("_");o[c]={groupingKeys:n,histogramByGroupingKey:{},minX:1/0,maxX:-1/0,maxCount:0,maxCountFromGroups:0};let f=e.getRowsByGrouping([...s]),[A,h]=M0(f,B=>B[r.value]);A=A??((b=f[0])==null?void 0:b[r.value])??0,h=h??((x=f[0])==null?void 0:x[r.value])??0;let v=[A,h],g=[...n].reverse();g.forEach((B,k)=>{let P=e.getRowsByGrouping([...s,B]),I=i==="linear"?y9t(P,r,a,v,B,k):w9t(P,r,a,v,B,k);o[c].histogramByGroupingKey[B]=I,o[c].minX=v[0],o[c].maxX=v[1],o[c].maxCountFromGroups=Math.max(o[c].maxCountFromGroups,I.maxCount);let $=k>0?g[k-1]:null,N=$!==null?o[c].histogramByGroupingKey[$]:null;I.bins.forEach((F,Z)=>{F.y.straight=((N==null?void 0:N.bins[Z].y.straight)??0)+F.count,o[c].maxCount=Math.max(o[c].maxCount,F.y.straight)})});let C=n;C.forEach((B,k)=>{let P=k>0?C[k-1]:null,I=o[c].histogramByGroupingKey[B],$=P!==null?o[c].histogramByGroupingKey[P]:null;I.bins.forEach((N,F)=>{N.y.reverse=(($==null?void 0:$.bins[F].y.reverse)??0)+N.count})})}),o}var C9t={TOP:30,BOTTOM:0,LEFT:10,RIGHT:10};function _9(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(c=>t&&c>=0||!t),o=new Set(i);if(!n&&i.length>1){let c=e(i[0]),f=e(i[0]);for(let A=1;A<i.length;A++)f=e(i[A]),Math.abs(f-c)>=20?c=f:o.delete(i[A])}n&&i.length>2&&Math.abs(e(i[1])-e(i[0]))<45&&(i=i.filter((c,f)=>f%2===0));let s=i.some(c=>Math.abs(c)<1e-4&&c!==0||c>1e4)?",e":",f";return{ticks:i,format:c=>o.has(c)?e.tickFormat(a,s)(c):""}}var mZ=(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 S9t(e,t,n){if(n==="linear")return mZ(e,t);if(n==="log"){let r=mZ(e,t),a=nv(t,t),i=r.map(o=>a.invert(o));return i[0]=t[0],i[i.length-1]=t[1],i}return[]}function T9(e,t,n){return(n==="log"?nv():Zr()).domain(S9t(e.length,t,n)).range(e)}function x9t(e){return`translate(${e},0)`}function E9t(e){return`translate(0,${e})`}function B9t(e){return e==="bottom"?`translate(0,${zf})`:`translate(${-zf},0)`}function _9t(e){return e==="bottom"?"hanging":"central"}function T9t(e){return e==="bottom"?"middle":"end"}var gZ=({scale:e,tickSize:t=6,tickPadding:n=zf,orient:r="bottom",onlyPositive:a=!1,hiddenLabels:i=!1,offset:o=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function s(x){return B=>{let k=x(B);return k===void 0?0:+k}}let{ticks:c,format:f}=i?{ticks:[],format:x=>x}:_9(e,a,r==="bottom"),A=Math.max(t,0)+n,h=s(e.copy()),v=r==="bottom"?x9t:E9t,g=r==="left"?-1:1,C={[(r==="left"?"x":"y")+"2"]:g*t},b={[r==="left"?"x":"y"]:g*A};return ie.jsx("g",{children:c.map((x,B)=>ie.jsxs("g",{className:"tick",transform:v(h(x)+o),children:[ie.jsx("line",{stroke:Vt,...C}),ie.jsx("g",{transform:B9t(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:_9t(r),textAnchor:T9t(r),...b,children:f(x)})})]},B))})},k9t=1;function yZ({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=tn.useState(e.ticks()),[A,h]=tn.useState(t.ticks()),{significantLines:v=[]}=a,{significantLines:g=[]}=i;return tn.useEffect(()=>{let C=e.ticks().filter(x=>!v.includes(x)),b=t.ticks().filter(x=>!g.includes(x));f(C),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Nf,children:[a.showGrid&&c.map(C=>{let b=e(C);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`x_${b}_${r}`)}),i.showGrid&&A.map(C=>{let b=t(C);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`y_${b}_${n}`)}),ie.jsx("g",{strokeDasharray:Of(a.significantLinesStyle),stroke:Vt,children:v.map(C=>{let b=e(C);return b<0||b>n?null:ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`significant_${b}_${r}`)})}),ie.jsx("g",{strokeDasharray:Of(i.significantLinesStyle),stroke:Vt,children:g.map(C=>{let b=t(C);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:k9t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?Nf:Vt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?Nf:Vt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}function M9t(e){return typeof e=="string"?e:e.value}function P9t(e,t){let n=[`Amount: ${e.count}`,`(from ${ni(e.x)}, to ${ni(e.x+e.width)})`];return e.groupingKey!=="null"&&n.push(`${t[e.groupingKey]??e.groupingKey}`),n}function wZ(e,t,n,r){return t==="vertical"?e:e+n*r}function bZ(e,t,n,r){return t(n==="vertical"?r==="straight"?e.y.straight:e.y.reverse:e.count)}function H9t({facetKey:e,width:t,height:n,dimensions:r,scales:a,xAxis:i,yAxis:o,frameType:s,histogramData:c,facetSettings:f,captionsSizes:A,facetTitle:h,layers:v,aesColorGetter:g,groupingDirection:C,groupingStack:b,groupingLabels:x,chartSizes:B,margins:k,tooltipsContainer:P,tooltipsData:I}){let[$,N]=tn.useState(),{padding:F}=r,Z=i.showTicks?4:0,ee=o.showTicks?4:0,le=r.chartEdgeSides.includes("left")||!(f!=null&&f.sharedY),Q=r.chartEdgeSides.includes("bottom")||!(f!=null&&f.sharedX),j=r.chartEdgeSides.includes("bottom"),U=c.groupingKeys,Y=c.histogramByGroupingKey[U[0]].bins[0],X=a.x(Y.width)-a.x(0),te=b==="vertical"?X:X/U.length,pe={left:k.left+r.left+F.left,right:B.totalWidth-(k.left+r.left+F.left),top:k.top+r.top+F.top,bottom:B.totalHeight-(k.top+r.top+F.top)},ae=$&&I.fixed,ge=!1;return ie.jsxs("g",{transform:`translate(${r.left+F.left},${r.top+F.top})`,children:[ge,h.length&&ie.jsxs("g",{children:[s==="full"&&ie.jsx("rect",{x:"0",y:-F.top,height:F.top,width:t,fill:"#F7F8FA",stroke:Vt}),h.map((me,fe)=>{let Ce=h.length,De=(F.top-20*Ce)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:t/2,dy:De+20/2-F.top,y:fe*20,textAnchor:"middle",dominantBaseline:"central",children:me},fe)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[j&&i.title&&ie.jsx("text",{x:t/2,y:n+F.bottom-20/2,children:M9t(i.title)}),ge]}),ie.jsx(yZ,{width:t,height:n,scaleX:a.x,scaleY:a.y,axisX:i,axisY:o,frameType:s}),Q&&ie.jsxs("g",{transform:`translate(0,${n})`,children:[ie.jsx(gZ,{scale:a.x,orient:"bottom",tickSize:Z,hiddenLabels:i.hiddenLabels}),ge]}),le&&ie.jsxs("g",{children:[ie.jsx(gZ,{scale:a.y,orient:"left",tickSize:ee,hiddenLabels:o.hiddenLabels}),ge]}),v.map(me=>U.map((fe,Ce)=>c.histogramByGroupingKey[fe].bins.map(De=>{let ke=ae&&I.selectedData===De,$e=ie.jsx("rect",{x:wZ(a.x(De.x),b,Ce,te),y:bZ(De,a.y,b,C),fill:De.rows[0]?g(me.aes.fillColor,De.rows[0],De.count):"",stroke:me.aes.lineColor,width:te,height:a.y(0)-a.y(De.count),opacity:me.aes.opacity??1,onMouseOver:()=>I.onMouseOver(De,e),onMouseLeave:()=>I.onMouseLeave()},De.x);return ke?cu.createPortal($e,$):$e}))),I.fixed&&ie.jsx("rect",{width:B.chartWidth,height:B.chartHeight,fill:"rgba(255,255,255,0.8)"}),ie.jsx("g",{ref:me=>{me&&!$&&N(me)}}),I.selectedData&&I.currentFacet===e&&ie.jsx(fu,{content:P9t(I.selectedData,x),x:wZ(a.x(I.selectedData.x),b,I.selectedData.groupingKeyIdx,te)+te,y:bZ(I.selectedData,a.y,b,C)+a.y(0)-a.y(I.selectedData.count/2),offset:0,active:!0,fixed:I.fixed,sideDistances:pe,container:P,onClose:I.onClose})]})}function D9t({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:v,layers:g,aesColorGetter:C,groupingDirection:b,groupingStack:x,groupingLabels:B,legend:k,onTooltipHintSwitch:P}){let I=p3(P),{xAxis:$,yAxis:N,title:F,frame:Z}=t,ee=r[i[0]].padding,le=r[i[a-1]].padding,[Q,j]=tn.useState(),U=tn.useRef(null);tn.useEffect(()=>{U.current&&j(U.current)},[]);let Y=c.left+n.chartsWidth+FM,X=c.top+ee.top;return ie.jsx(y3,{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:Nm}),ie.jsxs("g",{transform:`translate(${c.left},${c.top})`,fontFamily:"Manrope",children:[ie.jsx(w3,{title:f,show:F.show,position:F.position,leftPadding:ee.left,rightPadding:le.right,chartsWidth:n.chartsWidth}),i.map(te=>ie.jsx(H9t,{facetKey:te,scales:{x:s.x[te],y:s.y[te]},width:n.chartWidth,height:n.chartHeight,dimensions:r[te],margins:c,chartSizes:n,facetSettings:o,xAxis:$,yAxis:N,frameType:Z.type,facetTitle:A[te],captionsSizes:h,histogramData:v[te],layers:g,aesColorGetter:C,groupingDirection:b,groupingStack:x,groupingLabels:B,tooltipsContainer:Q,tooltipsData:I},te))]}),ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(b3,{legendData:k})}),ie.jsx("g",{ref:U,style:{outline:"none"}})]})})}function $9t(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 I9t(e,t,n,r,a,i,o,s){let c=i.includes("left")||!(s!=null&&s.sharedY),f=i.includes("bottom")||!(s!=null&&s.sharedX),A=i.includes("bottom")&&e.title!=="",h=n.yAxisCaptionsWidth,v=(t.showTicks?4:0)+(t.hiddenLabels?0:6),g=n.xAxisCaptionsWidth,C=(e.showTicks?4:0)+(e.hiddenLabels?0:6),b=A?20:0,x=h+v,B=C+g+b,k=Math.max(...r.map(P=>a[P].length));return{left:c?x:12,top:k===0?0:6*2+k*20,bottom:f?B:12,right:o?0:12}}function L9t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function R9t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function CZ(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function V9t(e){return typeof e=="object"&&e!==null&&"range"in e}function N9t(e,t,n){return function(r,a,i){var o,s;if(V9t(r)){let{domain:c=n,range:f,type:A="linear"}=r,h=T9(f,c,A);return h.clamp(!0),h(i)}if(CZ(r)){let c=r.value;return(s=((o=e[c])==null?void 0:o[String(a[c])])??EM)==null?void 0:s[t]}return r}}var z9t=class{constructor(){Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"component",ie.jsx(ie.Fragment,{}));Be(this,"margins",{top:24,bottom:24,left:24,right:24});Be(this,"chartsDimensions",{});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Be(this,"columnsCount",1);Be(this,"rowsCount",1);Be(this,"scales",{x:{null:Zr().domain([0,10]).range([0,600])},y:{null:Zr().domain([0,10]).range([350,0])}});Be(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Be(this,"facetTitles",{});Be(this,"mainTitle",[]);Be(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=Qh(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,v)=>{let[g,C]=R9t(v,this.columnsCount),b=$9t(v,e.length,this.columnsCount,this.rowsCount),x=I9t(n,r,this.captionsSizes,L9t(e,this.rowsCount,this.columnsCount)[g],this.facetTitles,b,C===this.columnsCount-1,t),B=a+x.left+x.right,k=i+x.top+x.bottom;return A[h]={left:o,top:s,chartEdgeSides:b,padding:x,inner:{width:a,height:i},outer:{width:B,height:k}},o+=B,C===this.columnsCount-1&&(o=0,s+=k),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,o){let s=e.length,c=Math.min(t.nRows??s,s),f=Math.min(t.nCols??s,s);this.columnsCount=t.nRows?Math.ceil(s/c):f,this.rowsCount=Math.ceil(s/this.columnsCount);let[A,h]=[1/0,-1/0],v=-1/0,g=e.reduce((C,b)=>{let x=a[b],{minX:B,maxX:k,maxCount:P,maxCountFromGroups:I}=x;return A=Math.min(A,B),h=Math.max(h,k),v=Math.max(v,o==="vertical"?P:I),C[b]={minX:B,maxX:k,maxY:o==="vertical"?P:I},C},{});e.forEach(C=>{let b=n.scale==="log"?nv():Zr(),x=g[C],B=t.sharedX?A:x.minX,k=t.sharedX?h:x.maxX;b.domain([B,k]).range([0,this.chartSizes.chartWidth]),this.scales.x[C]=b}),e.forEach(C=>{let b=r.scale==="log"?nv():Zr(),x=g[C],B=0,k=t.sharedY?v:x.maxY,P=[this.chartSizes.chartHeight,0],I=b.copy().domain([B,k]).range([this.chartSizes.chartHeight,i.innerOffset]);b.domain([I.invert(this.chartSizes.chartHeight),I.invert(0)]).range(P),this.scales.y[C]=b})}updateCaptionsSize(e,t){let n=new hc("600 14px Arial"),r=0;function a(i){return Math.max(...i.map(o=>n.getTextWidth(o)))}t.hiddenLabels||Object.values(this.scales.y).forEach(i=>{let{ticks:o,format:s}=_9(i,!1);r=Math.max(r,a(o.map(s)))}),this.captionsSizes={xAxisCaptionsWidth:e.hiddenLabels?0:20,yAxisCaptionsWidth:r}}createMainTitle(e,t){let n=this.chartsDimensions[e[0]],r=this.chartsDimensions[e[e.length-1]];this.mainTitle=jv(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]=jv(t[a].join(", "),this.chartSizes.chartWidth,14),n),{})}updateLegendSize(e,t,n,r){if(!e.show){this.legend={width:0,height:0,items:[]};return}let a=[],i={width:0,height:0,left:0,top:0};if(r.forEach(A=>{if(CZ(A.aes.fillColor)&&n){let h=A.aes.fillColor.value,v=t[n.value],g=n.label??n.value,C=Qo().domain(v.values).range(v.values.map(b=>v.aesMap[b].fillColor));a.push({...i,id:h,type:"discreteColor",title:g,scale:C,values:v.values,labels:v.labels})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=S3(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+WC,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}updateMargins(e){let t=24*this.mainTitle.length,n=t>0?t+24*2:0,r=e.outerOffset;this.margins={top:Math.max(n,r),bottom:r,left:r,right:this.legend.width+r},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,c,f,A,h,v){var I;let{xAxis:g,yAxis:C,size:b,title:x}=t;this.updateChartSizes(b),this.updateViewport(r,n,g,C,i,b,A),this.updateCaptionsSize(g,C),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,g,C),this.createMainTitle(r,x),this.updateLegendSize(t.legend,o,f,s),this.updateMargins(b);let B=r.reduce(($,N)=>Math.min($,i[N].minX),1/0),k=r.reduce(($,N)=>Math.max($,i[N].maxX),-1/0),P=ie.jsx(D9t,{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:s,aesColorGetter:N9t(c,"fillColor",[B,k]),groupingDirection:h,groupingStack:A,groupingLabels:f?o[f.value].labels:{},legend:this.legend,onTooltipHintSwitch:v});this.component=P,(I=this.reactRoot)==null||I.render(P)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Qv,{message:e}))}},O9t=z9t,F9t=10,Q9t=class{constructor(e){Be(this,"type","bins");Be(this,"aes",{fillColor:"white",lineColor:Vt,opacity:1});this.aes={...this.aes,...e.aes}}},j9t=class{constructor(e){Be(this,"type","binsLine");Be(this,"aes",{opacity:1});this.aes={...this.aes,...e.aes}}},SZ=class{constructor(e){Be(this,"id");Be(this,"type","histogram");Be(this,"valueColumn");Be(this,"binsCount");Be(this,"facetSettings");Be(this,"facetBy");Be(this,"grouping");Be(this,"groupingStack");Be(this,"groupingDirection");Be(this,"groupingOrder");Be(this,"chartSettings");Be(this,"inheritedAes");Be(this,"layers");var t,n,r,a,i,o,s,c,f,A,h;J3t.parse(e),this.id=Zn.uniqueId("settings"),this.facetSettings={sharedX:!0,sharedY:!0,titlePosition:"left",...e.facetSettings},this.valueColumn=e.valueColumn,this.binsCount=e.binsCount??F9t,this.facetBy=e.facetBy??[],this.grouping=e.grouping??null,this.groupingStack=e.groupingStack??"vertical",this.groupingDirection=e.groupingDirection??"straight",this.groupingOrder=e.groupingOrder??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),outerOffset:((r=e==null?void 0:e.size)==null?void 0:r.outerOffset)??24,innerOffset:((a=e==null?void 0:e.size)==null?void 0:a.innerOffset)??C9t.TOP},title:{position:"center",show:!0,...e.title,name:((i=e.title)==null?void 0:i.name)??"Chart"},yAxis:{showGrid:!0,showTicks:!0,scale:((o=e.xAxis)==null?void 0:o.scale)??"linear",hiddenLabels:!1,...e.yAxis},xAxis:{title:e.valueColumn.label??e.valueColumn.value??"",scale:((s=e.xAxis)==null?void 0:s.scale)??"linear",showGrid:((c=e.xAxis)==null?void 0:c.showGrid)??!0,showTicks:((f=e.xAxis)==null?void 0:f.showTicks)??!0,hiddenLabels:((A=e.xAxis)==null?void 0:A.hiddenLabels)??!1,...e.xAxis},frame:{type:((h=e.frame)==null?void 0:h.type)??"full"},legend:{show:!0,position:"right",...e.legend}},this.inheritedAes=e.inheritedAes??{},this.layers=e.layers.map(v=>{if(v.type==="bins")return new Q9t(v);if(v.type==="binsLine")return new j9t(v);f1(v,"Unknown layer type")}).filter(Boolean)}};function xZ(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 U9t(e,t,n){return t.reduce((r,a)=>{let i=Zn.uniqBy(e.rows,f=>f[a.value]),o=f=>String(f[a.value]),s=f=>a.valueLabels?String(f[a.valueLabels]):o(f),c=i.reduce((f,A)=>(f[o(A)]=s(A),f),{});return r[a.value]={values:i.map(o).filter(f=>f!=="null").sort((f,A)=>c[f].localeCompare(c[A],"en",{numeric:!0})),aesMap:n[a.value],labels:c},r},{})}var G9t=class extends Lm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new O9t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new SZ(n),r&&(this.onTooltipHintSwitch=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 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 histogram")}export(){return this._updateChart(),b5(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,o;return t.valueColumn.value!==n.valueColumn.value||t.facetBy.some((s,c)=>{var f;return s.value!==((f=n.facetBy[c])==null?void 0:f.value)})||((r=t.grouping)==null?void 0:r.value)!==((a=n.grouping)==null?void 0:a.value)||t.layers.length!==n.layers.length||t.layers.some((s,c)=>s.type!==n.layers[c].type)||t.binsCount!==n.binsCount||t.chartSettings.xAxis.scale!==n.chartSettings.xAxis.scale||((i=t.groupingOrder)==null?void 0:i.some((s,c)=>{var f;return s!==((f=n.groupingOrder)==null?void 0:f[c])}))||((o=n.groupingOrder)==null?void 0:o.some((s,c)=>{var f;return s!==((f=t.groupingOrder)==null?void 0:f[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{valueColumn:t,facetBy:n,grouping:r,binsCount:a,chartSettings:i,inheritedAes:o,groupingOrder:s}=this.settings,c=n.map(C=>this.data.getColumnCategories(C.value)),f=c.length?xZ([...c]):[["null"]],A=n.map(C=>C.value)??null,h=r?[r.value]:[],v=r?this.data.getColumnCategories(r.value):["null"];s&&(v=Zn.intersection(s,v)),this.data.setGrouping([...A,...h]);let g=b9t(this.data,f,v,t,a,i.xAxis.scale);this.calculatedData={facetKeys:f.map(C=>C.join(", ")),facetKeysCombinations:f,histogramDataByFacets:g,legendInfo:U9t(this.data,r?[r]:[],o)}}_updateAesInData(){this.calculatedData}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,facetSettings:r,inheritedAes:a,layers:i,grouping:o,groupingDirection:s,groupingStack:c}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.facetKeys,this.calculatedData.facetKeysCombinations,this.calculatedData.histogramDataByFacets,this.calculatedData.legendInfo,i,a,o,c,s,this.onTooltipHintSwitch)}};function Y9t(e,t,n,r,a,i,o){let s={};return t.forEach(c=>{let f=[],A=1/0,h=1/0,v=-1/0,g=-1/0;o.forEach(C=>{e.getRowsByGrouping([...c,C]).forEach(b=>{let x=b[n.value],B=b[r.value];A=Math.min(A,x),h=Math.min(h,B),v=Math.max(v,x),g=Math.max(g,B),x!==null&&B!==null&&f.push({id:`${Object.values(b)}`,x,y:B,label:a?b[a.valueLabels??a.value]:null,dimmed:i?!b[i.value]:!1,data:b})})}),f.sort((C,b)=>C.x-b.x),s[c.join("_")]={minX:A,maxX:v,minY:h,maxY:g,dots:f}}),s}function W9t(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(v=>a.every((g,C)=>v.data[g.value]===f[C])),h=a.reduce((v,g,C)=>(v[g.value]=f[C],v),{});return{dots:A,data:h}})};if(c.type==="dots")return{type:"dots",info:c,geoms:s};f1(c,"Unknown scatterplot layer type")}),i},{})}function GM(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 EZ(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 X9t(e,t){return GM(e)-t}function K9t(e,t){return EZ(e)-t}function BZ(e){let t=GM(e),n=t+e.width,r=EZ(e),a=r+e.height;return{minX:t,maxX:n,minY:r,maxY:a}}function _Z(e,t,n){let r=X9t(e,n),a=GM(e)+e.width+n,i=K9t(e,t),o=i+e.height+2*t;return{minX:r,maxX:a,minY:i,maxY:o}}function Z9t(e,t,n){return e.minX>=0&&e.maxX<=t&&e.minY>=0&&e.maxY<=n}var dS=2;function J9t(e,t=dS,n=dS){e.forEach(r=>{r.bbox=BZ(r),r.outerBBox=_Z(r,t,n)})}function AS(e,t,n,r=dS,a=dS){let i=[],o=new bdt,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=BZ(h),h.outerBBox=_Z(h,r,a),Z9t(h.outerBBox,t,n)&&!o.collides(h.outerBBox)){i.push(h),o.insert(h.outerBBox);break}}return i}function q9t(e){return`translate(${e},0)`}function e6t(e){return`translate(0,${e})`}function t6t(e){return e==="bottom"?`translate(0,${zf})`:`translate(${-zf},0)`}function n6t(e){return e==="bottom"?"hanging":"central"}function r6t(e){return e==="bottom"?"middle":"end"}var hS=({scale:e,tickSize:t=6,tickPadding:n=zf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function o(b){return x=>{let B=b(x);return B===void 0?0:+B}}let{ticks:s,format:c}=_9(e,a,r==="bottom"),f=Math.max(t,0)+n,A=o(e.copy()),h=r==="bottom"?q9t:e6t,v=r==="left"?-1:1,g={[(r==="left"?"x":"y")+"2"]:v*t},C={[r==="left"?"x":"y"]:v*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:Vt,...g}),ie.jsx("g",{transform:t6t(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:n6t(r),textAnchor:r6t(r),...C,children:c(b)})})]},x))})},a6t=1;function i6t({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=tn.useState(e.ticks()),[A,h]=tn.useState(t.ticks()),{significantLines:v=[]}=a,{significantLines:g=[]}=i;return tn.useEffect(()=>{let C=e.ticks().filter(x=>!v.includes(x)),b=t.ticks().filter(x=>!g.includes(x));f(C),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Nf,children:[a.showGrid&&c.map(C=>{let b=e(C);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`x_${b}_${r}`)}),i.showGrid&&A.map(C=>{let b=t(C);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`y_${b}_${n}`)}),ie.jsx("g",{strokeDasharray:Of(a.significantLinesStyle),stroke:Vt,children:v.map(C=>{let b=e(C);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`significant_${b}_${r}`)})}),ie.jsx("g",{strokeDasharray:Of(i.significantLinesStyle),stroke:Vt,children:g.map(C=>{let b=t(C);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`significant_${b}_${n}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:a6t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?Nf:Vt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?Nf:Vt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}var o6t=new hc("16px Manrope");function TZ(e,t){return typeof e=="string"?e:t.length?t[0].data[e.value]:""}function l6t(e,t,n=[]){let r=e.data,a=[`x: ${ni(e.x)}`,`y: ${ni(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 s6t(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:` = ${ni(e.r2)}`})]})}function u6t(e){return typeof e.pValue>"u"?null:ie.jsx("tspan",{children:`p-value = ${ni(e.pValue)}`})}function c6t(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 = ${ni(t)} ± ${ni(n)}, intercept = ${ni(r)} ± ${ni(a)}`})})}function f6t(e){let t=[s6t(e),u6t(e),c6t(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 YM=3;function kZ(e,t,n,r){if(!r)return[];let a=[];for(let i of e){let o=i.label;if(!o)continue;let s=o6t.getTextMetrics(String(o));a.push({name:String(o),width:(s==null?void 0:s.width)??0,height:((s==null?void 0:s.actualBoundingBoxAscent)??0)+((s==null?void 0:s.actualBoundingBoxDescent)??0),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)+YM})}return a}function d6t({facetKey:e,width:t,height:n,dimensions:r,scales:a,xAxis:i,yAxis:o,frameType:s,dotsData:c,facetSettings:f,trendsData:A,keyColumn:h,margins:v,chartSizes:g,tooltips:C,tooltipsContainer:b,captionsSizes:x,facetTitle:B,onlyPositive:k,layersData:P,aesGetters:I,tooltipsData:$}){let[N,F]=tn.useState(),{padding:Z}=r,{dots:ee}=c,le=i.showTicks?f3:0,Q=o.showTicks?f3:0,j=TZ(i.title,ee),U=TZ(o.title,ee),Y=r.chartEdgeSides.includes("left")||!(f!=null&&f.sharedY),X=r.chartEdgeSides.includes("bottom")||!(f!=null&&f.sharedX),te=r.chartEdgeSides.includes("left"),pe=r.chartEdgeSides.includes("bottom"),ae={left:v.left+r.left+Z.left,right:g.totalWidth-(v.left+r.left+Z.left),top:v.top+r.top+Z.top,bottom:g.totalHeight-(v.top+r.top+Z.top)},ge=!1,[me,fe]=tn.useState(()=>kZ(ee,a,I,P.find(Oe=>Oe.type==="dots"))),[Ce,De]=tn.useState(()=>AS(me,t,n,YM,YM)),[ke,$e]=tn.useState(null);tn.useEffect(()=>{fe(kZ(ee,a,I,P.find(Oe=>Oe.type==="dots")))},[ee,a,I,P]),tn.useEffect(()=>{let Oe=AS(me,t,n);De(Oe)},[me,t,n]);let je=N&&$.fixed;return ie.jsxs("g",{transform:`translate(${r.left+Z.left},${r.top+Z.top})`,children:[ge,B.length&&ie.jsxs("g",{children:[s==="full"&&ie.jsx("rect",{x:"0",y:-Z.top,height:Z.top,width:t,fill:"#F7F8FA",stroke:Vt}),B.map((Oe,ft)=>{let ze=B.length,Xe=(Z.top-BM*ze)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:t/2,dy:Xe+BM/2-Z.top,y:ft*BM,textAnchor:"middle",dominantBaseline:"central",children:Oe},ft)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[pe&&ie.jsx("text",{x:t/2,y:n+Z.bottom-Ov-m9/2,children:j}),ge,te&&ie.jsx("text",{x:-Z.left+Ov+m9/2,y:n/2,transform:`rotate(-90,${-Z.left+Ov+m9/2},${n/2})`,children:U}),ge]}),ie.jsx(i6t,{width:t,height:n,scaleX:a.x,scaleY:a.y,axisX:i,axisY:o,frameType:s}),X&&ie.jsxs("g",{transform:`translate(0,${n})`,children:[ie.jsx(hS,{scale:a.x,orient:"bottom",onlyPositive:k.x,tickSize:le}),ge]}),Y&&ie.jsxs("g",{children:[ie.jsx(hS,{scale:a.y,orient:"left",onlyPositive:k.y,tickSize:Q}),ge]}),A&&A.map(({predict:Oe,getArea:ft,color:ze,data:Xe,bounded:tt,xBounds:qe,stats:gt},wt)=>{let[Xt,rr]=tt?qe:a.x.domain(),sr=(rr-Xt)/15,ra=Oe(Xt),vi=Oe(rr);if(isNaN(ra)||isNaN(vi))return null;let ea=I.dotColor(ze,Xe);return ie.jsxs("g",{children:[ie.jsx("text",{y:wt*20+20,fill:ea,x:t-8,textAnchor:"end",children:f6t(gt)}),ie.jsx("path",{d:ft(a.x,a.y,Zn.range(Xt,rr+sr/2,sr)),fill:ea,opacity:.2}),ie.jsx("line",{x1:a.x(Xt),x2:a.x(rr),y1:a.y(ra),y2:a.y(vi),stroke:ea})]},wt)}),P.map((Oe,ft)=>{if(Oe.type==="dots")return ie.jsxs("g",{children:[ee.map(ze=>{let Xe=je&&$.selectedData===ze,tt=ie.jsx("g",{transform:`translate(${a.x(ze.x)},${a.y(ze.y)})`,opacity:ze.dimmed?.3:1,onMouseOver:()=>$.onMouseOver(ze,e),onMouseLeave:()=>$.onMouseLeave(),children:Yc(I.dotShape(Oe.info.aes.dotShape,ze.data),I.dotSize(Oe.info.aes.dotSize,ze.data),I.dotColor(Oe.info.aes.dotFill,ze.data))},ze.id);return Xe?cu.createPortal(tt,N):tt}),Ce.map(ze=>{let{name:Xe,height:tt,bbox:qe,width:gt}=ze;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${qe.minX},${qe.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:gt,height:tt,fill:"transparent",stroke:"none",onMouseOver:()=>$e(ze.dot),onMouseLeave:()=>$e(null)}),ie.jsx("text",{x:0,y:tt/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:Xe})]})},ze.dot.id)}),ke&&ie.jsxs("g",{transform:`translate(${a.x(ke.x)},${a.y(ke.y)})`,children:[Yc(I.dotShape(Oe.info.aes.dotShape,ke.data),I.dotSize(Oe.info.aes.dotSize,ke.data)+1,"white","white"),Yc(I.dotShape(Oe.info.aes.dotShape,ke.data),I.dotSize(Oe.info.aes.dotSize,ke.data),I.dotColor(Oe.info.aes.dotFill,ke.data))]},"activeDot")]},ft);if(Oe.type==="curve"&&!Oe.info.smoothing)return Oe.geoms.map((ze,Xe)=>ie.jsx("g",{children:ie.jsx("polyline",{points:ze.dots.map(tt=>`${a.x(tt.x)},${a.y(tt.y)}`).join(" "),fill:"none",stroke:I.lineColor(Oe.info.aes.lineColor,ze.data),strokeWidth:Oe.info.aes.lineWidth,strokeDasharray:Of(Oe.info.aes.lineShape)})},Xe));if(Oe.type==="curve"&&Oe.info.smoothing)return Oe.geoms.map((ze,Xe)=>ie.jsx("g",{children:ie.jsx("path",{d:C5().curve(S5).x(tt=>a.x(tt.x)).y(tt=>a.y(tt.y))(ze.dots)??"",fill:"none",stroke:I.lineColor(Oe.info.aes.lineColor,ze.data),strokeWidth:Oe.info.aes.lineWidth,strokeDasharray:Of(Oe.info.aes.lineShape)})},Xe))}),C.show&&$.selectedData&&$.currentFacet===e&&ie.jsx(fu,{content:l6t($.selectedData,h,C==null?void 0:C.content),x:a.x($.selectedData.x),y:a.y($.selectedData.y),active:!0,sideDistances:ae,fixed:$.fixed,onClose:$.onClose,container:b}),ie.jsxs("g",{children:[$.fixed&&ie.jsx("rect",{width:g.chartWidth,height:g.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:Oe=>{Oe&&!N&&F(Oe)}})]})]})}function A6t({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:v,mainTitle:g,facetTitles:C,captionsSizes:b,onlyPositive:x,layersData:B,aesGetters:k,onTooltipHintSwitch:P}){let I=p3(P),[$,N]=tn.useState(),F=tn.useRef(null);tn.useEffect(()=>{F.current&&N(F.current)},[]);let{xAxis:Z,yAxis:ee,title:le,frame:Q,legend:j,tooltips:U}=t,Y=r[a[0]].padding,X=r[a[A-1]].padding,te=n.chartsWidth+WC,pe=Y.top;return ie.jsx(y3,{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:Nm}),ie.jsxs("g",{transform:`translate(${h.left},${h.top})`,fontFamily:"Manrope",children:[ie.jsx(w3,{title:g,show:le.show,position:le.position,leftPadding:Y.left,rightPadding:X.right,chartsWidth:n.chartsWidth}),a.map(ae=>ie.jsx(d6t,{facetKey:ae,scales:{x:o.x[ae],y:o.y[ae]},width:n.chartWidth,height:n.chartHeight,dimensions:r[ae],margins:h,chartSizes:n,facetSettings:i,xAxis:Z,yAxis:ee,frameType:Q.type,dotsData:s[ae],trendsData:f?f[ae]:null,tooltips:U,tooltipsContainer:$,keyColumn:v,facetTitle:C[ae],captionsSizes:b,layersData:B[ae],onlyPositive:x,aesGetters:k,tooltipsData:I},ae)),j.show&&ie.jsx("g",{transform:`translate(${te},${pe})`,children:ie.jsx(b3,{legendData:c})})]}),ie.jsx("g",{ref:F,style:{outline:"none"}})]})})}function h6t(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 p6t(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*_M,v=(t.showTicks?f3:0)+_M,g=c?m9+Ov:0,C=n.xAxisCaptionsWidth+2*_M,b=e.showTicks?f3:0,x=A?m9+Ov:0,B=h+v+g+YX,k=C+b+x+YX,P=Math.max(...r.map(I=>a[I].length));return{left:s?B:Ov,top:P===0?0:r3t*2+P*S9,bottom:f?k+8:Ov,right:Ov}}function v6t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function m6t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function g6t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function M3(e,t){return function(n,r){var a,i;if(th(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=rv().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}if(th(n)&&(t==="dotFill"||t==="lineColor")){let{domain:o,range:s,type:c="linear"}=n,f=T9(s,o,c),A=r[n.columnName.value];return A===null?zv.color:f(Number(A))}if(g6t(n)){let o=n.value;return(i=((a=e[o])==null?void 0:a[String(r[o])])??EM)==null?void 0:i[t]}return n}}function y6t(e){return{dotShape:M3(e,"dotShape"),dotColor:M3(e,"dotFill"),dotSize:M3(e,"dotSize"),lineShape:M3(e,"lineShape"),lineColor:M3(e,"lineColor"),trendColor:M3(e,"dotFill")}}var w6t=class{constructor(){Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"component",ie.jsx(ie.Fragment,{}));Be(this,"margins",{top:Gc,bottom:Gc,left:Gc,right:Gc});Be(this,"chartsDimensions",{});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Be(this,"columnsCount",1);Be(this,"rowsCount",1);Be(this,"scales",{x:{null:Zr().domain([0,10]).range([0,600])},y:{null:Zr().domain([0,10]).range([350,0])}});Be(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Be(this,"facetTitles",{});Be(this,"mainTitle",[]);Be(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=Qh(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,v)=>{let[g,C]=m6t(v,this.columnsCount),b=h6t(v,e.length,this.columnsCount,this.rowsCount),x=p6t(n,r,this.captionsSizes,v6t(e,this.rowsCount,this.columnsCount)[g],this.facetTitles,b,t),B=a+x.left+x.right,k=i+x.top+x.bottom;return A[h]={left:o,top:s,chartEdgeSides:b,padding:x,inner:{width:a,height:i},outer:{width:B,height:k}},o+=B,C===this.columnsCount-1&&(o=0,s+=k),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,v]=[1/0,-1/0],g=e.reduce((b,x)=>{let B=a[x],{minX:k,minY:P,maxX:I,maxY:$}=B;return f=Math.min(f,k),h=Math.min(h,P),A=Math.max(A,I),v=Math.max(v,$),b[x]={minX:k,maxX:I,minY:P,maxY:$},b},{});e.forEach(b=>{let x=n.scale==="log"?j2():Zr(),B=g[b],k=n.lowerValue?Number(n.lowerValue):t.sharedX?f:B.minX,P=n.upperValue?Number(n.upperValue):t.sharedX?A:B.maxX;if(typeof n.symmetricRange<"u"){let N=n.symmetricRange;if(N>=k&&N<=P){let F=Math.max(N-k,P-N);k=N-F,P=N+F}}let I=[0,this.chartSizes.chartWidth],$=x.copy().domain([k,P]).range([YC.LEFT,this.chartSizes.chartWidth-YC.RIGHT]);x.domain([$.invert(0),$.invert(this.chartSizes.chartWidth)]).range(I).nice(),this.scales.x[b]=x});let C=e.reduce((b,x)=>{let B=i?i[x]:[];return b[x]=B.reduce((k,P)=>{let I=P.bounded?P.xBounds:this.scales.x[x].domain(),$=P.getInterval(I[0]),N=P.getInterval(I[1]);return k.minY=Math.min(k.minY,isNaN($.left)?k.minY:$.left,isNaN(N.left)?k.minY:N.left),k.maxY=Math.max(k.maxY,isNaN($.right)?k.maxY:$.right,isNaN(N.right)?k.maxY:N.right),k},{minY:1/0,maxY:-1/0}),h=Math.min(h,b[x].minY),v=Math.max(v,b[x].maxY),b},{});e.forEach(b=>{let x=r.scale==="log"?j2():Zr(),B=g[b],k=C[b],P=r.lowerValue?Number(r.lowerValue):t.sharedY?h:Math.min(B.minY,k.minY),I=r.upperValue?Number(r.upperValue):t.sharedY?v:Math.max(B.maxY,k.maxY);if(typeof r.symmetricRange<"u"){let F=r.symmetricRange;if(F>=P&&F<=I){let Z=Math.max(F-P,I-F);P=F-Z,I=F+Z}}let $=[this.chartSizes.chartHeight,0],N=x.copy().domain([P,I]).range([this.chartSizes.chartHeight-YC.BOTTOM,YC.TOP]);x.domain([N.invert(this.chartSizes.chartHeight),N.invert(0)]).range($).nice(),this.scales.y[b]=x})}updateCaptionsSize(e){let t=new hc("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}=_9(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=jv(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]=jv(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,Gc),bottom:Gc,left:Gc,right:this.legend.width+Gc},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=[],i={width:0,height:0,left:0,top:0};if(n.forEach(A=>{let h=t[A.value];if(h.usedAes.length===0||!h.aesMap)return;let v={};h.values.forEach(b=>{v[b]||(v[b]={...zv}),h.usedAes.forEach(x=>{var B,k,P;(x==="dotFill"||x==="lineColor")&&(v[b].color=((B=h.aesMap[b])==null?void 0:B[x])??Vt),x==="dotShape"&&(v[b].shape=((k=h.aesMap[b])==null?void 0:k[x])??"21"),x==="dotSize"&&(v[b].size=((P=h.aesMap[b])==null?void 0:P[x])??3)})});let g=A.label??A.value,C=Qo().domain(h.values).range(h.values.map(b=>v[b])).unknown(zv);a.push({...i,id:A.value,type:"dots",title:g,scale:C,values:h.values,labels:h.labels})}),r.forEach(A=>{if(A.type==="dots"&&th(A.aes.dotFill)){let{domain:h,range:v,columnName:g,type:C="linear"}=A.aes.dotFill,b=g.label??g.value,x=T9(v,h,"linear"),B=(C==="log"?nv():Zr()).domain(h).range([this.chartSizes.chartHeight,0]),k=h3(B,h);a.push({...i,id:"dotFill",type:"continuous",title:b,scale:x,tickPositionScale:B,values:k})}if(A.type==="dots"&&th(A.aes.dotSize)){let{columnName:h,domain:v,range:g}=A.aes.dotSize,C=h.label??h.value,b=rv(v,g),x=b.ticks(3),B=b.tickFormat(3),k=x.reduce((P,I)=>(P[String(I)]=B(I),P),{});a.push({...i,id:h.value,type:"size",title:C,scale:b,values:x,labels:k})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=S3(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+WC,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}render(e,t,n,r,a,i,o,s,c,f,A,h,v,g,C){var $;let{xAxis:b,yAxis:x,size:B,title:k,legend:P}=t;this.updateChartSizes(B),this.updateViewport(r,n,b,x,i,o),this.updateCaptionsSize(c.y),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,b,x),this.updateLegendSize(P,f,v,g),this.createMainTitle(r,k),this.updateMargins();let I=ie.jsx(A6t,{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:y6t(h),onTooltipHintSwitch:C});this.component=I,($=this.reactRoot)==null||$.render(I)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Qv,{message:e}))}},b6t=w6t,C6t=class{constructor(e){Be(this,"type","dots");Be(this,"aes",{dotFill:Vt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},S6t=class{constructor(e){Be(this,"type","curve");Be(this,"smoothing");Be(this,"aes",{lineColor:Vt,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},MZ=class{constructor(e){Be(this,"id");Be(this,"type","scatterplot");Be(this,"keyColumn");Be(this,"facetSettings");Be(this,"x");Be(this,"y");Be(this,"facetBy");Be(this,"grouping");Be(this,"label");Be(this,"highlight");Be(this,"chartSettings");Be(this,"inheritedAes");Be(this,"trend");Be(this,"layers");var t,n,r,a;R3t.parse(e),this.id=Zn.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.highlight=e.highlight??null,this.chartSettings={size:{width:((t=e==null?void 0:e.size)==null?void 0:t.width)??(this.facetBy.length?400:600),height:((n=e==null?void 0:e.size)==null?void 0:n.height)??(this.facetBy.length?250:350)},title:{position:"center",show:!0,...e.title,name:((r=e.title)==null?void 0:r.name)??"Chart"},yAxis:{title:e.y.label??e.y.value,scale:"linear",showGrid:!0,showTicks:!0,...e.yAxis},xAxis:{title:e.x.label??e.x.value,scale:"linear",showGrid:!0,showTicks:!0,...e.xAxis},frame:{type:((a=e.frame)==null?void 0:a.type)??"full"},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.inheritedAes=e.inheritedAes??{},this.trend=e!=null&&e.trend?{bounded:e.trend.bounded??!1,color:e.trend.color??Vt}:null,this.layers=e.layers.map(i=>{if(i.type==="dots")return new C6t(i);if(i.type==="curve")return new S6t(i);f1(i,"Unknown layer type")}).filter(Boolean)}},x6t=Xht(G5t()),PZ=.05;function E6t(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,v=21213.794301586597,g=39307.89580009271,C=28729.085735721943,b=5226.495278852854,x=1.4234371107496835,B=4.630337846156546,k=5.769497221460691,P=3.6478483247632045,I=1.2704582524523684,$=.2417807251774506,N=.022723844989269184,F=.0007745450142783414,Z=2.053191626637759,ee=1.6763848301838038,le=.6897673349851,Q=.14810397642748008,j=.015198666563616457,U=.0005475938084995345,Y=10507500716444169e-25,X=6.657904643501103,te=5.463784911164114,pe=1.7848265399172913,ae=.29656057182850487,ge=.026532189526576124,me=.0012426609473880784,fe=27115555687434876e-21,Ce=20103343992922881e-23,De=.599832206555888,ke=.1369298809227358,$e=.014875361290850615,je=.0007868691311456133,Oe=18463183175100548e-21,ft=1421511758316446e-22,ze=20442631033899397e-31,Xe=e-.5,tt,qe;return Math.abs(Xe)<=.425?(tt=.180625-Xe*Xe,qe=Xe*(((((((c*tt+s)*tt+o)*tt+i)*tt+a)*tt+r)*tt+n)*tt+t)/(((((((b*tt+C)*tt+g)*tt+v)*tt+h)*tt+A)*tt+f)*tt+1),qe):(tt=e,tt=Math.sqrt(-Math.log(tt)),tt<=5?(tt+=-1.6,qe=(((((((F*tt+N)*tt+$)*tt+I)*tt+P)*tt+k)*tt+B)*tt+x)/(((((((Y*tt+U)*tt+j)*tt+Q)*tt+le)*tt+ee)*tt+Z)*tt+1)):(tt+=-5,qe=(((((((Ce*tt+fe)*tt+me)*tt+ge)*tt+ae)*tt+pe)*tt+te)*tt+X)/(((((((ze*tt+ft)*tt+Oe)*tt+je)*tt+$e)*tt+ke)*tt+De)*tt+1)),qe=-qe,qe)}function HZ(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),v=((20700*A/h-98)*A-16)*A+96.36,g=((94.5/(h+v)-3)/h+1)*a(A*s*.5)*t;return c=g*e,f=i(c,2/t),f>.05+A?(c=E6t(e/2),f=c*c,t<5&&(v=v+.3*(t-4.5)*(c+.6)),v=(((.05*g*c-5)*c-7)*c-2)*c+h+v,f=(((((.4*f+6.3)*f+36)*f+94.5)/v-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*g-.822)*(t+2)*3)+.5/(t+4))*f-1)*(t+1)/(t+2)+1/f,a(t*f)}function B6t(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 _6t(e,t,n){let r=A=>A*t+n,a=e.length,i=lc(e,A=>A.x)/e.length,o=HZ(PZ,a-2),s=Math.sqrt(lc(e,A=>(A.y-r(A.x))**2)/(a-2)/lc(e,A=>(A.x-i)**2)),c=s*o,f=s*Math.sqrt(lc(e,A=>A.x**2)/a)*o;return{slope:t,intercept:n,slopeError:c,interceptError:f}}function T6t(e,t){let n=lc(e,s=>s.x)/e.length,r=0,a=0;for(let s=0;s<e.length;++s)r+=Math.pow(e[s].x-n,2),a+=Math.pow(e[s].y-t(e[s].x),2);let i=Math.sqrt(a/(e.length-2)),o=HZ(PZ,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 k6t(e){let t=e.length;return Math.pow((t*lc(e,n=>n.x*n.y)-lc(e,n=>n.x)*lc(e,n=>n.y))/(Math.sqrt(t*lc(e,n=>n.x*n.x)-Math.pow(lc(e,n=>n.x),2))*Math.sqrt(t*lc(e,n=>n.y*n.y)-Math.pow(lc(e,n=>n.y),2))),2)}function M6t(e,t){let n=Vs(e,t);return Vs(e.map(r=>(t(r)-n)**2))}function DZ(e,t){return Math.sqrt(M6t(e,t))}function P6t(e,t,n){let r=Vs(e,t),a=Vs(e,n),i=e.length;return lc(e,o=>(o.x-r)*(o.y-a))/i}function H6t(e){let t=P6t(e,a=>a.x,a=>a.y),n=DZ(e,a=>a.x),r=DZ(e,a=>a.y);return t/(n*r)}function D6t(e,t){let n=e.length,r=1,a=1,i=n-r-1,o=Vs(e,v=>v.y),s=lc(e,v=>(t(v.x)-o)**2),c=lc(e,v=>(t(v.x)-v.y)**2),f=s/a,A=c/i,h=f/A;return 1-(0,x6t.default)(h,a,i)}function $6t(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((B,k)=>String(x.data[B.value])===c[k])),[A=0,h=0]=M0(f,x=>x.x),[v,g]=B6t(f),C=x=>v*x+g,b=T6t(f,C);return{predict:C,getInterval:b,getArea:(x,B,k)=>KB().x(P=>x(P.x)).y0(P=>B(P.left)).y1(P=>B(P.right))(k.map(b))??"",color:a.color,bounded:a.bounded,data:f[0].data,showStats:!0,xBounds:[A,h],stats:{r2:k6t(f),r:H6t(f),pValue:D6t(f,C),coefficients:_6t(f,v,g)}}}),i},{}):null}function $Z(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 IZ(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function I6t(e,t,n,r){return t.reduce((a,i)=>{let o=Zn.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(([v,g])=>{IZ(g)&&g.value===i.value&&f.add(v)})});let A=o.reduce((h,v)=>(h[s(v)]=c(v),h),{});return a[i.value]={values:o.map(s).filter(h=>h!=="null").sort((h,v)=>A[h].localeCompare(A[v],"en",{numeric:!0})),usedAes:[...f],aesMap:r[i.value],labels:A},a},{})}var L6t=class extends Lm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new b6t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new MZ(n),r&&(this.onTooltipHintSwitch=r[1])}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 MZ(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(),b5(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,highlight:A}=this.settings,h=this.data.getColumnCategories(i.value),v=r.map(F=>this.data.getColumnCategories(F.value)),g=a.map(F=>this.data.getColumnCategories(F.value)),C=v.length?$Z([...v]):[["null"]],b=g.length?$Z([...g]):[["null"]],x=r.map(F=>F.value)??null;this.data.setGrouping([...x,i.value]);let B={x:this.data.rows.every(F=>{let Z=F[t.value];return Z===null||!(Number(Z)<0)}),y:this.data.rows.every(F=>{let Z=F[n.value];return Z===null||!(Number(Z)<0)})},k=Y9t(this.data,C,t,n,f,A,h),P=Object.keys(k),I=$6t(k,P,b,a,o),$=I6t(this.data,a,s,c),N=W9t(s,P,k,b,a);this.calculatedData={onlyPositive:B,dotsByFacets:k,facetKeys:P,facetKeysCombinations:C,trendsData:I,legendLabels:$,layersData:N}}_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,v])=>{IZ(v)&&v.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,this.onTooltipHintSwitch)}},pS={TOP:30,BOTTOM:30,LEFT:30,RIGHT:30},k9=20,LZ=4,RZ=24;function R6t(e,t,n=[]){let r=e.data,a=[`x: ${ni(e.x)}`,`y: ${ni(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 VZ(e){return typeof e=="string"?e:e.label??e.value}var NZ=C5().curve(S5);function V6t({scales:e,chartSettings:t,mainTitle:n,keyColumn:r,margins:a,chartSizes:i,onlyPositive:o,container:s,zoomStateKey:c,legendData:f,dotsByGrouping:A,layers:h,aesGetters:v,tooltipData:g}){var j;let{title:C,xAxis:b,yAxis:x,frame:B,legend:k}=t,P=b.showTicks?LZ:0,I=x.showTicks?LZ:0,$=b.title,N=x.title,F={left:0,right:i.chartWidth,top:0,bottom:i.chartHeight};if(!s)return null;let Z=h.find(U=>U.type==="curve"),[ee,le]=tn.useState([]);function Q(){let U=Object.entries(A).map(([Y,X])=>({key:Y,d:Z!=null&&Z.smoothing?NZ(X)??"":X.map(te=>`${e.x(te.x)},${e.y(te.y)}`).join(" "),dot:X[0]}));le(U)}return tn.useEffect(()=>{Z&&(NZ.x(U=>e.x(U.x)).y(U=>e.y(U.y)),Q())},[c]),tn.useEffect(()=>{Z&&Q()},[Z==null?void 0:Z.smoothing]),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:Nm}),ie.jsxs("g",{transform:`translate(${a.left},${a.top})`,fontFamily:"Manrope",children:[ie.jsx("clipPath",{id:"viewportClipPath",children:ie.jsx("rect",{x:"0",y:"0",width:i.chartWidth,height:i.chartHeight})}),ie.jsx(w3,{title:n,show:C.show,position:C.position,leftPadding:a.left,rightPadding:a.right,chartsWidth:i.chartWidth}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[$&&ie.jsx("text",{x:i.chartWidth/2,y:i.chartHeight+a.bottom-k9/2,children:VZ($)}),N&&ie.jsx("text",{x:-a.left+k9/2,y:i.chartHeight/2,transform:`rotate(-90,${-a.left+k9/2},${i.chartHeight/2})`,children:VZ(N)})]}),ie.jsx(yZ,{width:i.chartWidth,height:i.chartHeight,scaleX:e.x,scaleY:e.y,axisX:b,axisY:x,updatingKey:c,frameType:B.type}),ie.jsx("g",{transform:`translate(0,${i.chartHeight})`,children:ie.jsx(hS,{scale:e.x,orient:"bottom",onlyPositive:o.x,tickSize:P})}),ie.jsx("g",{children:ie.jsx(hS,{scale:e.y,orient:"left",onlyPositive:o.y,tickSize:I})}),Z&&Z.smoothing&&ie.jsx("g",{clipPath:"url(#viewportClipPath)",children:ee.map(({key:U,d:Y,dot:X})=>{var te;return ie.jsx("path",{d:Y,fill:"none",stroke:v.dotFill(X.data),strokeWidth:(te=Z.aes)==null?void 0:te.lineWidth,strokeDasharray:v.lineType(X.data)},U)})}),Z&&!Z.smoothing&&ie.jsx("g",{clipPath:"url(#viewportClipPath)",children:ee.map(({key:U,d:Y,dot:X})=>{var te;return ie.jsx("polyline",{points:Y,fill:"none",stroke:v.dotFill(X.data),strokeWidth:(te=Z.aes)==null?void 0:te.lineWidth,strokeDasharray:v.lineType(X.data)},U)})}),g.selectedData&&ie.jsx(fu,{content:R6t(g.selectedData,r,(j=t.tooltips)==null?void 0:j.content),x:e.x(g.selectedData.x),y:e.y(g.selectedData.y),active:!0,fixed:g.fixed,sideDistances:F,container:s,onClose:g.onClose}),k.show&&ie.jsx("g",{transform:`translate(${i.chartWidth+RZ},0)`,children:ie.jsx(b3,{legendData:f})})]})]})}var N6t=k8.memo(V6t),z6t=20;function O6t({scales:e,chartSizes:t,disabled:n,onPolygonUpdate:r}){let[a,i]=tn.useState([]),[o,s]=tn.useState(null),[c,f]=tn.useState(null),A=tn.useRef(null),h=tn.useRef(null),v=tn.useRef(null),g=tn.useRef(a);function C(){A.current=null,h.current=null,v.current=null,g.current=[],i([]),s(null)}function b(k){n||k.key!=="Escape"||C()}tn.useEffect(()=>{n&&(A.current=null,h.current=null,v.current=null,s(null))},[n]),tn.useEffect(()=>(document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)),[]),tn.useEffect(()=>{if(o&&c)return;if(a.length===0){r([]);return}let k=a.map(P=>P[0]);k.push(a[a.length-1][1]),r(k)},[a]);function x(){if(!A.current||n)return;let k=[...A.current],P=e.x.invert(k[0]),I=e.y.invert(k[1]),$=g.current,N=v.current,F=h.current&&$.length>1?Math.sqrt((k[0]-h.current[0])**2+(k[1]-h.current[1])**2):1/0;v.current?v.current&&F>z6t?($=[...$,[v.current,[P,I]]],N=[P,I]):($=[...$,[v.current,[P,I]]],$.length>2&&($=[...$,[$[$.length-1][1],$[0][0]]]),N=null,$.length<=2?r([]):r($.map(Z=>Z[0])),h.current=null):(h.current=k,$=[],N=[P,I],r([])),i($),s(N),g.current=$,v.current=N}function B(k){let P=[k.nativeEvent.offsetX,k.nativeEvent.offsetY];f(P),A.current=P}return ie.jsxs("g",{children:[ie.jsx("rect",{fill:"transparent",width:t.chartWidth,height:t.chartHeight,onMouseMove:B,onClick:x}),a.map(([k,P],I)=>ie.jsx("line",{x1:e.x(k[0]),y1:e.y(k[1]),x2:e.x(P[0]),y2:e.y(P[1]),stroke:Vt,style:{pointerEvents:"none"}},I)),o&&c&&ie.jsx("line",{x1:e.x(o[0]),y1:e.y(o[1]),x2:c[0],y2:c[1],stroke:Vt,style:{pointerEvents:"none"}},"lastLine")]})}function F6t({scales:e,container:t,labels:n,aesGetters:r,chartSizes:a,onPolygonUpdate:i,lassoMode:o,tooltipData:s}){return t?ie.jsxs("g",{children:[n.map(c=>{let{name:f,height:A,bbox:h,width:v}=c;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${h.minX},${h.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:v,height:A,fill:"transparent",stroke:"none"}),ie.jsx("text",{x:0,y:A/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:f})]})},c.dot.id)}),ie.jsx(O6t,{scales:e,chartSizes:a,disabled:!o,onPolygonUpdate:i}),s.fixed&&ie.jsx("rect",{width:a.chartWidth,height:a.chartHeight,fill:"rgba(255,255,255,0.8)"}),s.selectedData&&ie.jsx("circle",{cx:e.x(s.selectedData.x),cy:e.y(s.selectedData.y),r:Math.max(r.dotSize(s.selectedData.data)*1.2,5),fill:r.dotFill(s.selectedData.data)})]}):null}var Q6t=F6t;function j6t({settingsId:e,scales:t,chartSettings:n,mainTitle:r,keyColumn:a,margins:i,chartSizes:o,captionsSizes:s,onlyPositive:c,container:f,zoomStateKey:A,aesGetters:h,legendData:v,labels:g,onPolygonUpdate:C,onTooltipHintSwitch:b,lassoMode:x,dotsByGrouping:B,layers:k,selectedDot:P=null}){if(!f)return null;let I=p3(b);return tn.useEffect(()=>{P?I.onMouseOver(P):I.onMouseLeave()},[P]),ie.jsx("div",{children:ie.jsxs(y3,{dataId:e,children:[ie.jsx(N6t,{aesGetters:h,dotsByGrouping:B,layers:k,scales:t,keyColumn:a,margins:i,mainTitle:r,captionsSizes:s,chartSettings:n,chartSizes:o,onlyPositive:c,container:f,zoomStateKey:A,legendData:v,tooltipData:I}),cu.createPortal(ie.jsx(Q6t,{scales:t,container:f,aesGetters:h,labels:g,chartSizes:o,selectedDot:P,onPolygonUpdate:C,lassoMode:x,tooltipData:I}),f)]})})}var zZ=e=>e.selection()!==e,OZ=(e,t)=>{e=e||"g";let n=(i,o)=>o,r=null,a=function(i,o){o=o||(g=>g);let s=i.selection(),c=zZ(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 v=c||r;return v&&(f=f.transition(v).style("opacity",1),A.style("opacity",1e-6),h=h.transition(v).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},FZ=(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}},QZ=(e,t,...n)=>{for(let r of n)e[r]=FZ(e,t,r);return e},U6t=e=>t=>e.reduce((n,r)=>n&&r(n),t),WM=(e,t,...n)=>{let r=U6t(n);for(let a of Object.keys(t)){let i=r(a);i&&(e[i]=FZ(e,t,a))}return e},G6t=e=>e.map(t=>typeof t=="string"?new RegExp(`^${t}$`):t),Y6t=(...e)=>(e=G6t(e),t=>e.every(n=>!n.test(t))&&t),P3=e=>typeof e=="function"?e:()=>e;function W6t(){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 X6t=(e,t)=>{switch(e){case"left":return t/2;case"right":return-t/2;default:return 0}},jZ=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},K6t=()=>{let e=()=>0,t=s=>s.x,n=s=>s.y,r="center",a=()=>5,i="vertical",o=jZ({decorate:()=>{},defined:(s,c)=>W6t(e,t,n)(s,c),xScale:tv(),yScale:tv()});return o.values=(s,c)=>{let f=a(s,c),A=X6t(r,f),h=o.xScale(),v=o.yScale();if(i==="vertical"){let g=v(n(s,c),c),C=v(e(s,c),c),b=h(t(s,c),c)+A;return{d:s,x:b,y:g,y0:C,width:f,height:g-C,origin:[b,g],baseOrigin:[b,C],transposedX:b,transposedY:g}}else{let g=h(n(s,c),c),C=h(e(s,c),c),b=v(t(s,c),c)+A;return{d:s,x:b,y:g,y0:C,width:f,height:g-C,origin:[g,b],baseOrigin:[C,b],transposedX:g,transposedY:b}}},o.xValues=()=>i==="vertical"?[t]:[e,n],o.yValues=()=>i!=="vertical"?[t]:[e,n],o.baseValue=(...s)=>s.length?(e=P3(s[0]),o):e,o.crossValue=(...s)=>s.length?(t=P3(s[0]),o):t,o.mainValue=(...s)=>s.length?(n=P3(s[0]),o):n,o.bandwidth=(...s)=>s.length?(a=P3(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},Z6t=()=>{let e=K6t(),t=P3(64),n=uN,r=l9(),a=l9(),i=l9().type(eh.UNSIGNED_SHORT),o=l9().type(eh.UNSIGNED_BYTE),s=xht().crossValueAttribute(r).mainValueAttribute(a).sizeAttribute(i).definedAttribute(o),c=(C,b)=>!1,f=Hht,A=[],h=null,v=null,g=C=>{let b=f(e.xScale()),x=f(e.yScale()),B=!c(A,C);B&&(A=C,i.value((k,P)=>t(k,P)).data(C),o.value((k,P)=>e.defined()(k,P)).data(C)),(B||b.scale!==h)&&(h=b.scale,e.orient()==="vertical"?r.value((k,P)=>b.scale(e.crossValue()(k,P))).data(C):r.value((k,P)=>b.scale(e.mainValue()(k,P))).data(C)),(B||x.scale!==v)&&(v=x.scale,e.orient()==="vertical"?a.value((k,P)=>x.scale(e.mainValue()(k,P))).data(C):a.value((k,P)=>x.scale(e.crossValue()(k,P))).data(C)),s.xScale(b.webglScale).yScale(x.webglScale).type(Nht(n)).decorate(k=>e.decorate()(k,C,0)),s(C.length)};return g.size=(...C)=>C.length?(t=P3(C[0]),g):t,g.type=(...C)=>C.length?(n=C[0],g):n,g.equals=(...C)=>C.length?(c=C[0],g):c,g.scaleMapper=(...C)=>C.length?(f=C[0],g):f,WM(g,e,Y6t("baseValue","bandwidth","align")),QZ(g,s,"context","pixelRatio"),g},UZ=()=>{let e=[],t=a=>a,n=(a,i)=>i,r=jZ({decorate:()=>{},xScale:tv(),yScale:tv()});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},J6t=()=>{let e=UZ(),t=OZ("g"),n=OZ("g","multi"),r=a=>{zZ(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 v=n(bs(h[A]),o);v.each((g,C,b)=>{g.xScale(s).yScale(c);let x=i(f,C,o);t(bs(b[C]),[x]).call(g)}),v.selection().order(),e.decorate()(v,f,A)})};return WM(r,e),QZ(r,n,"key"),r},q6t=()=>{let e=null,t=1,n=UZ(),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 v;f.decorate?(v=f.decorate(),f.decorate((g,C,b)=>{n.decorate()(g,a,A),v(g,C,b)})):n.decorate()(e,a,A),f(h),v&&f.decorate(v)})};return r.context=(...a)=>a.length?(e=a[0],r):e,r.pixelRatio=(...a)=>a.length?(t=a[0],r):t,WM(r,n),r};function GZ(e){return e/2.35*(e/2.35)*64}function XM(e,t){return e+(1-e)*(1-t)}function KM(e,t){return[XM(e.r/255,t),XM(e.g/255,t),XM(e.b/255,t),1]}function ewt(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function ZM(e={},t,n){return function(r){var a,i;if(ewt(n)){let o=n.value,s=r[o];return(i=((a=e[o])==null?void 0:a[String(s)])??EM)==null?void 0:i[t]}if(th(n)&&t==="dotFill"){let{domain:o,range:s,type:c="linear"}=n,f=T9(s,o,c),A=r[n.columnName.value];return A===null?zv.color:f(Number(A))}if(th(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=rv().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}return n}}function YZ(e,t){let n=t.find(a=>a.type==="dots"),r=t.find(a=>a.type==="curve");return{dotFill:ZM(e,"dotFill",(n==null?void 0:n.aes.dotFill)??zv.color),dotSize:ZM(e,"dotSize",(n==null?void 0:n.aes.dotSize)??zv.size),lineType:ZM(e,"lineShape",(r==null?void 0:r.aes.lineShape)??"solid")}}var twt=class{constructor(){Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"canvasNode",null);Be(this,"svgLayerElement",null);Be(this,"svgLayerComponent",ie.jsx(ie.Fragment,{}));Be(this,"aesGetters",{dotSize:()=>2,dotFill:()=>Vt,lineType:()=>"solid"});Be(this,"tools",null);Be(this,"margins",{top:Gc,bottom:Gc,left:Gc,right:Gc});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,totalWidth:600,totalHeight:350});Be(this,"scales",{x:Zr().domain([0,10]).range([0,600]),y:Zr().domain([0,10]).range([350,0]),xOriginal:Zr().domain([0,10]).range([0,600]),yOriginal:Zr().domain([0,10]).range([350,0])});Be(this,"polygon",[]);Be(this,"onPolygonUpdateOutside",()=>{});Be(this,"onTooltipHintSwitch",()=>{});Be(this,"zoomStateKey","");Be(this,"selectedDot",null);Be(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Be(this,"mainTitle",[]);Be(this,"legend",{width:0,height:0,items:[]});Be(this,"notCalculatedProps",{});Be(this,"allDots",[]);Be(this,"allPossibleLabels",[]);Be(this,"visibleLabels",[]);Be(this,"lassoMode",!1);Be(this,"onPolygonUpdate",e=>{this.polygon=e,this.updateByLasso();let t=this.allDots.filter(n=>this.polygon.length>2&&VC(this.polygon,[n.x,n.y])).map(n=>n.data.key);this.onPolygonUpdateOutside(t)})}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=Qh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateViewport(e,t,n){let r=e.scale==="log"?j2():Zr(),{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 g=e.symmetricRange;if(g>=a&&g<=o){let C=Math.max(g-a,o-g);a=g-C,o=g+C}}if(typeof t.symmetricRange<"u"){let g=t.symmetricRange;if(g>=i&&g<=s){let C=Math.max(g-i,s-g);i=g-C,s=g+C}}let c=[0,this.chartSizes.chartWidth],f=r.copy().domain([a,o]).range([pS.LEFT,this.chartSizes.chartWidth-pS.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"?j2():Zr(),h=[this.chartSizes.chartHeight,0],v=A.copy().domain([i,s]).range([this.chartSizes.chartHeight-pS.BOTTOM,pS.TOP]);A.domain([v.invert(this.chartSizes.chartHeight),v.invert(0)]).range(h).nice(),this.scales.y=A,this.scales.yOriginal=A.copy()}updateCaptionsSize(e){let t=new hc("600 14px Arial");function n(o){return Math.max(...o.map(s=>t.getTextWidth(s)))}let{ticks:r,format:a}=_9(this.scales.y,e),i=n(r.map(a));this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:i}}createMainTitle(e){this.mainTitle=jv(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,Gc),bottom:Gc+this.captionsSizes.xAxisCaptionsWidth+k9,left:Gc+this.captionsSizes.yAxisCaptionsWidth+k9,right:this.legend.width+Gc},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,bs(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=[],i={width:0,height:0,left:0,top:0};if(n.forEach(A=>{let h=t[A.value];if(h.usedAes.length===0||!h.aesMap)return;let v={};h.values.forEach(b=>{v[b]||(v[b]={...zv}),h.usedAes.forEach(x=>{var B,k;x==="dotFill"&&(v[b].color=((B=h.aesMap[b])==null?void 0:B[x])??Vt),x==="dotSize"&&(v[b].size=((k=h.aesMap[b])==null?void 0:k[x])??3)})});let g=A.label??A.value,C=Qo().domain(h.values).range(h.values.map(b=>v[b]));a.push({...i,id:A.value,type:"dots",title:g,scale:C,values:h.values,labels:h.labels})}),r.forEach(A=>{if(A.type==="dots"&&th(A.aes.dotFill)){let{domain:h,range:v,columnName:g,type:C="linear"}=A.aes.dotFill,b=g.label??g.value,x=T9(v,h,"linear"),B=(C==="log"?nv():Zr()).domain(h).range([this.chartSizes.chartHeight,0]),k=h3(B,h);a.push({...i,id:"dotFill",type:"continuous",title:b,scale:x,tickPositionScale:B,values:k})}if(A.type==="dots"&&th(A.aes.dotSize)){let{columnName:h,domain:v,range:g}=A.aes.dotSize,C=h.label??h.value,b=rv(v,g),x=b.ticks(3),B=b.tickFormat(3),k=x.reduce((P,I)=>(P[String(I)]=B(I),P),{});a.push({...i,id:h.value,type:"size",title:C,scale:b,values:x,labels:k})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=S3(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+RZ,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}initSettings(e,t,n,r,a,i,o,s){let{xAxis:c,yAxis:f,size:A,title:h,legend:v}=t;this.updateChartSizes(A),this.updateViewport(c,f,n),this.updateCaptionsSize(r.y),this.updateLegendSize(v,o,s,i),this.createMainTitle(h),this.updateMargins(),this.aesGetters=YZ(a,i);let g=Oht().data(e).value(P=>{let I=Qg(this.aesGetters.dotFill(P.data)),$=!P.dimmed&&(this.polygon.length<2||VC(this.polygon,[P.x,P.y]))?1:.4;return KM(I,$)}),C=Z6t().equals((P,I)=>P===I).size(P=>GZ(this.aesGetters.dotSize(P.data))).crossValue(P=>P.x).mainValue(P=>P.y).decorate(P=>g(P)),b=jAt().scaleExtent([.1,1e3]).filter(()=>!this.lassoMode).on("start",()=>{this.selectedDot=null}).on("zoom",P=>{let I=P.transform,$=I.rescaleX(this.scales.xOriginal),N=I.rescaleY(this.scales.yOriginal);this.scales.x.domain($.domain()),this.scales.y.domain(N.domain()),this.zoomStateKey=`${I.x}_${I.y}_${I.k}`,this.renderSvgLayer(),this.renderWebglLayer()}).on("end",()=>{this.allPossibleLabels.forEach(P=>{P.x=this.scales.x(P.dot.x),P.y=this.scales.y(P.dot.y)}),this.visibleLabels=AS(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.renderSvgLayer()}),x=Yk().x(P=>P.x).y(P=>P.y).addAll(e),B=Fht().on("point",([P])=>{var Z,ee;if(!P){this.selectedDot=null,this.renderSvgLayer();return}let I=this.scales.x.invert(P.x),$=this.scales.y.invert(P.y),N=(Z=this.tools)==null?void 0:Z.qt.find(I,$),F=this.selectedDot&&!N||!this.selectedDot&&N||((ee=this.selectedDot)==null?void 0:ee.id)!==(N==null?void 0:N.id);this.selectedDot=N??null,F&&this.renderSvgLayer()}),k=ght({xScale:this.scales.x,yScale:this.scales.y}).xAxisHeight(()=>"0").yAxisWidth(()=>"0").svgPlotArea(J6t()).webglPlotArea(q6t().series([C]).mapping(P=>P)).decorate(P=>{let I=P.enter();I&&!this.svgLayerElement&&(I.style("grid-template-columns","0 auto 1fr auto 0"),I.style("grid-template-rows","0 auto 1fr auto 0"),this.svgLayerElement=I.select(".svg-plot-area.plot-area svg").node()),I.select(".svg-plot-area.plot-area").call(b).call(B)});this.tools={webglChart:k,zoom:b,qt:x,fillColor:g,pointSeries:C},bs(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){this.tools!==null&&(this.aesGetters=YZ(e,t),this.tools.fillColor.value(n=>{let r=this.aesGetters.dotFill??(()=>Vt),a=Qg(r(n.data)),i=!n.dimmed&&(this.polygon.length<2||VC(this.polygon,[n.x,n.y]))?1:.4;return KM(a,i)}))}updatePointSize(){this.tools!==null&&(bs(this.canvasNode).datum([...this.allDots]),this.tools.pointSeries.size(e=>GZ(this.aesGetters.dotSize(e.data))))}updateByLasso(){var e;this.tools!==null&&((e=this.tools)==null||e.fillColor.value(t=>{let n=this.aesGetters.dotFill??(()=>Vt),r=Qg(n(t.data)),a=!t.dimmed&&(this.polygon.length<2||VC(this.polygon,[t.x,t.y]))?1:.4;return KM(r,a)}),this.renderWebglLayer())}updateData(e){this.tools!==null&&(bs(this.canvasNode).datum(e),this.tools.fillColor.data(e),this.tools.qt=Yk().x(t=>t.x).y(t=>t.y).addAll(e))}render(e,t,n,r,a,i,o,s,c,f,A,h,v,g,C){if(this.lassoMode=g,this.tools===null)this.initSettings(a,t,i,r,s,c,f,A),this.onPolygonUpdateOutside=v,this.onTooltipHintSwitch=C;else{let{title:b,legend:x}=t;this.updateLegendSize(x,f,A,c),this.createMainTitle(b),this.updateMargins(),this.updateAes(s,c)}this.allDots=a,this.allPossibleLabels=h,this.allPossibleLabels.forEach(b=>{b.x=this.scales.x(b.dot.x),b.y=this.scales.y(b.dot.y)}),this.visibleLabels=AS(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.notCalculatedProps={settingsId:e,chartSettings:t,onlyPositive:r,keyColumn:n,dotsByGrouping:o,layers:c},this.renderWebglLayer(),this.renderSvgLayer()}renderWebglLayer(){var e,t;(e=this.tools)!=null&&e.webglChart&&bs(this.canvasNode).call((t=this.tools)==null?void 0:t.webglChart)}renderSvgLayer(){var t;this.visibleLabels.forEach(n=>{n.x=this.scales.x(n.dot.x),n.y=this.scales.y(n.dot.y)}),J9t(this.visibleLabels);let e={settingsId:this.notCalculatedProps.settingsId,chartSettings:this.notCalculatedProps.chartSettings,onlyPositive:this.notCalculatedProps.onlyPositive,keyColumn:this.notCalculatedProps.keyColumn,dotsByGrouping:this.notCalculatedProps.dotsByGrouping,layers:this.notCalculatedProps.layers,chartSizes:this.chartSizes,scales:this.scales,margins:this.margins,mainTitle:this.mainTitle,captionsSizes:this.captionsSizes,container:this.svgLayerElement,zoomStateKey:this.zoomStateKey,selectedDot:this.selectedDot,aesGetters:this.aesGetters,legendData:this.legend,labels:this.visibleLabels,onPolygonUpdate:this.onPolygonUpdate,onTooltipHintSwitch:this.onTooltipHintSwitch,lassoMode:this.lassoMode};this.svgLayerComponent=ie.jsx(j6t,{...e}),(t=this.reactRoot)==null||t.render(this.svgLayerComponent)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Qv,{message:e}))}},nwt=twt,JM=D.object({type:D.literal("grouping"),value:D.string()}),rwt=D.object({type:D.literal("dots"),aes:D.optional(D.object({dotFill:D.optional(D.union([D.string(),JM,Z0(D.string())])),dotShape:D.optional(D.union([kd,JM])),dotSize:D.optional(D.union([D.number(),Z0(D.number())]))}))}),awt=D.object({type:D.literal("curve"),smoothing:D.optional(D.boolean()),aes:D.optional(D.object({lineWidth:D.optional(D.number()),lineShape:D.optional(K1),lineColor:D.optional(D.union([D.string(),JM,Z0(D.string())])),opacity:D.optional(D.number())}))}),iwt=D.union([rwt,awt]),owt=D.object({type:D.literal("scatterplot-umap"),title:D.object({name:D.string(),show:D.optional(D.boolean()),position:D.optional(Fv)}),size:D.optional(D.object({width:D.optional(D.number()),height:D.optional(D.number())})),legend:D.optional(D.object({show:D.optional(D.boolean()),position:D.optional(Rm)})),tooltips:D.optional(D.object({show:D.optional(D.boolean()),content:D.optional(D.array(Yn))})),frame:D.optional(D.object({type:D.optional(g9)})),keyColumn:Yn,x:Yn,y:Yn,xAxis:D.optional(A3),yAxis:D.optional(A3),grouping:D.optional(D.array(Yn)),label:D.optional(Yn),highlight:D.optional(Yn),inheritedAes:D.optional(D.record(D.string(),d3)),layers:D.array(iwt),lassoMode:D.optional(D.boolean())}),lwt=class{constructor(e){Be(this,"type","dots");Be(this,"aes",{dotFill:Vt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},swt=class{constructor(e){Be(this,"type","curve");Be(this,"smoothing");Be(this,"aes",{lineColor:Vt,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},WZ=class{constructor(e){Be(this,"id");Be(this,"type","scatterplot-umap");Be(this,"keyColumn");Be(this,"x");Be(this,"y");Be(this,"grouping");Be(this,"label");Be(this,"highlight");Be(this,"chartSettings");Be(this,"inheritedAes");Be(this,"layers");Be(this,"lassoMode");var t,n,r,a;owt.parse(e),this.id=Zn.uniqueId("settings"),this.keyColumn=e.keyColumn,this.x=e.x,this.y=e.y,this.grouping=e.grouping??[],this.label=e.label??null,this.highlight=e.highlight??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 lwt(i);if(i.type==="curve")return new swt(i);throw new Error("Unknown layer type")}).filter(Boolean),this.lassoMode=e.lassoMode??!1}};function XZ(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function uwt(e,t,n,r){return t.reduce((a,i)=>{let o=Zn.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(([v,g])=>{XZ(g)&&g.value===i.value&&f.add(v)})});let A=o.reduce((h,v)=>(h[s(v)]=c(v),h),{});return a[i.value]={values:o.map(s).sort((h,v)=>A[h].localeCompare(A[v],"en",{numeric:!0})),usedAes:[...f],aesMap:r[i.value],labels:A},a},{})}var cwt=10;function fwt(e){let t=[],n=new hc("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==null?void 0:i.width)??0,height:((i==null?void 0:i.actualBoundingBoxAscent)??0)+((i==null?void 0:i.actualBoundingBoxDescent)??0),x:0,y:0,xPosition:"right",yPosition:"middle",bbox:{minX:0,maxX:0,minY:0,maxY:0},dot:r,padding:cwt})}return t}var dwt=class extends Lm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new nwt);Be(this,"onPolygonUpdate",()=>fw);Be(this,"onTooltipHintSwitch",()=>fw);Be(this,"calculatedData",null);this.settings=new WZ(n),r&&(this.onPolygonUpdate=r[0],this.onTooltipHintSwitch=r[1])}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 WZ(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData();let i=r.layers.find(s=>s.type==="dots"),o=this.settings.layers.find(s=>s.type==="dots");i&&o&&i.aes.dotSize!==o.aes.dotSize&&typeof i.aes.dotSize=="number"&&typeof o.aes.dotSize=="number"&&this.chartRenderer.updatePointSize(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){t==="polygon"&&(this.chartRenderer.polygon=n,this._updateChart())}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,highlight:i,grouping:o,layers:s,inheritedAes:c}=this.settings,f={x:!0,y:!0},A={minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0},h=s.some(B=>B.type==="curve"),v=new Set,g={},C=this.data.rows.reduce((B,k)=>{if(k[t.value]===null||k[n.value]===null)return B;let P=Number(k[t.value]),I=Number(k[n.value]);f.x&&P!==null&&P<0&&(f.x=!1),f.y&&I!==null&&I<0&&(f.y=!1),P!==null&&P<A.minX&&(A.minX=P),P!==null&&P>A.maxX&&(A.maxX=P),I!==null&&I<A.minY&&(A.minY=I),I!==null&&I>A.maxY&&(A.maxY=I);let $=(a==null?void 0:a.valueLabels)??(a==null?void 0:a.value),N={x:P,y:I,id:String(k[r.value]),dimmed:i?!k[i.value]:!1,label:$&&k[$]?String(k[$]):null,data:k};if(h){let F=o.map(Z=>k[Z.value]).join("_");v.add(F),g[F]||(g[F]=[]),g[F].push(N)}return B.push(N),B},[]);C.sort((B,k)=>Number(k.dimmed)-Number(B.dimmed));let b=[...v];h&&b.forEach(B=>{g[B].sort((k,P)=>k.x-P.x)});let x=uwt(this.data,o,s,c);this.calculatedData={onlyPositive:f,dots:C,dotsByGrouping:g,groupingKeys:b,allPossibleLabels:fwt(C),dotsExtents:A,legendLabels:x},this.chartRenderer.updateData(C)}_updateAesInData(){let t=this.calculatedData;if(!t)return;let{layers:n,inheritedAes:r,grouping:a}=this.settings;a.forEach(i=>{let o=new Set;n.forEach(s=>{s.aes&&Object.entries(s.aes).forEach(([c,f])=>{XZ(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,lassoMode:s}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.onlyPositive,this.calculatedData.dots,this.calculatedData.dotsExtents,this.calculatedData.dotsByGrouping,a,i,this.calculatedData.legendLabels,o,this.calculatedData.allPossibleLabels,this.onPolygonUpdate,s,this.onTooltipHintSwitch)}},Awt=1e6;function hwt(e){let t=BI(e),n=Vs(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function pwt(e){let t=Vs(e),[n,r]=M0(e);return t===void 0||n===void 0||r===void 0?a=>a:a=>(a-t)/(r-n)}function vwt(e,t){return e==="standardScaling"?hwt(t):e==="meanNormalization"?pwt(t):n=>n}function mwt(e,t,n,r,a,i,o,s,c){let f=o.map(b=>b.join("_")),A={meta:{facetKeys:f,xKeys:[],yKeys:[],xLabels:{},yLabels:{},facetKeyValues:f.reduce((b,x,B)=>(b[x]=o[B],b),{}),valueExtentSize:[1/0,-1/0],valueExtentColor:[1/0,-1/0]},facets:{}},h=new Set,v=new Set,g=t.valueLabels??t.value,C=n.valueLabels??n.value;if(e.rows.forEach(b=>{let x=i.length?i.map($=>b[$.value]).join("_"):"null",B=b[t.value],k=b[n.value],P=b[r.value]??c,I=b[a.value]??c;if(!(B===null||k===null||P===null||I===null)){if(A.facets[x]||(A.facets[x]={xKeys:[],yKeys:[],cells:{}}),A.facets[x].xKeys.push(B),A.facets[x].yKeys.push(k),h.has(B)||(h.add(B),A.meta.xKeys.push(B)),v.has(k)||(v.add(k),A.meta.yKeys.push(k)),A.facets[x].cells[B]||(A.facets[x].cells[B]={}),A.meta.valueExtentSize[0]=Math.min(P,A.meta.valueExtentSize[0]),A.meta.valueExtentSize[1]=Math.max(P,A.meta.valueExtentSize[1]),A.meta.valueExtentColor[0]=Math.min(I,A.meta.valueExtentColor[0]),A.meta.valueExtentColor[1]=Math.max(I,A.meta.valueExtentColor[1]),A.facets[x].cells[B][k])throw Error(`More than 1 value for x=${B}, y=${k}`);if(A.meta.xLabels[B]&&String(b[g])!==A.meta.xLabels[B])throw Error(`More than 1 x-label value for x=${B}`);if(A.meta.yLabels[k]&&String(b[C])!==A.meta.yLabels[k])throw Error(`More than 1 y-label value for y=${k}`);A.meta.xLabels[B]=String(b[g]),A.meta.yLabels[k]=String(b[C]),A.meta&&(A.facets[x].cells[B][k]={id:`${B}_${k}`,x:B,y:k,sizeValue:P,normalizedSizeValue:P,colorValue:I,normalizedColorValue:I,data:b})}}),A.meta.facetKeys=A.meta.facetKeys.filter(b=>A.facets[b]),A.meta.facetKeys.forEach(b=>{let x=A.facets[b];if(x.xKeys=Zn.uniq(x.xKeys),x.yKeys=Zn.uniq(x.yKeys),x.xKeys.length*x.yKeys.length>Awt)throw Error(`Too many cells for graph rendering (${x.xKeys.length*x.yKeys.length})`)}),s){let b=[1/0,-1/0];A.meta.facetKeys.forEach(x=>{if(!A.facets[x])return;let{xKeys:B,yKeys:k,cells:P}=A.facets[x],I=s.direction==="row"?B:k,$=s.direction==="row"?k:B,N=s.direction==="row"?(F,Z)=>{var ee;return(ee=P[F])==null?void 0:ee[Z]}:(F,Z)=>{var ee;return(ee=P[Z])==null?void 0:ee[F]};$.forEach(F=>{let Z=[];I.forEach(le=>{var j;let Q=(j=N(le,F))==null?void 0:j.colorValue;Q!==void 0&&Z.push(Q)});let ee=vwt(s.method,Z);I.forEach(le=>{let Q=N(le,F);Q!==void 0&&(Q.normalizedColorValue=ee(Q.colorValue),b[0]=Math.min(Q.normalizedColorValue,b[0]),b[1]=Math.max(Q.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,Om=8,vS=30,ywt=48,wwt=24,mS=16,H3=4,gS=4,KZ=20,bwt=16,up={left:["axis","axisTitle"],right:["axis","axisTitle"],top:["axis","axisTitle","facetTitle"],bottom:["axis","axisTitle"]};function Cwt(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?gS:0,h=t.showTicks?gS:0,v=c&&e.showTitle?vS:0,g=s&&t.showTitle?vS:0,C=c&&e.showAxisLabels&&i>mS?n.xAxisCaptions+A+H3:0,b=s&&t.showAxisLabels&&o>mS?n.yAxisCaptions+h+H3:0;return{left:{axisTitle:t.position==="left"?g:0,axis:t.position==="left"?b:0},right:{axisTitle:t.position==="right"?g:0,axis:t.position==="right"?b:0},top:{facetTitle:f?ywt:0,axisTitle:e.position==="top"?v:0,axis:e.position==="top"?C:0},bottom:{axisTitle:e.position==="bottom"?v:0,axis:e.position==="bottom"?C:0}}}function Swt(e,t,n){return{left:up.left.reduce((r,a,i)=>{let o=i>0?up.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:up.right.reduce((r,a,i)=>{let o=i>0?up.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:up.top.reduce((r,a,i)=>{let o=i>0?up.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:up.bottom.reduce((r,a,i)=>{let o=i>0?up.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 xwt(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 v=n.meta.xKeys,g=t.x,C=g>mS,b=a[v[0]];c=Math.max(c,(A&&C?r.getTextWidth(b)*Math.cos(o):0)-g/2)}let h=e.yAxisLabels===45;if(h){let v=n.meta.yKeys;if(v.length){let g=t.y,C=g>mS,b=i[v[v.length-1]];f=Math.max(f,(h&&C?r.getTextWidth(b)*Math.cos(s):0)-g/2)}}return{xCaptionTail:c,yCaptionTail:f}}function Ewt({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 v=i.showTicks?gS:0,g=o.showTicks?gS:0,C=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,B=e.left.axis.isVisible||e.right.axis.isVisible,k=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,P=e.left.axis.isVisible?e.left.axis:e.right.axis;return ie.jsxs("g",{children:[ie.jsxs("g",{children:[b.isVisible&&ie.jsxs("g",{transform:`translate(${b.x},${b.y})`,children:[ie.jsx("text",{x:b.width/2,y:b.height/2,textAnchor:"middle",dominantBaseline:"central",children:i.title}),t&&ie.jsx("rect",{width:b.width,height:b.height,stroke:Vt,fill:"none"})]}),C&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${x.x},${x.y})`,children:[n.map(I=>{let $=f.xAxisLabels!==0,N=i.position==="bottom",F=N?0:x.height,Z=N?F+v:F-v,ee=N?Z+H3:Z-H3,le=a.x(I)+s/2,Q=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:le,y1:F,y2:Z,stroke:Vt}),ie.jsx("text",{x:le,y:ee,textAnchor:$?N?"end":"start":"middle",transform:`rotate(${Q},${le},${ee})`,dominantBaseline:$?"central":N?"hanging":"auto",children:A[I]})]},I)}),t&&ie.jsx("rect",{width:x.width,height:x.height,stroke:Vt,fill:"none"})]})]}),ie.jsxs("g",{children:[k.isVisible&&ie.jsx("g",{transform:`translate(
|
|
15128
|
+
${k.y+k.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:k.x,y:k.y,width:k.width,height:k.height,stroke:Vt,fill:"none"}),B&&ie.jsx("g",{fontSize:"14px",transform:`translate(${P.x},${P.y})`,children:r.map(I=>{let $=f.yAxisLabels!==0,N=o.position==="left",F=-(90-f.yAxisLabels),Z=f.yAxisLabels===0?"middle":N?"end":"start",ee=$?"central":N?"auto":"hanging",le=N?P.width:0,Q=N?le-g:le+g,j=N?Q-T3:Q+T3,U=a.y(I)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:Q,y1:U,y2:U,stroke:Vt}),ie.jsx("text",{x:j,y:U,textAnchor:Z,transform:`rotate(${F},${j},${U})`,dominantBaseline:ee,children:h[I]})]},I)})}),t&&ie.jsx("rect",{x:P.x,y:P.y,height:P.height,width:P.width,stroke:Vt,fill:"none"})]})]})}function l9t({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:v,labelAngles:g,xLabels:C,yLabels:b,xGroupLabels:x,yGroupLabels:B}){return ie.jsxs("g",{fontWeight:"500",children:[ie.jsx(o9t,{sideElementBBoxes:e,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:g,xLabels:C,yLabels:b,debug:t}),ie.jsx(i9t,{sideElementBBoxes:e,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:h,yKeysByGroups:v,xGroupLabels:x,yGroupLabels:B,scales:a,stepX:s,stepY:c,xAxis:i,yAxis:o,labelAngles:g,debug:t})]})}function oZ(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 lZ(e,t,n,r,a){if(!n)return"";let i=n.aes[e];if(!y9(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 sZ={x:0,y:0,width:0,height:0};function s9t({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:sZ,c=o?t[o.position].dendro:sZ;function f(h,v){return lZ(h,v,i,n,a)}function A(h,v){return lZ(h,v,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,v)=>{let g=h.links(),C=h.descendants();return ie.jsxs("g",{children:[g.map(b=>{let x=i.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:oZ(b,i.position),stroke:f("lineColor",x),strokeWidth:f("lineWidth",x),strokeDasharray:Of(f("lineShape",x)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),i.showNodes&&C.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:Yc(f("dotShape",b),f("dotSize",b),f("dotFill",b))},`${b.x},${b.y}`))]},v)})}),ie.jsx("g",{transform:`translate(${c.x},${c.y})`,children:o&&!o.hidden&&e.y.trees.map((h,v)=>{let g=h.links(),C=h.descendants();return ie.jsxs("g",{children:[g.map(b=>{let x=o.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:oZ(b,o.position),stroke:A("lineColor",x),strokeWidth:A("lineWidth",x),strokeDasharray:Of(A("lineShape",x)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),o.showNodes&&C.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:Yc(A("dotShape",b),A("dotSize",b),A("dotFill",b))},`${b.x},${b.y}`))]},v)})})]})}function u9t({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:Vt,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 v=h*c,g=s.x(i[A][0]);return a.map(C=>{let b=o[C].length;if(b===0)return null;let x=b*f,B=s.y(o[C][0]);return ie.jsx("rect",{x:g,y:B,width:v,height:x,stroke:Vt,fill:"none"},`${g}_${B}`)})})]})}function jM(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 c9t(e,t,n=[]){let r=e.data,a=[`X: ${t.xLabels[e.x]}`,`Y: ${t.yLabels[e.y]}`,`Value: ${jM(e.value)}${e.value!==e.normalizedValue?` (${jM(e.normalizedValue)})`:""}`];for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function f9t(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}: ${jM(e.value)}`),n}function d9t(e){return e!==null&&!("data"in e)}function uZ(e){return e!==null&&"data"in e}function A9t({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:v,stepY:g,sharedX:C,sharedY:b,annotations:x,annotationColorScales:B,dendrogramAesScales:k,aes:P,labelAngles:I,chartSizes:$,margins:N,tooltipsContainer:F,tooltipsData:Z}){let[ee,le]=tn.useState(),{xAxis:Q,yAxis:j,tooltips:U}=A,{width:Y,height:X}=n.inner,{padding:te,chartEdgeSides:pe,sideElementBBoxes:ae}=n,{xGroupLabels:ge,yGroupLabels:me,xLabels:fe,yLabels:Ce}=h,De=r.x.domain(),ke=r.y.domain(),$e={left:N.left+n.left+te.left,right:$.totalWidth-(N.left+n.left+te.left),top:N.top+n.top+te.top,bottom:$.totalHeight-(N.top+n.top+te.top)},je=!1,Oe=ee&&Z.fixed;return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:X7t,children:[ie.jsxs("g",{transform:`translate(${te.left},${te.top})`,children:[ie.jsx(a9t,{facetKey:t,sideElementBBoxes:ae,annotations:x,cellsMeta:h,annotationColorScales:B,sharedX:C,sharedY:b,chartEdgeSides:pe,width:Y,height:X,scales:r,stepX:v,stepY:g,aes:P,frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,tooltipsData:Z,activeElementContainer:ee}),ie.jsx(s9t,{dendrograms:e,sideElementBBoxes:ae,xDataByKeys:h.xDataByKeys,yDataByKeys:h.yDataByKeys,aesScales:k}),ae.top.facetTitle.isVisible&&ie.jsx("text",{x:ae.top.facetTitle.x,y:ae.top.facetTitle.y+ae.top.facetTitle.height-W7t,fontWeight:"500",fontSize:"20px",children:h.facetKeyValues[t].join(", ")}),je,De.map(ft=>ke.map(ze=>{var gt;let Xe=(gt=a==null?void 0:a[ft])==null?void 0:gt[ze],tt=Oe&&uZ(Z.selectedData)&&(Xe==null?void 0:Xe.id)===Z.selectedData.id,qe=Xe?ie.jsx("rect",{x:r.x(ft),y:r.y(ze),width:v,height:g,stroke:P.cellStrokeColor,fill:Xe.value===null?P.emptyCellColor:f(Xe.normalizedValue),onMouseOver:()=>Z.onMouseOver(Xe,t),onMouseLeave:()=>Z.onMouseLeave()},Xe?Xe.id:`${ft}_${ze}`):null;return tt?cu.createPortal(qe,ee):qe})),ie.jsx(u9t,{frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,scales:r,stepX:v,stepY:g,width:Y,height:X}),ie.jsx(l9t,{xAxis:Q,yAxis:j,scales:r,stepX:v,stepY:g,debug:je,sideElementBBoxes:ae,xKeys:De,yKeys:ke,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,xGroupLabels:ge,yGroupLabels:me,labelAngles:I,xLabels:fe,yLabels:Ce})]}),A.tooltips.show&&uZ(Z.selectedData)&&Z.currentFacet===t&&ie.jsx(fu,{content:c9t(Z.selectedData,h,U==null?void 0:U.content),x:r.x(String(Z.selectedData.x))+v/2,y:r.y(String(Z.selectedData.y))+g/2,offset:De.length>1?v/2:0,active:!0,sideDistances:$e,fixed:Z.fixed,onClose:Z.onClose,container:F}),A.tooltips.show&&d9t(Z.selectedData)&&Z.currentFacet===t&&ie.jsx(fu,{content:f9t(Z.selectedData,h),x:Z.selectedData.x,y:Z.selectedData.y,offset:0,active:!0,sideDistances:$e,fixed:Z.fixed,onClose:Z.onClose,container:F}),ie.jsxs("g",{transform:`translate(${te.left},${te.top})`,children:[Z.fixed&&ie.jsx("rect",{width:$.chartWidth,height:$.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:ft=>{ft&&!ee&&le(ft)}})]})]})}function h9t({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:v,cellsMeta:g,step:C,annotations:b,annotationColorScales:x,legend:B,aes:k,dendrograms:P,dendrogramAesScales:I,columnsCount:$,labelAngles:N,onTooltipHintSwitch:F}){let[Z,ee]=tn.useState(),le=p3(F),Q=tn.useRef(null);tn.useEffect(()=>{Q.current&&ee(Q.current)},[]);let j=i[o[0]].padding,U=i[o[$-1]].padding,Y=e.left+a.chartsWidth+FM,X=e.top+j.top;return ie.jsx(y3,{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:Nm}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(w3,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:j.left,rightPadding:U.right,chartsWidth:a.chartsWidth}),o.map(te=>{let{cells:pe,xKeysByGroups:ae,yKeysByGroups:ge}=v[te];return ie.jsx(A9t,{dendrograms:P[te],captionsSizes:t,facetKey:te,dimensions:i[te],xGroupKeys:c,yGroupKeys:f,xKeysByGroups:s.sharedX?g.xKeysByGroups:ae,yKeysByGroups:s.sharedY?g.yKeysByGroups:ge,sharedX:s.sharedX,sharedY:s.sharedY,scales:{x:A.x[te],y:A.y[te]},cells:pe,cellsMeta:g,stepX:C.x[te],stepY:C.y[te],colorScale:h,chartSettings:r,aes:k,annotations:b,annotationColorScales:x,dendrogramAesScales:I,labelAngles:N,margins:e,chartSizes:a,tooltipsContainer:Z,tooltipsData:le},te)})]}),ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(b3,{legendData:B})}),ie.jsx("g",{ref:Q,style:{outline:"none"}})]})})}function cZ(e,t,n){function r(a){a[n]=t(a.data.height),a.children&&a.children.forEach(r)}r(e)}function fZ(e,t,n,r=n){function a(i){i[r]=i[n]+t,i.children&&i.children.forEach(a)}a(e)}var p9t=(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 dZ(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])),p9t(t,r)}var v9t=class{constructor(){Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"component",ie.jsx(ie.Fragment,{}));Be(this,"chartsDimensions",{});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Be(this,"margins",{top:Uv,bottom:Uv,left:Uv,right:Uv});Be(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xGroupCaptions:Gv,yGroupCaptions:Gv,xCaptionTail:0,yCaptionTail:0});Be(this,"labelAngles",{xAxisLabels:0,yAxisLabels:0,xGroupLabels:0,yGroupLabels:0});Be(this,"columnsCount",1);Be(this,"rowsCount",1);Be(this,"scales",{x:{null:Qo().domain(["null"]).range([1])},y:{null:Qo().domain(["null"]).range([1])}});Be(this,"step",{x:{},y:{}});Be(this,"colorScale",Zr().domain([0,1]).range(["white","black"]));Be(this,"annotationColorScales",{});Be(this,"dendrogramAesScales",{});Be(this,"legend",{width:0,height:0,items:[]});Be(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=Qh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Uv,bottom:Uv,left:Uv,right:this.legend.width+Uv},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,items:[]};return}let i=this.chartSizes.chartHeight,o=[],s={width:0,height:0,left:0,top:0},c=v=>v.reduce((g,C)=>(g[C]=String(C),g),{});if(e==="continuous"){let v=this.colorScale,g=h3(v,a),C=Zr([g[0],g[g.length-1]],[i,0]),b=r.label??r.value;o.push({...s,type:"continuous",id:"heatmapValue",scale:v,values:g,title:b,tickPositionScale:C})}else if(e==="discrete"){let v=this.colorScale,g=r.label??r.value,C=v.domain(),b=c(C);o.push({...s,type:"discreteColor",id:"heatmapValue",title:g,scale:v,values:C,labels:b})}if(n.forEach(v=>{let g=v.valueColumn.label??v.valueColumn.value;if(v.type==="continuous"){let C=this.annotationColorScales[v.id].scale,b=h3(C,a),x=Zr([b[0],b[b.length-1]],[i,0]);o.push({...s,type:"continuous",id:v.id,tickPositionScale:x,title:g,scale:C,values:b})}if(v.type==="discrete"){let C=this.annotationColorScales[v.id].scale,b=C.domain(),x=c(b);o.push({...s,type:"discreteColor",id:v.id,title:g,scale:C,values:b,labels:x})}}),!o.length){this.legend={width:0,height:0,items:[]};return}let f=S3(o,this.chartSizes.chartHeight),A=f[f.length-1],h=A.left+A.width+FM;this.legend={width:h,height:i,items:f}}updateCaptionsSize(e,t,n,r){let a=new hc("bold 14px Arial"),{xGroupKeys:i,yGroupKeys:o,xGroupLabels:s,yGroupLabels:c,xKeysByGroups:f,yKeysByGroups:A,xLabels:h,yLabels:v}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle,xGroupLabels:t.groupLabelsAngle,yGroupLabels:n.groupLabelsAngle};function g(le,Q){let j=0;for(let U of le){let Y=a.getTextWidth(Q[U]);Y>j&&(j=Y)}return j}let C=Zn.flatten(Object.values(f)),b=Zn.flatten(Object.values(A)),x=g(C,h),B=g(b,v),k=g(i,s),P=g(o,c),{xCaptionTail:I,yCaptionTail:$}=t9t(this.labelAngles,r,this.step,e,a),N=this.labelAngles.xGroupLabels/180*Math.PI,F=this.labelAngles.yGroupLabels/180*Math.PI,Z=this.labelAngles.xAxisLabels/180*Math.PI,ee=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:I,yCaptionTail:$,xGroupCaptions:k*Math.sin(N)||Gv,yGroupCaptions:P*Math.sin(F)||Gv,xAxisCaptions:x*Math.sin(Z)||Gv,yAxisCaptions:B*Math.sin(ee)||Gv}}updateChartDimensions(e,t,n,r,a,i,o,s,c,f){let A=t.length,h=Math.min(a.nRows??A,A),v=Math.min(a.nCols??A,A);this.columnsCount=a.nRows?Math.ceil(A/h):v,this.rowsCount=Math.ceil(A/this.columnsCount);let{width:g,height:C}=e,{sharedX:b,sharedY:x}=a;this.chartsDimensions={};let B=0,k=0;t.forEach(($,N)=>{let F=N%this.columnsCount+1,Z=iZ(N,t.length,this.columnsCount,this.rowsCount),ee=this.step.x[$],le=this.step.y[$],Q=K7t(i,o,this.captionsSizes,s,c,f,Z,b,x,t,n,r,ee,le),j=e9t(s,Z,b,x);function U(ae){return Math.max(sp[ae].reduce((ge,me)=>ge+Q[ae][me],0),j[ae],G7t)}let Y={left:U("left"),right:U("right"),top:U("top"),bottom:U("bottom")};Y.left<this.captionsSizes.xCaptionTail&&(Y.left=this.captionsSizes.xCaptionTail),Y.bottom<this.captionsSizes.yCaptionTail&&(Y.bottom=this.captionsSizes.yCaptionTail);let X=Z7t(Q,g,C),te=g+Y.left+Y.right,pe=C+Y.top+Y.bottom;this.chartsDimensions[$]={left:B,top:k,inner:{width:g,height:C},outer:{width:te,height:pe},padding:Y,sideElementBBoxes:X,chartEdgeSides:Z},B+=te,F===this.columnsCount&&(B=0,k+=pe)});let P=t.slice(0,this.columnsCount).reduce(($,N)=>$+this.chartsDimensions[N].outer.width,0),I=t.filter(($,N)=>N%this.columnsCount===0).reduce(($,N)=>$+this.chartsDimensions[N].outer.height,0);this.chartSizes.chartsWidth=P,this.chartSizes.chartsHeight=I}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:v}=t,{sharedX:g,sharedY:C}=r,b=(B,k={})=>B.sort((P,I)=>i.sorting==="asc"?(k[P]??P).localeCompare(k[I]??I,"en",{numeric:!0}):(k[I]??I).localeCompare(k[P]??P,"en",{numeric:!0})),x=(B,k={})=>B.sort((P,I)=>o.sorting==="asc"?(k[P]??P).localeCompare(k[I]??I,"en",{numeric:!0}):(k[I]??I).localeCompare(k[P]??P,"en",{numeric:!0}));e.forEach(B=>{let k=v[B],P=b(h.xGroupKeys),I=x(h.yGroupKeys),{xKeysByGroups:$}=g?h:k,{yKeysByGroups:N}=C?h:k,F=P.map(ge=>$[ge].length),Z=I.map(ge=>N[ge].length),ee=F.reduce((ge,me)=>ge+me,0),le=Z.reduce((ge,me)=>ge+me,0),Q=(f-(F.filter(ge=>ge>0).length-1)*n)/ee,j=(A-(Z.filter(ge=>ge>0).length-1)*n)/le,U=[],Y=[],X=0;P.forEach(ge=>{let me=s?$[ge]:b($[ge],h.xLabels);Y.push(...me),me.forEach(()=>{U.push(X),X+=Q}),me.length>0&&(X+=n)});let te=[],pe=[],ae=0;I.forEach(ge=>{let me=c?N[ge]:x(N[ge],h.yLabels);pe.push(...me),me.forEach(()=>{te.push(ae),ae+=j}),me.length>0&&(ae+=n)}),this.scales.x[B]=Qo().domain(Y).range(U),this.scales.y[B]=Qo().domain(pe).range(te),this.step.x[B]=Q,this.step.y[B]=j})}updateAesScale(e,t,n,r,a,i,o){if(e==="continuous")n.valueColors?this.colorScale=Zr().domain(n.valuesByColors??dZ(o,n.valueColors.length,t)).range(n.valueColors):n.colorsList&&(this.colorScale=Zr().domain(dZ(o,n.colorsList.length,t)).range(n.colorsList));else if(n.colorsMap){let f=Object.entries(n.colorsMap);this.colorScale=Qo().domain(f.map(A=>A[0])).range(f.map(A=>A[1])).unknown("#ccc")}else n.colorsList&&(this.colorScale=aZ(n.colorsList,i.map(String)));let{xDataByKeys:s,yDataByKeys:c}=a.meta;r.forEach(f=>{let{colors:A,type:h,axis:v,valueColumn:g}=f,C=(v==="x"?s:c)[g.value];if(h==="discrete"){let b=Zn.uniq(Object.values(C).map(String)).sort();this.annotationColorScales[f.id]={type:"discrete",scale:aZ(A,b)}}else{let b=Object.values(C).map(Number);if(!b.length)return;let[x=b[0],B=b[0]]=M0(b);this.annotationColorScales[f.id]={type:"continuous",scale:J7t(A,x,B,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],v=Math.max(...A.map(C=>C.data.height)),g=Math.max(...h.map(C=>C.data.height));i&&(this.dendrograms[s].x.trees=A.map((C,b)=>{let x=t[b],B=c[x];IB().separation(()=>1).size([B.length*this.step.x[s],i.size])(C);let k=C,P=Zr().domain(i.position==="top"?[0,v]:[v,0]).range([i.size,0]);return cZ(k,P,"y"),fZ(k,this.scales.x[s](B[0]),"x"),k}),this.dendrograms[s].x.data=i),o&&(this.dendrograms[s].y.trees=h.map((C,b)=>{let x=n[b],B=f[x];IB().separation(()=>1).size([B.length*this.step.y[s],o.size])(C);let k=C,P=Zr().domain(o.position==="left"?[0,g]:[g,0]).range([o.size,0]);return fZ(k,this.scales.y[s](B[0]),"x","y"),cZ(k,P,"x"),k}),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]=Qo().domain(i).range(i.map(o=>({...rZ,...a[o]}))).unknown(rZ),n},{})}render(e,t,n,r,a,i,o,s,c,f,A,h,v,g){var le;let{meta:C,facets:b}=a,{facetKeys:x,xGroupKeys:B,yGroupKeys:k,valueExtent:P}=C,{xAxis:I,yAxis:$,title:N,size:F,valueType:Z}=t;this.updateChartsSizes(F),this.updateAesScale(Z,P,r,i,a,h,v),this.updateScales(x,a,r.groupGap,n,F,t.xAxis,t.yAxis,s,c),this.updateCaptionsSize(a,I,$,n),this.updateChartDimensions(F,x,B,k,n,I,$,i,s,c),this.updateLegendSize(Z,t.legend,i,o,P),this.updateMargins(N),this.updateDendrogram(x,B,k,b,f,s,c),this.updateDendrogramAesScales(A);let ee=ie.jsx(h9t,{aes:r,annotations:i,annotationColorScales:this.annotationColorScales,captionsSizes:this.captionsSizes,cellsMeta:C,columnsCount:this.columnsCount,chartsDimensions:this.chartsDimensions,chartSettings:t,chartSizes:this.chartSizes,colorScale:this.colorScale,dendrogramAesScales:this.dendrogramAesScales,dendrograms:this.dendrograms,facetKeys:x,facetSettings:n,groupedCells:b,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step,xGroupKeys:B,yGroupKeys:k,onTooltipHintSwitch:g});this.component=ee,(le=this.reactRoot)==null||le.render(ee)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Qv,{message:e}))}},m9t=v9t,UM={lineColor:Vt,dotShape:"21",dotFill:Vt,dotSize:3,lineShape:"solid",lineWidth:1},AZ={size:150,distance:"euclidean",linkage:"average",fillNA:0,showNodes:!0,hidden:!1,edgeInheritance:"up",aes:UM},hZ=class{constructor(e){Be(this,"id");Be(this,"type","heatmap");Be(this,"facetSettings");Be(this,"xColumn");Be(this,"xGroupBy");Be(this,"yColumn");Be(this,"yGroupBy");Be(this,"valueColumn");Be(this,"facetBy");Be(this,"normalization");Be(this,"chartSettings");Be(this,"aes");Be(this,"annotations");Be(this,"dendrogramX");Be(this,"dendrogramY");Be(this,"inheritedDendrogramAes");Be(this,"NAValueAs");var t,n,r,a,i,o,s,c,f,A,h,v,g;if(j3t.parse(e),this.id=Zn.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(C=>C.axis==="x"?{id:Zn.uniqueId("annotation"),axis:"x",valueColumn:C.valueColumn,position:C.position??this.chartSettings.xAxis.position,titlePosition:C.titlePosition??"right",showTitle:C.showTitle??!0,type:C.type,colors:C.colors??["white","black"]}:{id:Zn.uniqueId("annotation"),axis:"y",valueColumn:C.valueColumn,position:C.position??this.chartSettings.yAxis.position,titlePosition:C.titlePosition??"top",showTitle:C.showTitle??!0,type:C.type,colors:C.colors??["white","black"]}),e.valueType==="discrete"&&(e.dendrogramX||e.dendrogramY))throw Error("Dendrogram is not available with discrete cells values");this.dendrogramX=e.dendrogramX?{...AZ,position:"top",...e.dendrogramX,aes:{...UM,...(v=e.dendrogramX)==null?void 0:v.aes}}:null,this.dendrogramY=e.dendrogramY?{...AZ,position:"left",...e.dendrogramY,aes:{...UM,...(g=e.dendrogramY)==null?void 0:g.aes}}:null,this.inheritedDendrogramAes=e.inheritedDendrogramAes??null}},g9t=class extends Lm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new m9t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new hZ(n),r&&(this.onTooltipHintSwitch=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 hZ(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(),b5(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var $,N,F,Z,ee,le,Q,j,U,Y,X,te;let{xColumn:r,yColumn:a,valueColumn:i,xGroupBy:o,yGroupBy:s,facetBy:c,annotations:f,chartSettings:A,facetSettings:h,dendrogramX:v,dendrogramY:g,normalization:C,NAValueAs:b}=n,x=Object.values((($=t.dendrogramX)==null?void 0:$.aes)||{}).filter(y9),B=Object.values((v==null?void 0:v.aes)||{}).filter(y9),k=Object.values(((N=t.dendrogramY)==null?void 0:N.aes)||{}).filter(y9),P=Object.values((g==null?void 0:g.aes)||{}).filter(y9);function I(pe,ae){return pe.length!==ae.length||pe.some((ge,me)=>ge.value!==ae[me].value)}return t.xColumn.value!==r.value||t.yColumn.value!==a.value||t.valueColumn.value!==i.value||I(t.xGroupBy,o)||I(t.yGroupBy,s)||I(t.facetBy,c)||I(t.annotations.map(pe=>pe.valueColumn),f.map(pe=>pe.valueColumn))||I(x,B)||I(k,P)||(n.dendrogramX||t.dendrogramX)&&(((F=t.dendrogramX)==null?void 0:F.distance)!==((Z=n.dendrogramX)==null?void 0:Z.distance)||((ee=t.dendrogramX)==null?void 0:ee.linkage)!==((le=n.dendrogramX)==null?void 0:le.linkage))||(n.dendrogramY||t.dendrogramY)&&(((Q=t.dendrogramY)==null?void 0:Q.distance)!==((j=n.dendrogramY)==null?void 0:j.distance)||((U=t.dendrogramY)==null?void 0:U.linkage)!==((Y=n.dendrogramY)==null?void 0:Y.linkage))||t.chartSettings.valueType!==A.valueType||t.facetSettings.sharedX!==h.sharedX||t.facetSettings.sharedY!==h.sharedY||((X=t.normalization)==null?void 0:X.method)!==(C==null?void 0:C.method)||((te=t.normalization)==null?void 0:te.direction)!==(C==null?void 0:C.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:v,NAValueAs:g}=this.settings,C=z7t(this.data,t,n,r,o,a,i,f,A,h,v,g),b=U7t(C,A,h,c),x=s.valueType==="discrete"?this.data.getColumnCategories(r.value):[];this.calculatedData={groupedCellsData:C,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,this.onTooltipHintSwitch)}},pZ=(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 vZ(e,t,n){return e.map(r=>({count:r.length,y:{straight:r.length,reverse:r.length},rows:r,x:r.x0??0,groupingKey:t,groupingKeyIdx:n,width:(r.x1??0)-(r.x0??0)}))}function y9t(e,t,n,r,a,i){let o=pZ(n,r),s=MI().domain(r).thresholds(o).value(c=>c[t.value])(e);return{bins:vZ(s,a,i),maxCount:Dh(s,c=>c.length)??0}}function w9t(e,t,n,r,a,i){let o=pZ(n,r),s=nv().domain(r).range(r),c=o.map(A=>s.invert(A)),f=MI().domain(r).thresholds(c).value(A=>A[t.value])(e);return{bins:vZ(f,a,i),maxCount:Dh(f,A=>A.length)??0}}function b9t(e,t,n,r,a,i){let o={};return t.forEach(s=>{var b,x;let c=s.join("_");o[c]={groupingKeys:n,histogramByGroupingKey:{},minX:1/0,maxX:-1/0,maxCount:0,maxCountFromGroups:0};let f=e.getRowsByGrouping([...s]),[A,h]=M0(f,B=>B[r.value]);A=A??((b=f[0])==null?void 0:b[r.value])??0,h=h??((x=f[0])==null?void 0:x[r.value])??0;let v=[A,h],g=[...n].reverse();g.forEach((B,k)=>{let P=e.getRowsByGrouping([...s,B]),I=i==="linear"?y9t(P,r,a,v,B,k):w9t(P,r,a,v,B,k);o[c].histogramByGroupingKey[B]=I,o[c].minX=v[0],o[c].maxX=v[1],o[c].maxCountFromGroups=Math.max(o[c].maxCountFromGroups,I.maxCount);let $=k>0?g[k-1]:null,N=$!==null?o[c].histogramByGroupingKey[$]:null;I.bins.forEach((F,Z)=>{F.y.straight=((N==null?void 0:N.bins[Z].y.straight)??0)+F.count,o[c].maxCount=Math.max(o[c].maxCount,F.y.straight)})});let C=n;C.forEach((B,k)=>{let P=k>0?C[k-1]:null,I=o[c].histogramByGroupingKey[B],$=P!==null?o[c].histogramByGroupingKey[P]:null;I.bins.forEach((N,F)=>{N.y.reverse=(($==null?void 0:$.bins[F].y.reverse)??0)+N.count})})}),o}var C9t={TOP:30,BOTTOM:0,LEFT:10,RIGHT:10};function _9(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(c=>t&&c>=0||!t),o=new Set(i);if(!n&&i.length>1){let c=e(i[0]),f=e(i[0]);for(let A=1;A<i.length;A++)f=e(i[A]),Math.abs(f-c)>=20?c=f:o.delete(i[A])}n&&i.length>2&&Math.abs(e(i[1])-e(i[0]))<45&&(i=i.filter((c,f)=>f%2===0));let s=i.some(c=>Math.abs(c)<1e-4&&c!==0||c>1e4)?",e":",f";return{ticks:i,format:c=>o.has(c)?e.tickFormat(a,s)(c):""}}var mZ=(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 S9t(e,t,n){if(n==="linear")return mZ(e,t);if(n==="log"){let r=mZ(e,t),a=nv(t,t),i=r.map(o=>a.invert(o));return i[0]=t[0],i[i.length-1]=t[1],i}return[]}function T9(e,t,n){return(n==="log"?nv():Zr()).domain(S9t(e.length,t,n)).range(e)}function x9t(e){return`translate(${e},0)`}function E9t(e){return`translate(0,${e})`}function B9t(e){return e==="bottom"?`translate(0,${zf})`:`translate(${-zf},0)`}function _9t(e){return e==="bottom"?"hanging":"central"}function T9t(e){return e==="bottom"?"middle":"end"}var gZ=({scale:e,tickSize:t=6,tickPadding:n=zf,orient:r="bottom",onlyPositive:a=!1,hiddenLabels:i=!1,offset:o=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function s(x){return B=>{let k=x(B);return k===void 0?0:+k}}let{ticks:c,format:f}=i?{ticks:[],format:x=>x}:_9(e,a,r==="bottom"),A=Math.max(t,0)+n,h=s(e.copy()),v=r==="bottom"?x9t:E9t,g=r==="left"?-1:1,C={[(r==="left"?"x":"y")+"2"]:g*t},b={[r==="left"?"x":"y"]:g*A};return ie.jsx("g",{children:c.map((x,B)=>ie.jsxs("g",{className:"tick",transform:v(h(x)+o),children:[ie.jsx("line",{stroke:Vt,...C}),ie.jsx("g",{transform:B9t(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:_9t(r),textAnchor:T9t(r),...b,children:f(x)})})]},B))})},k9t=1;function yZ({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=tn.useState(e.ticks()),[A,h]=tn.useState(t.ticks()),{significantLines:v=[]}=a,{significantLines:g=[]}=i;return tn.useEffect(()=>{let C=e.ticks().filter(x=>!v.includes(x)),b=t.ticks().filter(x=>!g.includes(x));f(C),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Nf,children:[a.showGrid&&c.map(C=>{let b=e(C);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`x_${b}_${r}`)}),i.showGrid&&A.map(C=>{let b=t(C);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`y_${b}_${n}`)}),ie.jsx("g",{strokeDasharray:Of(a.significantLinesStyle),stroke:Vt,children:v.map(C=>{let b=e(C);return b<0||b>n?null:ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`significant_${b}_${r}`)})}),ie.jsx("g",{strokeDasharray:Of(i.significantLinesStyle),stroke:Vt,children:g.map(C=>{let b=t(C);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:k9t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?Nf:Vt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?Nf:Vt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}function M9t(e){return typeof e=="string"?e:e.value}function P9t(e,t){let n=[`Amount: ${e.count}`,`(from ${ni(e.x)}, to ${ni(e.x+e.width)})`];return e.groupingKey!=="null"&&n.push(`${t[e.groupingKey]??e.groupingKey}`),n}function wZ(e,t,n,r){return t==="vertical"?e:e+n*r}function bZ(e,t,n,r){return t(n==="vertical"?r==="straight"?e.y.straight:e.y.reverse:e.count)}function H9t({facetKey:e,width:t,height:n,dimensions:r,scales:a,xAxis:i,yAxis:o,frameType:s,histogramData:c,facetSettings:f,captionsSizes:A,facetTitle:h,layers:v,aesColorGetter:g,groupingDirection:C,groupingStack:b,groupingLabels:x,chartSizes:B,margins:k,tooltipsContainer:P,tooltipsData:I}){let[$,N]=tn.useState(),{padding:F}=r,Z=i.showTicks?4:0,ee=o.showTicks?4:0,le=r.chartEdgeSides.includes("left")||!(f!=null&&f.sharedY),Q=r.chartEdgeSides.includes("bottom")||!(f!=null&&f.sharedX),j=r.chartEdgeSides.includes("bottom"),U=c.groupingKeys,Y=c.histogramByGroupingKey[U[0]].bins[0],X=a.x(Y.width)-a.x(0),te=b==="vertical"?X:X/U.length,pe={left:k.left+r.left+F.left,right:B.totalWidth-(k.left+r.left+F.left),top:k.top+r.top+F.top,bottom:B.totalHeight-(k.top+r.top+F.top)},ae=$&&I.fixed,ge=!1;return ie.jsxs("g",{transform:`translate(${r.left+F.left},${r.top+F.top})`,children:[ge,h.length&&ie.jsxs("g",{children:[s==="full"&&ie.jsx("rect",{x:"0",y:-F.top,height:F.top,width:t,fill:"#F7F8FA",stroke:Vt}),h.map((me,fe)=>{let Ce=h.length,De=(F.top-20*Ce)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:t/2,dy:De+20/2-F.top,y:fe*20,textAnchor:"middle",dominantBaseline:"central",children:me},fe)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[j&&i.title&&ie.jsx("text",{x:t/2,y:n+F.bottom-20/2,children:M9t(i.title)}),ge]}),ie.jsx(yZ,{width:t,height:n,scaleX:a.x,scaleY:a.y,axisX:i,axisY:o,frameType:s}),Q&&ie.jsxs("g",{transform:`translate(0,${n})`,children:[ie.jsx(gZ,{scale:a.x,orient:"bottom",tickSize:Z,hiddenLabels:i.hiddenLabels}),ge]}),le&&ie.jsxs("g",{children:[ie.jsx(gZ,{scale:a.y,orient:"left",tickSize:ee,hiddenLabels:o.hiddenLabels}),ge]}),v.map(me=>U.map((fe,Ce)=>c.histogramByGroupingKey[fe].bins.map(De=>{let ke=ae&&I.selectedData===De,$e=ie.jsx("rect",{x:wZ(a.x(De.x),b,Ce,te),y:bZ(De,a.y,b,C),fill:De.rows[0]?g(me.aes.fillColor,De.rows[0],De.count):"",stroke:me.aes.lineColor,width:te,height:a.y(0)-a.y(De.count),opacity:me.aes.opacity??1,onMouseOver:()=>I.onMouseOver(De,e),onMouseLeave:()=>I.onMouseLeave()},De.x);return ke?cu.createPortal($e,$):$e}))),I.fixed&&ie.jsx("rect",{width:B.chartWidth,height:B.chartHeight,fill:"rgba(255,255,255,0.8)"}),ie.jsx("g",{ref:me=>{me&&!$&&N(me)}}),I.selectedData&&I.currentFacet===e&&ie.jsx(fu,{content:P9t(I.selectedData,x),x:wZ(a.x(I.selectedData.x),b,I.selectedData.groupingKeyIdx,te)+te,y:bZ(I.selectedData,a.y,b,C)+a.y(0)-a.y(I.selectedData.count/2),offset:0,active:!0,fixed:I.fixed,sideDistances:pe,container:P,onClose:I.onClose})]})}function D9t({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:v,layers:g,aesColorGetter:C,groupingDirection:b,groupingStack:x,groupingLabels:B,legend:k,onTooltipHintSwitch:P}){let I=p3(P),{xAxis:$,yAxis:N,title:F,frame:Z}=t,ee=r[i[0]].padding,le=r[i[a-1]].padding,[Q,j]=tn.useState(),U=tn.useRef(null);tn.useEffect(()=>{U.current&&j(U.current)},[]);let Y=c.left+n.chartsWidth+FM,X=c.top+ee.top;return ie.jsx(y3,{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:Nm}),ie.jsxs("g",{transform:`translate(${c.left},${c.top})`,fontFamily:"Manrope",children:[ie.jsx(w3,{title:f,show:F.show,position:F.position,leftPadding:ee.left,rightPadding:le.right,chartsWidth:n.chartsWidth}),i.map(te=>ie.jsx(H9t,{facetKey:te,scales:{x:s.x[te],y:s.y[te]},width:n.chartWidth,height:n.chartHeight,dimensions:r[te],margins:c,chartSizes:n,facetSettings:o,xAxis:$,yAxis:N,frameType:Z.type,facetTitle:A[te],captionsSizes:h,histogramData:v[te],layers:g,aesColorGetter:C,groupingDirection:b,groupingStack:x,groupingLabels:B,tooltipsContainer:Q,tooltipsData:I},te))]}),ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(b3,{legendData:k})}),ie.jsx("g",{ref:U,style:{outline:"none"}})]})})}function $9t(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 I9t(e,t,n,r,a,i,o,s){let c=i.includes("left")||!(s!=null&&s.sharedY),f=i.includes("bottom")||!(s!=null&&s.sharedX),A=i.includes("bottom")&&e.title!=="",h=n.yAxisCaptionsWidth,v=(t.showTicks?4:0)+(t.hiddenLabels?0:6),g=n.xAxisCaptionsWidth,C=(e.showTicks?4:0)+(e.hiddenLabels?0:6),b=A?20:0,x=h+v,B=C+g+b,k=Math.max(...r.map(P=>a[P].length));return{left:c?x:12,top:k===0?0:6*2+k*20,bottom:f?B:12,right:o?0:12}}function L9t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function R9t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function CZ(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function V9t(e){return typeof e=="object"&&e!==null&&"range"in e}function N9t(e,t,n){return function(r,a,i){var o,s;if(V9t(r)){let{domain:c=n,range:f,type:A="linear"}=r,h=T9(f,c,A);return h.clamp(!0),h(i)}if(CZ(r)){let c=r.value;return(s=((o=e[c])==null?void 0:o[String(a[c])])??EM)==null?void 0:s[t]}return r}}var z9t=class{constructor(){Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"component",ie.jsx(ie.Fragment,{}));Be(this,"margins",{top:24,bottom:24,left:24,right:24});Be(this,"chartsDimensions",{});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Be(this,"columnsCount",1);Be(this,"rowsCount",1);Be(this,"scales",{x:{null:Zr().domain([0,10]).range([0,600])},y:{null:Zr().domain([0,10]).range([350,0])}});Be(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Be(this,"facetTitles",{});Be(this,"mainTitle",[]);Be(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=Qh(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,v)=>{let[g,C]=R9t(v,this.columnsCount),b=$9t(v,e.length,this.columnsCount,this.rowsCount),x=I9t(n,r,this.captionsSizes,L9t(e,this.rowsCount,this.columnsCount)[g],this.facetTitles,b,C===this.columnsCount-1,t),B=a+x.left+x.right,k=i+x.top+x.bottom;return A[h]={left:o,top:s,chartEdgeSides:b,padding:x,inner:{width:a,height:i},outer:{width:B,height:k}},o+=B,C===this.columnsCount-1&&(o=0,s+=k),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,o){let s=e.length,c=Math.min(t.nRows??s,s),f=Math.min(t.nCols??s,s);this.columnsCount=t.nRows?Math.ceil(s/c):f,this.rowsCount=Math.ceil(s/this.columnsCount);let[A,h]=[1/0,-1/0],v=-1/0,g=e.reduce((C,b)=>{let x=a[b],{minX:B,maxX:k,maxCount:P,maxCountFromGroups:I}=x;return A=Math.min(A,B),h=Math.max(h,k),v=Math.max(v,o==="vertical"?P:I),C[b]={minX:B,maxX:k,maxY:o==="vertical"?P:I},C},{});e.forEach(C=>{let b=n.scale==="log"?nv():Zr(),x=g[C],B=t.sharedX?A:x.minX,k=t.sharedX?h:x.maxX;b.domain([B,k]).range([0,this.chartSizes.chartWidth]),this.scales.x[C]=b}),e.forEach(C=>{let b=r.scale==="log"?nv():Zr(),x=g[C],B=0,k=t.sharedY?v:x.maxY,P=[this.chartSizes.chartHeight,0],I=b.copy().domain([B,k]).range([this.chartSizes.chartHeight,i.innerOffset]);b.domain([I.invert(this.chartSizes.chartHeight),I.invert(0)]).range(P),this.scales.y[C]=b})}updateCaptionsSize(e,t){let n=new hc("600 14px Arial"),r=0;function a(i){return Math.max(...i.map(o=>n.getTextWidth(o)))}t.hiddenLabels||Object.values(this.scales.y).forEach(i=>{let{ticks:o,format:s}=_9(i,!1);r=Math.max(r,a(o.map(s)))}),this.captionsSizes={xAxisCaptionsWidth:e.hiddenLabels?0:20,yAxisCaptionsWidth:r}}createMainTitle(e,t){let n=this.chartsDimensions[e[0]],r=this.chartsDimensions[e[e.length-1]];this.mainTitle=jv(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]=jv(t[a].join(", "),this.chartSizes.chartWidth,14),n),{})}updateLegendSize(e,t,n,r){if(!e.show){this.legend={width:0,height:0,items:[]};return}let a=[],i={width:0,height:0,left:0,top:0};if(r.forEach(A=>{if(CZ(A.aes.fillColor)&&n){let h=A.aes.fillColor.value,v=t[n.value],g=n.label??n.value,C=Qo().domain(v.values).range(v.values.map(b=>v.aesMap[b].fillColor));a.push({...i,id:h,type:"discreteColor",title:g,scale:C,values:v.values,labels:v.labels})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=S3(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+WC,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}updateMargins(e){let t=24*this.mainTitle.length,n=t>0?t+24*2:0,r=e.outerOffset;this.margins={top:Math.max(n,r),bottom:r,left:r,right:this.legend.width+r},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,c,f,A,h,v){var I;let{xAxis:g,yAxis:C,size:b,title:x}=t;this.updateChartSizes(b),this.updateViewport(r,n,g,C,i,b,A),this.updateCaptionsSize(g,C),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,g,C),this.createMainTitle(r,x),this.updateLegendSize(t.legend,o,f,s),this.updateMargins(b);let B=r.reduce(($,N)=>Math.min($,i[N].minX),1/0),k=r.reduce(($,N)=>Math.max($,i[N].maxX),-1/0),P=ie.jsx(D9t,{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:s,aesColorGetter:N9t(c,"fillColor",[B,k]),groupingDirection:h,groupingStack:A,groupingLabels:f?o[f.value].labels:{},legend:this.legend,onTooltipHintSwitch:v});this.component=P,(I=this.reactRoot)==null||I.render(P)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Qv,{message:e}))}},O9t=z9t,F9t=10,Q9t=class{constructor(e){Be(this,"type","bins");Be(this,"aes",{fillColor:"white",lineColor:Vt,opacity:1});this.aes={...this.aes,...e.aes}}},j9t=class{constructor(e){Be(this,"type","binsLine");Be(this,"aes",{opacity:1});this.aes={...this.aes,...e.aes}}},SZ=class{constructor(e){Be(this,"id");Be(this,"type","histogram");Be(this,"valueColumn");Be(this,"binsCount");Be(this,"facetSettings");Be(this,"facetBy");Be(this,"grouping");Be(this,"groupingStack");Be(this,"groupingDirection");Be(this,"groupingOrder");Be(this,"chartSettings");Be(this,"inheritedAes");Be(this,"layers");var t,n,r,a,i,o,s,c,f,A,h;J3t.parse(e),this.id=Zn.uniqueId("settings"),this.facetSettings={sharedX:!0,sharedY:!0,titlePosition:"left",...e.facetSettings},this.valueColumn=e.valueColumn,this.binsCount=e.binsCount??F9t,this.facetBy=e.facetBy??[],this.grouping=e.grouping??null,this.groupingStack=e.groupingStack??"vertical",this.groupingDirection=e.groupingDirection??"straight",this.groupingOrder=e.groupingOrder??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),outerOffset:((r=e==null?void 0:e.size)==null?void 0:r.outerOffset)??24,innerOffset:((a=e==null?void 0:e.size)==null?void 0:a.innerOffset)??C9t.TOP},title:{position:"center",show:!0,...e.title,name:((i=e.title)==null?void 0:i.name)??"Chart"},yAxis:{showGrid:!0,showTicks:!0,scale:((o=e.xAxis)==null?void 0:o.scale)??"linear",hiddenLabels:!1,...e.yAxis},xAxis:{title:e.valueColumn.label??e.valueColumn.value??"",scale:((s=e.xAxis)==null?void 0:s.scale)??"linear",showGrid:((c=e.xAxis)==null?void 0:c.showGrid)??!0,showTicks:((f=e.xAxis)==null?void 0:f.showTicks)??!0,hiddenLabels:((A=e.xAxis)==null?void 0:A.hiddenLabels)??!1,...e.xAxis},frame:{type:((h=e.frame)==null?void 0:h.type)??"full"},legend:{show:!0,position:"right",...e.legend}},this.inheritedAes=e.inheritedAes??{},this.layers=e.layers.map(v=>{if(v.type==="bins")return new Q9t(v);if(v.type==="binsLine")return new j9t(v);f1(v,"Unknown layer type")}).filter(Boolean)}};function xZ(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 U9t(e,t,n){return t.reduce((r,a)=>{let i=Zn.uniqBy(e.rows,f=>f[a.value]),o=f=>String(f[a.value]),s=f=>a.valueLabels?String(f[a.valueLabels]):o(f),c=i.reduce((f,A)=>(f[o(A)]=s(A),f),{});return r[a.value]={values:i.map(o).filter(f=>f!=="null").sort((f,A)=>c[f].localeCompare(c[A],"en",{numeric:!0})),aesMap:n[a.value],labels:c},r},{})}var G9t=class extends Lm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new O9t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new SZ(n),r&&(this.onTooltipHintSwitch=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 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 histogram")}export(){return this._updateChart(),b5(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,o;return t.valueColumn.value!==n.valueColumn.value||t.facetBy.some((s,c)=>{var f;return s.value!==((f=n.facetBy[c])==null?void 0:f.value)})||((r=t.grouping)==null?void 0:r.value)!==((a=n.grouping)==null?void 0:a.value)||t.layers.length!==n.layers.length||t.layers.some((s,c)=>s.type!==n.layers[c].type)||t.binsCount!==n.binsCount||t.chartSettings.xAxis.scale!==n.chartSettings.xAxis.scale||((i=t.groupingOrder)==null?void 0:i.some((s,c)=>{var f;return s!==((f=n.groupingOrder)==null?void 0:f[c])}))||((o=n.groupingOrder)==null?void 0:o.some((s,c)=>{var f;return s!==((f=t.groupingOrder)==null?void 0:f[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{valueColumn:t,facetBy:n,grouping:r,binsCount:a,chartSettings:i,inheritedAes:o,groupingOrder:s}=this.settings,c=n.map(C=>this.data.getColumnCategories(C.value)),f=c.length?xZ([...c]):[["null"]],A=n.map(C=>C.value)??null,h=r?[r.value]:[],v=r?this.data.getColumnCategories(r.value):["null"];s&&(v=Zn.intersection(s,v)),this.data.setGrouping([...A,...h]);let g=b9t(this.data,f,v,t,a,i.xAxis.scale);this.calculatedData={facetKeys:f.map(C=>C.join(", ")),facetKeysCombinations:f,histogramDataByFacets:g,legendInfo:U9t(this.data,r?[r]:[],o)}}_updateAesInData(){this.calculatedData}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,facetSettings:r,inheritedAes:a,layers:i,grouping:o,groupingDirection:s,groupingStack:c}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.facetKeys,this.calculatedData.facetKeysCombinations,this.calculatedData.histogramDataByFacets,this.calculatedData.legendInfo,i,a,o,c,s,this.onTooltipHintSwitch)}};function Y9t(e,t,n,r,a,i,o){let s={};return t.forEach(c=>{let f=[],A=1/0,h=1/0,v=-1/0,g=-1/0;o.forEach(C=>{e.getRowsByGrouping([...c,C]).forEach(b=>{let x=b[n.value],B=b[r.value];A=Math.min(A,x),h=Math.min(h,B),v=Math.max(v,x),g=Math.max(g,B),x!==null&&B!==null&&f.push({id:`${Object.values(b)}`,x,y:B,label:a?b[a.valueLabels??a.value]:null,dimmed:i?!b[i.value]:!1,data:b})})}),f.sort((C,b)=>C.x-b.x),s[c.join("_")]={minX:A,maxX:v,minY:h,maxY:g,dots:f}}),s}function W9t(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(v=>a.every((g,C)=>v.data[g.value]===f[C])),h=a.reduce((v,g,C)=>(v[g.value]=f[C],v),{});return{dots:A,data:h}})};if(c.type==="dots")return{type:"dots",info:c,geoms:s};f1(c,"Unknown scatterplot layer type")}),i},{})}function GM(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 EZ(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 X9t(e,t){return GM(e)-t}function K9t(e,t){return EZ(e)-t}function BZ(e){let t=GM(e),n=t+e.width,r=EZ(e),a=r+e.height;return{minX:t,maxX:n,minY:r,maxY:a}}function _Z(e,t,n){let r=X9t(e,n),a=GM(e)+e.width+n,i=K9t(e,t),o=i+e.height+2*t;return{minX:r,maxX:a,minY:i,maxY:o}}function Z9t(e,t,n){return e.minX>=0&&e.maxX<=t&&e.minY>=0&&e.maxY<=n}var dS=2;function J9t(e,t=dS,n=dS){e.forEach(r=>{r.bbox=BZ(r),r.outerBBox=_Z(r,t,n)})}function AS(e,t,n,r=dS,a=dS){let i=[],o=new bdt,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=BZ(h),h.outerBBox=_Z(h,r,a),Z9t(h.outerBBox,t,n)&&!o.collides(h.outerBBox)){i.push(h),o.insert(h.outerBBox);break}}return i}function q9t(e){return`translate(${e},0)`}function e6t(e){return`translate(0,${e})`}function t6t(e){return e==="bottom"?`translate(0,${zf})`:`translate(${-zf},0)`}function n6t(e){return e==="bottom"?"hanging":"central"}function r6t(e){return e==="bottom"?"middle":"end"}var hS=({scale:e,tickSize:t=6,tickPadding:n=zf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function o(b){return x=>{let B=b(x);return B===void 0?0:+B}}let{ticks:s,format:c}=_9(e,a,r==="bottom"),f=Math.max(t,0)+n,A=o(e.copy()),h=r==="bottom"?q9t:e6t,v=r==="left"?-1:1,g={[(r==="left"?"x":"y")+"2"]:v*t},C={[r==="left"?"x":"y"]:v*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:Vt,...g}),ie.jsx("g",{transform:t6t(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:n6t(r),textAnchor:r6t(r),...C,children:c(b)})})]},x))})},a6t=1;function i6t({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=tn.useState(e.ticks()),[A,h]=tn.useState(t.ticks()),{significantLines:v=[]}=a,{significantLines:g=[]}=i;return tn.useEffect(()=>{let C=e.ticks().filter(x=>!v.includes(x)),b=t.ticks().filter(x=>!g.includes(x));f(C),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Nf,children:[a.showGrid&&c.map(C=>{let b=e(C);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`x_${b}_${r}`)}),i.showGrid&&A.map(C=>{let b=t(C);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`y_${b}_${n}`)}),ie.jsx("g",{strokeDasharray:Of(a.significantLinesStyle),stroke:Vt,children:v.map(C=>{let b=e(C);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`significant_${b}_${r}`)})}),ie.jsx("g",{strokeDasharray:Of(i.significantLinesStyle),stroke:Vt,children:g.map(C=>{let b=t(C);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`significant_${b}_${n}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:a6t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?Nf:Vt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?Nf:Vt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}var o6t=new hc("16px Manrope");function TZ(e,t){return typeof e=="string"?e:t.length?t[0].data[e.value]:""}function l6t(e,t,n=[]){let r=e.data,a=[`x: ${ni(e.x)}`,`y: ${ni(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 s6t(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:` = ${ni(e.r2)}`})]})}function u6t(e){return typeof e.pValue>"u"?null:ie.jsx("tspan",{children:`p-value = ${ni(e.pValue)}`})}function c6t(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 = ${ni(t)} ± ${ni(n)}, intercept = ${ni(r)} ± ${ni(a)}`})})}function f6t(e){let t=[s6t(e),u6t(e),c6t(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 YM=3;function kZ(e,t,n,r){if(!r)return[];let a=[];for(let i of e){let o=i.label;if(!o)continue;let s=o6t.getTextMetrics(String(o));a.push({name:String(o),width:(s==null?void 0:s.width)??0,height:((s==null?void 0:s.actualBoundingBoxAscent)??0)+((s==null?void 0:s.actualBoundingBoxDescent)??0),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)+YM})}return a}function d6t({facetKey:e,width:t,height:n,dimensions:r,scales:a,xAxis:i,yAxis:o,frameType:s,dotsData:c,facetSettings:f,trendsData:A,keyColumn:h,margins:v,chartSizes:g,tooltips:C,tooltipsContainer:b,captionsSizes:x,facetTitle:B,onlyPositive:k,layersData:P,aesGetters:I,tooltipsData:$}){let[N,F]=tn.useState(),{padding:Z}=r,{dots:ee}=c,le=i.showTicks?f3:0,Q=o.showTicks?f3:0,j=TZ(i.title,ee),U=TZ(o.title,ee),Y=r.chartEdgeSides.includes("left")||!(f!=null&&f.sharedY),X=r.chartEdgeSides.includes("bottom")||!(f!=null&&f.sharedX),te=r.chartEdgeSides.includes("left"),pe=r.chartEdgeSides.includes("bottom"),ae={left:v.left+r.left+Z.left,right:g.totalWidth-(v.left+r.left+Z.left),top:v.top+r.top+Z.top,bottom:g.totalHeight-(v.top+r.top+Z.top)},ge=!1,[me,fe]=tn.useState(()=>kZ(ee,a,I,P.find(Oe=>Oe.type==="dots"))),[Ce,De]=tn.useState(()=>AS(me,t,n,YM,YM)),[ke,$e]=tn.useState(null);tn.useEffect(()=>{fe(kZ(ee,a,I,P.find(Oe=>Oe.type==="dots")))},[ee,a,I,P]),tn.useEffect(()=>{let Oe=AS(me,t,n);De(Oe)},[me,t,n]);let je=N&&$.fixed;return ie.jsxs("g",{transform:`translate(${r.left+Z.left},${r.top+Z.top})`,children:[ge,B.length&&ie.jsxs("g",{children:[s==="full"&&ie.jsx("rect",{x:"0",y:-Z.top,height:Z.top,width:t,fill:"#F7F8FA",stroke:Vt}),B.map((Oe,ft)=>{let ze=B.length,Xe=(Z.top-BM*ze)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:t/2,dy:Xe+BM/2-Z.top,y:ft*BM,textAnchor:"middle",dominantBaseline:"central",children:Oe},ft)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[pe&&ie.jsx("text",{x:t/2,y:n+Z.bottom-Ov-m9/2,children:j}),ge,te&&ie.jsx("text",{x:-Z.left+Ov+m9/2,y:n/2,transform:`rotate(-90,${-Z.left+Ov+m9/2},${n/2})`,children:U}),ge]}),ie.jsx(i6t,{width:t,height:n,scaleX:a.x,scaleY:a.y,axisX:i,axisY:o,frameType:s}),X&&ie.jsxs("g",{transform:`translate(0,${n})`,children:[ie.jsx(hS,{scale:a.x,orient:"bottom",onlyPositive:k.x,tickSize:le}),ge]}),Y&&ie.jsxs("g",{children:[ie.jsx(hS,{scale:a.y,orient:"left",onlyPositive:k.y,tickSize:Q}),ge]}),A&&A.map(({predict:Oe,getArea:ft,color:ze,data:Xe,bounded:tt,xBounds:qe,stats:gt},wt)=>{let[Xt,rr]=tt?qe:a.x.domain(),sr=(rr-Xt)/15,ra=Oe(Xt),vi=Oe(rr);if(isNaN(ra)||isNaN(vi))return null;let ea=I.dotColor(ze,Xe);return ie.jsxs("g",{children:[ie.jsx("text",{y:wt*20+20,fill:ea,x:t-8,textAnchor:"end",children:f6t(gt)}),ie.jsx("path",{d:ft(a.x,a.y,Zn.range(Xt,rr+sr/2,sr)),fill:ea,opacity:.2}),ie.jsx("line",{x1:a.x(Xt),x2:a.x(rr),y1:a.y(ra),y2:a.y(vi),stroke:ea})]},wt)}),P.map((Oe,ft)=>{if(Oe.type==="dots")return ie.jsxs("g",{children:[ee.map(ze=>{let Xe=je&&$.selectedData===ze,tt=ie.jsx("g",{transform:`translate(${a.x(ze.x)},${a.y(ze.y)})`,opacity:ze.dimmed?.3:1,onMouseOver:()=>$.onMouseOver(ze,e),onMouseLeave:()=>$.onMouseLeave(),children:Yc(I.dotShape(Oe.info.aes.dotShape,ze.data),I.dotSize(Oe.info.aes.dotSize,ze.data),I.dotColor(Oe.info.aes.dotFill,ze.data))},ze.id);return Xe?cu.createPortal(tt,N):tt}),Ce.map(ze=>{let{name:Xe,height:tt,bbox:qe,width:gt}=ze;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${qe.minX},${qe.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:gt,height:tt,fill:"transparent",stroke:"none",onMouseOver:()=>$e(ze.dot),onMouseLeave:()=>$e(null)}),ie.jsx("text",{x:0,y:tt/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:Xe})]})},ze.dot.id)}),ke&&ie.jsxs("g",{transform:`translate(${a.x(ke.x)},${a.y(ke.y)})`,children:[Yc(I.dotShape(Oe.info.aes.dotShape,ke.data),I.dotSize(Oe.info.aes.dotSize,ke.data)+1,"white","white"),Yc(I.dotShape(Oe.info.aes.dotShape,ke.data),I.dotSize(Oe.info.aes.dotSize,ke.data),I.dotColor(Oe.info.aes.dotFill,ke.data))]},"activeDot")]},ft);if(Oe.type==="curve"&&!Oe.info.smoothing)return Oe.geoms.map((ze,Xe)=>ie.jsx("g",{children:ie.jsx("polyline",{points:ze.dots.map(tt=>`${a.x(tt.x)},${a.y(tt.y)}`).join(" "),fill:"none",stroke:I.lineColor(Oe.info.aes.lineColor,ze.data),strokeWidth:Oe.info.aes.lineWidth,strokeDasharray:Of(Oe.info.aes.lineShape)})},Xe));if(Oe.type==="curve"&&Oe.info.smoothing)return Oe.geoms.map((ze,Xe)=>ie.jsx("g",{children:ie.jsx("path",{d:C5().curve(S5).x(tt=>a.x(tt.x)).y(tt=>a.y(tt.y))(ze.dots)??"",fill:"none",stroke:I.lineColor(Oe.info.aes.lineColor,ze.data),strokeWidth:Oe.info.aes.lineWidth,strokeDasharray:Of(Oe.info.aes.lineShape)})},Xe))}),C.show&&$.selectedData&&$.currentFacet===e&&ie.jsx(fu,{content:l6t($.selectedData,h,C==null?void 0:C.content),x:a.x($.selectedData.x),y:a.y($.selectedData.y),active:!0,sideDistances:ae,fixed:$.fixed,onClose:$.onClose,container:b}),ie.jsxs("g",{children:[$.fixed&&ie.jsx("rect",{width:g.chartWidth,height:g.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:Oe=>{Oe&&!N&&F(Oe)}})]})]})}function A6t({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:v,mainTitle:g,facetTitles:C,captionsSizes:b,onlyPositive:x,layersData:B,aesGetters:k,onTooltipHintSwitch:P}){let I=p3(P),[$,N]=tn.useState(),F=tn.useRef(null);tn.useEffect(()=>{F.current&&N(F.current)},[]);let{xAxis:Z,yAxis:ee,title:le,frame:Q,legend:j,tooltips:U}=t,Y=r[a[0]].padding,X=r[a[A-1]].padding,te=n.chartsWidth+WC,pe=Y.top;return ie.jsx(y3,{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:Nm}),ie.jsxs("g",{transform:`translate(${h.left},${h.top})`,fontFamily:"Manrope",children:[ie.jsx(w3,{title:g,show:le.show,position:le.position,leftPadding:Y.left,rightPadding:X.right,chartsWidth:n.chartsWidth}),a.map(ae=>ie.jsx(d6t,{facetKey:ae,scales:{x:o.x[ae],y:o.y[ae]},width:n.chartWidth,height:n.chartHeight,dimensions:r[ae],margins:h,chartSizes:n,facetSettings:i,xAxis:Z,yAxis:ee,frameType:Q.type,dotsData:s[ae],trendsData:f?f[ae]:null,tooltips:U,tooltipsContainer:$,keyColumn:v,facetTitle:C[ae],captionsSizes:b,layersData:B[ae],onlyPositive:x,aesGetters:k,tooltipsData:I},ae)),j.show&&ie.jsx("g",{transform:`translate(${te},${pe})`,children:ie.jsx(b3,{legendData:c})})]}),ie.jsx("g",{ref:F,style:{outline:"none"}})]})})}function h6t(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 p6t(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*_M,v=(t.showTicks?f3:0)+_M,g=c?m9+Ov:0,C=n.xAxisCaptionsWidth+2*_M,b=e.showTicks?f3:0,x=A?m9+Ov:0,B=h+v+g+YX,k=C+b+x+YX,P=Math.max(...r.map(I=>a[I].length));return{left:s?B:Ov,top:P===0?0:r3t*2+P*S9,bottom:f?k+8:Ov,right:Ov}}function v6t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function m6t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function g6t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function M3(e,t){return function(n,r){var a,i;if(th(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=rv().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}if(th(n)&&(t==="dotFill"||t==="lineColor")){let{domain:o,range:s,type:c="linear"}=n,f=T9(s,o,c),A=r[n.columnName.value];return A===null?zv.color:f(Number(A))}if(g6t(n)){let o=n.value;return(i=((a=e[o])==null?void 0:a[String(r[o])])??EM)==null?void 0:i[t]}return n}}function y6t(e){return{dotShape:M3(e,"dotShape"),dotColor:M3(e,"dotFill"),dotSize:M3(e,"dotSize"),lineShape:M3(e,"lineShape"),lineColor:M3(e,"lineColor"),trendColor:M3(e,"dotFill")}}var w6t=class{constructor(){Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"component",ie.jsx(ie.Fragment,{}));Be(this,"margins",{top:Gc,bottom:Gc,left:Gc,right:Gc});Be(this,"chartsDimensions",{});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Be(this,"columnsCount",1);Be(this,"rowsCount",1);Be(this,"scales",{x:{null:Zr().domain([0,10]).range([0,600])},y:{null:Zr().domain([0,10]).range([350,0])}});Be(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Be(this,"facetTitles",{});Be(this,"mainTitle",[]);Be(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=Qh(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,v)=>{let[g,C]=m6t(v,this.columnsCount),b=h6t(v,e.length,this.columnsCount,this.rowsCount),x=p6t(n,r,this.captionsSizes,v6t(e,this.rowsCount,this.columnsCount)[g],this.facetTitles,b,t),B=a+x.left+x.right,k=i+x.top+x.bottom;return A[h]={left:o,top:s,chartEdgeSides:b,padding:x,inner:{width:a,height:i},outer:{width:B,height:k}},o+=B,C===this.columnsCount-1&&(o=0,s+=k),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,v]=[1/0,-1/0],g=e.reduce((b,x)=>{let B=a[x],{minX:k,minY:P,maxX:I,maxY:$}=B;return f=Math.min(f,k),h=Math.min(h,P),A=Math.max(A,I),v=Math.max(v,$),b[x]={minX:k,maxX:I,minY:P,maxY:$},b},{});e.forEach(b=>{let x=n.scale==="log"?j2():Zr(),B=g[b],k=n.lowerValue?Number(n.lowerValue):t.sharedX?f:B.minX,P=n.upperValue?Number(n.upperValue):t.sharedX?A:B.maxX;if(typeof n.symmetricRange<"u"){let N=n.symmetricRange;if(N>=k&&N<=P){let F=Math.max(N-k,P-N);k=N-F,P=N+F}}let I=[0,this.chartSizes.chartWidth],$=x.copy().domain([k,P]).range([YC.LEFT,this.chartSizes.chartWidth-YC.RIGHT]);x.domain([$.invert(0),$.invert(this.chartSizes.chartWidth)]).range(I).nice(),this.scales.x[b]=x});let C=e.reduce((b,x)=>{let B=i?i[x]:[];return b[x]=B.reduce((k,P)=>{let I=P.bounded?P.xBounds:this.scales.x[x].domain(),$=P.getInterval(I[0]),N=P.getInterval(I[1]);return k.minY=Math.min(k.minY,isNaN($.left)?k.minY:$.left,isNaN(N.left)?k.minY:N.left),k.maxY=Math.max(k.maxY,isNaN($.right)?k.maxY:$.right,isNaN(N.right)?k.maxY:N.right),k},{minY:1/0,maxY:-1/0}),h=Math.min(h,b[x].minY),v=Math.max(v,b[x].maxY),b},{});e.forEach(b=>{let x=r.scale==="log"?j2():Zr(),B=g[b],k=C[b],P=r.lowerValue?Number(r.lowerValue):t.sharedY?h:Math.min(B.minY,k.minY),I=r.upperValue?Number(r.upperValue):t.sharedY?v:Math.max(B.maxY,k.maxY);if(typeof r.symmetricRange<"u"){let F=r.symmetricRange;if(F>=P&&F<=I){let Z=Math.max(F-P,I-F);P=F-Z,I=F+Z}}let $=[this.chartSizes.chartHeight,0],N=x.copy().domain([P,I]).range([this.chartSizes.chartHeight-YC.BOTTOM,YC.TOP]);x.domain([N.invert(this.chartSizes.chartHeight),N.invert(0)]).range($).nice(),this.scales.y[b]=x})}updateCaptionsSize(e){let t=new hc("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}=_9(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=jv(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]=jv(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,Gc),bottom:Gc,left:Gc,right:this.legend.width+Gc},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=[],i={width:0,height:0,left:0,top:0};if(n.forEach(A=>{let h=t[A.value];if(h.usedAes.length===0||!h.aesMap)return;if(h.values.length>100){console.warn(`Too many values for discrete legend (${h.values.length})`);return}let v={};h.values.forEach(b=>{v[b]||(v[b]={...zv}),h.usedAes.forEach(x=>{var B,k,P;(x==="dotFill"||x==="lineColor")&&(v[b].color=((B=h.aesMap[b])==null?void 0:B[x])??Vt),x==="dotShape"&&(v[b].shape=((k=h.aesMap[b])==null?void 0:k[x])??"21"),x==="dotSize"&&(v[b].size=((P=h.aesMap[b])==null?void 0:P[x])??3)})});let g=A.label??A.value,C=Qo().domain(h.values).range(h.values.map(b=>v[b])).unknown(zv);a.push({...i,id:A.value,type:"dots",title:g,scale:C,values:h.values,labels:h.labels})}),r.forEach(A=>{if(A.type==="dots"&&th(A.aes.dotFill)){let{domain:h,range:v,columnName:g,type:C="linear"}=A.aes.dotFill,b=g.label??g.value,x=T9(v,h,"linear"),B=(C==="log"?nv():Zr()).domain(h).range([this.chartSizes.chartHeight,0]),k=h3(B,h);a.push({...i,id:"dotFill",type:"continuous",title:b,scale:x,tickPositionScale:B,values:k})}if(A.type==="dots"&&th(A.aes.dotSize)){let{columnName:h,domain:v,range:g}=A.aes.dotSize,C=h.label??h.value,b=rv(v,g),x=b.ticks(3),B=b.tickFormat(3),k=x.reduce((P,I)=>(P[String(I)]=B(I),P),{});a.push({...i,id:h.value,type:"size",title:C,scale:b,values:x,labels:k})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=S3(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+WC,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}render(e,t,n,r,a,i,o,s,c,f,A,h,v,g,C){var $;let{xAxis:b,yAxis:x,size:B,title:k,legend:P}=t;this.updateChartSizes(B),this.updateViewport(r,n,b,x,i,o),this.updateCaptionsSize(c.y),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,b,x),this.updateLegendSize(P,f,v,g),this.createMainTitle(r,k),this.updateMargins();let I=ie.jsx(A6t,{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:y6t(h),onTooltipHintSwitch:C});this.component=I,($=this.reactRoot)==null||$.render(I)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Qv,{message:e}))}},b6t=w6t,C6t=class{constructor(e){Be(this,"type","dots");Be(this,"aes",{dotFill:Vt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},S6t=class{constructor(e){Be(this,"type","curve");Be(this,"smoothing");Be(this,"aes",{lineColor:Vt,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},MZ=class{constructor(e){Be(this,"id");Be(this,"type","scatterplot");Be(this,"keyColumn");Be(this,"facetSettings");Be(this,"x");Be(this,"y");Be(this,"facetBy");Be(this,"grouping");Be(this,"label");Be(this,"highlight");Be(this,"chartSettings");Be(this,"inheritedAes");Be(this,"trend");Be(this,"layers");var t,n,r,a;R3t.parse(e),this.id=Zn.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.highlight=e.highlight??null,this.chartSettings={size:{width:((t=e==null?void 0:e.size)==null?void 0:t.width)??(this.facetBy.length?400:600),height:((n=e==null?void 0:e.size)==null?void 0:n.height)??(this.facetBy.length?250:350)},title:{position:"center",show:!0,...e.title,name:((r=e.title)==null?void 0:r.name)??"Chart"},yAxis:{title:e.y.label??e.y.value,scale:"linear",showGrid:!0,showTicks:!0,...e.yAxis},xAxis:{title:e.x.label??e.x.value,scale:"linear",showGrid:!0,showTicks:!0,...e.xAxis},frame:{type:((a=e.frame)==null?void 0:a.type)??"full"},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.inheritedAes=e.inheritedAes??{},this.trend=e!=null&&e.trend?{bounded:e.trend.bounded??!1,color:e.trend.color??Vt}:null,this.layers=e.layers.map(i=>{if(i.type==="dots")return new C6t(i);if(i.type==="curve")return new S6t(i);f1(i,"Unknown layer type")}).filter(Boolean)}},x6t=Xht(G5t()),PZ=.05;function E6t(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,v=21213.794301586597,g=39307.89580009271,C=28729.085735721943,b=5226.495278852854,x=1.4234371107496835,B=4.630337846156546,k=5.769497221460691,P=3.6478483247632045,I=1.2704582524523684,$=.2417807251774506,N=.022723844989269184,F=.0007745450142783414,Z=2.053191626637759,ee=1.6763848301838038,le=.6897673349851,Q=.14810397642748008,j=.015198666563616457,U=.0005475938084995345,Y=10507500716444169e-25,X=6.657904643501103,te=5.463784911164114,pe=1.7848265399172913,ae=.29656057182850487,ge=.026532189526576124,me=.0012426609473880784,fe=27115555687434876e-21,Ce=20103343992922881e-23,De=.599832206555888,ke=.1369298809227358,$e=.014875361290850615,je=.0007868691311456133,Oe=18463183175100548e-21,ft=1421511758316446e-22,ze=20442631033899397e-31,Xe=e-.5,tt,qe;return Math.abs(Xe)<=.425?(tt=.180625-Xe*Xe,qe=Xe*(((((((c*tt+s)*tt+o)*tt+i)*tt+a)*tt+r)*tt+n)*tt+t)/(((((((b*tt+C)*tt+g)*tt+v)*tt+h)*tt+A)*tt+f)*tt+1),qe):(tt=e,tt=Math.sqrt(-Math.log(tt)),tt<=5?(tt+=-1.6,qe=(((((((F*tt+N)*tt+$)*tt+I)*tt+P)*tt+k)*tt+B)*tt+x)/(((((((Y*tt+U)*tt+j)*tt+Q)*tt+le)*tt+ee)*tt+Z)*tt+1)):(tt+=-5,qe=(((((((Ce*tt+fe)*tt+me)*tt+ge)*tt+ae)*tt+pe)*tt+te)*tt+X)/(((((((ze*tt+ft)*tt+Oe)*tt+je)*tt+$e)*tt+ke)*tt+De)*tt+1)),qe=-qe,qe)}function HZ(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),v=((20700*A/h-98)*A-16)*A+96.36,g=((94.5/(h+v)-3)/h+1)*a(A*s*.5)*t;return c=g*e,f=i(c,2/t),f>.05+A?(c=E6t(e/2),f=c*c,t<5&&(v=v+.3*(t-4.5)*(c+.6)),v=(((.05*g*c-5)*c-7)*c-2)*c+h+v,f=(((((.4*f+6.3)*f+36)*f+94.5)/v-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*g-.822)*(t+2)*3)+.5/(t+4))*f-1)*(t+1)/(t+2)+1/f,a(t*f)}function B6t(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 _6t(e,t,n){let r=A=>A*t+n,a=e.length,i=lc(e,A=>A.x)/e.length,o=HZ(PZ,a-2),s=Math.sqrt(lc(e,A=>(A.y-r(A.x))**2)/(a-2)/lc(e,A=>(A.x-i)**2)),c=s*o,f=s*Math.sqrt(lc(e,A=>A.x**2)/a)*o;return{slope:t,intercept:n,slopeError:c,interceptError:f}}function T6t(e,t){let n=lc(e,s=>s.x)/e.length,r=0,a=0;for(let s=0;s<e.length;++s)r+=Math.pow(e[s].x-n,2),a+=Math.pow(e[s].y-t(e[s].x),2);let i=Math.sqrt(a/(e.length-2)),o=HZ(PZ,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 k6t(e){let t=e.length;return Math.pow((t*lc(e,n=>n.x*n.y)-lc(e,n=>n.x)*lc(e,n=>n.y))/(Math.sqrt(t*lc(e,n=>n.x*n.x)-Math.pow(lc(e,n=>n.x),2))*Math.sqrt(t*lc(e,n=>n.y*n.y)-Math.pow(lc(e,n=>n.y),2))),2)}function M6t(e,t){let n=Vs(e,t);return Vs(e.map(r=>(t(r)-n)**2))}function DZ(e,t){return Math.sqrt(M6t(e,t))}function P6t(e,t,n){let r=Vs(e,t),a=Vs(e,n),i=e.length;return lc(e,o=>(o.x-r)*(o.y-a))/i}function H6t(e){let t=P6t(e,a=>a.x,a=>a.y),n=DZ(e,a=>a.x),r=DZ(e,a=>a.y);return t/(n*r)}function D6t(e,t){let n=e.length,r=1,a=1,i=n-r-1,o=Vs(e,v=>v.y),s=lc(e,v=>(t(v.x)-o)**2),c=lc(e,v=>(t(v.x)-v.y)**2),f=s/a,A=c/i,h=f/A;return 1-(0,x6t.default)(h,a,i)}function $6t(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((B,k)=>String(x.data[B.value])===c[k])),[A=0,h=0]=M0(f,x=>x.x),[v,g]=B6t(f),C=x=>v*x+g,b=T6t(f,C);return{predict:C,getInterval:b,getArea:(x,B,k)=>KB().x(P=>x(P.x)).y0(P=>B(P.left)).y1(P=>B(P.right))(k.map(b))??"",color:a.color,bounded:a.bounded,data:f[0].data,showStats:!0,xBounds:[A,h],stats:{r2:k6t(f),r:H6t(f),pValue:D6t(f,C),coefficients:_6t(f,v,g)}}}),i},{}):null}function $Z(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 IZ(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function I6t(e,t,n,r){return t.reduce((a,i)=>{let o=Zn.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(([v,g])=>{IZ(g)&&g.value===i.value&&f.add(v)})});let A=o.reduce((h,v)=>(h[s(v)]=c(v),h),{});return a[i.value]={values:o.map(s).filter(h=>h!=="null").sort((h,v)=>A[h].localeCompare(A[v],"en",{numeric:!0})),usedAes:[...f],aesMap:r[i.value],labels:A},a},{})}var L6t=class extends Lm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new b6t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new MZ(n),r&&(this.onTooltipHintSwitch=r[1])}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 MZ(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(),b5(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,highlight:A}=this.settings,h=this.data.getColumnCategories(i.value),v=r.map(F=>this.data.getColumnCategories(F.value)),g=a.map(F=>this.data.getColumnCategories(F.value)),C=v.length?$Z([...v]):[["null"]],b=g.length?$Z([...g]):[["null"]],x=r.map(F=>F.value)??null;this.data.setGrouping([...x,i.value]);let B={x:this.data.rows.every(F=>{let Z=F[t.value];return Z===null||!(Number(Z)<0)}),y:this.data.rows.every(F=>{let Z=F[n.value];return Z===null||!(Number(Z)<0)})},k=Y9t(this.data,C,t,n,f,A,h),P=Object.keys(k),I=$6t(k,P,b,a,o),$=I6t(this.data,a,s,c),N=W9t(s,P,k,b,a);this.calculatedData={onlyPositive:B,dotsByFacets:k,facetKeys:P,facetKeysCombinations:C,trendsData:I,legendLabels:$,layersData:N}}_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,v])=>{IZ(v)&&v.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,this.onTooltipHintSwitch)}},pS={TOP:30,BOTTOM:30,LEFT:30,RIGHT:30},k9=20,LZ=4,RZ=24;function R6t(e,t,n=[]){let r=e.data,a=[`x: ${ni(e.x)}`,`y: ${ni(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 VZ(e){return typeof e=="string"?e:e.label??e.value}var NZ=C5().curve(S5);function V6t({scales:e,chartSettings:t,mainTitle:n,keyColumn:r,margins:a,chartSizes:i,onlyPositive:o,container:s,zoomStateKey:c,legendData:f,dotsByGrouping:A,layers:h,aesGetters:v,tooltipData:g}){var j;let{title:C,xAxis:b,yAxis:x,frame:B,legend:k}=t,P=b.showTicks?LZ:0,I=x.showTicks?LZ:0,$=b.title,N=x.title,F={left:0,right:i.chartWidth,top:0,bottom:i.chartHeight};if(!s)return null;let Z=h.find(U=>U.type==="curve"),[ee,le]=tn.useState([]);function Q(){let U=Object.entries(A).map(([Y,X])=>({key:Y,d:Z!=null&&Z.smoothing?NZ(X)??"":X.map(te=>`${e.x(te.x)},${e.y(te.y)}`).join(" "),dot:X[0]}));le(U)}return tn.useEffect(()=>{Z&&(NZ.x(U=>e.x(U.x)).y(U=>e.y(U.y)),Q())},[c]),tn.useEffect(()=>{Z&&Q()},[Z==null?void 0:Z.smoothing]),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:Nm}),ie.jsxs("g",{transform:`translate(${a.left},${a.top})`,fontFamily:"Manrope",children:[ie.jsx("clipPath",{id:"viewportClipPath",children:ie.jsx("rect",{x:"0",y:"0",width:i.chartWidth,height:i.chartHeight})}),ie.jsx(w3,{title:n,show:C.show,position:C.position,leftPadding:a.left,rightPadding:a.right,chartsWidth:i.chartWidth}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[$&&ie.jsx("text",{x:i.chartWidth/2,y:i.chartHeight+a.bottom-k9/2,children:VZ($)}),N&&ie.jsx("text",{x:-a.left+k9/2,y:i.chartHeight/2,transform:`rotate(-90,${-a.left+k9/2},${i.chartHeight/2})`,children:VZ(N)})]}),ie.jsx(yZ,{width:i.chartWidth,height:i.chartHeight,scaleX:e.x,scaleY:e.y,axisX:b,axisY:x,updatingKey:c,frameType:B.type}),ie.jsx("g",{transform:`translate(0,${i.chartHeight})`,children:ie.jsx(hS,{scale:e.x,orient:"bottom",onlyPositive:o.x,tickSize:P})}),ie.jsx("g",{children:ie.jsx(hS,{scale:e.y,orient:"left",onlyPositive:o.y,tickSize:I})}),Z&&Z.smoothing&&ie.jsx("g",{clipPath:"url(#viewportClipPath)",children:ee.map(({key:U,d:Y,dot:X})=>{var te;return ie.jsx("path",{d:Y,fill:"none",stroke:v.dotFill(X.data),strokeWidth:(te=Z.aes)==null?void 0:te.lineWidth,strokeDasharray:v.lineType(X.data)},U)})}),Z&&!Z.smoothing&&ie.jsx("g",{clipPath:"url(#viewportClipPath)",children:ee.map(({key:U,d:Y,dot:X})=>{var te;return ie.jsx("polyline",{points:Y,fill:"none",stroke:v.dotFill(X.data),strokeWidth:(te=Z.aes)==null?void 0:te.lineWidth,strokeDasharray:v.lineType(X.data)},U)})}),g.selectedData&&ie.jsx(fu,{content:R6t(g.selectedData,r,(j=t.tooltips)==null?void 0:j.content),x:e.x(g.selectedData.x),y:e.y(g.selectedData.y),active:!0,fixed:g.fixed,sideDistances:F,container:s,onClose:g.onClose}),k.show&&ie.jsx("g",{transform:`translate(${i.chartWidth+RZ},0)`,children:ie.jsx(b3,{legendData:f})})]})]})}var N6t=k8.memo(V6t),z6t=20;function O6t({scales:e,chartSizes:t,disabled:n,onPolygonUpdate:r}){let[a,i]=tn.useState([]),[o,s]=tn.useState(null),[c,f]=tn.useState(null),A=tn.useRef(null),h=tn.useRef(null),v=tn.useRef(null),g=tn.useRef(a);function C(){A.current=null,h.current=null,v.current=null,g.current=[],i([]),s(null)}function b(k){n||k.key!=="Escape"||C()}tn.useEffect(()=>{n&&(A.current=null,h.current=null,v.current=null,s(null))},[n]),tn.useEffect(()=>(document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)),[]),tn.useEffect(()=>{if(o&&c)return;if(a.length===0){r([]);return}let k=a.map(P=>P[0]);k.push(a[a.length-1][1]),r(k)},[a]);function x(){if(!A.current||n)return;let k=[...A.current],P=e.x.invert(k[0]),I=e.y.invert(k[1]),$=g.current,N=v.current,F=h.current&&$.length>1?Math.sqrt((k[0]-h.current[0])**2+(k[1]-h.current[1])**2):1/0;v.current?v.current&&F>z6t?($=[...$,[v.current,[P,I]]],N=[P,I]):($=[...$,[v.current,[P,I]]],$.length>2&&($=[...$,[$[$.length-1][1],$[0][0]]]),N=null,$.length<=2?r([]):r($.map(Z=>Z[0])),h.current=null):(h.current=k,$=[],N=[P,I],r([])),i($),s(N),g.current=$,v.current=N}function B(k){let P=[k.nativeEvent.offsetX,k.nativeEvent.offsetY];f(P),A.current=P}return ie.jsxs("g",{children:[ie.jsx("rect",{fill:"transparent",width:t.chartWidth,height:t.chartHeight,onMouseMove:B,onClick:x}),a.map(([k,P],I)=>ie.jsx("line",{x1:e.x(k[0]),y1:e.y(k[1]),x2:e.x(P[0]),y2:e.y(P[1]),stroke:Vt,style:{pointerEvents:"none"}},I)),o&&c&&ie.jsx("line",{x1:e.x(o[0]),y1:e.y(o[1]),x2:c[0],y2:c[1],stroke:Vt,style:{pointerEvents:"none"}},"lastLine")]})}function F6t({scales:e,container:t,labels:n,aesGetters:r,chartSizes:a,onPolygonUpdate:i,lassoMode:o,tooltipData:s}){return t?ie.jsxs("g",{children:[n.map(c=>{let{name:f,height:A,bbox:h,width:v}=c;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${h.minX},${h.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:v,height:A,fill:"transparent",stroke:"none"}),ie.jsx("text",{x:0,y:A/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:f})]})},c.dot.id)}),ie.jsx(O6t,{scales:e,chartSizes:a,disabled:!o,onPolygonUpdate:i}),s.fixed&&ie.jsx("rect",{width:a.chartWidth,height:a.chartHeight,fill:"rgba(255,255,255,0.8)"}),s.selectedData&&ie.jsx("circle",{cx:e.x(s.selectedData.x),cy:e.y(s.selectedData.y),r:Math.max(r.dotSize(s.selectedData.data)*1.2,5),fill:r.dotFill(s.selectedData.data)})]}):null}var Q6t=F6t;function j6t({settingsId:e,scales:t,chartSettings:n,mainTitle:r,keyColumn:a,margins:i,chartSizes:o,captionsSizes:s,onlyPositive:c,container:f,zoomStateKey:A,aesGetters:h,legendData:v,labels:g,onPolygonUpdate:C,onTooltipHintSwitch:b,lassoMode:x,dotsByGrouping:B,layers:k,selectedDot:P=null}){if(!f)return null;let I=p3(b);return tn.useEffect(()=>{P?I.onMouseOver(P):I.onMouseLeave()},[P]),ie.jsx("div",{children:ie.jsxs(y3,{dataId:e,children:[ie.jsx(N6t,{aesGetters:h,dotsByGrouping:B,layers:k,scales:t,keyColumn:a,margins:i,mainTitle:r,captionsSizes:s,chartSettings:n,chartSizes:o,onlyPositive:c,container:f,zoomStateKey:A,legendData:v,tooltipData:I}),cu.createPortal(ie.jsx(Q6t,{scales:t,container:f,aesGetters:h,labels:g,chartSizes:o,selectedDot:P,onPolygonUpdate:C,lassoMode:x,tooltipData:I}),f)]})})}var zZ=e=>e.selection()!==e,OZ=(e,t)=>{e=e||"g";let n=(i,o)=>o,r=null,a=function(i,o){o=o||(g=>g);let s=i.selection(),c=zZ(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 v=c||r;return v&&(f=f.transition(v).style("opacity",1),A.style("opacity",1e-6),h=h.transition(v).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},FZ=(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}},QZ=(e,t,...n)=>{for(let r of n)e[r]=FZ(e,t,r);return e},U6t=e=>t=>e.reduce((n,r)=>n&&r(n),t),WM=(e,t,...n)=>{let r=U6t(n);for(let a of Object.keys(t)){let i=r(a);i&&(e[i]=FZ(e,t,a))}return e},G6t=e=>e.map(t=>typeof t=="string"?new RegExp(`^${t}$`):t),Y6t=(...e)=>(e=G6t(e),t=>e.every(n=>!n.test(t))&&t),P3=e=>typeof e=="function"?e:()=>e;function W6t(){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 X6t=(e,t)=>{switch(e){case"left":return t/2;case"right":return-t/2;default:return 0}},jZ=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},K6t=()=>{let e=()=>0,t=s=>s.x,n=s=>s.y,r="center",a=()=>5,i="vertical",o=jZ({decorate:()=>{},defined:(s,c)=>W6t(e,t,n)(s,c),xScale:tv(),yScale:tv()});return o.values=(s,c)=>{let f=a(s,c),A=X6t(r,f),h=o.xScale(),v=o.yScale();if(i==="vertical"){let g=v(n(s,c),c),C=v(e(s,c),c),b=h(t(s,c),c)+A;return{d:s,x:b,y:g,y0:C,width:f,height:g-C,origin:[b,g],baseOrigin:[b,C],transposedX:b,transposedY:g}}else{let g=h(n(s,c),c),C=h(e(s,c),c),b=v(t(s,c),c)+A;return{d:s,x:b,y:g,y0:C,width:f,height:g-C,origin:[g,b],baseOrigin:[C,b],transposedX:g,transposedY:b}}},o.xValues=()=>i==="vertical"?[t]:[e,n],o.yValues=()=>i!=="vertical"?[t]:[e,n],o.baseValue=(...s)=>s.length?(e=P3(s[0]),o):e,o.crossValue=(...s)=>s.length?(t=P3(s[0]),o):t,o.mainValue=(...s)=>s.length?(n=P3(s[0]),o):n,o.bandwidth=(...s)=>s.length?(a=P3(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},Z6t=()=>{let e=K6t(),t=P3(64),n=uN,r=l9(),a=l9(),i=l9().type(eh.UNSIGNED_SHORT),o=l9().type(eh.UNSIGNED_BYTE),s=xht().crossValueAttribute(r).mainValueAttribute(a).sizeAttribute(i).definedAttribute(o),c=(C,b)=>!1,f=Hht,A=[],h=null,v=null,g=C=>{let b=f(e.xScale()),x=f(e.yScale()),B=!c(A,C);B&&(A=C,i.value((k,P)=>t(k,P)).data(C),o.value((k,P)=>e.defined()(k,P)).data(C)),(B||b.scale!==h)&&(h=b.scale,e.orient()==="vertical"?r.value((k,P)=>b.scale(e.crossValue()(k,P))).data(C):r.value((k,P)=>b.scale(e.mainValue()(k,P))).data(C)),(B||x.scale!==v)&&(v=x.scale,e.orient()==="vertical"?a.value((k,P)=>x.scale(e.mainValue()(k,P))).data(C):a.value((k,P)=>x.scale(e.crossValue()(k,P))).data(C)),s.xScale(b.webglScale).yScale(x.webglScale).type(Nht(n)).decorate(k=>e.decorate()(k,C,0)),s(C.length)};return g.size=(...C)=>C.length?(t=P3(C[0]),g):t,g.type=(...C)=>C.length?(n=C[0],g):n,g.equals=(...C)=>C.length?(c=C[0],g):c,g.scaleMapper=(...C)=>C.length?(f=C[0],g):f,WM(g,e,Y6t("baseValue","bandwidth","align")),QZ(g,s,"context","pixelRatio"),g},UZ=()=>{let e=[],t=a=>a,n=(a,i)=>i,r=jZ({decorate:()=>{},xScale:tv(),yScale:tv()});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},J6t=()=>{let e=UZ(),t=OZ("g"),n=OZ("g","multi"),r=a=>{zZ(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 v=n(bs(h[A]),o);v.each((g,C,b)=>{g.xScale(s).yScale(c);let x=i(f,C,o);t(bs(b[C]),[x]).call(g)}),v.selection().order(),e.decorate()(v,f,A)})};return WM(r,e),QZ(r,n,"key"),r},q6t=()=>{let e=null,t=1,n=UZ(),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 v;f.decorate?(v=f.decorate(),f.decorate((g,C,b)=>{n.decorate()(g,a,A),v(g,C,b)})):n.decorate()(e,a,A),f(h),v&&f.decorate(v)})};return r.context=(...a)=>a.length?(e=a[0],r):e,r.pixelRatio=(...a)=>a.length?(t=a[0],r):t,WM(r,n),r};function GZ(e){return e/2.35*(e/2.35)*64}function XM(e,t){return e+(1-e)*(1-t)}function KM(e,t){return[XM(e.r/255,t),XM(e.g/255,t),XM(e.b/255,t),1]}function ewt(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function ZM(e={},t,n){return function(r){var a,i;if(ewt(n)){let o=n.value,s=r[o];return(i=((a=e[o])==null?void 0:a[String(s)])??EM)==null?void 0:i[t]}if(th(n)&&t==="dotFill"){let{domain:o,range:s,type:c="linear"}=n,f=T9(s,o,c),A=r[n.columnName.value];return A===null?zv.color:f(Number(A))}if(th(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=rv().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}return n}}function YZ(e,t){let n=t.find(a=>a.type==="dots"),r=t.find(a=>a.type==="curve");return{dotFill:ZM(e,"dotFill",(n==null?void 0:n.aes.dotFill)??zv.color),dotSize:ZM(e,"dotSize",(n==null?void 0:n.aes.dotSize)??zv.size),lineType:ZM(e,"lineShape",(r==null?void 0:r.aes.lineShape)??"solid")}}var twt=class{constructor(){Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"canvasNode",null);Be(this,"svgLayerElement",null);Be(this,"svgLayerComponent",ie.jsx(ie.Fragment,{}));Be(this,"aesGetters",{dotSize:()=>2,dotFill:()=>Vt,lineType:()=>"solid"});Be(this,"tools",null);Be(this,"margins",{top:Gc,bottom:Gc,left:Gc,right:Gc});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,totalWidth:600,totalHeight:350});Be(this,"scales",{x:Zr().domain([0,10]).range([0,600]),y:Zr().domain([0,10]).range([350,0]),xOriginal:Zr().domain([0,10]).range([0,600]),yOriginal:Zr().domain([0,10]).range([350,0])});Be(this,"polygon",[]);Be(this,"onPolygonUpdateOutside",()=>{});Be(this,"onTooltipHintSwitch",()=>{});Be(this,"zoomStateKey","");Be(this,"selectedDot",null);Be(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Be(this,"mainTitle",[]);Be(this,"legend",{width:0,height:0,items:[]});Be(this,"notCalculatedProps",{});Be(this,"allDots",[]);Be(this,"allPossibleLabels",[]);Be(this,"visibleLabels",[]);Be(this,"lassoMode",!1);Be(this,"onPolygonUpdate",e=>{this.polygon=e,this.updateByLasso();let t=this.allDots.filter(n=>this.polygon.length>2&&VC(this.polygon,[n.x,n.y])).map(n=>n.data.key);this.onPolygonUpdateOutside(t)})}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=Qh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateViewport(e,t,n){let r=e.scale==="log"?j2():Zr(),{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 g=e.symmetricRange;if(g>=a&&g<=o){let C=Math.max(g-a,o-g);a=g-C,o=g+C}}if(typeof t.symmetricRange<"u"){let g=t.symmetricRange;if(g>=i&&g<=s){let C=Math.max(g-i,s-g);i=g-C,s=g+C}}let c=[0,this.chartSizes.chartWidth],f=r.copy().domain([a,o]).range([pS.LEFT,this.chartSizes.chartWidth-pS.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"?j2():Zr(),h=[this.chartSizes.chartHeight,0],v=A.copy().domain([i,s]).range([this.chartSizes.chartHeight-pS.BOTTOM,pS.TOP]);A.domain([v.invert(this.chartSizes.chartHeight),v.invert(0)]).range(h).nice(),this.scales.y=A,this.scales.yOriginal=A.copy()}updateCaptionsSize(e){let t=new hc("600 14px Arial");function n(o){return Math.max(...o.map(s=>t.getTextWidth(s)))}let{ticks:r,format:a}=_9(this.scales.y,e),i=n(r.map(a));this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:i}}createMainTitle(e){this.mainTitle=jv(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,Gc),bottom:Gc+this.captionsSizes.xAxisCaptionsWidth+k9,left:Gc+this.captionsSizes.yAxisCaptionsWidth+k9,right:this.legend.width+Gc},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,bs(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=[],i={width:0,height:0,left:0,top:0};if(n.forEach(A=>{let h=t[A.value];if(h.usedAes.length===0||!h.aesMap)return;if(h.values.length>100){console.warn(`Too many values for discrete legend (${h.values.length})`);return}let v={};h.values.forEach(b=>{v[b]||(v[b]={...zv}),h.usedAes.forEach(x=>{var B,k;x==="dotFill"&&(v[b].color=((B=h.aesMap[b])==null?void 0:B[x])??Vt),x==="dotSize"&&(v[b].size=((k=h.aesMap[b])==null?void 0:k[x])??3)})});let g=A.label??A.value,C=Qo().domain(h.values).range(h.values.map(b=>v[b]));a.push({...i,id:A.value,type:"dots",title:g,scale:C,values:h.values,labels:h.labels})}),r.forEach(A=>{if(A.type==="dots"&&th(A.aes.dotFill)){let{domain:h,range:v,columnName:g,type:C="linear"}=A.aes.dotFill,b=g.label??g.value,x=T9(v,h,"linear"),B=(C==="log"?nv():Zr()).domain(h).range([this.chartSizes.chartHeight,0]),k=h3(B,h);a.push({...i,id:"dotFill",type:"continuous",title:b,scale:x,tickPositionScale:B,values:k})}if(A.type==="dots"&&th(A.aes.dotSize)){let{columnName:h,domain:v,range:g}=A.aes.dotSize,C=h.label??h.value,b=rv(v,g),x=b.ticks(3),B=b.tickFormat(3),k=x.reduce((P,I)=>(P[String(I)]=B(I),P),{});a.push({...i,id:h.value,type:"size",title:C,scale:b,values:x,labels:k})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=S3(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+RZ,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}initSettings(e,t,n,r,a,i,o,s){let{xAxis:c,yAxis:f,size:A,title:h,legend:v}=t;this.updateChartSizes(A),this.updateViewport(c,f,n),this.updateCaptionsSize(r.y),this.updateLegendSize(v,o,s,i),this.createMainTitle(h),this.updateMargins(),this.aesGetters=YZ(a,i);let g=Oht().data(e).value(P=>{let I=Qg(this.aesGetters.dotFill(P.data)),$=!P.dimmed&&(this.polygon.length<2||VC(this.polygon,[P.x,P.y]))?1:.4;return KM(I,$)}),C=Z6t().equals((P,I)=>P===I).size(P=>GZ(this.aesGetters.dotSize(P.data))).crossValue(P=>P.x).mainValue(P=>P.y).decorate(P=>g(P)),b=jAt().scaleExtent([.1,1e3]).filter(()=>!this.lassoMode).on("start",()=>{this.selectedDot=null}).on("zoom",P=>{let I=P.transform,$=I.rescaleX(this.scales.xOriginal),N=I.rescaleY(this.scales.yOriginal);this.scales.x.domain($.domain()),this.scales.y.domain(N.domain()),this.zoomStateKey=`${I.x}_${I.y}_${I.k}`,this.renderSvgLayer(),this.renderWebglLayer()}).on("end",()=>{this.allPossibleLabels.forEach(P=>{P.x=this.scales.x(P.dot.x),P.y=this.scales.y(P.dot.y)}),this.visibleLabels=AS(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.renderSvgLayer()}),x=Yk().x(P=>P.x).y(P=>P.y).addAll(e),B=Fht().on("point",([P])=>{var Z,ee;if(!P){this.selectedDot=null,this.renderSvgLayer();return}let I=this.scales.x.invert(P.x),$=this.scales.y.invert(P.y),N=(Z=this.tools)==null?void 0:Z.qt.find(I,$),F=this.selectedDot&&!N||!this.selectedDot&&N||((ee=this.selectedDot)==null?void 0:ee.id)!==(N==null?void 0:N.id);this.selectedDot=N??null,F&&this.renderSvgLayer()}),k=ght({xScale:this.scales.x,yScale:this.scales.y}).xAxisHeight(()=>"0").yAxisWidth(()=>"0").svgPlotArea(J6t()).webglPlotArea(q6t().series([C]).mapping(P=>P)).decorate(P=>{let I=P.enter();I&&!this.svgLayerElement&&(I.style("grid-template-columns","0 auto 1fr auto 0"),I.style("grid-template-rows","0 auto 1fr auto 0"),this.svgLayerElement=I.select(".svg-plot-area.plot-area svg").node()),I.select(".svg-plot-area.plot-area").call(b).call(B)});this.tools={webglChart:k,zoom:b,qt:x,fillColor:g,pointSeries:C},bs(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){this.tools!==null&&(this.aesGetters=YZ(e,t),this.tools.fillColor.value(n=>{let r=this.aesGetters.dotFill??(()=>Vt),a=Qg(r(n.data)),i=!n.dimmed&&(this.polygon.length<2||VC(this.polygon,[n.x,n.y]))?1:.4;return KM(a,i)}))}updatePointSize(){this.tools!==null&&(bs(this.canvasNode).datum([...this.allDots]),this.tools.pointSeries.size(e=>GZ(this.aesGetters.dotSize(e.data))))}updateByLasso(){var e;this.tools!==null&&((e=this.tools)==null||e.fillColor.value(t=>{let n=this.aesGetters.dotFill??(()=>Vt),r=Qg(n(t.data)),a=!t.dimmed&&(this.polygon.length<2||VC(this.polygon,[t.x,t.y]))?1:.4;return KM(r,a)}),this.renderWebglLayer())}updateData(e){this.tools!==null&&(bs(this.canvasNode).datum(e),this.tools.fillColor.data(e),this.tools.qt=Yk().x(t=>t.x).y(t=>t.y).addAll(e))}render(e,t,n,r,a,i,o,s,c,f,A,h,v,g,C){if(this.lassoMode=g,this.tools===null)this.initSettings(a,t,i,r,s,c,f,A),this.onPolygonUpdateOutside=v,this.onTooltipHintSwitch=C;else{let{title:b,legend:x}=t;this.updateLegendSize(x,f,A,c),this.createMainTitle(b),this.updateMargins(),this.updateAes(s,c)}this.allDots=a,this.allPossibleLabels=h,this.allPossibleLabels.forEach(b=>{b.x=this.scales.x(b.dot.x),b.y=this.scales.y(b.dot.y)}),this.visibleLabels=AS(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.notCalculatedProps={settingsId:e,chartSettings:t,onlyPositive:r,keyColumn:n,dotsByGrouping:o,layers:c},this.renderWebglLayer(),this.renderSvgLayer()}renderWebglLayer(){var e,t;(e=this.tools)!=null&&e.webglChart&&bs(this.canvasNode).call((t=this.tools)==null?void 0:t.webglChart)}renderSvgLayer(){var t;this.visibleLabels.forEach(n=>{n.x=this.scales.x(n.dot.x),n.y=this.scales.y(n.dot.y)}),J9t(this.visibleLabels);let e={settingsId:this.notCalculatedProps.settingsId,chartSettings:this.notCalculatedProps.chartSettings,onlyPositive:this.notCalculatedProps.onlyPositive,keyColumn:this.notCalculatedProps.keyColumn,dotsByGrouping:this.notCalculatedProps.dotsByGrouping,layers:this.notCalculatedProps.layers,chartSizes:this.chartSizes,scales:this.scales,margins:this.margins,mainTitle:this.mainTitle,captionsSizes:this.captionsSizes,container:this.svgLayerElement,zoomStateKey:this.zoomStateKey,selectedDot:this.selectedDot,aesGetters:this.aesGetters,legendData:this.legend,labels:this.visibleLabels,onPolygonUpdate:this.onPolygonUpdate,onTooltipHintSwitch:this.onTooltipHintSwitch,lassoMode:this.lassoMode};this.svgLayerComponent=ie.jsx(j6t,{...e}),(t=this.reactRoot)==null||t.render(this.svgLayerComponent)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Qv,{message:e}))}},nwt=twt,JM=D.object({type:D.literal("grouping"),value:D.string()}),rwt=D.object({type:D.literal("dots"),aes:D.optional(D.object({dotFill:D.optional(D.union([D.string(),JM,Z0(D.string())])),dotShape:D.optional(D.union([kd,JM])),dotSize:D.optional(D.union([D.number(),Z0(D.number())]))}))}),awt=D.object({type:D.literal("curve"),smoothing:D.optional(D.boolean()),aes:D.optional(D.object({lineWidth:D.optional(D.number()),lineShape:D.optional(K1),lineColor:D.optional(D.union([D.string(),JM,Z0(D.string())])),opacity:D.optional(D.number())}))}),iwt=D.union([rwt,awt]),owt=D.object({type:D.literal("scatterplot-umap"),title:D.object({name:D.string(),show:D.optional(D.boolean()),position:D.optional(Fv)}),size:D.optional(D.object({width:D.optional(D.number()),height:D.optional(D.number())})),legend:D.optional(D.object({show:D.optional(D.boolean()),position:D.optional(Rm)})),tooltips:D.optional(D.object({show:D.optional(D.boolean()),content:D.optional(D.array(Yn))})),frame:D.optional(D.object({type:D.optional(g9)})),keyColumn:Yn,x:Yn,y:Yn,xAxis:D.optional(A3),yAxis:D.optional(A3),grouping:D.optional(D.array(Yn)),label:D.optional(Yn),highlight:D.optional(Yn),inheritedAes:D.optional(D.record(D.string(),d3)),layers:D.array(iwt),lassoMode:D.optional(D.boolean())}),lwt=class{constructor(e){Be(this,"type","dots");Be(this,"aes",{dotFill:Vt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},swt=class{constructor(e){Be(this,"type","curve");Be(this,"smoothing");Be(this,"aes",{lineColor:Vt,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},WZ=class{constructor(e){Be(this,"id");Be(this,"type","scatterplot-umap");Be(this,"keyColumn");Be(this,"x");Be(this,"y");Be(this,"grouping");Be(this,"label");Be(this,"highlight");Be(this,"chartSettings");Be(this,"inheritedAes");Be(this,"layers");Be(this,"lassoMode");var t,n,r,a;owt.parse(e),this.id=Zn.uniqueId("settings"),this.keyColumn=e.keyColumn,this.x=e.x,this.y=e.y,this.grouping=e.grouping??[],this.label=e.label??null,this.highlight=e.highlight??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 lwt(i);if(i.type==="curve")return new swt(i);throw new Error("Unknown layer type")}).filter(Boolean),this.lassoMode=e.lassoMode??!1}};function XZ(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function uwt(e,t,n,r){return t.reduce((a,i)=>{let o=Zn.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(([v,g])=>{XZ(g)&&g.value===i.value&&f.add(v)})});let A=o.reduce((h,v)=>(h[s(v)]=c(v),h),{});return a[i.value]={values:o.map(s).sort((h,v)=>A[h].localeCompare(A[v],"en",{numeric:!0})),usedAes:[...f],aesMap:r[i.value],labels:A},a},{})}var cwt=10;function fwt(e){let t=[],n=new hc("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==null?void 0:i.width)??0,height:((i==null?void 0:i.actualBoundingBoxAscent)??0)+((i==null?void 0:i.actualBoundingBoxDescent)??0),x:0,y:0,xPosition:"right",yPosition:"middle",bbox:{minX:0,maxX:0,minY:0,maxY:0},dot:r,padding:cwt})}return t}var dwt=class extends Lm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new nwt);Be(this,"onPolygonUpdate",()=>fw);Be(this,"onTooltipHintSwitch",()=>fw);Be(this,"calculatedData",null);this.settings=new WZ(n),r&&(this.onPolygonUpdate=r[0],this.onTooltipHintSwitch=r[1])}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 WZ(n),this.data=t,this._needUpdateCalculatedDataBySettings(r,this.settings)||this._needUpdateCalculatedDataByData(a,this.data)?this._updateData():this._updateAesInData();let i=r.layers.find(s=>s.type==="dots"),o=this.settings.layers.find(s=>s.type==="dots");i&&o&&i.aes.dotSize!==o.aes.dotSize&&typeof i.aes.dotSize=="number"&&typeof o.aes.dotSize=="number"&&this.chartRenderer.updatePointSize(),this._updateChart()}catch(r){r instanceof Error&&this.chartRenderer.renderError(r.message)}}updateChartState(t,n){t==="polygon"&&(this.chartRenderer.polygon=n,this._updateChart())}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,highlight:i,grouping:o,layers:s,inheritedAes:c}=this.settings,f={x:!0,y:!0},A={minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0},h=s.some(B=>B.type==="curve"),v=new Set,g={},C=this.data.rows.reduce((B,k)=>{if(k[t.value]===null||k[n.value]===null)return B;let P=Number(k[t.value]),I=Number(k[n.value]);f.x&&P!==null&&P<0&&(f.x=!1),f.y&&I!==null&&I<0&&(f.y=!1),P!==null&&P<A.minX&&(A.minX=P),P!==null&&P>A.maxX&&(A.maxX=P),I!==null&&I<A.minY&&(A.minY=I),I!==null&&I>A.maxY&&(A.maxY=I);let $=(a==null?void 0:a.valueLabels)??(a==null?void 0:a.value),N={x:P,y:I,id:String(k[r.value]),dimmed:i?!k[i.value]:!1,label:$&&k[$]?String(k[$]):null,data:k};if(h){let F=o.map(Z=>k[Z.value]).join("_");v.add(F),g[F]||(g[F]=[]),g[F].push(N)}return B.push(N),B},[]);C.sort((B,k)=>Number(k.dimmed)-Number(B.dimmed));let b=[...v];h&&b.forEach(B=>{g[B].sort((k,P)=>k.x-P.x)});let x=uwt(this.data,o,s,c);this.calculatedData={onlyPositive:f,dots:C,dotsByGrouping:g,groupingKeys:b,allPossibleLabels:fwt(C),dotsExtents:A,legendLabels:x},this.chartRenderer.updateData(C)}_updateAesInData(){let t=this.calculatedData;if(!t)return;let{layers:n,inheritedAes:r,grouping:a}=this.settings;a.forEach(i=>{let o=new Set;n.forEach(s=>{s.aes&&Object.entries(s.aes).forEach(([c,f])=>{XZ(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,lassoMode:s}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.onlyPositive,this.calculatedData.dots,this.calculatedData.dotsExtents,this.calculatedData.dotsByGrouping,a,i,this.calculatedData.legendLabels,o,this.calculatedData.allPossibleLabels,this.onPolygonUpdate,s,this.onTooltipHintSwitch)}},Awt=1e6;function hwt(e){let t=BI(e),n=Vs(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function pwt(e){let t=Vs(e),[n,r]=M0(e);return t===void 0||n===void 0||r===void 0?a=>a:a=>(a-t)/(r-n)}function vwt(e,t){return e==="standardScaling"?hwt(t):e==="meanNormalization"?pwt(t):n=>n}function mwt(e,t,n,r,a,i,o,s,c){let f=o.map(b=>b.join("_")),A={meta:{facetKeys:f,xKeys:[],yKeys:[],xLabels:{},yLabels:{},facetKeyValues:f.reduce((b,x,B)=>(b[x]=o[B],b),{}),valueExtentSize:[1/0,-1/0],valueExtentColor:[1/0,-1/0]},facets:{}},h=new Set,v=new Set,g=t.valueLabels??t.value,C=n.valueLabels??n.value;if(e.rows.forEach(b=>{let x=i.length?i.map($=>b[$.value]).join("_"):"null",B=b[t.value],k=b[n.value],P=b[r.value]??c,I=b[a.value]??c;if(!(B===null||k===null||P===null||I===null)){if(A.facets[x]||(A.facets[x]={xKeys:[],yKeys:[],cells:{}}),A.facets[x].xKeys.push(B),A.facets[x].yKeys.push(k),h.has(B)||(h.add(B),A.meta.xKeys.push(B)),v.has(k)||(v.add(k),A.meta.yKeys.push(k)),A.facets[x].cells[B]||(A.facets[x].cells[B]={}),A.meta.valueExtentSize[0]=Math.min(P,A.meta.valueExtentSize[0]),A.meta.valueExtentSize[1]=Math.max(P,A.meta.valueExtentSize[1]),A.meta.valueExtentColor[0]=Math.min(I,A.meta.valueExtentColor[0]),A.meta.valueExtentColor[1]=Math.max(I,A.meta.valueExtentColor[1]),A.facets[x].cells[B][k])throw Error(`More than 1 value for x=${B}, y=${k}`);if(A.meta.xLabels[B]&&String(b[g])!==A.meta.xLabels[B])throw Error(`More than 1 x-label value for x=${B}`);if(A.meta.yLabels[k]&&String(b[C])!==A.meta.yLabels[k])throw Error(`More than 1 y-label value for y=${k}`);A.meta.xLabels[B]=String(b[g]),A.meta.yLabels[k]=String(b[C]),A.meta&&(A.facets[x].cells[B][k]={id:`${B}_${k}`,x:B,y:k,sizeValue:P,normalizedSizeValue:P,colorValue:I,normalizedColorValue:I,data:b})}}),A.meta.facetKeys=A.meta.facetKeys.filter(b=>A.facets[b]),A.meta.facetKeys.forEach(b=>{let x=A.facets[b];if(x.xKeys=Zn.uniq(x.xKeys),x.yKeys=Zn.uniq(x.yKeys),x.xKeys.length*x.yKeys.length>Awt)throw Error(`Too many cells for graph rendering (${x.xKeys.length*x.yKeys.length})`)}),s){let b=[1/0,-1/0];A.meta.facetKeys.forEach(x=>{if(!A.facets[x])return;let{xKeys:B,yKeys:k,cells:P}=A.facets[x],I=s.direction==="row"?B:k,$=s.direction==="row"?k:B,N=s.direction==="row"?(F,Z)=>{var ee;return(ee=P[F])==null?void 0:ee[Z]}:(F,Z)=>{var ee;return(ee=P[Z])==null?void 0:ee[F]};$.forEach(F=>{let Z=[];I.forEach(le=>{var j;let Q=(j=N(le,F))==null?void 0:j.colorValue;Q!==void 0&&Z.push(Q)});let ee=vwt(s.method,Z);I.forEach(le=>{let Q=N(le,F);Q!==void 0&&(Q.normalizedColorValue=ee(Q.colorValue),b[0]=Math.min(Q.normalizedColorValue,b[0]),b[1]=Math.max(Q.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,Om=8,vS=30,ywt=48,wwt=24,mS=16,H3=4,gS=4,KZ=20,bwt=16,up={left:["axis","axisTitle"],right:["axis","axisTitle"],top:["axis","axisTitle","facetTitle"],bottom:["axis","axisTitle"]};function Cwt(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?gS:0,h=t.showTicks?gS:0,v=c&&e.showTitle?vS:0,g=s&&t.showTitle?vS:0,C=c&&e.showAxisLabels&&i>mS?n.xAxisCaptions+A+H3:0,b=s&&t.showAxisLabels&&o>mS?n.yAxisCaptions+h+H3:0;return{left:{axisTitle:t.position==="left"?g:0,axis:t.position==="left"?b:0},right:{axisTitle:t.position==="right"?g:0,axis:t.position==="right"?b:0},top:{facetTitle:f?ywt:0,axisTitle:e.position==="top"?v:0,axis:e.position==="top"?C:0},bottom:{axisTitle:e.position==="bottom"?v:0,axis:e.position==="bottom"?C:0}}}function Swt(e,t,n){return{left:up.left.reduce((r,a,i)=>{let o=i>0?up.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:up.right.reduce((r,a,i)=>{let o=i>0?up.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:up.top.reduce((r,a,i)=>{let o=i>0?up.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:up.bottom.reduce((r,a,i)=>{let o=i>0?up.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 xwt(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 v=n.meta.xKeys,g=t.x,C=g>mS,b=a[v[0]];c=Math.max(c,(A&&C?r.getTextWidth(b)*Math.cos(o):0)-g/2)}let h=e.yAxisLabels===45;if(h){let v=n.meta.yKeys;if(v.length){let g=t.y,C=g>mS,b=i[v[v.length-1]];f=Math.max(f,(h&&C?r.getTextWidth(b)*Math.cos(s):0)-g/2)}}return{xCaptionTail:c,yCaptionTail:f}}function Ewt({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 v=i.showTicks?gS:0,g=o.showTicks?gS:0,C=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,B=e.left.axis.isVisible||e.right.axis.isVisible,k=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,P=e.left.axis.isVisible?e.left.axis:e.right.axis;return ie.jsxs("g",{children:[ie.jsxs("g",{children:[b.isVisible&&ie.jsxs("g",{transform:`translate(${b.x},${b.y})`,children:[ie.jsx("text",{x:b.width/2,y:b.height/2,textAnchor:"middle",dominantBaseline:"central",children:i.title}),t&&ie.jsx("rect",{width:b.width,height:b.height,stroke:Vt,fill:"none"})]}),C&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${x.x},${x.y})`,children:[n.map(I=>{let $=f.xAxisLabels!==0,N=i.position==="bottom",F=N?0:x.height,Z=N?F+v:F-v,ee=N?Z+H3:Z-H3,le=a.x(I)+s/2,Q=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:le,y1:F,y2:Z,stroke:Vt}),ie.jsx("text",{x:le,y:ee,textAnchor:$?N?"end":"start":"middle",transform:`rotate(${Q},${le},${ee})`,dominantBaseline:$?"central":N?"hanging":"auto",children:A[I]})]},I)}),t&&ie.jsx("rect",{width:x.width,height:x.height,stroke:Vt,fill:"none"})]})]}),ie.jsxs("g",{children:[k.isVisible&&ie.jsx("g",{transform:`translate(
|
|
15129
15129
|
${k.x+k.width/2},
|
|
15130
|
-
${k.y+k.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:k.x,y:k.y,width:k.width,height:k.height,stroke:Vt,fill:"none"}),B&&ie.jsx("g",{fontSize:"14px",transform:`translate(${P.x},${P.y})`,children:r.map(I=>{let $=f.yAxisLabels!==0,N=o.position==="left",F=-(90-f.yAxisLabels),Z=f.yAxisLabels===0?"middle":N?"end":"start",ee=$?"central":N?"auto":"hanging",le=N?P.width:0,Q=N?le-g:le+g,j=N?Q-H3:Q+H3,U=a.y(I)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:Q,y1:U,y2:U,stroke:Vt}),ie.jsx("text",{x:j,y:U,textAnchor:Z,transform:`rotate(${F},${j},${U})`,dominantBaseline:ee,children:h[I]})]},I)})}),t&&ie.jsx("rect",{x:P.x,y:P.y,height:P.height,width:P.width,stroke:Vt,fill:"none"})]})]})}function yS(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 Bwt(e,t,n=[]){let r=e.data,a=[`X: ${t.xLabels[e.x]}`,`Y: ${t.yLabels[e.y]}`,`Value (color): ${yS(e.colorValue)}${e.colorValue!==e.normalizedColorValue?` (${yS(e.normalizedColorValue)})`:""}`,`Value (size): ${yS(e.sizeValue)}${e.sizeValue!==e.normalizedSizeValue?` (${yS(e.normalizedSizeValue)})`:""}`];for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function _wt({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:v,margins:g,tooltipsContainer:C,tooltipsData:b}){let[x,B]=tn.useState(),{xAxis:k,yAxis:P,tooltips:I}=o,{width:$,height:N}=t.inner,{padding:F,sideElementBBoxes:Z}=t,{xLabels:ee,yLabels:le}=s,Q=n.x.domain(),j=n.y.domain(),U={left:g.left+t.left+F.left,right:v.totalWidth-(g.left+t.left+F.left),top:g.top+t.top+F.top,bottom:v.totalHeight-(g.top+t.top+F.top)},Y=!1,X=b.fixed&&x;return ie.jsxs("g",{transform:`translate(${t.left},${t.top})`,fontSize:bwt,children:[ie.jsxs("g",{transform:`translate(${F.left},${F.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(", ")}),Y,Q.map(te=>j.map(pe=>{var fe;let ae=(fe=r==null?void 0:r[te])==null?void 0:fe[pe],ge=X&&ae&&b.selectedData===ae,me=ae?ie.jsx("circle",{cx:n.x(te)+c/2,cy:n.y(pe)+f/2,r:i(ae.normalizedSizeValue),stroke:A.cellStrokeColor,fill:ae.colorValue===null?A.emptyCellColor:a(ae.normalizedColorValue),onMouseOver:()=>b.onMouseOver(ae,e),onMouseLeave:()=>b.onMouseLeave()},ae?ae.id:`${te}_${pe}`):null;return ge?cu.createPortal(me,x):me})),ie.jsx("g",{children:o.frame.type==="full"&&ie.jsx("rect",{fill:"none",stroke:Vt,x:"0",y:"0",width:$,height:N})}),ie.jsx("g",{fontWeight:"500",children:ie.jsx(Ewt,{sideElementBBoxes:Z,xKeys:Q,yKeys:j,scales:n,xAxis:k,yAxis:P,stepX:c,stepY:f,labelAngles:h,xLabels:ee,yLabels:le,debug:Y})}),b.fixed&&ie.jsx("rect",{width:v.chartWidth,height:v.chartHeight,fill:"rgba(255,255,255,0.8)"}),ie.jsx("g",{ref:te=>{te&&!x&&B(te)}})]}),o.tooltips.show&&b.selectedData&&b.currentFacet===e&&ie.jsx(fu,{content:Bwt(b.selectedData,s,I==null?void 0:I.content),x:n.x(String(b.selectedData.x))+c/2,y:n.y(String(b.selectedData.y))+f/2,offset:Q.length>1?c/2:0,active:!0,sideDistances:U,container:C,onClose:b.onClose,fixed:b.fixed})]})}function Twt({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:v,legend:g,aes:C,columnsCount:b,labelAngles:x,onTooltipHintSwitch:B}){let k=p3(B),[P,I]=tn.useState(),$=tn.useRef(null);tn.useEffect(()=>{$.current&&I($.current)},[]);let N=i[o[0]].padding,F=i[o[b-1]].padding,Z=e.left+a.chartsWidth+KZ,ee=e.top+N.top;return ie.jsx(y3,{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:Nm}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(w3,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:N.left,rightPadding:F.right,chartsWidth:a.chartsWidth}),o.map(le=>{let{cells:Q}=A[le];return ie.jsx(_wt,{captionsSizes:t,facetKey:le,dimensions:i[le],scales:s,cells:Q,cellsMeta:h,stepX:v.x,stepY:v.y,colorScale:c,sizeScale:f,chartSettings:r,aes:C,labelAngles:x,margins:e,chartSizes:a,tooltipsData:k,tooltipsContainer:P},le)})]}),ie.jsx("g",{transform:`translate(${Z},${ee})`,children:ie.jsx(b3,{legendData:g})}),ie.jsx("g",{ref:$,style:{outline:"none"}})]})})}var kwt=(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 Mwt(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])),kwt(t,r)}var Pwt=class{constructor(){Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"component",ie.jsx(ie.Fragment,{}));Be(this,"chartsDimensions",{});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Be(this,"margins",{top:Om,bottom:Om,left:Om,right:Om});Be(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xCaptionTail:0,yCaptionTail:0});Be(this,"labelAngles",{xAxisLabels:0,yAxisLabels:0});Be(this,"columnsCount",1);Be(this,"rowsCount",1);Be(this,"scales",{x:Qo().domain(["null"]).range([1]),y:Qo().domain(["null"]).range([1])});Be(this,"step",{x:10,y:10});Be(this,"colorScale",Zr().domain([0,1]).range(["white","black"]));Be(this,"sizeScale",rv().domain([0,1]).range([3,20]));Be(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=Qh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Om,bottom:Om,left:Om,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=[],i=Math.min(Math.max(this.chartSizes.chartHeight,250),350),o=Math.max(this.chartSizes.chartHeight,i),s={width:0,height:0,left:0,top:0},c=this.colorScale.domain(),f=h3(this.colorScale,[c[0],c[c.length-1]]),A=t.label??t.value,h=Zr([f[0],f[f.length-1]],[i,0]);a.push({id:"colorValue",type:"continuous",scale:this.colorScale,tickPositionScale:h,values:f,title:A,...s});let v=n.label??n.value,g=this.sizeScale.ticks(3),C=this.sizeScale.tickFormat(3),b=g.reduce((I,$)=>(I[String($)]=C($),I),{});if(a.push({id:"sizeValue",type:"size",title:v,scale:this.sizeScale,values:g,labels:b,...s}),!a.length){this.legend={width:0,height:0,items:[]};return}let x=S3(a,o,i),B=x[x.length-1],k=B.left+B.width+2*KZ,P=this.chartsDimensions[r[0]].padding;this.legend={width:k,height:o+P.top,items:x}}updateCaptionsSize(e,t,n){let r=new hc("bold 14px Arial"),{xKeys:a,yKeys:i,xLabels:o,yLabels:s}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle};let c=0,f=0;for(let C of a){let b=r.getTextWidth(o[C]);b>c&&(c=b)}for(let C of i){let b=r.getTextWidth(s[C]);b>f&&(f=b)}let{xCaptionTail:A,yCaptionTail:h}=xwt(this.labelAngles,this.step,e,r),v=this.labelAngles.xAxisLabels/180*Math.PI,g=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:A,yCaptionTail:h,xAxisCaptions:c*Math.sin(v)||vS,yAxisCaptions:f*Math.sin(g)||vS}}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,v)=>{let g=v%this.columnsCount+1,C=iZ(v,e.length,this.columnsCount,this.rowsCount),b=this.chartSizes.chartWidth,x=this.chartSizes.chartHeight,B=Cwt(n,r,this.captionsSizes,C,e,this.step.x,this.step.y);function k(F){return Math.max(up[F].reduce((Z,ee)=>Z+B[F][ee],0),gwt)}let P={left:k("left"),right:k("right"),top:k("top"),bottom:k("bottom")};P.left<this.captionsSizes.xCaptionTail&&(P.left=this.captionsSizes.xCaptionTail),P.bottom<this.captionsSizes.yCaptionTail&&(P.bottom=this.captionsSizes.yCaptionTail);let I=Swt(B,b,x),$=b+P.left+P.right,N=x+P.top+P.bottom;this.chartsDimensions[h]={left:s,top:c,inner:{width:b,height:x},outer:{width:$,height:N},padding:P,sideElementBBoxes:I,chartEdgeSides:C},s+=$,g===this.columnsCount&&(s=0,c+=N)});let f=e.slice(0,this.columnsCount).reduce((h,v)=>h+this.chartsDimensions[v].outer.width,0),A=e.filter((h,v)=>v%this.columnsCount===0).reduce((h,v)=>h+this.chartsDimensions[v].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=(C,b={})=>[...C].sort((x,B)=>n.sorting==="asc"?(b[x]??x).localeCompare(b[B]??B,"en",{numeric:!0}):(b[B]??B).localeCompare(b[x]??x,"en",{numeric:!0})),f=(C,b={})=>[...C].sort((x,B)=>r.sorting==="asc"?(b[x]??x).localeCompare(b[B]??B,"en",{numeric:!0}):(b[B]??B).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 v=new Array(A.length).fill(null).map((C,b)=>b*this.step.x),g=new Array(h.length).fill(null).map((C,b)=>b*this.step.y);this.scales.x=Qo().domain(A).range(v),this.scales.y=Qo().domain(h).range(g)}updateAesScale(e,t,n,r){this.colorScale=Zr().domain(Mwt(r,e.colorsList.length,n)).range(e.colorsList),this.sizeScale=rv(t,[e.minRadius,e.maxRadius])}render(e,t,n,r,a,i,o,s,c,f){var P;let{meta:A,facets:h}=a,{valueExtentSize:v,valueExtentColor:g}=A,{xAxis:C,yAxis:b,title:x,size:B}=t;this.updateChartsSizes(a,B),this.updateAesScale(c,v,g,s),this.updateScales(a,B,t.xAxis,t.yAxis),this.updateCaptionsSize(a,C,b),this.updateChartDimensions(r,n,C,b),this.updateLegendSize(t.legend,i,o,r),this.updateMargins(x);let k=ie.jsx(Twt,{aes:c,captionsSizes:this.captionsSizes,cellsMeta:A,columnsCount:this.columnsCount,chartsDimensions:this.chartsDimensions,chartSettings:t,chartSizes:this.chartSizes,sizeScale:this.sizeScale,colorScale:this.colorScale,facetKeys:r,facetSettings:n,groupedCells:h,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step,onTooltipHintSwitch:f});this.component=k,(P=this.reactRoot)==null||P.render(k)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Qv,{message:e}))}},Hwt=Pwt,ZZ=class{constructor(e){Be(this,"id");Be(this,"type","bubble");Be(this,"facetSettings");Be(this,"valueColumnSize");Be(this,"valueColumnColor");Be(this,"xColumn");Be(this,"yColumn");Be(this,"facetBy");Be(this,"normalization");Be(this,"NAValueAs");Be(this,"chartSettings");Be(this,"aes");var a,i,o,s,c,f,A,h,v,g;q3t.parse(e),this.id=Zn.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:((v=e.aes)==null?void 0:v.cellStrokeColor)??Vt,emptyCellColor:((g=e.aes)==null?void 0:g.emptyCellColor)??"white"}}},Dwt=class extends Lm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new Hwt);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new ZZ(n),r&&(this.onTooltipHintSwitch=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 ZZ(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(),b5(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(v=>this.data.getColumnCategories(v.value)),f=c.length?xZ([...c]):[["null"]],A=t.map(v=>v.value)??null;this.data.setGrouping([...A]);let h=mwt(this.data,n,r,a,i,t,f,o,s);this.calculatedData={facetKeys:h.meta.facetKeys,groupedCellsData:h}}_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,this.onTooltipHintSwitch)}};function $wt(e){return"type"in e&&e.type==="columns"}var JZ=class j${constructor(t,n){Be(this,"id");Be(this,"data");Be(this,"rowsCount");Be(this,"columnNames");Be(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 j$)return t;if($wt(t))return new j$(t.id,t.values);f1(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 Zn.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=Zn.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}},Iwt=class U${constructor(t){Be(this,"node");Be(this,"chart");this.chart=t}static createChart(t,n,r){let{type:a}=n;if(a==="discrete")return new I7t(t,n,r);if(a==="dendro")return new M4t(t,n,r);if(a==="scatterplot")return new L6t(t,n,r);if(a==="scatterplot-umap")return new dwt(t,n,r);if(a==="heatmap")return new g9t(t,n,r);if(a==="histogram")return new G9t(t,n,r);if(a==="bubble")return new Dwt(t,n,r);f1(a,`Unknown chart type: ${a}`)}static newPlot(t,n,r){let a=JZ.from(t);return new this(U$.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=U$.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(JZ.from(t),n)}updateChartState(t,n){this.chart.updateChartState(t,n)}export(){return this.chart.export()}};/*! Bundled license information:
|
|
15130
|
+
${k.y+k.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:k.x,y:k.y,width:k.width,height:k.height,stroke:Vt,fill:"none"}),B&&ie.jsx("g",{fontSize:"14px",transform:`translate(${P.x},${P.y})`,children:r.map(I=>{let $=f.yAxisLabels!==0,N=o.position==="left",F=-(90-f.yAxisLabels),Z=f.yAxisLabels===0?"middle":N?"end":"start",ee=$?"central":N?"auto":"hanging",le=N?P.width:0,Q=N?le-g:le+g,j=N?Q-H3:Q+H3,U=a.y(I)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:Q,y1:U,y2:U,stroke:Vt}),ie.jsx("text",{x:j,y:U,textAnchor:Z,transform:`rotate(${F},${j},${U})`,dominantBaseline:ee,children:h[I]})]},I)})}),t&&ie.jsx("rect",{x:P.x,y:P.y,height:P.height,width:P.width,stroke:Vt,fill:"none"})]})]})}function yS(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 Bwt(e,t,n=[]){let r=e.data,a=[`X: ${t.xLabels[e.x]}`,`Y: ${t.yLabels[e.y]}`,`Value (color): ${yS(e.colorValue)}${e.colorValue!==e.normalizedColorValue?` (${yS(e.normalizedColorValue)})`:""}`,`Value (size): ${yS(e.sizeValue)}${e.sizeValue!==e.normalizedSizeValue?` (${yS(e.normalizedSizeValue)})`:""}`];for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function _wt({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:v,margins:g,tooltipsContainer:C,tooltipsData:b}){let[x,B]=tn.useState(),{xAxis:k,yAxis:P,tooltips:I}=o,{width:$,height:N}=t.inner,{padding:F,sideElementBBoxes:Z}=t,{xLabels:ee,yLabels:le}=s,Q=n.x.domain(),j=n.y.domain(),U={left:g.left+t.left+F.left,right:v.totalWidth-(g.left+t.left+F.left),top:g.top+t.top+F.top,bottom:v.totalHeight-(g.top+t.top+F.top)},Y=!1,X=b.fixed&&x;return ie.jsxs("g",{transform:`translate(${t.left},${t.top})`,fontSize:bwt,children:[ie.jsxs("g",{transform:`translate(${F.left},${F.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(", ")}),Y,Q.map(te=>j.map(pe=>{var fe;let ae=(fe=r==null?void 0:r[te])==null?void 0:fe[pe],ge=X&&ae&&b.selectedData===ae,me=ae?ie.jsx("circle",{cx:n.x(te)+c/2,cy:n.y(pe)+f/2,r:i(ae.normalizedSizeValue),stroke:A.cellStrokeColor,fill:ae.colorValue===null?A.emptyCellColor:a(ae.normalizedColorValue),onMouseOver:()=>b.onMouseOver(ae,e),onMouseLeave:()=>b.onMouseLeave()},ae?ae.id:`${te}_${pe}`):null;return ge?cu.createPortal(me,x):me})),ie.jsx("g",{children:o.frame.type==="full"&&ie.jsx("rect",{fill:"none",stroke:Vt,x:"0",y:"0",width:$,height:N})}),ie.jsx("g",{fontWeight:"500",children:ie.jsx(Ewt,{sideElementBBoxes:Z,xKeys:Q,yKeys:j,scales:n,xAxis:k,yAxis:P,stepX:c,stepY:f,labelAngles:h,xLabels:ee,yLabels:le,debug:Y})}),b.fixed&&ie.jsx("rect",{width:v.chartWidth,height:v.chartHeight,fill:"rgba(255,255,255,0.8)"}),ie.jsx("g",{ref:te=>{te&&!x&&B(te)}})]}),o.tooltips.show&&b.selectedData&&b.currentFacet===e&&ie.jsx(fu,{content:Bwt(b.selectedData,s,I==null?void 0:I.content),x:n.x(String(b.selectedData.x))+c/2,y:n.y(String(b.selectedData.y))+f/2,offset:Q.length>1?c/2:0,active:!0,sideDistances:U,container:C,onClose:b.onClose,fixed:b.fixed})]})}function Twt({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:v,legend:g,aes:C,columnsCount:b,labelAngles:x,onTooltipHintSwitch:B}){let k=p3(B),[P,I]=tn.useState(),$=tn.useRef(null);tn.useEffect(()=>{$.current&&I($.current)},[]);let N=i[o[0]].padding,F=i[o[b-1]].padding,Z=e.left+a.chartsWidth+KZ,ee=e.top+N.top;return ie.jsx(y3,{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:Nm}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(w3,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:N.left,rightPadding:F.right,chartsWidth:a.chartsWidth}),o.map(le=>{let{cells:Q}=A[le];return ie.jsx(_wt,{captionsSizes:t,facetKey:le,dimensions:i[le],scales:s,cells:Q,cellsMeta:h,stepX:v.x,stepY:v.y,colorScale:c,sizeScale:f,chartSettings:r,aes:C,labelAngles:x,margins:e,chartSizes:a,tooltipsData:k,tooltipsContainer:P},le)})]}),ie.jsx("g",{transform:`translate(${Z},${ee})`,children:ie.jsx(b3,{legendData:g})}),ie.jsx("g",{ref:$,style:{outline:"none"}})]})})}var kwt=(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 Mwt(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])),kwt(t,r)}var Pwt=class{constructor(){Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"component",ie.jsx(ie.Fragment,{}));Be(this,"chartsDimensions",{});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Be(this,"margins",{top:Om,bottom:Om,left:Om,right:Om});Be(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xCaptionTail:0,yCaptionTail:0});Be(this,"labelAngles",{xAxisLabels:0,yAxisLabels:0});Be(this,"columnsCount",1);Be(this,"rowsCount",1);Be(this,"scales",{x:Qo().domain(["null"]).range([1]),y:Qo().domain(["null"]).range([1])});Be(this,"step",{x:10,y:10});Be(this,"colorScale",Zr().domain([0,1]).range(["white","black"]));Be(this,"sizeScale",rv().domain([0,1]).range([3,20]));Be(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=Qh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Om,bottom:Om,left:Om,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=[],i=Math.min(Math.max(this.chartSizes.chartHeight,250),350),o=Math.max(this.chartSizes.chartHeight,i),s={width:0,height:0,left:0,top:0},c=this.colorScale.domain(),f=h3(this.colorScale,[c[0],c[c.length-1]]),A=t.label??t.value,h=Zr([f[0],f[f.length-1]],[i,0]);a.push({id:"colorValue",type:"continuous",scale:this.colorScale,tickPositionScale:h,values:f,title:A,...s});let v=n.label??n.value,g=this.sizeScale.ticks(3),C=this.sizeScale.tickFormat(3),b=g.reduce((I,$)=>(I[String($)]=C($),I),{});if(a.push({id:"sizeValue",type:"size",title:v,scale:this.sizeScale,values:g,labels:b,...s}),!a.length){this.legend={width:0,height:0,items:[]};return}let x=S3(a,o,i),B=x[x.length-1],k=B.left+B.width+2*KZ,P=this.chartsDimensions[r[0]].padding;this.legend={width:k,height:o+P.top,items:x}}updateCaptionsSize(e,t,n){let r=new hc("bold 14px Arial"),{xKeys:a,yKeys:i,xLabels:o,yLabels:s}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle};let c=0,f=0;for(let C of a){let b=r.getTextWidth(o[C]);b>c&&(c=b)}for(let C of i){let b=r.getTextWidth(s[C]);b>f&&(f=b)}let{xCaptionTail:A,yCaptionTail:h}=xwt(this.labelAngles,this.step,e,r),v=this.labelAngles.xAxisLabels/180*Math.PI,g=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:A,yCaptionTail:h,xAxisCaptions:c*Math.sin(v)||vS,yAxisCaptions:f*Math.sin(g)||vS}}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,v)=>{let g=v%this.columnsCount+1,C=iZ(v,e.length,this.columnsCount,this.rowsCount),b=this.chartSizes.chartWidth,x=this.chartSizes.chartHeight,B=Cwt(n,r,this.captionsSizes,C,e,this.step.x,this.step.y);function k(F){return Math.max(up[F].reduce((Z,ee)=>Z+B[F][ee],0),gwt)}let P={left:k("left"),right:k("right"),top:k("top"),bottom:k("bottom")};P.left<this.captionsSizes.xCaptionTail&&(P.left=this.captionsSizes.xCaptionTail),P.bottom<this.captionsSizes.yCaptionTail&&(P.bottom=this.captionsSizes.yCaptionTail);let I=Swt(B,b,x),$=b+P.left+P.right,N=x+P.top+P.bottom;this.chartsDimensions[h]={left:s,top:c,inner:{width:b,height:x},outer:{width:$,height:N},padding:P,sideElementBBoxes:I,chartEdgeSides:C},s+=$,g===this.columnsCount&&(s=0,c+=N)});let f=e.slice(0,this.columnsCount).reduce((h,v)=>h+this.chartsDimensions[v].outer.width,0),A=e.filter((h,v)=>v%this.columnsCount===0).reduce((h,v)=>h+this.chartsDimensions[v].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=(C,b={})=>[...C].sort((x,B)=>n.sorting==="asc"?(b[x]??x).localeCompare(b[B]??B,"en",{numeric:!0}):(b[B]??B).localeCompare(b[x]??x,"en",{numeric:!0})),f=(C,b={})=>[...C].sort((x,B)=>r.sorting==="asc"?(b[x]??x).localeCompare(b[B]??B,"en",{numeric:!0}):(b[B]??B).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 v=new Array(A.length).fill(null).map((C,b)=>b*this.step.x),g=new Array(h.length).fill(null).map((C,b)=>b*this.step.y);this.scales.x=Qo().domain(A).range(v),this.scales.y=Qo().domain(h).range(g)}updateAesScale(e,t,n,r){this.colorScale=Zr().domain(Mwt(r,e.colorsList.length,n)).range(e.colorsList),this.sizeScale=rv(t,[e.minRadius,e.maxRadius])}render(e,t,n,r,a,i,o,s,c,f){var P;let{meta:A,facets:h}=a,{valueExtentSize:v,valueExtentColor:g}=A,{xAxis:C,yAxis:b,title:x,size:B}=t;this.updateChartsSizes(a,B),this.updateAesScale(c,v,g,s),this.updateScales(a,B,t.xAxis,t.yAxis),this.updateCaptionsSize(a,C,b),this.updateChartDimensions(r,n,C,b),this.updateLegendSize(t.legend,i,o,r),this.updateMargins(x);let k=ie.jsx(Twt,{aes:c,captionsSizes:this.captionsSizes,cellsMeta:A,columnsCount:this.columnsCount,chartsDimensions:this.chartsDimensions,chartSettings:t,chartSizes:this.chartSizes,sizeScale:this.sizeScale,colorScale:this.colorScale,facetKeys:r,facetSettings:n,groupedCells:h,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step,onTooltipHintSwitch:f});this.component=k,(P=this.reactRoot)==null||P.render(k)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Qv,{message:e}))}},Hwt=Pwt,ZZ=class{constructor(e){Be(this,"id");Be(this,"type","bubble");Be(this,"facetSettings");Be(this,"valueColumnSize");Be(this,"valueColumnColor");Be(this,"xColumn");Be(this,"yColumn");Be(this,"facetBy");Be(this,"normalization");Be(this,"NAValueAs");Be(this,"chartSettings");Be(this,"aes");var a,i,o,s,c,f,A,h,v,g;q3t.parse(e),this.id=Zn.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:((v=e.aes)==null?void 0:v.cellStrokeColor)??Vt,emptyCellColor:((g=e.aes)==null?void 0:g.emptyCellColor)??"white"}}},Dwt=class extends Lm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new Hwt);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new ZZ(n),r&&(this.onTooltipHintSwitch=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 ZZ(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(),b5(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(v=>this.data.getColumnCategories(v.value)),f=c.length?xZ([...c]):[["null"]],A=t.map(v=>v.value)??null;this.data.setGrouping([...A]);let h=mwt(this.data,n,r,a,i,t,f,o,s);this.calculatedData={facetKeys:h.meta.facetKeys,groupedCellsData:h}}_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,this.onTooltipHintSwitch)}};function $wt(e){return"type"in e&&e.type==="columns"}var JZ=class j${constructor(t,n){Be(this,"id");Be(this,"data");Be(this,"rowsCount");Be(this,"columnNames");Be(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 j$)return t;if($wt(t))return new j$(t.id,t.values);f1(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 Zn.uniq(this.getColumn(t)).filter(n=>n!==null).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=Zn.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}},Iwt=class U${constructor(t){Be(this,"node");Be(this,"chart");this.chart=t}static createChart(t,n,r){let{type:a}=n;if(a==="discrete")return new I7t(t,n,r);if(a==="dendro")return new M4t(t,n,r);if(a==="scatterplot")return new L6t(t,n,r);if(a==="scatterplot-umap")return new dwt(t,n,r);if(a==="heatmap")return new g9t(t,n,r);if(a==="histogram")return new G9t(t,n,r);if(a==="bubble")return new Dwt(t,n,r);f1(a,`Unknown chart type: ${a}`)}static newPlot(t,n,r){let a=JZ.from(t);return new this(U$.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=U$.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(JZ.from(t),n)}updateChartState(t,n){this.chart.updateChartState(t,n)}export(){return this.chart.export()}};/*! Bundled license information:
|
|
15131
15131
|
|
|
15132
15132
|
@stdlib/utils-define-property/lib/define_property.js:
|
|
15133
15133
|
(**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/graph-maker",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.119",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/graph-maker.umd.cjs",
|
|
6
6
|
"module": "dist/graph-maker.js",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@ag-grid-community/core": "^32.3.3",
|
|
34
34
|
"@milaboratories/helpers": "^1.6.11",
|
|
35
|
-
"@milaboratories/miplots4": "^1.0.
|
|
35
|
+
"@milaboratories/miplots4": "^1.0.113",
|
|
36
36
|
"@milaboratories/pf-plots": "^1.1.18",
|
|
37
37
|
"@platforma-sdk/model": "^1.34.10",
|
|
38
38
|
"@platforma-sdk/ui-vue": "^1.34.15",
|