@milaboratories/graph-maker 1.1.114 → 1.1.115

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.
@@ -90989,12 +90989,12 @@ var TSt = class extends a2 {
90989
90989
  if (_[t.value] === null || _[n.value] === null) return B;
90990
90990
  let D = Number(_[t.value]), R = Number(_[n.value]);
90991
90991
  f.x && D !== null && D < 0 && (f.x = !1), f.y && R !== null && R < 0 && (f.y = !1), D !== null && D < A.minX && (A.minX = D), D !== null && D > A.maxX && (A.maxX = D), R !== null && R < A.minY && (A.minY = R), R !== null && R > A.maxY && (A.maxY = R);
90992
- let H = { x: D, y: R, id: String(_[r.value]), dimmed: i ? !_[i.value] : !1, label: a && _[a.value] ? String(_[a.value]) : null, data: _ };
90992
+ let H = (a == null ? void 0 : a.valueLabels) ?? (a == null ? void 0 : a.value), F = { x: D, y: R, id: String(_[r.value]), dimmed: i ? !_[i.value] : !1, label: H && _[H] ? String(_[H]) : null, data: _ };
90993
90993
  if (d) {
90994
- let F = o.map((Q) => _[Q.value]).join("_");
90995
- h.add(F), g[F] || (g[F] = []), g[F].push(H);
90994
+ let Q = o.map((K) => _[K.value]).join("_");
90995
+ h.add(Q), g[Q] || (g[Q] = []), g[Q].push(F);
90996
90996
  }
90997
- return B.push(H), B;
90997
+ return B.push(F), B;
90998
90998
  }, []);
90999
90999
  C.sort((B, _) => Number(_.dimmed) - Number(B.dimmed));
91000
91000
  let w = [...h];
@@ -15124,7 +15124,7 @@ void main() {
15124
15124
  `)),_(!0)}let Z=ie.jsxs("g",{className:aK,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:X2t(v,c),d:j2t(A,p,v,y,b),fill:$t}),ie.jsxs("g",{fontSize:"14px",fontFamily:"Manrope",fill:"white",transform:W2t(v,A,p,c,y,b),children:[e.map((ee,le)=>ie.jsx("text",{x:Jb,y:Zb+SD*le+SD/2,dominantBaseline:"central",children:ee},le)),a&&ie.jsxs("g",{transform:C,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?nK:rK}),ie.jsx("rect",{x:"-8",y:"-8",width:"24",height:"24",fill:"transparent",onClick:s,onMouseOver:()=>N(!0),onMouseLeave:()=>N(!1),style:{cursor:"pointer"}})]}),a&&ie.jsxs("g",{transform:x,children:[k?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:I?nK:rK})}),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:Q,onMouseOver:()=>F(!0),onMouseLeave:()=>F(!1),style:{cursor:"pointer"}})]})]})]});return i===null?Z:uu.createPortal(Z,i)}function J2t(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 q2t(e,t){return[`X: ${t[e.x]}`,`Node: ${e.y}`,`Value: ${J2t(e.value)}`]}function e7t({heatmapData:e,scales:t,step:n,colorScale:r,tooltipsContainer:a,chartSizes:i,selectedNode:o,labels:s}){let{xKeys:c,yKeys:f,cells:A,meta:p}=e,[v,y]=tn.useState(null),b={left:i.treeWidth+30+Qu.LEFT,right:i.heatmapWidth+Qu.RIGHT,top:Qu.TOP,bottom:i.heatmapHeight+Qu.BOTTOM};return ie.jsxs("g",{onMouseLeave:()=>y(null),children:[s.length&&ie.jsx("g",{transform:"translate(0,-8)",children:c.map((C,x)=>ie.jsxs("text",{x:t.x(C)+2,fontWeight:"500",children:[ie.jsx("title",{children:p.xLabels[C]}),s[x]]},C))}),c.map(C=>f.map(x=>{var _;let k=(_=A==null?void 0:A[C])==null?void 0:_[x];return ie.jsx("rect",{x:t.x(C),y:t.y(x),width:n.x,height:n.y,stroke:"white",strokeWidth:"1px",fill:k?r(k==null?void 0:k.value):Dyt,onMouseOver:()=>{(k==null?void 0:k.value)!==null&&typeof(k==null?void 0:k.value)<"u"?y(k):y(null)},opacity:o&&o.data.rawData[0].id!==(k==null?void 0:k.data.id)?wD:1},k?k.id:`${C}_${x}`)})),s.length&&ie.jsx("line",{x1:"0",x2:i.heatmapWidth,y1:"0",y2:"0",stroke:$t,strokeWidth:"1px"}),v&&a&&ie.jsx(cu,{content:q2t(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:b,container:a})]})}function t7t(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"?s7e(i?i7e:a7e).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 iK({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:t7t(o,t,n),stroke:i?Pyt:a.lineColor(f),strokeWidth:i?2:1,fill:"none"},`${o.source.id},${o.target.id}`)})})}function w4(e){return Zr().domain([0,1]).range([e,$t])(.25)}var qb=1.4;function jc(e,t=6,n=$t,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*qb;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*qb;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
15125
15125
  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*qb;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??w4(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??w4(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??w4(n)});case"23":{let a=t*qb;return ie.jsx("path",{d:`M0,-${a}L ${a},0 L 0,${a} L -${a},0z`,fill:n,stroke:r??w4(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??w4(n)});default:uA(e,`Unknown point shape ${e}`)}}var n7t=12;function oK({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(p=>{let v=p.data.rawData[0],y=a.nodeSize(v),b=a.nodeColor(v),C=c?p.x:p.y,x=c?p.y:p.x;return ie.jsx("g",{transform:`translate(${C},${x})`,style:{cursor:"pointer"},onClick:k=>{k.stopPropagation(),o({x:C+Qu.LEFT,y:x+Qu.TOP,info:p.data.rawData}),s(p)},children:ie.jsx("g",{children:ie.jsx("circle",{cx:0,cy:0,r:y+n7t,fill:i===p.id?UX:f===p.id?b:"transparent",opacity:wD,onMouseOver:()=>A(p.id??null),onMouseLeave:()=>A(null)})})},p.id)})}),ie.jsx("g",{children:e.map(p=>{let v=p.data.rawData[0],y=a.nodeShape(v),b=a.nodeSize(v),C=a.nodeColor(v),x=c?p.x:p.y,k=c?p.y:p.x;return ie.jsx("g",{transform:`translate(${x},${k})`,style:{cursor:"pointer"},onClick:_=>{_.stopPropagation(),o({x:x+Qu.LEFT,y:k+Qu.TOP,info:p.data.rawData}),s(p)},children:ie.jsx("g",{onMouseOver:()=>A(p.id??null),onMouseLeave:()=>A(null),children:jc(y,b,i===p.id?UX:C)})},p.id)})}),ie.jsx("g",{children:e.map(p=>{let v=p.data.rawData[0],y=a.nodeSize(v),b=c?p.x:p.y,C=c?p.y:p.x;return ie.jsx("g",{transform:`translate(${b},${C})`,style:{pointerEvents:"none"},children:(r&&p.children||n&&!p.children)&&ie.jsx("text",{x:y+4,y:"4",paintOrder:"stroke",stroke:"white",strokeWidth:"3",children:p.data.label})},p.id)})})]})}var lK=14,eE=12,C4=12,tE=-12;function r7t({aes:e,label:t}){let n=jc(e.shape,e.size,e.color);return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${C4/2},${C4/2})`,children:n}),ie.jsx("text",{x:C4+8,y:C4/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function a7t({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:tE,children:n.title}),ie.jsx("rect",{x:"0",y:"0",width:lK,height:n.height,stroke:$t,fill:`url(#${n.id})`}),ie.jsx("g",{transform:`translate(${lK},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:$t}),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:tE,children:n.title}),n.values.map((r,a)=>ie.jsxs("g",{transform:`translate(0, ${a*(eE+4)})`,children:[ie.jsx("rect",{x:"0",y:"0",width:eE,height:eE,fill:n.scale(r),rx:"1",ry:"1"}),ie.jsx("text",{x:eE+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:tE,children:n.title}),n.values.map((r,a)=>ie.jsx("g",{transform:`translate(0, ${a*(C4+4)})`,children:ie.jsx(r7t,{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:tE,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:$t}),ie.jsx("text",{x:r+4,y:r/2,alignmentBaseline:"central",children:n.labels[a]})]},a)}),!1]},n.id)}})]})}function sK(e){if(!e)return null;let t=new Set,n=e;for(;n;)t.add(n.id),n=n.parent;return t}function i7t({chartSettings:e,chartSizes:t,nodes:n,links:r,connectionType:a,rootPosition:i,edgeInheritance:o,showNodes:s,showEdges:c,showLeavesLabels:f,showNodesLabels:A,aesGetters:p,labels:v,heatmapData:y,heatmapScales:b,heatmapStep:C,heatmapColor:x,heatmapLabels:k,legendData:_,onClick:P}){let N=tn.useRef(null),[I,F]=tn.useState(null),Q=tn.useRef(null);tn.useEffect(()=>{Q.current&&F(Q.current);function X(){ee(null),z(null)}function te(he){Object.entries(he.detail).forEach(([ae,ge])=>{if(ae==="selectedNode"){let me=n.find(fe=>fe.data.rawData[0].id===ge)??null;ee(sK(me)),z(me)}})}return document.addEventListener("click",X),document.addEventListener(CD,te),()=>{document.removeEventListener("click",X),document.removeEventListener(CD,te)}},[]);let[Z,ee]=T6.useState(null),[le,z]=T6.useState(null),U=Z!==null,G={connectionType:a,rootPosition:i,edgeInheritance:o,aesGetters:p},Y={rootPosition:i,showLeavesLabels:f,showNodesLabels:A,aesGetters:p,labels:v,onClick:P,selectedNodeId:le==null?void 0:le.id,onSelectedUpdate:X=>{ee(sK(X)),z(X)}};return ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${t.totalWidth} ${t.totalHeight}`,ref:N,width:t.totalWidth,height:t.totalHeight,children:[ie.jsx("defs",{children:Fg}),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:U?wD:1,children:[c&&ie.jsx(iK,{links:r.filter(X=>{let{source:te,target:he}=X;return!Z||!(Z.has(te.id??"")&&Z.has(he.id??""))}),selected:!1,...G}),s&&ie.jsx(oK,{nodes:n.filter(X=>!X.data.isFake&&!(Z!=null&&Z.has(X.id??""))),...Y})]}),U&&ie.jsxs("g",{children:[c&&ie.jsx(iK,{links:r.filter(X=>{let{source:te,target:he}=X;return Z.has(te.id??"")&&Z.has(he.id??"")}),selected:!0,...G}),s&&ie.jsx(oK,{nodes:n.filter(X=>!X.data.isFake&&(Z==null?void 0:Z.has(X.id??""))),...Y})]}),y!==null&&ie.jsx("g",{transform:`translate(${t.treeWidth+30},0)`,children:ie.jsx(e7t,{heatmapData:y,scales:b,step:C,colorScale:x,chartSizes:t,labels:k,selectedNode:le,tooltipsContainer:I})}),e.legend.show&&ie.jsx("g",{transform:`translate(${t.treeWidth+30+t.heatmapWidth+30},0)`,children:ie.jsx(a7t,{legendData:_})})]}),ie.jsx("g",{ref:Q})]})}function Uv({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 b4(e){if(jX(e))return t=>e.valuesMap[String(t[e.columnName.value])];if(rh(e)){let{domain:t,range:n}=e,r=iv().domain(t).range(n);return a=>{let i=r(Number(a[e.columnName.value]));return Math.max(1,i)}}return t=>e}function o7t(e){return{nodeShape:b4(e.nodeShape),nodeColor:b4(e.nodeColor),nodeSize:b4(e.nodeSize),lineShape:b4(e.lineShape),lineColor:b4(e.lineColor)}}var l7t=(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 s7t(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 u7t=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:zo().domain(["null"]).range([1]),y:zo().domain(["null"]).range([1])});Be(this,"heatmapStep",{x:0,y:0});Be(this,"heatmapColorScale",{scale:zo([]),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=Gh(this.rootNode))}updateHeatmapScales(e,t,n){if(e===null){this.chartSizes.heatmapWidth=0;return}let{xKeysByGroups:r,xGroupKeys:a,xKeys:i,yKeys:o}=e,s=5,c=a.map(x=>r[x].length),f=c.reduce((x,k)=>x+k,0),A=this.chartSizes.treeHeight/o.length,p=Math.min(Math.max((400-(c.filter(x=>x>0).length-1)*s)/f,n.minCellWidth),n.maxCellWidth),v=[],y=0;a.forEach(x=>{let k=r[x];k.forEach(()=>{v.push(y),y+=p}),k.length>0&&(y+=s)}),this.heatmapScales.x=zo().domain(i).range(v),this.heatmapScales.y=zo().domain(o).range(o.map((x,k)=>k*A)),this.heatmapStep.x=p,this.heatmapStep.y=A;let{colorsList:b,colorsMap:C}=t.aes;if(t.valueType==="continuous"&&b){let x=Zr().domain(l7t(b.length,e.meta.valueExtent)).range(b);this.heatmapColorScale={scale:x,getter:k=>x(k)}}if(t.valueType==="discrete"&&C){let x=Object.keys(C).filter(k=>e.meta.uniqueValues.has(k));this.heatmapColorScale={scale:zo(x,x.map(k=>C[k])).unknown(v4),getter:k=>k?C[k]??v4:v4}}if(t.valueType==="stringSource"&&b){let x=[...e.meta.uniqueValues],k=zo(x,x.map((_,P)=>b[P%b.length])).unknown(v4);this.heatmapColorScale={scale:k,getter:_=>_?k(_):v4}}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 Ac("600 14px Arial"),s=16,c=48,f=20,A=24;function p(N,I){return Math.max(...N.map(F=>o.getTextWidth(String(F))+f),o.getTextWidth(I))}let v=[];[n.nodeColor,n.nodeShape,n.lineColor].filter(jX).map(N=>N.columnName).forEach(N=>{let I=t[N.value];if(I.usedAes.length===0||!I.aesMap)return;let F=N.label??N.value,Q=I.values,Z={};Q.forEach(ee=>{Z[ee]||(Z[ee]={...Ov}),I.usedAes.forEach(le=>{var z,U,G;(le==="dotFill"||le==="lineColor")&&(Z[ee].color=((z=I.aesMap[ee])==null?void 0:z[le])??$t),le==="dotShape"&&(Z[ee].shape=((U=I.aesMap[ee])==null?void 0:U[le])??"21"),le==="dotSize"&&(Z[ee].size=((G=I.aesMap[ee])==null?void 0:G[le])??3)})}),v.push({columnKey:F,data:Z,values:I.values,labels:I.labels})});let y=[],b=0,C=0,x=0,k=Math.min(this.chartSizes.treeHeight,400);if(r&&a){let N=i.valueType,I=r.label??r.value;if(N==="continuous"){let F=this.heatmapColorScale.scale,Q=f2(F,a.meta.valueExtent,4),Z={id:"heatmapValue",type:"continuous",width:eK(Q,I),height:k,left:0,top:0,title:I,scale:F,values:Q,labels:{}};y.push(Z),C=Z.height+c,b=Z.width}else{let F=this.heatmapColorScale.scale,Q=L2t(F,I),Z=F.domain(),ee=Z.length*s,le={id:"heatmapValue",type:"discrete",width:Q,height:ee,left:0,top:0,title:I,scale:F,values:Z,labels:{}};y.push(le),C=le.height+c,b=le.width}}if(v.map(({columnKey:N,labels:I,values:F,data:Q})=>{C>k&&(C=0,x+=b+A);let Z=N,ee=p(F.map(Y=>I[Y]),Z),le=F.length*s;le>k&&(k=le);let z=zo().domain(F).range(F.map(Y=>Q[Y])),U=x,G=C;y.push({id:N,type:"nodes",width:ee,height:le,left:U,top:G,title:Z,scale:z,values:F,labels:I}),b=ee,C+=le+c}),rh(n.nodeSize)){C>k&&(C=0,x+=b+A);let{columnName:N,domain:I,range:F}=n.nodeSize,Q=N.label??N.value,Z=iv(I,F),ee=Z.ticks(3),le=Z.tickFormat(3),z=ee.reduce((te,he)=>(te[String(he)]=le(he),te),{}),U=p(ee.map(te=>z[te]),Q),G=(Z(Math.max(...ee))*2+4)*ee.length;G>k&&(k=G);let Y=x,X=C;y.push({id:N.value,type:"size",width:U,height:G,left:Y,top:X,title:Q,scale:Z,values:ee,labels:z}),b=U,C+=G+c}let _=x+b+2*Yb,P=k;this.legend={width:_,height:P,items:y}}updateChartSizes(e,t,n){let r=n.leaves().length;this.chartSizes.treeWidth=t?e.width/2:e.width;let a=s7t(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 Ac("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 Ac("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,p,v,y,b,C,x){var I;this.updateChartSizes(e.size,v,t),this.updateHeatmapScales(v,y,e.size),this.updateLegendSize(e.legend,b,f,p,v,y),this.prepareTableLabels(v);let k=r==="top"?[this.chartSizes.treeWidth,this.chartSizes.treeHeight]:[this.chartSizes.treeHeight,this.chartSizes.treeWidth];MB().size(k).separation(()=>1)(t);let _=t;Nyt(_,r==="top"?this.chartSizes.treeHeight:this.chartSizes.treeWidth,C==="alignLeavesToLine"),Lyt(_),this.addLabelsWidthToTreeArea(_,s),this.updateTotalSizes(v);let P=o7t(f),N=ie.jsx(i7t,{chartSizes:this.chartSizes,chartSettings:e,nodes:_.descendants(),links:_.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=N,(I=this.reactRoot)==null||I.render(N)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Uv,{message:e}))}},c7t=u7t,uK=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:$t,nodeSize:3,lineShape:"solid",lineColor:$t});var t,n,r,a,i,o,s,c,f,A;k2t.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)??Tyt,maxCellWidth:((i=e==null?void 0:e.size)==null?void 0:i.maxCellWidth)??_yt,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 nE(e){return typeof e!="object"?!1:"valuesMap"in e}function cK(e,t){let{nodeColor:n,nodeShape:r,lineColor:a}=t,i=[n,r,a].filter(nE);return Zn.uniqBy(i,o=>o.columnName.value).reduce((o,s)=>{let{columnName:c}=s,f=Zn.uniqBy(e.rows,b=>b[c.value]),A=b=>String(b[c.value]),p=b=>c.valueLabels?String(b[c.valueLabels]):A(b),v=new Set,y=f.reduce((b,C)=>{let x=A(C);return b[x]||(b[x]={}),b},{});return nE(n)&&c.value===n.columnName.value&&(v.add("dotFill"),f.forEach(b=>{let C=A(b);y[C].dotFill=n.valuesMap[C]})),nE(r)&&c.value===r.columnName.value&&(v.add("dotShape"),f.forEach(b=>{let C=A(b);y[C].dotShape=r.valuesMap[C]})),nE(a)&&c.value===a.columnName.value&&(v.add("lineColor"),f.forEach(b=>{let C=A(b);y[C].lineColor=a.valuesMap[C]})),o[c.value]={values:f.map(A).sort(),usedAes:[...v],aesMap:y,labels:f.reduce((b,C)=>(b[A(C)]=p(C),b),{})},o},{})}var f7t=class extends Ng{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"onClick",()=>cC);Be(this,"chartRenderer",new c7t);Be(this,"calculatedData",null);this.settings=new uK(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 uK(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(CD,{detail:{[t]:n}});document.dispatchEvent(r)}}export(){return this._updateChart(),gy(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var A,p;let{mode:r,id:a,parentId:i,heatmapAnnotation:o,heatmapAxis:s,heatmapGroup:c}=n;function f(v,y){return v.length!==y.length||v.some((b,C)=>b.value!==y[C].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)||((p=t.heatmapAxis)==null?void 0:p.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,p=Ryt(n.value,r.value,(f==null?void 0:f.value)??null,A.valueLabels??A.value??null,this.data.rows,t==="useAllNodesAsLeaves"),v=Myt(this.data,c.valueType,i,o,s,n,p),y=cK(this.data,a);this.calculatedData={chartSizes:this.chartRenderer.chartSizes,hierarchy:p,heatmapData:v,legendLabels:y}}_updateAesInData(){this.calculatedData&&(this.calculatedData.legendLabels=cK(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:p,heatmapSettings:v,leavesMode:y}=this.settings;this.chartRenderer.render(n,this.calculatedData.hierarchy,r,i,a,o,s,c,f,A,p,t,this.calculatedData.heatmapData,v,this.calculatedData.legendLabels,y,this.onClick)}};function d7t(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 p=0,v={};r.forEach(b=>{let C=a.getRowsByGrouping([...c,A,b]);if(!C.length)return;let x=oc(C,k=>Number(k[i.value]));v[b]={height:x,key:b},p+=x});let y=p;e.normalize&&r.forEach(b=>{v[b]&&(v[b].height=v[b].height/y*100)}),o=Math.max(o,p),s[f].push({key:`logo_${A}`,valuesMap:v,primaryGrouping:A,boundsY:{min:0,max:e.normalize?y:100}})}),s},{}),meta:{minY:0,maxY:e.normalize?100:o,normalize:e.normalize},aes:e.aes}}var A7t={TOP:30,BOTTOM:30},u1=30,p7t=6,E4=20,kD=15,h7t=24,A2=25,v7t=12,fK={fillColor:"white",lineColor:$t,lineWidth:1,lineShape:"solid",dotSize:3,dotFill:$t,dotShape:"21"},TD=20,dK=4,Ff=4,AK=36,pK=25;function m7t(e){return`translate(${e},0)`}function g7t(e){return`translate(0,${e})`}var x4=21;function y7t(e,t){if(e==="45deg"){let n=t==="left"?-x4/2:0,r=t==="bottom"?x4/2:-x4/2;return`translate(${n},${r}) rotate(-45)`}return e==="90deg"&&t==="bottom"?`translate(${-x4/2},${Ff+x4/2}) rotate(-90)`:t==="bottom"?`translate(0,${Ff})`:`translate(${-Ff},0)`}function w7t(e,t){return t==="left"||t==="bottom"&&e==="90deg"?"central":e==="center"?"hanging":"auto"}function C7t(e,t){return t==="left"||t==="bottom"&&e!=="center"?"end":"middle"}var hK=({scale:e,tickSize:t=6,tickPadding:n=Ff,orient:r="bottom",labelsPosition:a="center",labels:i={},offset:o=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function s(x,k){return x.bandwidth&&(k=Math.max(0,x.bandwidth()-k*2)/2),x!=null&&x.round()&&(k=Math.round(k)),_=>{let P=x(_);return P===void 0?0:P+k}}let c=e.domain(),f=x=>i[x]??[],A=Math.max(t,0)+n,p=s(e.copy(),o),v=r==="bottom"?m7t:g7t,y=r==="left"?-1:1,b={[(r==="left"?"x":"y")+"2"]:y*t},C={[r==="left"?"x":"y"]:y*A};return ie.jsx("g",{children:c.map((x,k)=>ie.jsxs("g",{className:"tick",transform:v(p(x)+o),children:[ie.jsx("line",{stroke:$t,...b}),ie.jsx("g",{transform:y7t(a,r),children:f(x).map((_,P)=>ie.jsx("text",{fill:$t,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:w7t(a,r),textAnchor:C7t(a,r),dy:20*P,...C,children:_},`${_}_${P}`))})]},k))})};function vK(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 b7t({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=vK(e,"lineColor",r.lineColor,n),A=vK(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?e5(".1e")(e):e5(".2f")(e)}function mK(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 E7t({facetKey:e,scales:t,orientation:n,geom:r,aes:a,min:i,max:o,binsCount:s,hasKeyFromColumn:c,sideDistances:f,showTooltips:A,activeElementContainer:p,tooltipsContainer:v,tooltipsData:y}){let b=n==="vertical",C=(t.xPrimary(r.primaryGrouping)??0)+(t.xSecondary(r.secondaryGrouping)??0)+t.xSecondary.bandwidth()/2,x=mK(t,"lineColor",a.lineColor,r),k=mK(t,"fillColor",a.fillColor,r),_=r.bins,P=a.dotSize?a.dotSize:Math.abs(t.y(o)-t.y(i))/s/2,N=p&&y.fixed;return ie.jsx("g",{children:_.map(({x:I,count:F,dots:Q})=>ie.jsx("g",{children:Q.map((Z,ee)=>{let le=(ee-F/2)*2*P+P,z=b?le:0,U=b?0:le,G=`binnedDot_${r.key}_${Z.key}`,Y=y.selectedData===G&&y.currentFacet===e&&N,X=ie.jsxs("g",{transform:b?`translate(${C},${t.y(I)})`:`translate(${t.y(I)},${C})`,stroke:x,fill:k,strokeWidth:a.lineWidth,children:[ie.jsx("circle",{opacity:a.opacity,cx:z,cy:U,r:P,onMouseOver:()=>y.onMouseOver(G,e),onMouseLeave:()=>y.onMouseLeave()}),A&&ie.jsx(cu,{content:c?[Z.key,ni(Z.value)]:[ni(Z.value)],x:(b?C:t.y(I))+z,y:(b?t.y(I):C)+U,sideDistances:f,horizontal:b,offset:P,active:G===y.selectedData&&y.currentFacet===e,fixed:y.fixed,onClose:y.onClose,container:v})]},Z.key);return Y?uu.createPortal(X,p):X})},I))})}function Vf(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:uA(e,`Unknown line shape ${e}`)}}function rE(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 x7t(e,t){return t?[e.id,`${ni(e.y)}`]:[`${ni(e.y)}`]}function S7t({facetKey:e,scales:t,orientation:n,box:r,aes:a,hasKeyFromColumn:i,sideDistances:o,showTooltips:s,elementsAmount:c,activeElementContainer:f,tooltipsContainer:A,tooltipsData:p}){let v=n==="vertical",y=(t.xPrimary(r.primaryGrouping)??0)+(t.xSecondary(r.secondaryGrouping)??0)+t.xSecondary.bandwidth()/2,b=t.xSecondary.bandwidth(),C=a.boxWidth==="auto"?b*.8:Math.min(b,a.boxWidth),x=Math.abs(t.y(r.lower)-t.y(r.upper)),k=rE(t,"lineColor",a.lineColor,r),_=rE(t,"fillColor",a.fillColor,r),P=rE(t,"dotShape",a.dotShape,r),N=rE(t,"dotSize",a.dotSize,r),I=jc(P,N,k),F=Math.abs(t.y.range()[0]-t.y.range()[1]),Q=f&&p.fixed,Z=p.selectedData===r&&Q,ee=ie.jsxs("g",{transform:v?`translate(${y},0)`:`translate(0, ${y})`,opacity:a.opacity,stroke:k,strokeWidth:a.lineWidth,strokeDasharray:Vf(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?C:x,height:v?x:C,x:v?-C/2:t.y(r.lower),y:v?t.y(r.upper):-C/2,fill:_}),ie.jsx("line",{x1:v?-C/2:t.y(r.middle),x2:v?C/2:t.y(r.middle),y1:v?t.y(r.middle):-C/2,y2:v?t.y(r.middle):C/2}),s&&A&&ie.jsx("rect",{onMouseOver:()=>p.onMouseOver(r,e),onMouseLeave:p.onMouseLeave,width:v?b:F,x:v?-b/2:0,y:v?0:-b/2,height:v?F:b,fill:"transparent",stroke:"none"}),a.showOutliers&&r.outliers.map(le=>{let z=p.selectedData===le&&p.currentFacet===e&&Q,U=v?z?y:0:t.y(le.y),G=v?t.y(le.y):z?y:0,Y=ie.jsxs("g",{transform:`translate(${U},${G})`,strokeDasharray:"0",children:[I,s&&A&&ie.jsx("circle",{onMouseOver:()=>p.onMouseOver(le,e),onMouseLeave:p.onMouseLeave,r:"15",fill:"transparent",stroke:"none"}),s&&ie.jsx(cu,{content:x7t(le,i),x:v?y:t.y(le.y),y:v?t.y(le.y):y,sideDistances:o,horizontal:!0,active:p.selectedData===le&&p.currentFacet===e,onClose:p.onClose,fixed:p.fixed,container:A})]},le.id);return z?uu.createPortal(Y,f):Y}),s&&ie.jsx(cu,{content:[`Max = ${ni(r.max)}`,`Upper = ${ni(r.upper)}`,`Median = ${ni(r.middle)}`,`Lower = ${ni(r.lower)}`,`Min = ${ni(r.min)}`],x:v?y:t.y(r.middle),y:v?t.y(r.middle):y,sideDistances:o,horizontal:v,active:p.active&&p.selectedData===r&&p.currentFacet===e,fixed:p.fixed,onClose:p.onClose,offset:c>1?b/2:b/4,container:A})]});return Z?uu.createPortal(ee,f):ee}function _D(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 B7t(e,t,n){return n?[t,`${ni(e)}`]:[`${ni(e)}`]}function k7t({facetKey:e,scales:t,orientation:n,geom:r,aes:a,hasKeyFromColumn:i,sideDistances:o,showTooltips:s,activeElementContainer:c,tooltipsContainer:f,tooltipsData:A}){let p=n==="vertical",v=(t.xPrimary(r.primaryGrouping)??0)+(t.xSecondary(r.secondaryGrouping)??0)+t.xSecondary.bandwidth()/2,y=t.xSecondary.bandwidth()*a.jitter,b=N=>(1-N*2)*(y/2),C=_D(t,"lineColor",a.lineColor,r),x=_D(t,"dotFill",a.dotFill,r),k=_D(t,"dotShape",a.dotShape,r),_=jc(k,a.dotSize,x),P=c&&A.fixed;return ie.jsx("g",{transform:p?`translate(${v},0)`:`translate(0, ${v})`,stroke:C,children:r.values.map(N=>{let{jitter:I,id:F}=N,Q=A.selectedData===N&&P,Z=b(I),ee=p?Q?v+Z:Z:t.y(N.y),le=p?t.y(N.y):Q?v+Z:Z,z=ie.jsxs("g",{opacity:a.opacity,transform:`translate(${ee},${le})`,children:[_,s&&f&&ie.jsx("circle",{onMouseOver:()=>A.onMouseOver(N,e),onMouseLeave:()=>A.onMouseLeave(),r:"4",fill:"transparent",stroke:"none"}),s&&ie.jsx(cu,{content:B7t(N.y,F,i),x:v+b(I),y:le,active:A.active&&A.selectedData===N&&A.currentFacet===e,fixed:A.fixed,onClose:A.onClose,sideDistances:o,container:f})]},F);return Q?uu.createPortal(z,c):z})})}function DD(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 T7t({facetKey:e,scales:t,orientation:n,errorBar:r,aes:a,sideDistances:i,showTooltips:o,activeElementContainer:s,tooltipsContainer:c,tooltipsData:f}){let A=n==="vertical",p=DD(t,"lineColor",a.lineColor,r),v=DD(t,"fillColor",a.fillColor,r),y=DD(t,"dotShape",a.dotShape,r),b=(t.xPrimary(r.primaryGrouping)??0)+t.xPrimary.bandwidth()/2,C=a.width==="auto"?t.xPrimary.bandwidth()*.2:a.width,x=t.y(r.min),k=t.y(r.max),_=t.y(r.value),P=jc(y,a.dotSize,v),N=s&&f.fixed,I=f.selectedData===r&&N,F=a.showDots?ie.jsxs("g",{transform:A?`translate(${b},${_})`:`translate(${_},${b})`,children:[P,o&&c&&ie.jsx("circle",{onMouseOver:()=>f.onMouseOver(r,e),onMouseLeave:()=>f.onMouseLeave(),r:"15",fill:"transparent",stroke:"none"}),o&&ie.jsx(cu,{content:[ni(r.value)],x:A?b:_,y:A?_:b,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:p,fill:"none",strokeWidth:a.lineWidth,children:[ie.jsxs("g",{transform:A?`translate(${b},0)`:`translate(0,${b})`,children:[ie.jsx("line",{x1:A?0:x,x2:A?0:k,y1:A?x:0,y2:A?k:0}),ie.jsx("line",{x1:A?-C/2:x,x2:A?C/2:x,y1:A?x:-C/2,y2:A?x:C/2}),ie.jsx("line",{x1:A?-C/2:k,x2:A?C/2:k,y1:A?k:-C/2,y2:A?k:C/2})]}),I?uu.createPortal(F,s):F]})}function aE(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 _7t(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 D7t({facetKey:e,scales:t,orientation:n,line:r,aes:a,sideDistances:i,showTooltips:o,secondaryGrouping:s,activeElementContainer:c,tooltipsContainer:f,tooltipsData:A}){let p=n==="vertical",v=aE(t,"lineColor",a.lineColor,r),y=aE(t,"dotFill",a.fillColor,r),b=aE(t,"lineShape",a.lineShape,r),C=aE(t,"dotShape",a.dotShape,r),x=_7t(r.dots,t.xPrimary.domain(),t),k=jc(C,a.dotSize,y),_=c&&A.fixed;return ie.jsxs("g",{opacity:a.opacity,stroke:v,strokeDasharray:Vf(b),strokeWidth:a.lineWidth,children:[ie.jsx("polyline",{points:x.map(([P,N])=>p?[P,N]:[N,P]).join(" "),stroke:v,fill:"none"},r.key),a.dotShape!==null&&ie.jsx("g",{children:x.map(P=>{let[N,I,F,Q]=P,Z=A.selectedData,ee=Z&&e===A.currentFacet&&Z.every((U,G)=>U===P[G]),le=ee&&_,z=ie.jsxs("g",{transform:p?`translate(${N},${I})`:`translate(${I},${N})`,strokeDasharray:"none",stroke:"none",children:[k,o&&f&&ie.jsx("circle",{onMouseOver:()=>A.onMouseOver(P,e),onMouseLeave:()=>A.onMouseLeave(),r:"15",fill:"transparent",stroke:"none"}),o&&ie.jsx(cu,{content:[s.valueLabels[r.key],ni(Q)],x:p?N:I,y:p?I:N,sideDistances:i,horizontal:!0,active:ee,fixed:A.fixed,onClose:A.onClose,container:f})]},F);return le?uu.createPortal(z,c):z})})]})}var gK={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"},P7t=()=>ie.jsx("path",{d:"M 0 49 h 100 v 2 h -100 z"});function M7t({facetKey:e,scales:t,orientation:n,geom:r,aes:a,sideDistances:i,showTooltips:o,elementsAmount:s,normalize:c,activeElementContainer:f,tooltipsContainer:A,tooltipsData:p}){let v=n==="vertical",y=t.xPrimary.bandwidth(),b=(t.xPrimary(r.primaryGrouping)??0)+y/2,C=a.width==="auto"?y*.95:Math.min(y,a.width),x=(y-C)/2,k=[...t.xSecondary.domain()].filter(I=>r.valuesMap[I]).sort((I,F)=>{let Q=r.valuesMap[I],Z=r.valuesMap[F];return Q.height-Z.height}),_={},P=0;k.forEach(I=>{if(!r.valuesMap[I])return;let F=r.valuesMap[I].height;_[I]={y1:P,y2:P+F},P+=F});let N=f&&p.fixed;return ie.jsx("g",{opacity:a.opacity,children:k.map(I=>{if(!r.valuesMap[I])return null;let{y1:F,y2:Q}=_[I],Z=t.y(F),ee=t.y(Q),le=Math.abs(Z-ee)-2*x,z=typeof a.fillColor=="string"?a.fillColor:a.fillColor[I],U=v?-C/2:Math.min(Z,ee)+x,G=v?Math.min(Z,ee)+x:-C/2,Y=I==="-";if(!Y&&!gK[I])return;let X=`logo_${r.key}_${I}`,te=p.currentFacet===e&&p.selectedData===X&&N,he=ie.jsxs("g",{transform:v?`translate(${b},0)`:`translate(0, ${b})`,children:[ie.jsx("g",{transform:`translate(${U},${G})`,children:Y?ie.jsx("g",{transform:v?`scale(${C/100},1) translate(0,${le/2-50})`:`scale(${le/100},1) translate(0,${C/2-50}) `,children:P7t()}):ie.jsx("g",{transform:v?`scale(${C/100},${le/100})`:`scale(${le/100},${C/100})`,fill:z,onMouseOver:()=>p.onMouseOver(X,e),onMouseLeave:()=>p.onMouseLeave(),children:ie.jsx("path",{d:gK[I],fillRule:"evenodd",clipRule:"evenodd"})})}),o&&ie.jsx(cu,{content:[I,ni(r.valuesMap[I].height)+(c?"%":"")],x:v?b:(Z+ee)/2,y:v?(Z+ee)/2:b,sideDistances:i,horizontal:v,offset:s>1?y/2:y/4,active:X===p.selectedData&&p.currentFacet===e,fixed:p.fixed,onClose:p.onClose,container:A})]},I);return te?uu.createPortal(he,f):he})})}function p2(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 H7t({facetKey:e,scales:t,orientation:n,geom:r,aes:a,sideDistances:i,showTooltips:o,activeElementContainer:s,tooltipsContainer:c,tooltipsData:f}){let A=n==="vertical",p=p2(t,"lineColor",a.lineColor,r.id),v=p2(t,"lineShape",a.lineShape,r.id),y=p2(t,"fillColor",a.dotFill,r.key1),b=p2(t,"dotShape",a.dotShape,r.key1),C=p2(t,"fillColor",a.dotFill,r.key2),x=p2(t,"dotShape",a.dotShape,r.key2),k=jc(b,a.dotSize,y),_=jc(x,a.dotSize,C);function P(I){return r.grouping==="primary"?(t.xPrimary(I)??0)+t.xPrimary.bandwidth()/2:(t.xPrimary(r.id)??0)+(t.xSecondary(I)??0)+t.xSecondary.bandwidth()/2}let N=s&&f.fixed;return ie.jsx("g",{opacity:a.opacity,children:r.pairs.map(I=>{let F=A?P(r.key1):t.y(I.key1.value),Q=A?P(r.key2):t.y(I.key2.value),Z=A?t.y(I.key1.value):P(r.key1),ee=A?t.y(I.key2.value):P(r.key2),le=`pairedPoints_${I.id}_${I.key1.id}`,z=`pairedPoints_${I.id}_${I.key2.id}`,U=f.currentFacet===e&&f.selectedData===le&&N,G=f.currentFacet===e&&f.selectedData===z&&N,Y=ie.jsxs("g",{transform:`translate(${F},${Z})`,children:[k,o&&c&&ie.jsx("circle",{onMouseOver:()=>f.onMouseOver(le,e),onMouseLeave:()=>f.onMouseLeave(),r:"15",fill:"transparent",stroke:"none"}),o&&ie.jsx(cu,{content:[I.id,ni(I.key1.value)],x:F,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(${Q},${ee})`,children:[_,o&&c&&ie.jsx("circle",{onMouseOver:()=>f.onMouseOver(z,e),onMouseLeave:()=>f.onMouseLeave(),r:"15",fill:"transparent",stroke:"none"}),o&&ie.jsx(cu,{content:[I.id,ni(I.key2.value)],x:Q,y:ee,sideDistances:i,horizontal:!0,active:z===f.selectedData&&f.currentFacet===e,fixed:f.fixed,onClose:f.onClose,container:c})]});return ie.jsxs("g",{children:[ie.jsx("line",{x1:F,y1:Z,x2:Q,y2:ee,stroke:p,strokeDasharray:Vf(v),strokeWidth:a.lineWidth,fill:"none"}),U?uu.createPortal(Y,s):Y,G?uu.createPortal(Y,s):X]},I.id)})})}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 I7t(e,t,n){return n?[t,`${ni(e)}`]:[`${ni(e)}`]}function R7t({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",p=(e.xPrimary(n.primaryGrouping)??0)+(e.xSecondary(n.secondaryGrouping)??0)+e.xSecondary.bandwidth()/2,v=e.xSecondary.bandwidth(),y=r.width==="auto"?v*.8:Math.min(v,r.width),b=_=>(1-_*2)*(y/2),C=yK(e,"dotFill",r.dotFill,n),x=yK(e,"dotShape",r.dotShape,n),k=jc(x,r.dotSize,C);return ie.jsx("g",{transform:A?`translate(${p},0)`:`translate(0, ${p})`,children:n.points.map(({x:_,y:P,jitter:N,id:I})=>{let F=A?P*b(N):e.y(_),Q=A?e.y(_):P*b(N);return ie.jsxs("g",{opacity:r.opacity,transform:`translate(${F},${Q})`,children:[k,o&&s&&ie.jsx("circle",{onMouseOver:()=>f(I),onMouseLeave:()=>f(null),r:"4",fill:"transparent",stroke:"none"}),o&&ie.jsx(cu,{content:I7t(P,I,a),x:p+F,y:Q,active:c===I,fixed:!1,sideDistances:i,container:s})]},I)})})}function wK(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 N7t({facetKey:e,scales:t,orientation:n,geom:r,aes:a,sideDistances:i,showTooltips:o,elementsAmount:s,normalize:c,secondaryGrouping:f,activeElementContainer:A,tooltipsContainer:p,tooltipsData:v}){let y=n==="vertical",b=t.xPrimary.bandwidth(),C=(t.xPrimary(r.primaryGrouping)??0)+b/2,x=a.width==="auto"?b*.8:Math.min(b,a.width),k=t.xSecondary.domain().reverse(),_={},P=0;k.forEach(I=>{if(!r.valuesMap[I])return;let F=r.valuesMap[I].height;_[I]={y1:P,y2:P+F},P+=F});let N=A&&v.fixed;return ie.jsx("g",{opacity:a.opacity,strokeWidth:a.lineWidth,children:k.map(I=>{if(!r.valuesMap[I])return null;let{y1:F,y2:Q}=_[I],Z=t.y(F),ee=t.y(Q),le=Math.abs(Z-ee),z=wK(t,"lineColor",a.lineColor,r.primaryGrouping,I),U=wK(t,"fillColor",a.fillColor,r.primaryGrouping,I),G=`stackedBar_${r.primaryGrouping}_${I}`,Y=ie.jsx("rect",{width:y?x:le,height:y?le:x,x:y?C-x/2:Math.min(Z,ee),y:y?Math.min(Z,ee):C-x/2,fill:U,stroke:z,onMouseOver:()=>v.onMouseOver(G,e),onMouseLeave:()=>v.onMouseLeave()}),X=v.selectedData===G&&e===v.currentFacet&&N;return ie.jsxs("g",{children:[X?uu.createPortal(Y,A):Y,o&&ie.jsx(cu,{content:[f.valueLabels[I],ni(r.valuesMap[I].height)+(c?"%":"")],x:y?C:(Z+ee)/2,y:y?(Z+ee)/2:C,sideDistances:i,horizontal:y,offset:s>1?b/2:b/4,active:G===v.selectedData&&e===v.currentFacet,fixed:v.fixed,onClose:v.onClose,container:p})]},I)})})}function CK(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 L7t(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 bK(e,t,n,r){let a=t.reduce((o,s,c)=>(o[s]=c,o),{}),i=[];return CK(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 $7t={ttest:"TTest",anova:"ANOVA",kruskalWallis:"Kruskal-Wallis",wilcoxon:"Wilcoxon"};function F7t(e,t){return e<=t.three?"***":e<=t.two?"**":e<=t.one?"*":"ns"}function PD(e,t,n,r){return!r&&e>n.one?"":t==="significance"?F7t(e,n):ni(e)}var h2=18,MD=12;function V7t({orientation:e,scales:t,testMethod:n,values:r,statType:a,format:i,ns:o,significanceLevels:s,yShift:c}){if(!r.length)return null;let f=k=>(t.xPrimary(k)??0)+t.xPrimary.bandwidth()/2,A=e==="vertical",p=Math.abs(t.xPrimary.range()[1]-t.xPrimary.range()[0]),v=Math.abs(t.y.range()[1]-t.y.range()[0]),y=t.xPrimary.domain(),b=a==="pairwise"?CK(r,y,s,!o):r,C=a==="pairwise"?L7t(b,y):[],x=Math.max(...C);return ie.jsxs("g",{fontSize:"14px",transform:A?`translate(0,${c})`:`translate(${v-c},0)`,children:[a==="overall"&&ie.jsx("text",{x:A?p/2:-h2,y:A?h2:p/2,transform:A?"":`rotate(90,${-h2},${p/2})`,textAnchor:"middle",children:`${$7t[n]}, p = ${PD(r[0][1],"pValue",s,!0)}`}),a==="referenceGroup"&&ie.jsx("g",{children:r.map(([[k],_])=>ie.jsx("text",{x:A?f(k):-h2,y:A?h2:f(k),transform:A?"":`rotate(90,${-h2},${f(k)})`,textAnchor:"middle",children:PD(_,i,s,o)},k))}),a==="pairwise"&&ie.jsx("g",{children:b.map(([[k,_],P],N)=>{let I=f(k),F=f(_),Q=(I+F)/2;return ie.jsxs("g",{transform:A?`translate(0,${(x-C[N])*A2})`:`translate(${-(x-C[N])*A2},0)`,children:[ie.jsx("text",{x:A?Q:-MD,y:A?MD:Q,transform:A?"":`rotate(90,${-MD},${Q})`,textAnchor:"middle",children:PD(P,i,s,o)}),ie.jsx("path",{d:A?`M ${I},21 v-4 h ${F-I} v4`:`M -21,${I} h 4 v ${F-I} h-4`,fill:"none",stroke:$t})]},`${k}_${_}`)})})]})}function O7t(e){return`translate(${e},0)`}function Q7t(e){return`translate(0,${e})`}function z7t(e){return e==="bottom"?`translate(0,${Ff})`:`translate(${-Ff},0)`}function U7t(e){return e==="bottom"?"hanging":"central"}function G7t(e){return e==="bottom"?"middle":"end"}var EK=({scale:e,tickSize:t=6,tickPadding:n=Ff,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5,hiddenLabels:o=!1})=>{function s(P){return N=>{let I=P(N);return I===void 0?0:+I}}let c=Math.abs(e.range()[0]-e.range()[1]),f=Math.min(Math.floor(c/pK),10),A=o?[]:e.ticks(f).filter(P=>a&&P>=0||!a),p=A.some(P=>Math.abs(P)<1e-4&&P!==0||P>1e4)?",e":",f",v=P=>e.tickFormat(f,p)(P),y=Math.max(t,0)+n,b=s(e.copy()),C=r==="bottom"?O7t:Q7t,x=r==="left"?-1:1,k={[(r==="left"?"x":"y")+"2"]:x*t},_={[r==="left"?"x":"y"]:x*y};return ie.jsx("g",{children:A.map((P,N)=>ie.jsxs("g",{className:"tick",transform:C(b(P)+i),children:[ie.jsx("line",{stroke:$t,...k}),ie.jsx("g",{transform:z7t(r),children:ie.jsx("text",{fill:$t,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:U7t(r),textAnchor:G7t(r),..._,children:v(P)})})]},N))})};function xK(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 j7t({facetKey:e,scales:t,orientation:n,violin:r,aes:a,maxViolinDensity:i,showTooltips:o,sideDistances:s,elementsAmount:c,activeElementContainer:f,tooltipsContainer:A,tooltipsData:p}){let v=n==="vertical",y=(t.xPrimary(r.primaryGrouping)??0)+(t.xSecondary(r.secondaryGrouping)??0)+t.xSecondary.bandwidth()/2,b=t.xSecondary.bandwidth(),C=a.width==="auto"?b*.8:Math.min(b,a.width),x=xK(t,"lineColor",a.lineColor,r),k=xK(t,"fillColor",a.fillColor,r),_=r.getArea(n,t.y,C,i)??"",P=r.getLine(n,t.y,C,i)??"",N=Math.abs(t.y.range()[0]-t.y.range()[1]),I=f&&p.fixed,F=p.selectedData===r&&I,Q=ie.jsxs("g",{transform:v?`translate(${y},0)`:`translate(0, ${y})`,opacity:a.opacity,stroke:x,fill:k,strokeWidth:a.lineWidth,strokeDasharray:Vf(a.lineShape),children:[ie.jsx("clipPath",{id:`violin_${r.key}`,children:ie.jsx("path",{d:_})}),ie.jsx("path",{d:_,stroke:"none"}),a.showQuartiles&&ie.jsxs("g",{clipPath:`url(#violin_${r.key})`,strokeWidth:a.lineWidth,stroke:x,children:[ie.jsx("line",{x1:v?-C/2:t.y(r.quartiles.q1),x2:v?C/2:t.y(r.quartiles.q1),y1:v?t.y(r.quartiles.q1):-C/2,y2:v?t.y(r.quartiles.q1):C/2,strokeDasharray:Vf(a.quartilesLineStyle)}),ie.jsx("line",{x1:v?-C/2:t.y(r.quartiles.q2),x2:v?C/2:t.y(r.quartiles.q2),y1:v?t.y(r.quartiles.q2):-C/2,y2:v?t.y(r.quartiles.q2):C/2,strokeDasharray:Vf(a.medianLineStyle)}),ie.jsx("line",{x1:v?-C/2:t.y(r.quartiles.q3),x2:v?C/2:t.y(r.quartiles.q3),y1:v?t.y(r.quartiles.q3):-C/2,y2:v?t.y(r.quartiles.q3):C/2,strokeDasharray:Vf(a.quartilesLineStyle)})]}),ie.jsx("path",{d:P,fill:"none"}),o&&A&&ie.jsx("rect",{onMouseOver:()=>p.onMouseOver(r,e),onMouseLeave:p.onMouseLeave,width:v?b:N,x:v?-b/2:0,y:v?0:-b/2,height:v?N:b,fill:"transparent",stroke:"none"}),o&&ie.jsx(cu,{content:[`Quartile 3 = ${ni(r.quartiles.q3)}`,`Median = ${ni(r.quartiles.q2)}`,`Quartile 1 = ${ni(r.quartiles.q1)}`],x:v?y:t.y(r.quartiles.q2),y:v?t.y(r.quartiles.q2):y,sideDistances:s,horizontal:v,active:p.active&&p.selectedData===r&&p.currentFacet===e,fixed:p.fixed,offset:c>1?C/2:C/4,onClose:p.onClose,container:A})]});return F?uu.createPortal(Q,f):Q}var Y7t=1;function W7t({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]),p=Math.min(Math.floor(A/pK),10),[v,y]=tn.useState(t.ticks(p)),b=e.bandwidth()/2,C=_=>(e(_)??0)+b,x=_=>t(_),k=n==="vertical";return tn.useEffect(()=>{let _=e.domain(),P=t.ticks(p);f(_),y(P)},[e,t]),ie.jsxs("g",{stroke:$f,children:[i.showGrid&&c.map(_=>{let P=C(_)+(i.linesBetweenCategories?b:0);return ie.jsx("line",{x1:k?P:0,x2:k?P:r,y1:k?0:P,y2:k?a:P},`x_${_}`)}),o.showGrid&&v.map(_=>{let P=x(_);return ie.jsx("line",{x1:k?0:P,x2:k?r:P,y1:k?P:0,y2:k?P:a},`y_${_}`)}),s!=="empty"&&ie.jsxs("g",{strokeWidth:Y7t,children:[(i.showGrid||s!=="left")&&ie.jsx("line",{stroke:s==="left"?$f:$t,x1:"0",x2:r,y1:a,y2:a}),(i.showGrid||s!=="bottom")&&ie.jsx("line",{stroke:s==="bottom"?$f:$t,x1:"0",x2:"0",y1:"0",y2:a}),(i.showGrid||s==="full")&&ie.jsx("line",{stroke:s==="full"?$t:$f,x1:r,x2:r,y1:"0",y2:a}),(o.showGrid||s==="full")&&ie.jsx("line",{stroke:s==="full"?$t:$f,x1:"0",x2:r,y1:"0",y2:"0"})]})]})}function X7t(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=bK(i.values[n],t,i.meta.significanceLevels,i.meta.ns);r.push(r[r.length-1]+A2*o)}else r.push(r[r.length-1]+A2)}return r}function SK(e){return typeof e=="string"?e:e.value}function K7t({facetSettings:e,facetTitle:t,dimensions:n,scales:r,orientation:a,layersData:i,statsData:o,facetKey:s,xAxis:c,yAxis:f,frameType:A,tooltips:p,tooltipsContainer:v,keyColumn:y,chartSizes:b,margins:C,xLabels:x,onlyPositive:k,secondaryGrouping:_,tooltipsData:P}){let[N,I]=tn.useState(),F=a==="vertical",Q=X7t(o,r.xPrimary.domain(),s),Z=c.showTicks?dK:0,ee=f.showTicks?dK:0,le=SK(c.title),z=SK(f.title),U=n.chartEdgeSides.includes("left")||F&&!(e!=null&&e.sharedY)||!F&&!(e!=null&&e.sharedX),G=n.chartEdgeSides.includes("bottom")||F&&!(e!=null&&e.sharedX)||!F&&!(e!=null&&e.sharedY),Y=n.chartEdgeSides.includes("left"),X=n.chartEdgeSides.includes("bottom"),{width:te,height:he}=n.inner,{left:ae,top:ge,padding:me}=n,fe={left:C.left+ae+me.left,right:b.totalWidth-(C.left+ae+me.left),top:C.top+ge+me.top,bottom:b.totalHeight-(C.top+ge+me.top)},be=`translate(${ae+me.left},${ge+me.top})`,He=!1;return ie.jsxs("g",{transform:be,children:[He,t.length&&ie.jsxs("g",{children:[A==="full"&&ie.jsx("rect",{x:"0",y:-me.top,height:me.top,width:te,fill:"#F7F8FA",stroke:$t}),t.map((_e,Ie)=>{let Ue=t.length,Oe=(me.top-E4*Ue)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:$t,x:te/2,dy:Oe+E4/2-me.top,y:Ie*E4,textAnchor:"middle",dominantBaseline:"central",children:_e},Ie)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:$t,children:[X&&ie.jsx("text",{x:te/2,y:he+me.bottom-u1/2,children:F?le:z}),X&&He&&ie.jsx("rect",{x:"0",y:he+me.bottom-u1,width:te,height:u1,fill:"none",stroke:"black"}),Y&&ie.jsx("text",{x:-me.left+u1/2,y:he/2,transform:`rotate(-90,${-me.left+u1/2},${he/2})`,children:F?z:le}),Y&&He&&ie.jsx("rect",{x:-me.left,y:"0",width:u1,height:he,fill:"none",stroke:"black"})]}),ie.jsx(W7t,{orientation:a,width:te,height:he,scaleX:r.xPrimary,scaleY:r.y,axisX:c,axisY:f,frameType:A}),G&&ie.jsx("g",{transform:`translate(0,${he})`,children:F?ie.jsx(hK,{scale:r.xPrimary,orient:"bottom",labelsPosition:c.labelsPosition,tickSize:Z,labels:x}):ie.jsx(EK,{scale:r.y,onlyPositive:k,orient:"bottom",tickSize:ee,hiddenLabels:f.hiddenLabels})}),U&&ie.jsx("g",{children:F?ie.jsx(EK,{scale:r.y,onlyPositive:k,orient:"left",tickSize:ee,hiddenLabels:f.hiddenLabels}):ie.jsx(hK,{scale:r.xPrimary,orient:"left",labelsPosition:c.labelsPosition,tickSize:Z,labels:x})}),ie.jsxs("g",{children:[i.map(_e=>ie.jsxs("g",{children:[_e.type==="box"&&_e.geoms[s].map(Ie=>ie.jsx(S7t,{facetKey:s,box:Ie,elementsAmount:_e.geoms[s].length,scales:r,orientation:a,aes:_e.aes,hasKeyFromColumn:y!==null,sideDistances:fe,showTooltips:p.box.show,tooltipsData:P,activeElementContainer:N,tooltipsContainer:v},Ie.key)),_e.type==="violin"&&_e.geoms[s].map(Ie=>ie.jsx(j7t,{facetKey:s,violin:Ie,elementsAmount:_e.geoms[s].length,scales:r,orientation:a,maxViolinDensity:_e.meta.maxDensity,aes:_e.aes,sideDistances:fe,showTooltips:p.violin.show,tooltipsData:P,activeElementContainer:N,tooltipsContainer:v},Ie.key)),_e.type==="dot"&&_e.geoms[s].map(Ie=>ie.jsx(k7t,{facetKey:s,geom:Ie,scales:r,orientation:a,aes:_e.aes,hasKeyFromColumn:y!==null,sideDistances:fe,showTooltips:p.dot.show,tooltipsData:P,activeElementContainer:N,tooltipsContainer:v},Ie.key)),_e.type==="line"&&_e.geoms[s].map(Ie=>ie.jsx(D7t,{facetKey:s,line:Ie,scales:r,orientation:a,sideDistances:fe,aes:_e.aes,showTooltips:p.line.show,secondaryGrouping:_,tooltipsData:P,activeElementContainer:N,tooltipsContainer:v},Ie.key)),_e.type==="errorbar"&&_e.geoms[s].map(Ie=>ie.jsx(T7t,{facetKey:s,errorBar:Ie,scales:r,orientation:a,aes:_e.aes,sideDistances:fe,showTooltips:p.errorBar.show,tooltipsData:P,activeElementContainer:N,tooltipsContainer:v},Ie.key)),_e.type==="bar"&&_e.geoms[s].map(Ie=>ie.jsx(b7t,{bar:Ie,scales:r,orientation:a,aes:_e.aes},Ie.key)),_e.type==="stackedBar"&&_e.geoms[s].map(Ie=>ie.jsx(N7t,{facetKey:s,geom:Ie,elementsAmount:_e.geoms[s].length,scales:r,orientation:a,aes:_e.aes,normalize:_e.meta.normalize,sideDistances:fe,showTooltips:p.stackedBar.show,secondaryGrouping:_,tooltipsData:P,activeElementContainer:N,tooltipsContainer:v},Ie.key)),_e.type==="binnedDots"&&_e.geoms[s].map(Ie=>ie.jsx(E7t,{facetKey:s,geom:Ie,scales:r,orientation:a,aes:_e.aes,binsCount:_e.meta.binsCount,min:_e.meta.minY,max:_e.meta.maxY,hasKeyFromColumn:_e.meta.hasKeyFromColumn,sideDistances:fe,showTooltips:p.stackedBar.show,tooltipsData:P,activeElementContainer:N,tooltipsContainer:v},Ie.key)),_e.type==="pairedPoints"&&_e.geoms[s].map(Ie=>ie.jsx(H7t,{facetKey:s,geom:Ie,scales:r,orientation:a,sideDistances:fe,aes:_e.aes,showTooltips:p.pairedPoints.show,tooltipsData:P,activeElementContainer:N,tooltipsContainer:v},Ie.id)),_e.type==="sina"&&_e.geoms[s].map(Ie=>ie.jsx(R7t,{geom:Ie,scales:r,orientation:a,sideDistances:fe,aes:_e.aes,hasKeyFromColumn:y!==null,showTooltips:!1,tooltipsContainer:v},Ie.key)),_e.type==="logo"&&_e.geoms[s].map(Ie=>ie.jsx(M7t,{facetKey:s,geom:Ie,elementsAmount:_e.geoms[s].length,scales:r,orientation:a,aes:_e.aes,normalize:_e.meta.normalize,sideDistances:fe,showTooltips:p.logo.show,tooltipsData:P,activeElementContainer:N,tooltipsContainer:v},Ie.key))]},_e.type)),o.map((_e,Ie)=>ie.jsx(V7t,{yShift:Q[Ie],scales:r,orientation:a,statType:_e.meta.statType,values:_e.values[s],testMethod:_e.meta.testMethod,format:_e.meta.format,ns:_e.meta.ns,significanceLevels:_e.meta.significanceLevels},`${_e.meta.statType}_${_e.meta.testMethod}`))]}),ie.jsxs("g",{children:[P.fixed&&ie.jsx("rect",{width:b.chartWidth,height:b.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:_e=>{_e&&!N&&I(_e)}})]})]})}var v2=class extends T6.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(Uv,{message:this.state.message}):this.props.children}};function Z7t(e,t,n,r){return e==="left"?n:e==="right"?t-r:(t-(n+r))/2+n}function J7t(e){return e==="left"?"start":e==="right"?"end":"middle"}function m2({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:Z7t(t,r,a,i),textAnchor:J7t(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,S4=-12,BK=14;function q7t(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 e5t=3,t5t=24;function n5t({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?jc(e.dotShape??"21",e5t,i?$t:e.dotFill??$t):null,s=(a&&r?2*pc:0)-6,c=r?s+t5t+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:q7t(e.lineShape),fill:e.lineColor}),ie.jsx("text",{x:c,y:pc/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function r5t({aes:e,label:t}){let n=jc(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 g2({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:S4,children:n.title}),ie.jsx("rect",{x:"0",y:"0",width:BK,height:n.height,stroke:$t,fill:`url(#${n.id})`}),ie.jsx("g",{transform:`translate(${BK},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:$t}),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:S4,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:$t}),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:S4,children:n.title}),n.values.map((r,a)=>ie.jsx("g",{transform:`translate(0, ${a*(pc+4)})`,children:ie.jsx(n5t,{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:S4,children:n.title}),n.values.map((r,a)=>ie.jsx("g",{transform:`translate(0, ${a*(pc+4)})`,children:ie.jsx(r5t,{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:S4,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:$t}),ie.jsx("text",{x:r+4,y:r/2,alignmentBaseline:"central",children:n.labels[a]})]},a)}),!1]},n.id)}})]})}function a5t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,facetKeys:a,facetTitles:i,facetSettings:o,scales:s,layersData:c,statsData:f,legendData:A,margins:p,columnsCount:v,keyColumn:y,xLabels:b,chartTitle:C,onlyPositive:x,secondaryGrouping:k,onTooltipHintSwitch:_}){let[P,N]=tn.useState(),I=d2(_),{orientation:F,xAxis:Q,yAxis:Z,title:ee,legend:le,frame:z}=t,U=r[a[0]].padding,G=r[a[v-1]].padding,Y=n.chartsWidth+AK,X=U.top;return ie.jsx(v2,{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:Fg}),ie.jsxs("g",{transform:`translate(${p.left},${p.top})`,fontFamily:"Manrope",children:[ie.jsx(m2,{title:C,show:ee.show,position:ee.position,leftPadding:U.left,rightPadding:G.right,chartsWidth:n.chartsWidth}),a.map(te=>ie.jsx(K7t,{facetKey:te,facetTitle:i[te],facetSettings:o,orientation:F,scales:{...s,xPrimary:s.xPrimary[te],xSecondary:s.xSecondary[te],y:s.y[te]},chartSizes:n,margins:p,dimensions:r[te],layersData:c,statsData:f,xAxis:Q,yAxis:Z,frameType:z.type,tooltips:t.tooltips,tooltipsContainer:P,keyColumn:y,xLabels:b[te],onlyPositive:x,secondaryGrouping:k,tooltipsData:I},te)),le.show&&ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(g2,{legendData:A})})]}),ie.jsx("g",{style:{outline:"none"},ref:te=>{te&&!P&&N(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=>bK(c,t,o.meta.significanceLevels,o.meta.ns));return i+A2*Math.max(...s)}return(o.meta.ns?t.length>0:r.some(s=>o.values[s].some(([,c])=>c<o.meta.significanceLevels.one)))?i+A2:i},v7t):0;return Math.max(n,a)}function y2(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,p)=>A-p),o=Dp(i,.25),s=Dp(i,.75),c=s-o,f=1.5;return[a(o-f*c),a(s+f*c)]}function i5t(e,t,n,r=14){let a=new Ac(`600 ${r}px Manrope`),i=[];e.split(new RegExp("(?=[_-])|(?<=[_-])")).forEach(p=>{a.getTextWidth(p)>n?i.push(...p.split("")):i.push(p)});let o="",s=0,c=0,f="";for(;s<=t;){let p=a.getTextWidth(o+i[c]);p<t&&(o+=i[c],f=o,c++),s=p}o="",s=0;let A=[];for(c;c<i.length;c++){let p=a.getTextWidth(o+i[c]);p<n?(o+=i[c],s=p):(A.push(o),o=i[c],s=a.getTextWidth(i[c]))}return{firstPart:f,lines:A,lastPart:o,lastPartLength:s}}function Gv(e,t,n){let r=new Ac(`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 p=r.getTextWidth(a[c]);if(p>t){let{firstPart:v,lines:y,lastPart:b,lastPartLength:C}=i5t(a[c],t-s,t,n);i.push(`${o} ${v}`),i.push(...y),o=b,s=C}else i.push(o),o=a[c],s=p}}return i.push(o),i.filter(c=>c.length>0)}var TK=new Ac("600 14px Manrope"),o5t=16,HD=48,l5t=20,Vg=24;function ID(e,t){return Math.max(...e.map(n=>TK.getTextWidth(String(n))+l5t),TK.getTextWidth(t))}function s5t(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 w2(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:p,id:v,scale:y}=c;if(f==="continuous"){let b=eK(A,p),C=r;t-i<C&&(o+=a+Vg,a=0,i=0);let x=o,k=i;b>a&&(a=b),i+=C+HD,i>=t&&(o+=a+Vg,a=0,i=0),s.push({...c,width:b,height:C,left:x,top:k})}else if(f==="size"){let{labels:b}=c,C=y(Math.max(...A))*2+4,x=ID(A.map(N=>b[N]),p),k=A.length*C;t-i<k&&(o+=a+Vg,a=0,i=0);let _=o,P=i;x>a&&(a=x),i+=k+HD,i>=t&&(o+=a+Vg,a=0,i=0),s.push({...c,width:x,height:k,left:_,top:P})}else{let{labels:b}=c,C=o5t,x=t-i;x<C&&(x=t,o+=a+Vg,a=0,i=0);let k=s5t(A,x,t,C),_=ID([],p),P=a===0,N=o+_+Vg;k.forEach((I,F)=>{let Q=F===k.length-1,Z=F>0?"":p,ee=F>0?`${v}_${F}`:v,le=ID(I.map(Y=>b[Y]),P&&!Q?"":Z),z=I.length*C,U=o,G=i;le>a&&(a=le),Q?i+=z+HD:i=t,i>=t&&(o+=a+Vg,P&&Q&&o<N&&(o=N),a=0,i=0),s.push({...c,id:ee,title:Z,width:le,height:z,left:U,top:G,values:I})})}}),s}function u5t(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 c5t(e,t,n,r,a,i,o,s,c,f,A){let p=e==="vertical",v=o.includes("left")||p&&!(s!=null&&s.sharedY)||!p&&!(s!=null&&s.sharedX),y=o.includes("left")&&n.title!=="",b=o.includes("bottom")||p&&!(s!=null&&s.sharedX)||!p&&!(s!=null&&s.sharedY),C=o.includes("bottom")&&t.title!=="",x=r.yAxisCaptionsWidth,k=(n.showTicks?s2:0)+(n.hiddenLabels?0:Ff),_=y?u1:0,P=r.xAxisCaptionsWidthByRows[p?c:f],N=(t.showTicks?s2:0)+(t.hiddenLabels?0:Ff),I=C?u1:0,F=p?x+k+_:P+N+I,Q=p?N+P+I:k+2*u1,Z=Math.max(...a.map(ee=>i[ee].length));return{left:v?F:kD,top:Z===0?0:p7t*2+Z*E4,bottom:b?Q:kD,right:A?0:kD}}function f5t(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 _K(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function d5t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function A5t(e){return typeof e=="object"&&"type"in e}var p5t=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:W7().range([0,600]).domain(["1"])},xSecondary:{null:W7().range([0,600]).domain(["1"])},y:{null:Zr().domain([0,10]).range([350,0]).nice()},xPrimaryAes:zo().unknown(fK),xSecondaryAes:zo().unknown(fK)});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=Gh(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),p=Math.min((n==null?void 0:n.nCols)??f,f);this.columnsCount=n!=null&&n.nRows?Math.ceil(f/A):p,this.rowsCount=Math.ceil(f/this.columnsCount);let{width:v,height:y}=e;a==="vertical"&&c>o&&(y+=c),a==="horizontal"&&c>s&&(v+=c),this.chartSizes.chartWidth=v,this.chartSizes.chartHeight=y}updateChartDimensions(e,t,n,r,a){let{chartWidth:i,chartHeight:o}=this.chartSizes,s=0,c=0;this.chartsDimensions=e.reduce((p,v,y)=>{let[b,C]=d5t(y,this.columnsCount),x=u5t(y,e.length,this.columnsCount,this.rowsCount),k=c5t(n,r,a,this.captionsSizes,_K(e,this.rowsCount,this.columnsCount)[b],this.facetTitles,x,t,b,C,C===this.columnsCount-1),_=i+k.left+k.right,P=o+k.top+k.bottom;return p[v]={left:s,top:c,chartEdgeSides:x,padding:k,inner:{width:i,height:o},outer:{width:_,height:P}},s+=_,C===this.columnsCount-1&&(s=0,c+=P),p},{});let f=Math.max(...e.map(p=>this.chartsDimensions[p].outer.width+this.chartsDimensions[p].left)),A=Math.max(...e.map(p=>this.chartsDimensions[p].outer.height+this.chartsDimensions[p].top));this.chartSizes.chartsWidth=f,this.chartSizes.chartsHeight=A}updateViewport(e,t,n,r,a,i,o,s,c,f){let A=c.innerOffset,p=e==="vertical",v=kK(s,t,c.innerOffset),y=a===null||a.sharedX,b=a===null||a.sharedY,{chartHeight:C,chartWidth:x}=this.chartSizes;r.forEach(k=>{let _=i.scale==="log"?Gm():Zr(),P=Math.min(...b?o.map(({meta:Q})=>Q.minY):o.map(({geoms:Q})=>Math.min(...Q[k].map(({boundsY:Z})=>Z.min)))),N=Math.max(...b?o.map(({meta:Q})=>Q.maxY):o.map(({geoms:Q})=>Math.max(...Q[k].map(({boundsY:Z})=>Z.max)))),I=_.copy().domain([P,N]).range(p?[C-A,v]:[A,x-v]);_.domain([I.invert(p?C:0),I.invert(p?0:x)]).range(p?[C,0]:[0,x]),this.scales.y[k]=_;let F=y?t:f[k];this.scales.xPrimary[k]=W7().domain(F).range(p?[0,x]:[C,0]),this.scales.xSecondary[k]=W7().domain(n).range([0,this.scales.xPrimary[k].bandwidth()])})}createFacetTitles(e,t){this.facetTitles=e.reduce((n,r,a)=>(t[a].length===1&&t[a][0]==="null"?n[r]=[]:n[r]=Gv(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=Gv(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)/TD:c/TD)}this.axisLabelsX=e.reduce((s,c)=>{let f=this.scales.xPrimary[c],A=f.bandwidth(),p=a[t.labelsPosition],v=t.labelsPosition==="center"?Math.min(p,A):p,y=n.valueLabels;return s[c]=f.domain().reduce((b,C)=>{if(t.hiddenLabels)return b[C]=[],b;let x=y[C];if(!i)b[C]=[x];else{let k=o(t.labelsPosition,A),_=Gv(x,v,14);b[C]=_.length>k?[x]:_}return b},{}),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 Ac("600 14px Manrope"),i=e==="vertical";function o(b){return b.length?Math.max(...b.map(C=>a.getTextWidth(C))):0}function s(b){return b.length?Math.max(...b.map(o)):0}let c=[],f=0,A=_K(t,this.rowsCount,this.columnsCount),p=f5t(t,this.rowsCount,this.columnsCount);if(!i)c=p.map(b=>Math.max(...b.map(C=>s(this.scales.xPrimary[C].domain().map(x=>this.axisLabelsX[C][x])))));else{if(n.labelsPosition==="center"&&(c=A.map(b=>Math.max(...b.map(C=>Math.max(...this.scales.xPrimary[C].domain().map(x=>x?this.axisLabelsX[C][x].length*TD:0)))))),n.labelsPosition==="45deg"){let b=Math.sin(Math.PI/4);c=A.map(C=>Math.max(...C.map(x=>{let k=this.scales.xPrimary[x].domain().map(P=>this.axisLabelsX[x][P]),_=s(k);return _>0?_*b+14:0}))),f=Math.max(...p[0].map(C=>{let x=this.scales.xPrimary[C].domain(),k=this.axisLabelsX[C][x[0]];return Math.max(o(k)*b-this.scales.xPrimary[C].bandwidth()/2+14,0)}))}n.labelsPosition==="90deg"&&(c=A.map(b=>Math.max(...b.map(C=>s(this.scales.xPrimary[C].domain().map(x=>this.axisLabelsX[C][x]))))))}let v=Zn.flatten(t.map(b=>{if(r.hiddenLabels)return[];let C=this.scales.y[b],x=C.ticks(),k=x.some(P=>Math.abs(P)<1e-4&&P!==0||P>1e4)?",e":",f",_=C.tickFormat(10,k);return x.map(_)})),y=o(v);this.captionsSizes={xCaptionsTail:f,xAxisCaptionsWidthByRows:c,yAxisCaptionsWidth:y}}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(b,C){return r.some(x=>{let k=x.aes[C];return k&&A5t(k)&&k.type===b})}function c(b){return{dotFill:s(b,"dotFill"),fillColor:s(b,"fillColor"),lineColor:s(b,"lineColor"),dotShape:s(b,"dotShape"),lineShape:s(b,"lineShape")}}let f=c("primaryGrouping"),A=c("secondaryGrouping");if(Object.values(f).some(b=>b)&&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(b=>b)&&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 p=w2(o,this.chartSizes.chartHeight),v=p[p.length-1],y=v.left+v.width+AK;this.legend={width:y,height:a,items:p}}render(e,t,n,r,a,i,o,s,c,f,A,p,v){var _;let{orientation:y,xAxis:b,yAxis:C,size:x}=t;this.updateChartSize(x,i,a,n.keys,y,c),this.updateViewport(y,n.keys,r.keys,i,a,C,s,c,x,A),this.createAxisLabels(i,b,n,y),this.createFacetTitles(i,o),this.updateCaptionsSize(y,i,b,C),this.updateChartDimensions(i,a,y,b,C),this.updateLegendSize(t.legend,n,r,s),this.createMainTitle(i,t.title),this.updateMargins(y,i,x),this.updateAesScales(n,r);let k=ie.jsx(a5t,{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:p,secondaryGrouping:r,onTooltipHintSwitch:v});this.component=k,(_=this.reactRoot)==null||_.render(k)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Uv,{message:e}))}},h5t=p5t;function v5t(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 m5t=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 p=I=>Number(I[t]);this.primaryGrouping=a===null?"":String(a),this.secondaryGrouping=i===null?"":String(i),this.key=`box_${this.primaryGrouping}_${this.secondaryGrouping}`;let v=I=>r==="log"?Math.log10(I):I,y=I=>r==="log"?Math.pow(10,I):I,b=v5t(e,p,v,r==="log"),C=Dp(b,o),x=Dp(b,s),k=Dp(b,c),_=k-C;this.upper=y(k),this.middle=y(x),this.lower=y(C),this.min=Math.max(EC(e,p),y(C-f*_)),this.max=Math.min(Rh(e,p),y(k+f*_)),this.outliers=e.filter(I=>p(I)<this.min||p(I)>this.max).map((I,F)=>({y:p(I),data:I,id:String(n?I[n]:F)}));let[P=1/0,N=-1/0]=_p(this.outliers,I=>I.y);this.boundsY={min:A?Math.min(this.min,P):this.min,max:A?Math.max(this.max,N):this.max}}};function g5t(e,t,n,r,a,i,o,s){let c=1/0,f=-1/0;return{type:"box",geoms:t.reduce((A,p)=>{let v=p.join("_");return A[v]=[],n.forEach(y=>{r.forEach(b=>{let C=a.getRowsByGrouping([...p,y,b]);if(!C.length)return;let x=new m5t(C,i.value,(o==null?void 0:o.value)??null,s.scale,y,b,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 DK=40;function y5t(e,t){return function(n){return t.map(function(r){return[r,Ls(n,a=>e(r-a))]})}}function w5t(e){return function(t){return 1/Math.sqrt(2*Math.PI)*Math.pow(Math.E,-.5*Math.pow(t/e,2))}}function C5t(e){let t=Ls(e);return Ls(e.map(n=>Math.pow(n-t,2)))}function b5t(e){return Math.sqrt(C5t(e))}function E5t(e,t,n){let r=(n-t)/1.34,a=b5t(e);return 1.06*Math.min(a,r)*Math.pow(e.length,-1/5)}var x5t=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=I=>t==="log"?Math.log10(I):I,s=I=>t==="log"?Math.pow(10,I):I,c=e.filter(I=>t==="log"&&Number(I)===0?(console.warn("Value = 0 on chart with log scale, it was removed from calculation"),!1):!0).map(o).sort((I,F)=>I-F),f=c[0],A=c[c.length-1],p=A-f,v=Dp(c,.25),y=Dp(c,.5),b=Dp(c,.75);this.quartiles={q1:s(v),q2:s(y),q3:s(b)};let C=E5t(c,v,b),x=r!=="auto"?r:C/3>p/DK?DK:p/(C/3),k=n?f:f-3*C,_=n?A:A+3*C,P=Zr().domain([k,_]).ticks(x);this.boundsY={min:s(P[0]),max:s(P[P.length-1])};let N=y5t(w5t(C),P)(c).map(([I,F])=>[s(I),F]);this.maxDensity=Rh(N,([,I])=>I),this.getArea=(I,F,Q,Z)=>{let ee=I==="vertical",le=Z??this.maxDensity,z=Zr().domain([-le,le]).range([-Q/2,Q/2]);return ee?YB().curve(wy).x0(U=>z(U[1])).x1(U=>z(-U[1])).y(U=>F(U[0]))(N):YB().curve(wy).y0(U=>z(U[1])).y1(U=>z(-U[1])).x(U=>F(U[0]))(N)},this.getLine=(I,F,Q,Z)=>{let ee=I==="vertical",le=Z??this.maxDensity,z=Zr().domain([-le,le]).range([-Q/2,Q/2]);return yy().curve(wy).x(ee?U=>z(U[1]):U=>F(U[0])).y(ee?U=>F(U[0]):U=>z(U[1]))(N)+" "+yy().curve(wy).x(ee?U=>z(-U[1]):U=>F(U[0])).y(ee?U=>F(U[0]):U=>z(-U[1]))(N)}}};function S5t(e,t,n,r,a,i,o){let s=0,c=1/0,f=-1/0;return{type:"violin",geoms:t.reduce((A,p)=>{let v=p.join("_");return A[v]=[],n.forEach(y=>{r.forEach(b=>{let C=a.getColumnByGrouping([...p,y,b],i.value);if(!C.length)return;let x=new x5t(C,o.scale,e.stat.trim,e.stat.stepsCount,y,b);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 B5t=30;function k5t(e,t){return function(n){return t.map(function(r){return Ls(n,a=>e(r-a))})}}function T5t(e){return function(t){return 1/Math.sqrt(2*Math.PI)*Math.pow(Math.E,-.5*Math.pow(t/e,2))}}function _5t(e){let t=Ls(e);return Ls(e.map(n=>Math.pow(n-t,2)))}function D5t(e){return Math.sqrt(_5t(e))}function P5t(e){let t=Dp(e,.25),n=(Dp(e,.75)-t)/1.34,r=D5t(e);return 1.06*Math.min(r,n)*Math.pow(e.length,-1/5)}var M5t=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=B5t;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,N)=>s(f(P))-s(f(N))),p=A.map(P=>s(f(P))),v=p[0],y=p[A.length-1],b=(y-v)/o,C=P5t(p),x=Zn.range(v+b,y,b);this.boundsY={min:c(v),max:c(y)};let k=k5t(T5t(C),x)(p),_=Zr().domain(x).range(k).clamp(!0);this.maxDensity=Rh(k),this.points=A.map((P,N)=>({x:f(P),y:_(s(f(P)))/this.maxDensity,id:String(N),jitter:i(),data:P}))}};function H5t(e,t,n,r,a,i,o){let s=0,c=1/0,f=-1/0,A=AF(1);return{type:"sina",geoms:t.reduce((p,v)=>{let y=v.join("_");return p[y]=[],n.forEach(b=>{r.forEach(C=>{let x=a.getRowsByGrouping([...v,b,C]);if(!x.length)return;let k=x;if(!e.aes.showOutliers){let P=F=>Number(F[i.value]),[N,I]=y2(x,o.scale,P);k=x.filter(F=>{let Q=P(F);return Q>=N&&Q<=I})}let _=new M5t(k,i,o.scale,b,C,A);_.maxDensity>s&&(s=_.maxDensity),_.boundsY.min<c&&(c=_.boundsY.min),_.boundsY.max>f&&(f=_.boundsY.max),p[y].push(_)})}),p},{}),meta:{maxDensity:s,minY:c,maxY:f},aes:e.aes}}function I5t(e,t,n,r,a,i,o,s){let c=1/0,f=-1/0,A=AF(1);return{type:"dot",geoms:t.reduce((p,v)=>{let y=v.join("_");return p[y]=[],n.forEach(b=>{r.forEach(C=>{let x=a.getRowsByGrouping([...v,b,C]);if(!x.length)return;let k=I=>Number(I[i.value]),_=x.map((I,F)=>({y:k(I),jitter:A(),id:String(s?I[s.value]:F),data:I}));if(!e.aes.showOutliers){let[I,F]=y2(x,o.scale,k);_=_.filter(({y:Q})=>Q>=I&&Q<=F)}let[P=1/0,N=-1/0]=_p(_,I=>I.y);P<c&&(c=P),N>f&&(f=N),p[y].push({key:`dots_${b}_${C}`,values:_,primaryGrouping:b,secondaryGrouping:C,boundsY:{min:P,max:N}})})}),p},{}),meta:{minY:c,maxY:f},aes:e.aes}}function R5t(e,t){if(t==="median")return _R(e,.5);if(t==="mean")return Ls(e);uA(t,`Unknown line points calculation for dot layer: ${t}`)}function N5t(e,t,n,r,a,i,o){let s=1/0,c=-1/0;return{type:"line",geoms:t.reduce((f,A)=>{let p=A.join("_");f[p]=[];let v=-1/0,y=1/0;return e.aes.showOutliers||([v,y]=y2(a.getColumnByGrouping([...A],i.value),o.scale)),r.forEach(b=>{let C={key:`${b}`,boundsY:{min:1/0,max:-1/0},dots:{}},x=!1,k=P=>o.scale==="log"?Math.log10(P):P,_=P=>o.scale==="log"?Math.pow(10,P):P;n.forEach(P=>{let N=a.getColumnByGrouping([...A,P,b],i.value);if(!N.length){x=!0;return}let I=N;if(e.aes.showOutliers||(I=N.filter(Q=>Q>=v&&Q<=y)),!I.length){x=!0;return}let F=_(R5t(I.map(k),e.pointsValues));C.dots[P]=F,F<s&&(s=F),F>c&&(c=F),F<C.boundsY.min&&(C.boundsY.min=F),F>C.boundsY.max&&(C.boundsY.max=F)}),x||f[p].push(C)}),f},{}),meta:{minY:s,maxY:c},aes:e.aes}}function L5t(e){let t=Ls(e);return Ls(e.map(n=>Math.pow(n-t,2)))}function RD(e){return Math.sqrt(L5t(e))}function $5t(e){return RD(e)/Math.sqrt(e.length)}function F5t(e){return 1.96*RD(e)}function V5t(e,t){if(t==="median")return _R(e,.5);if(t==="mean")return Ls(e);uA(t,"Unknown points calculation")}function O5t(e,t){if(t==="sd")return RD(e);if(t==="se")return $5t(e);if(t==="ci")return F5t(e);uA(t,"Unknown error interval calculation")}function Q5t(e,t,n,r,a,i,o){let s=1/0,c=-1/0;return{type:"errorbar",geoms:t.reduce((f,A)=>{let p=A.join("_");f[p]=[];let v=b=>o.scale==="log"?Math.log10(b):b,y=b=>o.scale==="log"?Math.pow(10,b):b;return n.forEach(b=>{r.forEach(C=>{let x=a.getColumnByGrouping([...A,b,C],i.value);if(!x.length)return;let k=x.map(v),_=y(V5t(k,e.pointsValues)),P=y(O5t(k,e.interval)),N=_-P,I=_+P;N<s&&(s=N),I>c&&(c=I),f[p].push({key:`errorbar_${b}_${C}`,primaryGrouping:b,secondaryGrouping:C,value:_,min:N,max:I,boundsY:{min:N,max:I}})})}),f},{}),meta:{minY:s,maxY:c},aes:e.aes}}function z5t(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 Rh(e,o)??o(e[0]);case"min":return EC(e,o)??o(e[0]);case"median":{let s=e.map(c=>Number(c[n])).map(a).sort((c,f)=>c-f);return i(Dp(s,.5))}case"mean":return Ls(e,o)??o(e[0]);default:uA(r,`Unknown bar height function ${r}`)}}function U5t(e,t,n,r,a,i,o){let s=-1/0,c=1/0;return{type:"bar",geoms:t.reduce((f,A)=>{let p=A.join("_");return f[p]=[],n.forEach(v=>{r.forEach(y=>{let b=a.getRowsByGrouping([...A,v,y]);if(!b.length)return;let C=z5t(b,o.scale,i.value,e.height);s=Math.max(s,C,0),c=Math.min(c,C,0),f[p].push({key:`bar_${v}_${y}`,value:C,primaryGrouping:v,secondaryGrouping:y,boundsY:{min:Math.min(0,C),max:Math.max(0,C)}})})}),f},{}),meta:{minY:c,maxY:s},aes:e.aes}}function G5t(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(p=>{let v=0,y={};r.forEach(x=>{let k=a.getRowsByGrouping([...f,p,x]);if(!k.length)return;let _=oc(k,P=>Number(P[i.value]));y[x]={height:_,key:x},v+=_});let b=v;e.normalize&&r.forEach(x=>{y[x]&&(y[x].height=y[x].height/b*100)}),o=Math.max(o,0,v),s=Math.min(s,0,v);let C=e.normalize?100:b;c[A].push({key:`stackedBar_${p}`,valuesMap:y,primaryGrouping:p,boundsY:{min:Math.min(C,0),max:Math.max(C,0)}})}),c},{}),meta:{minY:e.normalize?0:s,maxY:e.normalize?100:o,normalize:e.normalize},aes:e.aes}}var PK=30;function j5t(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,y){return{key:i(v,y),value:a(v)}}let p=0;for(let v=1;v<s;++v){let y=o[p],b=o[v],C=o[v-1];if(b>=y+t){let x=Math.min((y+C)/2,b-t);o.fill(x,p,v),f.push({x:r(x),count:v-p,dots:c.slice(p,v)}),p=v}}return o.fill((o[p]+o[s-1])/2,p,s),f.push({x:r((o[p]+o[s-1])/2),count:s-p,dots:c.slice(p,s)}),f}var Y5t=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(p=>s(p)===0&&c==="log"?(console.warn(`Item with ${t} = 0 is not shown on chart with log scale`),!1):!0).sort((p,v)=>i(s(p))-i(s(v)));this.bins=j5t(A,a,i,o,s,(p,v)=>String(f?p[f.value]:v)),this.boundsY={min:this.bins[0].x,max:this.bins[this.bins.length-1].x}}};function W5t(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,p=-1/0,v=a.getRowsByGrouping([]),[y=f(v[0]),b=f(v[0])]=_p(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])),C=Math.abs(s(y)-s(b))/PK;return{type:"binnedDots",geoms:t.reduce((x,k)=>{let _=k.join("_");return x[_]=[],n.forEach(P=>{r.forEach(N=>{let I=a.getRowsByGrouping([...k,P,N]);if(!I.length)return;let F=I;if(!e.aes.showOutliers){let[Z,ee]=y2(I,o.scale,f);F=I.filter(le=>{let z=f(le);return z>=Z&&z<=ee})}let Q=new Y5t(F,i.value,P,N,C,s,c,f,o.scale,e.keyColumn);Q.boundsY.min<A&&(A=Q.boundsY.min),Q.boundsY.max>p&&(p=Q.boundsY.max),x[_].push(Q)})}),x},{}),meta:{minY:Math.min(y,b,A),maxY:Math.max(y,b,p),binsCount:PK,hasKeyFromColumn:e.keyColumn!==null},aes:e.aes}}function X5t(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 MK(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]),p=Object.keys(f),v=Object.keys(A);if(Zn.uniq(p).length!==p.length||Zn.uniq(v).length!==v.length)throw Error(`Non unique keys in groups ${e}, ${t} for paired points layer`);if(p.length!==v.length||Zn.intersection(p,v).length!==p.length)throw Error(`Keys in groups ${e}, ${t} not match for paired points layer`);let y=P=>Number(P[i.value]),b=1/0,C=-1/0,x=!1,k=c==="log",_=p.map(P=>{let N=f[P][0],I=A[P][0],F=y(N),Q=y(I);return(F===0||Q===0)&&(x=!0),b=Math.min(b,k&&F===0?1/0:F,k&&Q===0?1/0:Q),C=Math.max(C,k&&F===0?-1/0:F,k&&Q===0?-1/0:Q),{id:P,key1:{id:`${P}_${e}`,value:F,data:N},key2:{id:`${P}_${t}`,value:Q,data:I}}});if(!s){b=1/0,C=-1/0;let[P,N]=y2(n,c,y),[I,F]=y2(r,c,y);_=_.filter(({key1:Q,key2:Z})=>Q.value<P||Q.value>N||Z.value<I||Z.value>F?!1:(b=Math.min(b,k&&Q.value===0?1/0:Q.value,k&&Z.value===0?1/0:Z.value),C=Math.max(C,k&&Q.value===0?-1/0:Q.value,k&&Z.value===0?-1/0:Z.value),!0))}return b=x?b/10:b,C=Math.max(C,b),{id:`${e}_${t}`,key1:e,key2:t,pairs:_.map(P=>({...P,key1:{...P.key1,value:P.key1.value===0?b:P.key1.value},key2:{...P.key2,value:P.key2.value===0?b:P.key2.value}})),grouping:o,boundsY:{min:b,max:C}}}function K5t(e,t,n,r,a,i,o){let s=X5t(n,r),c=1/0,f=-1/0;return{type:"pairedPoints",geoms:t.reduce((A,p)=>{let v=p.join("_");if(A[v]=[],s==="primary"){let[y,b]=n,C=a.getRowsByGrouping([...p,y]),x=a.getRowsByGrouping([...p,b]),k=MK(y,b,C,x,e.linkColumn,i,s,e.aes.showOutliers,o.scale);c=Math.min(c,k.boundsY.min),f=Math.max(f,k.boundsY.max),A[v].push(k)}else s==="secondary"&&n.forEach(y=>{let[b,C]=r,x=a.getRowsByGrouping([...p,y,b]),k=a.getRowsByGrouping([...p,y,C]),_=MK(b,C,x,k,e.linkColumn,i,s,e.aes.showOutliers,o.scale);c=Math.min(c,_.boundsY.min),f=Math.max(f,_.boundsY.max),A[v].push(_)});return A},{}),meta:{minY:c,maxY:f},aes:e.aes}}function HK(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 C2(e,t){return Zn.orderBy(e.map((n,r)=>[n,r]),([n])=>n,[t?"desc":"asc"]).map(([,n])=>n)}function Z5t(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 J5t(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 IK(e,t){if(e.length<1)throw new Error("pmin requires at least one element");return e.map(n=>Math.min(n,t))}function q5t(e){if(e.length<1)throw new Error("pAdjust requires at least one element");return Math.min(...e)}function e9t(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 t9t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=C2(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=C2(r,!1),o=J5t(a),s=IK(o,1),c=new Array(t);for(let f=0;f<t;++f)c[f]=s[i[f]];return c}function n9t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=HK(t,t),r=C2(e,!1),a=new Array(t);for(let p=0;p<t;++p)a[p]=e[r[p]];let i=r.slice(),o=C2(i,!1),s=new Array(t),c=new Array(t),f=new Array(t);for(let p=0;p<t;++p)f[p]=a[p]*t/n[p];let A=q5t(f);s.fill(A),c.fill(A);for(let p=t;p>=2;--p){let v=HK(1,t-p+1);for(let x=0;x<t-p+1;++x)v[x]--;let y=p-1,b=new Array(y);for(let x=0;x<y;++x)b[x]=t-p+2+x-1;let C=p*a[b[0]]/2;for(let x=1;x<y;++x){let k=a[b[x]]*p/(2+x);k<C&&(C=k)}for(let x=0;x<t-p+1;++x)s[v[x]]=Math.min(a[v[x]]*p,C);for(let x=0;x<y;++x)s[b[x]]=s[t-p];for(let x=0;x<t;++x)c[x]<s[x]&&(c[x]=s[x])}for(let p=0;p<t;++p)s[p]=c[o[p]];return s}var r9t=class{constructor(e,t,n){this.ni=e,this.o=t,this.ro=n}result(e){let t=Z5t(e),n=IK(t,1),r=new Array(e.length);for(let a=0;a<e.length;++a)r[a]=n[this.ro[a]];return r}};function ND(e){let t=e.length,n=new Array(t),r=C2(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=C2(r,!1);return new r9t(n,r,a)}function a9t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=ND(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 i9t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=ND(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 o9t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=ND(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 a9t(e);case"BenjaminiYekutieli":return i9t(e);case"Bonferroni":return e9t(e);case"Hochberg":return o9t(e);case"Holm":return t9t(e);case"Hommel":return n9t(e);case null:return e;default:throw new Error(`Unknown p-value correction method: ${t}`)}}function l9t(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 s9t(e){return .5*l9t(-e/Math.sqrt(2))}var u9t=class{constructor(e,t){this.value=e,this.position=t}getValue(){return this.value}getPosition(){return this.position}};function c9t(e){let t=new Array(e.length);for(let o=0;o<e.length;o++)t[o]=new u9t(e[o],o);let n=d9t(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&&NK(r,i),i=[]),i.push(t[o].getPosition()),r[t[o].getPosition()]=a;return i.length>1&&NK(r,i),f9t(r,n),r}function NK(e,t){let n=(2*e[t[0]]+t.length-1)/2;t.forEach(r=>{e[r]=n})}function f9t(e,t){t.forEach(n=>{e[n]=NaN})}function d9t(e){let t=[];for(let n=0;n<e.length;n++)isNaN(e[n].getValue())&&t.push(n);return t}var A9t=class{constructor(){Be(this,"SMALL_SAMPLE_SIZE",50)}mannWhitneyU(e,t){let n=[...e,...t],r=c9t(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*s9t(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 p=1;p<=f;p++){A++,c=c-1;let v=a[p]+i[p];a[p]=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 LD(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 Lot(e[0],e[1]).pValue}let r=tlt(e[0],e[1]).pValue;return isNaN(r)?1:r}case"anova":{let r=QGe(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 edt(e[0],e[1]).pValue}let r=new A9t().mannWhitneyUTest(e[0],e[1]);return isNaN(r)?1:r}case"kruskalWallis":{let r=Ect(...e).pValue;return isNaN(r)?1:r}default:throw new Error("Unknown test method")}}function p9t(e){return e.slice(0,-1).reduce((t,n,r)=>t.concat(e.slice(r+1).map(a=>[n,a])),[])}function h9t(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=LD(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 p=RK(A.map(([,v])=>LD([f,v],e.testMethod,e.paired)),e.correctionMethod);s=A.map(([v],y)=>[[v],p[y]]);break}case"pairwise":{let c=p9t(n).map(([A,p])=>[[A,p],[a.getColumnByGrouping([...o,A],r.value),a.getColumnByGrouping([...o,p],r.value)]]).filter(([,[A,p]])=>A.length&&p.length);if(c.length<1)break;let f=RK(c.map(([,A])=>LD(A,e.testMethod,e.paired)),e.correctionMethod);s=c.map(([A],p)=>[A,f[p]]);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 B4="#3e9838",b2="21",E2=3,KA=class{},LK=class extends KA{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:b2,dotFill:$t,dotSize:E2,lineColor:$t,fillColor:B4,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])}},$K=class extends KA{constructor(t){super();Be(this,"type","violin");Be(this,"stat",{bandwidth:"auto",stepsCount:40,trim:!0});Be(this,"aes",{width:"auto",lineColor:$t,fillColor:B4,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)}},FK=class extends KA{constructor(t){super();Be(this,"type","dot");Be(this,"aes",{showOutliers:!0,jitter:.8,lineColor:"none",dotFill:$t,dotShape:b2,dotSize:E2,opacity:1});this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="dot"&&this.aes.showOutliers===t.aes.showOutliers}},VK=class extends KA{constructor(t){super();Be(this,"type","line");Be(this,"pointsValues");Be(this,"aes",{showOutliers:!0,lineWidth:1,lineShape:"solid",fillColor:"none",lineColor:$t,dotShape:b2,dotSize:E2,opacity:1});this.pointsValues=t.pointsValues,this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="line"&&this.pointsValues===t.pointsValues}},OK=class extends KA{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:$t,dotShape:b2,dotSize:E2,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}},QK=class extends KA{constructor(t){super();Be(this,"type","bar");Be(this,"height");Be(this,"aes",{width:"auto",lineWidth:1,fillColor:"none",lineColor:$t,opacity:1});this.height=t.height??"max",this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="bar"&&this.height===t.height}},zK=class extends KA{constructor(t){super();Be(this,"type","stackedBar");Be(this,"normalize",!1);Be(this,"aes",{width:"auto",lineWidth:1,fillColor:B4,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}},UK=class extends KA{constructor(t){super();Be(this,"type","logo");Be(this,"normalize",!1);Be(this,"aes",{width:"auto",fillColor:B4,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}},GK=class extends KA{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:$t,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)}},jK=class extends KA{constructor(t){super();Be(this,"type","pairedPoints");Be(this,"linkColumn");Be(this,"aes",{showOutliers:!0,lineWidth:1,lineColor:$t,lineShape:"solid",dotFill:$t,dotSize:E2,dotShape:b2,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}},YK=class extends KA{constructor(t){super();Be(this,"type","sina");Be(this,"aes",{showOutliers:!0,width:"auto",dotFill:B4,dotSize:E2,dotShape:b2,opacity:1});this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="sina"&&this.aes.showOutliers===t.aes.showOutliers}},iE=class extends KA{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])}},WK=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;p2t.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)??h7t,innerOffset:((a=e==null?void 0:e.size)==null?void 0:a.innerOffset)??A7t.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(p=>{if(p.type==="box")return new LK(p);if(p.type==="violin")return new $K(p);if(p.type==="dot")return new FK(p);if(p.type==="line")return new VK(p);if(p.type==="errorbar")return new OK(p);if(p.type==="bar")return new QK(p);if(p.type==="stackedBar")return new zK(p);if(p.type==="stat")return new iE(p);if(p.type==="binnedDots")return new GK(p);if(p.type==="pairedPoints")return new jK(p);if(p.type==="sina")return new YK(p);if(p.type==="logo")return new UK(p);uA(p,"Unknown layer type")}).filter(Boolean)}};function XK(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 KK(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 oE(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 v9t=class extends Ng{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new h5t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new WK(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 WK(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(),gy(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,o;return t.chartSettings.yAxis.scale!==n.chartSettings.yAxis.scale||(((r=t.primaryGrouping)==null?void 0:r.columnName.value)??"")!==(((a=n.primaryGrouping)==null?void 0:a.columnName.value)??"")||(((i=t.secondaryGrouping)==null?void 0:i.columnName.value)??"")!==(((o=n.secondaryGrouping)==null?void 0:o.columnName.value)??"")||t.facetBy.some((s,c)=>{var f;return s.value!==((f=n.facetBy[c])==null?void 0:f.value)})||t.layers.length!==n.layers.length||t.layers.some((s,c)=>!s.isEqualForCalculation(n.layers[c]))}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{chartSettings:t,y:n,keyColumn:r,facetBy:a,layers:i,facetSettings:o}=this.settings,{yAxis:s}=t,c=this.data.rows.every(x=>{let k=x[n.value];return k===null||!(Number(k)<0)}),f=oE(this.data,this.settings.primaryGrouping),A=oE(this.data,this.settings.secondaryGrouping),p=a.map(x=>x.value)??null,v=a.length?KK(a.map(x=>{var k;return XK(this.data,x,(k=o==null?void 0:o.order)==null?void 0:k[x.value])})):[["null"]];this.data.setGrouping([...p,f.value,A.value]);let y=v.reduce((x,k)=>(x[k.join("_")]=f.keys.filter(_=>this.data.getRowsByGrouping([...k,_]).length>0),x),{}),b=i.filter(x=>!(x instanceof iE)).map(x=>{if(x instanceof LK)return g5t(x,v,f.keys,A.keys,this.data,n,r,s);if(x instanceof $K)return S5t(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof FK)return I5t(x,v,f.keys,A.keys,this.data,n,s,r);if(x instanceof VK)return N5t(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof OK)return Q5t(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof QK)return U5t(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof zK)return G5t(x,v,f.keys,A.keys,this.data,n);if(x instanceof GK)return W5t(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof jK)return K5t(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof YK)return H5t(x,v,f.keys,A.keys,this.data,n,s);if(x instanceof UK)return d7t(x,v,f.keys,A.keys,this.data,n);throw new Error("Unknown layer type")}),C=i.filter(x=>x instanceof iE).map(x=>{if(f.value===null)throw new Error("Cannot calculate p-value without data grouping");return h9t(x,v,f.keys,n,this.data)});this.calculatedData={layersData:b,statsLayersData:C,primaryGrouping:f,secondaryGrouping:A,facetKeyLists:v,nonEmptyGroupsByFacets:y,onlyPositive:c}}_updateAesInData(){if(this.calculatedData===null)return;let{layers:t,facetBy:n,primaryGrouping:r,secondaryGrouping:a,facetSettings:i}=this.settings,o=t.filter(s=>!(s instanceof iE));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=oE(this.data,r),this.calculatedData.secondaryGrouping=oE(this.data,a),this.calculatedData.facetKeyLists=n.length?KK(n.map(s=>{var c;return XK(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)}},m9t=1e6;function g9t(e){let t=ER(e),n=Ls(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function y9t(e){let t=Ls(e),[n,r]=_p(e);return t===void 0||n===void 0||r===void 0||r===n?a=>a:a=>(a-t)/(r-n)}function w9t(e,t){return e==="standardScaling"?g9t(t):e==="meanNormalization"?y9t(t):n=>n}function $D(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 C9t(e,t,n,r,a,i,o,s,c,f,A,p){let v=a.length?a.map(Y=>e.getColumnCategories(Y.value)):[["null"]],y=i.length?i.map(Y=>e.getColumnCategories(Y.value)):[["null"]],b=o.length?o.map(Y=>e.getColumnCategories(Y.value)):[["null"]],C=$D(v),x=$D(y),k=$D(b),_=C.map(Y=>Y.join("_")),P=x.map(Y=>Y.join("_")),N=k.map(Y=>Y.join("_")),I={meta:{facetKeys:_,xGroupKeys:P,yGroupKeys:N,xKeysByGroups:{},yKeysByGroups:{},xLabels:{},yLabels:{},xGroupLabels:{},yGroupLabels:{},xDataByKeys:{},yDataByKeys:{},facetKeyValues:_.reduce((Y,X,te)=>(Y[X]=C[te],Y),{}),xGroupKeyValues:P.reduce((Y,X,te)=>(Y[X]=x[te],Y),{}),yGroupKeyValues:N.reduce((Y,X,te)=>(Y[X]=k[te],Y),{}),valueExtent:[1/0,-1/0]},facets:{}},F=t.valueLabels??t.value,Q=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),z=Object.values(f??{}).map(Y=>Y.value),U=Zn.uniq([...Z,...le,F]),G=Zn.uniq([...ee,...z,Q]);if(e.rows.forEach(Y=>{let X=a.length?a.map(He=>Y[He.value]).join("_"):"null",te=i.length?i.map(He=>Y[He.value]).join("_"):"null",he=o.length?o.map(He=>Y[He.value]).join("_"):"null",ae=i.length?i.map(He=>Y[He.valueLabels??He.value]).join(", "):"",ge=o.length?o.map(He=>Y[He.valueLabels??He.value]).join(", "):"";I.meta.xGroupLabels[te]=ae,I.meta.yGroupLabels[te]=ge;let me=Y[t.value],fe=Y[n.value],be=Y[r.value]??p;if(!(me===null||fe===null||be===null)){if(I.facets[X]||(I.facets[X]={xKeys:[],yKeys:[],xKeysByGroups:{},yKeysByGroups:{},cells:{}}),I.facets[X].xKeysByGroups[te]||(I.facets[X].xKeysByGroups[te]=[]),I.facets[X].yKeysByGroups[he]||(I.facets[X].yKeysByGroups[he]=[]),I.facets[X].xKeys.push(me),I.facets[X].yKeys.push(fe),I.facets[X].xKeysByGroups[te].push(me),I.facets[X].yKeysByGroups[he].push(fe),I.facets[X].cells[me]||(I.facets[X].cells[me]={}),I.meta.valueExtent[0]=Math.min(be,I.meta.valueExtent[0]),I.meta.valueExtent[1]=Math.max(be,I.meta.valueExtent[1]),I.facets[X].cells[me][fe])throw Error(`More than 1 value for x=${me}, y=${fe}`);if(I.meta.xLabels[me]&&String(Y[F])!==I.meta.xLabels[me])throw Error(`More than 1 x-label value for x=${me}`);if(I.meta.yLabels[fe]&&String(Y[Q])!==I.meta.yLabels[fe])throw Error(`More than 1 y-label value for y=${fe}`);I.meta.xLabels[me]=String(Y[F]),I.meta.yLabels[fe]=String(Y[Q]),U.forEach(He=>{let _e=typeof I.meta.xDataByKeys[He]<"u",Ie=_e&&typeof I.meta.xDataByKeys[He][me]<"u";if(_e||(I.meta.xDataByKeys[He]={}),Ie&&I.meta.xDataByKeys[He][me]!==Y[He])throw Error(`More than 1 value for x = ${me} and column = ${He}`);Ie||(I.meta.xDataByKeys[He][me]=Y[He])}),G.forEach(He=>{let _e=typeof I.meta.yDataByKeys[He]<"u",Ie=_e&&typeof I.meta.yDataByKeys[He][fe]<"u";if(_e||(I.meta.yDataByKeys[He]={}),Ie&&I.meta.yDataByKeys[He][fe]!==Y[He])throw Error(`More than 1 value for y = ${fe} and column = ${He}`);Ie||(I.meta.yDataByKeys[He][fe]=Y[He])}),I.facets[X].cells[me][fe]={id:`${me}_${fe}`,x:me,y:fe,value:be,normalizedValue:be,data:Y}}}),I.meta.facetKeys=I.meta.facetKeys.filter(Y=>I.facets[Y]),I.meta.facetKeys.forEach(Y=>{let X=I.facets[Y];if(X.xKeys=Zn.uniq(X.xKeys),X.yKeys=Zn.uniq(X.yKeys),X.xKeys.length*X.yKeys.length>m9t)throw Error(`Too many cells for graph rendering (${X.xKeys.length*X.yKeys.length})`);P.forEach(te=>{I.facets[Y].xKeysByGroups[te]=Zn.uniq(I.facets[Y].xKeysByGroups[te])}),N.forEach(te=>{I.facets[Y].yKeysByGroups[te]=Zn.uniq(I.facets[Y].yKeysByGroups[te])})}),A){let Y=[1/0,-1/0];I.meta.facetKeys.forEach(X=>{let{xKeys:te,yKeys:he,cells:ae}=I.facets[X],ge=A.direction==="row"?te:he,me=A.direction==="row"?he:te,fe=A.direction==="row"?(be,He)=>{var _e;return(_e=ae[be])==null?void 0:_e[He]}:(be,He)=>{var _e;return(_e=ae[He])==null?void 0:_e[be]};me.forEach(be=>{let He=[];ge.forEach(Ie=>{var Oe;let Ue=(Oe=fe(Ie,be))==null?void 0:Oe.value;Ue!==void 0&&He.push(Ue)});let _e=w9t(A.method,He);ge.forEach(Ie=>{let Ue=fe(Ie,be);Ue!==void 0&&(Ue.normalizedValue=_e(Ue.value),Y[0]=Math.min(Ue.normalizedValue,Y[0]),Y[1]=Math.max(Ue.normalizedValue,Y[1]))})})}),I.meta.valueExtent=Y}return I.meta.xKeysByGroups=P.reduce((Y,X)=>(Y[X]=Zn.uniq(Zn.flatten(I.meta.facetKeys.map(te=>I.facets[te].xKeysByGroups[X]))),Y),{}),I.meta.yKeysByGroups=N.reduce((Y,X)=>(Y[X]=Zn.uniq(Zn.flatten(I.meta.facetKeys.map(te=>I.facets[te].yKeysByGroups[X]))),Y),{}),I.meta.valueExtent[0]===1/0&&(I.meta.valueExtent[0]=0),I.meta.valueExtent[1]===-1/0&&(I.meta.valueExtent[1]=0),I}function ZK(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 JK(e,t){return Math.sqrt(ZK(e,t))}var qK=(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},b9t=(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},E9t=(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 x9t(e){switch(e){case"average":return qK;case"complete":return b9t;case"single":return E9t;default:return qK}}function S9t(e){switch(e){case"euclidean":return JK;case"squaredEuclidean":return ZK;default:return JK}}function eZ(e=[],t,n="euclidean",r="average"){let a=S9t(n),i=x9t(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,p=0;for(let y=0;y<s.length;y++)for(let b=y+1;b<s.length;b++){let C=i(s[y].indexes,s[b].indexes,o);C<f&&(f=C,A=y,p=b)}let v={keys:[...s[A].keys,...s[p].keys],indexes:[...s[A].indexes,...s[p].indexes],height:f,children:[s[A],s[p]]};s.splice(Math.max(A,p),1),s.splice(Math.min(A,p),1),s.push(v)}return s[0]}function B9t(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 p=[],v=[];i.forEach(y=>{let b=A.xKeysByGroups[y],C=A.yKeys,x=eZ(b,b.map(k=>C.map(_=>{var P;return((P=A.cells[k][_])==null?void 0:P.normalizedValue)??t.fillNA})),t.distance,t.linkage);e.facets[c].xKeysByGroups[y]=x.keys,v.push(...x.keys),p.push(x)}),e.facets[c].xKeys=v,f.hierarchyX=p.map(y=>k6(y))}if(n){let p=[],v=[];o.forEach(y=>{let b=A.yKeysByGroups[y],C=A.xKeys,x=eZ(b,b.map(k=>C.map(_=>{var P;return((P=A.cells[_][k])==null?void 0:P.normalizedValue)??n.fillNA})),n.distance,n.linkage);e.facets[c].yKeysByGroups[y]=x.keys,v.push(...x.keys),p.push(x)}),e.facets[c].yKeys=v,f.hierarchyY=p.map(y=>k6(y))}s[c]=f}),s}var k9t=15,jv=8,Yv=30,T9t=48,_9t=24,x2=16,S2=4,lE=4,FD=20,D9t=16,Yc=16,B2=8,c1={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"]},tZ={fillColor:"white",lineColor:$t,lineWidth:1,lineShape:"solid",dotSize:3,dotFill:$t,dotShape:"21"};function P9t(e,t,n,r,a,i,o,s,c,f,A,p,v,y){let b=p.length>1&&(!c||o.includes(t.groupingPosition)),C=!c||o.includes(t.position),x=A.length>1&&(!s||o.includes(e.groupingPosition)),k=!s||o.includes(e.position),_=f.length>1,P=r.filter(te=>o.includes(te.position)||!s&&["left","right"].includes(te.position)||!c&&["top","bottom"].includes(te.position)),N=P.filter(te=>te.position==="left").length,I=P.filter(te=>te.position==="right").length,F=P.filter(te=>te.position==="top").length,Q=P.filter(te=>te.position==="bottom").length,Z=e.showTicks?lE:0,ee=t.showTicks?lE:0,le=k&&e.showTitle?Yv:0,z=C&&t.showTitle?Yv:0,U=k&&e.showAxisLabels&&v>x2?n.xAxisCaptions+Z+S2:0,G=C&&t.showAxisLabels&&y>x2?n.yAxisCaptions+ee+S2:0,Y=x&&e.showGroupLabels?n.xGroupCaptions:0,X=b&&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"?z:0,groups:t.groupingPosition==="left"?X:0,axis:t.position==="left"?G:0,annotations:N*Yc+(N&&B2)},right:{dendro:!(i!=null&&i.hidden)&&(i==null?void 0:i.position)==="right"?i.size:0,axisTitle:t.position==="right"?z:0,groups:t.groupingPosition==="right"?X:0,axis:t.position==="right"?G:0,annotations:I*Yc+(I&&B2)},top:{facetTitle:_?T9t: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"?U:0,annotations:F*Yc+(F&&B2)},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"?U:0,annotations:Q*Yc+(Q&&B2)}}}function M9t(e,t,n){return{left:c1.left.reduce((r,a,i)=>{let o=i>0?c1.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:c1.right.reduce((r,a,i)=>{let o=i>0?c1.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:c1.top.reduce((r,a,i)=>{let o=i>0?c1.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:c1.bottom.reduce((r,a,i)=>{let o=i>0?c1.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 VD(e,t,n){let r=(t-e)/n,a=Zn.range(e,t-r/2,r);return a.push(t),a}function nZ(e,t){let n=VD(0,1,e.length-1),r=Zr().domain(n).range(e),a=VD(0,1,t.length-1).map(i=>r(i));return zo().domain(t).range(a).unknown("#ccc")}function H9t(e,t,n,r,a,i){let o=VD(0,1,e.length-1),s=Zr().domain(o).range(e),c=[r,...o.filter(C=>C>r&&C<a),a],f=[a,...o.filter(C=>C>a&&C<i),i],A=(n-t)/2,p=c.map(C=>t+A*(C-r)/(a-r)),v=f.map(C=>(t+n)/2+A*(C-a)/(i-a)),y=c.map(C=>s(C)),b=f.map(C=>s(C));return Zr().domain(p.concat(v.slice(1))).range(y.concat(b.slice(1)))}var I9t=new Ac("bold 14px Arial");function sE(e){let t=0;for(let n of e){let r=I9t.getTextWidth(n);r>t&&(t=r)}return t}function R9t(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:sE(i),right:sE(o),top:sE(s),bottom:sE(c)}}function N9t(e,t,n,r,a){let{facetKeys:i,xGroupKeys:o,yGroupKeys:s,xKeysByGroups:c,yKeysByGroups:f,xLabels:A,yLabels:p}=r.meta,v=e.xGroupLabels/180*Math.PI,y=e.yGroupLabels/180*Math.PI,b=e.xAxisLabels/180*Math.PI,C=e.yAxisLabels/180*Math.PI,x=0,k=0,_=e.xGroupLabels===45,P=e.xAxisLabels===45;if(_||P)if(!t.sharedX)i.forEach(F=>{let Q=o.find(G=>r.facets[F].xKeysByGroups[G].length>0);if(!Q)return;let Z=r.facets[F].xKeysByGroups[Q],ee=n.x[F],le=ee>x2,z=Z.length*ee/2,U=A[Z[0]];x=Math.max(x,(_?a.getTextWidth(Q)*Math.cos(v):0)-z,(P&&le?a.getTextWidth(U)*Math.cos(b):0)-ee/2)});else{let F=o[0],Q=i[0];if(F){let Z=c[F],ee=n.x[Q],le=ee>x2,z=Z.length*ee/2,U=A[Z[0]];x=Math.max(x,(_?a.getTextWidth(F)*Math.cos(v):0)-z,(P&&le?a.getTextWidth(U)*Math.cos(b):0)-ee/2)}}let N=e.yGroupLabels===45,I=e.yAxisLabels===45;if(N||I)if(!t.sharedY)i.forEach(F=>{let Q=Zn.findLast(s,G=>r.facets[F].yKeysByGroups[G].length>0);if(!Q)return;let Z=r.facets[F].yKeysByGroups[Q],ee=n.y[F],le=ee>x2,z=Z.length*ee/2,U=p[Z[Z.length-1]];k=Math.max(k,(N?a.getTextWidth(Q)*Math.cos(y):0)-z,(I&&le?a.getTextWidth(U)*Math.cos(C):0)-ee/2)});else{let F=s[s.length-1],Q=i[0];if(F){let Z=f[F],ee=n.y[Q],le=ee>x2,z=Z.length*ee/2,U=p[Z[Z.length-1]];k=Math.max(k,(N?a.getTextWidth(F)*Math.cos(y):0)-z,(I&&le?a.getTextWidth(U)*Math.cos(C):0)-ee/2)}}return{xCaptionTail:x,yCaptionTail:k}}function rZ(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 L9t(e,t,n,r,a){if(e){let s=Yc/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=Yc/2;return{x:i,y:o,rotate:0,anchor:n==="right"?"start":"end"}}function $9t(e){return e!==null&&!("data"in e)}function uE({facetKey:e,data:t,scales:n,stepX:r,stepY:a,x:i,y:o,annotation:s,showTitle:c,width:f,height:A,colorScale:p,aes:v,frame:y,xGroupKeys:b,yGroupKeys:C,xKeysByGroups:x,yKeysByGroups:k,tooltipsData:_,activeElementContainer:P}){let{position:N,titlePosition:I,valueColumn:F}=s,Q=N==="left"||N==="right",Z=(Q?n.y:n.x).domain(),ee=L9t(Q,N,I,f,A),le=_.fixed&&P;return ie.jsxs("g",{children:[Z.map(z=>{let U=t==null?void 0:t[z],G=p.type==="continuous"?p.scale(Number(U)):p.scale(String(U)),Y=i+(Q?0:n.x(z)),X=o+(Q?n.y(z):0),te=Q?Yc:r,he=Q?a:Yc,ae=Q?null:z,ge=Q?z:null,me=le&&$9t(_.selectedData)&&_.selectedData.xKey===ae&&_.selectedData.yKey===ge&&e===_.currentFacet,fe=ie.jsx("rect",{x:Y,y:X,width:te,height:he,fill:G,stroke:v.cellStrokeColor,onMouseOver:()=>_.onMouseOver({x:Y+te,y:X+he/2,xKey:ae,yKey:ge,value:U,title:F.label??F.value},e),onMouseLeave:()=>_.onMouseLeave()},z);return me?uu.createPortal(fe,P):fe}),_.fixed&&!Q&&b.map(z=>{let U=x[z].length;if(U===0)return null;let G=U*r,Y=n.x(x[z][0]);return ie.jsx("rect",{x:Y+i,y:o,width:G,height:Yc,stroke:"none",fill:"rgba(255, 255, 255, 0.8)"},`${Y}_${o}`)}),_.fixed&&Q&&C.map(z=>{let U=k[z].length;if(U===0)return null;let G=U*a,Y=n.y(k[z][0]);return ie.jsx("rect",{x:i,y:Y+o,width:Yc,height:G,stroke:"none",fill:"rgba(255, 255, 255, 0.8)"},`${i}_${Y}`)}),y.type==="groups"&&!Q&&b.map(z=>{let U=x[z].length;if(U===0)return null;let G=U*r,Y=n.x(x[z][0]);return ie.jsx("rect",{x:Y+i,y:o,width:G,height:Yc,stroke:$t,fill:"none"},`${Y}_${o}`)}),y.type==="groups"&&Q&&C.map(z=>{let U=k[z].length;if(U===0)return null;let G=U*a,Y=n.y(k[z][0]);return ie.jsx("rect",{x:i,y:Y+o,width:Yc,height:G,stroke:$t,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:F.label??F.value})})]})}function cE(e,t){return e.showTitle&&t.includes(e.titlePosition)}function F9t({facetKey:e,sideElementBBoxes:t,annotations:n,annotationColorScales:r,cellsMeta:a,chartEdgeSides:i,sharedX:o,sharedY:s,width:c,height:f,scales:A,stepX:p,stepY:v,aes:y,frame:b,xGroupKeys:C,yGroupKeys:x,xKeysByGroups:k,yKeysByGroups:_,tooltipsData:P,activeElementContainer:N}){let I=n.filter(G=>i.includes(G.position)||!o&&["left","right"].includes(G.position)||!s&&["top","bottom"].includes(G.position)),F=I.filter(G=>G.position==="left"),Q=I.filter(G=>G.position==="right"),Z=I.filter(G=>G.position==="top"),ee=I.filter(G=>G.position==="bottom"),{xDataByKeys:le,yDataByKeys:z}=a,U={facetKey:e,scales:A,stepX:p,stepY:v,width:c,height:f,aes:y,frame:b,xGroupKeys:C,yGroupKeys:x,xKeysByGroups:k,yKeysByGroups:_,tooltipsData:P,activeElementContainer:N};return ie.jsxs("g",{children:[F.map((G,Y)=>ie.jsx(uE,{annotation:G,colorScale:r[G.id],data:z[G.valueColumn.value],showTitle:cE(G,i),x:t.left.annotations.x+Y*Yc,y:t.left.annotations.y,...U},G.id)),Q.map((G,Y)=>ie.jsx(uE,{annotation:G,colorScale:r[G.id],data:z[G.valueColumn.value],showTitle:cE(G,i),x:t.right.annotations.x+Y*Yc+B2,y:t.right.annotations.y,...U},G.id)),Z.map((G,Y)=>ie.jsx(uE,{annotation:G,colorScale:r[G.id],data:le[G.valueColumn.value],showTitle:cE(G,i),x:t.top.annotations.x,y:t.top.annotations.y+Y*Yc,...U},G.id)),ee.map((G,Y)=>ie.jsx(uE,{annotation:G,colorScale:r[G.id],data:le[G.valueColumn.value],showTitle:cE(G,i),x:t.bottom.annotations.x,y:t.bottom.annotations.y+Y*Yc+B2,...U},G.id))]})}function V9t({sideElementBBoxes:e,xGroupKeys:t,yGroupKeys:n,xKeysByGroups:r,yKeysByGroups:a,xGroupLabels:i,yGroupLabels:o,scales:s,stepX:c,stepY:f,xAxis:A,yAxis:p,labelAngles:v,debug:y}){let b=e.top.groups.isVisible||e.bottom.groups.isVisible,C=e.top.groups.isVisible?e.top.groups:e.bottom.groups,x=e.left.groups.isVisible||e.right.groups.isVisible,k=e.left.groups.isVisible?e.left.groups:e.right.groups;return ie.jsxs("g",{children:[b&&ie.jsx("g",{transform:`translate(${C.x},${C.y})`,children:t.map(_=>{let P=r[_].length;if(P===0)return null;let N=v.xGroupLabels!==0,I=A.groupingPosition==="top",F=P*c,Q=s.x(r[_][0])+F/2,Z=N?I?C.height:0:C.height/2,ee=-v.xGroupLabels,le=N?I?"start":"end":"middle";return ie.jsxs("g",{transform:`translate(${Q},${Z})`,children:[ie.jsx("text",{transform:`rotate(${ee})`,dominantBaseline:"central",textAnchor:le,children:i[_]}),y&&ie.jsx("rect",{x:-F/2,width:F,height:C.height,stroke:"black",fill:"none"})]},_)})}),x&&ie.jsx("g",{transform:`translate(${k.x},${k.y})`,children:n.map(_=>{let P=a[_].length;if(P===0)return null;let N=P*f,I=p.groupingPosition==="left",F=I?k.width:0,Q=s.y(a[_][0])+N/2,Z=v.yGroupLabels!==0,ee=v.yGroupLabels===45?-45:(I?-1:1)*(90-v.yGroupLabels),le=Z?I?"end":"start":"middle";return ie.jsxs("g",{transform:`translate(${F},${Q})`,children:[ie.jsx("text",{y:Z?0:-k.width/2,transform:`rotate(${ee})`,dominantBaseline:"central",textAnchor:le,children:o[_]}),y&&ie.jsx("rect",{x:-k.width/2,y:-N/2,width:k.width,height:N,stroke:"black",fill:"none"})]},_)})})]})}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:p}){let v=i.showTicks?lE:0,y=o.showTicks?lE:0,b=e.top.axis.isVisible||e.bottom.axis.isVisible,C=e.top.axisTitle.isVisible?e.top.axisTitle:e.bottom.axisTitle,x=e.top.axis.isVisible?e.top.axis:e.bottom.axis,k=e.left.axis.isVisible||e.right.axis.isVisible,_=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,P=e.left.axis.isVisible?e.left.axis:e.right.axis;return ie.jsxs("g",{children:[ie.jsxs("g",{children:[C.isVisible&&ie.jsxs("g",{transform:`translate(${C.x},${C.y})`,children:[ie.jsx("text",{x:C.width/2,y:C.height/2,textAnchor:"middle",dominantBaseline:"central",children:i.title}),t&&ie.jsx("rect",{width:C.width,height:C.height,stroke:$t,fill:"none"})]}),b&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${x.x},${x.y})`,children:[n.map(N=>{let I=f.xAxisLabels!==0,F=i.position==="bottom",Q=F?0:x.height,Z=F?Q+v:Q-v,ee=F?Z+S2:Z-S2,le=a.x(N)+s/2,z=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:le,y1:Q,y2:Z,stroke:$t}),ie.jsx("text",{x:le,y:ee,textAnchor:I?F?"end":"start":"middle",transform:`rotate(${z},${le},${ee})`,dominantBaseline:I?"central":F?"hanging":"auto",children:A[N]})]},N)}),t&&ie.jsx("rect",{width:x.width,height:x.height,stroke:$t,fill:"none"})]})]}),ie.jsxs("g",{children:[_.isVisible&&ie.jsx("g",{transform:`translate(
15126
15126
  ${_.x+_.width/2},
15127
- ${_.y+_.height/2})`,children:ie.jsx("text",{transform:`rotate(${o.position==="left"?-90:90})`,dominantBaseline:"central",textAnchor:"middle",children:o.title})}),t&&ie.jsx("rect",{x:_.x,y:_.y,width:_.width,height:_.height,stroke:$t,fill:"none"}),k&&ie.jsx("g",{fontSize:"14px",transform:`translate(${P.x},${P.y})`,children:r.map(N=>{let I=f.yAxisLabels!==0,F=o.position==="left",Q=-(90-f.yAxisLabels),Z=f.yAxisLabels===0?"middle":F?"end":"start",ee=I?"central":F?"auto":"hanging",le=F?P.width:0,z=F?le-y:le+y,U=F?z-S2:z+S2,G=a.y(N)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:z,y1:G,y2:G,stroke:$t}),ie.jsx("text",{x:U,y:G,textAnchor:Z,transform:`rotate(${Q},${U},${G})`,dominantBaseline:ee,children:p[N]})]},N)})}),t&&ie.jsx("rect",{x:P.x,y:P.y,height:P.height,width:P.width,stroke:$t,fill:"none"})]})]})}function Q9t({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:p,yKeysByGroups:v,labelAngles:y,xLabels:b,yLabels:C,xGroupLabels:x,yGroupLabels:k}){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:y,xLabels:b,yLabels:C,debug:t}),ie.jsx(V9t,{sideElementBBoxes:e,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:p,yKeysByGroups:v,xGroupLabels:x,yGroupLabels:k,scales:a,stepX:s,stepY:c,xAxis:i,yAxis:o,labelAngles:y,debug:t})]})}function aZ(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 iZ(e,t,n,r,a){if(!n)return"";let i=n.aes[e];if(!y4(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 oZ={x:0,y:0,width:0,height:0};function z9t({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:oZ,c=o?t[o.position].dendro:oZ;function f(p,v){return iZ(p,v,i,n,a)}function A(p,v){return iZ(p,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((p,v)=>{let y=p.links(),b=p.descendants();return ie.jsxs("g",{children:[y.map(C=>{let x=i.edgeInheritance==="up"?C.source:C.target;return ie.jsx("path",{d:aZ(C,i.position),stroke:f("lineColor",x),strokeWidth:f("lineWidth",x),strokeDasharray:Vf(f("lineShape",x)),fill:"none"},`${C.source.x},${C.source.y},${C.target.x},${C.target.y}`)}),i.showNodes&&b.map(C=>ie.jsx("g",{transform:`translate(${C.x},${C.y})`,children:jc(f("dotShape",C),f("dotSize",C),f("dotFill",C))},`${C.x},${C.y}`))]},v)})}),ie.jsx("g",{transform:`translate(${c.x},${c.y})`,children:o&&!o.hidden&&e.y.trees.map((p,v)=>{let y=p.links(),b=p.descendants();return ie.jsxs("g",{children:[y.map(C=>{let x=o.edgeInheritance==="up"?C.source:C.target;return ie.jsx("path",{d:aZ(C,o.position),stroke:A("lineColor",x),strokeWidth:A("lineWidth",x),strokeDasharray:Vf(A("lineShape",x)),fill:"none"},`${C.source.x},${C.source.y},${C.target.x},${C.target.y}`)}),o.showNodes&&b.map(C=>ie.jsx("g",{transform:`translate(${C.x},${C.y})`,children:jc(A("dotShape",C),A("dotSize",C),A("dotFill",C))},`${C.x},${C.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:$t,x:"0",y:"0",width:t,height:n}),e.type==="groups"&&r.map(A=>{let p=i[A].length;if(p===0)return null;let v=p*c,y=s.x(i[A][0]);return a.map(b=>{let C=o[b].length;if(C===0)return null;let x=C*f,k=s.y(o[b][0]);return ie.jsx("rect",{x:y,y:k,width:v,height:x,stroke:$t,fill:"none"},`${y}_${k}`)})})]})}function OD(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 G9t(e,t,n=[]){let r=e.data,a=[`X: ${t.xLabels[e.x]}`,`Y: ${t.yLabels[e.y]}`,`Value: ${OD(e.value)}${e.value!==e.normalizedValue?` (${OD(e.normalizedValue)})`:""}`];for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function j9t(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}: ${OD(e.value)}`),n}function Y9t(e){return e!==null&&!("data"in e)}function lZ(e){return e!==null&&"data"in e}function W9t({dendrograms:e,facetKey:t,dimensions:n,scales:r,cells:a,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,colorScale:f,chartSettings:A,cellsMeta:p,stepX:v,stepY:y,sharedX:b,sharedY:C,annotations:x,annotationColorScales:k,dendrogramAesScales:_,aes:P,labelAngles:N,chartSizes:I,margins:F,tooltipsContainer:Q,tooltipsData:Z}){let[ee,le]=tn.useState(),{xAxis:z,yAxis:U,tooltips:G}=A,{width:Y,height:X}=n.inner,{padding:te,chartEdgeSides:he,sideElementBBoxes:ae}=n,{xGroupLabels:ge,yGroupLabels:me,xLabels:fe,yLabels:be}=p,He=r.x.domain(),_e=r.y.domain(),Ie={left:F.left+n.left+te.left,right:I.totalWidth-(F.left+n.left+te.left),top:F.top+n.top+te.top,bottom:I.totalHeight-(F.top+n.top+te.top)},Ue=!1,Oe=ee&&Z.fixed;return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:D9t,children:[ie.jsxs("g",{transform:`translate(${te.left},${te.top})`,children:[ie.jsx(F9t,{facetKey:t,sideElementBBoxes:ae,annotations:x,cellsMeta:p,annotationColorScales:k,sharedX:b,sharedY:C,chartEdgeSides:he,width:Y,height:X,scales:r,stepX:v,stepY:y,aes:P,frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,tooltipsData:Z,activeElementContainer:ee}),ie.jsx(z9t,{dendrograms:e,sideElementBBoxes:ae,xDataByKeys:p.xDataByKeys,yDataByKeys:p.yDataByKeys,aesScales:_}),ae.top.facetTitle.isVisible&&ie.jsx("text",{x:ae.top.facetTitle.x,y:ae.top.facetTitle.y+ae.top.facetTitle.height-_9t,fontWeight:"500",fontSize:"20px",children:p.facetKeyValues[t].join(", ")}),Ue,He.map(ft=>_e.map(Ve=>{var gt;let Xe=(gt=a==null?void 0:a[ft])==null?void 0:gt[Ve],tt=Oe&&lZ(Z.selectedData)&&(Xe==null?void 0:Xe.id)===Z.selectedData.id,qe=Xe?ie.jsx("rect",{x:r.x(ft),y:r.y(Ve),width:v,height:y,stroke:P.cellStrokeColor,fill:Xe.value===null?P.emptyCellColor:f(Xe.normalizedValue),onMouseOver:()=>Z.onMouseOver(Xe,t),onMouseLeave:()=>Z.onMouseLeave()},Xe?Xe.id:`${ft}_${Ve}`):null;return tt?uu.createPortal(qe,ee):qe})),ie.jsx(U9t,{frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,scales:r,stepX:v,stepY:y,width:Y,height:X}),ie.jsx(Q9t,{xAxis:z,yAxis:U,scales:r,stepX:v,stepY:y,debug:Ue,sideElementBBoxes:ae,xKeys:He,yKeys:_e,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,xGroupLabels:ge,yGroupLabels:me,labelAngles:N,xLabels:fe,yLabels:be})]}),A.tooltips.show&&lZ(Z.selectedData)&&Z.currentFacet===t&&ie.jsx(cu,{content:G9t(Z.selectedData,p,G==null?void 0:G.content),x:r.x(String(Z.selectedData.x))+v/2,y:r.y(String(Z.selectedData.y))+y/2,offset:He.length>1?v/2:0,active:!0,sideDistances:Ie,fixed:Z.fixed,onClose:Z.onClose,container:Q}),A.tooltips.show&&Y9t(Z.selectedData)&&Z.currentFacet===t&&ie.jsx(cu,{content:j9t(Z.selectedData,p),x:Z.selectedData.x,y:Z.selectedData.y,offset:0,active:!0,sideDistances:Ie,fixed:Z.fixed,onClose:Z.onClose,container:Q}),ie.jsxs("g",{transform:`translate(${te.left},${te.top})`,children:[Z.fixed&&ie.jsx("rect",{width:I.chartWidth,height:I.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:ft=>{ft&&!ee&&le(ft)}})]})]})}function X9t({margins:e,captionsSizes:t,settingsId:n,chartSettings:r,chartSizes:a,chartsDimensions:i,facetKeys:o,facetSettings:s,xGroupKeys:c,yGroupKeys:f,scales:A,colorScale:p,groupedCells:v,cellsMeta:y,step:b,annotations:C,annotationColorScales:x,legend:k,aes:_,dendrograms:P,dendrogramAesScales:N,columnsCount:I,labelAngles:F,onTooltipHintSwitch:Q}){let[Z,ee]=tn.useState(),le=d2(Q),z=tn.useRef(null);tn.useEffect(()=>{z.current&&ee(z.current)},[]);let U=i[o[0]].padding,G=i[o[I-1]].padding,Y=e.left+a.chartsWidth+FD,X=e.top+U.top;return ie.jsx(v2,{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:Fg}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(m2,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:U.left,rightPadding:G.right,chartsWidth:a.chartsWidth}),o.map(te=>{let{cells:he,xKeysByGroups:ae,yKeysByGroups:ge}=v[te];return ie.jsx(W9t,{dendrograms:P[te],captionsSizes:t,facetKey:te,dimensions:i[te],xGroupKeys:c,yGroupKeys:f,xKeysByGroups:s.sharedX?y.xKeysByGroups:ae,yKeysByGroups:s.sharedY?y.yKeysByGroups:ge,sharedX:s.sharedX,sharedY:s.sharedY,scales:{x:A.x[te],y:A.y[te]},cells:he,cellsMeta:y,stepX:b.x[te],stepY:b.y[te],colorScale:p,chartSettings:r,aes:_,annotations:C,annotationColorScales:x,dendrogramAesScales:N,labelAngles:F,margins:e,chartSizes:a,tooltipsContainer:Z,tooltipsData:le},te)})]}),ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(g2,{legendData:k})}),ie.jsx("g",{ref:z,style:{outline:"none"}})]})})}function sZ(e,t,n){function r(a){a[n]=t(a.data.height),a.children&&a.children.forEach(r)}r(e)}function uZ(e,t,n,r=n){function a(i){i[r]=i[n]+t,i.children&&i.children.forEach(a)}a(e)}var K9t=(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 cZ(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])),K9t(t,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,"chartsDimensions",{});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Be(this,"margins",{top:jv,bottom:jv,left:jv,right:jv});Be(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xGroupCaptions:Yv,yGroupCaptions:Yv,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:zo().domain(["null"]).range([1])},y:{null:zo().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=Gh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:jv,bottom:jv,left:jv,right:this.legend.width+jv},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((y,b)=>(y[b]=String(b),y),{});if(e==="continuous"){let v=this.colorScale,y=f2(v,a),b=Zr([y[0],y[y.length-1]],[i,0]),C=r.label??r.value;o.push({...s,type:"continuous",id:"heatmapValue",scale:v,values:y,title:C,tickPositionScale:b})}else if(e==="discrete"){let v=this.colorScale,y=r.label??r.value,b=v.domain(),C=c(b);o.push({...s,type:"discreteColor",id:"heatmapValue",title:y,scale:v,values:b,labels:C})}if(n.forEach(v=>{let y=v.valueColumn.label??v.valueColumn.value;if(v.type==="continuous"){let b=this.annotationColorScales[v.id].scale,C=f2(b,a),x=Zr([C[0],C[C.length-1]],[i,0]);o.push({...s,type:"continuous",id:v.id,tickPositionScale:x,title:y,scale:b,values:C})}if(v.type==="discrete"){let b=this.annotationColorScales[v.id].scale,C=b.domain(),x=c(C);o.push({...s,type:"discreteColor",id:v.id,title:y,scale:b,values:C,labels:x})}}),!o.length){this.legend={width:0,height:0,items:[]};return}let f=w2(o,this.chartSizes.chartHeight),A=f[f.length-1],p=A.left+A.width+FD;this.legend={width:p,height:i,items:f}}updateCaptionsSize(e,t,n,r){let a=new Ac("bold 14px Arial"),{xGroupKeys:i,yGroupKeys:o,xGroupLabels:s,yGroupLabels:c,xKeysByGroups:f,yKeysByGroups:A,xLabels:p,yLabels:v}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle,xGroupLabels:t.groupLabelsAngle,yGroupLabels:n.groupLabelsAngle};function y(le,z){let U=0;for(let G of le){let Y=a.getTextWidth(z[G]);Y>U&&(U=Y)}return U}let b=Zn.flatten(Object.values(f)),C=Zn.flatten(Object.values(A)),x=y(b,p),k=y(C,v),_=y(i,s),P=y(o,c),{xCaptionTail:N,yCaptionTail:I}=N9t(this.labelAngles,r,this.step,e,a),F=this.labelAngles.xGroupLabels/180*Math.PI,Q=this.labelAngles.yGroupLabels/180*Math.PI,Z=this.labelAngles.xAxisLabels/180*Math.PI,ee=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:N,yCaptionTail:I,xGroupCaptions:_*Math.sin(F)||Yv,yGroupCaptions:P*Math.sin(Q)||Yv,xAxisCaptions:x*Math.sin(Z)||Yv,yAxisCaptions:k*Math.sin(ee)||Yv}}updateChartDimensions(e,t,n,r,a,i,o,s,c,f){let A=t.length,p=Math.min(a.nRows??A,A),v=Math.min(a.nCols??A,A);this.columnsCount=a.nRows?Math.ceil(A/p):v,this.rowsCount=Math.ceil(A/this.columnsCount);let{width:y,height:b}=e,{sharedX:C,sharedY:x}=a;this.chartsDimensions={};let k=0,_=0;t.forEach((I,F)=>{let Q=F%this.columnsCount+1,Z=rZ(F,t.length,this.columnsCount,this.rowsCount),ee=this.step.x[I],le=this.step.y[I],z=P9t(i,o,this.captionsSizes,s,c,f,Z,C,x,t,n,r,ee,le),U=R9t(s,Z,C,x);function G(ae){return Math.max(c1[ae].reduce((ge,me)=>ge+z[ae][me],0),U[ae],k9t)}let Y={left:G("left"),right:G("right"),top:G("top"),bottom:G("bottom")};Y.left<this.captionsSizes.xCaptionTail&&(Y.left=this.captionsSizes.xCaptionTail),Y.bottom<this.captionsSizes.yCaptionTail&&(Y.bottom=this.captionsSizes.yCaptionTail);let X=M9t(z,y,b),te=y+Y.left+Y.right,he=b+Y.top+Y.bottom;this.chartsDimensions[I]={left:k,top:_,inner:{width:y,height:b},outer:{width:te,height:he},padding:Y,sideElementBBoxes:X,chartEdgeSides:Z},k+=te,Q===this.columnsCount&&(k=0,_+=he)});let P=t.slice(0,this.columnsCount).reduce((I,F)=>I+this.chartsDimensions[F].outer.width,0),N=t.filter((I,F)=>F%this.columnsCount===0).reduce((I,F)=>I+this.chartsDimensions[F].outer.height,0);this.chartSizes.chartsWidth=P,this.chartSizes.chartsHeight=N}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:p,facets:v}=t,{sharedX:y,sharedY:b}=r,C=(k,_={})=>k.sort((P,N)=>i.sorting==="asc"?(_[P]??P).localeCompare(_[N]??N,"en",{numeric:!0}):(_[N]??N).localeCompare(_[P]??P,"en",{numeric:!0})),x=(k,_={})=>k.sort((P,N)=>o.sorting==="asc"?(_[P]??P).localeCompare(_[N]??N,"en",{numeric:!0}):(_[N]??N).localeCompare(_[P]??P,"en",{numeric:!0}));e.forEach(k=>{let _=v[k],P=C(p.xGroupKeys),N=x(p.yGroupKeys),{xKeysByGroups:I}=y?p:_,{yKeysByGroups:F}=b?p:_,Q=P.map(ge=>I[ge].length),Z=N.map(ge=>F[ge].length),ee=Q.reduce((ge,me)=>ge+me,0),le=Z.reduce((ge,me)=>ge+me,0),z=(f-(Q.filter(ge=>ge>0).length-1)*n)/ee,U=(A-(Z.filter(ge=>ge>0).length-1)*n)/le,G=[],Y=[],X=0;P.forEach(ge=>{let me=s?I[ge]:C(I[ge],p.xLabels);Y.push(...me),me.forEach(()=>{G.push(X),X+=z}),me.length>0&&(X+=n)});let te=[],he=[],ae=0;N.forEach(ge=>{let me=c?F[ge]:x(F[ge],p.yLabels);he.push(...me),me.forEach(()=>{te.push(ae),ae+=U}),me.length>0&&(ae+=n)}),this.scales.x[k]=zo().domain(Y).range(G),this.scales.y[k]=zo().domain(he).range(te),this.step.x[k]=z,this.step.y[k]=U})}updateAesScale(e,t,n,r,a,i,o){if(e==="continuous")n.valueColors?this.colorScale=Zr().domain(n.valuesByColors??cZ(o,n.valueColors.length,t)).range(n.valueColors):n.colorsList&&(this.colorScale=Zr().domain(cZ(o,n.colorsList.length,t)).range(n.colorsList));else if(n.colorsMap){let f=Object.entries(n.colorsMap);this.colorScale=zo().domain(f.map(A=>A[0])).range(f.map(A=>A[1])).unknown("#ccc")}else n.colorsList&&(this.colorScale=nZ(n.colorsList,i.map(String)));let{xDataByKeys:s,yDataByKeys:c}=a.meta;r.forEach(f=>{let{colors:A,type:p,axis:v,valueColumn:y}=f,b=(v==="x"?s:c)[y.value];if(p==="discrete"){let C=Zn.uniq(Object.values(b).map(String)).sort();this.annotationColorScales[f.id]={type:"discrete",scale:nZ(A,C)}}else{let C=Object.values(b).map(Number);if(!C.length)return;let[x=C[0],k=C[0]]=_p(C);this.annotationColorScales[f.id]={type:"continuous",scale:H9t(A,x,k,0,.5,1)}}})}updateDendrogram(e,t,n,r,a,i,o){e.forEach(s=>{this.dendrograms[s]={x:{trees:[],data:i},y:{trees:[],data:o}};let{xKeysByGroups:c,yKeysByGroups:f}=r[s],{hierarchyX:A,hierarchyY:p}=a[s],v=Math.max(...A.map(b=>b.data.height)),y=Math.max(...p.map(b=>b.data.height));i&&(this.dendrograms[s].x.trees=A.map((b,C)=>{let x=t[C],k=c[x];MB().separation(()=>1).size([k.length*this.step.x[s],i.size])(b);let _=b,P=Zr().domain(i.position==="top"?[0,v]:[v,0]).range([i.size,0]);return sZ(_,P,"y"),uZ(_,this.scales.x[s](k[0]),"x"),_}),this.dendrograms[s].x.data=i),o&&(this.dendrograms[s].y.trees=p.map((b,C)=>{let x=n[C],k=f[x];MB().separation(()=>1).size([k.length*this.step.y[s],o.size])(b);let _=b,P=Zr().domain(o.position==="left"?[0,y]:[y,0]).range([o.size,0]);return uZ(_,this.scales.y[s](k[0]),"x","y"),sZ(_,P,"x"),_}),this.dendrograms[s].y.data=o)})}updateDendrogramAesScales(e){if(!e)return;let t=Object.keys(e);this.dendrogramAesScales=t.reduce((n,r)=>{let a=e[r],i=Object.keys(a);return n[r]=zo().domain(i).range(i.map(o=>({...tZ,...a[o]}))).unknown(tZ),n},{})}render(e,t,n,r,a,i,o,s,c,f,A,p,v,y){var le;let{meta:b,facets:C}=a,{facetKeys:x,xGroupKeys:k,yGroupKeys:_,valueExtent:P}=b,{xAxis:N,yAxis:I,title:F,size:Q,valueType:Z}=t;this.updateChartsSizes(Q),this.updateAesScale(Z,P,r,i,a,p,v),this.updateScales(x,a,r.groupGap,n,Q,t.xAxis,t.yAxis,s,c),this.updateCaptionsSize(a,N,I,n),this.updateChartDimensions(Q,x,k,_,n,N,I,i,s,c),this.updateLegendSize(Z,t.legend,i,o,P),this.updateMargins(F),this.updateDendrogram(x,k,_,C,f,s,c),this.updateDendrogramAesScales(A);let ee=ie.jsx(X9t,{aes:r,annotations:i,annotationColorScales:this.annotationColorScales,captionsSizes:this.captionsSizes,cellsMeta:b,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:C,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step,xGroupKeys:k,yGroupKeys:_,onTooltipHintSwitch:y});this.component=ee,(le=this.reactRoot)==null||le.render(ee)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Uv,{message:e}))}},J9t=Z9t,QD={lineColor:$t,dotShape:"21",dotFill:$t,dotSize:3,lineShape:"solid",lineWidth:1},fZ={size:150,distance:"euclidean",linkage:"average",fillNA:0,showNodes:!0,hidden:!1,edgeInheritance:"up",aes:QD},dZ=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,p,v,y;if(S2t.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:((p=e.aes)==null?void 0:p.emptyCellColor)??"white"},this.annotations=(e.annotations??[]).map(b=>b.axis==="x"?{id:Zn.uniqueId("annotation"),axis:"x",valueColumn:b.valueColumn,position:b.position??this.chartSettings.xAxis.position,titlePosition:b.titlePosition??"right",showTitle:b.showTitle??!0,type:b.type,colors:b.colors??["white","black"]}:{id:Zn.uniqueId("annotation"),axis:"y",valueColumn:b.valueColumn,position:b.position??this.chartSettings.yAxis.position,titlePosition:b.titlePosition??"top",showTitle:b.showTitle??!0,type:b.type,colors:b.colors??["white","black"]}),e.valueType==="discrete"&&(e.dendrogramX||e.dendrogramY))throw Error("Dendrogram is not available with discrete cells values");this.dendrogramX=e.dendrogramX?{...fZ,position:"top",...e.dendrogramX,aes:{...QD,...(v=e.dendrogramX)==null?void 0:v.aes}}:null,this.dendrogramY=e.dendrogramY?{...fZ,position:"left",...e.dendrogramY,aes:{...QD,...(y=e.dendrogramY)==null?void 0:y.aes}}:null,this.inheritedDendrogramAes=e.inheritedDendrogramAes??null}},q9t=class extends Ng{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new J9t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new dZ(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 dZ(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(),gy(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var I,F,Q,Z,ee,le,z,U,G,Y,X,te;let{xColumn:r,yColumn:a,valueColumn:i,xGroupBy:o,yGroupBy:s,facetBy:c,annotations:f,chartSettings:A,facetSettings:p,dendrogramX:v,dendrogramY:y,normalization:b,NAValueAs:C}=n,x=Object.values(((I=t.dendrogramX)==null?void 0:I.aes)||{}).filter(y4),k=Object.values((v==null?void 0:v.aes)||{}).filter(y4),_=Object.values(((F=t.dendrogramY)==null?void 0:F.aes)||{}).filter(y4),P=Object.values((y==null?void 0:y.aes)||{}).filter(y4);function N(he,ae){return he.length!==ae.length||he.some((ge,me)=>ge.value!==ae[me].value)}return t.xColumn.value!==r.value||t.yColumn.value!==a.value||t.valueColumn.value!==i.value||N(t.xGroupBy,o)||N(t.yGroupBy,s)||N(t.facetBy,c)||N(t.annotations.map(he=>he.valueColumn),f.map(he=>he.valueColumn))||N(x,k)||N(_,P)||(n.dendrogramX||t.dendrogramX)&&(((Q=t.dendrogramX)==null?void 0:Q.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)&&(((z=t.dendrogramY)==null?void 0:z.distance)!==((U=n.dendrogramY)==null?void 0:U.distance)||((G=t.dendrogramY)==null?void 0:G.linkage)!==((Y=n.dendrogramY)==null?void 0:Y.linkage))||t.chartSettings.valueType!==A.valueType||t.facetSettings.sharedX!==p.sharedX||t.facetSettings.sharedY!==p.sharedY||((X=t.normalization)==null?void 0:X.method)!==(b==null?void 0:b.method)||((te=t.normalization)==null?void 0:te.direction)!==(b==null?void 0:b.direction)||t.NAValueAs!==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{xColumn:t,yColumn:n,valueColumn:r,xGroupBy:a,yGroupBy:i,facetBy:o,chartSettings:s,facetSettings:c,annotations:f,dendrogramX:A,dendrogramY:p,normalization:v,NAValueAs:y}=this.settings,b=C9t(this.data,t,n,r,o,a,i,f,A,p,v,y),C=B9t(b,A,p,c),x=s.valueType==="discrete"?this.data.getColumnCategories(r.value):[];this.calculatedData={groupedCellsData:b,dendrogramsData:C,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)}},AZ=(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 pZ(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 e4t(e,t,n,r,a,i){let o=AZ(n,r),s=kR().domain(r).thresholds(o).value(c=>c[t.value])(e);return{bins:pZ(s,a,i),maxCount:Rh(s,c=>c.length)??0}}function t4t(e,t,n,r,a,i){let o=AZ(n,r),s=av().domain(r).range(r),c=o.map(A=>s.invert(A)),f=kR().domain(r).thresholds(c).value(A=>A[t.value])(e);return{bins:pZ(f,a,i),maxCount:Rh(f,A=>A.length)??0}}function n4t(e,t,n,r,a,i){let o={};return t.forEach(s=>{var C,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,p]=_p(f,k=>k[r.value]);A=A??((C=f[0])==null?void 0:C[r.value])??0,p=p??((x=f[0])==null?void 0:x[r.value])??0;let v=[A,p],y=[...n].reverse();y.forEach((k,_)=>{let P=e.getRowsByGrouping([...s,k]),N=i==="linear"?e4t(P,r,a,v,k,_):t4t(P,r,a,v,k,_);o[c].histogramByGroupingKey[k]=N,o[c].minX=v[0],o[c].maxX=v[1],o[c].maxCountFromGroups=Math.max(o[c].maxCountFromGroups,N.maxCount);let I=_>0?y[_-1]:null,F=I!==null?o[c].histogramByGroupingKey[I]:null;N.bins.forEach((Q,Z)=>{Q.y.straight=((F==null?void 0:F.bins[Z].y.straight)??0)+Q.count,o[c].maxCount=Math.max(o[c].maxCount,Q.y.straight)})});let b=n;b.forEach((k,_)=>{let P=_>0?b[_-1]:null,N=o[c].histogramByGroupingKey[k],I=P!==null?o[c].histogramByGroupingKey[P]:null;N.bins.forEach((F,Q)=>{F.y.reverse=((I==null?void 0:I.bins[Q].y.reverse)??0)+F.count})})}),o}var r4t={TOP:30,BOTTOM:0,LEFT:10,RIGHT:10};function k4(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 hZ=(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 a4t(e,t,n){if(n==="linear")return hZ(e,t);if(n==="log"){let r=hZ(e,t),a=av(t,t),i=r.map(o=>a.invert(o));return i[0]=t[0],i[i.length-1]=t[1],i}return[]}function T4(e,t,n){return(n==="log"?av():Zr()).domain(a4t(e.length,t,n)).range(e)}function i4t(e){return`translate(${e},0)`}function o4t(e){return`translate(0,${e})`}function l4t(e){return e==="bottom"?`translate(0,${Ff})`:`translate(${-Ff},0)`}function s4t(e){return e==="bottom"?"hanging":"central"}function u4t(e){return e==="bottom"?"middle":"end"}var vZ=({scale:e,tickSize:t=6,tickPadding:n=Ff,orient:r="bottom",onlyPositive:a=!1,hiddenLabels:i=!1,offset:o=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function s(x){return k=>{let _=x(k);return _===void 0?0:+_}}let{ticks:c,format:f}=i?{ticks:[],format:x=>x}:k4(e,a,r==="bottom"),A=Math.max(t,0)+n,p=s(e.copy()),v=r==="bottom"?i4t:o4t,y=r==="left"?-1:1,b={[(r==="left"?"x":"y")+"2"]:y*t},C={[r==="left"?"x":"y"]:y*A};return ie.jsx("g",{children:c.map((x,k)=>ie.jsxs("g",{className:"tick",transform:v(p(x)+o),children:[ie.jsx("line",{stroke:$t,...b}),ie.jsx("g",{transform:l4t(r),children:ie.jsx("text",{fill:$t,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:s4t(r),textAnchor:u4t(r),...C,children:f(x)})})]},k))})},c4t=1;function mZ({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=tn.useState(e.ticks()),[A,p]=tn.useState(t.ticks()),{significantLines:v=[]}=a,{significantLines:y=[]}=i;return tn.useEffect(()=>{let b=e.ticks().filter(x=>!v.includes(x)),C=t.ticks().filter(x=>!y.includes(x));f(b),p(C)},[e,t,s]),ie.jsxs("g",{stroke:$f,children:[a.showGrid&&c.map(b=>{let C=e(b);return ie.jsx("line",{x1:C,x2:C,y1:0,y2:r},`x_${C}_${r}`)}),i.showGrid&&A.map(b=>{let C=t(b);return ie.jsx("line",{x1:0,x2:n,y1:C,y2:C},`y_${C}_${n}`)}),ie.jsx("g",{strokeDasharray:Vf(a.significantLinesStyle),stroke:$t,children:v.map(b=>{let C=e(b);return C<0||C>n?null:ie.jsx("line",{x1:C,x2:C,y1:0,y2:r},`significant_${C}_${r}`)})}),ie.jsx("g",{strokeDasharray:Vf(i.significantLinesStyle),stroke:$t,children:y.map(b=>{let C=t(b);return C<0||C>r?null:ie.jsx("line",{x1:0,x2:n,y1:C,y2:C},`significant_${C}_${n}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:c4t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?$f:$t,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?$f:$t,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?$t:$f,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?$t:$f,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}function f4t(e){return typeof e=="string"?e:e.value}function d4t(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 gZ(e,t,n,r){return t==="vertical"?e:e+n*r}function yZ(e,t,n,r){return t(n==="vertical"?r==="straight"?e.y.straight:e.y.reverse:e.count)}function A4t({facetKey:e,width:t,height:n,dimensions:r,scales:a,xAxis:i,yAxis:o,frameType:s,histogramData:c,facetSettings:f,captionsSizes:A,facetTitle:p,layers:v,aesColorGetter:y,groupingDirection:b,groupingStack:C,groupingLabels:x,chartSizes:k,margins:_,tooltipsContainer:P,tooltipsData:N}){let[I,F]=tn.useState(),{padding:Q}=r,Z=i.showTicks?4:0,ee=o.showTicks?4:0,le=r.chartEdgeSides.includes("left")||!(f!=null&&f.sharedY),z=r.chartEdgeSides.includes("bottom")||!(f!=null&&f.sharedX),U=r.chartEdgeSides.includes("bottom"),G=c.groupingKeys,Y=c.histogramByGroupingKey[G[0]].bins[0],X=a.x(Y.width)-a.x(0),te=C==="vertical"?X:X/G.length,he={left:_.left+r.left+Q.left,right:k.totalWidth-(_.left+r.left+Q.left),top:_.top+r.top+Q.top,bottom:k.totalHeight-(_.top+r.top+Q.top)},ae=I&&N.fixed,ge=!1;return ie.jsxs("g",{transform:`translate(${r.left+Q.left},${r.top+Q.top})`,children:[ge,p.length&&ie.jsxs("g",{children:[s==="full"&&ie.jsx("rect",{x:"0",y:-Q.top,height:Q.top,width:t,fill:"#F7F8FA",stroke:$t}),p.map((me,fe)=>{let be=p.length,He=(Q.top-20*be)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:$t,x:t/2,dy:He+20/2-Q.top,y:fe*20,textAnchor:"middle",dominantBaseline:"central",children:me},fe)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:$t,children:[U&&i.title&&ie.jsx("text",{x:t/2,y:n+Q.bottom-20/2,children:f4t(i.title)}),ge]}),ie.jsx(mZ,{width:t,height:n,scaleX:a.x,scaleY:a.y,axisX:i,axisY:o,frameType:s}),z&&ie.jsxs("g",{transform:`translate(0,${n})`,children:[ie.jsx(vZ,{scale:a.x,orient:"bottom",tickSize:Z,hiddenLabels:i.hiddenLabels}),ge]}),le&&ie.jsxs("g",{children:[ie.jsx(vZ,{scale:a.y,orient:"left",tickSize:ee,hiddenLabels:o.hiddenLabels}),ge]}),v.map(me=>G.map((fe,be)=>c.histogramByGroupingKey[fe].bins.map(He=>{let _e=ae&&N.selectedData===He,Ie=ie.jsx("rect",{x:gZ(a.x(He.x),C,be,te),y:yZ(He,a.y,C,b),fill:He.rows[0]?y(me.aes.fillColor,He.rows[0],He.count):"",stroke:me.aes.lineColor,width:te,height:a.y(0)-a.y(He.count),opacity:me.aes.opacity??1,onMouseOver:()=>N.onMouseOver(He,e),onMouseLeave:()=>N.onMouseLeave()},He.x);return _e?uu.createPortal(Ie,I):Ie}))),N.fixed&&ie.jsx("rect",{width:k.chartWidth,height:k.chartHeight,fill:"rgba(255,255,255,0.8)"}),ie.jsx("g",{ref:me=>{me&&!I&&F(me)}}),N.selectedData&&N.currentFacet===e&&ie.jsx(cu,{content:d4t(N.selectedData,x),x:gZ(a.x(N.selectedData.x),C,N.selectedData.groupingKeyIdx,te)+te,y:yZ(N.selectedData,a.y,C,b)+a.y(0)-a.y(N.selectedData.count/2),offset:0,active:!0,fixed:N.fixed,sideDistances:he,container:P,onClose:N.onClose})]})}function p4t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,columnsCount:a,facetKeys:i,facetSettings:o,scales:s,margins:c,mainTitle:f,facetTitles:A,captionsSizes:p,histogramDataByFacets:v,layers:y,aesColorGetter:b,groupingDirection:C,groupingStack:x,groupingLabels:k,legend:_,onTooltipHintSwitch:P}){let N=d2(P),{xAxis:I,yAxis:F,title:Q,frame:Z}=t,ee=r[i[0]].padding,le=r[i[a-1]].padding,[z,U]=tn.useState(),G=tn.useRef(null);tn.useEffect(()=>{G.current&&U(G.current)},[]);let Y=c.left+n.chartsWidth+FD,X=c.top+ee.top;return ie.jsx(v2,{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:Fg}),ie.jsxs("g",{transform:`translate(${c.left},${c.top})`,fontFamily:"Manrope",children:[ie.jsx(m2,{title:f,show:Q.show,position:Q.position,leftPadding:ee.left,rightPadding:le.right,chartsWidth:n.chartsWidth}),i.map(te=>ie.jsx(A4t,{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:I,yAxis:F,frameType:Z.type,facetTitle:A[te],captionsSizes:p,histogramData:v[te],layers:y,aesColorGetter:b,groupingDirection:C,groupingStack:x,groupingLabels:k,tooltipsContainer:z,tooltipsData:N},te))]}),ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(g2,{legendData:_})}),ie.jsx("g",{ref:G,style:{outline:"none"}})]})})}function h4t(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 v4t(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!=="",p=n.yAxisCaptionsWidth,v=(t.showTicks?4:0)+(t.hiddenLabels?0:6),y=n.xAxisCaptionsWidth,b=(e.showTicks?4:0)+(e.hiddenLabels?0:6),C=A?20:0,x=p+v,k=b+y+C,_=Math.max(...r.map(P=>a[P].length));return{left:c?x:12,top:_===0?0:6*2+_*20,bottom:f?k:12,right:o?0:12}}function m4t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function g4t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function wZ(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function y4t(e){return typeof e=="object"&&e!==null&&"range"in e}function w4t(e,t,n){return function(r,a,i){var o,s;if(y4t(r)){let{domain:c=n,range:f,type:A="linear"}=r,p=T4(f,c,A);return p.clamp(!0),p(i)}if(wZ(r)){let c=r.value;return(s=((o=e[c])==null?void 0:o[String(a[c])])??bD)==null?void 0:s[t]}return r}}var C4t=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=Gh(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,p,v)=>{let[y,b]=g4t(v,this.columnsCount),C=h4t(v,e.length,this.columnsCount,this.rowsCount),x=v4t(n,r,this.captionsSizes,m4t(e,this.rowsCount,this.columnsCount)[y],this.facetTitles,C,b===this.columnsCount-1,t),k=a+x.left+x.right,_=i+x.top+x.bottom;return A[p]={left:o,top:s,chartEdgeSides:C,padding:x,inner:{width:a,height:i},outer:{width:k,height:_}},o+=k,b===this.columnsCount-1&&(o=0,s+=_),A},{});let c=Math.max(...e.map(A=>this.chartsDimensions[A].outer.width+this.chartsDimensions[A].left)),f=Math.max(...e.map(A=>this.chartsDimensions[A].outer.height+this.chartsDimensions[A].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r,a,i,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,p]=[1/0,-1/0],v=-1/0,y=e.reduce((b,C)=>{let x=a[C],{minX:k,maxX:_,maxCount:P,maxCountFromGroups:N}=x;return A=Math.min(A,k),p=Math.max(p,_),v=Math.max(v,o==="vertical"?P:N),b[C]={minX:k,maxX:_,maxY:o==="vertical"?P:N},b},{});e.forEach(b=>{let C=n.scale==="log"?av():Zr(),x=y[b],k=t.sharedX?A:x.minX,_=t.sharedX?p:x.maxX;C.domain([k,_]).range([0,this.chartSizes.chartWidth]),this.scales.x[b]=C}),e.forEach(b=>{let C=r.scale==="log"?av():Zr(),x=y[b],k=0,_=t.sharedY?v:x.maxY,P=[this.chartSizes.chartHeight,0],N=C.copy().domain([k,_]).range([this.chartSizes.chartHeight,i.innerOffset]);C.domain([N.invert(this.chartSizes.chartHeight),N.invert(0)]).range(P),this.scales.y[b]=C})}updateCaptionsSize(e,t){let n=new Ac("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}=k4(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=Gv(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]=Gv(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(wZ(A.aes.fillColor)&&n){let p=A.aes.fillColor.value,v=t[n.value],y=n.label??n.value,b=zo().domain(v.values).range(v.values.map(C=>v.aesMap[C].fillColor));a.push({...i,id:p,type:"discreteColor",title:y,scale:b,values:v.values,labels:v.labels})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=w2(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+Yb,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,p,v){var N;let{xAxis:y,yAxis:b,size:C,title:x}=t;this.updateChartSizes(C),this.updateViewport(r,n,y,b,i,C,A),this.updateCaptionsSize(y,b),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,y,b),this.createMainTitle(r,x),this.updateLegendSize(t.legend,o,f,s),this.updateMargins(C);let k=r.reduce((I,F)=>Math.min(I,i[F].minX),1/0),_=r.reduce((I,F)=>Math.max(I,i[F].maxX),-1/0),P=ie.jsx(p4t,{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:w4t(c,"fillColor",[k,_]),groupingDirection:p,groupingStack:A,groupingLabels:f?o[f.value].labels:{},legend:this.legend,onTooltipHintSwitch:v});this.component=P,(N=this.reactRoot)==null||N.render(P)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Uv,{message:e}))}},b4t=C4t,E4t=10,x4t=class{constructor(e){Be(this,"type","bins");Be(this,"aes",{fillColor:"white",lineColor:$t,opacity:1});this.aes={...this.aes,...e.aes}}},S4t=class{constructor(e){Be(this,"type","binsLine");Be(this,"aes",{opacity:1});this.aes={...this.aes,...e.aes}}},CZ=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,p;H2t.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??E4t,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)??r4t.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:((p=e.frame)==null?void 0:p.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 x4t(v);if(v.type==="binsLine")return new S4t(v);uA(v,"Unknown layer type")}).filter(Boolean)}};function bZ(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 B4t(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 k4t=class extends Ng{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new b4t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new CZ(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 CZ(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(),gy(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(b=>this.data.getColumnCategories(b.value)),f=c.length?bZ([...c]):[["null"]],A=n.map(b=>b.value)??null,p=r?[r.value]:[],v=r?this.data.getColumnCategories(r.value):["null"];s&&(v=Zn.intersection(s,v)),this.data.setGrouping([...A,...p]);let y=n4t(this.data,f,v,t,a,i.xAxis.scale);this.calculatedData={facetKeys:f.map(b=>b.join(", ")),facetKeysCombinations:f,histogramDataByFacets:y,legendInfo:B4t(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 T4t(e,t,n,r,a,i,o){let s={};return t.forEach(c=>{let f=[],A=1/0,p=1/0,v=-1/0,y=-1/0;o.forEach(b=>{e.getRowsByGrouping([...c,b]).forEach(C=>{let x=C[n.value],k=C[r.value];A=Math.min(A,x),p=Math.min(p,k),v=Math.max(v,x),y=Math.max(y,k),x!==null&&k!==null&&f.push({id:`${Object.values(C)}`,x,y:k,label:a?C[a.valueLabels??a.value]:null,dimmed:i?!C[i.value]:!1,data:C})})}),f.sort((b,C)=>b.x-C.x),s[c.join("_")]={minX:A,maxX:v,minY:p,maxY:y,dots:f}}),s}function _4t(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((y,b)=>v.data[y.value]===f[b])),p=a.reduce((v,y,b)=>(v[y.value]=f[b],v),{});return{dots:A,data:p}})};if(c.type==="dots")return{type:"dots",info:c,geoms:s};uA(c,"Unknown scatterplot layer type")}),i},{})}function zD(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 D4t(e,t){return zD(e)-t}function P4t(e,t){return EZ(e)-t}function xZ(e){let t=zD(e),n=t+e.width,r=EZ(e),a=r+e.height;return{minX:t,maxX:n,minY:r,maxY:a}}function SZ(e,t,n){let r=D4t(e,n),a=zD(e)+e.width+n,i=P4t(e,t),o=i+e.height+2*t;return{minX:r,maxX:a,minY:i,maxY:o}}function M4t(e,t,n){return e.minX>=0&&e.maxX<=t&&e.minY>=0&&e.maxY<=n}var fE=2;function H4t(e,t=fE,n=fE){e.forEach(r=>{r.bbox=xZ(r),r.outerBBox=SZ(r,t,n)})}function dE(e,t,n,r=fE,a=fE){let i=[],o=new ndt,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 p={...c,yPosition:f,xPosition:A};if(p.bbox=xZ(p),p.outerBBox=SZ(p,r,a),M4t(p.outerBBox,t,n)&&!o.collides(p.outerBBox)){i.push(p),o.insert(p.outerBBox);break}}return i}function I4t(e){return`translate(${e},0)`}function R4t(e){return`translate(0,${e})`}function N4t(e){return e==="bottom"?`translate(0,${Ff})`:`translate(${-Ff},0)`}function L4t(e){return e==="bottom"?"hanging":"central"}function $4t(e){return e==="bottom"?"middle":"end"}var AE=({scale:e,tickSize:t=6,tickPadding:n=Ff,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function o(C){return x=>{let k=C(x);return k===void 0?0:+k}}let{ticks:s,format:c}=k4(e,a,r==="bottom"),f=Math.max(t,0)+n,A=o(e.copy()),p=r==="bottom"?I4t:R4t,v=r==="left"?-1:1,y={[(r==="left"?"x":"y")+"2"]:v*t},b={[r==="left"?"x":"y"]:v*f};return ie.jsx("g",{children:s.map((C,x)=>ie.jsxs("g",{className:"tick",transform:p(A(C)+i),children:[ie.jsx("line",{stroke:$t,...y}),ie.jsx("g",{transform:N4t(r),children:ie.jsx("text",{fill:$t,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:L4t(r),textAnchor:$4t(r),...b,children:c(C)})})]},x))})},F4t=1;function V4t({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=tn.useState(e.ticks()),[A,p]=tn.useState(t.ticks()),{significantLines:v=[]}=a,{significantLines:y=[]}=i;return tn.useEffect(()=>{let b=e.ticks().filter(x=>!v.includes(x)),C=t.ticks().filter(x=>!y.includes(x));f(b),p(C)},[e,t,s]),ie.jsxs("g",{stroke:$f,children:[a.showGrid&&c.map(b=>{let C=e(b);return ie.jsx("line",{x1:C,x2:C,y1:0,y2:r},`x_${C}_${r}`)}),i.showGrid&&A.map(b=>{let C=t(b);return ie.jsx("line",{x1:0,x2:n,y1:C,y2:C},`y_${C}_${n}`)}),ie.jsx("g",{strokeDasharray:Vf(a.significantLinesStyle),stroke:$t,children:v.map(b=>{let C=e(b);return ie.jsx("line",{x1:C,x2:C,y1:0,y2:r},`significant_${C}_${r}`)})}),ie.jsx("g",{strokeDasharray:Vf(i.significantLinesStyle),stroke:$t,children:y.map(b=>{let C=t(b);return ie.jsx("line",{x1:0,x2:n,y1:C,y2:C},`significant_${C}_${n}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:F4t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?$f:$t,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?$f:$t,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?$t:$f,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?$t:$f,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}var O4t=new Ac("16px Manrope");function BZ(e,t){return typeof e=="string"?e:t.length?t[0].data[e.value]:""}function Q4t(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 z4t(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 U4t(e){return typeof e.pValue>"u"?null:ie.jsx("tspan",{children:`p-value = ${ni(e.pValue)}`})}function G4t(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 j4t(e){let t=[z4t(e),U4t(e),G4t(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 UD=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=O4t.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)+UD})}return a}function Y4t({facetKey:e,width:t,height:n,dimensions:r,scales:a,xAxis:i,yAxis:o,frameType:s,dotsData:c,facetSettings:f,trendsData:A,keyColumn:p,margins:v,chartSizes:y,tooltips:b,tooltipsContainer:C,captionsSizes:x,facetTitle:k,onlyPositive:_,layersData:P,aesGetters:N,tooltipsData:I}){let[F,Q]=tn.useState(),{padding:Z}=r,{dots:ee}=c,le=i.showTicks?s2:0,z=o.showTicks?s2:0,U=BZ(i.title,ee),G=BZ(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"),he=r.chartEdgeSides.includes("bottom"),ae={left:v.left+r.left+Z.left,right:y.totalWidth-(v.left+r.left+Z.left),top:v.top+r.top+Z.top,bottom:y.totalHeight-(v.top+r.top+Z.top)},ge=!1,[me,fe]=tn.useState(()=>kZ(ee,a,N,P.find(Oe=>Oe.type==="dots"))),[be,He]=tn.useState(()=>dE(me,t,n,UD,UD)),[_e,Ie]=tn.useState(null);tn.useEffect(()=>{fe(kZ(ee,a,N,P.find(Oe=>Oe.type==="dots")))},[ee,a,N,P]),tn.useEffect(()=>{let Oe=dE(me,t,n);He(Oe)},[me,t,n]);let Ue=F&&I.fixed;return ie.jsxs("g",{transform:`translate(${r.left+Z.left},${r.top+Z.top})`,children:[ge,k.length&&ie.jsxs("g",{children:[s==="full"&&ie.jsx("rect",{x:"0",y:-Z.top,height:Z.top,width:t,fill:"#F7F8FA",stroke:$t}),k.map((Oe,ft)=>{let Ve=k.length,Xe=(Z.top-ED*Ve)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:$t,x:t/2,dy:Xe+ED/2-Z.top,y:ft*ED,textAnchor:"middle",dominantBaseline:"central",children:Oe},ft)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:$t,children:[he&&ie.jsx("text",{x:t/2,y:n+Z.bottom-Qv-m4/2,children:U}),ge,te&&ie.jsx("text",{x:-Z.left+Qv+m4/2,y:n/2,transform:`rotate(-90,${-Z.left+Qv+m4/2},${n/2})`,children:G}),ge]}),ie.jsx(V4t,{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(AE,{scale:a.x,orient:"bottom",onlyPositive:_.x,tickSize:le}),ge]}),Y&&ie.jsxs("g",{children:[ie.jsx(AE,{scale:a.y,orient:"left",onlyPositive:_.y,tickSize:z}),ge]}),A&&A.map(({predict:Oe,getArea:ft,color:Ve,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=N.dotColor(Ve,Xe);return ie.jsxs("g",{children:[ie.jsx("text",{y:wt*20+20,fill:ea,x:t-8,textAnchor:"end",children:j4t(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(Ve=>{let Xe=Ue&&I.selectedData===Ve,tt=ie.jsx("g",{transform:`translate(${a.x(Ve.x)},${a.y(Ve.y)})`,opacity:Ve.dimmed?.3:1,onMouseOver:()=>I.onMouseOver(Ve,e),onMouseLeave:()=>I.onMouseLeave(),children:jc(N.dotShape(Oe.info.aes.dotShape,Ve.data),N.dotSize(Oe.info.aes.dotSize,Ve.data),N.dotColor(Oe.info.aes.dotFill,Ve.data))},Ve.id);return Xe?uu.createPortal(tt,F):tt}),be.map(Ve=>{let{name:Xe,height:tt,bbox:qe,width:gt}=Ve;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:()=>Ie(Ve.dot),onMouseLeave:()=>Ie(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})]})},Ve.dot.id)}),_e&&ie.jsxs("g",{transform:`translate(${a.x(_e.x)},${a.y(_e.y)})`,children:[jc(N.dotShape(Oe.info.aes.dotShape,_e.data),N.dotSize(Oe.info.aes.dotSize,_e.data)+1,"white","white"),jc(N.dotShape(Oe.info.aes.dotShape,_e.data),N.dotSize(Oe.info.aes.dotSize,_e.data),N.dotColor(Oe.info.aes.dotFill,_e.data))]},"activeDot")]},ft);if(Oe.type==="curve"&&!Oe.info.smoothing)return Oe.geoms.map((Ve,Xe)=>ie.jsx("g",{children:ie.jsx("polyline",{points:Ve.dots.map(tt=>`${a.x(tt.x)},${a.y(tt.y)}`).join(" "),fill:"none",stroke:N.lineColor(Oe.info.aes.lineColor,Ve.data),strokeWidth:Oe.info.aes.lineWidth,strokeDasharray:Vf(Oe.info.aes.lineShape)})},Xe));if(Oe.type==="curve"&&Oe.info.smoothing)return Oe.geoms.map((Ve,Xe)=>ie.jsx("g",{children:ie.jsx("path",{d:yy().curve(wy).x(tt=>a.x(tt.x)).y(tt=>a.y(tt.y))(Ve.dots)??"",fill:"none",stroke:N.lineColor(Oe.info.aes.lineColor,Ve.data),strokeWidth:Oe.info.aes.lineWidth,strokeDasharray:Vf(Oe.info.aes.lineShape)})},Xe))}),b.show&&I.selectedData&&I.currentFacet===e&&ie.jsx(cu,{content:Q4t(I.selectedData,p,b==null?void 0:b.content),x:a.x(I.selectedData.x),y:a.y(I.selectedData.y),active:!0,sideDistances:ae,fixed:I.fixed,onClose:I.onClose,container:C}),ie.jsxs("g",{children:[I.fixed&&ie.jsx("rect",{width:y.chartWidth,height:y.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:Oe=>{Oe&&!F&&Q(Oe)}})]})]})}function W4t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,facetKeys:a,facetSettings:i,scales:o,groupedDots:s,legendData:c,trendsData:f,columnsCount:A,margins:p,keyColumn:v,mainTitle:y,facetTitles:b,captionsSizes:C,onlyPositive:x,layersData:k,aesGetters:_,onTooltipHintSwitch:P}){let N=d2(P),[I,F]=tn.useState(),Q=tn.useRef(null);tn.useEffect(()=>{Q.current&&F(Q.current)},[]);let{xAxis:Z,yAxis:ee,title:le,frame:z,legend:U,tooltips:G}=t,Y=r[a[0]].padding,X=r[a[A-1]].padding,te=n.chartsWidth+Yb,he=Y.top;return ie.jsx(v2,{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:Fg}),ie.jsxs("g",{transform:`translate(${p.left},${p.top})`,fontFamily:"Manrope",children:[ie.jsx(m2,{title:y,show:le.show,position:le.position,leftPadding:Y.left,rightPadding:X.right,chartsWidth:n.chartsWidth}),a.map(ae=>ie.jsx(Y4t,{facetKey:ae,scales:{x:o.x[ae],y:o.y[ae]},width:n.chartWidth,height:n.chartHeight,dimensions:r[ae],margins:p,chartSizes:n,facetSettings:i,xAxis:Z,yAxis:ee,frameType:z.type,dotsData:s[ae],trendsData:f?f[ae]:null,tooltips:G,tooltipsContainer:I,keyColumn:v,facetTitle:b[ae],captionsSizes:C,layersData:k[ae],onlyPositive:x,aesGetters:_,tooltipsData:N},ae)),U.show&&ie.jsx("g",{transform:`translate(${te},${he})`,children:ie.jsx(g2,{legendData:c})})]}),ie.jsx("g",{ref:Q,style:{outline:"none"}})]})})}function X4t(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 K4t(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!=="",p=n.yAxisCaptionsWidth+2*xD,v=(t.showTicks?s2:0)+xD,y=c?m4+Qv:0,b=n.xAxisCaptionsWidth+2*xD,C=e.showTicks?s2:0,x=A?m4+Qv:0,k=p+v+y+GX,_=b+C+x+GX,P=Math.max(...r.map(N=>a[N].length));return{left:s?k:Qv,top:P===0?0:$yt*2+P*E4,bottom:f?_+8:Qv,right:Qv}}function Z4t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function J4t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function q4t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function k2(e,t){return function(n,r){var a,i;if(rh(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=iv().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}if(rh(n)&&(t==="dotFill"||t==="lineColor")){let{domain:o,range:s,type:c="linear"}=n,f=T4(s,o,c),A=r[n.columnName.value];return A===null?Ov.color:f(Number(A))}if(q4t(n)){let o=n.value;return(i=((a=e[o])==null?void 0:a[String(r[o])])??bD)==null?void 0:i[t]}return n}}function ewt(e){return{dotShape:k2(e,"dotShape"),dotColor:k2(e,"dotFill"),dotSize:k2(e,"dotSize"),lineShape:k2(e,"lineShape"),lineColor:k2(e,"lineColor"),trendColor:k2(e,"dotFill")}}var twt=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=Gh(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,p,v)=>{let[y,b]=J4t(v,this.columnsCount),C=X4t(v,e.length,this.columnsCount,this.rowsCount),x=K4t(n,r,this.captionsSizes,Z4t(e,this.rowsCount,this.columnsCount)[y],this.facetTitles,C,t),k=a+x.left+x.right,_=i+x.top+x.bottom;return A[p]={left:o,top:s,chartEdgeSides:C,padding:x,inner:{width:a,height:i},outer:{width:k,height:_}},o+=k,b===this.columnsCount-1&&(o=0,s+=_),A},{});let c=Math.max(...e.map(A=>this.chartsDimensions[A].outer.width+this.chartsDimensions[A].left)),f=Math.max(...e.map(A=>this.chartsDimensions[A].outer.height+this.chartsDimensions[A].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r,a,i){let o=e.length,s=Math.min(t.nRows??o,o),c=Math.min(t.nCols??o,o);this.columnsCount=t.nRows?Math.ceil(o/s):c,this.rowsCount=Math.ceil(o/this.columnsCount);let[f,A]=[1/0,-1/0],[p,v]=[1/0,-1/0],y=e.reduce((C,x)=>{let k=a[x],{minX:_,minY:P,maxX:N,maxY:I}=k;return f=Math.min(f,_),p=Math.min(p,P),A=Math.max(A,N),v=Math.max(v,I),C[x]={minX:_,maxX:N,minY:P,maxY:I},C},{});e.forEach(C=>{let x=n.scale==="log"?Gm():Zr(),k=y[C],_=n.lowerValue?Number(n.lowerValue):t.sharedX?f:k.minX,P=n.upperValue?Number(n.upperValue):t.sharedX?A:k.maxX;if(typeof n.symmetricRange<"u"){let F=n.symmetricRange;if(F>=_&&F<=P){let Q=Math.max(F-_,P-F);_=F-Q,P=F+Q}}let N=[0,this.chartSizes.chartWidth],I=x.copy().domain([_,P]).range([jb.LEFT,this.chartSizes.chartWidth-jb.RIGHT]);x.domain([I.invert(0),I.invert(this.chartSizes.chartWidth)]).range(N).nice(),this.scales.x[C]=x});let b=e.reduce((C,x)=>{let k=i?i[x]:[];return C[x]=k.reduce((_,P)=>{let N=P.bounded?P.xBounds:this.scales.x[x].domain(),I=P.getInterval(N[0]),F=P.getInterval(N[1]);return _.minY=Math.min(_.minY,isNaN(I.left)?_.minY:I.left,isNaN(F.left)?_.minY:F.left),_.maxY=Math.max(_.maxY,isNaN(I.right)?_.maxY:I.right,isNaN(F.right)?_.maxY:F.right),_},{minY:1/0,maxY:-1/0}),p=Math.min(p,C[x].minY),v=Math.max(v,C[x].maxY),C},{});e.forEach(C=>{let x=r.scale==="log"?Gm():Zr(),k=y[C],_=b[C],P=r.lowerValue?Number(r.lowerValue):t.sharedY?p:Math.min(k.minY,_.minY),N=r.upperValue?Number(r.upperValue):t.sharedY?v:Math.max(k.maxY,_.maxY);if(typeof r.symmetricRange<"u"){let Q=r.symmetricRange;if(Q>=P&&Q<=N){let Z=Math.max(Q-P,N-Q);P=Q-Z,N=Q+Z}}let I=[this.chartSizes.chartHeight,0],F=x.copy().domain([P,N]).range([this.chartSizes.chartHeight-jb.BOTTOM,jb.TOP]);x.domain([F.invert(this.chartSizes.chartHeight),F.invert(0)]).range(I).nice(),this.scales.y[C]=x})}updateCaptionsSize(e){let t=new Ac("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}=k4(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=Gv(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]=Gv(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 p=t[A.value];if(p.usedAes.length===0||!p.aesMap)return;let v={};p.values.forEach(C=>{v[C]||(v[C]={...Ov}),p.usedAes.forEach(x=>{var k,_,P;(x==="dotFill"||x==="lineColor")&&(v[C].color=((k=p.aesMap[C])==null?void 0:k[x])??$t),x==="dotShape"&&(v[C].shape=((_=p.aesMap[C])==null?void 0:_[x])??"21"),x==="dotSize"&&(v[C].size=((P=p.aesMap[C])==null?void 0:P[x])??3)})});let y=A.label??A.value,b=zo().domain(p.values).range(p.values.map(C=>v[C])).unknown(Ov);a.push({...i,id:A.value,type:"dots",title:y,scale:b,values:p.values,labels:p.labels})}),r.forEach(A=>{if(A.type==="dots"&&rh(A.aes.dotFill)){let{domain:p,range:v,columnName:y,type:b="linear"}=A.aes.dotFill,C=y.label??y.value,x=T4(v,p,"linear"),k=(b==="log"?av():Zr()).domain(p).range([this.chartSizes.chartHeight,0]),_=f2(k,p);a.push({...i,id:"dotFill",type:"continuous",title:C,scale:x,tickPositionScale:k,values:_})}if(A.type==="dots"&&rh(A.aes.dotSize)){let{columnName:p,domain:v,range:y}=A.aes.dotSize,b=p.label??p.value,C=iv(v,y),x=C.ticks(3),k=C.tickFormat(3),_=x.reduce((P,N)=>(P[String(N)]=k(N),P),{});a.push({...i,id:p.value,type:"size",title:b,scale:C,values:x,labels:_})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=w2(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+Yb,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}render(e,t,n,r,a,i,o,s,c,f,A,p,v,y,b){var I;let{xAxis:C,yAxis:x,size:k,title:_,legend:P}=t;this.updateChartSizes(k),this.updateViewport(r,n,C,x,i,o),this.updateCaptionsSize(c.y),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,C,x),this.updateLegendSize(P,f,v,y),this.createMainTitle(r,_),this.updateMargins();let N=ie.jsx(W4t,{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:ewt(p),onTooltipHintSwitch:b});this.component=N,(I=this.reactRoot)==null||I.render(N)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Uv,{message:e}))}},nwt=twt,rwt=class{constructor(e){Be(this,"type","dots");Be(this,"aes",{dotFill:$t,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},awt=class{constructor(e){Be(this,"type","curve");Be(this,"smoothing");Be(this,"aes",{lineColor:$t,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},TZ=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;g2t.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??$t}:null,this.layers=e.layers.map(i=>{if(i.type==="dots")return new rwt(i);if(i.type==="curve")return new awt(i);uA(i,"Unknown layer type")}).filter(Boolean)}},iwt=Dht(kyt()),_Z=.05;function owt(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,p=5394.196021424751,v=21213.794301586597,y=39307.89580009271,b=28729.085735721943,C=5226.495278852854,x=1.4234371107496835,k=4.630337846156546,_=5.769497221460691,P=3.6478483247632045,N=1.2704582524523684,I=.2417807251774506,F=.022723844989269184,Q=.0007745450142783414,Z=2.053191626637759,ee=1.6763848301838038,le=.6897673349851,z=.14810397642748008,U=.015198666563616457,G=.0005475938084995345,Y=10507500716444169e-25,X=6.657904643501103,te=5.463784911164114,he=1.7848265399172913,ae=.29656057182850487,ge=.026532189526576124,me=.0012426609473880784,fe=27115555687434876e-21,be=20103343992922881e-23,He=.599832206555888,_e=.1369298809227358,Ie=.014875361290850615,Ue=.0007868691311456133,Oe=18463183175100548e-21,ft=1421511758316446e-22,Ve=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)/(((((((C*tt+b)*tt+y)*tt+v)*tt+p)*tt+A)*tt+f)*tt+1),qe):(tt=e,tt=Math.sqrt(-Math.log(tt)),tt<=5?(tt+=-1.6,qe=(((((((Q*tt+F)*tt+I)*tt+N)*tt+P)*tt+_)*tt+k)*tt+x)/(((((((Y*tt+G)*tt+U)*tt+z)*tt+le)*tt+ee)*tt+Z)*tt+1)):(tt+=-5,qe=(((((((be*tt+fe)*tt+me)*tt+ge)*tt+ae)*tt+he)*tt+te)*tt+X)/(((((((Ve*tt+ft)*tt+Oe)*tt+Ue)*tt+Ie)*tt+_e)*tt+He)*tt+1)),qe=-qe,qe)}function DZ(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),p=48/(A*A),v=((20700*A/p-98)*A-16)*A+96.36,y=((94.5/(p+v)-3)/p+1)*a(A*s*.5)*t;return c=y*e,f=i(c,2/t),f>.05+A?(c=owt(e/2),f=c*c,t<5&&(v=v+.3*(t-4.5)*(c+.6)),v=(((.05*y*c-5)*c-7)*c-2)*c+p+v,f=(((((.4*f+6.3)*f+36)*f+94.5)/v-f-3)/p+1)*c,f=A*f*f,f>.002?f=o(f)-1:f=.5*f*f+f):f=((1/(((t+6)/(t*f)-.089*y-.822)*(t+2)*3)+.5/(t+4))*f-1)*(t+1)/(t+2)+1/f,a(t*f)}function lwt(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 swt(e,t,n){let r=A=>A*t+n,a=e.length,i=oc(e,A=>A.x)/e.length,o=DZ(_Z,a-2),s=Math.sqrt(oc(e,A=>(A.y-r(A.x))**2)/(a-2)/oc(e,A=>(A.x-i)**2)),c=s*o,f=s*Math.sqrt(oc(e,A=>A.x**2)/a)*o;return{slope:t,intercept:n,slopeError:c,interceptError:f}}function uwt(e,t){let n=oc(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=DZ(_Z,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,p=c+o*f;return{x:s,y:c,left:isNaN(A)?c:A,right:isNaN(p)?c:p}}}function cwt(e){let t=e.length;return Math.pow((t*oc(e,n=>n.x*n.y)-oc(e,n=>n.x)*oc(e,n=>n.y))/(Math.sqrt(t*oc(e,n=>n.x*n.x)-Math.pow(oc(e,n=>n.x),2))*Math.sqrt(t*oc(e,n=>n.y*n.y)-Math.pow(oc(e,n=>n.y),2))),2)}function fwt(e,t){let n=Ls(e,t);return Ls(e.map(r=>(t(r)-n)**2))}function PZ(e,t){return Math.sqrt(fwt(e,t))}function dwt(e,t,n){let r=Ls(e,t),a=Ls(e,n),i=e.length;return oc(e,o=>(o.x-r)*(o.y-a))/i}function Awt(e){let t=dwt(e,a=>a.x,a=>a.y),n=PZ(e,a=>a.x),r=PZ(e,a=>a.y);return t/(n*r)}function pwt(e,t){let n=e.length,r=1,a=1,i=n-r-1,o=Ls(e,v=>v.y),s=oc(e,v=>(t(v.x)-o)**2),c=oc(e,v=>(t(v.x)-v.y)**2),f=s/a,A=c/i,p=f/A;return 1-(0,iwt.default)(p,a,i)}function hwt(e,t,n,r,a){return a?t.reduce((i,o)=>{let s=e[o].dots;return i[o]=n.map(c=>{let f=s.filter(x=>r.every((k,_)=>String(x.data[k.value])===c[_])),[A=0,p=0]=_p(f,x=>x.x),[v,y]=lwt(f),b=x=>v*x+y,C=uwt(f,b);return{predict:b,getInterval:C,getArea:(x,k,_)=>YB().x(P=>x(P.x)).y0(P=>k(P.left)).y1(P=>k(P.right))(_.map(C))??"",color:a.color,bounded:a.bounded,data:f[0].data,showStats:!0,xBounds:[A,p],stats:{r2:cwt(f),r:Awt(f),pValue:pwt(f,b),coefficients:swt(f,v,y)}}}),i},{}):null}function MZ(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 HZ(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function vwt(e,t,n,r){return t.reduce((a,i)=>{let o=Zn.uniqBy(e.rows,p=>p[i.value]),s=p=>String(p[i.value]),c=p=>i.valueLabels?String(p[i.valueLabels]):s(p),f=new Set;n.forEach(p=>{p.aes&&Object.entries(p.aes).forEach(([v,y])=>{HZ(y)&&y.value===i.value&&f.add(v)})});let A=o.reduce((p,v)=>(p[s(v)]=c(v),p),{});return a[i.value]={values:o.map(s).filter(p=>p!=="null").sort((p,v)=>A[p].localeCompare(A[v],"en",{numeric:!0})),usedAes:[...f],aesMap:r[i.value],labels:A},a},{})}var mwt=class extends Ng{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new nwt);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new TZ(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 TZ(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(),gy(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,p=this.data.getColumnCategories(i.value),v=r.map(Q=>this.data.getColumnCategories(Q.value)),y=a.map(Q=>this.data.getColumnCategories(Q.value)),b=v.length?MZ([...v]):[["null"]],C=y.length?MZ([...y]):[["null"]],x=r.map(Q=>Q.value)??null;this.data.setGrouping([...x,i.value]);let k={x:this.data.rows.every(Q=>{let Z=Q[t.value];return Z===null||!(Number(Z)<0)}),y:this.data.rows.every(Q=>{let Z=Q[n.value];return Z===null||!(Number(Z)<0)})},_=T4t(this.data,b,t,n,f,A,p),P=Object.keys(_),N=hwt(_,P,C,a,o),I=vwt(this.data,a,s,c),F=_4t(s,P,_,C,a);this.calculatedData={onlyPositive:k,dotsByFacets:_,facetKeys:P,facetKeysCombinations:b,trendsData:N,legendLabels:I,layersData:F}}_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(([p,v])=>{HZ(v)&&v.value===c.value&&f.add(p)})}),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)}},pE={TOP:30,BOTTOM:30,LEFT:30,RIGHT:30},_4=20,IZ=4,RZ=24;function gwt(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 NZ(e){return typeof e=="string"?e:e.label??e.value}var LZ=yy().curve(wy);function ywt({scales:e,chartSettings:t,mainTitle:n,keyColumn:r,margins:a,chartSizes:i,onlyPositive:o,container:s,zoomStateKey:c,legendData:f,dotsByGrouping:A,layers:p,aesGetters:v,tooltipData:y}){var U;let{title:b,xAxis:C,yAxis:x,frame:k,legend:_}=t,P=C.showTicks?IZ:0,N=x.showTicks?IZ:0,I=C.title,F=x.title,Q={left:0,right:i.chartWidth,top:0,bottom:i.chartHeight};if(!s)return null;let Z=p.find(G=>G.type==="curve"),[ee,le]=tn.useState([]);function z(){let G=Object.entries(A).map(([Y,X])=>({key:Y,d:Z!=null&&Z.smoothing?LZ(X)??"":X.map(te=>`${e.x(te.x)},${e.y(te.y)}`).join(" "),dot:X[0]}));le(G)}return tn.useEffect(()=>{Z&&(LZ.x(G=>e.x(G.x)).y(G=>e.y(G.y)),z())},[c]),tn.useEffect(()=>{Z&&z()},[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:Fg}),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(m2,{title:n,show:b.show,position:b.position,leftPadding:a.left,rightPadding:a.right,chartsWidth:i.chartWidth}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:$t,children:[I&&ie.jsx("text",{x:i.chartWidth/2,y:i.chartHeight+a.bottom-_4/2,children:NZ(I)}),F&&ie.jsx("text",{x:-a.left+_4/2,y:i.chartHeight/2,transform:`rotate(-90,${-a.left+_4/2},${i.chartHeight/2})`,children:NZ(F)})]}),ie.jsx(mZ,{width:i.chartWidth,height:i.chartHeight,scaleX:e.x,scaleY:e.y,axisX:C,axisY:x,updatingKey:c,frameType:k.type}),ie.jsx("g",{transform:`translate(0,${i.chartHeight})`,children:ie.jsx(AE,{scale:e.x,orient:"bottom",onlyPositive:o.x,tickSize:P})}),ie.jsx("g",{children:ie.jsx(AE,{scale:e.y,orient:"left",onlyPositive:o.y,tickSize:N})}),Z&&Z.smoothing&&ie.jsx("g",{clipPath:"url(#viewportClipPath)",children:ee.map(({key:G,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)},G)})}),Z&&!Z.smoothing&&ie.jsx("g",{clipPath:"url(#viewportClipPath)",children:ee.map(({key:G,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)},G)})}),y.selectedData&&ie.jsx(cu,{content:gwt(y.selectedData,r,(U=t.tooltips)==null?void 0:U.content),x:e.x(y.selectedData.x),y:e.y(y.selectedData.y),active:!0,fixed:y.fixed,sideDistances:Q,container:s,onClose:y.onClose}),_.show&&ie.jsx("g",{transform:`translate(${i.chartWidth+RZ},0)`,children:ie.jsx(g2,{legendData:f})})]})]})}var wwt=T6.memo(ywt),Cwt=20;function bwt({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),p=tn.useRef(null),v=tn.useRef(null),y=tn.useRef(a);function b(){A.current=null,p.current=null,v.current=null,y.current=[],i([]),s(null)}function C(_){n||_.key!=="Escape"||b()}tn.useEffect(()=>{n&&(A.current=null,p.current=null,v.current=null,s(null))},[n]),tn.useEffect(()=>(document.addEventListener("keydown",C),()=>document.removeEventListener("keydown",C)),[]),tn.useEffect(()=>{if(o&&c)return;if(a.length===0){r([]);return}let _=a.map(P=>P[0]);_.push(a[a.length-1][1]),r(_)},[a]);function x(){if(!A.current||n)return;let _=[...A.current],P=e.x.invert(_[0]),N=e.y.invert(_[1]),I=y.current,F=v.current,Q=p.current&&I.length>1?Math.sqrt((_[0]-p.current[0])**2+(_[1]-p.current[1])**2):1/0;v.current?v.current&&Q>Cwt?(I=[...I,[v.current,[P,N]]],F=[P,N]):(I=[...I,[v.current,[P,N]]],I.length>2&&(I=[...I,[I[I.length-1][1],I[0][0]]]),F=null,I.length<=2?r([]):r(I.map(Z=>Z[0])),p.current=null):(p.current=_,I=[],F=[P,N],r([])),i(I),s(F),y.current=I,v.current=F}function k(_){let P=[_.nativeEvent.offsetX,_.nativeEvent.offsetY];f(P),A.current=P}return ie.jsxs("g",{children:[ie.jsx("rect",{fill:"transparent",width:t.chartWidth,height:t.chartHeight,onMouseMove:k,onClick:x}),a.map(([_,P],N)=>ie.jsx("line",{x1:e.x(_[0]),y1:e.y(_[1]),x2:e.x(P[0]),y2:e.y(P[1]),stroke:$t,style:{pointerEvents:"none"}},N)),o&&c&&ie.jsx("line",{x1:e.x(o[0]),y1:e.y(o[1]),x2:c[0],y2:c[1],stroke:$t,style:{pointerEvents:"none"}},"lastLine")]})}function Ewt({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:p,width:v}=c;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${p.minX},${p.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(bwt,{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 xwt=Ewt;function Swt({settingsId:e,scales:t,chartSettings:n,mainTitle:r,keyColumn:a,margins:i,chartSizes:o,captionsSizes:s,onlyPositive:c,container:f,zoomStateKey:A,aesGetters:p,legendData:v,labels:y,onPolygonUpdate:b,onTooltipHintSwitch:C,lassoMode:x,dotsByGrouping:k,layers:_,selectedDot:P=null}){if(!f)return null;let N=d2(C);return tn.useEffect(()=>{P?N.onMouseOver(P):N.onMouseLeave()},[P]),ie.jsx("div",{children:ie.jsxs(v2,{dataId:e,children:[ie.jsx(wwt,{aesGetters:p,dotsByGrouping:k,layers:_,scales:t,keyColumn:a,margins:i,mainTitle:r,captionsSizes:s,chartSettings:n,chartSizes:o,onlyPositive:c,container:f,zoomStateKey:A,legendData:v,tooltipData:N}),uu.createPortal(ie.jsx(xwt,{scales:t,container:f,aesGetters:p,labels:y,chartSizes:o,selectedDot:P,onPolygonUpdate:b,lassoMode:x,tooltipData:N}),f)]})})}var $Z=e=>e.selection()!==e,FZ=(e,t)=>{e=e||"g";let n=(i,o)=>o,r=null,a=function(i,o){o=o||(y=>y);let s=i.selection(),c=$Z(i)?i:null,f=s.selectChildren(t==null?e:`${e}.${t}`).data(o,n),A=f.enter().append(e).attr("class",t),p=f.exit();f=f.merge(A);let v=c||r;return v&&(f=f.transition(v).style("opacity",1),A.style("opacity",1e-6),p=p.transition(v).style("opacity",1e-6)),p.remove(),f.enter=()=>A,f.exit=()=>p,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},VZ=(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}},OZ=(e,t,...n)=>{for(let r of n)e[r]=VZ(e,t,r);return e},Bwt=e=>t=>e.reduce((n,r)=>n&&r(n),t),GD=(e,t,...n)=>{let r=Bwt(n);for(let a of Object.keys(t)){let i=r(a);i&&(e[i]=VZ(e,t,a))}return e},kwt=e=>e.map(t=>typeof t=="string"?new RegExp(`^${t}$`):t),Twt=(...e)=>(e=kwt(e),t=>e.every(n=>!n.test(t))&&t),T2=e=>typeof e=="function"?e:()=>e;function _wt(){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 Dwt=(e,t)=>{switch(e){case"left":return t/2;case"right":return-t/2;default:return 0}},QZ=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},Pwt=()=>{let e=()=>0,t=s=>s.x,n=s=>s.y,r="center",a=()=>5,i="vertical",o=QZ({decorate:()=>{},defined:(s,c)=>_wt(e,t,n)(s,c),xScale:rv(),yScale:rv()});return o.values=(s,c)=>{let f=a(s,c),A=Dwt(r,f),p=o.xScale(),v=o.yScale();if(i==="vertical"){let y=v(n(s,c),c),b=v(e(s,c),c),C=p(t(s,c),c)+A;return{d:s,x:C,y,y0:b,width:f,height:y-b,origin:[C,y],baseOrigin:[C,b],transposedX:C,transposedY:y}}else{let y=p(n(s,c),c),b=p(e(s,c),c),C=v(t(s,c),c)+A;return{d:s,x:C,y,y0:b,width:f,height:y-b,origin:[y,C],baseOrigin:[b,C],transposedX:y,transposedY:C}}},o.xValues=()=>i==="vertical"?[t]:[e,n],o.yValues=()=>i!=="vertical"?[t]:[e,n],o.baseValue=(...s)=>s.length?(e=T2(s[0]),o):e,o.crossValue=(...s)=>s.length?(t=T2(s[0]),o):t,o.mainValue=(...s)=>s.length?(n=T2(s[0]),o):n,o.bandwidth=(...s)=>s.length?(a=T2(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},Mwt=()=>{let e=Pwt(),t=T2(64),n=lF,r=l4(),a=l4(),i=l4().type(nh.UNSIGNED_SHORT),o=l4().type(nh.UNSIGNED_BYTE),s=iht().crossValueAttribute(r).mainValueAttribute(a).sizeAttribute(i).definedAttribute(o),c=(b,C)=>!1,f=Aht,A=[],p=null,v=null,y=b=>{let C=f(e.xScale()),x=f(e.yScale()),k=!c(A,b);k&&(A=b,i.value((_,P)=>t(_,P)).data(b),o.value((_,P)=>e.defined()(_,P)).data(b)),(k||C.scale!==p)&&(p=C.scale,e.orient()==="vertical"?r.value((_,P)=>C.scale(e.crossValue()(_,P))).data(b):r.value((_,P)=>C.scale(e.mainValue()(_,P))).data(b)),(k||x.scale!==v)&&(v=x.scale,e.orient()==="vertical"?a.value((_,P)=>x.scale(e.mainValue()(_,P))).data(b):a.value((_,P)=>x.scale(e.crossValue()(_,P))).data(b)),s.xScale(C.webglScale).yScale(x.webglScale).type(wht(n)).decorate(_=>e.decorate()(_,b,0)),s(b.length)};return y.size=(...b)=>b.length?(t=T2(b[0]),y):t,y.type=(...b)=>b.length?(n=b[0],y):n,y.equals=(...b)=>b.length?(c=b[0],y):c,y.scaleMapper=(...b)=>b.length?(f=b[0],y):f,GD(y,e,Twt("baseValue","bandwidth","align")),OZ(y,s,"context","pixelRatio"),y},zZ=()=>{let e=[],t=a=>a,n=(a,i)=>i,r=QZ({decorate:()=>{},xScale:rv(),yScale:rv()});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},Hwt=()=>{let e=zZ(),t=FZ("g"),n=FZ("g","multi"),r=a=>{$Z(a)&&(n.transition(a),t.transition(a));let i=e.mapping(),o=e.series(),s=e.xScale(),c=e.yScale();a.each((f,A,p)=>{let v=n(ws(p[A]),o);v.each((y,b,C)=>{y.xScale(s).yScale(c);let x=i(f,b,o);t(ws(C[b]),[x]).call(y)}),v.selection().order(),e.decorate()(v,f,A)})};return GD(r,e),OZ(r,n,"key"),r},Iwt=()=>{let e=null,t=1,n=zZ(),r=a=>{let i=n.mapping(),o=n.series(),s=n.xScale(),c=n.yScale();o.forEach((f,A)=>{let p=i(a,A,o);f.context(e).pixelRatio(t).xScale(s).yScale(c);let v;f.decorate?(v=f.decorate(),f.decorate((y,b,C)=>{n.decorate()(y,a,A),v(y,b,C)})):n.decorate()(e,a,A),f(p),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,GD(r,n),r};function UZ(e){return e/2.35*(e/2.35)*64}function jD(e,t){return e+(1-e)*(1-t)}function YD(e,t){return[jD(e.r/255,t),jD(e.g/255,t),jD(e.b/255,t),1]}function Rwt(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function WD(e={},t,n){return function(r){var a,i;if(Rwt(n)){let o=n.value,s=r[o];return(i=((a=e[o])==null?void 0:a[String(s)])??bD)==null?void 0:i[t]}if(rh(n)&&t==="dotFill"){let{domain:o,range:s,type:c="linear"}=n,f=T4(s,o,c),A=r[n.columnName.value];return A===null?Ov.color:f(Number(A))}if(rh(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=iv().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}return n}}function GZ(e,t){let n=t.find(a=>a.type==="dots"),r=t.find(a=>a.type==="curve");return{dotFill:WD(e,"dotFill",(n==null?void 0:n.aes.dotFill)??Ov.color),dotSize:WD(e,"dotSize",(n==null?void 0:n.aes.dotSize)??Ov.size),lineType:WD(e,"lineShape",(r==null?void 0:r.aes.lineShape)??"solid")}}var Nwt=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:()=>$t,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&&Lb(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=Gh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateViewport(e,t,n){let r=e.scale==="log"?Gm():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 y=e.symmetricRange;if(y>=a&&y<=o){let b=Math.max(y-a,o-y);a=y-b,o=y+b}}if(typeof t.symmetricRange<"u"){let y=t.symmetricRange;if(y>=i&&y<=s){let b=Math.max(y-i,s-y);i=y-b,s=y+b}}let c=[0,this.chartSizes.chartWidth],f=r.copy().domain([a,o]).range([pE.LEFT,this.chartSizes.chartWidth-pE.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"?Gm():Zr(),p=[this.chartSizes.chartHeight,0],v=A.copy().domain([i,s]).range([this.chartSizes.chartHeight-pE.BOTTOM,pE.TOP]);A.domain([v.invert(this.chartSizes.chartHeight),v.invert(0)]).range(p).nice(),this.scales.y=A,this.scales.yOriginal=A.copy()}updateCaptionsSize(e){let t=new Ac("600 14px Arial");function n(o){return Math.max(...o.map(s=>t.getTextWidth(s)))}let{ticks:r,format:a}=k4(this.scales.y,e),i=n(r.map(a));this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:i}}createMainTitle(e){this.mainTitle=Gv(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+_4,left:Gc+this.captionsSizes.yAxisCaptionsWidth+_4,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,ws(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 p=t[A.value];if(p.usedAes.length===0||!p.aesMap)return;let v={};p.values.forEach(C=>{v[C]||(v[C]={...Ov}),p.usedAes.forEach(x=>{var k,_;x==="dotFill"&&(v[C].color=((k=p.aesMap[C])==null?void 0:k[x])??$t),x==="dotSize"&&(v[C].size=((_=p.aesMap[C])==null?void 0:_[x])??3)})});let y=A.label??A.value,b=zo().domain(p.values).range(p.values.map(C=>v[C]));a.push({...i,id:A.value,type:"dots",title:y,scale:b,values:p.values,labels:p.labels})}),r.forEach(A=>{if(A.type==="dots"&&rh(A.aes.dotFill)){let{domain:p,range:v,columnName:y,type:b="linear"}=A.aes.dotFill,C=y.label??y.value,x=T4(v,p,"linear"),k=(b==="log"?av():Zr()).domain(p).range([this.chartSizes.chartHeight,0]),_=f2(k,p);a.push({...i,id:"dotFill",type:"continuous",title:C,scale:x,tickPositionScale:k,values:_})}if(A.type==="dots"&&rh(A.aes.dotSize)){let{columnName:p,domain:v,range:y}=A.aes.dotSize,b=p.label??p.value,C=iv(v,y),x=C.ticks(3),k=C.tickFormat(3),_=x.reduce((P,N)=>(P[String(N)]=k(N),P),{});a.push({...i,id:p.value,type:"size",title:b,scale:C,values:x,labels:_})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=w2(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:p,legend:v}=t;this.updateChartSizes(A),this.updateViewport(c,f,n),this.updateCaptionsSize(r.y),this.updateLegendSize(v,o,s,i),this.createMainTitle(p),this.updateMargins(),this.aesGetters=GZ(a,i);let y=bht().data(e).value(P=>{let N=z3(this.aesGetters.dotFill(P.data)),I=!P.dimmed&&(this.polygon.length<2||Lb(this.polygon,[P.x,P.y]))?1:.4;return YD(N,I)}),b=Mwt().equals((P,N)=>P===N).size(P=>UZ(this.aesGetters.dotSize(P.data))).crossValue(P=>P.x).mainValue(P=>P.y).decorate(P=>y(P)),C=S0t().scaleExtent([.1,1e3]).filter(()=>!this.lassoMode).on("start",()=>{this.selectedDot=null}).on("zoom",P=>{let N=P.transform,I=N.rescaleX(this.scales.xOriginal),F=N.rescaleY(this.scales.yOriginal);this.scales.x.domain(I.domain()),this.scales.y.domain(F.domain()),this.zoomStateKey=`${N.x}_${N.y}_${N.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=dE(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.renderSvgLayer()}),x=U_().x(P=>P.x).y(P=>P.y).addAll(e),k=Eht().on("point",([P])=>{var Z,ee;if(!P){this.selectedDot=null,this.renderSvgLayer();return}let N=this.scales.x.invert(P.x),I=this.scales.y.invert(P.y),F=(Z=this.tools)==null?void 0:Z.qt.find(N,I),Q=this.selectedDot&&!F||!this.selectedDot&&F||((ee=this.selectedDot)==null?void 0:ee.id)!==(F==null?void 0:F.id);this.selectedDot=F??null,Q&&this.renderSvgLayer()}),_=q0t({xScale:this.scales.x,yScale:this.scales.y}).xAxisHeight(()=>"0").yAxisWidth(()=>"0").svgPlotArea(Hwt()).webglPlotArea(Iwt().series([b]).mapping(P=>P)).decorate(P=>{let N=P.enter();N&&!this.svgLayerElement&&(N.style("grid-template-columns","0 auto 1fr auto 0"),N.style("grid-template-rows","0 auto 1fr auto 0"),this.svgLayerElement=N.select(".svg-plot-area.plot-area svg").node()),N.select(".svg-plot-area.plot-area").call(C).call(k)});this.tools={webglChart:_,zoom:C,qt:x,fillColor:y,pointSeries:b},ws(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=GZ(e,t),this.tools.fillColor.value(n=>{let r=this.aesGetters.dotFill??(()=>$t),a=z3(r(n.data)),i=!n.dimmed&&(this.polygon.length<2||Lb(this.polygon,[n.x,n.y]))?1:.4;return YD(a,i)}))}updatePointSize(){this.tools!==null&&(ws(this.canvasNode).datum([...this.allDots]),this.tools.pointSeries.size(e=>UZ(this.aesGetters.dotSize(e.data))))}updateByLasso(){var e;this.tools!==null&&((e=this.tools)==null||e.fillColor.value(t=>{let n=this.aesGetters.dotFill??(()=>$t),r=z3(n(t.data)),a=!t.dimmed&&(this.polygon.length<2||Lb(this.polygon,[t.x,t.y]))?1:.4;return YD(r,a)}),this.renderWebglLayer())}updateData(e){this.tools!==null&&(ws(this.canvasNode).datum(e),this.tools.fillColor.data(e),this.tools.qt=U_().x(t=>t.x).y(t=>t.y).addAll(e))}render(e,t,n,r,a,i,o,s,c,f,A,p,v,y,b){if(this.lassoMode=y,this.tools===null)this.initSettings(a,t,i,r,s,c,f,A),this.onPolygonUpdateOutside=v,this.onTooltipHintSwitch=b;else{let{title:C,legend:x}=t;this.updateLegendSize(x,f,A,c),this.createMainTitle(C),this.updateMargins(),this.updateAes(s,c)}this.allDots=a,this.allPossibleLabels=p,this.allPossibleLabels.forEach(C=>{C.x=this.scales.x(C.dot.x),C.y=this.scales.y(C.dot.y)}),this.visibleLabels=dE(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&&ws(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)}),H4t(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(Swt,{...e}),(t=this.reactRoot)==null||t.render(this.svgLayerComponent)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Uv,{message:e}))}},Lwt=Nwt,XD=H.object({type:H.literal("grouping"),value:H.string()}),$wt=H.object({type:H.literal("dots"),aes:H.optional(H.object({dotFill:H.optional(H.union([H.string(),XD,Jp(H.string())])),dotShape:H.optional(H.union([Td,XD])),dotSize:H.optional(H.union([H.number(),Jp(H.number())]))}))}),Fwt=H.object({type:H.literal("curve"),smoothing:H.optional(H.boolean()),aes:H.optional(H.object({lineWidth:H.optional(H.number()),lineShape:H.optional(XA),lineColor:H.optional(H.union([H.string(),XD,Jp(H.string())])),opacity:H.optional(H.number())}))}),Vwt=H.union([$wt,Fwt]),Owt=H.object({type:H.literal("scatterplot-umap"),title:H.object({name:H.string(),show:H.optional(H.boolean()),position:H.optional(zv)}),size:H.optional(H.object({width:H.optional(H.number()),height:H.optional(H.number())})),legend:H.optional(H.object({show:H.optional(H.boolean()),position:H.optional(Lg)})),tooltips:H.optional(H.object({show:H.optional(H.boolean()),content:H.optional(H.array(Yn))})),frame:H.optional(H.object({type:H.optional(g4)})),keyColumn:Yn,x:Yn,y:Yn,xAxis:H.optional(c2),yAxis:H.optional(c2),grouping:H.optional(H.array(Yn)),label:H.optional(Yn),highlight:H.optional(Yn),inheritedAes:H.optional(H.record(H.string(),u2)),layers:H.array(Vwt),lassoMode:H.optional(H.boolean())}),Qwt=class{constructor(e){Be(this,"type","dots");Be(this,"aes",{dotFill:$t,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},zwt=class{constructor(e){Be(this,"type","curve");Be(this,"smoothing");Be(this,"aes",{lineColor:$t,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},jZ=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 Qwt(i);if(i.type==="curve")return new zwt(i);throw new Error("Unknown layer type")}).filter(Boolean),this.lassoMode=e.lassoMode??!1}};function YZ(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,p=>p[i.value]),s=p=>String(p[i.value]),c=p=>i.valueLabels?String(p[i.valueLabels]):s(p),f=new Set;n.forEach(p=>{p.aes&&Object.entries(p.aes).forEach(([v,y])=>{YZ(y)&&y.value===i.value&&f.add(v)})});let A=o.reduce((p,v)=>(p[s(v)]=c(v),p),{});return a[i.value]={values:o.map(s).sort((p,v)=>A[p].localeCompare(A[v],"en",{numeric:!0})),usedAes:[...f],aesMap:r[i.value],labels:A},a},{})}var Gwt=10;function jwt(e){let t=[],n=new Ac("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:Gwt})}return t}var Ywt=class extends Ng{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new Lwt);Be(this,"onPolygonUpdate",()=>cC);Be(this,"onTooltipHintSwitch",()=>cC);Be(this,"calculatedData",null);this.settings=new jZ(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 jZ(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},p=s.some(k=>k.type==="curve"),v=new Set,y={},b=this.data.rows.reduce((k,_)=>{if(_[t.value]===null||_[n.value]===null)return k;let P=Number(_[t.value]),N=Number(_[n.value]);f.x&&P!==null&&P<0&&(f.x=!1),f.y&&N!==null&&N<0&&(f.y=!1),P!==null&&P<A.minX&&(A.minX=P),P!==null&&P>A.maxX&&(A.maxX=P),N!==null&&N<A.minY&&(A.minY=N),N!==null&&N>A.maxY&&(A.maxY=N);let I={x:P,y:N,id:String(_[r.value]),dimmed:i?!_[i.value]:!1,label:a&&_[a.value]?String(_[a.value]):null,data:_};if(p){let F=o.map(Q=>_[Q.value]).join("_");v.add(F),y[F]||(y[F]=[]),y[F].push(I)}return k.push(I),k},[]);b.sort((k,_)=>Number(_.dimmed)-Number(k.dimmed));let C=[...v];p&&C.forEach(k=>{y[k].sort((_,P)=>_.x-P.x)});let x=Uwt(this.data,o,s,c);this.calculatedData={onlyPositive:f,dots:b,dotsByGrouping:y,groupingKeys:C,allPossibleLabels:jwt(b),dotsExtents:A,legendLabels:x},this.chartRenderer.updateData(b)}_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])=>{YZ(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)}},Wwt=1e6;function Xwt(e){let t=ER(e),n=Ls(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function Kwt(e){let t=Ls(e),[n,r]=_p(e);return t===void 0||n===void 0||r===void 0?a=>a:a=>(a-t)/(r-n)}function Zwt(e,t){return e==="standardScaling"?Xwt(t):e==="meanNormalization"?Kwt(t):n=>n}function Jwt(e,t,n,r,a,i,o,s,c){let f=o.map(C=>C.join("_")),A={meta:{facetKeys:f,xKeys:[],yKeys:[],xLabels:{},yLabels:{},facetKeyValues:f.reduce((C,x,k)=>(C[x]=o[k],C),{}),valueExtentSize:[1/0,-1/0],valueExtentColor:[1/0,-1/0]},facets:{}},p=new Set,v=new Set,y=t.valueLabels??t.value,b=n.valueLabels??n.value;if(e.rows.forEach(C=>{let x=i.length?i.map(I=>C[I.value]).join("_"):"null",k=C[t.value],_=C[n.value],P=C[r.value]??c,N=C[a.value]??c;if(!(k===null||_===null||P===null||N===null)){if(A.facets[x]||(A.facets[x]={xKeys:[],yKeys:[],cells:{}}),A.facets[x].xKeys.push(k),A.facets[x].yKeys.push(_),p.has(k)||(p.add(k),A.meta.xKeys.push(k)),v.has(_)||(v.add(_),A.meta.yKeys.push(_)),A.facets[x].cells[k]||(A.facets[x].cells[k]={}),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(N,A.meta.valueExtentColor[0]),A.meta.valueExtentColor[1]=Math.max(N,A.meta.valueExtentColor[1]),A.facets[x].cells[k][_])throw Error(`More than 1 value for x=${k}, y=${_}`);if(A.meta.xLabels[k]&&String(C[y])!==A.meta.xLabels[k])throw Error(`More than 1 x-label value for x=${k}`);if(A.meta.yLabels[_]&&String(C[b])!==A.meta.yLabels[_])throw Error(`More than 1 y-label value for y=${_}`);A.meta.xLabels[k]=String(C[y]),A.meta.yLabels[_]=String(C[b]),A.meta&&(A.facets[x].cells[k][_]={id:`${k}_${_}`,x:k,y:_,sizeValue:P,normalizedSizeValue:P,colorValue:N,normalizedColorValue:N,data:C})}}),A.meta.facetKeys=A.meta.facetKeys.filter(C=>A.facets[C]),A.meta.facetKeys.forEach(C=>{let x=A.facets[C];if(x.xKeys=Zn.uniq(x.xKeys),x.yKeys=Zn.uniq(x.yKeys),x.xKeys.length*x.yKeys.length>Wwt)throw Error(`Too many cells for graph rendering (${x.xKeys.length*x.yKeys.length})`)}),s){let C=[1/0,-1/0];A.meta.facetKeys.forEach(x=>{if(!A.facets[x])return;let{xKeys:k,yKeys:_,cells:P}=A.facets[x],N=s.direction==="row"?k:_,I=s.direction==="row"?_:k,F=s.direction==="row"?(Q,Z)=>{var ee;return(ee=P[Q])==null?void 0:ee[Z]}:(Q,Z)=>{var ee;return(ee=P[Z])==null?void 0:ee[Q]};I.forEach(Q=>{let Z=[];N.forEach(le=>{var U;let z=(U=F(le,Q))==null?void 0:U.colorValue;z!==void 0&&Z.push(z)});let ee=Zwt(s.method,Z);N.forEach(le=>{let z=F(le,Q);z!==void 0&&(z.normalizedColorValue=ee(z.colorValue),C[0]=Math.min(z.normalizedColorValue,C[0]),C[1]=Math.max(z.normalizedColorValue,C[1]))})})}),A.meta.valueExtentColor=C}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 qwt=15,Og=8,hE=30,eCt=48,tCt=24,vE=16,_2=4,mE=4,WZ=20,nCt=16,f1={left:["axis","axisTitle"],right:["axis","axisTitle"],top:["axis","axisTitle","facetTitle"],bottom:["axis","axisTitle"]};function rCt(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?mE:0,p=t.showTicks?mE:0,v=c&&e.showTitle?hE:0,y=s&&t.showTitle?hE:0,b=c&&e.showAxisLabels&&i>vE?n.xAxisCaptions+A+_2:0,C=s&&t.showAxisLabels&&o>vE?n.yAxisCaptions+p+_2:0;return{left:{axisTitle:t.position==="left"?y:0,axis:t.position==="left"?C:0},right:{axisTitle:t.position==="right"?y:0,axis:t.position==="right"?C:0},top:{facetTitle:f?eCt:0,axisTitle:e.position==="top"?v:0,axis:e.position==="top"?b:0},bottom:{axisTitle:e.position==="bottom"?v:0,axis:e.position==="bottom"?b:0}}}function aCt(e,t,n){return{left:f1.left.reduce((r,a,i)=>{let o=i>0?f1.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:f1.right.reduce((r,a,i)=>{let o=i>0?f1.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:f1.top.reduce((r,a,i)=>{let o=i>0?f1.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:f1.bottom.reduce((r,a,i)=>{let o=i>0?f1.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 iCt(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,y=t.x,b=y>vE,C=a[v[0]];c=Math.max(c,(A&&b?r.getTextWidth(C)*Math.cos(o):0)-y/2)}let p=e.yAxisLabels===45;if(p){let v=n.meta.yKeys;if(v.length){let y=t.y,b=y>vE,C=i[v[v.length-1]];f=Math.max(f,(p&&b?r.getTextWidth(C)*Math.cos(s):0)-y/2)}}return{xCaptionTail:c,yCaptionTail:f}}function oCt({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:f,xLabels:A,yLabels:p}){let v=i.showTicks?mE:0,y=o.showTicks?mE:0,b=e.top.axis.isVisible||e.bottom.axis.isVisible,C=e.top.axisTitle.isVisible?e.top.axisTitle:e.bottom.axisTitle,x=e.top.axis.isVisible?e.top.axis:e.bottom.axis,k=e.left.axis.isVisible||e.right.axis.isVisible,_=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,P=e.left.axis.isVisible?e.left.axis:e.right.axis;return ie.jsxs("g",{children:[ie.jsxs("g",{children:[C.isVisible&&ie.jsxs("g",{transform:`translate(${C.x},${C.y})`,children:[ie.jsx("text",{x:C.width/2,y:C.height/2,textAnchor:"middle",dominantBaseline:"central",children:i.title}),t&&ie.jsx("rect",{width:C.width,height:C.height,stroke:$t,fill:"none"})]}),b&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${x.x},${x.y})`,children:[n.map(N=>{let I=f.xAxisLabels!==0,F=i.position==="bottom",Q=F?0:x.height,Z=F?Q+v:Q-v,ee=F?Z+_2:Z-_2,le=a.x(N)+s/2,z=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:le,y1:Q,y2:Z,stroke:$t}),ie.jsx("text",{x:le,y:ee,textAnchor:I?F?"end":"start":"middle",transform:`rotate(${z},${le},${ee})`,dominantBaseline:I?"central":F?"hanging":"auto",children:A[N]})]},N)}),t&&ie.jsx("rect",{width:x.width,height:x.height,stroke:$t,fill:"none"})]})]}),ie.jsxs("g",{children:[_.isVisible&&ie.jsx("g",{transform:`translate(
15127
+ ${_.y+_.height/2})`,children:ie.jsx("text",{transform:`rotate(${o.position==="left"?-90:90})`,dominantBaseline:"central",textAnchor:"middle",children:o.title})}),t&&ie.jsx("rect",{x:_.x,y:_.y,width:_.width,height:_.height,stroke:$t,fill:"none"}),k&&ie.jsx("g",{fontSize:"14px",transform:`translate(${P.x},${P.y})`,children:r.map(N=>{let I=f.yAxisLabels!==0,F=o.position==="left",Q=-(90-f.yAxisLabels),Z=f.yAxisLabels===0?"middle":F?"end":"start",ee=I?"central":F?"auto":"hanging",le=F?P.width:0,z=F?le-y:le+y,U=F?z-S2:z+S2,G=a.y(N)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:z,y1:G,y2:G,stroke:$t}),ie.jsx("text",{x:U,y:G,textAnchor:Z,transform:`rotate(${Q},${U},${G})`,dominantBaseline:ee,children:p[N]})]},N)})}),t&&ie.jsx("rect",{x:P.x,y:P.y,height:P.height,width:P.width,stroke:$t,fill:"none"})]})]})}function Q9t({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:p,yKeysByGroups:v,labelAngles:y,xLabels:b,yLabels:C,xGroupLabels:x,yGroupLabels:k}){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:y,xLabels:b,yLabels:C,debug:t}),ie.jsx(V9t,{sideElementBBoxes:e,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:p,yKeysByGroups:v,xGroupLabels:x,yGroupLabels:k,scales:a,stepX:s,stepY:c,xAxis:i,yAxis:o,labelAngles:y,debug:t})]})}function aZ(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 iZ(e,t,n,r,a){if(!n)return"";let i=n.aes[e];if(!y4(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 oZ={x:0,y:0,width:0,height:0};function z9t({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:oZ,c=o?t[o.position].dendro:oZ;function f(p,v){return iZ(p,v,i,n,a)}function A(p,v){return iZ(p,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((p,v)=>{let y=p.links(),b=p.descendants();return ie.jsxs("g",{children:[y.map(C=>{let x=i.edgeInheritance==="up"?C.source:C.target;return ie.jsx("path",{d:aZ(C,i.position),stroke:f("lineColor",x),strokeWidth:f("lineWidth",x),strokeDasharray:Vf(f("lineShape",x)),fill:"none"},`${C.source.x},${C.source.y},${C.target.x},${C.target.y}`)}),i.showNodes&&b.map(C=>ie.jsx("g",{transform:`translate(${C.x},${C.y})`,children:jc(f("dotShape",C),f("dotSize",C),f("dotFill",C))},`${C.x},${C.y}`))]},v)})}),ie.jsx("g",{transform:`translate(${c.x},${c.y})`,children:o&&!o.hidden&&e.y.trees.map((p,v)=>{let y=p.links(),b=p.descendants();return ie.jsxs("g",{children:[y.map(C=>{let x=o.edgeInheritance==="up"?C.source:C.target;return ie.jsx("path",{d:aZ(C,o.position),stroke:A("lineColor",x),strokeWidth:A("lineWidth",x),strokeDasharray:Vf(A("lineShape",x)),fill:"none"},`${C.source.x},${C.source.y},${C.target.x},${C.target.y}`)}),o.showNodes&&b.map(C=>ie.jsx("g",{transform:`translate(${C.x},${C.y})`,children:jc(A("dotShape",C),A("dotSize",C),A("dotFill",C))},`${C.x},${C.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:$t,x:"0",y:"0",width:t,height:n}),e.type==="groups"&&r.map(A=>{let p=i[A].length;if(p===0)return null;let v=p*c,y=s.x(i[A][0]);return a.map(b=>{let C=o[b].length;if(C===0)return null;let x=C*f,k=s.y(o[b][0]);return ie.jsx("rect",{x:y,y:k,width:v,height:x,stroke:$t,fill:"none"},`${y}_${k}`)})})]})}function OD(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 G9t(e,t,n=[]){let r=e.data,a=[`X: ${t.xLabels[e.x]}`,`Y: ${t.yLabels[e.y]}`,`Value: ${OD(e.value)}${e.value!==e.normalizedValue?` (${OD(e.normalizedValue)})`:""}`];for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function j9t(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}: ${OD(e.value)}`),n}function Y9t(e){return e!==null&&!("data"in e)}function lZ(e){return e!==null&&"data"in e}function W9t({dendrograms:e,facetKey:t,dimensions:n,scales:r,cells:a,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,colorScale:f,chartSettings:A,cellsMeta:p,stepX:v,stepY:y,sharedX:b,sharedY:C,annotations:x,annotationColorScales:k,dendrogramAesScales:_,aes:P,labelAngles:N,chartSizes:I,margins:F,tooltipsContainer:Q,tooltipsData:Z}){let[ee,le]=tn.useState(),{xAxis:z,yAxis:U,tooltips:G}=A,{width:Y,height:X}=n.inner,{padding:te,chartEdgeSides:he,sideElementBBoxes:ae}=n,{xGroupLabels:ge,yGroupLabels:me,xLabels:fe,yLabels:be}=p,He=r.x.domain(),_e=r.y.domain(),Ie={left:F.left+n.left+te.left,right:I.totalWidth-(F.left+n.left+te.left),top:F.top+n.top+te.top,bottom:I.totalHeight-(F.top+n.top+te.top)},Ue=!1,Oe=ee&&Z.fixed;return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:D9t,children:[ie.jsxs("g",{transform:`translate(${te.left},${te.top})`,children:[ie.jsx(F9t,{facetKey:t,sideElementBBoxes:ae,annotations:x,cellsMeta:p,annotationColorScales:k,sharedX:b,sharedY:C,chartEdgeSides:he,width:Y,height:X,scales:r,stepX:v,stepY:y,aes:P,frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,tooltipsData:Z,activeElementContainer:ee}),ie.jsx(z9t,{dendrograms:e,sideElementBBoxes:ae,xDataByKeys:p.xDataByKeys,yDataByKeys:p.yDataByKeys,aesScales:_}),ae.top.facetTitle.isVisible&&ie.jsx("text",{x:ae.top.facetTitle.x,y:ae.top.facetTitle.y+ae.top.facetTitle.height-_9t,fontWeight:"500",fontSize:"20px",children:p.facetKeyValues[t].join(", ")}),Ue,He.map(ft=>_e.map(Ve=>{var gt;let Xe=(gt=a==null?void 0:a[ft])==null?void 0:gt[Ve],tt=Oe&&lZ(Z.selectedData)&&(Xe==null?void 0:Xe.id)===Z.selectedData.id,qe=Xe?ie.jsx("rect",{x:r.x(ft),y:r.y(Ve),width:v,height:y,stroke:P.cellStrokeColor,fill:Xe.value===null?P.emptyCellColor:f(Xe.normalizedValue),onMouseOver:()=>Z.onMouseOver(Xe,t),onMouseLeave:()=>Z.onMouseLeave()},Xe?Xe.id:`${ft}_${Ve}`):null;return tt?uu.createPortal(qe,ee):qe})),ie.jsx(U9t,{frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,scales:r,stepX:v,stepY:y,width:Y,height:X}),ie.jsx(Q9t,{xAxis:z,yAxis:U,scales:r,stepX:v,stepY:y,debug:Ue,sideElementBBoxes:ae,xKeys:He,yKeys:_e,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,xGroupLabels:ge,yGroupLabels:me,labelAngles:N,xLabels:fe,yLabels:be})]}),A.tooltips.show&&lZ(Z.selectedData)&&Z.currentFacet===t&&ie.jsx(cu,{content:G9t(Z.selectedData,p,G==null?void 0:G.content),x:r.x(String(Z.selectedData.x))+v/2,y:r.y(String(Z.selectedData.y))+y/2,offset:He.length>1?v/2:0,active:!0,sideDistances:Ie,fixed:Z.fixed,onClose:Z.onClose,container:Q}),A.tooltips.show&&Y9t(Z.selectedData)&&Z.currentFacet===t&&ie.jsx(cu,{content:j9t(Z.selectedData,p),x:Z.selectedData.x,y:Z.selectedData.y,offset:0,active:!0,sideDistances:Ie,fixed:Z.fixed,onClose:Z.onClose,container:Q}),ie.jsxs("g",{transform:`translate(${te.left},${te.top})`,children:[Z.fixed&&ie.jsx("rect",{width:I.chartWidth,height:I.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:ft=>{ft&&!ee&&le(ft)}})]})]})}function X9t({margins:e,captionsSizes:t,settingsId:n,chartSettings:r,chartSizes:a,chartsDimensions:i,facetKeys:o,facetSettings:s,xGroupKeys:c,yGroupKeys:f,scales:A,colorScale:p,groupedCells:v,cellsMeta:y,step:b,annotations:C,annotationColorScales:x,legend:k,aes:_,dendrograms:P,dendrogramAesScales:N,columnsCount:I,labelAngles:F,onTooltipHintSwitch:Q}){let[Z,ee]=tn.useState(),le=d2(Q),z=tn.useRef(null);tn.useEffect(()=>{z.current&&ee(z.current)},[]);let U=i[o[0]].padding,G=i[o[I-1]].padding,Y=e.left+a.chartsWidth+FD,X=e.top+U.top;return ie.jsx(v2,{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:Fg}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(m2,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:U.left,rightPadding:G.right,chartsWidth:a.chartsWidth}),o.map(te=>{let{cells:he,xKeysByGroups:ae,yKeysByGroups:ge}=v[te];return ie.jsx(W9t,{dendrograms:P[te],captionsSizes:t,facetKey:te,dimensions:i[te],xGroupKeys:c,yGroupKeys:f,xKeysByGroups:s.sharedX?y.xKeysByGroups:ae,yKeysByGroups:s.sharedY?y.yKeysByGroups:ge,sharedX:s.sharedX,sharedY:s.sharedY,scales:{x:A.x[te],y:A.y[te]},cells:he,cellsMeta:y,stepX:b.x[te],stepY:b.y[te],colorScale:p,chartSettings:r,aes:_,annotations:C,annotationColorScales:x,dendrogramAesScales:N,labelAngles:F,margins:e,chartSizes:a,tooltipsContainer:Z,tooltipsData:le},te)})]}),ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(g2,{legendData:k})}),ie.jsx("g",{ref:z,style:{outline:"none"}})]})})}function sZ(e,t,n){function r(a){a[n]=t(a.data.height),a.children&&a.children.forEach(r)}r(e)}function uZ(e,t,n,r=n){function a(i){i[r]=i[n]+t,i.children&&i.children.forEach(a)}a(e)}var K9t=(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 cZ(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])),K9t(t,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,"chartsDimensions",{});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,chartsWidth:600,chartsHeight:350,totalWidth:600,totalHeight:350});Be(this,"margins",{top:jv,bottom:jv,left:jv,right:jv});Be(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xGroupCaptions:Yv,yGroupCaptions:Yv,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:zo().domain(["null"]).range([1])},y:{null:zo().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=Gh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:jv,bottom:jv,left:jv,right:this.legend.width+jv},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((y,b)=>(y[b]=String(b),y),{});if(e==="continuous"){let v=this.colorScale,y=f2(v,a),b=Zr([y[0],y[y.length-1]],[i,0]),C=r.label??r.value;o.push({...s,type:"continuous",id:"heatmapValue",scale:v,values:y,title:C,tickPositionScale:b})}else if(e==="discrete"){let v=this.colorScale,y=r.label??r.value,b=v.domain(),C=c(b);o.push({...s,type:"discreteColor",id:"heatmapValue",title:y,scale:v,values:b,labels:C})}if(n.forEach(v=>{let y=v.valueColumn.label??v.valueColumn.value;if(v.type==="continuous"){let b=this.annotationColorScales[v.id].scale,C=f2(b,a),x=Zr([C[0],C[C.length-1]],[i,0]);o.push({...s,type:"continuous",id:v.id,tickPositionScale:x,title:y,scale:b,values:C})}if(v.type==="discrete"){let b=this.annotationColorScales[v.id].scale,C=b.domain(),x=c(C);o.push({...s,type:"discreteColor",id:v.id,title:y,scale:b,values:C,labels:x})}}),!o.length){this.legend={width:0,height:0,items:[]};return}let f=w2(o,this.chartSizes.chartHeight),A=f[f.length-1],p=A.left+A.width+FD;this.legend={width:p,height:i,items:f}}updateCaptionsSize(e,t,n,r){let a=new Ac("bold 14px Arial"),{xGroupKeys:i,yGroupKeys:o,xGroupLabels:s,yGroupLabels:c,xKeysByGroups:f,yKeysByGroups:A,xLabels:p,yLabels:v}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle,xGroupLabels:t.groupLabelsAngle,yGroupLabels:n.groupLabelsAngle};function y(le,z){let U=0;for(let G of le){let Y=a.getTextWidth(z[G]);Y>U&&(U=Y)}return U}let b=Zn.flatten(Object.values(f)),C=Zn.flatten(Object.values(A)),x=y(b,p),k=y(C,v),_=y(i,s),P=y(o,c),{xCaptionTail:N,yCaptionTail:I}=N9t(this.labelAngles,r,this.step,e,a),F=this.labelAngles.xGroupLabels/180*Math.PI,Q=this.labelAngles.yGroupLabels/180*Math.PI,Z=this.labelAngles.xAxisLabels/180*Math.PI,ee=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:N,yCaptionTail:I,xGroupCaptions:_*Math.sin(F)||Yv,yGroupCaptions:P*Math.sin(Q)||Yv,xAxisCaptions:x*Math.sin(Z)||Yv,yAxisCaptions:k*Math.sin(ee)||Yv}}updateChartDimensions(e,t,n,r,a,i,o,s,c,f){let A=t.length,p=Math.min(a.nRows??A,A),v=Math.min(a.nCols??A,A);this.columnsCount=a.nRows?Math.ceil(A/p):v,this.rowsCount=Math.ceil(A/this.columnsCount);let{width:y,height:b}=e,{sharedX:C,sharedY:x}=a;this.chartsDimensions={};let k=0,_=0;t.forEach((I,F)=>{let Q=F%this.columnsCount+1,Z=rZ(F,t.length,this.columnsCount,this.rowsCount),ee=this.step.x[I],le=this.step.y[I],z=P9t(i,o,this.captionsSizes,s,c,f,Z,C,x,t,n,r,ee,le),U=R9t(s,Z,C,x);function G(ae){return Math.max(c1[ae].reduce((ge,me)=>ge+z[ae][me],0),U[ae],k9t)}let Y={left:G("left"),right:G("right"),top:G("top"),bottom:G("bottom")};Y.left<this.captionsSizes.xCaptionTail&&(Y.left=this.captionsSizes.xCaptionTail),Y.bottom<this.captionsSizes.yCaptionTail&&(Y.bottom=this.captionsSizes.yCaptionTail);let X=M9t(z,y,b),te=y+Y.left+Y.right,he=b+Y.top+Y.bottom;this.chartsDimensions[I]={left:k,top:_,inner:{width:y,height:b},outer:{width:te,height:he},padding:Y,sideElementBBoxes:X,chartEdgeSides:Z},k+=te,Q===this.columnsCount&&(k=0,_+=he)});let P=t.slice(0,this.columnsCount).reduce((I,F)=>I+this.chartsDimensions[F].outer.width,0),N=t.filter((I,F)=>F%this.columnsCount===0).reduce((I,F)=>I+this.chartsDimensions[F].outer.height,0);this.chartSizes.chartsWidth=P,this.chartSizes.chartsHeight=N}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:p,facets:v}=t,{sharedX:y,sharedY:b}=r,C=(k,_={})=>k.sort((P,N)=>i.sorting==="asc"?(_[P]??P).localeCompare(_[N]??N,"en",{numeric:!0}):(_[N]??N).localeCompare(_[P]??P,"en",{numeric:!0})),x=(k,_={})=>k.sort((P,N)=>o.sorting==="asc"?(_[P]??P).localeCompare(_[N]??N,"en",{numeric:!0}):(_[N]??N).localeCompare(_[P]??P,"en",{numeric:!0}));e.forEach(k=>{let _=v[k],P=C(p.xGroupKeys),N=x(p.yGroupKeys),{xKeysByGroups:I}=y?p:_,{yKeysByGroups:F}=b?p:_,Q=P.map(ge=>I[ge].length),Z=N.map(ge=>F[ge].length),ee=Q.reduce((ge,me)=>ge+me,0),le=Z.reduce((ge,me)=>ge+me,0),z=(f-(Q.filter(ge=>ge>0).length-1)*n)/ee,U=(A-(Z.filter(ge=>ge>0).length-1)*n)/le,G=[],Y=[],X=0;P.forEach(ge=>{let me=s?I[ge]:C(I[ge],p.xLabels);Y.push(...me),me.forEach(()=>{G.push(X),X+=z}),me.length>0&&(X+=n)});let te=[],he=[],ae=0;N.forEach(ge=>{let me=c?F[ge]:x(F[ge],p.yLabels);he.push(...me),me.forEach(()=>{te.push(ae),ae+=U}),me.length>0&&(ae+=n)}),this.scales.x[k]=zo().domain(Y).range(G),this.scales.y[k]=zo().domain(he).range(te),this.step.x[k]=z,this.step.y[k]=U})}updateAesScale(e,t,n,r,a,i,o){if(e==="continuous")n.valueColors?this.colorScale=Zr().domain(n.valuesByColors??cZ(o,n.valueColors.length,t)).range(n.valueColors):n.colorsList&&(this.colorScale=Zr().domain(cZ(o,n.colorsList.length,t)).range(n.colorsList));else if(n.colorsMap){let f=Object.entries(n.colorsMap);this.colorScale=zo().domain(f.map(A=>A[0])).range(f.map(A=>A[1])).unknown("#ccc")}else n.colorsList&&(this.colorScale=nZ(n.colorsList,i.map(String)));let{xDataByKeys:s,yDataByKeys:c}=a.meta;r.forEach(f=>{let{colors:A,type:p,axis:v,valueColumn:y}=f,b=(v==="x"?s:c)[y.value];if(p==="discrete"){let C=Zn.uniq(Object.values(b).map(String)).sort();this.annotationColorScales[f.id]={type:"discrete",scale:nZ(A,C)}}else{let C=Object.values(b).map(Number);if(!C.length)return;let[x=C[0],k=C[0]]=_p(C);this.annotationColorScales[f.id]={type:"continuous",scale:H9t(A,x,k,0,.5,1)}}})}updateDendrogram(e,t,n,r,a,i,o){e.forEach(s=>{this.dendrograms[s]={x:{trees:[],data:i},y:{trees:[],data:o}};let{xKeysByGroups:c,yKeysByGroups:f}=r[s],{hierarchyX:A,hierarchyY:p}=a[s],v=Math.max(...A.map(b=>b.data.height)),y=Math.max(...p.map(b=>b.data.height));i&&(this.dendrograms[s].x.trees=A.map((b,C)=>{let x=t[C],k=c[x];MB().separation(()=>1).size([k.length*this.step.x[s],i.size])(b);let _=b,P=Zr().domain(i.position==="top"?[0,v]:[v,0]).range([i.size,0]);return sZ(_,P,"y"),uZ(_,this.scales.x[s](k[0]),"x"),_}),this.dendrograms[s].x.data=i),o&&(this.dendrograms[s].y.trees=p.map((b,C)=>{let x=n[C],k=f[x];MB().separation(()=>1).size([k.length*this.step.y[s],o.size])(b);let _=b,P=Zr().domain(o.position==="left"?[0,y]:[y,0]).range([o.size,0]);return uZ(_,this.scales.y[s](k[0]),"x","y"),sZ(_,P,"x"),_}),this.dendrograms[s].y.data=o)})}updateDendrogramAesScales(e){if(!e)return;let t=Object.keys(e);this.dendrogramAesScales=t.reduce((n,r)=>{let a=e[r],i=Object.keys(a);return n[r]=zo().domain(i).range(i.map(o=>({...tZ,...a[o]}))).unknown(tZ),n},{})}render(e,t,n,r,a,i,o,s,c,f,A,p,v,y){var le;let{meta:b,facets:C}=a,{facetKeys:x,xGroupKeys:k,yGroupKeys:_,valueExtent:P}=b,{xAxis:N,yAxis:I,title:F,size:Q,valueType:Z}=t;this.updateChartsSizes(Q),this.updateAesScale(Z,P,r,i,a,p,v),this.updateScales(x,a,r.groupGap,n,Q,t.xAxis,t.yAxis,s,c),this.updateCaptionsSize(a,N,I,n),this.updateChartDimensions(Q,x,k,_,n,N,I,i,s,c),this.updateLegendSize(Z,t.legend,i,o,P),this.updateMargins(F),this.updateDendrogram(x,k,_,C,f,s,c),this.updateDendrogramAesScales(A);let ee=ie.jsx(X9t,{aes:r,annotations:i,annotationColorScales:this.annotationColorScales,captionsSizes:this.captionsSizes,cellsMeta:b,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:C,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step,xGroupKeys:k,yGroupKeys:_,onTooltipHintSwitch:y});this.component=ee,(le=this.reactRoot)==null||le.render(ee)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Uv,{message:e}))}},J9t=Z9t,QD={lineColor:$t,dotShape:"21",dotFill:$t,dotSize:3,lineShape:"solid",lineWidth:1},fZ={size:150,distance:"euclidean",linkage:"average",fillNA:0,showNodes:!0,hidden:!1,edgeInheritance:"up",aes:QD},dZ=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,p,v,y;if(S2t.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:((p=e.aes)==null?void 0:p.emptyCellColor)??"white"},this.annotations=(e.annotations??[]).map(b=>b.axis==="x"?{id:Zn.uniqueId("annotation"),axis:"x",valueColumn:b.valueColumn,position:b.position??this.chartSettings.xAxis.position,titlePosition:b.titlePosition??"right",showTitle:b.showTitle??!0,type:b.type,colors:b.colors??["white","black"]}:{id:Zn.uniqueId("annotation"),axis:"y",valueColumn:b.valueColumn,position:b.position??this.chartSettings.yAxis.position,titlePosition:b.titlePosition??"top",showTitle:b.showTitle??!0,type:b.type,colors:b.colors??["white","black"]}),e.valueType==="discrete"&&(e.dendrogramX||e.dendrogramY))throw Error("Dendrogram is not available with discrete cells values");this.dendrogramX=e.dendrogramX?{...fZ,position:"top",...e.dendrogramX,aes:{...QD,...(v=e.dendrogramX)==null?void 0:v.aes}}:null,this.dendrogramY=e.dendrogramY?{...fZ,position:"left",...e.dendrogramY,aes:{...QD,...(y=e.dendrogramY)==null?void 0:y.aes}}:null,this.inheritedDendrogramAes=e.inheritedDendrogramAes??null}},q9t=class extends Ng{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new J9t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new dZ(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 dZ(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(),gy(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var I,F,Q,Z,ee,le,z,U,G,Y,X,te;let{xColumn:r,yColumn:a,valueColumn:i,xGroupBy:o,yGroupBy:s,facetBy:c,annotations:f,chartSettings:A,facetSettings:p,dendrogramX:v,dendrogramY:y,normalization:b,NAValueAs:C}=n,x=Object.values(((I=t.dendrogramX)==null?void 0:I.aes)||{}).filter(y4),k=Object.values((v==null?void 0:v.aes)||{}).filter(y4),_=Object.values(((F=t.dendrogramY)==null?void 0:F.aes)||{}).filter(y4),P=Object.values((y==null?void 0:y.aes)||{}).filter(y4);function N(he,ae){return he.length!==ae.length||he.some((ge,me)=>ge.value!==ae[me].value)}return t.xColumn.value!==r.value||t.yColumn.value!==a.value||t.valueColumn.value!==i.value||N(t.xGroupBy,o)||N(t.yGroupBy,s)||N(t.facetBy,c)||N(t.annotations.map(he=>he.valueColumn),f.map(he=>he.valueColumn))||N(x,k)||N(_,P)||(n.dendrogramX||t.dendrogramX)&&(((Q=t.dendrogramX)==null?void 0:Q.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)&&(((z=t.dendrogramY)==null?void 0:z.distance)!==((U=n.dendrogramY)==null?void 0:U.distance)||((G=t.dendrogramY)==null?void 0:G.linkage)!==((Y=n.dendrogramY)==null?void 0:Y.linkage))||t.chartSettings.valueType!==A.valueType||t.facetSettings.sharedX!==p.sharedX||t.facetSettings.sharedY!==p.sharedY||((X=t.normalization)==null?void 0:X.method)!==(b==null?void 0:b.method)||((te=t.normalization)==null?void 0:te.direction)!==(b==null?void 0:b.direction)||t.NAValueAs!==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{xColumn:t,yColumn:n,valueColumn:r,xGroupBy:a,yGroupBy:i,facetBy:o,chartSettings:s,facetSettings:c,annotations:f,dendrogramX:A,dendrogramY:p,normalization:v,NAValueAs:y}=this.settings,b=C9t(this.data,t,n,r,o,a,i,f,A,p,v,y),C=B9t(b,A,p,c),x=s.valueType==="discrete"?this.data.getColumnCategories(r.value):[];this.calculatedData={groupedCellsData:b,dendrogramsData:C,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)}},AZ=(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 pZ(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 e4t(e,t,n,r,a,i){let o=AZ(n,r),s=kR().domain(r).thresholds(o).value(c=>c[t.value])(e);return{bins:pZ(s,a,i),maxCount:Rh(s,c=>c.length)??0}}function t4t(e,t,n,r,a,i){let o=AZ(n,r),s=av().domain(r).range(r),c=o.map(A=>s.invert(A)),f=kR().domain(r).thresholds(c).value(A=>A[t.value])(e);return{bins:pZ(f,a,i),maxCount:Rh(f,A=>A.length)??0}}function n4t(e,t,n,r,a,i){let o={};return t.forEach(s=>{var C,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,p]=_p(f,k=>k[r.value]);A=A??((C=f[0])==null?void 0:C[r.value])??0,p=p??((x=f[0])==null?void 0:x[r.value])??0;let v=[A,p],y=[...n].reverse();y.forEach((k,_)=>{let P=e.getRowsByGrouping([...s,k]),N=i==="linear"?e4t(P,r,a,v,k,_):t4t(P,r,a,v,k,_);o[c].histogramByGroupingKey[k]=N,o[c].minX=v[0],o[c].maxX=v[1],o[c].maxCountFromGroups=Math.max(o[c].maxCountFromGroups,N.maxCount);let I=_>0?y[_-1]:null,F=I!==null?o[c].histogramByGroupingKey[I]:null;N.bins.forEach((Q,Z)=>{Q.y.straight=((F==null?void 0:F.bins[Z].y.straight)??0)+Q.count,o[c].maxCount=Math.max(o[c].maxCount,Q.y.straight)})});let b=n;b.forEach((k,_)=>{let P=_>0?b[_-1]:null,N=o[c].histogramByGroupingKey[k],I=P!==null?o[c].histogramByGroupingKey[P]:null;N.bins.forEach((F,Q)=>{F.y.reverse=((I==null?void 0:I.bins[Q].y.reverse)??0)+F.count})})}),o}var r4t={TOP:30,BOTTOM:0,LEFT:10,RIGHT:10};function k4(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 hZ=(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 a4t(e,t,n){if(n==="linear")return hZ(e,t);if(n==="log"){let r=hZ(e,t),a=av(t,t),i=r.map(o=>a.invert(o));return i[0]=t[0],i[i.length-1]=t[1],i}return[]}function T4(e,t,n){return(n==="log"?av():Zr()).domain(a4t(e.length,t,n)).range(e)}function i4t(e){return`translate(${e},0)`}function o4t(e){return`translate(0,${e})`}function l4t(e){return e==="bottom"?`translate(0,${Ff})`:`translate(${-Ff},0)`}function s4t(e){return e==="bottom"?"hanging":"central"}function u4t(e){return e==="bottom"?"middle":"end"}var vZ=({scale:e,tickSize:t=6,tickPadding:n=Ff,orient:r="bottom",onlyPositive:a=!1,hiddenLabels:i=!1,offset:o=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function s(x){return k=>{let _=x(k);return _===void 0?0:+_}}let{ticks:c,format:f}=i?{ticks:[],format:x=>x}:k4(e,a,r==="bottom"),A=Math.max(t,0)+n,p=s(e.copy()),v=r==="bottom"?i4t:o4t,y=r==="left"?-1:1,b={[(r==="left"?"x":"y")+"2"]:y*t},C={[r==="left"?"x":"y"]:y*A};return ie.jsx("g",{children:c.map((x,k)=>ie.jsxs("g",{className:"tick",transform:v(p(x)+o),children:[ie.jsx("line",{stroke:$t,...b}),ie.jsx("g",{transform:l4t(r),children:ie.jsx("text",{fill:$t,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:s4t(r),textAnchor:u4t(r),...C,children:f(x)})})]},k))})},c4t=1;function mZ({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=tn.useState(e.ticks()),[A,p]=tn.useState(t.ticks()),{significantLines:v=[]}=a,{significantLines:y=[]}=i;return tn.useEffect(()=>{let b=e.ticks().filter(x=>!v.includes(x)),C=t.ticks().filter(x=>!y.includes(x));f(b),p(C)},[e,t,s]),ie.jsxs("g",{stroke:$f,children:[a.showGrid&&c.map(b=>{let C=e(b);return ie.jsx("line",{x1:C,x2:C,y1:0,y2:r},`x_${C}_${r}`)}),i.showGrid&&A.map(b=>{let C=t(b);return ie.jsx("line",{x1:0,x2:n,y1:C,y2:C},`y_${C}_${n}`)}),ie.jsx("g",{strokeDasharray:Vf(a.significantLinesStyle),stroke:$t,children:v.map(b=>{let C=e(b);return C<0||C>n?null:ie.jsx("line",{x1:C,x2:C,y1:0,y2:r},`significant_${C}_${r}`)})}),ie.jsx("g",{strokeDasharray:Vf(i.significantLinesStyle),stroke:$t,children:y.map(b=>{let C=t(b);return C<0||C>r?null:ie.jsx("line",{x1:0,x2:n,y1:C,y2:C},`significant_${C}_${n}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:c4t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?$f:$t,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?$f:$t,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?$t:$f,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?$t:$f,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}function f4t(e){return typeof e=="string"?e:e.value}function d4t(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 gZ(e,t,n,r){return t==="vertical"?e:e+n*r}function yZ(e,t,n,r){return t(n==="vertical"?r==="straight"?e.y.straight:e.y.reverse:e.count)}function A4t({facetKey:e,width:t,height:n,dimensions:r,scales:a,xAxis:i,yAxis:o,frameType:s,histogramData:c,facetSettings:f,captionsSizes:A,facetTitle:p,layers:v,aesColorGetter:y,groupingDirection:b,groupingStack:C,groupingLabels:x,chartSizes:k,margins:_,tooltipsContainer:P,tooltipsData:N}){let[I,F]=tn.useState(),{padding:Q}=r,Z=i.showTicks?4:0,ee=o.showTicks?4:0,le=r.chartEdgeSides.includes("left")||!(f!=null&&f.sharedY),z=r.chartEdgeSides.includes("bottom")||!(f!=null&&f.sharedX),U=r.chartEdgeSides.includes("bottom"),G=c.groupingKeys,Y=c.histogramByGroupingKey[G[0]].bins[0],X=a.x(Y.width)-a.x(0),te=C==="vertical"?X:X/G.length,he={left:_.left+r.left+Q.left,right:k.totalWidth-(_.left+r.left+Q.left),top:_.top+r.top+Q.top,bottom:k.totalHeight-(_.top+r.top+Q.top)},ae=I&&N.fixed,ge=!1;return ie.jsxs("g",{transform:`translate(${r.left+Q.left},${r.top+Q.top})`,children:[ge,p.length&&ie.jsxs("g",{children:[s==="full"&&ie.jsx("rect",{x:"0",y:-Q.top,height:Q.top,width:t,fill:"#F7F8FA",stroke:$t}),p.map((me,fe)=>{let be=p.length,He=(Q.top-20*be)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:$t,x:t/2,dy:He+20/2-Q.top,y:fe*20,textAnchor:"middle",dominantBaseline:"central",children:me},fe)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:$t,children:[U&&i.title&&ie.jsx("text",{x:t/2,y:n+Q.bottom-20/2,children:f4t(i.title)}),ge]}),ie.jsx(mZ,{width:t,height:n,scaleX:a.x,scaleY:a.y,axisX:i,axisY:o,frameType:s}),z&&ie.jsxs("g",{transform:`translate(0,${n})`,children:[ie.jsx(vZ,{scale:a.x,orient:"bottom",tickSize:Z,hiddenLabels:i.hiddenLabels}),ge]}),le&&ie.jsxs("g",{children:[ie.jsx(vZ,{scale:a.y,orient:"left",tickSize:ee,hiddenLabels:o.hiddenLabels}),ge]}),v.map(me=>G.map((fe,be)=>c.histogramByGroupingKey[fe].bins.map(He=>{let _e=ae&&N.selectedData===He,Ie=ie.jsx("rect",{x:gZ(a.x(He.x),C,be,te),y:yZ(He,a.y,C,b),fill:He.rows[0]?y(me.aes.fillColor,He.rows[0],He.count):"",stroke:me.aes.lineColor,width:te,height:a.y(0)-a.y(He.count),opacity:me.aes.opacity??1,onMouseOver:()=>N.onMouseOver(He,e),onMouseLeave:()=>N.onMouseLeave()},He.x);return _e?uu.createPortal(Ie,I):Ie}))),N.fixed&&ie.jsx("rect",{width:k.chartWidth,height:k.chartHeight,fill:"rgba(255,255,255,0.8)"}),ie.jsx("g",{ref:me=>{me&&!I&&F(me)}}),N.selectedData&&N.currentFacet===e&&ie.jsx(cu,{content:d4t(N.selectedData,x),x:gZ(a.x(N.selectedData.x),C,N.selectedData.groupingKeyIdx,te)+te,y:yZ(N.selectedData,a.y,C,b)+a.y(0)-a.y(N.selectedData.count/2),offset:0,active:!0,fixed:N.fixed,sideDistances:he,container:P,onClose:N.onClose})]})}function p4t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,columnsCount:a,facetKeys:i,facetSettings:o,scales:s,margins:c,mainTitle:f,facetTitles:A,captionsSizes:p,histogramDataByFacets:v,layers:y,aesColorGetter:b,groupingDirection:C,groupingStack:x,groupingLabels:k,legend:_,onTooltipHintSwitch:P}){let N=d2(P),{xAxis:I,yAxis:F,title:Q,frame:Z}=t,ee=r[i[0]].padding,le=r[i[a-1]].padding,[z,U]=tn.useState(),G=tn.useRef(null);tn.useEffect(()=>{G.current&&U(G.current)},[]);let Y=c.left+n.chartsWidth+FD,X=c.top+ee.top;return ie.jsx(v2,{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:Fg}),ie.jsxs("g",{transform:`translate(${c.left},${c.top})`,fontFamily:"Manrope",children:[ie.jsx(m2,{title:f,show:Q.show,position:Q.position,leftPadding:ee.left,rightPadding:le.right,chartsWidth:n.chartsWidth}),i.map(te=>ie.jsx(A4t,{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:I,yAxis:F,frameType:Z.type,facetTitle:A[te],captionsSizes:p,histogramData:v[te],layers:y,aesColorGetter:b,groupingDirection:C,groupingStack:x,groupingLabels:k,tooltipsContainer:z,tooltipsData:N},te))]}),ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(g2,{legendData:_})}),ie.jsx("g",{ref:G,style:{outline:"none"}})]})})}function h4t(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 v4t(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!=="",p=n.yAxisCaptionsWidth,v=(t.showTicks?4:0)+(t.hiddenLabels?0:6),y=n.xAxisCaptionsWidth,b=(e.showTicks?4:0)+(e.hiddenLabels?0:6),C=A?20:0,x=p+v,k=b+y+C,_=Math.max(...r.map(P=>a[P].length));return{left:c?x:12,top:_===0?0:6*2+_*20,bottom:f?k:12,right:o?0:12}}function m4t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function g4t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function wZ(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function y4t(e){return typeof e=="object"&&e!==null&&"range"in e}function w4t(e,t,n){return function(r,a,i){var o,s;if(y4t(r)){let{domain:c=n,range:f,type:A="linear"}=r,p=T4(f,c,A);return p.clamp(!0),p(i)}if(wZ(r)){let c=r.value;return(s=((o=e[c])==null?void 0:o[String(a[c])])??bD)==null?void 0:s[t]}return r}}var C4t=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=Gh(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,p,v)=>{let[y,b]=g4t(v,this.columnsCount),C=h4t(v,e.length,this.columnsCount,this.rowsCount),x=v4t(n,r,this.captionsSizes,m4t(e,this.rowsCount,this.columnsCount)[y],this.facetTitles,C,b===this.columnsCount-1,t),k=a+x.left+x.right,_=i+x.top+x.bottom;return A[p]={left:o,top:s,chartEdgeSides:C,padding:x,inner:{width:a,height:i},outer:{width:k,height:_}},o+=k,b===this.columnsCount-1&&(o=0,s+=_),A},{});let c=Math.max(...e.map(A=>this.chartsDimensions[A].outer.width+this.chartsDimensions[A].left)),f=Math.max(...e.map(A=>this.chartsDimensions[A].outer.height+this.chartsDimensions[A].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r,a,i,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,p]=[1/0,-1/0],v=-1/0,y=e.reduce((b,C)=>{let x=a[C],{minX:k,maxX:_,maxCount:P,maxCountFromGroups:N}=x;return A=Math.min(A,k),p=Math.max(p,_),v=Math.max(v,o==="vertical"?P:N),b[C]={minX:k,maxX:_,maxY:o==="vertical"?P:N},b},{});e.forEach(b=>{let C=n.scale==="log"?av():Zr(),x=y[b],k=t.sharedX?A:x.minX,_=t.sharedX?p:x.maxX;C.domain([k,_]).range([0,this.chartSizes.chartWidth]),this.scales.x[b]=C}),e.forEach(b=>{let C=r.scale==="log"?av():Zr(),x=y[b],k=0,_=t.sharedY?v:x.maxY,P=[this.chartSizes.chartHeight,0],N=C.copy().domain([k,_]).range([this.chartSizes.chartHeight,i.innerOffset]);C.domain([N.invert(this.chartSizes.chartHeight),N.invert(0)]).range(P),this.scales.y[b]=C})}updateCaptionsSize(e,t){let n=new Ac("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}=k4(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=Gv(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]=Gv(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(wZ(A.aes.fillColor)&&n){let p=A.aes.fillColor.value,v=t[n.value],y=n.label??n.value,b=zo().domain(v.values).range(v.values.map(C=>v.aesMap[C].fillColor));a.push({...i,id:p,type:"discreteColor",title:y,scale:b,values:v.values,labels:v.labels})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=w2(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+Yb,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,p,v){var N;let{xAxis:y,yAxis:b,size:C,title:x}=t;this.updateChartSizes(C),this.updateViewport(r,n,y,b,i,C,A),this.updateCaptionsSize(y,b),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,y,b),this.createMainTitle(r,x),this.updateLegendSize(t.legend,o,f,s),this.updateMargins(C);let k=r.reduce((I,F)=>Math.min(I,i[F].minX),1/0),_=r.reduce((I,F)=>Math.max(I,i[F].maxX),-1/0),P=ie.jsx(p4t,{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:w4t(c,"fillColor",[k,_]),groupingDirection:p,groupingStack:A,groupingLabels:f?o[f.value].labels:{},legend:this.legend,onTooltipHintSwitch:v});this.component=P,(N=this.reactRoot)==null||N.render(P)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Uv,{message:e}))}},b4t=C4t,E4t=10,x4t=class{constructor(e){Be(this,"type","bins");Be(this,"aes",{fillColor:"white",lineColor:$t,opacity:1});this.aes={...this.aes,...e.aes}}},S4t=class{constructor(e){Be(this,"type","binsLine");Be(this,"aes",{opacity:1});this.aes={...this.aes,...e.aes}}},CZ=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,p;H2t.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??E4t,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)??r4t.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:((p=e.frame)==null?void 0:p.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 x4t(v);if(v.type==="binsLine")return new S4t(v);uA(v,"Unknown layer type")}).filter(Boolean)}};function bZ(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 B4t(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 k4t=class extends Ng{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new b4t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new CZ(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 CZ(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(),gy(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(b=>this.data.getColumnCategories(b.value)),f=c.length?bZ([...c]):[["null"]],A=n.map(b=>b.value)??null,p=r?[r.value]:[],v=r?this.data.getColumnCategories(r.value):["null"];s&&(v=Zn.intersection(s,v)),this.data.setGrouping([...A,...p]);let y=n4t(this.data,f,v,t,a,i.xAxis.scale);this.calculatedData={facetKeys:f.map(b=>b.join(", ")),facetKeysCombinations:f,histogramDataByFacets:y,legendInfo:B4t(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 T4t(e,t,n,r,a,i,o){let s={};return t.forEach(c=>{let f=[],A=1/0,p=1/0,v=-1/0,y=-1/0;o.forEach(b=>{e.getRowsByGrouping([...c,b]).forEach(C=>{let x=C[n.value],k=C[r.value];A=Math.min(A,x),p=Math.min(p,k),v=Math.max(v,x),y=Math.max(y,k),x!==null&&k!==null&&f.push({id:`${Object.values(C)}`,x,y:k,label:a?C[a.valueLabels??a.value]:null,dimmed:i?!C[i.value]:!1,data:C})})}),f.sort((b,C)=>b.x-C.x),s[c.join("_")]={minX:A,maxX:v,minY:p,maxY:y,dots:f}}),s}function _4t(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((y,b)=>v.data[y.value]===f[b])),p=a.reduce((v,y,b)=>(v[y.value]=f[b],v),{});return{dots:A,data:p}})};if(c.type==="dots")return{type:"dots",info:c,geoms:s};uA(c,"Unknown scatterplot layer type")}),i},{})}function zD(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 D4t(e,t){return zD(e)-t}function P4t(e,t){return EZ(e)-t}function xZ(e){let t=zD(e),n=t+e.width,r=EZ(e),a=r+e.height;return{minX:t,maxX:n,minY:r,maxY:a}}function SZ(e,t,n){let r=D4t(e,n),a=zD(e)+e.width+n,i=P4t(e,t),o=i+e.height+2*t;return{minX:r,maxX:a,minY:i,maxY:o}}function M4t(e,t,n){return e.minX>=0&&e.maxX<=t&&e.minY>=0&&e.maxY<=n}var fE=2;function H4t(e,t=fE,n=fE){e.forEach(r=>{r.bbox=xZ(r),r.outerBBox=SZ(r,t,n)})}function dE(e,t,n,r=fE,a=fE){let i=[],o=new ndt,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 p={...c,yPosition:f,xPosition:A};if(p.bbox=xZ(p),p.outerBBox=SZ(p,r,a),M4t(p.outerBBox,t,n)&&!o.collides(p.outerBBox)){i.push(p),o.insert(p.outerBBox);break}}return i}function I4t(e){return`translate(${e},0)`}function R4t(e){return`translate(0,${e})`}function N4t(e){return e==="bottom"?`translate(0,${Ff})`:`translate(${-Ff},0)`}function L4t(e){return e==="bottom"?"hanging":"central"}function $4t(e){return e==="bottom"?"middle":"end"}var AE=({scale:e,tickSize:t=6,tickPadding:n=Ff,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function o(C){return x=>{let k=C(x);return k===void 0?0:+k}}let{ticks:s,format:c}=k4(e,a,r==="bottom"),f=Math.max(t,0)+n,A=o(e.copy()),p=r==="bottom"?I4t:R4t,v=r==="left"?-1:1,y={[(r==="left"?"x":"y")+"2"]:v*t},b={[r==="left"?"x":"y"]:v*f};return ie.jsx("g",{children:s.map((C,x)=>ie.jsxs("g",{className:"tick",transform:p(A(C)+i),children:[ie.jsx("line",{stroke:$t,...y}),ie.jsx("g",{transform:N4t(r),children:ie.jsx("text",{fill:$t,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:L4t(r),textAnchor:$4t(r),...b,children:c(C)})})]},x))})},F4t=1;function V4t({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=tn.useState(e.ticks()),[A,p]=tn.useState(t.ticks()),{significantLines:v=[]}=a,{significantLines:y=[]}=i;return tn.useEffect(()=>{let b=e.ticks().filter(x=>!v.includes(x)),C=t.ticks().filter(x=>!y.includes(x));f(b),p(C)},[e,t,s]),ie.jsxs("g",{stroke:$f,children:[a.showGrid&&c.map(b=>{let C=e(b);return ie.jsx("line",{x1:C,x2:C,y1:0,y2:r},`x_${C}_${r}`)}),i.showGrid&&A.map(b=>{let C=t(b);return ie.jsx("line",{x1:0,x2:n,y1:C,y2:C},`y_${C}_${n}`)}),ie.jsx("g",{strokeDasharray:Vf(a.significantLinesStyle),stroke:$t,children:v.map(b=>{let C=e(b);return ie.jsx("line",{x1:C,x2:C,y1:0,y2:r},`significant_${C}_${r}`)})}),ie.jsx("g",{strokeDasharray:Vf(i.significantLinesStyle),stroke:$t,children:y.map(b=>{let C=t(b);return ie.jsx("line",{x1:0,x2:n,y1:C,y2:C},`significant_${C}_${n}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:F4t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?$f:$t,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?$f:$t,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?$t:$f,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?$t:$f,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}var O4t=new Ac("16px Manrope");function BZ(e,t){return typeof e=="string"?e:t.length?t[0].data[e.value]:""}function Q4t(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 z4t(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 U4t(e){return typeof e.pValue>"u"?null:ie.jsx("tspan",{children:`p-value = ${ni(e.pValue)}`})}function G4t(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 j4t(e){let t=[z4t(e),U4t(e),G4t(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 UD=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=O4t.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)+UD})}return a}function Y4t({facetKey:e,width:t,height:n,dimensions:r,scales:a,xAxis:i,yAxis:o,frameType:s,dotsData:c,facetSettings:f,trendsData:A,keyColumn:p,margins:v,chartSizes:y,tooltips:b,tooltipsContainer:C,captionsSizes:x,facetTitle:k,onlyPositive:_,layersData:P,aesGetters:N,tooltipsData:I}){let[F,Q]=tn.useState(),{padding:Z}=r,{dots:ee}=c,le=i.showTicks?s2:0,z=o.showTicks?s2:0,U=BZ(i.title,ee),G=BZ(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"),he=r.chartEdgeSides.includes("bottom"),ae={left:v.left+r.left+Z.left,right:y.totalWidth-(v.left+r.left+Z.left),top:v.top+r.top+Z.top,bottom:y.totalHeight-(v.top+r.top+Z.top)},ge=!1,[me,fe]=tn.useState(()=>kZ(ee,a,N,P.find(Oe=>Oe.type==="dots"))),[be,He]=tn.useState(()=>dE(me,t,n,UD,UD)),[_e,Ie]=tn.useState(null);tn.useEffect(()=>{fe(kZ(ee,a,N,P.find(Oe=>Oe.type==="dots")))},[ee,a,N,P]),tn.useEffect(()=>{let Oe=dE(me,t,n);He(Oe)},[me,t,n]);let Ue=F&&I.fixed;return ie.jsxs("g",{transform:`translate(${r.left+Z.left},${r.top+Z.top})`,children:[ge,k.length&&ie.jsxs("g",{children:[s==="full"&&ie.jsx("rect",{x:"0",y:-Z.top,height:Z.top,width:t,fill:"#F7F8FA",stroke:$t}),k.map((Oe,ft)=>{let Ve=k.length,Xe=(Z.top-ED*Ve)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:$t,x:t/2,dy:Xe+ED/2-Z.top,y:ft*ED,textAnchor:"middle",dominantBaseline:"central",children:Oe},ft)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:$t,children:[he&&ie.jsx("text",{x:t/2,y:n+Z.bottom-Qv-m4/2,children:U}),ge,te&&ie.jsx("text",{x:-Z.left+Qv+m4/2,y:n/2,transform:`rotate(-90,${-Z.left+Qv+m4/2},${n/2})`,children:G}),ge]}),ie.jsx(V4t,{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(AE,{scale:a.x,orient:"bottom",onlyPositive:_.x,tickSize:le}),ge]}),Y&&ie.jsxs("g",{children:[ie.jsx(AE,{scale:a.y,orient:"left",onlyPositive:_.y,tickSize:z}),ge]}),A&&A.map(({predict:Oe,getArea:ft,color:Ve,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=N.dotColor(Ve,Xe);return ie.jsxs("g",{children:[ie.jsx("text",{y:wt*20+20,fill:ea,x:t-8,textAnchor:"end",children:j4t(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(Ve=>{let Xe=Ue&&I.selectedData===Ve,tt=ie.jsx("g",{transform:`translate(${a.x(Ve.x)},${a.y(Ve.y)})`,opacity:Ve.dimmed?.3:1,onMouseOver:()=>I.onMouseOver(Ve,e),onMouseLeave:()=>I.onMouseLeave(),children:jc(N.dotShape(Oe.info.aes.dotShape,Ve.data),N.dotSize(Oe.info.aes.dotSize,Ve.data),N.dotColor(Oe.info.aes.dotFill,Ve.data))},Ve.id);return Xe?uu.createPortal(tt,F):tt}),be.map(Ve=>{let{name:Xe,height:tt,bbox:qe,width:gt}=Ve;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:()=>Ie(Ve.dot),onMouseLeave:()=>Ie(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})]})},Ve.dot.id)}),_e&&ie.jsxs("g",{transform:`translate(${a.x(_e.x)},${a.y(_e.y)})`,children:[jc(N.dotShape(Oe.info.aes.dotShape,_e.data),N.dotSize(Oe.info.aes.dotSize,_e.data)+1,"white","white"),jc(N.dotShape(Oe.info.aes.dotShape,_e.data),N.dotSize(Oe.info.aes.dotSize,_e.data),N.dotColor(Oe.info.aes.dotFill,_e.data))]},"activeDot")]},ft);if(Oe.type==="curve"&&!Oe.info.smoothing)return Oe.geoms.map((Ve,Xe)=>ie.jsx("g",{children:ie.jsx("polyline",{points:Ve.dots.map(tt=>`${a.x(tt.x)},${a.y(tt.y)}`).join(" "),fill:"none",stroke:N.lineColor(Oe.info.aes.lineColor,Ve.data),strokeWidth:Oe.info.aes.lineWidth,strokeDasharray:Vf(Oe.info.aes.lineShape)})},Xe));if(Oe.type==="curve"&&Oe.info.smoothing)return Oe.geoms.map((Ve,Xe)=>ie.jsx("g",{children:ie.jsx("path",{d:yy().curve(wy).x(tt=>a.x(tt.x)).y(tt=>a.y(tt.y))(Ve.dots)??"",fill:"none",stroke:N.lineColor(Oe.info.aes.lineColor,Ve.data),strokeWidth:Oe.info.aes.lineWidth,strokeDasharray:Vf(Oe.info.aes.lineShape)})},Xe))}),b.show&&I.selectedData&&I.currentFacet===e&&ie.jsx(cu,{content:Q4t(I.selectedData,p,b==null?void 0:b.content),x:a.x(I.selectedData.x),y:a.y(I.selectedData.y),active:!0,sideDistances:ae,fixed:I.fixed,onClose:I.onClose,container:C}),ie.jsxs("g",{children:[I.fixed&&ie.jsx("rect",{width:y.chartWidth,height:y.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:Oe=>{Oe&&!F&&Q(Oe)}})]})]})}function W4t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,facetKeys:a,facetSettings:i,scales:o,groupedDots:s,legendData:c,trendsData:f,columnsCount:A,margins:p,keyColumn:v,mainTitle:y,facetTitles:b,captionsSizes:C,onlyPositive:x,layersData:k,aesGetters:_,onTooltipHintSwitch:P}){let N=d2(P),[I,F]=tn.useState(),Q=tn.useRef(null);tn.useEffect(()=>{Q.current&&F(Q.current)},[]);let{xAxis:Z,yAxis:ee,title:le,frame:z,legend:U,tooltips:G}=t,Y=r[a[0]].padding,X=r[a[A-1]].padding,te=n.chartsWidth+Yb,he=Y.top;return ie.jsx(v2,{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:Fg}),ie.jsxs("g",{transform:`translate(${p.left},${p.top})`,fontFamily:"Manrope",children:[ie.jsx(m2,{title:y,show:le.show,position:le.position,leftPadding:Y.left,rightPadding:X.right,chartsWidth:n.chartsWidth}),a.map(ae=>ie.jsx(Y4t,{facetKey:ae,scales:{x:o.x[ae],y:o.y[ae]},width:n.chartWidth,height:n.chartHeight,dimensions:r[ae],margins:p,chartSizes:n,facetSettings:i,xAxis:Z,yAxis:ee,frameType:z.type,dotsData:s[ae],trendsData:f?f[ae]:null,tooltips:G,tooltipsContainer:I,keyColumn:v,facetTitle:b[ae],captionsSizes:C,layersData:k[ae],onlyPositive:x,aesGetters:_,tooltipsData:N},ae)),U.show&&ie.jsx("g",{transform:`translate(${te},${he})`,children:ie.jsx(g2,{legendData:c})})]}),ie.jsx("g",{ref:Q,style:{outline:"none"}})]})})}function X4t(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 K4t(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!=="",p=n.yAxisCaptionsWidth+2*xD,v=(t.showTicks?s2:0)+xD,y=c?m4+Qv:0,b=n.xAxisCaptionsWidth+2*xD,C=e.showTicks?s2:0,x=A?m4+Qv:0,k=p+v+y+GX,_=b+C+x+GX,P=Math.max(...r.map(N=>a[N].length));return{left:s?k:Qv,top:P===0?0:$yt*2+P*E4,bottom:f?_+8:Qv,right:Qv}}function Z4t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function J4t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function q4t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function k2(e,t){return function(n,r){var a,i;if(rh(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=iv().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}if(rh(n)&&(t==="dotFill"||t==="lineColor")){let{domain:o,range:s,type:c="linear"}=n,f=T4(s,o,c),A=r[n.columnName.value];return A===null?Ov.color:f(Number(A))}if(q4t(n)){let o=n.value;return(i=((a=e[o])==null?void 0:a[String(r[o])])??bD)==null?void 0:i[t]}return n}}function ewt(e){return{dotShape:k2(e,"dotShape"),dotColor:k2(e,"dotFill"),dotSize:k2(e,"dotSize"),lineShape:k2(e,"lineShape"),lineColor:k2(e,"lineColor"),trendColor:k2(e,"dotFill")}}var twt=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=Gh(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,p,v)=>{let[y,b]=J4t(v,this.columnsCount),C=X4t(v,e.length,this.columnsCount,this.rowsCount),x=K4t(n,r,this.captionsSizes,Z4t(e,this.rowsCount,this.columnsCount)[y],this.facetTitles,C,t),k=a+x.left+x.right,_=i+x.top+x.bottom;return A[p]={left:o,top:s,chartEdgeSides:C,padding:x,inner:{width:a,height:i},outer:{width:k,height:_}},o+=k,b===this.columnsCount-1&&(o=0,s+=_),A},{});let c=Math.max(...e.map(A=>this.chartsDimensions[A].outer.width+this.chartsDimensions[A].left)),f=Math.max(...e.map(A=>this.chartsDimensions[A].outer.height+this.chartsDimensions[A].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r,a,i){let o=e.length,s=Math.min(t.nRows??o,o),c=Math.min(t.nCols??o,o);this.columnsCount=t.nRows?Math.ceil(o/s):c,this.rowsCount=Math.ceil(o/this.columnsCount);let[f,A]=[1/0,-1/0],[p,v]=[1/0,-1/0],y=e.reduce((C,x)=>{let k=a[x],{minX:_,minY:P,maxX:N,maxY:I}=k;return f=Math.min(f,_),p=Math.min(p,P),A=Math.max(A,N),v=Math.max(v,I),C[x]={minX:_,maxX:N,minY:P,maxY:I},C},{});e.forEach(C=>{let x=n.scale==="log"?Gm():Zr(),k=y[C],_=n.lowerValue?Number(n.lowerValue):t.sharedX?f:k.minX,P=n.upperValue?Number(n.upperValue):t.sharedX?A:k.maxX;if(typeof n.symmetricRange<"u"){let F=n.symmetricRange;if(F>=_&&F<=P){let Q=Math.max(F-_,P-F);_=F-Q,P=F+Q}}let N=[0,this.chartSizes.chartWidth],I=x.copy().domain([_,P]).range([jb.LEFT,this.chartSizes.chartWidth-jb.RIGHT]);x.domain([I.invert(0),I.invert(this.chartSizes.chartWidth)]).range(N).nice(),this.scales.x[C]=x});let b=e.reduce((C,x)=>{let k=i?i[x]:[];return C[x]=k.reduce((_,P)=>{let N=P.bounded?P.xBounds:this.scales.x[x].domain(),I=P.getInterval(N[0]),F=P.getInterval(N[1]);return _.minY=Math.min(_.minY,isNaN(I.left)?_.minY:I.left,isNaN(F.left)?_.minY:F.left),_.maxY=Math.max(_.maxY,isNaN(I.right)?_.maxY:I.right,isNaN(F.right)?_.maxY:F.right),_},{minY:1/0,maxY:-1/0}),p=Math.min(p,C[x].minY),v=Math.max(v,C[x].maxY),C},{});e.forEach(C=>{let x=r.scale==="log"?Gm():Zr(),k=y[C],_=b[C],P=r.lowerValue?Number(r.lowerValue):t.sharedY?p:Math.min(k.minY,_.minY),N=r.upperValue?Number(r.upperValue):t.sharedY?v:Math.max(k.maxY,_.maxY);if(typeof r.symmetricRange<"u"){let Q=r.symmetricRange;if(Q>=P&&Q<=N){let Z=Math.max(Q-P,N-Q);P=Q-Z,N=Q+Z}}let I=[this.chartSizes.chartHeight,0],F=x.copy().domain([P,N]).range([this.chartSizes.chartHeight-jb.BOTTOM,jb.TOP]);x.domain([F.invert(this.chartSizes.chartHeight),F.invert(0)]).range(I).nice(),this.scales.y[C]=x})}updateCaptionsSize(e){let t=new Ac("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}=k4(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=Gv(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]=Gv(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 p=t[A.value];if(p.usedAes.length===0||!p.aesMap)return;let v={};p.values.forEach(C=>{v[C]||(v[C]={...Ov}),p.usedAes.forEach(x=>{var k,_,P;(x==="dotFill"||x==="lineColor")&&(v[C].color=((k=p.aesMap[C])==null?void 0:k[x])??$t),x==="dotShape"&&(v[C].shape=((_=p.aesMap[C])==null?void 0:_[x])??"21"),x==="dotSize"&&(v[C].size=((P=p.aesMap[C])==null?void 0:P[x])??3)})});let y=A.label??A.value,b=zo().domain(p.values).range(p.values.map(C=>v[C])).unknown(Ov);a.push({...i,id:A.value,type:"dots",title:y,scale:b,values:p.values,labels:p.labels})}),r.forEach(A=>{if(A.type==="dots"&&rh(A.aes.dotFill)){let{domain:p,range:v,columnName:y,type:b="linear"}=A.aes.dotFill,C=y.label??y.value,x=T4(v,p,"linear"),k=(b==="log"?av():Zr()).domain(p).range([this.chartSizes.chartHeight,0]),_=f2(k,p);a.push({...i,id:"dotFill",type:"continuous",title:C,scale:x,tickPositionScale:k,values:_})}if(A.type==="dots"&&rh(A.aes.dotSize)){let{columnName:p,domain:v,range:y}=A.aes.dotSize,b=p.label??p.value,C=iv(v,y),x=C.ticks(3),k=C.tickFormat(3),_=x.reduce((P,N)=>(P[String(N)]=k(N),P),{});a.push({...i,id:p.value,type:"size",title:b,scale:C,values:x,labels:_})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=w2(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+Yb,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}render(e,t,n,r,a,i,o,s,c,f,A,p,v,y,b){var I;let{xAxis:C,yAxis:x,size:k,title:_,legend:P}=t;this.updateChartSizes(k),this.updateViewport(r,n,C,x,i,o),this.updateCaptionsSize(c.y),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,C,x),this.updateLegendSize(P,f,v,y),this.createMainTitle(r,_),this.updateMargins();let N=ie.jsx(W4t,{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:ewt(p),onTooltipHintSwitch:b});this.component=N,(I=this.reactRoot)==null||I.render(N)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Uv,{message:e}))}},nwt=twt,rwt=class{constructor(e){Be(this,"type","dots");Be(this,"aes",{dotFill:$t,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},awt=class{constructor(e){Be(this,"type","curve");Be(this,"smoothing");Be(this,"aes",{lineColor:$t,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},TZ=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;g2t.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??$t}:null,this.layers=e.layers.map(i=>{if(i.type==="dots")return new rwt(i);if(i.type==="curve")return new awt(i);uA(i,"Unknown layer type")}).filter(Boolean)}},iwt=Dht(kyt()),_Z=.05;function owt(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,p=5394.196021424751,v=21213.794301586597,y=39307.89580009271,b=28729.085735721943,C=5226.495278852854,x=1.4234371107496835,k=4.630337846156546,_=5.769497221460691,P=3.6478483247632045,N=1.2704582524523684,I=.2417807251774506,F=.022723844989269184,Q=.0007745450142783414,Z=2.053191626637759,ee=1.6763848301838038,le=.6897673349851,z=.14810397642748008,U=.015198666563616457,G=.0005475938084995345,Y=10507500716444169e-25,X=6.657904643501103,te=5.463784911164114,he=1.7848265399172913,ae=.29656057182850487,ge=.026532189526576124,me=.0012426609473880784,fe=27115555687434876e-21,be=20103343992922881e-23,He=.599832206555888,_e=.1369298809227358,Ie=.014875361290850615,Ue=.0007868691311456133,Oe=18463183175100548e-21,ft=1421511758316446e-22,Ve=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)/(((((((C*tt+b)*tt+y)*tt+v)*tt+p)*tt+A)*tt+f)*tt+1),qe):(tt=e,tt=Math.sqrt(-Math.log(tt)),tt<=5?(tt+=-1.6,qe=(((((((Q*tt+F)*tt+I)*tt+N)*tt+P)*tt+_)*tt+k)*tt+x)/(((((((Y*tt+G)*tt+U)*tt+z)*tt+le)*tt+ee)*tt+Z)*tt+1)):(tt+=-5,qe=(((((((be*tt+fe)*tt+me)*tt+ge)*tt+ae)*tt+he)*tt+te)*tt+X)/(((((((Ve*tt+ft)*tt+Oe)*tt+Ue)*tt+Ie)*tt+_e)*tt+He)*tt+1)),qe=-qe,qe)}function DZ(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),p=48/(A*A),v=((20700*A/p-98)*A-16)*A+96.36,y=((94.5/(p+v)-3)/p+1)*a(A*s*.5)*t;return c=y*e,f=i(c,2/t),f>.05+A?(c=owt(e/2),f=c*c,t<5&&(v=v+.3*(t-4.5)*(c+.6)),v=(((.05*y*c-5)*c-7)*c-2)*c+p+v,f=(((((.4*f+6.3)*f+36)*f+94.5)/v-f-3)/p+1)*c,f=A*f*f,f>.002?f=o(f)-1:f=.5*f*f+f):f=((1/(((t+6)/(t*f)-.089*y-.822)*(t+2)*3)+.5/(t+4))*f-1)*(t+1)/(t+2)+1/f,a(t*f)}function lwt(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 swt(e,t,n){let r=A=>A*t+n,a=e.length,i=oc(e,A=>A.x)/e.length,o=DZ(_Z,a-2),s=Math.sqrt(oc(e,A=>(A.y-r(A.x))**2)/(a-2)/oc(e,A=>(A.x-i)**2)),c=s*o,f=s*Math.sqrt(oc(e,A=>A.x**2)/a)*o;return{slope:t,intercept:n,slopeError:c,interceptError:f}}function uwt(e,t){let n=oc(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=DZ(_Z,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,p=c+o*f;return{x:s,y:c,left:isNaN(A)?c:A,right:isNaN(p)?c:p}}}function cwt(e){let t=e.length;return Math.pow((t*oc(e,n=>n.x*n.y)-oc(e,n=>n.x)*oc(e,n=>n.y))/(Math.sqrt(t*oc(e,n=>n.x*n.x)-Math.pow(oc(e,n=>n.x),2))*Math.sqrt(t*oc(e,n=>n.y*n.y)-Math.pow(oc(e,n=>n.y),2))),2)}function fwt(e,t){let n=Ls(e,t);return Ls(e.map(r=>(t(r)-n)**2))}function PZ(e,t){return Math.sqrt(fwt(e,t))}function dwt(e,t,n){let r=Ls(e,t),a=Ls(e,n),i=e.length;return oc(e,o=>(o.x-r)*(o.y-a))/i}function Awt(e){let t=dwt(e,a=>a.x,a=>a.y),n=PZ(e,a=>a.x),r=PZ(e,a=>a.y);return t/(n*r)}function pwt(e,t){let n=e.length,r=1,a=1,i=n-r-1,o=Ls(e,v=>v.y),s=oc(e,v=>(t(v.x)-o)**2),c=oc(e,v=>(t(v.x)-v.y)**2),f=s/a,A=c/i,p=f/A;return 1-(0,iwt.default)(p,a,i)}function hwt(e,t,n,r,a){return a?t.reduce((i,o)=>{let s=e[o].dots;return i[o]=n.map(c=>{let f=s.filter(x=>r.every((k,_)=>String(x.data[k.value])===c[_])),[A=0,p=0]=_p(f,x=>x.x),[v,y]=lwt(f),b=x=>v*x+y,C=uwt(f,b);return{predict:b,getInterval:C,getArea:(x,k,_)=>YB().x(P=>x(P.x)).y0(P=>k(P.left)).y1(P=>k(P.right))(_.map(C))??"",color:a.color,bounded:a.bounded,data:f[0].data,showStats:!0,xBounds:[A,p],stats:{r2:cwt(f),r:Awt(f),pValue:pwt(f,b),coefficients:swt(f,v,y)}}}),i},{}):null}function MZ(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 HZ(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function vwt(e,t,n,r){return t.reduce((a,i)=>{let o=Zn.uniqBy(e.rows,p=>p[i.value]),s=p=>String(p[i.value]),c=p=>i.valueLabels?String(p[i.valueLabels]):s(p),f=new Set;n.forEach(p=>{p.aes&&Object.entries(p.aes).forEach(([v,y])=>{HZ(y)&&y.value===i.value&&f.add(v)})});let A=o.reduce((p,v)=>(p[s(v)]=c(v),p),{});return a[i.value]={values:o.map(s).filter(p=>p!=="null").sort((p,v)=>A[p].localeCompare(A[v],"en",{numeric:!0})),usedAes:[...f],aesMap:r[i.value],labels:A},a},{})}var mwt=class extends Ng{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new nwt);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new TZ(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 TZ(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(),gy(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,p=this.data.getColumnCategories(i.value),v=r.map(Q=>this.data.getColumnCategories(Q.value)),y=a.map(Q=>this.data.getColumnCategories(Q.value)),b=v.length?MZ([...v]):[["null"]],C=y.length?MZ([...y]):[["null"]],x=r.map(Q=>Q.value)??null;this.data.setGrouping([...x,i.value]);let k={x:this.data.rows.every(Q=>{let Z=Q[t.value];return Z===null||!(Number(Z)<0)}),y:this.data.rows.every(Q=>{let Z=Q[n.value];return Z===null||!(Number(Z)<0)})},_=T4t(this.data,b,t,n,f,A,p),P=Object.keys(_),N=hwt(_,P,C,a,o),I=vwt(this.data,a,s,c),F=_4t(s,P,_,C,a);this.calculatedData={onlyPositive:k,dotsByFacets:_,facetKeys:P,facetKeysCombinations:b,trendsData:N,legendLabels:I,layersData:F}}_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(([p,v])=>{HZ(v)&&v.value===c.value&&f.add(p)})}),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)}},pE={TOP:30,BOTTOM:30,LEFT:30,RIGHT:30},_4=20,IZ=4,RZ=24;function gwt(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 NZ(e){return typeof e=="string"?e:e.label??e.value}var LZ=yy().curve(wy);function ywt({scales:e,chartSettings:t,mainTitle:n,keyColumn:r,margins:a,chartSizes:i,onlyPositive:o,container:s,zoomStateKey:c,legendData:f,dotsByGrouping:A,layers:p,aesGetters:v,tooltipData:y}){var U;let{title:b,xAxis:C,yAxis:x,frame:k,legend:_}=t,P=C.showTicks?IZ:0,N=x.showTicks?IZ:0,I=C.title,F=x.title,Q={left:0,right:i.chartWidth,top:0,bottom:i.chartHeight};if(!s)return null;let Z=p.find(G=>G.type==="curve"),[ee,le]=tn.useState([]);function z(){let G=Object.entries(A).map(([Y,X])=>({key:Y,d:Z!=null&&Z.smoothing?LZ(X)??"":X.map(te=>`${e.x(te.x)},${e.y(te.y)}`).join(" "),dot:X[0]}));le(G)}return tn.useEffect(()=>{Z&&(LZ.x(G=>e.x(G.x)).y(G=>e.y(G.y)),z())},[c]),tn.useEffect(()=>{Z&&z()},[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:Fg}),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(m2,{title:n,show:b.show,position:b.position,leftPadding:a.left,rightPadding:a.right,chartsWidth:i.chartWidth}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:$t,children:[I&&ie.jsx("text",{x:i.chartWidth/2,y:i.chartHeight+a.bottom-_4/2,children:NZ(I)}),F&&ie.jsx("text",{x:-a.left+_4/2,y:i.chartHeight/2,transform:`rotate(-90,${-a.left+_4/2},${i.chartHeight/2})`,children:NZ(F)})]}),ie.jsx(mZ,{width:i.chartWidth,height:i.chartHeight,scaleX:e.x,scaleY:e.y,axisX:C,axisY:x,updatingKey:c,frameType:k.type}),ie.jsx("g",{transform:`translate(0,${i.chartHeight})`,children:ie.jsx(AE,{scale:e.x,orient:"bottom",onlyPositive:o.x,tickSize:P})}),ie.jsx("g",{children:ie.jsx(AE,{scale:e.y,orient:"left",onlyPositive:o.y,tickSize:N})}),Z&&Z.smoothing&&ie.jsx("g",{clipPath:"url(#viewportClipPath)",children:ee.map(({key:G,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)},G)})}),Z&&!Z.smoothing&&ie.jsx("g",{clipPath:"url(#viewportClipPath)",children:ee.map(({key:G,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)},G)})}),y.selectedData&&ie.jsx(cu,{content:gwt(y.selectedData,r,(U=t.tooltips)==null?void 0:U.content),x:e.x(y.selectedData.x),y:e.y(y.selectedData.y),active:!0,fixed:y.fixed,sideDistances:Q,container:s,onClose:y.onClose}),_.show&&ie.jsx("g",{transform:`translate(${i.chartWidth+RZ},0)`,children:ie.jsx(g2,{legendData:f})})]})]})}var wwt=T6.memo(ywt),Cwt=20;function bwt({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),p=tn.useRef(null),v=tn.useRef(null),y=tn.useRef(a);function b(){A.current=null,p.current=null,v.current=null,y.current=[],i([]),s(null)}function C(_){n||_.key!=="Escape"||b()}tn.useEffect(()=>{n&&(A.current=null,p.current=null,v.current=null,s(null))},[n]),tn.useEffect(()=>(document.addEventListener("keydown",C),()=>document.removeEventListener("keydown",C)),[]),tn.useEffect(()=>{if(o&&c)return;if(a.length===0){r([]);return}let _=a.map(P=>P[0]);_.push(a[a.length-1][1]),r(_)},[a]);function x(){if(!A.current||n)return;let _=[...A.current],P=e.x.invert(_[0]),N=e.y.invert(_[1]),I=y.current,F=v.current,Q=p.current&&I.length>1?Math.sqrt((_[0]-p.current[0])**2+(_[1]-p.current[1])**2):1/0;v.current?v.current&&Q>Cwt?(I=[...I,[v.current,[P,N]]],F=[P,N]):(I=[...I,[v.current,[P,N]]],I.length>2&&(I=[...I,[I[I.length-1][1],I[0][0]]]),F=null,I.length<=2?r([]):r(I.map(Z=>Z[0])),p.current=null):(p.current=_,I=[],F=[P,N],r([])),i(I),s(F),y.current=I,v.current=F}function k(_){let P=[_.nativeEvent.offsetX,_.nativeEvent.offsetY];f(P),A.current=P}return ie.jsxs("g",{children:[ie.jsx("rect",{fill:"transparent",width:t.chartWidth,height:t.chartHeight,onMouseMove:k,onClick:x}),a.map(([_,P],N)=>ie.jsx("line",{x1:e.x(_[0]),y1:e.y(_[1]),x2:e.x(P[0]),y2:e.y(P[1]),stroke:$t,style:{pointerEvents:"none"}},N)),o&&c&&ie.jsx("line",{x1:e.x(o[0]),y1:e.y(o[1]),x2:c[0],y2:c[1],stroke:$t,style:{pointerEvents:"none"}},"lastLine")]})}function Ewt({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:p,width:v}=c;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${p.minX},${p.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(bwt,{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 xwt=Ewt;function Swt({settingsId:e,scales:t,chartSettings:n,mainTitle:r,keyColumn:a,margins:i,chartSizes:o,captionsSizes:s,onlyPositive:c,container:f,zoomStateKey:A,aesGetters:p,legendData:v,labels:y,onPolygonUpdate:b,onTooltipHintSwitch:C,lassoMode:x,dotsByGrouping:k,layers:_,selectedDot:P=null}){if(!f)return null;let N=d2(C);return tn.useEffect(()=>{P?N.onMouseOver(P):N.onMouseLeave()},[P]),ie.jsx("div",{children:ie.jsxs(v2,{dataId:e,children:[ie.jsx(wwt,{aesGetters:p,dotsByGrouping:k,layers:_,scales:t,keyColumn:a,margins:i,mainTitle:r,captionsSizes:s,chartSettings:n,chartSizes:o,onlyPositive:c,container:f,zoomStateKey:A,legendData:v,tooltipData:N}),uu.createPortal(ie.jsx(xwt,{scales:t,container:f,aesGetters:p,labels:y,chartSizes:o,selectedDot:P,onPolygonUpdate:b,lassoMode:x,tooltipData:N}),f)]})})}var $Z=e=>e.selection()!==e,FZ=(e,t)=>{e=e||"g";let n=(i,o)=>o,r=null,a=function(i,o){o=o||(y=>y);let s=i.selection(),c=$Z(i)?i:null,f=s.selectChildren(t==null?e:`${e}.${t}`).data(o,n),A=f.enter().append(e).attr("class",t),p=f.exit();f=f.merge(A);let v=c||r;return v&&(f=f.transition(v).style("opacity",1),A.style("opacity",1e-6),p=p.transition(v).style("opacity",1e-6)),p.remove(),f.enter=()=>A,f.exit=()=>p,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},VZ=(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}},OZ=(e,t,...n)=>{for(let r of n)e[r]=VZ(e,t,r);return e},Bwt=e=>t=>e.reduce((n,r)=>n&&r(n),t),GD=(e,t,...n)=>{let r=Bwt(n);for(let a of Object.keys(t)){let i=r(a);i&&(e[i]=VZ(e,t,a))}return e},kwt=e=>e.map(t=>typeof t=="string"?new RegExp(`^${t}$`):t),Twt=(...e)=>(e=kwt(e),t=>e.every(n=>!n.test(t))&&t),T2=e=>typeof e=="function"?e:()=>e;function _wt(){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 Dwt=(e,t)=>{switch(e){case"left":return t/2;case"right":return-t/2;default:return 0}},QZ=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},Pwt=()=>{let e=()=>0,t=s=>s.x,n=s=>s.y,r="center",a=()=>5,i="vertical",o=QZ({decorate:()=>{},defined:(s,c)=>_wt(e,t,n)(s,c),xScale:rv(),yScale:rv()});return o.values=(s,c)=>{let f=a(s,c),A=Dwt(r,f),p=o.xScale(),v=o.yScale();if(i==="vertical"){let y=v(n(s,c),c),b=v(e(s,c),c),C=p(t(s,c),c)+A;return{d:s,x:C,y,y0:b,width:f,height:y-b,origin:[C,y],baseOrigin:[C,b],transposedX:C,transposedY:y}}else{let y=p(n(s,c),c),b=p(e(s,c),c),C=v(t(s,c),c)+A;return{d:s,x:C,y,y0:b,width:f,height:y-b,origin:[y,C],baseOrigin:[b,C],transposedX:y,transposedY:C}}},o.xValues=()=>i==="vertical"?[t]:[e,n],o.yValues=()=>i!=="vertical"?[t]:[e,n],o.baseValue=(...s)=>s.length?(e=T2(s[0]),o):e,o.crossValue=(...s)=>s.length?(t=T2(s[0]),o):t,o.mainValue=(...s)=>s.length?(n=T2(s[0]),o):n,o.bandwidth=(...s)=>s.length?(a=T2(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},Mwt=()=>{let e=Pwt(),t=T2(64),n=lF,r=l4(),a=l4(),i=l4().type(nh.UNSIGNED_SHORT),o=l4().type(nh.UNSIGNED_BYTE),s=iht().crossValueAttribute(r).mainValueAttribute(a).sizeAttribute(i).definedAttribute(o),c=(b,C)=>!1,f=Aht,A=[],p=null,v=null,y=b=>{let C=f(e.xScale()),x=f(e.yScale()),k=!c(A,b);k&&(A=b,i.value((_,P)=>t(_,P)).data(b),o.value((_,P)=>e.defined()(_,P)).data(b)),(k||C.scale!==p)&&(p=C.scale,e.orient()==="vertical"?r.value((_,P)=>C.scale(e.crossValue()(_,P))).data(b):r.value((_,P)=>C.scale(e.mainValue()(_,P))).data(b)),(k||x.scale!==v)&&(v=x.scale,e.orient()==="vertical"?a.value((_,P)=>x.scale(e.mainValue()(_,P))).data(b):a.value((_,P)=>x.scale(e.crossValue()(_,P))).data(b)),s.xScale(C.webglScale).yScale(x.webglScale).type(wht(n)).decorate(_=>e.decorate()(_,b,0)),s(b.length)};return y.size=(...b)=>b.length?(t=T2(b[0]),y):t,y.type=(...b)=>b.length?(n=b[0],y):n,y.equals=(...b)=>b.length?(c=b[0],y):c,y.scaleMapper=(...b)=>b.length?(f=b[0],y):f,GD(y,e,Twt("baseValue","bandwidth","align")),OZ(y,s,"context","pixelRatio"),y},zZ=()=>{let e=[],t=a=>a,n=(a,i)=>i,r=QZ({decorate:()=>{},xScale:rv(),yScale:rv()});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},Hwt=()=>{let e=zZ(),t=FZ("g"),n=FZ("g","multi"),r=a=>{$Z(a)&&(n.transition(a),t.transition(a));let i=e.mapping(),o=e.series(),s=e.xScale(),c=e.yScale();a.each((f,A,p)=>{let v=n(ws(p[A]),o);v.each((y,b,C)=>{y.xScale(s).yScale(c);let x=i(f,b,o);t(ws(C[b]),[x]).call(y)}),v.selection().order(),e.decorate()(v,f,A)})};return GD(r,e),OZ(r,n,"key"),r},Iwt=()=>{let e=null,t=1,n=zZ(),r=a=>{let i=n.mapping(),o=n.series(),s=n.xScale(),c=n.yScale();o.forEach((f,A)=>{let p=i(a,A,o);f.context(e).pixelRatio(t).xScale(s).yScale(c);let v;f.decorate?(v=f.decorate(),f.decorate((y,b,C)=>{n.decorate()(y,a,A),v(y,b,C)})):n.decorate()(e,a,A),f(p),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,GD(r,n),r};function UZ(e){return e/2.35*(e/2.35)*64}function jD(e,t){return e+(1-e)*(1-t)}function YD(e,t){return[jD(e.r/255,t),jD(e.g/255,t),jD(e.b/255,t),1]}function Rwt(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function WD(e={},t,n){return function(r){var a,i;if(Rwt(n)){let o=n.value,s=r[o];return(i=((a=e[o])==null?void 0:a[String(s)])??bD)==null?void 0:i[t]}if(rh(n)&&t==="dotFill"){let{domain:o,range:s,type:c="linear"}=n,f=T4(s,o,c),A=r[n.columnName.value];return A===null?Ov.color:f(Number(A))}if(rh(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=iv().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}return n}}function GZ(e,t){let n=t.find(a=>a.type==="dots"),r=t.find(a=>a.type==="curve");return{dotFill:WD(e,"dotFill",(n==null?void 0:n.aes.dotFill)??Ov.color),dotSize:WD(e,"dotSize",(n==null?void 0:n.aes.dotSize)??Ov.size),lineType:WD(e,"lineShape",(r==null?void 0:r.aes.lineShape)??"solid")}}var Nwt=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:()=>$t,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&&Lb(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=Gh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateViewport(e,t,n){let r=e.scale==="log"?Gm():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 y=e.symmetricRange;if(y>=a&&y<=o){let b=Math.max(y-a,o-y);a=y-b,o=y+b}}if(typeof t.symmetricRange<"u"){let y=t.symmetricRange;if(y>=i&&y<=s){let b=Math.max(y-i,s-y);i=y-b,s=y+b}}let c=[0,this.chartSizes.chartWidth],f=r.copy().domain([a,o]).range([pE.LEFT,this.chartSizes.chartWidth-pE.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"?Gm():Zr(),p=[this.chartSizes.chartHeight,0],v=A.copy().domain([i,s]).range([this.chartSizes.chartHeight-pE.BOTTOM,pE.TOP]);A.domain([v.invert(this.chartSizes.chartHeight),v.invert(0)]).range(p).nice(),this.scales.y=A,this.scales.yOriginal=A.copy()}updateCaptionsSize(e){let t=new Ac("600 14px Arial");function n(o){return Math.max(...o.map(s=>t.getTextWidth(s)))}let{ticks:r,format:a}=k4(this.scales.y,e),i=n(r.map(a));this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:i}}createMainTitle(e){this.mainTitle=Gv(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+_4,left:Gc+this.captionsSizes.yAxisCaptionsWidth+_4,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,ws(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 p=t[A.value];if(p.usedAes.length===0||!p.aesMap)return;let v={};p.values.forEach(C=>{v[C]||(v[C]={...Ov}),p.usedAes.forEach(x=>{var k,_;x==="dotFill"&&(v[C].color=((k=p.aesMap[C])==null?void 0:k[x])??$t),x==="dotSize"&&(v[C].size=((_=p.aesMap[C])==null?void 0:_[x])??3)})});let y=A.label??A.value,b=zo().domain(p.values).range(p.values.map(C=>v[C]));a.push({...i,id:A.value,type:"dots",title:y,scale:b,values:p.values,labels:p.labels})}),r.forEach(A=>{if(A.type==="dots"&&rh(A.aes.dotFill)){let{domain:p,range:v,columnName:y,type:b="linear"}=A.aes.dotFill,C=y.label??y.value,x=T4(v,p,"linear"),k=(b==="log"?av():Zr()).domain(p).range([this.chartSizes.chartHeight,0]),_=f2(k,p);a.push({...i,id:"dotFill",type:"continuous",title:C,scale:x,tickPositionScale:k,values:_})}if(A.type==="dots"&&rh(A.aes.dotSize)){let{columnName:p,domain:v,range:y}=A.aes.dotSize,b=p.label??p.value,C=iv(v,y),x=C.ticks(3),k=C.tickFormat(3),_=x.reduce((P,N)=>(P[String(N)]=k(N),P),{});a.push({...i,id:p.value,type:"size",title:b,scale:C,values:x,labels:_})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=w2(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:p,legend:v}=t;this.updateChartSizes(A),this.updateViewport(c,f,n),this.updateCaptionsSize(r.y),this.updateLegendSize(v,o,s,i),this.createMainTitle(p),this.updateMargins(),this.aesGetters=GZ(a,i);let y=bht().data(e).value(P=>{let N=z3(this.aesGetters.dotFill(P.data)),I=!P.dimmed&&(this.polygon.length<2||Lb(this.polygon,[P.x,P.y]))?1:.4;return YD(N,I)}),b=Mwt().equals((P,N)=>P===N).size(P=>UZ(this.aesGetters.dotSize(P.data))).crossValue(P=>P.x).mainValue(P=>P.y).decorate(P=>y(P)),C=S0t().scaleExtent([.1,1e3]).filter(()=>!this.lassoMode).on("start",()=>{this.selectedDot=null}).on("zoom",P=>{let N=P.transform,I=N.rescaleX(this.scales.xOriginal),F=N.rescaleY(this.scales.yOriginal);this.scales.x.domain(I.domain()),this.scales.y.domain(F.domain()),this.zoomStateKey=`${N.x}_${N.y}_${N.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=dE(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.renderSvgLayer()}),x=U_().x(P=>P.x).y(P=>P.y).addAll(e),k=Eht().on("point",([P])=>{var Z,ee;if(!P){this.selectedDot=null,this.renderSvgLayer();return}let N=this.scales.x.invert(P.x),I=this.scales.y.invert(P.y),F=(Z=this.tools)==null?void 0:Z.qt.find(N,I),Q=this.selectedDot&&!F||!this.selectedDot&&F||((ee=this.selectedDot)==null?void 0:ee.id)!==(F==null?void 0:F.id);this.selectedDot=F??null,Q&&this.renderSvgLayer()}),_=q0t({xScale:this.scales.x,yScale:this.scales.y}).xAxisHeight(()=>"0").yAxisWidth(()=>"0").svgPlotArea(Hwt()).webglPlotArea(Iwt().series([b]).mapping(P=>P)).decorate(P=>{let N=P.enter();N&&!this.svgLayerElement&&(N.style("grid-template-columns","0 auto 1fr auto 0"),N.style("grid-template-rows","0 auto 1fr auto 0"),this.svgLayerElement=N.select(".svg-plot-area.plot-area svg").node()),N.select(".svg-plot-area.plot-area").call(C).call(k)});this.tools={webglChart:_,zoom:C,qt:x,fillColor:y,pointSeries:b},ws(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=GZ(e,t),this.tools.fillColor.value(n=>{let r=this.aesGetters.dotFill??(()=>$t),a=z3(r(n.data)),i=!n.dimmed&&(this.polygon.length<2||Lb(this.polygon,[n.x,n.y]))?1:.4;return YD(a,i)}))}updatePointSize(){this.tools!==null&&(ws(this.canvasNode).datum([...this.allDots]),this.tools.pointSeries.size(e=>UZ(this.aesGetters.dotSize(e.data))))}updateByLasso(){var e;this.tools!==null&&((e=this.tools)==null||e.fillColor.value(t=>{let n=this.aesGetters.dotFill??(()=>$t),r=z3(n(t.data)),a=!t.dimmed&&(this.polygon.length<2||Lb(this.polygon,[t.x,t.y]))?1:.4;return YD(r,a)}),this.renderWebglLayer())}updateData(e){this.tools!==null&&(ws(this.canvasNode).datum(e),this.tools.fillColor.data(e),this.tools.qt=U_().x(t=>t.x).y(t=>t.y).addAll(e))}render(e,t,n,r,a,i,o,s,c,f,A,p,v,y,b){if(this.lassoMode=y,this.tools===null)this.initSettings(a,t,i,r,s,c,f,A),this.onPolygonUpdateOutside=v,this.onTooltipHintSwitch=b;else{let{title:C,legend:x}=t;this.updateLegendSize(x,f,A,c),this.createMainTitle(C),this.updateMargins(),this.updateAes(s,c)}this.allDots=a,this.allPossibleLabels=p,this.allPossibleLabels.forEach(C=>{C.x=this.scales.x(C.dot.x),C.y=this.scales.y(C.dot.y)}),this.visibleLabels=dE(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&&ws(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)}),H4t(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(Swt,{...e}),(t=this.reactRoot)==null||t.render(this.svgLayerComponent)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Uv,{message:e}))}},Lwt=Nwt,XD=H.object({type:H.literal("grouping"),value:H.string()}),$wt=H.object({type:H.literal("dots"),aes:H.optional(H.object({dotFill:H.optional(H.union([H.string(),XD,Jp(H.string())])),dotShape:H.optional(H.union([Td,XD])),dotSize:H.optional(H.union([H.number(),Jp(H.number())]))}))}),Fwt=H.object({type:H.literal("curve"),smoothing:H.optional(H.boolean()),aes:H.optional(H.object({lineWidth:H.optional(H.number()),lineShape:H.optional(XA),lineColor:H.optional(H.union([H.string(),XD,Jp(H.string())])),opacity:H.optional(H.number())}))}),Vwt=H.union([$wt,Fwt]),Owt=H.object({type:H.literal("scatterplot-umap"),title:H.object({name:H.string(),show:H.optional(H.boolean()),position:H.optional(zv)}),size:H.optional(H.object({width:H.optional(H.number()),height:H.optional(H.number())})),legend:H.optional(H.object({show:H.optional(H.boolean()),position:H.optional(Lg)})),tooltips:H.optional(H.object({show:H.optional(H.boolean()),content:H.optional(H.array(Yn))})),frame:H.optional(H.object({type:H.optional(g4)})),keyColumn:Yn,x:Yn,y:Yn,xAxis:H.optional(c2),yAxis:H.optional(c2),grouping:H.optional(H.array(Yn)),label:H.optional(Yn),highlight:H.optional(Yn),inheritedAes:H.optional(H.record(H.string(),u2)),layers:H.array(Vwt),lassoMode:H.optional(H.boolean())}),Qwt=class{constructor(e){Be(this,"type","dots");Be(this,"aes",{dotFill:$t,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},zwt=class{constructor(e){Be(this,"type","curve");Be(this,"smoothing");Be(this,"aes",{lineColor:$t,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},jZ=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 Qwt(i);if(i.type==="curve")return new zwt(i);throw new Error("Unknown layer type")}).filter(Boolean),this.lassoMode=e.lassoMode??!1}};function YZ(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,p=>p[i.value]),s=p=>String(p[i.value]),c=p=>i.valueLabels?String(p[i.valueLabels]):s(p),f=new Set;n.forEach(p=>{p.aes&&Object.entries(p.aes).forEach(([v,y])=>{YZ(y)&&y.value===i.value&&f.add(v)})});let A=o.reduce((p,v)=>(p[s(v)]=c(v),p),{});return a[i.value]={values:o.map(s).sort((p,v)=>A[p].localeCompare(A[v],"en",{numeric:!0})),usedAes:[...f],aesMap:r[i.value],labels:A},a},{})}var Gwt=10;function jwt(e){let t=[],n=new Ac("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:Gwt})}return t}var Ywt=class extends Ng{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new Lwt);Be(this,"onPolygonUpdate",()=>cC);Be(this,"onTooltipHintSwitch",()=>cC);Be(this,"calculatedData",null);this.settings=new jZ(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 jZ(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},p=s.some(k=>k.type==="curve"),v=new Set,y={},b=this.data.rows.reduce((k,_)=>{if(_[t.value]===null||_[n.value]===null)return k;let P=Number(_[t.value]),N=Number(_[n.value]);f.x&&P!==null&&P<0&&(f.x=!1),f.y&&N!==null&&N<0&&(f.y=!1),P!==null&&P<A.minX&&(A.minX=P),P!==null&&P>A.maxX&&(A.maxX=P),N!==null&&N<A.minY&&(A.minY=N),N!==null&&N>A.maxY&&(A.maxY=N);let I=(a==null?void 0:a.valueLabels)??(a==null?void 0:a.value),F={x:P,y:N,id:String(_[r.value]),dimmed:i?!_[i.value]:!1,label:I&&_[I]?String(_[I]):null,data:_};if(p){let Q=o.map(Z=>_[Z.value]).join("_");v.add(Q),y[Q]||(y[Q]=[]),y[Q].push(F)}return k.push(F),k},[]);b.sort((k,_)=>Number(_.dimmed)-Number(k.dimmed));let C=[...v];p&&C.forEach(k=>{y[k].sort((_,P)=>_.x-P.x)});let x=Uwt(this.data,o,s,c);this.calculatedData={onlyPositive:f,dots:b,dotsByGrouping:y,groupingKeys:C,allPossibleLabels:jwt(b),dotsExtents:A,legendLabels:x},this.chartRenderer.updateData(b)}_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])=>{YZ(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)}},Wwt=1e6;function Xwt(e){let t=ER(e),n=Ls(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function Kwt(e){let t=Ls(e),[n,r]=_p(e);return t===void 0||n===void 0||r===void 0?a=>a:a=>(a-t)/(r-n)}function Zwt(e,t){return e==="standardScaling"?Xwt(t):e==="meanNormalization"?Kwt(t):n=>n}function Jwt(e,t,n,r,a,i,o,s,c){let f=o.map(C=>C.join("_")),A={meta:{facetKeys:f,xKeys:[],yKeys:[],xLabels:{},yLabels:{},facetKeyValues:f.reduce((C,x,k)=>(C[x]=o[k],C),{}),valueExtentSize:[1/0,-1/0],valueExtentColor:[1/0,-1/0]},facets:{}},p=new Set,v=new Set,y=t.valueLabels??t.value,b=n.valueLabels??n.value;if(e.rows.forEach(C=>{let x=i.length?i.map(I=>C[I.value]).join("_"):"null",k=C[t.value],_=C[n.value],P=C[r.value]??c,N=C[a.value]??c;if(!(k===null||_===null||P===null||N===null)){if(A.facets[x]||(A.facets[x]={xKeys:[],yKeys:[],cells:{}}),A.facets[x].xKeys.push(k),A.facets[x].yKeys.push(_),p.has(k)||(p.add(k),A.meta.xKeys.push(k)),v.has(_)||(v.add(_),A.meta.yKeys.push(_)),A.facets[x].cells[k]||(A.facets[x].cells[k]={}),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(N,A.meta.valueExtentColor[0]),A.meta.valueExtentColor[1]=Math.max(N,A.meta.valueExtentColor[1]),A.facets[x].cells[k][_])throw Error(`More than 1 value for x=${k}, y=${_}`);if(A.meta.xLabels[k]&&String(C[y])!==A.meta.xLabels[k])throw Error(`More than 1 x-label value for x=${k}`);if(A.meta.yLabels[_]&&String(C[b])!==A.meta.yLabels[_])throw Error(`More than 1 y-label value for y=${_}`);A.meta.xLabels[k]=String(C[y]),A.meta.yLabels[_]=String(C[b]),A.meta&&(A.facets[x].cells[k][_]={id:`${k}_${_}`,x:k,y:_,sizeValue:P,normalizedSizeValue:P,colorValue:N,normalizedColorValue:N,data:C})}}),A.meta.facetKeys=A.meta.facetKeys.filter(C=>A.facets[C]),A.meta.facetKeys.forEach(C=>{let x=A.facets[C];if(x.xKeys=Zn.uniq(x.xKeys),x.yKeys=Zn.uniq(x.yKeys),x.xKeys.length*x.yKeys.length>Wwt)throw Error(`Too many cells for graph rendering (${x.xKeys.length*x.yKeys.length})`)}),s){let C=[1/0,-1/0];A.meta.facetKeys.forEach(x=>{if(!A.facets[x])return;let{xKeys:k,yKeys:_,cells:P}=A.facets[x],N=s.direction==="row"?k:_,I=s.direction==="row"?_:k,F=s.direction==="row"?(Q,Z)=>{var ee;return(ee=P[Q])==null?void 0:ee[Z]}:(Q,Z)=>{var ee;return(ee=P[Z])==null?void 0:ee[Q]};I.forEach(Q=>{let Z=[];N.forEach(le=>{var U;let z=(U=F(le,Q))==null?void 0:U.colorValue;z!==void 0&&Z.push(z)});let ee=Zwt(s.method,Z);N.forEach(le=>{let z=F(le,Q);z!==void 0&&(z.normalizedColorValue=ee(z.colorValue),C[0]=Math.min(z.normalizedColorValue,C[0]),C[1]=Math.max(z.normalizedColorValue,C[1]))})})}),A.meta.valueExtentColor=C}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 qwt=15,Og=8,hE=30,eCt=48,tCt=24,vE=16,_2=4,mE=4,WZ=20,nCt=16,f1={left:["axis","axisTitle"],right:["axis","axisTitle"],top:["axis","axisTitle","facetTitle"],bottom:["axis","axisTitle"]};function rCt(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?mE:0,p=t.showTicks?mE:0,v=c&&e.showTitle?hE:0,y=s&&t.showTitle?hE:0,b=c&&e.showAxisLabels&&i>vE?n.xAxisCaptions+A+_2:0,C=s&&t.showAxisLabels&&o>vE?n.yAxisCaptions+p+_2:0;return{left:{axisTitle:t.position==="left"?y:0,axis:t.position==="left"?C:0},right:{axisTitle:t.position==="right"?y:0,axis:t.position==="right"?C:0},top:{facetTitle:f?eCt:0,axisTitle:e.position==="top"?v:0,axis:e.position==="top"?b:0},bottom:{axisTitle:e.position==="bottom"?v:0,axis:e.position==="bottom"?b:0}}}function aCt(e,t,n){return{left:f1.left.reduce((r,a,i)=>{let o=i>0?f1.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:f1.right.reduce((r,a,i)=>{let o=i>0?f1.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:f1.top.reduce((r,a,i)=>{let o=i>0?f1.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:f1.bottom.reduce((r,a,i)=>{let o=i>0?f1.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 iCt(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,y=t.x,b=y>vE,C=a[v[0]];c=Math.max(c,(A&&b?r.getTextWidth(C)*Math.cos(o):0)-y/2)}let p=e.yAxisLabels===45;if(p){let v=n.meta.yKeys;if(v.length){let y=t.y,b=y>vE,C=i[v[v.length-1]];f=Math.max(f,(p&&b?r.getTextWidth(C)*Math.cos(s):0)-y/2)}}return{xCaptionTail:c,yCaptionTail:f}}function oCt({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:f,xLabels:A,yLabels:p}){let v=i.showTicks?mE:0,y=o.showTicks?mE:0,b=e.top.axis.isVisible||e.bottom.axis.isVisible,C=e.top.axisTitle.isVisible?e.top.axisTitle:e.bottom.axisTitle,x=e.top.axis.isVisible?e.top.axis:e.bottom.axis,k=e.left.axis.isVisible||e.right.axis.isVisible,_=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,P=e.left.axis.isVisible?e.left.axis:e.right.axis;return ie.jsxs("g",{children:[ie.jsxs("g",{children:[C.isVisible&&ie.jsxs("g",{transform:`translate(${C.x},${C.y})`,children:[ie.jsx("text",{x:C.width/2,y:C.height/2,textAnchor:"middle",dominantBaseline:"central",children:i.title}),t&&ie.jsx("rect",{width:C.width,height:C.height,stroke:$t,fill:"none"})]}),b&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${x.x},${x.y})`,children:[n.map(N=>{let I=f.xAxisLabels!==0,F=i.position==="bottom",Q=F?0:x.height,Z=F?Q+v:Q-v,ee=F?Z+_2:Z-_2,le=a.x(N)+s/2,z=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:le,y1:Q,y2:Z,stroke:$t}),ie.jsx("text",{x:le,y:ee,textAnchor:I?F?"end":"start":"middle",transform:`rotate(${z},${le},${ee})`,dominantBaseline:I?"central":F?"hanging":"auto",children:A[N]})]},N)}),t&&ie.jsx("rect",{width:x.width,height:x.height,stroke:$t,fill:"none"})]})]}),ie.jsxs("g",{children:[_.isVisible&&ie.jsx("g",{transform:`translate(
15128
15128
  ${_.x+_.width/2},
15129
15129
  ${_.y+_.height/2})`,children:ie.jsx("text",{transform:`rotate(${o.position==="left"?-90:90})`,dominantBaseline:"central",textAnchor:"middle",children:o.title})}),t&&ie.jsx("rect",{x:_.x,y:_.y,width:_.width,height:_.height,stroke:$t,fill:"none"}),k&&ie.jsx("g",{fontSize:"14px",transform:`translate(${P.x},${P.y})`,children:r.map(N=>{let I=f.yAxisLabels!==0,F=o.position==="left",Q=-(90-f.yAxisLabels),Z=f.yAxisLabels===0?"middle":F?"end":"start",ee=I?"central":F?"auto":"hanging",le=F?P.width:0,z=F?le-y:le+y,U=F?z-_2:z+_2,G=a.y(N)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:z,y1:G,y2:G,stroke:$t}),ie.jsx("text",{x:U,y:G,textAnchor:Z,transform:`rotate(${Q},${U},${G})`,dominantBaseline:ee,children:p[N]})]},N)})}),t&&ie.jsx("rect",{x:P.x,y:P.y,height:P.height,width:P.width,stroke:$t,fill:"none"})]})]})}function gE(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 lCt(e,t,n=[]){let r=e.data,a=[`X: ${t.xLabels[e.x]}`,`Y: ${t.yLabels[e.y]}`,`Value (color): ${gE(e.colorValue)}${e.colorValue!==e.normalizedColorValue?` (${gE(e.normalizedColorValue)})`:""}`,`Value (size): ${gE(e.sizeValue)}${e.sizeValue!==e.normalizedSizeValue?` (${gE(e.normalizedSizeValue)})`:""}`];for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function sCt({facetKey:e,dimensions:t,scales:n,cells:r,colorScale:a,sizeScale:i,chartSettings:o,cellsMeta:s,stepX:c,stepY:f,aes:A,labelAngles:p,chartSizes:v,margins:y,tooltipsContainer:b,tooltipsData:C}){let[x,k]=tn.useState(),{xAxis:_,yAxis:P,tooltips:N}=o,{width:I,height:F}=t.inner,{padding:Q,sideElementBBoxes:Z}=t,{xLabels:ee,yLabels:le}=s,z=n.x.domain(),U=n.y.domain(),G={left:y.left+t.left+Q.left,right:v.totalWidth-(y.left+t.left+Q.left),top:y.top+t.top+Q.top,bottom:v.totalHeight-(y.top+t.top+Q.top)},Y=!1,X=C.fixed&&x;return ie.jsxs("g",{transform:`translate(${t.left},${t.top})`,fontSize:nCt,children:[ie.jsxs("g",{transform:`translate(${Q.left},${Q.top})`,children:[Z.top.facetTitle.isVisible&&ie.jsx("text",{x:Z.top.facetTitle.x,y:Z.top.facetTitle.y+Z.top.facetTitle.height-tCt,fontWeight:"500",fontSize:"20px",children:s.facetKeyValues[e].join(", ")}),Y,z.map(te=>U.map(he=>{var fe;let ae=(fe=r==null?void 0:r[te])==null?void 0:fe[he],ge=X&&ae&&C.selectedData===ae,me=ae?ie.jsx("circle",{cx:n.x(te)+c/2,cy:n.y(he)+f/2,r:i(ae.normalizedSizeValue),stroke:A.cellStrokeColor,fill:ae.colorValue===null?A.emptyCellColor:a(ae.normalizedColorValue),onMouseOver:()=>C.onMouseOver(ae,e),onMouseLeave:()=>C.onMouseLeave()},ae?ae.id:`${te}_${he}`):null;return ge?uu.createPortal(me,x):me})),ie.jsx("g",{children:o.frame.type==="full"&&ie.jsx("rect",{fill:"none",stroke:$t,x:"0",y:"0",width:I,height:F})}),ie.jsx("g",{fontWeight:"500",children:ie.jsx(oCt,{sideElementBBoxes:Z,xKeys:z,yKeys:U,scales:n,xAxis:_,yAxis:P,stepX:c,stepY:f,labelAngles:p,xLabels:ee,yLabels:le,debug:Y})}),C.fixed&&ie.jsx("rect",{width:v.chartWidth,height:v.chartHeight,fill:"rgba(255,255,255,0.8)"}),ie.jsx("g",{ref:te=>{te&&!x&&k(te)}})]}),o.tooltips.show&&C.selectedData&&C.currentFacet===e&&ie.jsx(cu,{content:lCt(C.selectedData,s,N==null?void 0:N.content),x:n.x(String(C.selectedData.x))+c/2,y:n.y(String(C.selectedData.y))+f/2,offset:z.length>1?c/2:0,active:!0,sideDistances:G,container:b,onClose:C.onClose,fixed:C.fixed})]})}function uCt({margins:e,captionsSizes:t,settingsId:n,chartSettings:r,chartSizes:a,chartsDimensions:i,facetKeys:o,scales:s,colorScale:c,sizeScale:f,groupedCells:A,cellsMeta:p,step:v,legend:y,aes:b,columnsCount:C,labelAngles:x,onTooltipHintSwitch:k}){let _=d2(k),[P,N]=tn.useState(),I=tn.useRef(null);tn.useEffect(()=>{I.current&&N(I.current)},[]);let F=i[o[0]].padding,Q=i[o[C-1]].padding,Z=e.left+a.chartsWidth+WZ,ee=e.top+F.top;return ie.jsx(v2,{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:Fg}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(m2,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:F.left,rightPadding:Q.right,chartsWidth:a.chartsWidth}),o.map(le=>{let{cells:z}=A[le];return ie.jsx(sCt,{captionsSizes:t,facetKey:le,dimensions:i[le],scales:s,cells:z,cellsMeta:p,stepX:v.x,stepY:v.y,colorScale:c,sizeScale:f,chartSettings:r,aes:b,labelAngles:x,margins:e,chartSizes:a,tooltipsData:_,tooltipsContainer:P},le)})]}),ie.jsx("g",{transform:`translate(${Z},${ee})`,children:ie.jsx(g2,{legendData:y})}),ie.jsx("g",{ref:I,style:{outline:"none"}})]})})}var cCt=(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 fCt(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])),cCt(t,r)}var dCt=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:Og,bottom:Og,left:Og,right:Og});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:zo().domain(["null"]).range([1]),y:zo().domain(["null"]).range([1])});Be(this,"step",{x:10,y:10});Be(this,"colorScale",Zr().domain([0,1]).range(["white","black"]));Be(this,"sizeScale",iv().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=Gh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Og,bottom:Og,left:Og,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=f2(this.colorScale,[c[0],c[c.length-1]]),A=t.label??t.value,p=Zr([f[0],f[f.length-1]],[i,0]);a.push({id:"colorValue",type:"continuous",scale:this.colorScale,tickPositionScale:p,values:f,title:A,...s});let v=n.label??n.value,y=this.sizeScale.ticks(3),b=this.sizeScale.tickFormat(3),C=y.reduce((N,I)=>(N[String(I)]=b(I),N),{});if(a.push({id:"sizeValue",type:"size",title:v,scale:this.sizeScale,values:y,labels:C,...s}),!a.length){this.legend={width:0,height:0,items:[]};return}let x=w2(a,o,i),k=x[x.length-1],_=k.left+k.width+2*WZ,P=this.chartsDimensions[r[0]].padding;this.legend={width:_,height:o+P.top,items:x}}updateCaptionsSize(e,t,n){let r=new Ac("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 b of a){let C=r.getTextWidth(o[b]);C>c&&(c=C)}for(let b of i){let C=r.getTextWidth(s[b]);C>f&&(f=C)}let{xCaptionTail:A,yCaptionTail:p}=iCt(this.labelAngles,this.step,e,r),v=this.labelAngles.xAxisLabels/180*Math.PI,y=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:A,yCaptionTail:p,xAxisCaptions:c*Math.sin(v)||hE,yAxisCaptions:f*Math.sin(y)||hE}}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((p,v)=>{let y=v%this.columnsCount+1,b=rZ(v,e.length,this.columnsCount,this.rowsCount),C=this.chartSizes.chartWidth,x=this.chartSizes.chartHeight,k=rCt(n,r,this.captionsSizes,b,e,this.step.x,this.step.y);function _(Q){return Math.max(f1[Q].reduce((Z,ee)=>Z+k[Q][ee],0),qwt)}let P={left:_("left"),right:_("right"),top:_("top"),bottom:_("bottom")};P.left<this.captionsSizes.xCaptionTail&&(P.left=this.captionsSizes.xCaptionTail),P.bottom<this.captionsSizes.yCaptionTail&&(P.bottom=this.captionsSizes.yCaptionTail);let N=aCt(k,C,x),I=C+P.left+P.right,F=x+P.top+P.bottom;this.chartsDimensions[p]={left:s,top:c,inner:{width:C,height:x},outer:{width:I,height:F},padding:P,sideElementBBoxes:N,chartEdgeSides:b},s+=I,y===this.columnsCount&&(s=0,c+=F)});let f=e.slice(0,this.columnsCount).reduce((p,v)=>p+this.chartsDimensions[v].outer.width,0),A=e.filter((p,v)=>v%this.columnsCount===0).reduce((p,v)=>p+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=(b,C={})=>[...b].sort((x,k)=>n.sorting==="asc"?(C[x]??x).localeCompare(C[k]??k,"en",{numeric:!0}):(C[k]??k).localeCompare(C[x]??x,"en",{numeric:!0})),f=(b,C={})=>[...b].sort((x,k)=>r.sorting==="asc"?(C[x]??x).localeCompare(C[k]??k,"en",{numeric:!0}):(C[k]??k).localeCompare(C[x]??x,"en",{numeric:!0})),A=c(s.xKeys,s.xLabels),p=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/p.length);let v=new Array(A.length).fill(null).map((b,C)=>C*this.step.x),y=new Array(p.length).fill(null).map((b,C)=>C*this.step.y);this.scales.x=zo().domain(A).range(v),this.scales.y=zo().domain(p).range(y)}updateAesScale(e,t,n,r){this.colorScale=Zr().domain(fCt(r,e.colorsList.length,n)).range(e.colorsList),this.sizeScale=iv(t,[e.minRadius,e.maxRadius])}render(e,t,n,r,a,i,o,s,c,f){var P;let{meta:A,facets:p}=a,{valueExtentSize:v,valueExtentColor:y}=A,{xAxis:b,yAxis:C,title:x,size:k}=t;this.updateChartsSizes(a,k),this.updateAesScale(c,v,y,s),this.updateScales(a,k,t.xAxis,t.yAxis),this.updateCaptionsSize(a,b,C),this.updateChartDimensions(r,n,b,C),this.updateLegendSize(t.legend,i,o,r),this.updateMargins(x);let _=ie.jsx(uCt,{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:p,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step,onTooltipHintSwitch:f});this.component=_,(P=this.reactRoot)==null||P.render(_)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Uv,{message:e}))}},ACt=dCt,XZ=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,p,v,y;I2t.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:((p=e.aes)==null?void 0:p.colorsList)??["black","white","red"],cellStrokeColor:((v=e.aes)==null?void 0:v.cellStrokeColor)??$t,emptyCellColor:((y=e.aes)==null?void 0:y.emptyCellColor)??"white"}}},pCt=class extends Ng{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new ACt);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new XZ(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 XZ(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(),gy(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?bZ([...c]):[["null"]],A=t.map(v=>v.value)??null;this.data.setGrouping([...A]);let p=Jwt(this.data,n,r,a,i,t,f,o,s);this.calculatedData={facetKeys:p.meta.facetKeys,groupedCellsData:p}}_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 hCt(e){return"type"in e&&e.type==="columns"}var KZ=class OI{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 OI)return t;if(hCt(t))return new OI(t.id,t.values);uA(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}},vCt=class QI{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 v9t(t,n,r);if(a==="dendro")return new f7t(t,n,r);if(a==="scatterplot")return new mwt(t,n,r);if(a==="scatterplot-umap")return new Ywt(t,n,r);if(a==="heatmap")return new q9t(t,n,r);if(a==="histogram")return new k4t(t,n,r);if(a==="bubble")return new pCt(t,n,r);uA(a,`Unknown chart type: ${a}`)}static newPlot(t,n,r){let a=KZ.from(t);return new this(QI.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=QI.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(KZ.from(t),n)}updateChartState(t,n){this.chart.updateChartState(t,n)}export(){return this.chart.export()}};/*! Bundled license information:
15130
15130
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/graph-maker",
3
- "version": "1.1.114",
3
+ "version": "1.1.115",
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.110",
35
+ "@milaboratories/miplots4": "^1.0.111",
36
36
  "@milaboratories/pf-plots": "^1.1.18",
37
37
  "@platforma-sdk/model": "^1.30.37",
38
38
  "@platforma-sdk/ui-vue": "^1.30.26",