@milaboratories/graph-maker 1.1.124 → 1.1.125

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.
@@ -91009,7 +91009,7 @@ var YSt = class {
91009
91009
  _e(this, "lassoMode", !1);
91010
91010
  _e(this, "onPolygonUpdate", (e) => {
91011
91011
  this.polygon = e, this.updateByLasso();
91012
- let t = this.allDots.filter((n) => this.polygon.length > 2 && Yb(this.polygon, [n.x, n.y])).map((n) => Number(n.data.key));
91012
+ let t = this.allDots.filter((n) => this.polygon.length > 2 && Yb(this.polygon, [n.x, n.y])).map((n) => n.idx);
91013
91013
  this.onPolygonUpdateOutside(t);
91014
91014
  });
91015
91015
  }
@@ -91300,7 +91300,7 @@ var aEt = class extends u2 {
91300
91300
  if (S[t.value] === null || S[n.value] === null) return E;
91301
91301
  let D = Number(S[t.value]), I = Number(S[n.value]);
91302
91302
  c.x && D !== null && D < 0 && (c.x = !1), c.y && I !== null && I < 0 && (c.y = !1), D !== null && D < f.minX && (f.minX = D), D !== null && D > f.maxX && (f.maxX = D), I !== null && I < f.minY && (f.minY = I), I !== null && I > f.maxY && (f.maxY = I);
91303
- let H = (r == null ? void 0 : r.valueLabels) ?? (r == null ? void 0 : r.value), N = { x: D, y: I, id: String(_), dimmed: a ? !S[a.value] : !1, label: H && S[H] ? String(S[H]) : null, data: S };
91303
+ let H = (r == null ? void 0 : r.valueLabels) ?? (r == null ? void 0 : r.value), N = { x: D, y: I, id: String(_), idx: _, dimmed: a ? !S[a.value] : !1, label: H && S[H] ? String(S[H]) : null, data: S };
91304
91304
  if (A) {
91305
91305
  let O = i.map((X) => S[X.value]).join("_");
91306
91306
  d.add(O), h[O] || (h[O] = []), h[O].push(N);
@@ -15125,7 +15125,7 @@ void main() {
15125
15125
  `)),k(!0)}let K=ie.jsxs("g",{className:cK,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:w4t(v,c),d:m4t(A,h,v,g,C),fill:Vt}),ie.jsxs("g",{fontSize:"14px",fontFamily:"Manrope",fill:"white",transform:y4t(v,A,h,c,g,C),children:[e.map((te,le)=>ie.jsx("text",{x:JC,y:ZC+BM*le+BM/2,dominantBaseline:"central",children:te},le)),a&&ie.jsxs("g",{transform:b,children:[ie.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4.0006 2.93945L8.0006 6.93945L12.0006 2.93945L13.0613 4.00011L9.06126 8.00011L13.0613 12.0001L12.0006 13.0608L8.0006 9.06077L4.0006 13.0608L2.93994 12.0001L6.93994 8.00011L2.93994 4.00011L4.0006 2.93945Z",fill:P?sK:uK}),ie.jsx("rect",{x:"-8",y:"-8",width:"24",height:"24",fill:"transparent",onClick:s,onMouseOver:()=>I(!0),onMouseLeave:()=>I(!1),style:{cursor:"pointer"}})]}),a&&ie.jsxs("g",{transform:B,children:[E?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:$?sK:uK})}),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:O,onMouseOver:()=>z(!0),onMouseLeave:()=>z(!1),style:{cursor:"pointer"}})]})]})]});return i===null?K:cu.createPortal(K,i)}function S4t(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 x4t(e,t){return[`X: ${t[e.x]}`,`Node: ${e.y}`,`Value: ${S4t(e.value)}`]}function E4t({heatmapData:e,scales:t,step:n,colorScale:r,tooltipsContainer:a,chartSizes:i,selectedNode:o,labels:s}){let{xKeys:c,yKeys:f,cells:A,meta:h}=e,[v,g]=tn.useState(null),C={left:i.treeWidth+30+Qu.LEFT,right:i.heatmapWidth+Qu.RIGHT,top:Qu.TOP,bottom:i.heatmapHeight+Qu.BOTTOM};return ie.jsxs("g",{onMouseLeave:()=>g(null),children:[s.length&&ie.jsx("g",{transform:"translate(0,-8)",children:c.map((b,B)=>ie.jsxs("text",{x:t.x(b)+2,fontWeight:"500",children:[ie.jsx("title",{children:h.xLabels[b]}),s[B]]},b))}),c.map(b=>f.map(B=>{var k;let E=(k=A==null?void 0:A[b])==null?void 0:k[B];return ie.jsx("rect",{x:t.x(b),y:t.y(B),width:n.x,height:n.y,stroke:"white",strokeWidth:"1px",fill:E?r(E==null?void 0:E.value):t3t,onMouseOver:()=>{(E==null?void 0:E.value)!==null&&typeof(E==null?void 0:E.value)<"u"?g(E):g(null)},opacity:o&&o.data.rawData[0].id!==(E==null?void 0:E.data.id)?CM:1},E?E.id:`${b}_${B}`)})),s.length&&ie.jsx("line",{x1:"0",x2:i.heatmapWidth,y1:"0",y2:"0",stroke:Vt,strokeWidth:"1px"}),v&&a&&ie.jsx(fu,{content:x4t(v,e.meta.xLabels),x:t.x(v.x)+n.x/2,y:t.y(v.y)+n.y/2,offset:c.length>1?n.x/2:0,active:!0,fixed:!1,sideDistances:C,container:a})]})}function B4t(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"?D4e(i?M4e:k4e).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 fK({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:B4t(o,t,n),stroke:i?n3t:a.lineColor(f),strokeWidth:i?2:1,fill:"none"},`${o.source.id},${o.target.id}`)})})}function b9(e){return Zr().domain([0,1]).range([e,Vt])(.25)}var qC=1.4;function Yc(e,t=6,n=Vt,r=null){switch(e){case null:return"";case"0":return ie.jsx("path",{d:`M -${t},-${t} l ${t*2},0 l 0,${t*2} l -${t*2},0 l 0,-${t*2}z`,fill:"none",stroke:n});case"1":return ie.jsx("path",{d:`M -${t},0 a ${t},${t} 0 1,0 ${t*2},0 a ${t},${t} 0 1,0 -${t*2},0z`,fill:"none",stroke:n});case"2":return ie.jsx("path",{d:`M0,-${t}L ${2*t*Math.tan(Math.PI/6)},${t}L ${-2*t*Math.tan(Math.PI/6)},${t}z`,fill:"none",stroke:n});case"3":return ie.jsx("path",{d:`M0,-${t}L 0,${t} M -${t},0 L ${t},0`,fill:"none",stroke:n});case"4":return ie.jsx("path",{d:`M-${t},-${t}L ${t},${t} M ${t},-${t} L -${t},${t}`,fill:"none",stroke:n});case"5":{let a=t*qC;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*qC;return ie.jsx("path",{d:`M0,-${a}L ${a},0 L 0,${a} L -${a},0z M0,-${a}L 0,${a} M -${a},0 L ${a},0`,fill:"none",stroke:n})}case"10":return ie.jsx("path",{d:`M -${t},0 a ${t},${t} 0 1,0 ${t*2},0 a ${t},${t} 0 1,0 -${t*2},0z M0,-${t}L 0,${t} M -${t},0 L ${t},0`,fill:"none",stroke:n});case"11":{let a=2*t*Math.tan(Math.PI/6);return ie.jsx("path",{d:`M-${a},-${t}L${a},-${t}L0,${-t+2*a}z
15126
15126
  M-${a},${t}L0,${t-2*a}L${a},${t}z`,fill:"none",stroke:n})}case"12":return ie.jsx("path",{d:`M -${t},-${t} l ${t*2},0 l 0,${t*2} l -${t*2},0 l 0,-${t*2}z M0,-${t}L 0,${t} M -${t},0 L ${t},0`,fill:"none",stroke:n});case"13":return ie.jsx("path",{d:`M -${t},0 a ${t},${t} 0 1,0 ${t*2},0 a ${t},${t} 0 1,0 -${t*2},0z M-${t},-${t}L ${t},${t} M ${t},-${t} L -${t},${t}`,fill:"none",stroke:n});case"14":return ie.jsx("path",{d:`M -${t},-${t} l ${t*2},0 l 0,${t*2} l -${t*2},0 l 0,-${t*2}z M-${t},${t}L0,${-t}L${t},${t}`,fill:"none",stroke:n});case"15":return ie.jsx("path",{d:`M -${t},-${t} l ${t*2},0 l 0,${t*2} l -${t*2},0 l 0,-${t*2}z`,fill:n,stroke:n});case"16":return ie.jsx("path",{d:`M -${t},0 a ${t},${t} 0 1,0 ${t*2},0 a ${t},${t} 0 1,0 -${t*2},0z`,fill:n,stroke:n});case"17":return ie.jsx("path",{d:`M0,-${t}L ${2*t*Math.tan(Math.PI/6)},${t}L ${-2*t*Math.tan(Math.PI/6)},${t}z`,fill:n,stroke:n});case"18":{let a=t*qC;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??b9(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??b9(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??b9(n)});case"23":{let a=t*qC;return ie.jsx("path",{d:`M0,-${a}L ${a},0 L 0,${a} L -${a},0z`,fill:n,stroke:r??b9(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??b9(n)});default:d1(e,`Unknown point shape ${e}`)}}var _4t=12;function dK({nodes:e,rootPosition:t,showLeavesLabels:n,showNodesLabels:r,aesGetters:a,selectedNodeId:i,onClick:o,onSelectedUpdate:s}){let c=t==="top",[f,A]=tn.useState(null);return tn.useEffect(()=>{A(null)},[i]),ie.jsxs(ie.Fragment,{children:[ie.jsx("g",{children:e.map(h=>{let v=h.data.rawData[0],g=a.nodeSize(v),C=a.nodeColor(v),b=c?h.x:h.y,B=c?h.y:h.x;return ie.jsx("g",{transform:`translate(${b},${B})`,style:{cursor:"pointer"},onClick:E=>{E.stopPropagation(),o({x:b+Qu.LEFT,y:B+Qu.TOP,info:h.data.rawData}),s(h)},children:ie.jsx("g",{children:ie.jsx("circle",{cx:0,cy:0,r:g+_4t,fill:i===h.id?KX:f===h.id?C:"transparent",opacity:CM,onMouseOver:()=>A(h.id??null),onMouseLeave:()=>A(null)})})},h.id)})}),ie.jsx("g",{children:e.map(h=>{let v=h.data.rawData[0],g=a.nodeShape(v),C=a.nodeSize(v),b=a.nodeColor(v),B=c?h.x:h.y,E=c?h.y:h.x;return ie.jsx("g",{transform:`translate(${B},${E})`,style:{cursor:"pointer"},onClick:k=>{k.stopPropagation(),o({x:B+Qu.LEFT,y:E+Qu.TOP,info:h.data.rawData}),s(h)},children:ie.jsx("g",{onMouseOver:()=>A(h.id??null),onMouseLeave:()=>A(null),children:Yc(g,C,i===h.id?KX:b)})},h.id)})}),ie.jsx("g",{children:e.map(h=>{let v=h.data.rawData[0],g=a.nodeSize(v),C=c?h.x:h.y,b=c?h.y:h.x;return ie.jsx("g",{transform:`translate(${C},${b})`,style:{pointerEvents:"none"},children:(r&&h.children||n&&!h.children)&&ie.jsx("text",{x:g+4,y:"4",paintOrder:"stroke",stroke:"white",strokeWidth:"3",children:h.data.label})},h.id)})})]})}var AK=14,eS=12,C9=12,tS=-12;function T4t({aes:e,label:t}){let n=Yc(e.shape,e.size,e.color);return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${C9/2},${C9/2})`,children:n}),ie.jsx("text",{x:C9+8,y:C9/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function k4t({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:tS,children:n.title}),ie.jsx("rect",{x:"0",y:"0",width:AK,height:n.height,stroke:Vt,fill:`url(#${n.id})`}),ie.jsx("g",{transform:`translate(${AK},0)`,children:n.values.map(i=>{let o=a-r,s=o>0?n.height*(i-r)/o:0;return ie.jsxs("g",{transform:`translate(0,${s})`,children:[ie.jsx("line",{x1:"0",x2:-4,stroke:Vt}),ie.jsx("text",{x:8,y:4,children:i})]},i)})}),!1]},n.id)}if(n.type==="discrete")return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:tS,children:n.title}),n.values.map((r,a)=>ie.jsxs("g",{transform:`translate(0, ${a*(eS+4)})`,children:[ie.jsx("rect",{x:"0",y:"0",width:eS,height:eS,fill:n.scale(r),rx:"1",ry:"1"}),ie.jsx("text",{x:eS+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:tS,children:n.title}),n.values.map((r,a)=>ie.jsx("g",{transform:`translate(0, ${a*(C9+4)})`,children:ie.jsx(T4t,{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:tS,children:n.title}),n.values.map((a,i)=>{let o=n.scale(a);return ie.jsxs("g",{transform:`translate(0, ${i*r})`,children:[ie.jsx("circle",{r:o,cx:r/2,cy:r/2,fill:Vt}),ie.jsx("text",{x:r+4,y:r/2,alignmentBaseline:"central",children:n.labels[a]})]},a)}),!1]},n.id)}})]})}function hK(e){if(!e)return null;let t=new Set,n=e;for(;n;)t.add(n.id),n=n.parent;return t}function M4t({chartSettings:e,chartSizes:t,nodes:n,links:r,connectionType:a,rootPosition:i,edgeInheritance:o,showNodes:s,showEdges:c,showLeavesLabels:f,showNodesLabels:A,aesGetters:h,labels:v,heatmapData:g,heatmapScales:C,heatmapStep:b,heatmapColor:B,heatmapLabels:E,legendData:k,onClick:P}){let I=tn.useRef(null),[$,z]=tn.useState(null),O=tn.useRef(null);tn.useEffect(()=>{O.current&&z(O.current);function X(){te(null),G(null)}function ee(pe){Object.entries(pe.detail).forEach(([ae,ge])=>{if(ae==="selectedNode"){let me=n.find(fe=>fe.data.rawData[0].id===ge)??null;te(hK(me)),G(me)}})}return document.addEventListener("click",X),document.addEventListener(SM,ee),()=>{document.removeEventListener("click",X),document.removeEventListener(SM,ee)}},[]);let[K,te]=T8.useState(null),[le,G]=T8.useState(null),Q=K!==null,j={connectionType:a,rootPosition:i,edgeInheritance:o,aesGetters:h},Y={rootPosition:i,showLeavesLabels:f,showNodesLabels:A,aesGetters:h,labels:v,onClick:P,selectedNodeId:le==null?void 0:le.id,onSelectedUpdate:X=>{te(hK(X)),G(X)}};return ie.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${t.totalWidth} ${t.totalHeight}`,ref:I,width:t.totalWidth,height:t.totalHeight,children:[ie.jsx("defs",{children:Qm}),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:Q?CM:1,children:[c&&ie.jsx(fK,{links:r.filter(X=>{let{source:ee,target:pe}=X;return!K||!(K.has(ee.id??"")&&K.has(pe.id??""))}),selected:!1,...j}),s&&ie.jsx(dK,{nodes:n.filter(X=>!X.data.isFake&&!(K!=null&&K.has(X.id??""))),...Y})]}),Q&&ie.jsxs("g",{children:[c&&ie.jsx(fK,{links:r.filter(X=>{let{source:ee,target:pe}=X;return K.has(ee.id??"")&&K.has(pe.id??"")}),selected:!0,...j}),s&&ie.jsx(dK,{nodes:n.filter(X=>!X.data.isFake&&(K==null?void 0:K.has(X.id??""))),...Y})]}),g!==null&&ie.jsx("g",{transform:`translate(${t.treeWidth+30},0)`,children:ie.jsx(E4t,{heatmapData:g,scales:C,step:b,colorScale:B,chartSizes:t,labels:E,selectedNode:le,tooltipsContainer:$})}),e.legend.show&&ie.jsx("g",{transform:`translate(${t.treeWidth+30+t.heatmapWidth+30},0)`,children:ie.jsx(k4t,{legendData:k})})]}),ie.jsx("g",{ref:O})]})}function Xv({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 S9(e){if(JX(e))return t=>e.valuesMap[String(t[e.columnName.value])];if(oh(e)){let{domain:t,range:n}=e,r=cv().domain(t).range(n);return a=>{let i=r(Number(a[e.columnName.value]));return Math.max(1,i)}}return t=>e}function P4t(e){return{nodeShape:S9(e.nodeShape),nodeColor:S9(e.nodeColor),nodeSize:S9(e.nodeSize),lineShape:S9(e.lineShape),lineColor:S9(e.lineColor)}}var H4t=(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 D4t(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 $4t=class{constructor(){Be(this,"component",ie.jsx(ie.Fragment,{}));Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"chartSizes",{treeWidth:600,treeHeight:350,heatmapWidth:0,heatmapHeight:0,totalWidth:1200+Qu.LEFT+Qu.RIGHT,totalHeight:350+Qu.TOP+Qu.BOTTOM,labelsOffset:0});Be(this,"legend",{width:0,height:0,items:[]});Be(this,"heatmapScales",{x:Qo().domain(["null"]).range([1]),y:Qo().domain(["null"]).range([1])});Be(this,"heatmapStep",{x:0,y:0});Be(this,"heatmapColorScale",{scale:Qo([]),getter:()=>"white"});Be(this,"heatmapLabels",[])}clear(){var e;this.parentNode&&this.rootNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),this.parentNode=null,this.rootNode=null),setTimeout(()=>{var t;(t=this.reactRoot)==null||t.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.reactRoot=Wh(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(B=>r[B].length),f=c.reduce((B,E)=>B+E,0),A=this.chartSizes.treeHeight/o.length,h=Math.min(Math.max((400-(c.filter(B=>B>0).length-1)*s)/f,n.minCellWidth),n.maxCellWidth),v=[],g=0;a.forEach(B=>{let E=r[B];E.forEach(()=>{v.push(g),g+=h}),E.length>0&&(g+=s)}),this.heatmapScales.x=Qo().domain(i).range(v),this.heatmapScales.y=Qo().domain(o).range(o.map((B,E)=>E*A)),this.heatmapStep.x=h,this.heatmapStep.y=A;let{colorsList:C,colorsMap:b}=t.aes;if(t.valueType==="continuous"&&C){let B=Zr().domain(H4t(C.length,e.meta.valueExtent)).range(C);this.heatmapColorScale={scale:B,getter:E=>B(E)}}if(t.valueType==="discrete"&&b){let B=Object.keys(b).filter(E=>e.meta.uniqueValues.has(E));this.heatmapColorScale={scale:Qo(B,B.map(E=>b[E])).unknown(v9),getter:E=>E?b[E]??v9:v9}}if(t.valueType==="stringSource"&&C){let B=[...e.meta.uniqueValues],E=Qo(B,B.map((k,P)=>C[P%C.length])).unknown(v9);this.heatmapColorScale={scale:E,getter:k=>k?E(k):v9}}this.chartSizes.heatmapWidth=this.heatmapScales.x(e.xKeys[e.xKeys.length-1])+this.heatmapStep.x}updateLegendSize(e,t,n,r,a,i){if(!e.show){this.legend={width:0,height:0,items:[]};return}let o=new hc("600 14px Arial"),s=16,c=48,f=20,A=24;function h(I,$){return Math.max(...I.map(z=>o.getTextWidth(String(z))+f),o.getTextWidth($))}let v=[];[n.nodeColor,n.nodeShape,n.lineColor].filter(JX).map(I=>I.columnName).forEach(I=>{let $=t[I.value];if($.usedAes.length===0||!$.aesMap)return;let z=I.label??I.value,O=$.values,K={};O.forEach(te=>{K[te]||(K[te]={...Gv}),$.usedAes.forEach(le=>{var G,Q,j;(le==="dotFill"||le==="lineColor")&&(K[te].color=((G=$.aesMap[te])==null?void 0:G[le])??Vt),le==="dotShape"&&(K[te].shape=((Q=$.aesMap[te])==null?void 0:Q[le])??"21"),le==="dotSize"&&(K[te].size=((j=$.aesMap[te])==null?void 0:j[le])??3)})}),v.push({columnKey:z,data:K,values:$.values,labels:$.labels})});let g=[],C=0,b=0,B=0,E=Math.min(this.chartSizes.treeHeight,400);if(r&&a){let I=i.valueType,$=r.label??r.value;if(I==="continuous"){let z=this.heatmapColorScale.scale,O=A3(z,a.meta.valueExtent,4),K={id:"heatmapValue",type:"continuous",width:oK(O,$),height:E,left:0,top:0,title:$,scale:z,values:O,labels:{}};g.push(K),b=K.height+c,C=K.width}else{let z=this.heatmapColorScale.scale,O=s4t(z,$),K=z.domain(),te=K.length*s,le={id:"heatmapValue",type:"discrete",width:O,height:te,left:0,top:0,title:$,scale:z,values:K,labels:{}};g.push(le),b=le.height+c,C=le.width}}if(v.map(({columnKey:I,labels:$,values:z,data:O})=>{b>E&&(b=0,B+=C+A);let K=I,te=h(z.map(Y=>$[Y]),K),le=z.length*s;le>E&&(E=le);let G=Qo().domain(z).range(z.map(Y=>O[Y])),Q=B,j=b;g.push({id:I,type:"nodes",width:te,height:le,left:Q,top:j,title:K,scale:G,values:z,labels:$}),C=te,b+=le+c}),oh(n.nodeSize)){b>E&&(b=0,B+=C+A);let{columnName:I,domain:$,range:z}=n.nodeSize,O=I.label??I.value,K=cv($,z),te=K.ticks(3),le=K.tickFormat(3),G=te.reduce((ee,pe)=>(ee[String(pe)]=le(pe),ee),{}),Q=h(te.map(ee=>G[ee]),O),j=(K(Math.max(...te))*2+4)*te.length;j>E&&(E=j);let Y=B,X=b;g.push({id:I.value,type:"size",width:Q,height:j,left:Y,top:X,title:O,scale:K,values:te,labels:G}),C=Q,b+=j+c}let k=B+C+2*YC,P=E;this.legend={width:k,height:P,items:g}}updateChartSizes(e,t,n){let r=n.leaves().length;this.chartSizes.treeWidth=t?e.width/2:e.width;let a=D4t(r,e.scale,e.minCellHeight,e.maxCellHeight)*r;this.chartSizes.treeHeight=a,this.chartSizes.heatmapHeight=a}updateTotalSizes(e){this.chartSizes.totalWidth=this.chartSizes.treeWidth+this.chartSizes.heatmapWidth+this.legend.width+Qu.LEFT+Qu.RIGHT,e&&(this.chartSizes.totalWidth+=30),this.legend.width>0&&(this.chartSizes.totalWidth+=30),this.chartSizes.totalHeight=Math.max(this.chartSizes.treeHeight,this.legend.height)+Qu.TOP+Qu.BOTTOM}prepareTableLabels(e){let t=new hc("bold 14px Arial"),n="…";if(this.heatmapStep.x<12||!e){this.heatmapLabels=[];return}let r=this.heatmapStep.x-4;this.heatmapLabels=e.xKeys.map(a=>{let i=e.meta.xLabels[a],o=t.getTextWidth(i);if(o<r)return i;let s=i,c=s==null?void 0:s.length;for(;o>r&&c>0;)c--,s=(i==null?void 0:i.substring(0,c))+n,o=t.getTextWidth(s);return c>0?s:""})}addLabelsWidthToTreeArea(e,t){if(!t)return;let n=e.leaves(),r=new hc("bold 14px Manrope"),a=0;n.forEach(i=>{if(!i.data.label)return;let o=r.getTextWidth(i.data.label),s=i.y+o-this.chartSizes.treeWidth+8;s>a&&(a=s)}),this.chartSizes.treeWidth+=a}render(e,t,n,r,a,i,o,s,c,f,A,h,v,g,C,b,B){var $;this.updateChartSizes(e.size,v,t),this.updateHeatmapScales(v,g,e.size),this.updateLegendSize(e.legend,C,f,h,v,g),this.prepareTableLabels(v);let E=r==="top"?[this.chartSizes.treeWidth,this.chartSizes.treeHeight]:[this.chartSizes.treeHeight,this.chartSizes.treeWidth];$B().size(E).separation(()=>1)(t);let k=t;l3t(k,r==="top"?this.chartSizes.treeHeight:this.chartSizes.treeWidth,b==="alignLeavesToLine"),s3t(k),this.addLabelsWidthToTreeArea(k,s),this.updateTotalSizes(v);let P=P4t(f),I=ie.jsx(M4t,{chartSizes:this.chartSizes,chartSettings:e,nodes:k.descendants(),links:k.links(),connectionType:n,rootPosition:r,edgeInheritance:a,showNodes:i,showEdges:o,showLeavesLabels:s,showNodesLabels:c,aesGetters:P,labels:A,heatmapData:v,heatmapScales:this.heatmapScales,heatmapStep:this.heatmapStep,heatmapColor:this.heatmapColorScale.getter,heatmapLabels:this.heatmapLabels,legendData:this.legend,onClick:B});this.component=I,($=this.reactRoot)==null||$.render(I)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Xv,{message:e}))}},I4t=$4t,pK=class{constructor(e){Be(this,"type","dendro");Be(this,"chartSettings");Be(this,"mode");Be(this,"leavesMode");Be(this,"id");Be(this,"parentId");Be(this,"height",null);Be(this,"labels");Be(this,"heatmapAnnotation");Be(this,"heatmapAxis");Be(this,"heatmapGroup");Be(this,"heatmapSettings");Be(this,"connectionType","rectangle");Be(this,"edgeInheritance","up");Be(this,"rootPosition","top");Be(this,"showNodes",!0);Be(this,"showEdges",!0);Be(this,"showLeavesLabels",!0);Be(this,"showNodesLabels",!0);Be(this,"aes",{nodeShape:"21",nodeColor:Vt,nodeSize:3,lineShape:"solid",lineColor:Vt});var t,n,r,a,i,o,s,c,f,A;J3t.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)??q5t,maxCellWidth:((i=e==null?void 0:e.size)==null?void 0:i.maxCellWidth)??e3t,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 nS(e){return typeof e!="object"?!1:"valuesMap"in e}function vK(e,t){let{nodeColor:n,nodeShape:r,lineColor:a}=t,i=[n,r,a].filter(nS);return Zn.uniqBy(i,o=>o.columnName.value).reduce((o,s)=>{let{columnName:c}=s,f=Zn.uniqBy(e.rows,C=>C[c.value]),A=C=>String(C[c.value]),h=C=>c.valueLabels?String(C[c.valueLabels]):A(C),v=new Set,g=f.reduce((C,b)=>{let B=A(b);return C[B]||(C[B]={}),C},{});return nS(n)&&c.value===n.columnName.value&&(v.add("dotFill"),f.forEach(C=>{let b=A(C);g[b].dotFill=n.valuesMap[b]})),nS(r)&&c.value===r.columnName.value&&(v.add("dotShape"),f.forEach(C=>{let b=A(C);g[b].dotShape=r.valuesMap[b]})),nS(a)&&c.value===a.columnName.value&&(v.add("lineColor"),f.forEach(C=>{let b=A(C);g[b].lineColor=a.valuesMap[b]})),o[c.value]={values:f.map(A).sort(),usedAes:[...v],aesMap:g,labels:f.reduce((C,b)=>(C[A(b)]=h(b),C),{})},o},{})}var L4t=class extends zm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"onClick",()=>nI);Be(this,"chartRenderer",new I4t);Be(this,"calculatedData",null);this.settings=new pK(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 pK(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(SM,{detail:{[t]:n}});document.dispatchEvent(r)}}export(){return this._updateChart(),w5(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var A,h;let{mode:r,id:a,parentId:i,heatmapAnnotation:o,heatmapAxis:s,heatmapGroup:c}=n;function f(v,g){return v.length!==g.length||v.some((C,b)=>C.value!==g[b].value)}return t.mode!==r||t.id.value!==a.value||t.parentId.value!==i.value||((A=t.heatmapAnnotation)==null?void 0:A.value)!==(o==null?void 0:o.value)||((h=t.heatmapAxis)==null?void 0:h.value)!==(s==null?void 0:s.value)||f(t.heatmapGroup,c)}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{mode:t,id:n,parentId:r,aes:a,heatmapAnnotation:i,heatmapAxis:o,heatmapGroup:s,heatmapSettings:c,height:f,labels:A}=this.settings,h=o3t(n.value,r.value,(f==null?void 0:f.value)??null,A.valueLabels??A.value??null,this.data.rows,t==="useAllNodesAsLeaves"),v=r3t(this.data,c.valueType,i,o,s,n,h),g=vK(this.data,a);this.calculatedData={chartSizes:this.chartRenderer.chartSizes,hierarchy:h,heatmapData:v,legendLabels:g}}_updateAesInData(){this.calculatedData&&(this.calculatedData.legendLabels=vK(this.data,this.settings.aes))}_updateChart(){if(!this.calculatedData)return;let{heatmapAnnotation:t,chartSettings:n,connectionType:r,edgeInheritance:a,rootPosition:i,showNodes:o,showEdges:s,showLeavesLabels:c,showNodesLabels:f,aes:A,labels:h,heatmapSettings:v,leavesMode:g}=this.settings;this.chartRenderer.render(n,this.calculatedData.hierarchy,r,i,a,o,s,c,f,A,h,t,this.calculatedData.heatmapData,v,this.calculatedData.legendLabels,g,this.onClick)}},J1=Symbol("noGrouped");function R4t(e){return"type"in e&&e.type==="columns"}var mK=class F${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 F$)return t;if(R4t(t))return new F$(t.id,t.values);d1(t,"Unknown input data format")}get rows(){let t=[];for(let n=0;n<this.rowsCount;n++)t.push(this.columnNames.reduce((r,a)=>(r[a]=this.data[a][n],r),{}));return t}getColumn(t){return this.data[t]}getColumnCategories(t,n=!0){if(!this.columnNames.includes(t))throw new Error(`Column ${t} does not exist`);return Zn.uniq(this.getColumn(t)).filter(r=>n?r!==null:!0).map(String)}setGrouping(t){let n={grouped:{},rows:this.rows},r=[n];t.forEach(a=>{let i=a===null?[J1]:this.getColumnCategories(a,!1),o=[];r.forEach(s=>{if(a===null)s.grouped={[J1]:{rows:s.rows,grouped:{}}},o.push(s.grouped[J1]);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];if(!a)return[];n=a}),n==null?void 0:n.rows}};function Md(e){return e.map(String).join("_")}function V4t(e,t,n,r){let a=-1/0;return{type:"logo",geoms:t.facet.reduce((i,o)=>{let s=Md(o);return i[s]=[],t.primary.forEach(c=>{let f=0,A={};t.secondary.forEach(v=>{let g=n.getRowsByGrouping([...o,c,v]);if(!g.length)return;let C=lc(g,b=>Number(b[r.value]));A[String(v)]={height:C,key:String(v)},f+=C});let h=f;e.normalize&&t.secondary.forEach(v=>{A[String(v)]&&(A[String(v)].height=A[String(v)].height/h*100)}),a=Math.max(a,f),i[s].push({key:`logo_${String(c)}`,valuesMap:A,primaryGrouping:c,boundsY:{min:0,max:e.normalize?h:100}})}),i},{}),meta:{minY:0,maxY:e.normalize?100:a,normalize:e.normalize},aes:e.aes}}var N4t={TOP:30,BOTTOM:30},dp=30,z4t=6,x9=20,TM=15,O4t=24,p3=25,F4t=12,gK={fillColor:"white",lineColor:Vt,lineWidth:1,lineShape:"solid",dotSize:3,dotFill:Vt,dotShape:"21"},kM=20,yK=4,zf=4,wK=36,bK=25;function Q4t(e){return`translate(${e},0)`}function j4t(e){return`translate(0,${e})`}var E9=21;function U4t(e,t){if(e==="45deg"){let n=t==="left"?-E9/2:0,r=t==="bottom"?E9/2:-E9/2;return`translate(${n},${r}) rotate(-45)`}return e==="90deg"&&t==="bottom"?`translate(${-E9/2},${zf+E9/2}) rotate(-90)`:t==="bottom"?`translate(0,${zf})`:`translate(${-zf},0)`}function G4t(e,t){return t==="left"||t==="bottom"&&e==="90deg"?"central":e==="center"?"hanging":"auto"}function Y4t(e,t){return t==="left"||t==="bottom"&&e!=="center"?"end":"middle"}var CK=({scale:e,tickSize:t=6,tickPadding:n=zf,orient:r="bottom",labelsPosition:a="center",labels:i={},offset:o=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function s(B,E){return B.bandwidth&&(E=Math.max(0,B.bandwidth()-E*2)/2),B!=null&&B.round()&&(E=Math.round(E)),k=>{let P=B(k);return P===void 0?0:P+E}}let c=e.domain(),f=B=>i[B]??[],A=Math.max(t,0)+n,h=s(e.copy(),o),v=r==="bottom"?Q4t:j4t,g=r==="left"?-1:1,C={[(r==="left"?"x":"y")+"2"]:g*t},b={[r==="left"?"x":"y"]:g*A};return ie.jsx("g",{children:c.map((B,E)=>ie.jsxs("g",{className:"tick",transform:v(h(B)+o),children:[ie.jsx("line",{stroke:Vt,...C}),ie.jsx("g",{transform:U4t(a,r),children:f(B).map((k,P)=>ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:G4t(a,r),textAnchor:Y4t(a,r),dy:20*P,...b,children:k},`${k}_${P}`))})]},E))})};function SK(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 W4t({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=SK(e,"lineColor",r.lineColor,n),A=SK(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 Ka(e){return isNaN(e)?"?":e===0?"0":Math.abs(e)<.01?ny(".1e")(e):ny(".2f")(e)}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 X4t({facetKey:e,scales:t,orientation:n,geom:r,aes:a,min:i,max:o,binsCount:s,hasKeyFromColumn:c,sideDistances:f,showTooltips:A,activeElementContainer:h,tooltipsContainer:v,tooltipsData:g}){let C=n==="vertical",b=(t.xPrimary(r.primaryGrouping)??0)+(t.xSecondary(r.secondaryGrouping)??0)+t.xSecondary.bandwidth()/2,B=xK(t,"lineColor",a.lineColor,r),E=xK(t,"fillColor",a.fillColor,r),k=r.bins,P=a.dotSize?a.dotSize:Math.abs(t.y(o)-t.y(i))/s/2,I=h&&g.fixed;return ie.jsx("g",{children:k.map(({x:$,count:z,dots:O})=>ie.jsx("g",{children:O.map((K,te)=>{let le=(te-z/2)*2*P+P,G=C?le:0,Q=C?0:le,j=`binnedDot_${r.key}_${K.key}`,Y=g.selectedData===j&&g.currentFacet===e&&I,X=ie.jsxs("g",{transform:C?`translate(${b},${t.y($)})`:`translate(${t.y($)},${b})`,stroke:B,fill:E,strokeWidth:a.lineWidth,children:[ie.jsx("circle",{opacity:a.opacity,cx:G,cy:Q,r:P,onMouseOver:()=>g.onMouseOver(j,e),onMouseLeave:()=>g.onMouseLeave()}),A&&ie.jsx(fu,{content:c?[K.key,Ka(K.value)]:[Ka(K.value)],x:(C?b:t.y($))+G,y:(C?t.y($):b)+Q,sideDistances:f,horizontal:C,offset:P,active:j===g.selectedData&&g.currentFacet===e,fixed:g.fixed,onClose:g.onClose,container:v})]},K.key);return Y?cu.createPortal(X,h):X})},$))})}function Of(e=null){switch(e){case null:return"";case"solid":return"";case"dashed":return"6 6";case"dotted":return"1.5 4";case"dotdash":return"1.4 4 8 4";case"longdash":return"10 4";case"twodash":return"3 3 9 3";default:d1(e,`Unknown line shape ${e}`)}}function rS(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 K4t(e,t){return t?[e.id,`${Ka(e.y)}`]:[`${Ka(e.y)}`]}function Z4t({facetKey:e,scales:t,orientation:n,box:r,aes:a,hasKeyFromColumn:i,sideDistances:o,showTooltips:s,elementsAmount:c,activeElementContainer:f,tooltipsContainer:A,tooltipsData:h}){let v=n==="vertical",g=(t.xPrimary(r.primaryGrouping)??0)+(t.xSecondary(r.secondaryGrouping)??0)+t.xSecondary.bandwidth()/2,C=t.xSecondary.bandwidth(),b=a.boxWidth==="auto"?C*.8:Math.min(C,a.boxWidth),B=Math.abs(t.y(r.lower)-t.y(r.upper)),E=rS(t,"lineColor",a.lineColor,r),k=rS(t,"fillColor",a.fillColor,r),P=rS(t,"dotShape",a.dotShape,r),I=rS(t,"dotSize",a.dotSize,r),$=Yc(P,I,E),z=Math.abs(t.y.range()[0]-t.y.range()[1]),O=f&&h.fixed,K=h.selectedData===r&&O,te=ie.jsxs("g",{transform:v?`translate(${g},0)`:`translate(0, ${g})`,opacity:a.opacity,stroke:E,strokeWidth:a.lineWidth,strokeDasharray:Of(a.lineShape),children:[ie.jsx("line",{x1:v?0:t.y(r.min),x2:v?0:t.y(r.lower),y1:v?t.y(r.min):0,y2:v?t.y(r.lower):0}),ie.jsx("line",{x1:v?0:t.y(r.upper),x2:v?0:t.y(r.max),y1:v?t.y(r.upper):0,y2:v?t.y(r.max):0}),ie.jsx("rect",{width:v?b:B,height:v?B:b,x:v?-b/2:t.y(r.lower),y:v?t.y(r.upper):-b/2,fill:k}),ie.jsx("line",{x1:v?-b/2:t.y(r.middle),x2:v?b/2:t.y(r.middle),y1:v?t.y(r.middle):-b/2,y2:v?t.y(r.middle):b/2}),s&&A&&ie.jsx("rect",{onMouseOver:()=>h.onMouseOver(r,e),onMouseLeave:h.onMouseLeave,width:v?C:z,x:v?-C/2:0,y:v?0:-C/2,height:v?z:C,fill:"transparent",stroke:"none"}),a.showOutliers&&r.outliers.map(le=>{let G=h.selectedData===le&&h.currentFacet===e&&O,Q=v?G?g:0:t.y(le.y),j=v?t.y(le.y):G?g:0,Y=ie.jsxs("g",{transform:`translate(${Q},${j})`,strokeDasharray:"0",children:[$,s&&A&&ie.jsx("circle",{onMouseOver:()=>h.onMouseOver(le,e),onMouseLeave:h.onMouseLeave,r:"15",fill:"transparent",stroke:"none"}),s&&ie.jsx(fu,{content:K4t(le,i),x:v?g:t.y(le.y),y:v?t.y(le.y):g,sideDistances:o,horizontal:!0,active:h.selectedData===le&&h.currentFacet===e,onClose:h.onClose,fixed:h.fixed,container:A})]},le.id);return G?cu.createPortal(Y,f):Y}),s&&ie.jsx(fu,{content:[`Max = ${Ka(r.max)}`,`Upper = ${Ka(r.upper)}`,`Median = ${Ka(r.middle)}`,`Lower = ${Ka(r.lower)}`,`Min = ${Ka(r.min)}`],x:v?g:t.y(r.middle),y:v?t.y(r.middle):g,sideDistances:o,horizontal:v,active:h.active&&h.selectedData===r&&h.currentFacet===e,fixed:h.fixed,onClose:h.onClose,offset:c>1?C/2:C/4,container:A})]});return K?cu.createPortal(te,f):te}function MM(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 J4t(e,t,n){return n?[t,`${Ka(e)}`]:[`${Ka(e)}`]}function q4t({facetKey:e,scales:t,orientation:n,geom:r,aes:a,hasKeyFromColumn:i,sideDistances:o,showTooltips:s,activeElementContainer:c,tooltipsContainer:f,tooltipsData:A}){let h=n==="vertical",v=(t.xPrimary(r.primaryGrouping)??0)+(t.xSecondary(r.secondaryGrouping)??0)+t.xSecondary.bandwidth()/2,g=t.xSecondary.bandwidth()*a.jitter,C=I=>(1-I*2)*(g/2),b=MM(t,"lineColor",a.lineColor,r),B=MM(t,"dotFill",a.dotFill,r),E=MM(t,"dotShape",a.dotShape,r),k=Yc(E,a.dotSize,B),P=c&&A.fixed;return ie.jsx("g",{transform:h?`translate(${v},0)`:`translate(0, ${v})`,stroke:b,children:r.values.map(I=>{let{jitter:$,id:z}=I,O=A.selectedData===I&&P,K=C($),te=h?O?v+K:K:t.y(I.y),le=h?t.y(I.y):O?v+K:K,G=ie.jsxs("g",{opacity:a.opacity,transform:`translate(${te},${le})`,children:[k,s&&f&&ie.jsx("circle",{onMouseOver:()=>A.onMouseOver(I,e),onMouseLeave:()=>A.onMouseLeave(),r:"4",fill:"transparent",stroke:"none"}),s&&ie.jsx(fu,{content:J4t(I.y,z,i),x:v+C($),y:le,active:A.active&&A.selectedData===I&&A.currentFacet===e,fixed:A.fixed,onClose:A.onClose,sideDistances:o,container:f})]},z);return O?cu.createPortal(G,c):G})})}function PM(e,t,n,r){if(n&&typeof n=="object"&&"type"in n){if(n.type==="primaryGrouping")return e.xPrimaryAes(r.primaryGrouping)[t];if(n.type==="secondaryGrouping")return e.xSecondaryAes(r.secondaryGrouping)[t]}return n}function eyt({facetKey:e,scales:t,orientation:n,errorBar:r,aes:a,sideDistances:i,showTooltips:o,activeElementContainer:s,tooltipsContainer:c,tooltipsData:f}){let A=n==="vertical",h=PM(t,"lineColor",a.lineColor,r),v=PM(t,"fillColor",a.fillColor,r),g=PM(t,"dotShape",a.dotShape,r),C=(t.xPrimary(r.primaryGrouping)??0)+t.xPrimary.bandwidth()/2,b=a.width==="auto"?t.xPrimary.bandwidth()*.2:a.width,B=t.y(r.min),E=t.y(r.max),k=t.y(r.value),P=Yc(g,a.dotSize,v),I=s&&f.fixed,$=f.selectedData===r&&I,z=a.showDots?ie.jsxs("g",{transform:A?`translate(${C},${k})`:`translate(${k},${C})`,children:[P,o&&c&&ie.jsx("circle",{onMouseOver:()=>f.onMouseOver(r,e),onMouseLeave:()=>f.onMouseLeave(),r:"15",fill:"transparent",stroke:"none"}),o&&ie.jsx(fu,{content:[Ka(r.value)],x:A?C:k,y:A?k:C,sideDistances:i,horizontal:!0,active:f.active&&f.selectedData===r&&f.currentFacet===e,fixed:f.fixed,onClose:f.onClose,container:c})]}):null;return ie.jsxs("g",{opacity:a.opacity,stroke:h,fill:"none",strokeWidth:a.lineWidth,children:[ie.jsxs("g",{transform:A?`translate(${C},0)`:`translate(0,${C})`,children:[ie.jsx("line",{x1:A?0:B,x2:A?0:E,y1:A?B:0,y2:A?E:0}),ie.jsx("line",{x1:A?-b/2:B,x2:A?b/2:B,y1:A?B:-b/2,y2:A?B:b/2}),ie.jsx("line",{x1:A?-b/2:E,x2:A?b/2:E,y1:A?E:-b/2,y2:A?E:b/2})]}),$?cu.createPortal(z,s):z]})}function aS(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 tyt(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 nyt(e,t,n){let r=e.valueLabels[t];return r?[r,Ka(n)]:[Ka(n)]}function ryt({facetKey:e,scales:t,orientation:n,line:r,aes:a,sideDistances:i,showTooltips:o,secondaryGrouping:s,activeElementContainer:c,tooltipsContainer:f,tooltipsData:A}){let h=n==="vertical",v=aS(t,"lineColor",a.lineColor,r),g=aS(t,"dotFill",a.fillColor,r),C=aS(t,"lineShape",a.lineShape,r),b=aS(t,"dotShape",a.dotShape,r),B=tyt(r.dots,t.xPrimary.domain(),t),E=Yc(b,a.dotSize,g),k=c&&A.fixed;return ie.jsxs("g",{opacity:a.opacity,stroke:v,strokeDasharray:Of(C),strokeWidth:a.lineWidth,children:[ie.jsx("polyline",{points:B.map(([P,I])=>h?[P,I]:[I,P]).join(" "),stroke:v,fill:"none"},r.key),a.dotShape!==null&&ie.jsx("g",{children:B.map(P=>{let[I,$,z,O]=P,K=A.selectedData,te=!!(K&&e===A.currentFacet&&lI.isArray(K)&&K.every((Q,j)=>Q===P[j])),le=te&&k,G=ie.jsxs("g",{transform:h?`translate(${I},${$})`:`translate(${$},${I})`,strokeDasharray:"none",stroke:"none",children:[E,o&&f&&ie.jsx("circle",{onMouseOver:()=>A.onMouseOver(P,e),onMouseLeave:()=>A.onMouseLeave(),r:"15",fill:"transparent",stroke:"none"}),o&&ie.jsx(fu,{content:nyt(s,r.key,O),x:h?I:$,y:h?$:I,sideDistances:i,horizontal:!0,active:te,fixed:A.fixed,onClose:A.onClose,container:f})]},z);return le?cu.createPortal(G,c):G})})]})}var EK={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"},ayt=()=>ie.jsx("path",{d:"M 0 49 h 100 v 2 h -100 z"});function iyt({facetKey:e,scales:t,orientation:n,geom:r,aes:a,sideDistances:i,showTooltips:o,elementsAmount:s,normalize:c,activeElementContainer:f,tooltipsContainer:A,tooltipsData:h}){let v=n==="vertical",g=t.xPrimary.bandwidth(),C=(t.xPrimary(r.primaryGrouping)??0)+g/2,b=a.width==="auto"?g*.95:Math.min(g,a.width),B=(g-b)/2,E=[...t.xSecondary.domain()].filter($=>r.valuesMap[$]).sort(($,z)=>{let O=r.valuesMap[$],K=r.valuesMap[z];return O.height-K.height}),k={},P=0;E.forEach($=>{if(!r.valuesMap[$])return;let z=r.valuesMap[$].height;k[$]={y1:P,y2:P+z},P+=z});let I=f&&h.fixed;return ie.jsx("g",{opacity:a.opacity,children:E.map($=>{if(!r.valuesMap[$])return null;let{y1:z,y2:O}=k[$],K=t.y(z),te=t.y(O),le=Math.abs(K-te)-2*B,G=typeof a.fillColor=="string"?a.fillColor:a.fillColor[$],Q=v?-b/2:Math.min(K,te)+B,j=v?Math.min(K,te)+B:-b/2,Y=$==="-";if(!Y&&!EK[$])return;let X=`logo_${r.key}_${$}`,ee=h.currentFacet===e&&h.selectedData===X&&I,pe=ie.jsxs("g",{transform:v?`translate(${C},0)`:`translate(0, ${C})`,children:[ie.jsx("g",{transform:`translate(${Q},${j})`,children:Y?ie.jsx("g",{transform:v?`scale(${b/100},1) translate(0,${le/2-50})`:`scale(${le/100},1) translate(0,${b/2-50}) `,children:ayt()}):ie.jsx("g",{transform:v?`scale(${b/100},${le/100})`:`scale(${le/100},${b/100})`,fill:G,onMouseOver:()=>h.onMouseOver(X,e),onMouseLeave:()=>h.onMouseLeave(),children:ie.jsx("path",{d:EK[$],fillRule:"evenodd",clipRule:"evenodd"})})}),o&&ie.jsx(fu,{content:[$,Ka(r.valuesMap[$].height)+(c?"%":"")],x:v?C:(K+te)/2,y:v?(K+te)/2:C,sideDistances:i,horizontal:v,offset:s>1?g/2:g/4,active:X===h.selectedData&&h.currentFacet===e,fixed:h.fixed,onClose:h.onClose,container:A})]},$);return ee?cu.createPortal(pe,f):pe})})}function v3(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 oyt({facetKey:e,scales:t,orientation:n,geom:r,aes:a,sideDistances:i,showTooltips:o,activeElementContainer:s,tooltipsContainer:c,tooltipsData:f}){let A=n==="vertical",h=v3(t,"lineColor",a.lineColor,r.id),v=v3(t,"lineShape",a.lineShape,r.id),g=v3(t,"fillColor",a.dotFill,r.key1),C=v3(t,"dotShape",a.dotShape,r.key1),b=v3(t,"fillColor",a.dotFill,r.key2),B=v3(t,"dotShape",a.dotShape,r.key2),E=Yc(C,a.dotSize,g),k=Yc(B,a.dotSize,b);function P($){return r.grouping==="primary"?(t.xPrimary($)??0)+t.xPrimary.bandwidth()/2:(t.xPrimary(r.id)??0)+(t.xSecondary($)??0)+t.xSecondary.bandwidth()/2}let I=s&&f.fixed;return ie.jsx("g",{opacity:a.opacity,children:r.pairs.map($=>{let z=A?P(r.key1):t.y($.key1.value),O=A?P(r.key2):t.y($.key2.value),K=A?t.y($.key1.value):P(r.key1),te=A?t.y($.key2.value):P(r.key2),le=`pairedPoints_${$.id}_${$.key1.id}`,G=`pairedPoints_${$.id}_${$.key2.id}`,Q=f.currentFacet===e&&f.selectedData===le&&I,j=f.currentFacet===e&&f.selectedData===G&&I,Y=ie.jsxs("g",{transform:`translate(${z},${K})`,children:[E,o&&c&&ie.jsx("circle",{onMouseOver:()=>f.onMouseOver(le,e),onMouseLeave:()=>f.onMouseLeave(),r:"15",fill:"transparent",stroke:"none"}),o&&ie.jsx(fu,{content:[$.id,Ka($.key1.value)],x:z,y:K,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(${O},${te})`,children:[k,o&&c&&ie.jsx("circle",{onMouseOver:()=>f.onMouseOver(G,e),onMouseLeave:()=>f.onMouseLeave(),r:"15",fill:"transparent",stroke:"none"}),o&&ie.jsx(fu,{content:[$.id,Ka($.key2.value)],x:O,y:te,sideDistances:i,horizontal:!0,active:G===f.selectedData&&f.currentFacet===e,fixed:f.fixed,onClose:f.onClose,container:c})]});return ie.jsxs("g",{children:[ie.jsx("line",{x1:z,y1:K,x2:O,y2:te,stroke:h,strokeDasharray:Of(v),strokeWidth:a.lineWidth,fill:"none"}),Q?cu.createPortal(Y,s):Y,j?cu.createPortal(Y,s):X]},$.id)})})}function BK(e,t,n,r){if(n&&typeof n=="object"&&"type"in n){if(n.type==="primaryGrouping")return e.xPrimaryAes(r.primaryGrouping)[t];if(n.type==="secondaryGrouping")return e.xSecondaryAes(r.secondaryGrouping)[t]}return n}function lyt(e,t,n){return n?[t,`${Ka(e)}`]:[`${Ka(e)}`]}function syt({scales:e,orientation:t,geom:n,aes:r,hasKeyFromColumn:a,sideDistances:i,showTooltips:o,tooltipsContainer:s}){let[c,f]=tn.useState(null),A=t==="vertical",h=(e.xPrimary(n.primaryGrouping)??0)+(e.xSecondary(n.secondaryGrouping)??0)+e.xSecondary.bandwidth()/2,v=e.xSecondary.bandwidth(),g=r.width==="auto"?v*.8:Math.min(v,r.width),C=k=>(1-k*2)*(g/2),b=BK(e,"dotFill",r.dotFill,n),B=BK(e,"dotShape",r.dotShape,n),E=Yc(B,r.dotSize,b);return ie.jsx("g",{transform:A?`translate(${h},0)`:`translate(0, ${h})`,children:n.points.map(({x:k,y:P,jitter:I,id:$})=>{let z=A?P*C(I):e.y(k),O=A?e.y(k):P*C(I);return ie.jsxs("g",{opacity:r.opacity,transform:`translate(${z},${O})`,children:[E,o&&s&&ie.jsx("circle",{onMouseOver:()=>f($),onMouseLeave:()=>f(null),r:"4",fill:"transparent",stroke:"none"}),o&&ie.jsx(fu,{content:lyt(P,$,a),x:h+z,y:O,active:c===$,fixed:!1,sideDistances:i,container:s})]},$)})})}function _K(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 uyt(e,t,n,r){let a=e.valueLabels[n],i=Ka(t.valuesMap[n].height)+(r?"%":"");return a?[a,i]:[i]}function cyt({facetKey:e,scales:t,orientation:n,geom:r,aes:a,sideDistances:i,showTooltips:o,elementsAmount:s,normalize:c,secondaryGrouping:f,activeElementContainer:A,tooltipsContainer:h,tooltipsData:v}){let g=n==="vertical",C=t.xPrimary.bandwidth(),b=(t.xPrimary(r.primaryGrouping)??0)+C/2,B=a.width==="auto"?C*.8:Math.min(C,a.width),E=t.xSecondary.domain().reverse(),k={},P=0;E.forEach($=>{if(!r.valuesMap[$])return;let z=r.valuesMap[$].height;k[$]={y1:P,y2:P+z},P+=z});let I=A&&v.fixed;return ie.jsx("g",{opacity:a.opacity,strokeWidth:a.lineWidth,children:E.map($=>{if(!r.valuesMap[$])return null;let{y1:z,y2:O}=k[$],K=t.y(z),te=t.y(O),le=Math.abs(K-te),G=_K(t,"lineColor",a.lineColor,r.primaryGrouping,$),Q=_K(t,"fillColor",a.fillColor,r.primaryGrouping,$),j=`stackedBar_${r.primaryGrouping}_${$}`,Y=ie.jsx("rect",{width:g?B:le,height:g?le:B,x:g?b-B/2:Math.min(K,te),y:g?Math.min(K,te):b-B/2,fill:Q,stroke:G,onMouseOver:()=>v.onMouseOver(j,e),onMouseLeave:()=>v.onMouseLeave()}),X=v.selectedData===j&&e===v.currentFacet&&I;return ie.jsxs("g",{children:[X?cu.createPortal(Y,A):Y,o&&ie.jsx(fu,{content:uyt(f,r,$,c),x:g?b:(K+te)/2,y:g?(K+te)/2:b,sideDistances:i,horizontal:g,offset:s>1?C/2:C/4,active:j===v.selectedData&&e===v.currentFacet,fixed:v.fixed,onClose:v.onClose,container:h})]},$)})})}function TK(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 fyt(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 kK(e,t,n,r){let a=t.reduce((o,s,c)=>(o[s]=c,o),{}),i=[];return TK(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 dyt={ttest:"TTest",anova:"ANOVA",kruskalWallis:"Kruskal-Wallis",wilcoxon:"Wilcoxon"};function Ayt(e,t){return e<=t.three?"***":e<=t.two?"**":e<=t.one?"*":"ns"}function HM(e,t,n,r){return!r&&e>n.one?"":t==="significance"?Ayt(e,n):Ka(e)}var m3=18,DM=12;function hyt({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=E=>(t.xPrimary(E)??0)+t.xPrimary.bandwidth()/2,A=e==="vertical",h=Math.abs(t.xPrimary.range()[1]-t.xPrimary.range()[0]),v=Math.abs(t.y.range()[1]-t.y.range()[0]),g=t.xPrimary.domain(),C=a==="pairwise"?TK(r,g,s,!o):r,b=a==="pairwise"?fyt(C,g):[],B=Math.max(...b);return ie.jsxs("g",{fontSize:"14px",transform:A?`translate(0,${c})`:`translate(${v-c},0)`,children:[a==="overall"&&ie.jsx("text",{x:A?h/2:-m3,y:A?m3:h/2,transform:A?"":`rotate(90,${-m3},${h/2})`,textAnchor:"middle",children:`${dyt[n]}, p = ${HM(r[0][1],"pValue",s,!0)}`}),a==="referenceGroup"&&ie.jsx("g",{children:r.map(([[E],k])=>ie.jsx("text",{x:A?f(E):-m3,y:A?m3:f(E),transform:A?"":`rotate(90,${-m3},${f(E)})`,textAnchor:"middle",children:HM(k,i,s,o)},E))}),a==="pairwise"&&ie.jsx("g",{children:C.map(([[E,k],P],I)=>{let $=f(E),z=f(k),O=($+z)/2;return ie.jsxs("g",{transform:A?`translate(0,${(B-b[I])*p3})`:`translate(${-(B-b[I])*p3},0)`,children:[ie.jsx("text",{x:A?O:-DM,y:A?DM:O,transform:A?"":`rotate(90,${-DM},${O})`,textAnchor:"middle",children:HM(P,i,s,o)}),ie.jsx("path",{d:A?`M ${$},21 v-4 h ${z-$} v4`:`M -21,${$} h 4 v ${z-$} h-4`,fill:"none",stroke:Vt})]},`${E}_${k}`)})})]})}function pyt(e){return`translate(${e},0)`}function vyt(e){return`translate(0,${e})`}function myt(e){return e==="bottom"?`translate(0,${zf})`:`translate(${-zf},0)`}function gyt(e){return e==="bottom"?"hanging":"central"}function yyt(e){return e==="bottom"?"middle":"end"}var MK=({scale:e,tickSize:t=6,tickPadding:n=zf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5,hiddenLabels:o=!1})=>{function s(P){return I=>{let $=P(I);return $===void 0?0:+$}}let c=Math.abs(e.range()[0]-e.range()[1]),f=Math.min(Math.floor(c/bK),10),A=o?[]:e.ticks(f).filter(P=>a&&P>=0||!a),h=A.some(P=>Math.abs(P)<1e-4&&P!==0||P>1e4)?",e":",f",v=P=>e.tickFormat(f,h)(P),g=Math.max(t,0)+n,C=s(e.copy()),b=r==="bottom"?pyt:vyt,B=r==="left"?-1:1,E={[(r==="left"?"x":"y")+"2"]:B*t},k={[r==="left"?"x":"y"]:B*g};return ie.jsx("g",{children:A.map((P,I)=>ie.jsxs("g",{className:"tick",transform:b(C(P)+i),children:[ie.jsx("line",{stroke:Vt,...E}),ie.jsx("g",{transform:myt(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:gyt(r),textAnchor:yyt(r),...k,children:v(P)})})]},I))})};function PK(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 wyt({facetKey:e,scales:t,orientation:n,violin:r,aes:a,maxViolinDensity:i,showTooltips:o,sideDistances:s,elementsAmount:c,activeElementContainer:f,tooltipsContainer:A,tooltipsData:h}){let v=n==="vertical",g=(t.xPrimary(r.primaryGrouping)??0)+(t.xSecondary(r.secondaryGrouping)??0)+t.xSecondary.bandwidth()/2,C=t.xSecondary.bandwidth(),b=a.width==="auto"?C*.8:Math.min(C,a.width),B=PK(t,"lineColor",a.lineColor,r),E=PK(t,"fillColor",a.fillColor,r),k=r.getArea(n,t.y,b,i)??"",P=r.getLine(n,t.y,b,i)??"",I=Math.abs(t.y.range()[0]-t.y.range()[1]),$=f&&h.fixed,z=h.selectedData===r&&$,O=ie.jsxs("g",{transform:v?`translate(${g},0)`:`translate(0, ${g})`,opacity:a.opacity,stroke:B,fill:E,strokeWidth:a.lineWidth,strokeDasharray:Of(a.lineShape),children:[ie.jsx("clipPath",{id:`violin_${r.key}`,children:ie.jsx("path",{d:k})}),ie.jsx("path",{d:k,stroke:"none"}),a.showQuartiles&&ie.jsxs("g",{clipPath:`url(#violin_${r.key})`,strokeWidth:a.lineWidth,stroke:B,children:[ie.jsx("line",{x1:v?-b/2:t.y(r.quartiles.q1),x2:v?b/2:t.y(r.quartiles.q1),y1:v?t.y(r.quartiles.q1):-b/2,y2:v?t.y(r.quartiles.q1):b/2,strokeDasharray:Of(a.quartilesLineStyle)}),ie.jsx("line",{x1:v?-b/2:t.y(r.quartiles.q2),x2:v?b/2:t.y(r.quartiles.q2),y1:v?t.y(r.quartiles.q2):-b/2,y2:v?t.y(r.quartiles.q2):b/2,strokeDasharray:Of(a.medianLineStyle)}),ie.jsx("line",{x1:v?-b/2:t.y(r.quartiles.q3),x2:v?b/2:t.y(r.quartiles.q3),y1:v?t.y(r.quartiles.q3):-b/2,y2:v?t.y(r.quartiles.q3):b/2,strokeDasharray:Of(a.quartilesLineStyle)})]}),ie.jsx("path",{d:P,fill:"none"}),o&&A&&ie.jsx("rect",{onMouseOver:()=>h.onMouseOver(r,e),onMouseLeave:h.onMouseLeave,width:v?C:I,x:v?-C/2:0,y:v?0:-C/2,height:v?I:C,fill:"transparent",stroke:"none"}),o&&ie.jsx(fu,{content:[`Quartile 3 = ${Ka(r.quartiles.q3)}`,`Median = ${Ka(r.quartiles.q2)}`,`Quartile 1 = ${Ka(r.quartiles.q1)}`],x:v?g:t.y(r.quartiles.q2),y:v?t.y(r.quartiles.q2):g,sideDistances:s,horizontal:v,active:h.active&&h.selectedData===r&&h.currentFacet===e,fixed:h.fixed,offset:c>1?b/2:b/4,onClose:h.onClose,container:A})]});return z?cu.createPortal(O,f):O}var byt=1;function Cyt({scaleX:e,scaleY:t,orientation:n,width:r,height:a,axisX:i,axisY:o,frameType:s}){let[c,f]=tn.useState(e.domain()),A=Math.abs(t.range()[0]-t.range()[1]),h=Math.min(Math.floor(A/bK),10),[v,g]=tn.useState(t.ticks(h)),C=e.bandwidth()/2,b=k=>(e(k)??0)+C,B=k=>t(k),E=n==="vertical";return tn.useEffect(()=>{let k=e.domain(),P=t.ticks(h);f(k),g(P)},[e,t]),ie.jsxs("g",{stroke:Nf,children:[i.showGrid&&c.map(k=>{let P=b(k)+(i.linesBetweenCategories?C:0);return ie.jsx("line",{x1:E?P:0,x2:E?P:r,y1:E?0:P,y2:E?a:P},`x_${k}`)}),o.showGrid&&v.map(k=>{let P=B(k);return ie.jsx("line",{x1:E?0:P,x2:E?r:P,y1:E?P:0,y2:E?P:a},`y_${k}`)}),s!=="empty"&&ie.jsxs("g",{strokeWidth:byt,children:[(i.showGrid||s!=="left")&&ie.jsx("line",{stroke:s==="left"?Nf:Vt,x1:"0",x2:r,y1:a,y2:a}),(i.showGrid||s!=="bottom")&&ie.jsx("line",{stroke:s==="bottom"?Nf:Vt,x1:"0",x2:"0",y1:"0",y2:a}),(i.showGrid||s==="full")&&ie.jsx("line",{stroke:s==="full"?Vt:Nf,x1:r,x2:r,y1:"0",y2:a}),(o.showGrid||s==="full")&&ie.jsx("line",{stroke:s==="full"?Vt:Nf,x1:"0",x2:r,y1:"0",y2:"0"})]})]})}function Syt(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=kK(i.values[n],t,i.meta.significanceLevels,i.meta.ns);r.push(r[r.length-1]+p3*o)}else r.push(r[r.length-1]+p3)}return r}function HK(e){return typeof e=="string"?e:e.value}function xyt({facetSettings:e,facetTitle:t,dimensions:n,scales:r,orientation:a,layersData:i,statsData:o,facetKey:s,xAxis:c,yAxis:f,frameType:A,tooltips:h,tooltipsContainer:v,keyColumn:g,chartSizes:C,margins:b,xLabels:B,onlyPositive:E,secondaryGrouping:k,tooltipsData:P}){let[I,$]=tn.useState(),z=a==="vertical",O=Syt(o,r.xPrimary.domain(),s),K=c.showTicks?yK:0,te=f.showTicks?yK:0,le=HK(c.title),G=HK(f.title),Q=n.chartEdgeSides.includes("left")||z&&!(e!=null&&e.sharedY)||!z&&!(e!=null&&e.sharedX),j=n.chartEdgeSides.includes("bottom")||z&&!(e!=null&&e.sharedX)||!z&&!(e!=null&&e.sharedY),Y=n.chartEdgeSides.includes("left"),X=n.chartEdgeSides.includes("bottom"),{width:ee,height:pe}=n.inner,{left:ae,top:ge,padding:me}=n,fe={left:b.left+ae+me.left,right:C.totalWidth-(b.left+ae+me.left),top:b.top+ge+me.top,bottom:C.totalHeight-(b.top+ge+me.top)},Ce=`translate(${ae+me.left},${ge+me.top})`,De=!1;return ie.jsxs("g",{transform:Ce,children:[De,t.length&&ie.jsxs("g",{children:[A==="full"&&ie.jsx("rect",{x:"0",y:-me.top,height:me.top,width:ee,fill:"#F7F8FA",stroke:Vt}),t.map((ke,$e)=>{let je=t.length,Oe=(me.top-x9*je)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:ee/2,dy:Oe+x9/2-me.top,y:$e*x9,textAnchor:"middle",dominantBaseline:"central",children:ke},$e)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[X&&ie.jsx("text",{x:ee/2,y:pe+me.bottom-dp/2,children:z?le:G}),X&&De&&ie.jsx("rect",{x:"0",y:pe+me.bottom-dp,width:ee,height:dp,fill:"none",stroke:"black"}),Y&&ie.jsx("text",{x:-me.left+dp/2,y:pe/2,transform:`rotate(-90,${-me.left+dp/2},${pe/2})`,children:z?G:le}),Y&&De&&ie.jsx("rect",{x:-me.left,y:"0",width:dp,height:pe,fill:"none",stroke:"black"})]}),ie.jsx(Cyt,{orientation:a,width:ee,height:pe,scaleX:r.xPrimary,scaleY:r.y,axisX:c,axisY:f,frameType:A}),j&&ie.jsx("g",{transform:`translate(0,${pe})`,children:z?ie.jsx(CK,{scale:r.xPrimary,orient:"bottom",labelsPosition:c.labelsPosition,tickSize:K,labels:B}):ie.jsx(MK,{scale:r.y,onlyPositive:E,orient:"bottom",tickSize:te,hiddenLabels:f.hiddenLabels})}),Q&&ie.jsx("g",{children:z?ie.jsx(MK,{scale:r.y,onlyPositive:E,orient:"left",tickSize:te,hiddenLabels:f.hiddenLabels}):ie.jsx(CK,{scale:r.xPrimary,orient:"left",labelsPosition:c.labelsPosition,tickSize:K,labels:B})}),ie.jsxs("g",{children:[i.map(ke=>ie.jsxs("g",{children:[ke.type==="box"&&ke.geoms[s].map($e=>ie.jsx(Z4t,{facetKey:s,box:$e,elementsAmount:ke.geoms[s].length,scales:r,orientation:a,aes:ke.aes,hasKeyFromColumn:g!==null,sideDistances:fe,showTooltips:h.box.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="violin"&&ke.geoms[s].map($e=>ie.jsx(wyt,{facetKey:s,violin:$e,elementsAmount:ke.geoms[s].length,scales:r,orientation:a,maxViolinDensity:ke.meta.maxDensity,aes:ke.aes,sideDistances:fe,showTooltips:h.violin.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="dot"&&ke.geoms[s].map($e=>ie.jsx(q4t,{facetKey:s,geom:$e,scales:r,orientation:a,aes:ke.aes,hasKeyFromColumn:g!==null,sideDistances:fe,showTooltips:h.dot.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="line"&&ke.geoms[s].map($e=>ie.jsx(ryt,{facetKey:s,line:$e,scales:r,orientation:a,sideDistances:fe,aes:ke.aes,showTooltips:h.line.show,secondaryGrouping:k,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="errorbar"&&ke.geoms[s].map($e=>ie.jsx(eyt,{facetKey:s,errorBar:$e,scales:r,orientation:a,aes:ke.aes,sideDistances:fe,showTooltips:h.errorBar.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="bar"&&ke.geoms[s].map($e=>ie.jsx(W4t,{bar:$e,scales:r,orientation:a,aes:ke.aes},$e.key)),ke.type==="stackedBar"&&ke.geoms[s].map($e=>ie.jsx(cyt,{facetKey:s,geom:$e,elementsAmount:ke.geoms[s].length,scales:r,orientation:a,aes:ke.aes,normalize:ke.meta.normalize,sideDistances:fe,showTooltips:h.stackedBar.show,secondaryGrouping:k,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="binnedDots"&&ke.geoms[s].map($e=>ie.jsx(X4t,{facetKey:s,geom:$e,scales:r,orientation:a,aes:ke.aes,binsCount:ke.meta.binsCount,min:ke.meta.minY,max:ke.meta.maxY,hasKeyFromColumn:ke.meta.hasKeyFromColumn,sideDistances:fe,showTooltips:h.stackedBar.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key)),ke.type==="pairedPoints"&&ke.geoms[s].map($e=>ie.jsx(oyt,{facetKey:s,geom:$e,scales:r,orientation:a,sideDistances:fe,aes:ke.aes,showTooltips:h.pairedPoints.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.id)),ke.type==="sina"&&ke.geoms[s].map($e=>ie.jsx(syt,{geom:$e,scales:r,orientation:a,sideDistances:fe,aes:ke.aes,hasKeyFromColumn:g!==null,showTooltips:!1,tooltipsContainer:v},$e.key)),ke.type==="logo"&&ke.geoms[s].map($e=>ie.jsx(iyt,{facetKey:s,geom:$e,elementsAmount:ke.geoms[s].length,scales:r,orientation:a,aes:ke.aes,normalize:ke.meta.normalize,sideDistances:fe,showTooltips:h.logo.show,tooltipsData:P,activeElementContainer:I,tooltipsContainer:v},$e.key))]},ke.type)),o.map((ke,$e)=>ie.jsx(hyt,{yShift:O[$e],scales:r,orientation:a,statType:ke.meta.statType,values:ke.values[s],testMethod:ke.meta.testMethod,format:ke.meta.format,ns:ke.meta.ns,significanceLevels:ke.meta.significanceLevels},`${ke.meta.statType}_${ke.meta.testMethod}`))]}),ie.jsxs("g",{children:[P.fixed&&ie.jsx("rect",{width:C.chartWidth,height:C.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:ke=>{ke&&!I&&$(ke)}})]})]})}var g3=class extends T8.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(Xv,{message:this.state.message}):this.props.children}};function Eyt(e,t,n,r){return e==="left"?n:e==="right"?t-r:(t-(n+r))/2+n}function Byt(e){return e==="left"?"start":e==="right"?"end":"middle"}function y3({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:Eyt(t,r,a,i),textAnchor:Byt(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,B9=-12,DK=14;function _yt(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 Tyt=3,kyt=24;function Myt(e,t){if(e==="transparent")return Vt;let n=lv(e??t??"");return n&&n.formatHex()==="#ffffff"?Vt:e??t}function Pyt({aes:e,label:t,usedAes:n}){let r=n.lineShape,a=n.dotShape,i=n.fillColor||n.lineColor&&!n.lineShape||n.dotFill&&!n.dotShape,o=a?Yc(e.dotShape??"21",Tyt,i?Vt:e.dotFill??Vt):null,s=(a&&r?2*pc:0)-6,c=r?s+kyt+8:pc+8;return ie.jsxs("g",{children:[i&&ie.jsx("rect",{width:pc,height:pc,stroke:Myt(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:_yt(e.lineShape),fill:e.lineColor}),ie.jsx("text",{x:c,y:pc/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function Hyt({aes:e,label:t}){let n=Yc(e.shape,e.size,e.color);return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${pc/2},${pc/2})`,children:n}),ie.jsx("text",{x:pc+8,y:pc/2,dominantBaseline:"central",fontWeight:500,children:t})]})}function w3({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:B9,children:n.title}),ie.jsx("rect",{x:"0",y:"0",width:DK,height:n.height,stroke:Vt,fill:`url(#${n.id})`}),ie.jsx("g",{transform:`translate(${DK},0)`,children:n.values.map(r=>{let a=n.tickPositionScale(r)??0;return ie.jsxs("g",{transform:`translate(0,${a})`,children:[ie.jsx("line",{x1:"0",x2:-4,stroke:Vt}),ie.jsx("text",{x:8,y:4,children:r})]},r)})}),!1]},n.id);if(n.type==="discreteColor")return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,children:[ie.jsx("text",{fontWeight:500,fontSize:"14px",y:B9,children:n.title}),n.values.map((r,a)=>ie.jsxs("g",{transform:`translate(0, ${a*(pc+4)})`,children:[ie.jsx("rect",{x:"0",y:"0",width:pc,height:pc,fill:n.scale(r),rx:"1",ry:"1",stroke:Vt}),ie.jsx("text",{x:pc+8,y:10,children:n.labels[r]??r})]},r)),!1]},n.id);if(n.type==="discreteMulti")return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:"14px",fontWeight:500,children:[ie.jsx("text",{fontWeight:600,y:B9,children:n.title}),n.values.map((r,a)=>ie.jsx("g",{transform:`translate(0, ${a*(pc+4)})`,children:ie.jsx(Pyt,{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:B9,children:n.title}),n.values.map((r,a)=>ie.jsx("g",{transform:`translate(0, ${a*(pc+4)})`,children:ie.jsx(Hyt,{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:B9,children:n.title}),n.values.map((a,i)=>{let o=n.scale(a);return ie.jsxs("g",{transform:`translate(0, ${i*r})`,children:[ie.jsx("circle",{r:o,cx:r/2,cy:r/2,fill:Vt}),ie.jsx("text",{x:r+4,y:r/2,alignmentBaseline:"central",children:n.labels[a]})]},a)}),!1]},n.id)}})]})}function Dyt({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,facetKeys:a,facetTitles:i,facetSettings:o,scales:s,layersData:c,statsData:f,legendData:A,margins:h,columnsCount:v,keyColumn:g,xLabels:C,chartTitle:b,onlyPositive:B,secondaryGrouping:E,onTooltipHintSwitch:k}){let[P,I]=tn.useState(),$=h3(k),{orientation:z,xAxis:O,yAxis:K,title:te,legend:le,frame:G}=t,Q=r[a[0]].padding,j=r[a[v-1]].padding,Y=n.chartsWidth+wK,X=Q.top;return ie.jsx(g3,{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:Qm}),ie.jsxs("g",{transform:`translate(${h.left},${h.top})`,fontFamily:"Manrope",children:[ie.jsx(y3,{title:b,show:te.show,position:te.position,leftPadding:Q.left,rightPadding:j.right,chartsWidth:n.chartsWidth}),a.map(ee=>ie.jsx(xyt,{facetKey:ee,facetTitle:i[ee],facetSettings:o,orientation:z,scales:{...s,xPrimary:s.xPrimary[ee],xSecondary:s.xSecondary[ee],y:s.y[ee]},chartSizes:n,margins:h,dimensions:r[ee],layersData:c,statsData:f,xAxis:O,yAxis:K,frameType:G.type,tooltips:t.tooltips,tooltipsContainer:P,keyColumn:g,xLabels:C[ee],onlyPositive:B,secondaryGrouping:E,tooltipsData:$},ee)),le.show&&ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(w3,{legendData:A})})]}),ie.jsx("g",{style:{outline:"none"},ref:ee=>{ee&&!P&&I(ee)}})]})})}function $K(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=>kK(c,t,o.meta.significanceLevels,o.meta.ns));return i+p3*Math.max(...s)}return(o.meta.ns?t.length>0:r.some(s=>o.values[s].some(([,c])=>c<o.meta.significanceLevels.one)))?i+p3:i},F4t):0;return Math.max(n,a)}function b3(e,t,n=r=>r){let r=A=>t==="log"?Math.log10(A):A,a=A=>t==="log"?Math.pow(10,A):A,i=e.map(n).map(r).sort((A,h)=>A-h),o=D0(i,.25),s=D0(i,.75),c=s-o,f=1.5;return[a(o-f*c),a(s+f*c)]}function $yt(e,t,n,r=14){let a=new hc(`600 ${r}px Manrope`),i=[];e.split(new RegExp("(?=[_-])|(?<=[_-])")).forEach(h=>{a.getTextWidth(h)>n?i.push(...h.split("")):i.push(h)});let o="",s=0,c=0,f="";for(;s<=t;){let h=a.getTextWidth(o+i[c]);h<t&&(o+=i[c],f=o,c++),s=h}o="",s=0;let A=[];for(c;c<i.length;c++){let h=a.getTextWidth(o+i[c]);h<n?(o+=i[c],s=h):(A.push(o),o=i[c],s=a.getTextWidth(i[c]))}return{firstPart:f,lines:A,lastPart:o,lastPartLength:s}}function Kv(e,t,n){let r=new hc(`600 ${n}px Manrope`);if(e.trim()==="")return[];if(r.getTextWidth(e)<=t)return[e];let a=e.split(/\s+/),i=[],o="",s=0;for(let c=0;c<a.length;c++){let f=`${o} ${a[c]}`,A=r.getTextWidth(f);if(A<=t)o=f,s=A;else{let h=r.getTextWidth(a[c]);if(h>t){let{firstPart:v,lines:g,lastPart:C,lastPartLength:b}=$yt(a[c],t-s,t,n);i.push(`${o} ${v}`),i.push(...g),o=C,s=b}else i.push(o),o=a[c],s=h}}return i.push(o),i.filter(c=>c.length>0)}var IK=new hc("600 14px Manrope"),Iyt=16,$M=48,Lyt=20,jm=24;function IM(e,t){return Math.max(...e.map(n=>IK.getTextWidth(String(n))+Lyt),IK.getTextWidth(t))}function Ryt(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 C3(e,t,n){let r=n??t,a=0,i=0,o=0;e.sort((c,f)=>c.type==="continuous"&&f.type!=="continuous"?-1:f.type==="continuous"&&c.type!=="continuous"?1:c.type==="dots"&&f.type!=="dots"?-1:f.type==="dots"&&c.type!=="dots"?1:0);let s=[];return e.forEach(c=>{let{type:f,values:A,title:h,id:v,scale:g}=c;if(f==="continuous"){let C=oK(A,h),b=r;t-i<b&&(o+=a+jm,a=0,i=0);let B=o,E=i;C>a&&(a=C),i+=b+$M,i>=t&&(o+=a+jm,a=0,i=0),s.push({...c,width:C,height:b,left:B,top:E})}else if(f==="size"){let{labels:C}=c,b=g(Math.max(...A))*2+4,B=IM(A.map(I=>C[I]),h),E=A.length*b;t-i<E&&(o+=a+jm,a=0,i=0);let k=o,P=i;B>a&&(a=B),i+=E+$M,i>=t&&(o+=a+jm,a=0,i=0),s.push({...c,width:B,height:E,left:k,top:P})}else{let{labels:C}=c,b=Iyt,B=t-i;B<b&&(B=t,o+=a+jm,a=0,i=0);let E=Ryt(A,B,t,b),k=IM([],h),P=a===0,I=o+k+jm;E.forEach(($,z)=>{let O=z===E.length-1,K=z>0?"":h,te=z>0?`${v}_${z}`:v,le=IM($.map(Y=>C[Y]),P&&!O?"":K),G=$.length*b,Q=o,j=i;le>a&&(a=le),O?i+=G+$M:i=t,i>=t&&(o+=a+jm,P&&O&&o<I&&(o=I),a=0,i=0),s.push({...c,id:te,title:K,width:le,height:G,left:Q,top:j,values:$})})}}),s}function Vyt(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 Nyt(e,t,n,r,a,i,o,s,c,f,A){let h=e==="vertical",v=o.includes("left")||h&&!(s!=null&&s.sharedY)||!h&&!(s!=null&&s.sharedX),g=o.includes("left")&&n.title!=="",C=o.includes("bottom")||h&&!(s!=null&&s.sharedX)||!h&&!(s!=null&&s.sharedY),b=o.includes("bottom")&&t.title!=="",B=r.yAxisCaptionsWidth,E=(n.showTicks?c3:0)+(n.hiddenLabels?0:zf),k=g?dp:0,P=r.xAxisCaptionsWidthByRows[h?c:f],I=(t.showTicks?c3:0)+(t.hiddenLabels?0:zf),$=b?dp:0,z=h?B+E+k:P+I+$,O=h?I+P+$:E+2*dp,K=Math.max(...a.map(te=>i[te].length));return{left:v?z:TM,top:K===0?0:z4t*2+K*x9,bottom:C?O:TM,right:A?0:TM}}function zyt(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 LK(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function Oyt(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function Fyt(e){return typeof e=="object"&&"type"in e}var Qyt=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:K4().range([0,600]).domain(["1"])},xSecondary:{null:K4().range([0,600]).domain(["1"])},y:{null:Zr().domain([0,10]).range([350,0]).nice()},xPrimaryAes:Qo().unknown(gK),xSecondaryAes:Qo().unknown(gK)});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=Wh(this.rootNode))}updateChartSize(e,t,n,r,a,i){let o=e.innerOffset,s=e.innerOffset,c=$K(i,r,e.innerOffset),f=t.length,A=Math.min((n==null?void 0:n.nRows)??f,f),h=Math.min((n==null?void 0:n.nCols)??f,f);this.columnsCount=n!=null&&n.nRows?Math.ceil(f/A):h,this.rowsCount=Math.ceil(f/this.columnsCount);let{width:v,height:g}=e;a==="vertical"&&c>o&&(g+=c),a==="horizontal"&&c>s&&(v+=c),this.chartSizes.chartWidth=v,this.chartSizes.chartHeight=g}updateChartDimensions(e,t,n,r,a){let{chartWidth:i,chartHeight:o}=this.chartSizes,s=0,c=0;this.chartsDimensions=e.reduce((h,v,g)=>{let[C,b]=Oyt(g,this.columnsCount),B=Vyt(g,e.length,this.columnsCount,this.rowsCount),E=Nyt(n,r,a,this.captionsSizes,LK(e,this.rowsCount,this.columnsCount)[C],this.facetTitles,B,t,C,b,b===this.columnsCount-1),k=i+E.left+E.right,P=o+E.top+E.bottom;return h[v]={left:s,top:c,chartEdgeSides:B,padding:E,inner:{width:i,height:o},outer:{width:k,height:P}},s+=k,b===this.columnsCount-1&&(s=0,c+=P),h},{});let f=Math.max(...e.map(h=>this.chartsDimensions[h].outer.width+this.chartsDimensions[h].left)),A=Math.max(...e.map(h=>this.chartsDimensions[h].outer.height+this.chartsDimensions[h].top));this.chartSizes.chartsWidth=f,this.chartSizes.chartsHeight=A}updateViewport(e,t,n,r,a,i,o,s,c,f){let A=c.innerOffset,h=e==="vertical",v=$K(s,t,c.innerOffset),g=a===null||a.sharedX,C=a===null||a.sharedY,{chartHeight:b,chartWidth:B}=this.chartSizes;r.forEach(E=>{let k=i.scale==="log"?X2():Zr(),P=Math.min(...C?o.map(({meta:O})=>O.minY):o.map(({geoms:O})=>Math.min(...O[E].map(({boundsY:K})=>K.min)))),I=Math.max(...C?o.map(({meta:O})=>O.maxY):o.map(({geoms:O})=>Math.max(...O[E].map(({boundsY:K})=>K.max)))),$=k.copy().domain([P,I]).range(h?[b-A,v]:[A,B-v]);k.domain([$.invert(h?b:0),$.invert(h?0:B)]).range(h?[b,0]:[0,B]),this.scales.y[E]=k;let z=g?t:f[E];this.scales.xPrimary[E]=K4().domain(z).range(h?[0,B]:[b,0]),this.scales.xSecondary[E]=K4().domain(n).range([0,this.scales.xPrimary[E].bandwidth()])})}createFacetTitles(e,t){this.facetTitles=e.reduce((n,r,a)=>(t[a].length===1&&t[a][0]==="null"?n[r]=[]:n[r]=Kv(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=Kv(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)/kM:c/kM)}this.axisLabelsX=e.reduce((s,c)=>{let f=this.scales.xPrimary[c],A=f.bandwidth(),h=a[t.labelsPosition],v=t.labelsPosition==="center"?Math.min(h,A):h,g=n.valueLabels;return s[c]=f.domain().reduce((C,b)=>{if(t.hiddenLabels)return C[b]=[],C;let B=g[b];if(!i)C[b]=[B];else{let E=o(t.labelsPosition,A),k=Kv(B,v,14);C[b]=k.length>E?[B]:k}return C},{}),s},{})}updateAesScales(e,t){if(e.inheritedAes){let{inheritedAes:n,keys:r}=e;this.scales.xPrimaryAes.domain(r).range(r.map(a=>n[a]??m9))}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]??m9))}else this.scales.xSecondaryAes.domain([]).range([])}updateCaptionsSize(e,t,n,r){let a=new hc("600 14px Manrope"),i=e==="vertical";function o(C){return C.length?Math.max(...C.map(b=>a.getTextWidth(b))):0}function s(C){return C.length?Math.max(...C.map(o)):0}let c=[],f=0,A=LK(t,this.rowsCount,this.columnsCount),h=zyt(t,this.rowsCount,this.columnsCount);if(!i)c=h.map(C=>Math.max(...C.map(b=>s(this.scales.xPrimary[b].domain().map(B=>this.axisLabelsX[b][B])))));else{if(n.labelsPosition==="center"&&(c=A.map(C=>Math.max(...C.map(b=>Math.max(...this.scales.xPrimary[b].domain().map(B=>B?this.axisLabelsX[b][B].length*kM:0)))))),n.labelsPosition==="45deg"){let C=Math.sin(Math.PI/4);c=A.map(b=>Math.max(...b.map(B=>{let E=this.scales.xPrimary[B].domain().map(P=>this.axisLabelsX[B][P]),k=s(E);return k>0?k*C+14:0}))),f=Math.max(...h[0].map(b=>{let B=this.scales.xPrimary[b].domain(),E=this.axisLabelsX[b][B[0]];return Math.max(o(E)*C-this.scales.xPrimary[b].bandwidth()/2+14,0)}))}n.labelsPosition==="90deg"&&(c=A.map(C=>Math.max(...C.map(b=>s(this.scales.xPrimary[b].domain().map(B=>this.axisLabelsX[b][B]))))))}let v=Zn.flatten(t.map(C=>{if(r.hiddenLabels)return[];let b=this.scales.y[C],B=b.ticks(),E=B.some(P=>Math.abs(P)<1e-4&&P!==0||P>1e4)?",e":",f",k=b.tickFormat(10,E);return B.map(k)})),g=o(v);this.captionsSizes={xCaptionsTail:f,xAxisCaptionsWidthByRows:c,yAxisCaptionsWidth:g}}updateMargins(e,t,n){let r=this.chartsDimensions[t[0]],a=this.chartsDimensions[t[t.length-1]],i=e==="vertical",o=this.mainTitle.length?24*this.mainTitle.length+24*2:0,s=n.outerOffset;this.margins={left:Math.max(s,i?this.captionsSizes.xCaptionsTail-r.padding.left:0),right:this.legend.width+s,top:Math.max(o,s),bottom:Math.max(s,i?0:this.captionsSizes.xCaptionsTail-a.padding.bottom)},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartsHeight,this.legend.height)+this.margins.bottom}updateLegendSize(e,t,n,r){if(!e.show){this.legend={width:0,height:0,items:[]};return}let a=this.chartSizes.chartHeight,i={width:0,height:0,left:0,top:0},o=[];function s(C,b){return r.some(B=>{let E=B.aes[b];return E&&Fyt(E)&&E.type===C})}function c(C){return{dotFill:s(C,"dotFill"),fillColor:s(C,"fillColor"),lineColor:s(C,"lineColor"),dotShape:s(C,"dotShape"),lineShape:s(C,"lineShape")}}let f=c("primaryGrouping"),A=c("secondaryGrouping");if(Object.values(f).some(C=>C)&&t.inheritedAes&&o.push({type:"discreteMulti",id:"primary",title:t.label,scale:this.scales.xPrimaryAes,values:t.keys,labels:t.valueLabels,usedAes:f,...i}),Object.values(A).some(C=>C)&&n.inheritedAes&&o.push({type:"discreteMulti",id:"secondary",title:n.label,scale:this.scales.xSecondaryAes,values:n.keys,labels:n.valueLabels,usedAes:A,...i}),!o.length){this.legend={width:0,height:0,items:[]};return}let h=C3(o,this.chartSizes.chartHeight),v=h[h.length-1],g=v.left+v.width+wK;this.legend={width:g,height:a,items:h}}render(e,t,n,r,a,i,o,s,c,f,A,h,v){var k;let{orientation:g,xAxis:C,yAxis:b,size:B}=t;this.updateChartSize(B,i,a,n.keys,g,c),this.updateViewport(g,n.keys,r.keys,i,a,b,s,c,B,A),this.createAxisLabels(i,C,n,g),this.createFacetTitles(i,o),this.updateCaptionsSize(g,i,C,b),this.updateChartDimensions(i,a,g,C,b),this.updateLegendSize(t.legend,n,r,s),this.createMainTitle(i,t.title),this.updateMargins(g,i,B),this.updateAesScales(n,r);let E=ie.jsx(Dyt,{settingsId:e,chartSettings:t,facetKeys:i,facetSettings:a,facetTitles:this.facetTitles,chartSizes:this.chartSizes,chartsDimensions:this.chartsDimensions,scales:this.scales,layersData:s,statsData:c,legendData:this.legend,margins:this.margins,columnsCount:this.columnsCount,keyColumn:f,xLabels:this.axisLabelsX,chartTitle:this.mainTitle,onlyPositive:h,secondaryGrouping:r,onTooltipHintSwitch:v});this.component=E,(k=this.reactRoot)==null||k.render(E)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Xv,{message:e}))}},jyt=Qyt,_9="#3e9838",S3="21",x3=3,q1=class{},RK=class extends q1{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:S3,dotFill:Vt,dotSize:x3,lineColor:Vt,fillColor:_9,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])}},VK=class extends q1{constructor(t){super();Be(this,"type","violin");Be(this,"stat",{bandwidth:"auto",stepsCount:40,trim:!0});Be(this,"aes",{width:"auto",lineColor:Vt,fillColor:_9,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)}},NK=class extends q1{constructor(t){super();Be(this,"type","dot");Be(this,"aes",{showOutliers:!0,jitter:.8,lineColor:"none",dotFill:Vt,dotShape:S3,dotSize:x3,opacity:1});this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="dot"&&this.aes.showOutliers===t.aes.showOutliers}},zK=class extends q1{constructor(t){super();Be(this,"type","line");Be(this,"pointsValues");Be(this,"aes",{showOutliers:!0,lineWidth:1,lineShape:"solid",fillColor:"none",lineColor:Vt,dotShape:S3,dotSize:x3,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 q1{constructor(t){super();Be(this,"type","errorbar");Be(this,"pointsValues");Be(this,"interval");Be(this,"aes",{showDots:!0,width:"auto",lineWidth:1,fillColor:"none",lineColor:Vt,dotShape:S3,dotSize:x3,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}},FK=class extends q1{constructor(t){super();Be(this,"type","bar");Be(this,"height");Be(this,"aes",{width:"auto",lineWidth:1,fillColor:"none",lineColor:Vt,opacity:1});this.height=t.height??"max",this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="bar"&&this.height===t.height}},QK=class extends q1{constructor(t){super();Be(this,"type","stackedBar");Be(this,"normalize",!1);Be(this,"aes",{width:"auto",lineWidth:1,fillColor:_9,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}},jK=class extends q1{constructor(t){super();Be(this,"type","logo");Be(this,"normalize",!1);Be(this,"aes",{width:"auto",fillColor:_9,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}},UK=class extends q1{constructor(t){super();Be(this,"type","binnedDots");Be(this,"method");Be(this,"position");Be(this,"keyColumn");Be(this,"aes",{showOutliers:!0,width:"auto",lineWidth:1,fillColor:"none",lineColor:Vt,opacity:1});this.method=t.method??"dotdensity",this.position=t.position??"stack",this.keyColumn=t.keyColumn??null,this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){var n,r;return t.type==="binnedDots"&&this.method===t.method&&this.position===t.position&&((n=this.keyColumn)==null?void 0:n.value)===((r=t.keyColumn)==null?void 0:r.value)}},GK=class extends q1{constructor(t){super();Be(this,"type","pairedPoints");Be(this,"linkColumn");Be(this,"aes",{showOutliers:!0,lineWidth:1,lineColor:Vt,lineShape:"solid",dotFill:Vt,dotSize:x3,dotShape:S3,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 q1{constructor(t){super();Be(this,"type","sina");Be(this,"aes",{showOutliers:!0,width:"auto",dotFill:_9,dotSize:x3,dotShape:S3,opacity:1});this.aes={...this.aes,...t.aes}}isEqualForCalculation(t){return t.type==="sina"&&this.aes.showOutliers===t.aes.showOutliers}},iS=class extends q1{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;N3t.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)??O4t,innerOffset:((a=e==null?void 0:e.size)==null?void 0:a.innerOffset)??N4t.TOP},title:{position:"center",show:!0,...e.title,name:((i=e.title)==null?void 0:i.name)??"Chart"},orientation:e.orientation??"vertical",yAxis:{title:((o=e.y)==null?void 0:o.label)??e.y.value??"",scale:"linear",showGrid:!0,showTicks:!0,hiddenLabels:!1,...e.yAxis},xAxis:{title:((c=(s=e.primaryGrouping)==null?void 0:s.columnName)==null?void 0:c.label)??((f=e.primaryGrouping)==null?void 0:f.columnName.value)??"",showGrid:!0,showTicks:!0,linesBetweenCategories:!0,labelsPosition:"center",hiddenLabels:!1,...e.xAxis},frame:{type:((A=e.frame)==null?void 0:A.type)??"full"},legend:{show:!0,position:"right",...e.legend},tooltips:{box:{show:!0},violin:{show:!0},boxOutliers:{show:!0},line:{show:!0},errorBar:{show:!0},dot:{show:!0},binnedDots:{show:!0},pairedPoints:{show:!0},stackedBar:{show:!0},logo:{show:!1},...e.tooltips}},this.layers=e.layers.map(h=>{if(h.type==="box")return new RK(h);if(h.type==="violin")return new VK(h);if(h.type==="dot")return new NK(h);if(h.type==="line")return new zK(h);if(h.type==="errorbar")return new OK(h);if(h.type==="bar")return new FK(h);if(h.type==="stackedBar")return new QK(h);if(h.type==="stat")return new iS(h);if(h.type==="binnedDots")return new UK(h);if(h.type==="pairedPoints")return new GK(h);if(h.type==="sina")return new YK(h);if(h.type==="logo")return new jK(h);d1(h,"Unknown layer type")}).filter(Boolean)}};function Uyt(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 Gyt=class{constructor(e,t,n,r,a,i,o,s,c,f,A=!0){Be(this,"lower");Be(this,"middle");Be(this,"upper");Be(this,"min");Be(this,"max");Be(this,"outliers");Be(this,"primaryGrouping");Be(this,"secondaryGrouping");Be(this,"key");Be(this,"boundsY");if(e.length===0)throw Error("Unable to create box on empty data");if(o>s||o>c||s>c)throw Error(`Invalid box bounds values: lower=${o}, middle=${s}, upper=${c}`);if(f<0)throw Error(`Invalid box whiskers coefficient: k=${f}. It should be positive`);let h=$=>Number($[t]);this.primaryGrouping=String(a),this.secondaryGrouping=String(i),this.key=`box_${this.primaryGrouping}_${this.secondaryGrouping}`;let v=$=>r==="log"?Math.log10($):$,g=$=>r==="log"?Math.pow(10,$):$,C=Uyt(e,h,v,r==="log"),b=D0(C,o),B=D0(C,s),E=D0(C,c),k=E-b;this.upper=g(E),this.middle=g(B),this.lower=g(b),this.min=Math.max(xw(e,h),g(b-f*k)),this.max=Math.min(Vh(e,h),g(E+f*k)),this.outliers=e.filter($=>h($)<this.min||h($)>this.max).map(($,z)=>({y:h($),data:$,id:String(n?$[n]:z)}));let[P=1/0,I=-1/0]=H0(this.outliers,$=>$.y);this.boundsY={min:A?Math.min(this.min,P):this.min,max:A?Math.max(this.max,I):this.max}}};function Yyt(e,t,n,r,a,i){let o=1/0,s=-1/0;return{type:"box",geoms:t.facet.reduce((c,f)=>{let A=Md(f);return c[A]=[],t.primary.forEach(h=>{t.secondary.forEach(v=>{let g=n.getRowsByGrouping([...f,h,v]);if(!g.length)return;let C=new Gyt(g,r.value,(a==null?void 0:a.value)??null,i.scale,h,v,e.stat.lower,e.stat.medium,e.stat.upper,e.stat.k,e.aes.showOutliers);C.boundsY.min<o&&(o=C.boundsY.min),C.boundsY.max>s&&(s=C.boundsY.max),c[A].push(C)})}),c},{}),meta:{minY:o,maxY:s},aes:e.aes}}var XK=40;function Wyt(e,t){return function(n){return t.map(function(r){return[r,Vs(n,a=>e(r-a))]})}}function Xyt(e){return function(t){return 1/Math.sqrt(2*Math.PI)*Math.pow(Math.E,-.5*Math.pow(t/e,2))}}function Kyt(e){let t=Vs(e);return Vs(e.map(n=>Math.pow(n-t,2)))}function Zyt(e){return Math.sqrt(Kyt(e))}function Jyt(e,t,n){let r=(n-t)/1.34,a=Zyt(e);return 1.06*Math.min(a,r)*Math.pow(e.length,-1/5)}var qyt=class{constructor(e,t,n,r,a,i){Be(this,"getArea");Be(this,"getLine");Be(this,"maxDensity");Be(this,"primaryGrouping");Be(this,"secondaryGrouping");Be(this,"key");Be(this,"boundsY");Be(this,"quartiles");if(e.length===0)throw Error("Unable to calculate violin on empty data");if(r!=="auto"&&r<1)throw Error(`Unable to calculate violin with ${r} steps`);this.primaryGrouping=String(a),this.secondaryGrouping=String(i),this.key=`violin_${this.primaryGrouping}_${this.secondaryGrouping}`;let o=$=>t==="log"?Math.log10($):$,s=$=>t==="log"?Math.pow(10,$):$,c=e.filter($=>t==="log"&&Number($)===0?(console.warn("Value = 0 on chart with log scale, it was removed from calculation"),!1):!0).map(o).sort(($,z)=>$-z),f=c[0],A=c[c.length-1],h=A-f,v=D0(c,.25),g=D0(c,.5),C=D0(c,.75);this.quartiles={q1:s(v),q2:s(g),q3:s(C)};let b=Jyt(c,v,C),B=r!=="auto"?r:b/3>h/XK?XK:h/(b/3),E=n?f:f-3*b,k=n?A:A+3*b,P=Zr().domain([E,k]).ticks(B);this.boundsY={min:s(P[0]),max:s(P[P.length-1])};let I=Wyt(Xyt(b),P)(c).map(([$,z])=>[s($),z]);this.maxDensity=Vh(I,([,$])=>$),this.getArea=($,z,O,K)=>{let te=$==="vertical",le=K??this.maxDensity,G=Zr().domain([-le,le]).range([-O/2,O/2]);return te?XB().curve(C5).x0(Q=>G(Q[1])).x1(Q=>G(-Q[1])).y(Q=>z(Q[0]))(I):XB().curve(C5).y0(Q=>G(Q[1])).y1(Q=>G(-Q[1])).x(Q=>z(Q[0]))(I)},this.getLine=($,z,O,K)=>{let te=$==="vertical",le=K??this.maxDensity,G=Zr().domain([-le,le]).range([-O/2,O/2]);return b5().curve(C5).x(te?Q=>G(Q[1]):Q=>z(Q[0])).y(te?Q=>z(Q[0]):Q=>G(Q[1]))(I)+" "+b5().curve(C5).x(te?Q=>G(-Q[1]):Q=>z(Q[0])).y(te?Q=>z(Q[0]):Q=>G(-Q[1]))(I)}}};function e7t(e,t,n,r,a){let i=0,o=1/0,s=-1/0;return{type:"violin",geoms:t.facet.reduce((c,f)=>{let A=Md(f);return c[A]=[],t.primary.forEach(h=>{t.secondary.forEach(v=>{let g=n.getColumnByGrouping([...f,h,v],r.value);if(!g.length)return;let C=new qyt(g,a.scale,e.stat.trim,e.stat.stepsCount,h,v);C.maxDensity>i&&(i=C.maxDensity),C.boundsY.min<o&&(o=C.boundsY.min),C.boundsY.max>s&&(s=C.boundsY.max),c[A].push(C)})}),c},{}),meta:{maxDensity:i,minY:o,maxY:s},aes:e.aes}}var t7t=30;function n7t(e,t){return function(n){return t.map(function(r){return Vs(n,a=>e(r-a))})}}function r7t(e){return function(t){return 1/Math.sqrt(2*Math.PI)*Math.pow(Math.E,-.5*Math.pow(t/e,2))}}function a7t(e){let t=Vs(e);return Vs(e.map(n=>Math.pow(n-t,2)))}function i7t(e){return Math.sqrt(a7t(e))}function o7t(e){let t=D0(e,.25),n=(D0(e,.75)-t)/1.34,r=i7t(e);return 1.06*Math.min(r,n)*Math.pow(e.length,-1/5)}var l7t=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=t7t;if(e.length===0)throw Error("Unable to calculate sina on empty data");this.primaryGrouping=String(r),this.secondaryGrouping=String(a),this.key=`sina_${this.primaryGrouping}_${this.secondaryGrouping}`;let s=P=>n==="log"?Math.log10(P):P,c=P=>n==="log"?Math.pow(10,P):P,f=P=>Number(P[t.value]),A=e.filter(P=>n==="log"&&f(P)===0?(console.warn("Value = 0 on chart with log scale, it was removed from calculation"),!1):!0).sort((P,I)=>s(f(P))-s(f(I))),h=A.map(P=>s(f(P))),v=h[0],g=h[A.length-1],C=(g-v)/o,b=o7t(h),B=Zn.range(v+C,g,C);this.boundsY={min:c(v),max:c(g)};let E=n7t(r7t(b),B)(h),k=Zr().domain(B).range(E).clamp(!0);this.maxDensity=Vh(E),this.points=A.map((P,I)=>({x:f(P),y:k(s(f(P)))/this.maxDensity,id:String(I),jitter:i(),data:P}))}};function s7t(e,t,n,r,a){let i=0,o=1/0,s=-1/0,c=yN(1);return{type:"sina",geoms:t.facet.reduce((f,A)=>{let h=Md(A);return f[h]=[],t.primary.forEach(v=>{t.secondary.forEach(g=>{let C=n.getRowsByGrouping([...A,v,g]);if(!C.length)return;let b=C;if(!e.aes.showOutliers){let E=I=>Number(I[r.value]),[k,P]=b3(C,a.scale,E);b=C.filter(I=>{let $=E(I);return $>=k&&$<=P})}let B=new l7t(b,r,a.scale,v,g,c);B.maxDensity>i&&(i=B.maxDensity),B.boundsY.min<o&&(o=B.boundsY.min),B.boundsY.max>s&&(s=B.boundsY.max),f[h].push(B)})}),f},{}),meta:{maxDensity:i,minY:o,maxY:s},aes:e.aes}}function u7t(e,t,n,r,a,i){let o=1/0,s=-1/0,c=yN(1);return{type:"dot",geoms:t.facet.reduce((f,A)=>{let h=Md(A);return f[h]=[],t.primary.forEach(v=>{t.secondary.forEach(g=>{let C=n.getRowsByGrouping([...A,v,g]);if(!C.length)return;let b=P=>Number(P[r.value]),B=C.map((P,I)=>({y:b(P),jitter:c(),id:String(i?P[i.value]:I),data:P}));if(!e.aes.showOutliers){let[P,I]=b3(C,a.scale,b);B=B.filter(({y:$})=>$>=P&&$<=I)}let[E=1/0,k=-1/0]=H0(B,P=>P.y);E<o&&(o=E),k>s&&(s=k),f[h].push({key:`dots_${String(v)}_${String(g)}`,values:B,primaryGrouping:String(v),secondaryGrouping:String(g),boundsY:{min:E,max:k}})})}),f},{}),meta:{minY:o,maxY:s},aes:e.aes}}function c7t(e,t){if(t==="median")return DI(e,.5);if(t==="mean")return Vs(e);d1(t,`Unknown line points calculation for dot layer: ${t}`)}function f7t(e,t,n,r,a){let i=1/0,o=-1/0;return{type:"line",geoms:t.facet.reduce((s,c)=>{let f=Md(c);s[f]=[];let A=-1/0,h=1/0;return e.aes.showOutliers||([A,h]=b3(n.getColumnByGrouping([...c],r.value),a.scale)),t.secondary.forEach(v=>{let g={key:`${String(v)}`,boundsY:{min:1/0,max:-1/0},dots:{}},C=!1,b=E=>a.scale==="log"?Math.log10(E):E,B=E=>a.scale==="log"?Math.pow(10,E):E;t.primary.forEach(E=>{let k=n.getColumnByGrouping([...c,E,v],r.value);if(!k.length){C=!0;return}let P=k;if(e.aes.showOutliers||(P=k.filter($=>$>=A&&$<=h)),!P.length){C=!0;return}let I=B(c7t(P.map(b),e.pointsValues));g.dots[String(E)]=I,I<i&&(i=I),I>o&&(o=I),I<g.boundsY.min&&(g.boundsY.min=I),I>g.boundsY.max&&(g.boundsY.max=I)}),C||s[f].push(g)}),s},{}),meta:{minY:i,maxY:o},aes:e.aes}}function d7t(e){let t=Vs(e);return Vs(e.map(n=>Math.pow(n-t,2)))}function LM(e){return Math.sqrt(d7t(e))}function A7t(e){return LM(e)/Math.sqrt(e.length)}function h7t(e){return 1.96*LM(e)}function p7t(e,t){if(t==="median")return DI(e,.5);if(t==="mean")return Vs(e);d1(t,"Unknown points calculation")}function v7t(e,t){if(t==="sd")return LM(e);if(t==="se")return A7t(e);if(t==="ci")return h7t(e);d1(t,"Unknown error interval calculation")}function m7t(e,t,n,r,a){let i=1/0,o=-1/0;return{type:"errorbar",geoms:t.facet.reduce((s,c)=>{let f=Md(c);s[f]=[];let A=v=>a.scale==="log"?Math.log10(v):v,h=v=>a.scale==="log"?Math.pow(10,v):v;return t.primary.forEach(v=>{t.secondary.forEach(g=>{let C=n.getColumnByGrouping([...c,v,g],r.value);if(!C.length)return;let b=C.map(A),B=h(p7t(b,e.pointsValues)),E=h(v7t(b,e.interval)),k=B-E,P=B+E;k<i&&(i=k),P>o&&(o=P),s[f].push({key:`errorbar_${String(v)}_${String(g)}`,primaryGrouping:String(v),secondaryGrouping:String(g),value:B,min:k,max:P,boundsY:{min:k,max:P}})})}),s},{}),meta:{minY:i,maxY:o},aes:e.aes}}function g7t(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 Vh(e,o)??o(e[0]);case"min":return xw(e,o)??o(e[0]);case"median":{let s=e.map(c=>Number(c[n])).map(a).sort((c,f)=>c-f);return i(D0(s,.5))}case"mean":return Vs(e,o)??o(e[0]);default:d1(r,`Unknown bar height function ${r}`)}}function y7t(e,t,n,r,a){let i=-1/0,o=1/0;return{type:"bar",geoms:t.facet.reduce((s,c)=>{let f=Md(c);return s[f]=[],t.primary.forEach(A=>{t.secondary.forEach(h=>{let v=n.getRowsByGrouping([...c,A,h]);if(!v.length)return;let g=g7t(v,a.scale,r.value,e.height);i=Math.max(i,g,0),o=Math.min(o,g,0),s[f].push({key:`bar_${String(A)}_${String(h)}`,value:g,primaryGrouping:A,secondaryGrouping:h,boundsY:{min:Math.min(0,g),max:Math.max(0,g)}})})}),s},{}),meta:{minY:o,maxY:i},aes:e.aes}}function w7t(e,t,n,r){let a=-1/0,i=1/0;return{type:"stackedBar",geoms:t.facet.reduce((o,s)=>{let c=Md(s);return o[c]=[],t.primary.forEach(f=>{let A=0,h={};t.secondary.forEach(C=>{let b=C===J1?"null":C,B=n.getRowsByGrouping([...s,f,C]);if(!B.length)return;let E=lc(B,k=>Number(k[r.value]));h[b]={height:E,key:b},A+=E});let v=A;e.normalize&&t.secondary.forEach(C=>{let b=C===J1?"null":C;h[b]&&(h[b].height=h[b].height/v*100)}),a=Math.max(a,0,A),i=Math.min(i,0,A);let g=e.normalize?100:v;o[c].push({key:`stackedBar_${String(f)}`,valuesMap:h,primaryGrouping:f,boundsY:{min:Math.min(g,0),max:Math.max(g,0)}})}),o},{}),meta:{minY:e.normalize?0:i,maxY:e.normalize?100:a,normalize:e.normalize},aes:e.aes}}var KK=30;function b7t(e,t,n,r,a,i){let o=e.map(v=>n(a(v))),s=e.length,c=e.map(A),f=[];function A(v,g){return{key:i(v,g),value:a(v)}}let h=0;for(let v=1;v<s;++v){let g=o[h],C=o[v],b=o[v-1];if(C>=g+t){let B=Math.min((g+b)/2,C-t);o.fill(B,h,v),f.push({x:r(B),count:v-h,dots:c.slice(h,v)}),h=v}}return o.fill((o[h]+o[s-1])/2,h,s),f.push({x:r((o[h]+o[s-1])/2),count:s-h,dots:c.slice(h,s)}),f}var C7t=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=String(n),this.secondaryGrouping=String(r),this.key=`binnedDots_${this.primaryGrouping}_${this.secondaryGrouping}`;let A=e.filter(h=>s(h)===0&&c==="log"?(console.warn(`Item with ${t} = 0 is not shown on chart with log scale`),!1):!0).sort((h,v)=>i(s(h))-i(s(v)));this.bins=b7t(A,a,i,o,s,(h,v)=>String(f?h[f.value]:v)),this.boundsY={min:this.bins[0].x,max:this.bins[this.bins.length-1].x}}};function S7t(e,t,n,r,a){let i=C=>a.scale==="log"?Math.log10(C):C,o=C=>a.scale==="log"?Math.pow(10,C):C,s=C=>Number(C[r.value]),c=1/0,f=-1/0,A=n.getRowsByGrouping([]),[h=s(A[0]),v=s(A[0])]=H0(A.filter(C=>Number(C[r.value])===0&&a.scale==="log"?(console.warn(`Item with ${r.value} = 0 is not shown on chart with log scale`),!1):!0),C=>Number(C[r.value])),g=Math.abs(i(h)-i(v))/KK;return{type:"binnedDots",geoms:t.facet.reduce((C,b)=>{let B=Md(b);return C[B]=[],t.primary.forEach(E=>{t.secondary.forEach(k=>{let P=n.getRowsByGrouping([...b,E,k]);if(!P.length)return;let I=P;if(!e.aes.showOutliers){let[z,O]=b3(P,a.scale,s);I=P.filter(K=>{let te=s(K);return te>=z&&te<=O})}let $=new C7t(I,r.value,E,k,g,i,o,s,a.scale,e.keyColumn);$.boundsY.min<c&&(c=$.boundsY.min),$.boundsY.max>f&&(f=$.boundsY.max),C[B].push($)})}),C},{}),meta:{minY:Math.min(h,v,c),maxY:Math.max(h,v,f),binsCount:KK,hasKeyFromColumn:e.keyColumn!==null},aes:e.aes}}function x7t(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 ZK(e,t,n,r,a,i,o,s,c){let f=Zn.groupBy(n,P=>P[a.value]),A=Zn.groupBy(r,P=>P[a.value]),h=Object.keys(f),v=Object.keys(A);if(Zn.uniq(h).length!==h.length||Zn.uniq(v).length!==v.length)throw Error(`Non unique keys in groups ${String(e)}, ${String(t)} for paired points layer`);if(h.length!==v.length||Zn.intersection(h,v).length!==h.length)throw Error(`Keys in groups ${String(e)}, ${String(t)} not match for paired points layer`);let g=P=>Number(P[i.value]),C=1/0,b=-1/0,B=!1,E=c==="log",k=h.map(P=>{let I=f[P][0],$=A[P][0],z=g(I),O=g($);return(z===0||O===0)&&(B=!0),C=Math.min(C,E&&z===0?1/0:z,E&&O===0?1/0:O),b=Math.max(b,E&&z===0?-1/0:z,E&&O===0?-1/0:O),{id:P,key1:{id:`${P}_${String(e)}`,value:z,data:I},key2:{id:`${P}_${String(t)}`,value:O,data:$}}});if(!s){C=1/0,b=-1/0;let[P,I]=b3(n,c,g),[$,z]=b3(r,c,g);k=k.filter(({key1:O,key2:K})=>O.value<P||O.value>I||K.value<$||K.value>z?!1:(C=Math.min(C,E&&O.value===0?1/0:O.value,E&&K.value===0?1/0:K.value),b=Math.max(b,E&&O.value===0?-1/0:O.value,E&&K.value===0?-1/0:K.value),!0))}return C=B?C/10:C,b=Math.max(b,C),{id:`${String(e)}_${String(t)}`,key1:String(e),key2:String(t),pairs:k.map(P=>({...P,key1:{...P.key1,value:P.key1.value===0?C:P.key1.value},key2:{...P.key2,value:P.key2.value===0?C:P.key2.value}})),grouping:o,boundsY:{min:C,max:b}}}function E7t(e,t,n,r,a){let i=x7t(t.primary,t.secondary),o=1/0,s=-1/0;return{type:"pairedPoints",geoms:t.facet.reduce((c,f)=>{let A=Md(f);if(c[A]=[],i==="primary"){let[h,v]=t.primary,g=n.getRowsByGrouping([...f,h]),C=n.getRowsByGrouping([...f,v]),b=ZK(h,v,g,C,e.linkColumn,r,i,e.aes.showOutliers,a.scale);o=Math.min(o,b.boundsY.min),s=Math.max(s,b.boundsY.max),c[A].push(b)}else i==="secondary"&&t.primary.forEach(h=>{let[v,g]=t.secondary,C=n.getRowsByGrouping([...f,h,v]),b=n.getRowsByGrouping([...f,h,g]),B=ZK(v,g,C,b,e.linkColumn,r,i,e.aes.showOutliers,a.scale);o=Math.min(o,B.boundsY.min),s=Math.max(s,B.boundsY.max),c[A].push(B)});return c},{}),meta:{minY:o,maxY:s},aes:e.aes}}function B7t(e){let t=Math.abs(e),n=1/(1+t/2),r=n*Math.exp(-t*t-1.26551223+n*(1.00002368+n*(.37409196+n*(.09678418+n*(-.18628806+n*(.27886807+n*(-1.13520398+n*(1.48851587+n*(-.82215223+n*.17087277)))))))));return e>=0?r:2-r}function _7t(e){return .5*B7t(-e/Math.sqrt(2))}var T7t=class{constructor(e,t){this.value=e,this.position=t}getValue(){return this.value}getPosition(){return this.position}};function k7t(e){let t=new Array(e.length);for(let o=0;o<e.length;o++)t[o]=new T7t(e[o],o);let n=P7t(t);t.sort((o,s)=>o.getValue()-s.getValue());let r=new Array(t.length),a=1;r[t[0].getPosition()]=a;let i=[];i.push(t[0].getPosition());for(let o=1;o<t.length;o++)t[o].getValue()>t[o-1].getValue()&&(a=o+1,i.length>1&&JK(r,i),i=[]),i.push(t[o].getPosition()),r[t[o].getPosition()]=a;return i.length>1&&JK(r,i),M7t(r,n),r}function JK(e,t){let n=(2*e[t[0]]+t.length-1)/2;t.forEach(r=>{e[r]=n})}function M7t(e,t){t.forEach(n=>{e[n]=NaN})}function P7t(e){let t=[];for(let n=0;n<e.length;n++)isNaN(e[n].getValue())&&t.push(n);return t}var H7t=class{constructor(){Be(this,"SMALL_SAMPLE_SIZE",50)}mannWhitneyU(e,t){let n=[...e,...t],r=k7t(n),a=0;for(let s=0;s<e.length;s++)a+=r[s];let i=a-e.length*(e.length+1)/2,o=e.length*t.length-i;return Math.min(i,o)}mannWhitneyUTest(e,t,n){if(typeof n>"u")return e.length+t.length<=this.SMALL_SAMPLE_SIZE&&Object.keys(this.tiesMap(e,t)).length===0?this.mannWhitneyUTest(e,t,!0):this.mannWhitneyUTest(e,t,!1);let r=this.tiesMap(e,t),a=this.mannWhitneyU(e,t);if(n){if(Object.keys(r).length!==0)throw new Error;return this.exactP(e.length,t.length,a)}return this.approximateP(a,e.length,t.length,this.varU(e.length,t.length,r))}approximateP(e,t,n,r){let a=t*n/2;if(a==e)return 1;let i=-Math.abs(e-a+.5)/Math.sqrt(r);return 2*_7t(i)}exactP(e,t,n){let r=t*e;if(n>r)return 1;let a=n<r/2?n:r/2-n,i=0,o=0;for(;o<=a;)i+=this.uDensity(e,t,o),o++;return 2*i}uDensity(e,t,n){if(n<0||n>t*e)return 0;let r=this.uFrequencies(e,t);return r[Math.round(n+1)]/Zn.sum(r)}uFrequencies(e,t){let n=Math.max(t,e);if(n>100)throw Error("n or m > 100");let r=Math.min(t,e),a=new Array(e*t+2),i=new Array(e*t+2);for(let s=1;s<a.length;s++)a[s]=s<=n+1?1:0;i[1]=0;let o=n;for(let s=2;s<=r;s++){i[s]=0,o=o+n;let c=o+2,f=1+o/2,A=s;for(let h=1;h<=f;h++){A++,c=c-1;let v=a[h]+i[h];a[h]=v,i[A]=v-a[c],a[c]=v}}return a}varU(e,t,n){let r=e*t;if(Object.keys(n).length===0)return r*(e+t+1)/12;let a=Zn.sum(Object.values(n).map(o=>o*o*o-o)),i=e+t;return r/12*(i+1-a/(i*(i-1)))}tiesMap(e,t){let n={};for(let r=0;r<e.length;r++)n[e[r]]=n[e[r]]?n[e[r]]+1:1;for(let r=0;r<t.length;r++)n[t[r]]=n[t[r]]?n[t[r]]+1:1;for(let r in n)n[r]===1&&delete n[r];return n}};function RM(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 slt(e[0],e[1]).pValue}let r=Blt(e[0],e[1]).pValue;return isNaN(r)?1:r}case"anova":{let r=AGe(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 H7t().mannWhitneyUTest(e[0],e[1]);return isNaN(r)?1:r}case"kruskalWallis":{let r=Wct(...e).pValue;return isNaN(r)?1:r}default:throw new Error("Unknown test method")}}function qK(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 E3(e,t){return Zn.orderBy(e.map((n,r)=>[n,r]),([n])=>n,[t?"desc":"asc"]).map(([,n])=>n)}function D7t(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 $7t(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 eZ(e,t){if(e.length<1)throw new Error("pmin requires at least one element");return e.map(n=>Math.min(n,t))}function I7t(e){if(e.length<1)throw new Error("pAdjust requires at least one element");return Math.min(...e)}function L7t(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 R7t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=E3(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=E3(r,!1),o=$7t(a),s=eZ(o,1),c=new Array(t);for(let f=0;f<t;++f)c[f]=s[i[f]];return c}function V7t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=qK(t,t),r=E3(e,!1),a=new Array(t);for(let h=0;h<t;++h)a[h]=e[r[h]];let i=r.slice(),o=E3(i,!1),s=new Array(t),c=new Array(t),f=new Array(t);for(let h=0;h<t;++h)f[h]=a[h]*t/n[h];let A=I7t(f);s.fill(A),c.fill(A);for(let h=t;h>=2;--h){let v=qK(1,t-h+1);for(let B=0;B<t-h+1;++B)v[B]--;let g=h-1,C=new Array(g);for(let B=0;B<g;++B)C[B]=t-h+2+B-1;let b=h*a[C[0]]/2;for(let B=1;B<g;++B){let E=a[C[B]]*h/(2+B);E<b&&(b=E)}for(let B=0;B<t-h+1;++B)s[v[B]]=Math.min(a[v[B]]*h,b);for(let B=0;B<g;++B)s[C[B]]=s[t-h];for(let B=0;B<t;++B)c[B]<s[B]&&(c[B]=s[B])}for(let h=0;h<t;++h)s[h]=c[o[h]];return s}var N7t=class{constructor(e,t,n){this.ni=e,this.o=t,this.ro=n}result(e){let t=D7t(e),n=eZ(t,1),r=new Array(e.length);for(let a=0;a<e.length;++a)r[a]=n[this.ro[a]];return r}};function VM(e){let t=e.length,n=new Array(t),r=E3(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=E3(r,!1);return new N7t(n,r,a)}function z7t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=VM(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 O7t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=VM(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 F7t(e){let t=e.length;if(t<1)throw new Error("pAdjust requires at least one element");let n=VM(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 tZ(e,t){switch(t){case"BenjaminiHochberg":return z7t(e);case"BenjaminiYekutieli":return O7t(e);case"Bonferroni":return L7t(e);case"Hochberg":return F7t(e);case"Holm":return R7t(e);case"Hommel":return V7t(e);case null:return e;default:throw new Error(`Unknown p-value correction method: ${t}`)}}function Q7t(e){return e.slice(0,-1).reduce((t,n,r)=>t.concat(e.slice(r+1).map(a=>[n,a])),[])}function j7t(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=RM(c,e.testMethod,e.paired);s=[[["overall"],f]];break}case"referenceGroup":{let c=e.referenceGroup===null?J1:String(e.referenceGroup);if(c!==J1&&!n.includes(c))throw new Error(`Reference group ${String(c)} for ${e.testMethod} test is not in available groups`);let f=a.getColumnByGrouping([...o,c],r.value);if(f.length===0){s=[];break}let A=n.filter(v=>v!==c).map(v=>[v,a.getColumnByGrouping([...o,v],r.value)]).filter(([,v])=>v.length>0);if(A.length<2&&e.correctionMethod!==null)break;let h=tZ(A.map(([,v])=>RM([f,v],e.testMethod,e.paired)),e.correctionMethod);s=A.map(([v],g)=>[[v],h[g]]);break}case"pairwise":{let c=Q7t(n).map(([A,h])=>[[A,h],[a.getColumnByGrouping([...o,A],r.value),a.getColumnByGrouping([...o,h],r.value)]]).filter(([,[A,h]])=>A.length&&h.length);if(c.length<1)break;let f=tZ(c.map(([,A])=>RM(A,e.testMethod,e.paired)),e.correctionMethod);s=c.map(([A],h)=>[A,f[h]]);break}default:throw new Error("Unknown statType")}return i[Md(o)]=s,i},{}),meta:{statType:e.statType,testMethod:e.testMethod,format:e.format,ns:e.ns,significanceLevels:e.significanceLevels}}}function nZ(e,t,n=null){let r=t.value,a=e.getColumnCategories(r);return Zn.intersection(n??a,a).map(String)}function rZ(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 oS(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=e.getColumnCategories(n,!t.allowNullGroup),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 U7t=class extends zm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new jyt);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new WK(n),r&&(this.onTooltipHintSwitch=r[0])}mount(t){this.chartRenderer.init(t),this._updateData(),this._updateChart()}unmount(){this.chartRenderer.clear()}updateSettingsAndData(t,n){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()}updateChartState(t,n){console.warn("no chart state for discrete")}export(){return this._updateChart(),w5(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,o,s,c,f,A;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)??"")||(((s=t.primaryGrouping)==null?void 0:s.allowNullGroup)??"")!==(((c=n.primaryGrouping)==null?void 0:c.allowNullGroup)??"")||(((f=t.secondaryGrouping)==null?void 0:f.allowNullGroup)??"")!==(((A=n.secondaryGrouping)==null?void 0:A.allowNullGroup)??"")||t.facetBy.some((h,v)=>{var g;return h.value!==((g=n.facetBy[v])==null?void 0:g.value)})||t.layers.length!==n.layers.length||t.layers.some((h,v)=>!h.isEqualForCalculation(n.layers[v]))}_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(E=>{let k=E[n.value];return k===null||!(Number(k)<0)}),f=oS(this.data,this.settings.primaryGrouping),A=oS(this.data,this.settings.secondaryGrouping),h=a.map(E=>E.value),v=a.length?rZ(a.map(E=>{var k;return nZ(this.data,E,(k=o==null?void 0:o.order)==null?void 0:k[E.value])})):[[J1]];this.data.setGrouping([...h,f.value,A.value]);let g={facet:v,primary:f.value!==null?f.keys:[J1],secondary:A.value!==null?A.keys:[J1]},C=g.facet.reduce((E,k)=>(E[Md(k)]=g.primary.filter(P=>this.data.getRowsByGrouping([...k,P]).length>0).map(String),E),{}),b=i.filter(E=>!(E instanceof iS)).map(E=>{if(E instanceof RK)return Yyt(E,g,this.data,n,r,s);if(E instanceof VK)return e7t(E,g,this.data,n,s);if(E instanceof NK)return u7t(E,g,this.data,n,s,r);if(E instanceof zK)return f7t(E,g,this.data,n,s);if(E instanceof OK)return m7t(E,g,this.data,n,s);if(E instanceof FK)return y7t(E,g,this.data,n,s);if(E instanceof QK)return w7t(E,g,this.data,n);if(E instanceof UK)return S7t(E,g,this.data,n,s);if(E instanceof GK)return E7t(E,g,this.data,n,s);if(E instanceof YK)return s7t(E,g,this.data,n,s);if(E instanceof jK)return V4t(E,g,this.data,n);throw new Error("Unknown layer type")}),B=i.filter(E=>E instanceof iS).map(E=>{if(f.value===null)throw new Error("Cannot calculate p-value without data grouping");return j7t(E,g.facet,g.primary,n,this.data)});this.calculatedData={layersData:b,statsLayersData:B,primaryGrouping:f,secondaryGrouping:A,facetKeyLists:v,nonEmptyGroupsByFacets:C,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 iS));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=oS(this.data,r),this.calculatedData.secondaryGrouping=oS(this.data,a),this.calculatedData.facetKeyLists=n.length?rZ(n.map(s=>{var c;return nZ(this.data,s,(c=i==null?void 0:i.order)==null?void 0:c[s.value])})):[[J1]]}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,keyColumn:r,facetSettings:a}=this.settings,i=this.calculatedData.facetKeyLists.map(Md),o=this.calculatedData.facetKeyLists.map(s=>s.map(c=>c===J1?"null":c));this.chartRenderer.render(t,n,this.calculatedData.primaryGrouping,this.calculatedData.secondaryGrouping,a,i,o,this.calculatedData.layersData,this.calculatedData.statsLayersData,r,this.calculatedData.nonEmptyGroupsByFacets,this.calculatedData.onlyPositive,this.onTooltipHintSwitch)}},G7t=1e6;function Y7t(e){let t=_I(e),n=Vs(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function W7t(e){let t=Vs(e),[n,r]=H0(e);return t===void 0||n===void 0||r===void 0||r===n?a=>a:a=>(a-t)/(r-n)}function X7t(e,t){return e==="standardScaling"?Y7t(t):e==="meanNormalization"?W7t(t):n=>n}function NM(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 K7t(e,t,n,r,a,i,o,s,c,f,A,h){let v=a.length?a.map(Y=>e.getColumnCategories(Y.value)):[["null"]],g=i.length?i.map(Y=>e.getColumnCategories(Y.value)):[["null"]],C=o.length?o.map(Y=>e.getColumnCategories(Y.value)):[["null"]],b=NM(v),B=NM(g),E=NM(C),k=b.map(Y=>Y.join("_")),P=B.map(Y=>Y.join("_")),I=E.map(Y=>Y.join("_")),$={meta:{facetKeys:k,xGroupKeys:P,yGroupKeys:I,xKeysByGroups:{},yKeysByGroups:{},xLabels:{},yLabels:{},xGroupLabels:{},yGroupLabels:{},xDataByKeys:{},yDataByKeys:{},facetKeyValues:k.reduce((Y,X,ee)=>(Y[X]=b[ee],Y),{}),xGroupKeyValues:P.reduce((Y,X,ee)=>(Y[X]=B[ee],Y),{}),yGroupKeyValues:I.reduce((Y,X,ee)=>(Y[X]=E[ee],Y),{}),valueExtent:[1/0,-1/0]},facets:{}},z=t.valueLabels??t.value,O=n.valueLabels??n.value,K=s.filter(Y=>Y.axis==="x").map(Y=>Y.valueColumn.value),te=s.filter(Y=>Y.axis==="y").map(Y=>Y.valueColumn.value),le=Object.values(c??{}).map(Y=>Y.value),G=Object.values(f??{}).map(Y=>Y.value),Q=Zn.uniq([...K,...le,z]),j=Zn.uniq([...te,...G,O]);if(e.rows.forEach(Y=>{let X=a.length?a.map(De=>Y[De.value]).join("_"):"null",ee=i.length?i.map(De=>Y[De.value]).join("_"):"null",pe=o.length?o.map(De=>Y[De.value]).join("_"):"null",ae=i.length?i.map(De=>Y[De.valueLabels??De.value]).join(", "):"",ge=o.length?o.map(De=>Y[De.valueLabels??De.value]).join(", "):"";$.meta.xGroupLabels[ee]=ae,$.meta.yGroupLabels[ee]=ge;let me=Y[t.value],fe=Y[n.value],Ce=Y[r.value]??h;if(!(me===null||fe===null||Ce===null)){if($.facets[X]||($.facets[X]={xKeys:[],yKeys:[],xKeysByGroups:{},yKeysByGroups:{},cells:{}}),$.facets[X].xKeysByGroups[ee]||($.facets[X].xKeysByGroups[ee]=[]),$.facets[X].yKeysByGroups[pe]||($.facets[X].yKeysByGroups[pe]=[]),$.facets[X].xKeys.push(me),$.facets[X].yKeys.push(fe),$.facets[X].xKeysByGroups[ee].push(me),$.facets[X].yKeysByGroups[pe].push(fe),$.facets[X].cells[me]||($.facets[X].cells[me]={}),$.meta.valueExtent[0]=Math.min(Ce,$.meta.valueExtent[0]),$.meta.valueExtent[1]=Math.max(Ce,$.meta.valueExtent[1]),$.facets[X].cells[me][fe])throw Error(`More than 1 value for x=${me}, y=${fe}`);if($.meta.xLabels[me]&&String(Y[z])!==$.meta.xLabels[me])throw Error(`More than 1 x-label value for x=${me}`);if($.meta.yLabels[fe]&&String(Y[O])!==$.meta.yLabels[fe])throw Error(`More than 1 y-label value for y=${fe}`);$.meta.xLabels[me]=String(Y[z]),$.meta.yLabels[fe]=String(Y[O]),Q.forEach(De=>{let ke=typeof $.meta.xDataByKeys[De]<"u",$e=ke&&typeof $.meta.xDataByKeys[De][me]<"u";if(ke||($.meta.xDataByKeys[De]={}),$e&&$.meta.xDataByKeys[De][me]!==Y[De])throw Error(`More than 1 value for x = ${me} and column = ${De}`);$e||($.meta.xDataByKeys[De][me]=Y[De])}),j.forEach(De=>{let ke=typeof $.meta.yDataByKeys[De]<"u",$e=ke&&typeof $.meta.yDataByKeys[De][fe]<"u";if(ke||($.meta.yDataByKeys[De]={}),$e&&$.meta.yDataByKeys[De][fe]!==Y[De])throw Error(`More than 1 value for y = ${fe} and column = ${De}`);$e||($.meta.yDataByKeys[De][fe]=Y[De])}),$.facets[X].cells[me][fe]={id:`${me}_${fe}`,x:me,y:fe,value:Ce,normalizedValue:Ce,data:Y}}}),$.meta.facetKeys=$.meta.facetKeys.filter(Y=>$.facets[Y]),$.meta.facetKeys.forEach(Y=>{let X=$.facets[Y];if(X.xKeys=Zn.uniq(X.xKeys),X.yKeys=Zn.uniq(X.yKeys),X.xKeys.length*X.yKeys.length>G7t)throw Error(`Too many cells for graph rendering (${X.xKeys.length*X.yKeys.length})`);P.forEach(ee=>{$.facets[Y].xKeysByGroups[ee]=Zn.uniq($.facets[Y].xKeysByGroups[ee])}),I.forEach(ee=>{$.facets[Y].yKeysByGroups[ee]=Zn.uniq($.facets[Y].yKeysByGroups[ee])})}),A){let Y=[1/0,-1/0];$.meta.facetKeys.forEach(X=>{let{xKeys:ee,yKeys:pe,cells:ae}=$.facets[X],ge=A.direction==="row"?ee:pe,me=A.direction==="row"?pe:ee,fe=A.direction==="row"?(Ce,De)=>{var ke;return(ke=ae[Ce])==null?void 0:ke[De]}:(Ce,De)=>{var ke;return(ke=ae[De])==null?void 0:ke[Ce]};me.forEach(Ce=>{let De=[];ge.forEach($e=>{var Oe;let je=(Oe=fe($e,Ce))==null?void 0:Oe.value;je!==void 0&&De.push(je)});let ke=X7t(A.method,De);ge.forEach($e=>{let je=fe($e,Ce);je!==void 0&&(je.normalizedValue=ke(je.value),Y[0]=Math.min(je.normalizedValue,Y[0]),Y[1]=Math.max(je.normalizedValue,Y[1]))})})}),$.meta.valueExtent=Y}return $.meta.xKeysByGroups=P.reduce((Y,X)=>(Y[X]=Zn.uniq(Zn.flatten($.meta.facetKeys.map(ee=>$.facets[ee].xKeysByGroups[X]))),Y),{}),$.meta.yKeysByGroups=I.reduce((Y,X)=>(Y[X]=Zn.uniq(Zn.flatten($.meta.facetKeys.map(ee=>$.facets[ee].yKeysByGroups[X]))),Y),{}),$.meta.valueExtent[0]===1/0&&($.meta.valueExtent[0]=0),$.meta.valueExtent[1]===-1/0&&($.meta.valueExtent[1]=0),$}function aZ(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 iZ(e,t){return Math.sqrt(aZ(e,t))}var oZ=(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},Z7t=(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},J7t=(e,t,n)=>{let r=1/0;for(let a of e)for(let i of t)r=Math.min(r,n[a][i]);return r};function q7t(e){switch(e){case"average":return oZ;case"complete":return Z7t;case"single":return J7t;default:return oZ}}function e9t(e){switch(e){case"euclidean":return iZ;case"squaredEuclidean":return aZ;default:return iZ}}function lZ(e=[],t,n="euclidean",r="average"){let a=e9t(n),i=q7t(r),o=t.map(c=>t.map(f=>a(c,f))),s=e.map((c,f)=>({height:0,keys:[c],indexes:[f],children:[]}));for(let c=0;c<e.length&&!(c>=e.length-1);c++){let f=1/0,A=0,h=0;for(let g=0;g<s.length;g++)for(let C=g+1;C<s.length;C++){let b=i(s[g].indexes,s[C].indexes,o);b<f&&(f=b,A=g,h=C)}let v={keys:[...s[A].keys,...s[h].keys],indexes:[...s[A].indexes,...s[h].indexes],height:f,children:[s[A],s[h]]};s.splice(Math.max(A,h),1),s.splice(Math.min(A,h),1),s.push(v)}return s[0]}function t9t(e,t,n,r){let{facetKeys:a,xGroupKeys:i,yGroupKeys:o}=e.meta,s={};if(t&&r.sharedX)throw Error("Dendrogram on X axis is not available with shared by facets X axis");return a.forEach(c=>{let f={hierarchyX:[],hierarchyY:[]},A=e.facets[c];if(t){let h=[],v=[];i.forEach(g=>{let C=A.xKeysByGroups[g],b=A.yKeys,B=lZ(C,C.map(E=>b.map(k=>{var P;return((P=A.cells[E][k])==null?void 0:P.normalizedValue)??t.fillNA})),t.distance,t.linkage);e.facets[c].xKeysByGroups[g]=B.keys,v.push(...B.keys),h.push(B)}),e.facets[c].xKeys=v,f.hierarchyX=h.map(g=>_8(g))}if(n){let h=[],v=[];o.forEach(g=>{let C=A.yKeysByGroups[g],b=A.xKeys,B=lZ(C,C.map(E=>b.map(k=>{var P;return((P=A.cells[k][E])==null?void 0:P.normalizedValue)??n.fillNA})),n.distance,n.linkage);e.facets[c].yKeysByGroups[g]=B.keys,v.push(...B.keys),h.push(B)}),e.facets[c].yKeys=v,f.hierarchyY=h.map(g=>_8(g))}s[c]=f}),s}var n9t=15,Zv=8,Jv=30,r9t=48,a9t=24,B3=16,_3=4,lS=4,zM=20,i9t=16,Wc=16,T3=8,Ap={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"]},sZ={fillColor:"white",lineColor:Vt,lineWidth:1,lineShape:"solid",dotSize:3,dotFill:Vt,dotShape:"21"};function o9t(e,t,n,r,a,i,o,s,c,f,A,h,v,g){let C=h.length>1&&(!c||o.includes(t.groupingPosition)),b=!c||o.includes(t.position),B=A.length>1&&(!s||o.includes(e.groupingPosition)),E=!s||o.includes(e.position),k=f.length>1,P=r.filter(ee=>o.includes(ee.position)||!s&&["left","right"].includes(ee.position)||!c&&["top","bottom"].includes(ee.position)),I=P.filter(ee=>ee.position==="left").length,$=P.filter(ee=>ee.position==="right").length,z=P.filter(ee=>ee.position==="top").length,O=P.filter(ee=>ee.position==="bottom").length,K=e.showTicks?lS:0,te=t.showTicks?lS:0,le=E&&e.showTitle?Jv:0,G=b&&t.showTitle?Jv:0,Q=E&&e.showAxisLabels&&v>B3?n.xAxisCaptions+K+_3:0,j=b&&t.showAxisLabels&&g>B3?n.yAxisCaptions+te+_3:0,Y=B&&e.showGroupLabels?n.xGroupCaptions:0,X=C&&t.showGroupLabels?n.yGroupCaptions:0;return{left:{dendro:!(i!=null&&i.hidden)&&(i==null?void 0:i.position)==="left"?i.size:0,axisTitle:t.position==="left"?G:0,groups:t.groupingPosition==="left"?X:0,axis:t.position==="left"?j:0,annotations:I*Wc+(I&&T3)},right:{dendro:!(i!=null&&i.hidden)&&(i==null?void 0:i.position)==="right"?i.size:0,axisTitle:t.position==="right"?G:0,groups:t.groupingPosition==="right"?X:0,axis:t.position==="right"?j:0,annotations:$*Wc+($&&T3)},top:{facetTitle:k?r9t: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"?Q:0,annotations:z*Wc+(z&&T3)},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"?Q:0,annotations:O*Wc+(O&&T3)}}}function l9t(e,t,n){return{left:Ap.left.reduce((r,a,i)=>{let o=i>0?Ap.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:Ap.right.reduce((r,a,i)=>{let o=i>0?Ap.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:Ap.top.reduce((r,a,i)=>{let o=i>0?Ap.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:Ap.bottom.reduce((r,a,i)=>{let o=i>0?Ap.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 OM(e,t,n){let r=(t-e)/n,a=Zn.range(e,t-r/2,r);return a.push(t),a}function uZ(e,t){let n=OM(0,1,e.length-1),r=Zr().domain(n).range(e),a=OM(0,1,t.length-1).map(i=>r(i));return Qo().domain(t).range(a).unknown("#ccc")}function s9t(e,t,n,r,a,i){let o=OM(0,1,e.length-1),s=Zr().domain(o).range(e),c=[r,...o.filter(b=>b>r&&b<a),a],f=[a,...o.filter(b=>b>a&&b<i),i],A=(n-t)/2,h=c.map(b=>t+A*(b-r)/(a-r)),v=f.map(b=>(t+n)/2+A*(b-a)/(i-a)),g=c.map(b=>s(b)),C=f.map(b=>s(b));return Zr().domain(h.concat(v.slice(1))).range(g.concat(C.slice(1)))}var u9t=new hc("bold 14px Arial");function sS(e){let t=0;for(let n of e){let r=u9t.getTextWidth(n);r>t&&(t=r)}return t}function c9t(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:sS(i),right:sS(o),top:sS(s),bottom:sS(c)}}function f9t(e,t,n,r,a){let{facetKeys:i,xGroupKeys:o,yGroupKeys:s,xKeysByGroups:c,yKeysByGroups:f,xLabels:A,yLabels:h}=r.meta,v=e.xGroupLabels/180*Math.PI,g=e.yGroupLabels/180*Math.PI,C=e.xAxisLabels/180*Math.PI,b=e.yAxisLabels/180*Math.PI,B=0,E=0,k=e.xGroupLabels===45,P=e.xAxisLabels===45;if(k||P)if(!t.sharedX)i.forEach(z=>{let O=o.find(j=>r.facets[z].xKeysByGroups[j].length>0);if(!O)return;let K=r.facets[z].xKeysByGroups[O],te=n.x[z],le=te>B3,G=K.length*te/2,Q=A[K[0]];B=Math.max(B,(k?a.getTextWidth(O)*Math.cos(v):0)-G,(P&&le?a.getTextWidth(Q)*Math.cos(C):0)-te/2)});else{let z=o[0],O=i[0];if(z){let K=c[z],te=n.x[O],le=te>B3,G=K.length*te/2,Q=A[K[0]];B=Math.max(B,(k?a.getTextWidth(z)*Math.cos(v):0)-G,(P&&le?a.getTextWidth(Q)*Math.cos(C):0)-te/2)}}let I=e.yGroupLabels===45,$=e.yAxisLabels===45;if(I||$)if(!t.sharedY)i.forEach(z=>{let O=Zn.findLast(s,j=>r.facets[z].yKeysByGroups[j].length>0);if(!O)return;let K=r.facets[z].yKeysByGroups[O],te=n.y[z],le=te>B3,G=K.length*te/2,Q=h[K[K.length-1]];E=Math.max(E,(I?a.getTextWidth(O)*Math.cos(g):0)-G,($&&le?a.getTextWidth(Q)*Math.cos(b):0)-te/2)});else{let z=s[s.length-1],O=i[0];if(z){let K=f[z],te=n.y[O],le=te>B3,G=K.length*te/2,Q=h[K[K.length-1]];E=Math.max(E,(I?a.getTextWidth(z)*Math.cos(g):0)-G,($&&le?a.getTextWidth(Q)*Math.cos(b):0)-te/2)}}return{xCaptionTail:B,yCaptionTail:E}}function cZ(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 d9t(e,t,n,r,a){if(e){let s=Wc/2,c=n==="top"?-5:a+5;return{x:s,y:c,rotate:t==="left"?-90:90,anchor:t==="left"&&n==="top"?"start":"end"}}let i=n==="right"?r+5:-5,o=Wc/2;return{x:i,y:o,rotate:0,anchor:n==="right"?"start":"end"}}function A9t(e){return e!==null&&!("data"in e)}function uS({facetKey:e,data:t,scales:n,stepX:r,stepY:a,x:i,y:o,annotation:s,showTitle:c,width:f,height:A,colorScale:h,aes:v,frame:g,xGroupKeys:C,yGroupKeys:b,xKeysByGroups:B,yKeysByGroups:E,tooltipsData:k,activeElementContainer:P}){let{position:I,titlePosition:$,valueColumn:z}=s,O=I==="left"||I==="right",K=(O?n.y:n.x).domain(),te=d9t(O,I,$,f,A),le=k.fixed&&P;return ie.jsxs("g",{children:[K.map(G=>{let Q=t==null?void 0:t[G],j=h.type==="continuous"?h.scale(Number(Q)):h.scale(String(Q)),Y=i+(O?0:n.x(G)),X=o+(O?n.y(G):0),ee=O?Wc:r,pe=O?a:Wc,ae=O?null:G,ge=O?G:null,me=le&&A9t(k.selectedData)&&k.selectedData.xKey===ae&&k.selectedData.yKey===ge&&e===k.currentFacet,fe=ie.jsx("rect",{x:Y,y:X,width:ee,height:pe,fill:j,stroke:v.cellStrokeColor,onMouseOver:()=>k.onMouseOver({x:Y+ee,y:X+pe/2,xKey:ae,yKey:ge,value:Q,title:z.label??z.value},e),onMouseLeave:()=>k.onMouseLeave()},G);return me?cu.createPortal(fe,P):fe}),k.fixed&&!O&&C.map(G=>{let Q=B[G].length;if(Q===0)return null;let j=Q*r,Y=n.x(B[G][0]);return ie.jsx("rect",{x:Y+i,y:o,width:j,height:Wc,stroke:"none",fill:"rgba(255, 255, 255, 0.8)"},`${Y}_${o}`)}),k.fixed&&O&&b.map(G=>{let Q=E[G].length;if(Q===0)return null;let j=Q*a,Y=n.y(E[G][0]);return ie.jsx("rect",{x:i,y:Y+o,width:Wc,height:j,stroke:"none",fill:"rgba(255, 255, 255, 0.8)"},`${i}_${Y}`)}),g.type==="groups"&&!O&&C.map(G=>{let Q=B[G].length;if(Q===0)return null;let j=Q*r,Y=n.x(B[G][0]);return ie.jsx("rect",{x:Y+i,y:o,width:j,height:Wc,stroke:Vt,fill:"none"},`${Y}_${o}`)}),g.type==="groups"&&O&&b.map(G=>{let Q=E[G].length;if(Q===0)return null;let j=Q*a,Y=n.y(E[G][0]);return ie.jsx("rect",{x:i,y:Y+o,width:Wc,height:j,stroke:Vt,fill:"none"},`${i}_${Y}`)}),c&&ie.jsx("g",{fontWeight:"500",fontSize:"14px",transform:`translate(${i+te.x},${o+te.y}) rotate(${te.rotate})`,children:ie.jsx("text",{textAnchor:te.anchor,dominantBaseline:"central",children:z.label??z.value})})]})}function cS(e,t){return e.showTitle&&t.includes(e.titlePosition)}function h9t({facetKey:e,sideElementBBoxes:t,annotations:n,annotationColorScales:r,cellsMeta:a,chartEdgeSides:i,sharedX:o,sharedY:s,width:c,height:f,scales:A,stepX:h,stepY:v,aes:g,frame:C,xGroupKeys:b,yGroupKeys:B,xKeysByGroups:E,yKeysByGroups:k,tooltipsData:P,activeElementContainer:I}){let $=n.filter(j=>i.includes(j.position)||!o&&["left","right"].includes(j.position)||!s&&["top","bottom"].includes(j.position)),z=$.filter(j=>j.position==="left"),O=$.filter(j=>j.position==="right"),K=$.filter(j=>j.position==="top"),te=$.filter(j=>j.position==="bottom"),{xDataByKeys:le,yDataByKeys:G}=a,Q={facetKey:e,scales:A,stepX:h,stepY:v,width:c,height:f,aes:g,frame:C,xGroupKeys:b,yGroupKeys:B,xKeysByGroups:E,yKeysByGroups:k,tooltipsData:P,activeElementContainer:I};return ie.jsxs("g",{children:[z.map((j,Y)=>ie.jsx(uS,{annotation:j,colorScale:r[j.id],data:G[j.valueColumn.value],showTitle:cS(j,i),x:t.left.annotations.x+Y*Wc,y:t.left.annotations.y,...Q},j.id)),O.map((j,Y)=>ie.jsx(uS,{annotation:j,colorScale:r[j.id],data:G[j.valueColumn.value],showTitle:cS(j,i),x:t.right.annotations.x+Y*Wc+T3,y:t.right.annotations.y,...Q},j.id)),K.map((j,Y)=>ie.jsx(uS,{annotation:j,colorScale:r[j.id],data:le[j.valueColumn.value],showTitle:cS(j,i),x:t.top.annotations.x,y:t.top.annotations.y+Y*Wc,...Q},j.id)),te.map((j,Y)=>ie.jsx(uS,{annotation:j,colorScale:r[j.id],data:le[j.valueColumn.value],showTitle:cS(j,i),x:t.bottom.annotations.x,y:t.bottom.annotations.y+Y*Wc+T3,...Q},j.id))]})}function p9t({sideElementBBoxes:e,xGroupKeys:t,yGroupKeys:n,xKeysByGroups:r,yKeysByGroups:a,xGroupLabels:i,yGroupLabels:o,scales:s,stepX:c,stepY:f,xAxis:A,yAxis:h,labelAngles:v,debug:g}){let C=e.top.groups.isVisible||e.bottom.groups.isVisible,b=e.top.groups.isVisible?e.top.groups:e.bottom.groups,B=e.left.groups.isVisible||e.right.groups.isVisible,E=e.left.groups.isVisible?e.left.groups:e.right.groups;return ie.jsxs("g",{children:[C&&ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:t.map(k=>{let P=r[k].length;if(P===0)return null;let I=v.xGroupLabels!==0,$=A.groupingPosition==="top",z=P*c,O=s.x(r[k][0])+z/2,K=I?$?b.height:0:b.height/2,te=-v.xGroupLabels,le=I?$?"start":"end":"middle";return ie.jsxs("g",{transform:`translate(${O},${K})`,children:[ie.jsx("text",{transform:`rotate(${te})`,dominantBaseline:"central",textAnchor:le,children:i[k]}),g&&ie.jsx("rect",{x:-z/2,width:z,height:b.height,stroke:"black",fill:"none"})]},k)})}),B&&ie.jsx("g",{transform:`translate(${E.x},${E.y})`,children:n.map(k=>{let P=a[k].length;if(P===0)return null;let I=P*f,$=h.groupingPosition==="left",z=$?E.width:0,O=s.y(a[k][0])+I/2,K=v.yGroupLabels!==0,te=v.yGroupLabels===45?-45:($?-1:1)*(90-v.yGroupLabels),le=K?$?"end":"start":"middle";return ie.jsxs("g",{transform:`translate(${z},${O})`,children:[ie.jsx("text",{y:K?0:-E.width/2,transform:`rotate(${te})`,dominantBaseline:"central",textAnchor:le,children:o[k]}),g&&ie.jsx("rect",{x:-E.width/2,y:-I/2,width:E.width,height:I,stroke:"black",fill:"none"})]},k)})})]})}function v9t({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:f,xLabels:A,yLabels:h}){let v=i.showTicks?lS:0,g=o.showTicks?lS:0,C=e.top.axis.isVisible||e.bottom.axis.isVisible,b=e.top.axisTitle.isVisible?e.top.axisTitle:e.bottom.axisTitle,B=e.top.axis.isVisible?e.top.axis:e.bottom.axis,E=e.left.axis.isVisible||e.right.axis.isVisible,k=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,P=e.left.axis.isVisible?e.left.axis:e.right.axis;return ie.jsxs("g",{children:[ie.jsxs("g",{children:[b.isVisible&&ie.jsxs("g",{transform:`translate(${b.x},${b.y})`,children:[ie.jsx("text",{x:b.width/2,y:b.height/2,textAnchor:"middle",dominantBaseline:"central",children:i.title}),t&&ie.jsx("rect",{width:b.width,height:b.height,stroke:Vt,fill:"none"})]}),C&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${B.x},${B.y})`,children:[n.map(I=>{let $=f.xAxisLabels!==0,z=i.position==="bottom",O=z?0:B.height,K=z?O+v:O-v,te=z?K+_3:K-_3,le=a.x(I)+s/2,G=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:le,y1:O,y2:K,stroke:Vt}),ie.jsx("text",{x:le,y:te,textAnchor:$?z?"end":"start":"middle",transform:`rotate(${G},${le},${te})`,dominantBaseline:$?"central":z?"hanging":"auto",children:A[I]})]},I)}),t&&ie.jsx("rect",{width:B.width,height:B.height,stroke:Vt,fill:"none"})]})]}),ie.jsxs("g",{children:[k.isVisible&&ie.jsx("g",{transform:`translate(
15127
15127
  ${k.x+k.width/2},
15128
- ${k.y+k.height/2})`,children:ie.jsx("text",{transform:`rotate(${o.position==="left"?-90:90})`,dominantBaseline:"central",textAnchor:"middle",children:o.title})}),t&&ie.jsx("rect",{x:k.x,y:k.y,width:k.width,height:k.height,stroke:Vt,fill:"none"}),E&&ie.jsx("g",{fontSize:"14px",transform:`translate(${P.x},${P.y})`,children:r.map(I=>{let $=f.yAxisLabels!==0,z=o.position==="left",O=-(90-f.yAxisLabels),K=f.yAxisLabels===0?"middle":z?"end":"start",te=$?"central":z?"auto":"hanging",le=z?P.width:0,G=z?le-g:le+g,Q=z?G-_3:G+_3,j=a.y(I)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:G,y1:j,y2:j,stroke:Vt}),ie.jsx("text",{x:Q,y:j,textAnchor:K,transform:`rotate(${O},${Q},${j})`,dominantBaseline:te,children:h[I]})]},I)})}),t&&ie.jsx("rect",{x:P.x,y:P.y,height:P.height,width:P.width,stroke:Vt,fill:"none"})]})]})}function m9t({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:h,yKeysByGroups:v,labelAngles:g,xLabels:C,yLabels:b,xGroupLabels:B,yGroupLabels:E}){return ie.jsxs("g",{fontWeight:"500",children:[ie.jsx(v9t,{sideElementBBoxes:e,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:g,xLabels:C,yLabels:b,debug:t}),ie.jsx(p9t,{sideElementBBoxes:e,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:h,yKeysByGroups:v,xGroupLabels:B,yGroupLabels:E,scales:a,stepX:s,stepY:c,xAxis:i,yAxis:o,labelAngles:g,debug:t})]})}function fZ(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 dZ(e,t,n,r,a){if(!n)return"";let i=n.aes[e];if(!w9(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 AZ={x:0,y:0,width:0,height:0};function g9t({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:AZ,c=o?t[o.position].dendro:AZ;function f(h,v){return dZ(h,v,i,n,a)}function A(h,v){return dZ(h,v,o,r,a)}return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${s.x},${s.y})`,children:i&&!i.hidden&&e.x.trees.map((h,v)=>{let g=h.links(),C=h.descendants();return ie.jsxs("g",{children:[g.map(b=>{let B=i.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:fZ(b,i.position),stroke:f("lineColor",B),strokeWidth:f("lineWidth",B),strokeDasharray:Of(f("lineShape",B)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),i.showNodes&&C.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:Yc(f("dotShape",b),f("dotSize",b),f("dotFill",b))},`${b.x},${b.y}`))]},v)})}),ie.jsx("g",{transform:`translate(${c.x},${c.y})`,children:o&&!o.hidden&&e.y.trees.map((h,v)=>{let g=h.links(),C=h.descendants();return ie.jsxs("g",{children:[g.map(b=>{let B=o.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:fZ(b,o.position),stroke:A("lineColor",B),strokeWidth:A("lineWidth",B),strokeDasharray:Of(A("lineShape",B)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),o.showNodes&&C.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:Yc(A("dotShape",b),A("dotSize",b),A("dotFill",b))},`${b.x},${b.y}`))]},v)})})]})}function y9t({frame:e,width:t,height:n,xGroupKeys:r,yGroupKeys:a,xKeysByGroups:i,yKeysByGroups:o,scales:s,stepX:c,stepY:f}){return ie.jsxs("g",{children:[e.type==="full"&&ie.jsx("rect",{fill:"none",stroke:Vt,x:"0",y:"0",width:t,height:n}),e.type==="groups"&&r.map(A=>{let h=i[A].length;if(h===0)return null;let v=h*c,g=s.x(i[A][0]);return a.map(C=>{let b=o[C].length;if(b===0)return null;let B=b*f,E=s.y(o[C][0]);return ie.jsx("rect",{x:g,y:E,width:v,height:B,stroke:Vt,fill:"none"},`${g}_${E}`)})})]})}function FM(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 w9t(e,t,n=[]){let r=e.data,a=[`X: ${t.xLabels[e.x]}`,`Y: ${t.yLabels[e.y]}`,`Value: ${FM(e.value)}${e.value!==e.normalizedValue?` (${FM(e.normalizedValue)})`:""}`];for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function b9t(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}: ${FM(e.value)}`),n}function C9t(e){return e!==null&&!("data"in e)}function hZ(e){return e!==null&&"data"in e}function S9t({dendrograms:e,facetKey:t,dimensions:n,scales:r,cells:a,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,colorScale:f,chartSettings:A,cellsMeta:h,stepX:v,stepY:g,sharedX:C,sharedY:b,annotations:B,annotationColorScales:E,dendrogramAesScales:k,aes:P,labelAngles:I,chartSizes:$,margins:z,tooltipsContainer:O,tooltipsData:K}){let[te,le]=tn.useState(),{xAxis:G,yAxis:Q,tooltips:j}=A,{width:Y,height:X}=n.inner,{padding:ee,chartEdgeSides:pe,sideElementBBoxes:ae}=n,{xGroupLabels:ge,yGroupLabels:me,xLabels:fe,yLabels:Ce}=h,De=r.x.domain(),ke=r.y.domain(),$e={left:z.left+n.left+ee.left,right:$.totalWidth-(z.left+n.left+ee.left),top:z.top+n.top+ee.top,bottom:$.totalHeight-(z.top+n.top+ee.top)},je=!1,Oe=te&&K.fixed;return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:i9t,children:[ie.jsxs("g",{transform:`translate(${ee.left},${ee.top})`,children:[ie.jsx(h9t,{facetKey:t,sideElementBBoxes:ae,annotations:B,cellsMeta:h,annotationColorScales:E,sharedX:C,sharedY:b,chartEdgeSides:pe,width:Y,height:X,scales:r,stepX:v,stepY:g,aes:P,frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,tooltipsData:K,activeElementContainer:te}),ie.jsx(g9t,{dendrograms:e,sideElementBBoxes:ae,xDataByKeys:h.xDataByKeys,yDataByKeys:h.yDataByKeys,aesScales:k}),ae.top.facetTitle.isVisible&&ie.jsx("text",{x:ae.top.facetTitle.x,y:ae.top.facetTitle.y+ae.top.facetTitle.height-a9t,fontWeight:"500",fontSize:"20px",children:h.facetKeyValues[t].join(", ")}),je,De.map(ft=>ke.map(ze=>{var gt;let Xe=(gt=a==null?void 0:a[ft])==null?void 0:gt[ze],tt=Oe&&hZ(K.selectedData)&&(Xe==null?void 0:Xe.id)===K.selectedData.id,qe=Xe?ie.jsx("rect",{x:r.x(ft),y:r.y(ze),width:v,height:g,stroke:P.cellStrokeColor,fill:Xe.value===null?P.emptyCellColor:f(Xe.normalizedValue),onMouseOver:()=>K.onMouseOver(Xe,t),onMouseLeave:()=>K.onMouseLeave()},Xe?Xe.id:`${ft}_${ze}`):null;return tt?cu.createPortal(qe,te):qe})),ie.jsx(y9t,{frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,scales:r,stepX:v,stepY:g,width:Y,height:X}),ie.jsx(m9t,{xAxis:G,yAxis:Q,scales:r,stepX:v,stepY:g,debug:je,sideElementBBoxes:ae,xKeys:De,yKeys:ke,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,xGroupLabels:ge,yGroupLabels:me,labelAngles:I,xLabels:fe,yLabels:Ce})]}),A.tooltips.show&&hZ(K.selectedData)&&K.currentFacet===t&&ie.jsx(fu,{content:w9t(K.selectedData,h,j==null?void 0:j.content),x:r.x(String(K.selectedData.x))+v/2,y:r.y(String(K.selectedData.y))+g/2,offset:De.length>1?v/2:0,active:!0,sideDistances:$e,fixed:K.fixed,onClose:K.onClose,container:O}),A.tooltips.show&&C9t(K.selectedData)&&K.currentFacet===t&&ie.jsx(fu,{content:b9t(K.selectedData,h),x:K.selectedData.x,y:K.selectedData.y,offset:0,active:!0,sideDistances:$e,fixed:K.fixed,onClose:K.onClose,container:O}),ie.jsxs("g",{transform:`translate(${ee.left},${ee.top})`,children:[K.fixed&&ie.jsx("rect",{width:$.chartWidth,height:$.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:ft=>{ft&&!te&&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:h,groupedCells:v,cellsMeta:g,step:C,annotations:b,annotationColorScales:B,legend:E,aes:k,dendrograms:P,dendrogramAesScales:I,columnsCount:$,labelAngles:z,onTooltipHintSwitch:O}){let[K,te]=tn.useState(),le=h3(O),G=tn.useRef(null);tn.useEffect(()=>{G.current&&te(G.current)},[]);let Q=i[o[0]].padding,j=i[o[$-1]].padding,Y=e.left+a.chartsWidth+zM,X=e.top+Q.top;return ie.jsx(g3,{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:Qm}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(y3,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:Q.left,rightPadding:j.right,chartsWidth:a.chartsWidth}),o.map(ee=>{let{cells:pe,xKeysByGroups:ae,yKeysByGroups:ge}=v[ee];return ie.jsx(S9t,{dendrograms:P[ee],captionsSizes:t,facetKey:ee,dimensions:i[ee],xGroupKeys:c,yGroupKeys:f,xKeysByGroups:s.sharedX?g.xKeysByGroups:ae,yKeysByGroups:s.sharedY?g.yKeysByGroups:ge,sharedX:s.sharedX,sharedY:s.sharedY,scales:{x:A.x[ee],y:A.y[ee]},cells:pe,cellsMeta:g,stepX:C.x[ee],stepY:C.y[ee],colorScale:h,chartSettings:r,aes:k,annotations:b,annotationColorScales:B,dendrogramAesScales:I,labelAngles:z,margins:e,chartSizes:a,tooltipsContainer:K,tooltipsData:le},ee)})]}),ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(w3,{legendData:E})}),ie.jsx("g",{ref:G,style:{outline:"none"}})]})})}function pZ(e,t,n){function r(a){a[n]=t(a.data.height),a.children&&a.children.forEach(r)}r(e)}function vZ(e,t,n,r=n){function a(i){i[r]=i[n]+t,i.children&&i.children.forEach(a)}a(e)}var E9t=(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 mZ(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])),E9t(t,r)}var B9t=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:Zv,bottom:Zv,left:Zv,right:Zv});Be(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xGroupCaptions:Jv,yGroupCaptions:Jv,xCaptionTail:0,yCaptionTail:0});Be(this,"labelAngles",{xAxisLabels:0,yAxisLabels:0,xGroupLabels:0,yGroupLabels:0});Be(this,"columnsCount",1);Be(this,"rowsCount",1);Be(this,"scales",{x:{null:Qo().domain(["null"]).range([1])},y:{null:Qo().domain(["null"]).range([1])}});Be(this,"step",{x:{},y:{}});Be(this,"colorScale",Zr().domain([0,1]).range(["white","black"]));Be(this,"annotationColorScales",{});Be(this,"dendrogramAesScales",{});Be(this,"legend",{width:0,height:0,items:[]});Be(this,"dendrograms",{})}clear(){var e;this.parentNode&&this.rootNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),this.parentNode=null,this.rootNode=null),setTimeout(()=>{var t;(t=this.reactRoot)==null||t.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.reactRoot=Wh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Zv,bottom:Zv,left:Zv,right:this.legend.width+Zv},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartsHeight+this.margins.bottom,this.legend.height)}updateLegendSize(e,t,n,r,a){if(!t.show){this.legend={width:0,height:0,items:[]};return}let i=this.chartSizes.chartHeight,o=[],s={width:0,height:0,left:0,top:0},c=v=>v.reduce((g,C)=>(g[C]=String(C),g),{});if(e==="continuous"){let v=this.colorScale,g=A3(v,a),C=Zr([g[0],g[g.length-1]],[i,0]),b=r.label??r.value;o.push({...s,type:"continuous",id:"heatmapValue",scale:v,values:g,title:b,tickPositionScale:C})}else if(e==="discrete"){let v=this.colorScale,g=r.label??r.value,C=v.domain(),b=c(C);o.push({...s,type:"discreteColor",id:"heatmapValue",title:g,scale:v,values:C,labels:b})}if(n.forEach(v=>{let g=v.valueColumn.label??v.valueColumn.value;if(v.type==="continuous"){let C=this.annotationColorScales[v.id].scale,b=A3(C,a),B=Zr([b[0],b[b.length-1]],[i,0]);o.push({...s,type:"continuous",id:v.id,tickPositionScale:B,title:g,scale:C,values:b})}if(v.type==="discrete"){let C=this.annotationColorScales[v.id].scale,b=C.domain(),B=c(b);o.push({...s,type:"discreteColor",id:v.id,title:g,scale:C,values:b,labels:B})}}),!o.length){this.legend={width:0,height:0,items:[]};return}let f=C3(o,this.chartSizes.chartHeight),A=f[f.length-1],h=A.left+A.width+zM;this.legend={width:h,height:i,items:f}}updateCaptionsSize(e,t,n,r){let a=new hc("bold 14px Arial"),{xGroupKeys:i,yGroupKeys:o,xGroupLabels:s,yGroupLabels:c,xKeysByGroups:f,yKeysByGroups:A,xLabels:h,yLabels:v}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle,xGroupLabels:t.groupLabelsAngle,yGroupLabels:n.groupLabelsAngle};function g(le,G){let Q=0;for(let j of le){let Y=a.getTextWidth(G[j]);Y>Q&&(Q=Y)}return Q}let C=Zn.flatten(Object.values(f)),b=Zn.flatten(Object.values(A)),B=g(C,h),E=g(b,v),k=g(i,s),P=g(o,c),{xCaptionTail:I,yCaptionTail:$}=f9t(this.labelAngles,r,this.step,e,a),z=this.labelAngles.xGroupLabels/180*Math.PI,O=this.labelAngles.yGroupLabels/180*Math.PI,K=this.labelAngles.xAxisLabels/180*Math.PI,te=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:I,yCaptionTail:$,xGroupCaptions:k*Math.sin(z)||Jv,yGroupCaptions:P*Math.sin(O)||Jv,xAxisCaptions:B*Math.sin(K)||Jv,yAxisCaptions:E*Math.sin(te)||Jv}}updateChartDimensions(e,t,n,r,a,i,o,s,c,f){let A=t.length,h=Math.min(a.nRows??A,A),v=Math.min(a.nCols??A,A);this.columnsCount=a.nRows?Math.ceil(A/h):v,this.rowsCount=Math.ceil(A/this.columnsCount);let{width:g,height:C}=e,{sharedX:b,sharedY:B}=a;this.chartsDimensions={};let E=0,k=0;t.forEach(($,z)=>{let O=z%this.columnsCount+1,K=cZ(z,t.length,this.columnsCount,this.rowsCount),te=this.step.x[$],le=this.step.y[$],G=o9t(i,o,this.captionsSizes,s,c,f,K,b,B,t,n,r,te,le),Q=c9t(s,K,b,B);function j(ae){return Math.max(Ap[ae].reduce((ge,me)=>ge+G[ae][me],0),Q[ae],n9t)}let Y={left:j("left"),right:j("right"),top:j("top"),bottom:j("bottom")};Y.left<this.captionsSizes.xCaptionTail&&(Y.left=this.captionsSizes.xCaptionTail),Y.bottom<this.captionsSizes.yCaptionTail&&(Y.bottom=this.captionsSizes.yCaptionTail);let X=l9t(G,g,C),ee=g+Y.left+Y.right,pe=C+Y.top+Y.bottom;this.chartsDimensions[$]={left:E,top:k,inner:{width:g,height:C},outer:{width:ee,height:pe},padding:Y,sideElementBBoxes:X,chartEdgeSides:K},E+=ee,O===this.columnsCount&&(E=0,k+=pe)});let P=t.slice(0,this.columnsCount).reduce(($,z)=>$+this.chartsDimensions[z].outer.width,0),I=t.filter(($,z)=>z%this.columnsCount===0).reduce(($,z)=>$+this.chartsDimensions[z].outer.height,0);this.chartSizes.chartsWidth=P,this.chartSizes.chartsHeight=I}updateChartsSizes(e){let{width:t,height:n}=e;this.chartSizes.chartWidth=t,this.chartSizes.chartHeight=n}updateScales(e,t,n,r,a,i,o,s,c){let{width:f,height:A}=a,{meta:h,facets:v}=t,{sharedX:g,sharedY:C}=r,b=(E,k={})=>E.sort((P,I)=>i.sorting==="asc"?(k[P]??P).localeCompare(k[I]??I,"en",{numeric:!0}):(k[I]??I).localeCompare(k[P]??P,"en",{numeric:!0})),B=(E,k={})=>E.sort((P,I)=>o.sorting==="asc"?(k[P]??P).localeCompare(k[I]??I,"en",{numeric:!0}):(k[I]??I).localeCompare(k[P]??P,"en",{numeric:!0}));e.forEach(E=>{let k=v[E],P=b(h.xGroupKeys),I=B(h.yGroupKeys),{xKeysByGroups:$}=g?h:k,{yKeysByGroups:z}=C?h:k,O=P.map(ge=>$[ge].length),K=I.map(ge=>z[ge].length),te=O.reduce((ge,me)=>ge+me,0),le=K.reduce((ge,me)=>ge+me,0),G=(f-(O.filter(ge=>ge>0).length-1)*n)/te,Q=(A-(K.filter(ge=>ge>0).length-1)*n)/le,j=[],Y=[],X=0;P.forEach(ge=>{let me=s?$[ge]:b($[ge],h.xLabels);Y.push(...me),me.forEach(()=>{j.push(X),X+=G}),me.length>0&&(X+=n)});let ee=[],pe=[],ae=0;I.forEach(ge=>{let me=c?z[ge]:B(z[ge],h.yLabels);pe.push(...me),me.forEach(()=>{ee.push(ae),ae+=Q}),me.length>0&&(ae+=n)}),this.scales.x[E]=Qo().domain(Y).range(j),this.scales.y[E]=Qo().domain(pe).range(ee),this.step.x[E]=G,this.step.y[E]=Q})}updateAesScale(e,t,n,r,a,i,o){if(e==="continuous")n.valueColors?this.colorScale=Zr().domain(n.valuesByColors??mZ(o,n.valueColors.length,t)).range(n.valueColors):n.colorsList&&(this.colorScale=Zr().domain(mZ(o,n.colorsList.length,t)).range(n.colorsList));else if(n.colorsMap){let f=Object.entries(n.colorsMap);this.colorScale=Qo().domain(f.map(A=>A[0])).range(f.map(A=>A[1])).unknown("#ccc")}else n.colorsList&&(this.colorScale=uZ(n.colorsList,i.map(String)));let{xDataByKeys:s,yDataByKeys:c}=a.meta;r.forEach(f=>{let{colors:A,type:h,axis:v,valueColumn:g}=f,C=(v==="x"?s:c)[g.value];if(h==="discrete"){let b=Zn.uniq(Object.values(C).map(String)).sort();this.annotationColorScales[f.id]={type:"discrete",scale:uZ(A,b)}}else{let b=Object.values(C).map(Number);if(!b.length)return;let[B=b[0],E=b[0]]=H0(b);this.annotationColorScales[f.id]={type:"continuous",scale:s9t(A,B,E,0,.5,1)}}})}updateDendrogram(e,t,n,r,a,i,o){e.forEach(s=>{this.dendrograms[s]={x:{trees:[],data:i},y:{trees:[],data:o}};let{xKeysByGroups:c,yKeysByGroups:f}=r[s],{hierarchyX:A,hierarchyY:h}=a[s],v=Math.max(...A.map(C=>C.data.height)),g=Math.max(...h.map(C=>C.data.height));i&&(this.dendrograms[s].x.trees=A.map((C,b)=>{let B=t[b],E=c[B];$B().separation(()=>1).size([E.length*this.step.x[s],i.size])(C);let k=C,P=Zr().domain(i.position==="top"?[0,v]:[v,0]).range([i.size,0]);return pZ(k,P,"y"),vZ(k,this.scales.x[s](E[0]),"x"),k}),this.dendrograms[s].x.data=i),o&&(this.dendrograms[s].y.trees=h.map((C,b)=>{let B=n[b],E=f[B];$B().separation(()=>1).size([E.length*this.step.y[s],o.size])(C);let k=C,P=Zr().domain(o.position==="left"?[0,g]:[g,0]).range([o.size,0]);return vZ(k,this.scales.y[s](E[0]),"x","y"),pZ(k,P,"x"),k}),this.dendrograms[s].y.data=o)})}updateDendrogramAesScales(e){if(!e)return;let t=Object.keys(e);this.dendrogramAesScales=t.reduce((n,r)=>{let a=e[r],i=Object.keys(a);return n[r]=Qo().domain(i).range(i.map(o=>({...sZ,...a[o]}))).unknown(sZ),n},{})}render(e,t,n,r,a,i,o,s,c,f,A,h,v,g){var le;let{meta:C,facets:b}=a,{facetKeys:B,xGroupKeys:E,yGroupKeys:k,valueExtent:P}=C,{xAxis:I,yAxis:$,title:z,size:O,valueType:K}=t;this.updateChartsSizes(O),this.updateAesScale(K,P,r,i,a,h,v),this.updateScales(B,a,r.groupGap,n,O,t.xAxis,t.yAxis,s,c),this.updateCaptionsSize(a,I,$,n),this.updateChartDimensions(O,B,E,k,n,I,$,i,s,c),this.updateLegendSize(K,t.legend,i,o,P),this.updateMargins(z),this.updateDendrogram(B,E,k,b,f,s,c),this.updateDendrogramAesScales(A);let te=ie.jsx(x9t,{aes:r,annotations:i,annotationColorScales:this.annotationColorScales,captionsSizes:this.captionsSizes,cellsMeta:C,columnsCount:this.columnsCount,chartsDimensions:this.chartsDimensions,chartSettings:t,chartSizes:this.chartSizes,colorScale:this.colorScale,dendrogramAesScales:this.dendrogramAesScales,dendrograms:this.dendrograms,facetKeys:B,facetSettings:n,groupedCells:b,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step,xGroupKeys:E,yGroupKeys:k,onTooltipHintSwitch:g});this.component=te,(le=this.reactRoot)==null||le.render(te)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Xv,{message:e}))}},_9t=B9t,QM={lineColor:Vt,dotShape:"21",dotFill:Vt,dotSize:3,lineShape:"solid",lineWidth:1},gZ={size:150,distance:"euclidean",linkage:"average",fillNA:0,showNodes:!0,hidden:!1,edgeInheritance:"up",aes:QM},yZ=class{constructor(e){Be(this,"id");Be(this,"type","heatmap");Be(this,"facetSettings");Be(this,"xColumn");Be(this,"xGroupBy");Be(this,"yColumn");Be(this,"yGroupBy");Be(this,"valueColumn");Be(this,"facetBy");Be(this,"normalization");Be(this,"chartSettings");Be(this,"aes");Be(this,"annotations");Be(this,"dendrogramX");Be(this,"dendrogramY");Be(this,"inheritedDendrogramAes");Be(this,"NAValueAs");var t,n,r,a,i,o,s,c,f,A,h,v,g;if(K3t.parse(e),this.id=Zn.uniqueId("settings"),this.facetSettings={sharedX:(e.facetBy??[]).length>0,sharedY:(e.facetBy??[]).length>0,...e.facetSettings},this.xColumn=e.xColumn,this.xGroupBy=e.xGroupBy??[],this.yColumn=e.yColumn,this.yGroupBy=e.yGroupBy??[],this.valueColumn=e.valueColumn,this.facetBy=e.facetBy??[],this.chartSettings={title:{position:"left",show:!0,...e.title,name:((t=e.title)==null?void 0:t.name)??"Chart"},size:{width:((n=e==null?void 0:e.size)==null?void 0:n.width)??(this.facetBy.length?400:600),height:((r=e==null?void 0:e.size)==null?void 0:r.height)??(this.facetBy.length?250:350)},frame:{type:((a=e.frame)==null?void 0:a.type)??"none"},valueType:e.valueType??"continuous",yAxis:{title:e.yColumn.label??e.yColumn.value,showTicks:!0,showTitle:!0,showAxisLabels:!0,showGroupLabels:!0,position:"left",groupingPosition:"left",axisLabelsAngle:90,groupLabelsAngle:0,sorting:"asc",...e.yAxis},xAxis:{title:e.xColumn.label??e.xColumn.value,showTicks:!0,showTitle:!0,showAxisLabels:!0,showGroupLabels:!0,position:"bottom",groupingPosition:"bottom",axisLabelsAngle:90,groupLabelsAngle:0,sorting:"asc",...e.xAxis},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.normalization=this.chartSettings.valueType==="continuous"?e.normalization??null:null,this.NAValueAs=e.NAValueAs??null,this.aes={colorsList:((i=e.aes)==null?void 0:i.colorsList)??["black","white","red"],colorsMap:((o=e.aes)==null?void 0:o.colorsMap)??null,valueColors:((s=e.aes)==null?void 0:s.valueColors)??null,valuesByColors:((c=e.aes)==null?void 0:c.valuesByColors)??null,cellStrokeColor:((f=e.aes)==null?void 0:f.cellStrokeColor)??"none",groupGap:((A=e.aes)==null?void 0:A.groupGap)??3,emptyCellColor:((h=e.aes)==null?void 0:h.emptyCellColor)??"white"},this.annotations=(e.annotations??[]).map(C=>C.axis==="x"?{id:Zn.uniqueId("annotation"),axis:"x",valueColumn:C.valueColumn,position:C.position??this.chartSettings.xAxis.position,titlePosition:C.titlePosition??"right",showTitle:C.showTitle??!0,type:C.type,colors:C.colors??["white","black"]}:{id:Zn.uniqueId("annotation"),axis:"y",valueColumn:C.valueColumn,position:C.position??this.chartSettings.yAxis.position,titlePosition:C.titlePosition??"top",showTitle:C.showTitle??!0,type:C.type,colors:C.colors??["white","black"]}),e.valueType==="discrete"&&(e.dendrogramX||e.dendrogramY))throw Error("Dendrogram is not available with discrete cells values");this.dendrogramX=e.dendrogramX?{...gZ,position:"top",...e.dendrogramX,aes:{...QM,...(v=e.dendrogramX)==null?void 0:v.aes}}:null,this.dendrogramY=e.dendrogramY?{...gZ,position:"left",...e.dendrogramY,aes:{...QM,...(g=e.dendrogramY)==null?void 0:g.aes}}:null,this.inheritedDendrogramAes=e.inheritedDendrogramAes??null}},T9t=class extends zm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new _9t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new yZ(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 yZ(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(),w5(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var $,z,O,K,te,le,G,Q,j,Y,X,ee;let{xColumn:r,yColumn:a,valueColumn:i,xGroupBy:o,yGroupBy:s,facetBy:c,annotations:f,chartSettings:A,facetSettings:h,dendrogramX:v,dendrogramY:g,normalization:C,NAValueAs:b}=n,B=Object.values((($=t.dendrogramX)==null?void 0:$.aes)||{}).filter(w9),E=Object.values((v==null?void 0:v.aes)||{}).filter(w9),k=Object.values(((z=t.dendrogramY)==null?void 0:z.aes)||{}).filter(w9),P=Object.values((g==null?void 0:g.aes)||{}).filter(w9);function I(pe,ae){return pe.length!==ae.length||pe.some((ge,me)=>ge.value!==ae[me].value)}return t.xColumn.value!==r.value||t.yColumn.value!==a.value||t.valueColumn.value!==i.value||I(t.xGroupBy,o)||I(t.yGroupBy,s)||I(t.facetBy,c)||I(t.annotations.map(pe=>pe.valueColumn),f.map(pe=>pe.valueColumn))||I(B,E)||I(k,P)||(n.dendrogramX||t.dendrogramX)&&(((O=t.dendrogramX)==null?void 0:O.distance)!==((K=n.dendrogramX)==null?void 0:K.distance)||((te=t.dendrogramX)==null?void 0:te.linkage)!==((le=n.dendrogramX)==null?void 0:le.linkage))||(n.dendrogramY||t.dendrogramY)&&(((G=t.dendrogramY)==null?void 0:G.distance)!==((Q=n.dendrogramY)==null?void 0:Q.distance)||((j=t.dendrogramY)==null?void 0:j.linkage)!==((Y=n.dendrogramY)==null?void 0:Y.linkage))||t.chartSettings.valueType!==A.valueType||t.facetSettings.sharedX!==h.sharedX||t.facetSettings.sharedY!==h.sharedY||((X=t.normalization)==null?void 0:X.method)!==(C==null?void 0:C.method)||((ee=t.normalization)==null?void 0:ee.direction)!==(C==null?void 0:C.direction)||t.NAValueAs!==b}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{xColumn:t,yColumn:n,valueColumn:r,xGroupBy:a,yGroupBy:i,facetBy:o,chartSettings:s,facetSettings:c,annotations:f,dendrogramX:A,dendrogramY:h,normalization:v,NAValueAs:g}=this.settings,C=K7t(this.data,t,n,r,o,a,i,f,A,h,v,g),b=t9t(C,A,h,c),B=s.valueType==="discrete"?this.data.getColumnCategories(r.value):[];this.calculatedData={groupedCellsData:C,dendrogramsData:b,cellUniqValues:B}}_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)}},wZ=(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 bZ(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 k9t(e,t,n,r,a,i){let o=wZ(n,r),s=PI().domain(r).thresholds(o).value(c=>c[t.value])(e);return{bins:bZ(s,a,i),maxCount:Vh(s,c=>c.length)??0}}function M9t(e,t,n,r,a,i){let o=wZ(n,r),s=uv().domain(r).range(r),c=o.map(A=>s.invert(A)),f=PI().domain(r).thresholds(c).value(A=>A[t.value])(e);return{bins:bZ(f,a,i),maxCount:Vh(f,A=>A.length)??0}}function P9t(e,t,n,r,a,i){let o={};return t.forEach(s=>{var b,B;let c=s.join("_");o[c]={groupingKeys:n,histogramByGroupingKey:{},minX:1/0,maxX:-1/0,maxCount:0,maxCountFromGroups:0};let f=e.getRowsByGrouping([...s]),[A,h]=H0(f,E=>E[r.value]);A=A??((b=f[0])==null?void 0:b[r.value])??0,h=h??((B=f[0])==null?void 0:B[r.value])??0;let v=[A,h],g=[...n].reverse();g.forEach((E,k)=>{let P=e.getRowsByGrouping([...s,E]),I=i==="linear"?k9t(P,r,a,v,E,k):M9t(P,r,a,v,E,k);o[c].histogramByGroupingKey[E]=I,o[c].minX=v[0],o[c].maxX=v[1],o[c].maxCountFromGroups=Math.max(o[c].maxCountFromGroups,I.maxCount);let $=k>0?g[k-1]:null,z=$!==null?o[c].histogramByGroupingKey[$]:null;I.bins.forEach((O,K)=>{O.y.straight=((z==null?void 0:z.bins[K].y.straight)??0)+O.count,o[c].maxCount=Math.max(o[c].maxCount,O.y.straight)})});let C=n;C.forEach((E,k)=>{let P=k>0?C[k-1]:null,I=o[c].histogramByGroupingKey[E],$=P!==null?o[c].histogramByGroupingKey[P]:null;I.bins.forEach((z,O)=>{z.y.reverse=(($==null?void 0:$.bins[O].y.reverse)??0)+z.count})})}),o}var H9t={TOP:30,BOTTOM:0,LEFT:10,RIGHT:10};function T9(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 CZ=(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 D9t(e,t,n){if(n==="linear")return CZ(e,t);if(n==="log"){let r=CZ(e,t),a=uv(t,t),i=r.map(o=>a.invert(o));return i[0]=t[0],i[i.length-1]=t[1],i}return[]}function k9(e,t,n){return(n==="log"?uv():Zr()).domain(D9t(e.length,t,n)).range(e)}function $9t(e){return`translate(${e},0)`}function I9t(e){return`translate(0,${e})`}function L9t(e){return e==="bottom"?`translate(0,${zf})`:`translate(${-zf},0)`}function R9t(e){return e==="bottom"?"hanging":"central"}function V9t(e){return e==="bottom"?"middle":"end"}var SZ=({scale:e,tickSize:t=6,tickPadding:n=zf,orient:r="bottom",onlyPositive:a=!1,hiddenLabels:i=!1,offset:o=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function s(B){return E=>{let k=B(E);return k===void 0?0:+k}}let{ticks:c,format:f}=i?{ticks:[],format:B=>B}:T9(e,a,r==="bottom"),A=Math.max(t,0)+n,h=s(e.copy()),v=r==="bottom"?$9t:I9t,g=r==="left"?-1:1,C={[(r==="left"?"x":"y")+"2"]:g*t},b={[r==="left"?"x":"y"]:g*A};return ie.jsx("g",{children:c.map((B,E)=>ie.jsxs("g",{className:"tick",transform:v(h(B)+o),children:[ie.jsx("line",{stroke:Vt,...C}),ie.jsx("g",{transform:L9t(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:R9t(r),textAnchor:V9t(r),...b,children:f(B)})})]},E))})},N9t=1;function xZ({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=tn.useState(e.ticks()),[A,h]=tn.useState(t.ticks()),{significantLines:v=[]}=a,{significantLines:g=[]}=i;return tn.useEffect(()=>{let C=e.ticks().filter(B=>!v.includes(B)),b=t.ticks().filter(B=>!g.includes(B));f(C),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Nf,children:[a.showGrid&&c.map(C=>{let b=e(C);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`x_${b}_${r}`)}),i.showGrid&&A.map(C=>{let b=t(C);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`y_${b}_${n}`)}),ie.jsx("g",{strokeDasharray:Of(a.significantLinesStyle),stroke:Vt,children:v.map(C=>{let b=e(C);return b<0||b>n?null:ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`significant_${b}_${r}`)})}),ie.jsx("g",{strokeDasharray:Of(i.significantLinesStyle),stroke:Vt,children:g.map(C=>{let b=t(C);return b<0||b>r?null:ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`significant_${b}_${n}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:N9t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?Nf:Vt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?Nf:Vt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}function z9t(e){return typeof e=="string"?e:e.value}function O9t(e,t){let n=[`Amount: ${e.count}`,`(from ${Ka(e.x)}, to ${Ka(e.x+e.width)})`];return e.groupingKey!=="null"&&n.push(`${t[e.groupingKey]??e.groupingKey}`),n}function EZ(e,t,n,r){return t==="vertical"?e:e+n*r}function BZ(e,t,n,r){return t(n==="vertical"?r==="straight"?e.y.straight:e.y.reverse:e.count)}function F9t({facetKey:e,width:t,height:n,dimensions:r,scales:a,xAxis:i,yAxis:o,frameType:s,histogramData:c,facetSettings:f,captionsSizes:A,facetTitle:h,layers:v,aesColorGetter:g,groupingDirection:C,groupingStack:b,groupingLabels:B,chartSizes:E,margins:k,tooltipsContainer:P,tooltipsData:I}){let[$,z]=tn.useState(),{padding:O}=r,K=i.showTicks?4:0,te=o.showTicks?4:0,le=r.chartEdgeSides.includes("left")||!(f!=null&&f.sharedY),G=r.chartEdgeSides.includes("bottom")||!(f!=null&&f.sharedX),Q=r.chartEdgeSides.includes("bottom"),j=c.groupingKeys,Y=c.histogramByGroupingKey[j[0]].bins[0],X=a.x(Y.width)-a.x(0),ee=b==="vertical"?X:X/j.length,pe={left:k.left+r.left+O.left,right:E.totalWidth-(k.left+r.left+O.left),top:k.top+r.top+O.top,bottom:E.totalHeight-(k.top+r.top+O.top)},ae=$&&I.fixed,ge=!1;return ie.jsxs("g",{transform:`translate(${r.left+O.left},${r.top+O.top})`,children:[ge,h.length&&ie.jsxs("g",{children:[s==="full"&&ie.jsx("rect",{x:"0",y:-O.top,height:O.top,width:t,fill:"#F7F8FA",stroke:Vt}),h.map((me,fe)=>{let Ce=h.length,De=(O.top-20*Ce)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:t/2,dy:De+20/2-O.top,y:fe*20,textAnchor:"middle",dominantBaseline:"central",children:me},fe)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[Q&&i.title&&ie.jsx("text",{x:t/2,y:n+O.bottom-20/2,children:z9t(i.title)}),ge]}),ie.jsx(xZ,{width:t,height:n,scaleX:a.x,scaleY:a.y,axisX:i,axisY:o,frameType:s}),G&&ie.jsxs("g",{transform:`translate(0,${n})`,children:[ie.jsx(SZ,{scale:a.x,orient:"bottom",tickSize:K,hiddenLabels:i.hiddenLabels}),ge]}),le&&ie.jsxs("g",{children:[ie.jsx(SZ,{scale:a.y,orient:"left",tickSize:te,hiddenLabels:o.hiddenLabels}),ge]}),v.map(me=>j.map((fe,Ce)=>c.histogramByGroupingKey[fe].bins.map(De=>{let ke=ae&&I.selectedData===De,$e=ie.jsx("rect",{x:EZ(a.x(De.x),b,Ce,ee),y:BZ(De,a.y,b,C),fill:De.rows[0]?g(me.aes.fillColor,De.rows[0],De.count):"",stroke:me.aes.lineColor,width:ee,height:a.y(0)-a.y(De.count),opacity:me.aes.opacity??1,onMouseOver:()=>I.onMouseOver(De,e),onMouseLeave:()=>I.onMouseLeave()},De.x);return ke?cu.createPortal($e,$):$e}))),I.fixed&&ie.jsx("rect",{width:E.chartWidth,height:E.chartHeight,fill:"rgba(255,255,255,0.8)"}),ie.jsx("g",{ref:me=>{me&&!$&&z(me)}}),I.selectedData&&I.currentFacet===e&&ie.jsx(fu,{content:O9t(I.selectedData,B),x:EZ(a.x(I.selectedData.x),b,I.selectedData.groupingKeyIdx,ee)+ee,y:BZ(I.selectedData,a.y,b,C)+a.y(0)-a.y(I.selectedData.count/2),offset:0,active:!0,fixed:I.fixed,sideDistances:pe,container:P,onClose:I.onClose})]})}function Q9t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,columnsCount:a,facetKeys:i,facetSettings:o,scales:s,margins:c,mainTitle:f,facetTitles:A,captionsSizes:h,histogramDataByFacets:v,layers:g,aesColorGetter:C,groupingDirection:b,groupingStack:B,groupingLabels:E,legend:k,onTooltipHintSwitch:P}){let I=h3(P),{xAxis:$,yAxis:z,title:O,frame:K}=t,te=r[i[0]].padding,le=r[i[a-1]].padding,[G,Q]=tn.useState(),j=tn.useRef(null);tn.useEffect(()=>{j.current&&Q(j.current)},[]);let Y=c.left+n.chartsWidth+zM,X=c.top+te.top;return ie.jsx(g3,{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:Qm}),ie.jsxs("g",{transform:`translate(${c.left},${c.top})`,fontFamily:"Manrope",children:[ie.jsx(y3,{title:f,show:O.show,position:O.position,leftPadding:te.left,rightPadding:le.right,chartsWidth:n.chartsWidth}),i.map(ee=>ie.jsx(F9t,{facetKey:ee,scales:{x:s.x[ee],y:s.y[ee]},width:n.chartWidth,height:n.chartHeight,dimensions:r[ee],margins:c,chartSizes:n,facetSettings:o,xAxis:$,yAxis:z,frameType:K.type,facetTitle:A[ee],captionsSizes:h,histogramData:v[ee],layers:g,aesColorGetter:C,groupingDirection:b,groupingStack:B,groupingLabels:E,tooltipsContainer:G,tooltipsData:I},ee))]}),ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(w3,{legendData:k})}),ie.jsx("g",{ref:j,style:{outline:"none"}})]})})}function j9t(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 U9t(e,t,n,r,a,i,o,s){let c=i.includes("left")||!(s!=null&&s.sharedY),f=i.includes("bottom")||!(s!=null&&s.sharedX),A=i.includes("bottom")&&e.title!=="",h=n.yAxisCaptionsWidth,v=(t.showTicks?4:0)+(t.hiddenLabels?0:6),g=n.xAxisCaptionsWidth,C=(e.showTicks?4:0)+(e.hiddenLabels?0:6),b=A?20:0,B=h+v,E=C+g+b,k=Math.max(...r.map(P=>a[P].length));return{left:c?B:12,top:k===0?0:6*2+k*20,bottom:f?E:12,right:o?0:12}}function G9t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function Y9t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function _Z(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function W9t(e){return typeof e=="object"&&e!==null&&"range"in e}function X9t(e,t,n){return function(r,a,i){var o,s;if(W9t(r)){let{domain:c=n,range:f,type:A="linear"}=r,h=k9(f,c,A);return h.clamp(!0),h(i)}if(_Z(r)){let c=r.value;return(s=((o=e[c])==null?void 0:o[String(a[c])])??m9)==null?void 0:s[t]}return r}}var K9t=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=Wh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateChartDimensions(e,t,n,r){let{chartWidth:a,chartHeight:i}=this.chartSizes,o=0,s=0;this.chartsDimensions=e.reduce((A,h,v)=>{let[g,C]=Y9t(v,this.columnsCount),b=j9t(v,e.length,this.columnsCount,this.rowsCount),B=U9t(n,r,this.captionsSizes,G9t(e,this.rowsCount,this.columnsCount)[g],this.facetTitles,b,C===this.columnsCount-1,t),E=a+B.left+B.right,k=i+B.top+B.bottom;return A[h]={left:o,top:s,chartEdgeSides:b,padding:B,inner:{width:a,height:i},outer:{width:E,height:k}},o+=E,C===this.columnsCount-1&&(o=0,s+=k),A},{});let c=Math.max(...e.map(A=>this.chartsDimensions[A].outer.width+this.chartsDimensions[A].left)),f=Math.max(...e.map(A=>this.chartsDimensions[A].outer.height+this.chartsDimensions[A].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r,a,i,o){let s=e.length,c=Math.min(t.nRows??s,s),f=Math.min(t.nCols??s,s);this.columnsCount=t.nRows?Math.ceil(s/c):f,this.rowsCount=Math.ceil(s/this.columnsCount);let[A,h]=[1/0,-1/0],v=-1/0,g=e.reduce((C,b)=>{let B=a[b],{minX:E,maxX:k,maxCount:P,maxCountFromGroups:I}=B;return A=Math.min(A,E),h=Math.max(h,k),v=Math.max(v,o==="vertical"?P:I),C[b]={minX:E,maxX:k,maxY:o==="vertical"?P:I},C},{});e.forEach(C=>{let b=n.scale==="log"?uv():Zr(),B=g[C],E=t.sharedX?A:B.minX,k=t.sharedX?h:B.maxX;b.domain([E,k]).range([0,this.chartSizes.chartWidth]),this.scales.x[C]=b}),e.forEach(C=>{let b=r.scale==="log"?uv():Zr(),B=g[C],E=0,k=t.sharedY?v:B.maxY,P=[this.chartSizes.chartHeight,0],I=b.copy().domain([E,k]).range([this.chartSizes.chartHeight,i.innerOffset]);b.domain([I.invert(this.chartSizes.chartHeight),I.invert(0)]).range(P),this.scales.y[C]=b})}updateCaptionsSize(e,t){let n=new hc("600 14px Arial"),r=0;function a(i){return Math.max(...i.map(o=>n.getTextWidth(o)))}t.hiddenLabels||Object.values(this.scales.y).forEach(i=>{let{ticks:o,format:s}=T9(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=Kv(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]=Kv(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(_Z(A.aes.fillColor)&&n){let h=A.aes.fillColor.value,v=t[n.value],g=n.label??n.value,C=Qo().domain(v.values).range(v.values.map(b=>v.aesMap[b].fillColor));a.push({...i,id:h,type:"discreteColor",title:g,scale:C,values:v.values,labels:v.labels})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=C3(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+YC,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}updateMargins(e){let t=24*this.mainTitle.length,n=t>0?t+24*2:0,r=e.outerOffset;this.margins={top:Math.max(n,r),bottom:r,left:r,right:this.legend.width+r},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+this.chartSizes.chartsHeight+this.margins.bottom}render(e,t,n,r,a,i,o,s,c,f,A,h,v){var I;let{xAxis:g,yAxis:C,size:b,title:B}=t;this.updateChartSizes(b),this.updateViewport(r,n,g,C,i,b,A),this.updateCaptionsSize(g,C),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,g,C),this.createMainTitle(r,B),this.updateLegendSize(t.legend,o,f,s),this.updateMargins(b);let E=r.reduce(($,z)=>Math.min($,i[z].minX),1/0),k=r.reduce(($,z)=>Math.max($,i[z].maxX),-1/0),P=ie.jsx(Q9t,{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:X9t(c,"fillColor",[E,k]),groupingDirection:h,groupingStack:A,groupingLabels:f?o[f.value].labels:{},legend:this.legend,onTooltipHintSwitch:v});this.component=P,(I=this.reactRoot)==null||I.render(P)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Xv,{message:e}))}},Z9t=K9t,J9t=10,q9t=class{constructor(e){Be(this,"type","bins");Be(this,"aes",{fillColor:"white",lineColor:Vt,opacity:1});this.aes={...this.aes,...e.aes}}},e6t=class{constructor(e){Be(this,"type","binsLine");Be(this,"aes",{opacity:1});this.aes={...this.aes,...e.aes}}},TZ=class{constructor(e){Be(this,"id");Be(this,"type","histogram");Be(this,"valueColumn");Be(this,"binsCount");Be(this,"facetSettings");Be(this,"facetBy");Be(this,"grouping");Be(this,"groupingStack");Be(this,"groupingDirection");Be(this,"groupingOrder");Be(this,"chartSettings");Be(this,"inheritedAes");Be(this,"layers");var t,n,r,a,i,o,s,c,f,A,h;a4t.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??J9t,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)??H9t.TOP},title:{position:"center",show:!0,...e.title,name:((i=e.title)==null?void 0:i.name)??"Chart"},yAxis:{showGrid:!0,showTicks:!0,scale:((o=e.xAxis)==null?void 0:o.scale)??"linear",hiddenLabels:!1,...e.yAxis},xAxis:{title:e.valueColumn.label??e.valueColumn.value??"",scale:((s=e.xAxis)==null?void 0:s.scale)??"linear",showGrid:((c=e.xAxis)==null?void 0:c.showGrid)??!0,showTicks:((f=e.xAxis)==null?void 0:f.showTicks)??!0,hiddenLabels:((A=e.xAxis)==null?void 0:A.hiddenLabels)??!1,...e.xAxis},frame:{type:((h=e.frame)==null?void 0:h.type)??"full"},legend:{show:!0,position:"right",...e.legend}},this.inheritedAes=e.inheritedAes??{},this.layers=e.layers.map(v=>{if(v.type==="bins")return new q9t(v);if(v.type==="binsLine")return new e6t(v);d1(v,"Unknown layer type")}).filter(Boolean)}};function kZ(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 t6t(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 n6t=class extends zm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new Z9t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new TZ(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 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 histogram")}export(){return this._updateChart(),w5(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,o;return t.valueColumn.value!==n.valueColumn.value||t.facetBy.some((s,c)=>{var f;return s.value!==((f=n.facetBy[c])==null?void 0:f.value)})||((r=t.grouping)==null?void 0:r.value)!==((a=n.grouping)==null?void 0:a.value)||t.layers.length!==n.layers.length||t.layers.some((s,c)=>s.type!==n.layers[c].type)||t.binsCount!==n.binsCount||t.chartSettings.xAxis.scale!==n.chartSettings.xAxis.scale||((i=t.groupingOrder)==null?void 0:i.some((s,c)=>{var f;return s!==((f=n.groupingOrder)==null?void 0:f[c])}))||((o=n.groupingOrder)==null?void 0:o.some((s,c)=>{var f;return s!==((f=t.groupingOrder)==null?void 0:f[c])}))}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{valueColumn:t,facetBy:n,grouping:r,binsCount:a,chartSettings:i,inheritedAes:o,groupingOrder:s}=this.settings,c=n.map(C=>this.data.getColumnCategories(C.value)),f=c.length?kZ([...c]):[["null"]],A=n.map(C=>C.value)??null,h=r?[r.value]:[],v=r?this.data.getColumnCategories(r.value):["null"];s&&(v=Zn.intersection(s,v)),this.data.setGrouping([...A,...h]);let g=P9t(this.data,f,v,t,a,i.xAxis.scale);this.calculatedData={facetKeys:f.map(C=>C.join(", ")),facetKeysCombinations:f,histogramDataByFacets:g,legendInfo:t6t(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 r6t(e,t,n,r,a,i,o){let s={};return t.forEach(c=>{let f=[],A=1/0,h=1/0,v=-1/0,g=-1/0;o.forEach(C=>{e.getRowsByGrouping([...c,C]).forEach(b=>{let B=b[n.value],E=b[r.value];A=Math.min(A,B),h=Math.min(h,E),v=Math.max(v,B),g=Math.max(g,E),B!==null&&E!==null&&f.push({id:`${Object.values(b)}`,x:B,y:E,label:a?b[a.valueLabels??a.value]:null,dimmed:i?!b[i.value]:!1,data:b})})}),f.sort((C,b)=>C.x-b.x),s[c.join("_")]={minX:A,maxX:v,minY:h,maxY:g,dots:f}}),s}function a6t(e,t,n,r,a){return t.reduce((i,o)=>{let s=n[o].dots;return i[o]=e.map(c=>{if(c.type==="curve")return{type:"curve",info:c,geoms:r.map(f=>{let A=s.filter(v=>a.every((g,C)=>v.data[g.value]===f[C])),h=a.reduce((v,g,C)=>(v[g.value]=f[C],v),{});return{dots:A,data:h}})};if(c.type==="dots")return{type:"dots",info:c,geoms:s};d1(c,"Unknown scatterplot layer type")}),i},{})}function jM(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 MZ(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 i6t(e,t){return jM(e)-t}function o6t(e,t){return MZ(e)-t}function PZ(e){let t=jM(e),n=t+e.width,r=MZ(e),a=r+e.height;return{minX:t,maxX:n,minY:r,maxY:a}}function HZ(e,t,n){let r=i6t(e,n),a=jM(e)+e.width+n,i=o6t(e,t),o=i+e.height+2*t;return{minX:r,maxX:a,minY:i,maxY:o}}function l6t(e,t,n){return e.minX>=0&&e.maxX<=t&&e.minY>=0&&e.maxY<=n}var fS=2;function s6t(e,t=fS,n=fS){e.forEach(r=>{r.bbox=PZ(r),r.outerBBox=HZ(r,t,n)})}function dS(e,t,n,r=fS,a=fS){let i=[],o=new _dt,s=[["middle","right"],["top","right"],["bottom","right"],["middle","left"],["top","left"],["bottom","left"],["top","middle"],["bottom","middle"]];for(let c of e)for(let[f,A]of s){let h={...c,yPosition:f,xPosition:A};if(h.bbox=PZ(h),h.outerBBox=HZ(h,r,a),l6t(h.outerBBox,t,n)&&!o.collides(h.outerBBox)){i.push(h),o.insert(h.outerBBox);break}}return i}function u6t(e){return`translate(${e},0)`}function c6t(e){return`translate(0,${e})`}function f6t(e){return e==="bottom"?`translate(0,${zf})`:`translate(${-zf},0)`}function d6t(e){return e==="bottom"?"hanging":"central"}function A6t(e){return e==="bottom"?"middle":"end"}var AS=({scale:e,tickSize:t=6,tickPadding:n=zf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function o(b){return B=>{let E=b(B);return E===void 0?0:+E}}let{ticks:s,format:c}=T9(e,a,r==="bottom"),f=Math.max(t,0)+n,A=o(e.copy()),h=r==="bottom"?u6t:c6t,v=r==="left"?-1:1,g={[(r==="left"?"x":"y")+"2"]:v*t},C={[r==="left"?"x":"y"]:v*f};return ie.jsx("g",{children:s.map((b,B)=>ie.jsxs("g",{className:"tick",transform:h(A(b)+i),children:[ie.jsx("line",{stroke:Vt,...g}),ie.jsx("g",{transform:f6t(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:d6t(r),textAnchor:A6t(r),...C,children:c(b)})})]},B))})},h6t=1;function p6t({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=tn.useState(e.ticks()),[A,h]=tn.useState(t.ticks()),{significantLines:v=[]}=a,{significantLines:g=[]}=i;return tn.useEffect(()=>{let C=e.ticks().filter(B=>!v.includes(B)),b=t.ticks().filter(B=>!g.includes(B));f(C),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Nf,children:[a.showGrid&&c.map(C=>{let b=e(C);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`x_${b}_${r}`)}),i.showGrid&&A.map(C=>{let b=t(C);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`y_${b}_${n}`)}),ie.jsx("g",{strokeDasharray:Of(a.significantLinesStyle),stroke:Vt,children:v.map(C=>{let b=e(C);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`significant_${b}_${r}`)})}),ie.jsx("g",{strokeDasharray:Of(i.significantLinesStyle),stroke:Vt,children:g.map(C=>{let b=t(C);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`significant_${b}_${n}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:h6t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?Nf:Vt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?Nf:Vt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}var v6t=new hc("16px Manrope");function DZ(e,t){return typeof e=="string"?e:t.length?t[0].data[e.value]:""}function m6t(e,t,n=[]){let r=e.data,a=[`x: ${Ka(e.x)}`,`y: ${Ka(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 g6t(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:` = ${Ka(e.r2)}`})]})}function y6t(e){return typeof e.pValue>"u"?null:ie.jsx("tspan",{children:`p-value = ${Ka(e.pValue)}`})}function w6t(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 = ${Ka(t)} ± ${Ka(n)}, intercept = ${Ka(r)} ± ${Ka(a)}`})})}function b6t(e){let t=[g6t(e),y6t(e),w6t(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 UM=3;function $Z(e,t,n,r){if(!r)return[];let a=[];for(let i of e){let o=i.label;if(!o)continue;let s=v6t.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)+UM})}return a}function C6t({facetKey:e,width:t,height:n,dimensions:r,scales:a,xAxis:i,yAxis:o,frameType:s,dotsData:c,facetSettings:f,trendsData:A,keyColumn:h,margins:v,chartSizes:g,tooltips:C,tooltipsContainer:b,captionsSizes:B,facetTitle:E,onlyPositive:k,layersData:P,aesGetters:I,tooltipsData:$}){let[z,O]=tn.useState(),{padding:K}=r,{dots:te}=c,le=i.showTicks?c3:0,G=o.showTicks?c3:0,Q=DZ(i.title,te),j=DZ(o.title,te),Y=r.chartEdgeSides.includes("left")||!(f!=null&&f.sharedY),X=r.chartEdgeSides.includes("bottom")||!(f!=null&&f.sharedX),ee=r.chartEdgeSides.includes("left"),pe=r.chartEdgeSides.includes("bottom"),ae={left:v.left+r.left+K.left,right:g.totalWidth-(v.left+r.left+K.left),top:v.top+r.top+K.top,bottom:g.totalHeight-(v.top+r.top+K.top)},ge=!1,[me,fe]=tn.useState(()=>$Z(te,a,I,P.find(Oe=>Oe.type==="dots"))),[Ce,De]=tn.useState(()=>dS(me,t,n,UM,UM)),[ke,$e]=tn.useState(null);tn.useEffect(()=>{fe($Z(te,a,I,P.find(Oe=>Oe.type==="dots")))},[te,a,I,P]),tn.useEffect(()=>{let Oe=dS(me,t,n);De(Oe)},[me,t,n]);let je=z&&$.fixed;return ie.jsxs("g",{transform:`translate(${r.left+K.left},${r.top+K.top})`,children:[ge,E.length&&ie.jsxs("g",{children:[s==="full"&&ie.jsx("rect",{x:"0",y:-K.top,height:K.top,width:t,fill:"#F7F8FA",stroke:Vt}),E.map((Oe,ft)=>{let ze=E.length,Xe=(K.top-xM*ze)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:t/2,dy:Xe+xM/2-K.top,y:ft*xM,textAnchor:"middle",dominantBaseline:"central",children:Oe},ft)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[pe&&ie.jsx("text",{x:t/2,y:n+K.bottom-Yv-g9/2,children:Q}),ge,ee&&ie.jsx("text",{x:-K.left+Yv+g9/2,y:n/2,transform:`rotate(-90,${-K.left+Yv+g9/2},${n/2})`,children:j}),ge]}),ie.jsx(p6t,{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(AS,{scale:a.x,orient:"bottom",onlyPositive:k.x,tickSize:le}),ge]}),Y&&ie.jsxs("g",{children:[ie.jsx(AS,{scale:a.y,orient:"left",onlyPositive:k.y,tickSize:G}),ge]}),A&&A.map(({predict:Oe,getArea:ft,color:ze,data:Xe,bounded:tt,xBounds:qe,stats:gt},wt)=>{let[Xt,rr]=tt?qe:a.x.domain(),sr=(rr-Xt)/15,ra=Oe(Xt),mi=Oe(rr);if(isNaN(ra)||isNaN(mi))return null;let ea=I.dotColor(ze,Xe);return ie.jsxs("g",{children:[ie.jsx("text",{y:wt*20+20,fill:ea,x:t-8,textAnchor:"end",children:b6t(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(mi),stroke:ea})]},wt)}),P.map((Oe,ft)=>{if(Oe.type==="dots")return ie.jsxs("g",{children:[te.map(ze=>{let Xe=je&&$.selectedData===ze,tt=ie.jsx("g",{transform:`translate(${a.x(ze.x)},${a.y(ze.y)})`,opacity:ze.dimmed?.3:1,onMouseOver:()=>$.onMouseOver(ze,e),onMouseLeave:()=>$.onMouseLeave(),children:Yc(I.dotShape(Oe.info.aes.dotShape,ze.data),I.dotSize(Oe.info.aes.dotSize,ze.data),I.dotColor(Oe.info.aes.dotFill,ze.data))},ze.id);return Xe?cu.createPortal(tt,z):tt}),Ce.map(ze=>{let{name:Xe,height:tt,bbox:qe,width:gt}=ze;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${qe.minX},${qe.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:gt,height:tt,fill:"transparent",stroke:"none",onMouseOver:()=>$e(ze.dot),onMouseLeave:()=>$e(null)}),ie.jsx("text",{x:0,y:tt/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:Xe})]})},ze.dot.id)}),ke&&ie.jsxs("g",{transform:`translate(${a.x(ke.x)},${a.y(ke.y)})`,children:[Yc(I.dotShape(Oe.info.aes.dotShape,ke.data),I.dotSize(Oe.info.aes.dotSize,ke.data)+1,"white","white"),Yc(I.dotShape(Oe.info.aes.dotShape,ke.data),I.dotSize(Oe.info.aes.dotSize,ke.data),I.dotColor(Oe.info.aes.dotFill,ke.data))]},"activeDot")]},ft);if(Oe.type==="curve"&&!Oe.info.smoothing)return Oe.geoms.map((ze,Xe)=>ie.jsx("g",{children:ie.jsx("polyline",{points:ze.dots.map(tt=>`${a.x(tt.x)},${a.y(tt.y)}`).join(" "),fill:"none",stroke:I.lineColor(Oe.info.aes.lineColor,ze.data),strokeWidth:Oe.info.aes.lineWidth,strokeDasharray:Of(Oe.info.aes.lineShape)})},Xe));if(Oe.type==="curve"&&Oe.info.smoothing)return Oe.geoms.map((ze,Xe)=>ie.jsx("g",{children:ie.jsx("path",{d:b5().curve(C5).x(tt=>a.x(tt.x)).y(tt=>a.y(tt.y))(ze.dots)??"",fill:"none",stroke:I.lineColor(Oe.info.aes.lineColor,ze.data),strokeWidth:Oe.info.aes.lineWidth,strokeDasharray:Of(Oe.info.aes.lineShape)})},Xe))}),C.show&&$.selectedData&&$.currentFacet===e&&ie.jsx(fu,{content:m6t($.selectedData,h,C==null?void 0:C.content),x:a.x($.selectedData.x),y:a.y($.selectedData.y),active:!0,sideDistances:ae,fixed:$.fixed,onClose:$.onClose,container:b}),ie.jsxs("g",{children:[$.fixed&&ie.jsx("rect",{width:g.chartWidth,height:g.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:Oe=>{Oe&&!z&&O(Oe)}})]})]})}function S6t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,facetKeys:a,facetSettings:i,scales:o,groupedDots:s,legendData:c,trendsData:f,columnsCount:A,margins:h,keyColumn:v,mainTitle:g,facetTitles:C,captionsSizes:b,onlyPositive:B,layersData:E,aesGetters:k,onTooltipHintSwitch:P}){let I=h3(P),[$,z]=tn.useState(),O=tn.useRef(null);tn.useEffect(()=>{O.current&&z(O.current)},[]);let{xAxis:K,yAxis:te,title:le,frame:G,legend:Q,tooltips:j}=t,Y=r[a[0]].padding,X=r[a[A-1]].padding,ee=n.chartsWidth+YC,pe=Y.top;return ie.jsx(g3,{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:Qm}),ie.jsxs("g",{transform:`translate(${h.left},${h.top})`,fontFamily:"Manrope",children:[ie.jsx(y3,{title:g,show:le.show,position:le.position,leftPadding:Y.left,rightPadding:X.right,chartsWidth:n.chartsWidth}),a.map(ae=>ie.jsx(C6t,{facetKey:ae,scales:{x:o.x[ae],y:o.y[ae]},width:n.chartWidth,height:n.chartHeight,dimensions:r[ae],margins:h,chartSizes:n,facetSettings:i,xAxis:K,yAxis:te,frameType:G.type,dotsData:s[ae],trendsData:f?f[ae]:null,tooltips:j,tooltipsContainer:$,keyColumn:v,facetTitle:C[ae],captionsSizes:b,layersData:E[ae],onlyPositive:B,aesGetters:k,tooltipsData:I},ae)),Q.show&&ie.jsx("g",{transform:`translate(${ee},${pe})`,children:ie.jsx(w3,{legendData:c})})]}),ie.jsx("g",{ref:O,style:{outline:"none"}})]})})}function x6t(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 E6t(e,t,n,r,a,i,o){let s=i.includes("left")||!(o!=null&&o.sharedY),c=i.includes("left")&&t.title!=="",f=i.includes("bottom")||!(o!=null&&o.sharedX),A=i.includes("bottom")&&e.title!=="",h=n.yAxisCaptionsWidth+2*EM,v=(t.showTicks?c3:0)+EM,g=c?g9+Yv:0,C=n.xAxisCaptionsWidth+2*EM,b=e.showTicks?c3:0,B=A?g9+Yv:0,E=h+v+g+ZX,k=C+b+B+ZX,P=Math.max(...r.map(I=>a[I].length));return{left:s?E:Yv,top:P===0?0:u3t*2+P*x9,bottom:f?k+8:Yv,right:Yv}}function B6t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function _6t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function T6t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function k3(e,t){return function(n,r){var a,i;if(oh(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=cv().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}if(oh(n)&&(t==="dotFill"||t==="lineColor")){let{domain:o,range:s,type:c="linear"}=n,f=k9(s,o,c),A=r[n.columnName.value];return A===null?Gv.color:f(Number(A))}if(T6t(n)){let o=n.value;return(i=((a=e[o])==null?void 0:a[String(r[o])])??m9)==null?void 0:i[t]}return n}}function k6t(e){return{dotShape:k3(e,"dotShape"),dotColor:k3(e,"dotFill"),dotSize:k3(e,"dotSize"),lineShape:k3(e,"lineShape"),lineColor:k3(e,"lineColor"),trendColor:k3(e,"dotFill")}}var M6t=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=Wh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateChartDimensions(e,t,n,r){let{chartWidth:a,chartHeight:i}=this.chartSizes,o=0,s=0;this.chartsDimensions=e.reduce((A,h,v)=>{let[g,C]=_6t(v,this.columnsCount),b=x6t(v,e.length,this.columnsCount,this.rowsCount),B=E6t(n,r,this.captionsSizes,B6t(e,this.rowsCount,this.columnsCount)[g],this.facetTitles,b,t),E=a+B.left+B.right,k=i+B.top+B.bottom;return A[h]={left:o,top:s,chartEdgeSides:b,padding:B,inner:{width:a,height:i},outer:{width:E,height:k}},o+=E,C===this.columnsCount-1&&(o=0,s+=k),A},{});let c=Math.max(...e.map(A=>this.chartsDimensions[A].outer.width+this.chartsDimensions[A].left)),f=Math.max(...e.map(A=>this.chartsDimensions[A].outer.height+this.chartsDimensions[A].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r,a,i){let o=e.length,s=Math.min(t.nRows??o,o),c=Math.min(t.nCols??o,o);this.columnsCount=t.nRows?Math.ceil(o/s):c,this.rowsCount=Math.ceil(o/this.columnsCount);let[f,A]=[1/0,-1/0],[h,v]=[1/0,-1/0],g=e.reduce((b,B)=>{let E=a[B],{minX:k,minY:P,maxX:I,maxY:$}=E;return f=Math.min(f,k),h=Math.min(h,P),A=Math.max(A,I),v=Math.max(v,$),b[B]={minX:k,maxX:I,minY:P,maxY:$},b},{});e.forEach(b=>{let B=n.scale==="log"?X2():Zr(),E=g[b],k=n.lowerValue?Number(n.lowerValue):t.sharedX?f:E.minX,P=n.upperValue?Number(n.upperValue):t.sharedX?A:E.maxX;if(typeof n.symmetricRange<"u"){let z=n.symmetricRange;if(z>=k&&z<=P){let O=Math.max(z-k,P-z);k=z-O,P=z+O}}let I=[0,this.chartSizes.chartWidth],$=B.copy().domain([k,P]).range([GC.LEFT,this.chartSizes.chartWidth-GC.RIGHT]);B.domain([$.invert(0),$.invert(this.chartSizes.chartWidth)]).range(I).nice(),this.scales.x[b]=B});let C=e.reduce((b,B)=>{let E=i?i[B]:[];return b[B]=E.reduce((k,P)=>{let I=P.bounded?P.xBounds:this.scales.x[B].domain(),$=P.getInterval(I[0]),z=P.getInterval(I[1]);return k.minY=Math.min(k.minY,isNaN($.left)?k.minY:$.left,isNaN(z.left)?k.minY:z.left),k.maxY=Math.max(k.maxY,isNaN($.right)?k.maxY:$.right,isNaN(z.right)?k.maxY:z.right),k},{minY:1/0,maxY:-1/0}),h=Math.min(h,b[B].minY),v=Math.max(v,b[B].maxY),b},{});e.forEach(b=>{let B=r.scale==="log"?X2():Zr(),E=g[b],k=C[b],P=r.lowerValue?Number(r.lowerValue):t.sharedY?h:Math.min(E.minY,k.minY),I=r.upperValue?Number(r.upperValue):t.sharedY?v:Math.max(E.maxY,k.maxY);if(typeof r.symmetricRange<"u"){let O=r.symmetricRange;if(O>=P&&O<=I){let K=Math.max(O-P,I-O);P=O-K,I=O+K}}let $=[this.chartSizes.chartHeight,0],z=B.copy().domain([P,I]).range([this.chartSizes.chartHeight-GC.BOTTOM,GC.TOP]);B.domain([z.invert(this.chartSizes.chartHeight),z.invert(0)]).range($).nice(),this.scales.y[b]=B})}updateCaptionsSize(e){let t=new hc("600 14px Arial"),n=0;function r(a){return Math.max(...a.map(i=>t.getTextWidth(i)))}Object.values(this.scales.y).forEach(a=>{let{ticks:i,format:o}=T9(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=Kv(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]=Kv(t[a].join(", "),this.chartSizes.chartWidth,14),n),{})}updateMargins(){let e=24*this.mainTitle.length,t=e>0?e+24*2:0;this.margins={top:Math.max(t,Gc),bottom:Gc,left:Gc,right:this.legend.width+Gc},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartsHeight,this.legend.height)+this.margins.bottom}updateLegendSize(e,t,n,r){if(!e.show){this.legend={width:0,height:0,items:[]};return}let a=[],i={width:0,height:0,left:0,top:0};if(n.forEach(A=>{let h=t[A.value];if(h.usedAes.length===0||!h.aesMap)return;if(h.values.length>100){console.warn(`Too many values for discrete legend (${h.values.length})`);return}let v={};h.values.forEach(b=>{v[b]||(v[b]={...Gv}),h.usedAes.forEach(B=>{var E,k,P;(B==="dotFill"||B==="lineColor")&&(v[b].color=((E=h.aesMap[b])==null?void 0:E[B])??Vt),B==="dotShape"&&(v[b].shape=((k=h.aesMap[b])==null?void 0:k[B])??"21"),B==="dotSize"&&(v[b].size=((P=h.aesMap[b])==null?void 0:P[B])??3)})});let g=A.label??A.value,C=Qo().domain(h.values).range(h.values.map(b=>v[b])).unknown(Gv);a.push({...i,id:A.value,type:"dots",title:g,scale:C,values:h.values,labels:h.labels})}),r.forEach(A=>{if(A.type==="dots"&&oh(A.aes.dotFill)){let{domain:h,range:v,columnName:g,type:C="linear"}=A.aes.dotFill,b=g.label??g.value,B=k9(v,h,"linear"),E=(C==="log"?uv():Zr()).domain(h).range([this.chartSizes.chartHeight,0]),k=A3(E,h);a.push({...i,id:"dotFill",type:"continuous",title:b,scale:B,tickPositionScale:E,values:k})}if(A.type==="dots"&&oh(A.aes.dotSize)){let{columnName:h,domain:v,range:g}=A.aes.dotSize,C=h.label??h.value,b=cv(v,g),B=b.ticks(3),E=b.tickFormat(3),k=B.reduce((P,I)=>(P[String(I)]=E(I),P),{});a.push({...i,id:h.value,type:"size",title:C,scale:b,values:B,labels:k})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=C3(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+YC,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}render(e,t,n,r,a,i,o,s,c,f,A,h,v,g,C){var $;let{xAxis:b,yAxis:B,size:E,title:k,legend:P}=t;this.updateChartSizes(E),this.updateViewport(r,n,b,B,i,o),this.updateCaptionsSize(c.y),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,b,B),this.updateLegendSize(P,f,v,g),this.createMainTitle(r,k),this.updateMargins();let I=ie.jsx(S6t,{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:k6t(h),onTooltipHintSwitch:C});this.component=I,($=this.reactRoot)==null||$.render(I)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Xv,{message:e}))}},P6t=M6t,H6t=class{constructor(e){Be(this,"type","dots");Be(this,"aes",{dotFill:Vt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},D6t=class{constructor(e){Be(this,"type","curve");Be(this,"smoothing");Be(this,"aes",{lineColor:Vt,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},IZ=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;Q3t.parse(e),this.id=Zn.uniqueId("settings"),this.keyColumn=e.keyColumn,this.facetSettings={sharedX:!0,sharedY:!0,titlePosition:"left",...e.facetSettings},this.x=e.x,this.y=e.y,this.facetBy=e.facetBy??[],this.grouping=e.grouping??[],this.label=e.label??null,this.highlight=e.highlight??null,this.chartSettings={size:{width:((t=e==null?void 0:e.size)==null?void 0:t.width)??(this.facetBy.length?400:600),height:((n=e==null?void 0:e.size)==null?void 0:n.height)??(this.facetBy.length?250:350)},title:{position:"center",show:!0,...e.title,name:((r=e.title)==null?void 0:r.name)??"Chart"},yAxis:{title:e.y.label??e.y.value,scale:"linear",showGrid:!0,showTicks:!0,...e.yAxis},xAxis:{title:e.x.label??e.x.value,scale:"linear",showGrid:!0,showTicks:!0,...e.xAxis},frame:{type:((a=e.frame)==null?void 0:a.type)??"full"},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.inheritedAes=e.inheritedAes??{},this.trend=e!=null&&e.trend?{bounded:e.trend.bounded??!1,color:e.trend.color??Vt}:null,this.layers=e.layers.map(i=>{if(i.type==="dots")return new H6t(i);if(i.type==="curve")return new D6t(i);d1(i,"Unknown layer type")}).filter(Boolean)}},$6t=tpt(J5t()),LZ=.05;function I6t(e){let t=3.3871328727963665,n=133.14166789178438,r=1971.5909503065513,a=13731.69376550946,i=45921.95393154987,o=67265.7709270087,s=33430.57558358813,c=2509.0809287301227,f=42.31333070160091,A=687.1870074920579,h=5394.196021424751,v=21213.794301586597,g=39307.89580009271,C=28729.085735721943,b=5226.495278852854,B=1.4234371107496835,E=4.630337846156546,k=5.769497221460691,P=3.6478483247632045,I=1.2704582524523684,$=.2417807251774506,z=.022723844989269184,O=.0007745450142783414,K=2.053191626637759,te=1.6763848301838038,le=.6897673349851,G=.14810397642748008,Q=.015198666563616457,j=.0005475938084995345,Y=10507500716444169e-25,X=6.657904643501103,ee=5.463784911164114,pe=1.7848265399172913,ae=.29656057182850487,ge=.026532189526576124,me=.0012426609473880784,fe=27115555687434876e-21,Ce=20103343992922881e-23,De=.599832206555888,ke=.1369298809227358,$e=.014875361290850615,je=.0007868691311456133,Oe=18463183175100548e-21,ft=1421511758316446e-22,ze=20442631033899397e-31,Xe=e-.5,tt,qe;return Math.abs(Xe)<=.425?(tt=.180625-Xe*Xe,qe=Xe*(((((((c*tt+s)*tt+o)*tt+i)*tt+a)*tt+r)*tt+n)*tt+t)/(((((((b*tt+C)*tt+g)*tt+v)*tt+h)*tt+A)*tt+f)*tt+1),qe):(tt=e,tt=Math.sqrt(-Math.log(tt)),tt<=5?(tt+=-1.6,qe=(((((((O*tt+z)*tt+$)*tt+I)*tt+P)*tt+k)*tt+E)*tt+B)/(((((((Y*tt+j)*tt+Q)*tt+G)*tt+le)*tt+te)*tt+K)*tt+1)):(tt+=-5,qe=(((((((Ce*tt+fe)*tt+me)*tt+ge)*tt+ae)*tt+pe)*tt+ee)*tt+X)/(((((((ze*tt+ft)*tt+Oe)*tt+je)*tt+$e)*tt+ke)*tt+De)*tt+1)),qe=-qe,qe)}function RZ(e,t){let{sin:n,cos:r,sqrt:a,pow:i,exp:o,PI:s}=Math,c,f;if(t==1)return r(e*s/2)/n(e*s/2);if(t==2)return a(2/(e*(2-e))-2);let A=1/(t-.5),h=48/(A*A),v=((20700*A/h-98)*A-16)*A+96.36,g=((94.5/(h+v)-3)/h+1)*a(A*s*.5)*t;return c=g*e,f=i(c,2/t),f>.05+A?(c=I6t(e/2),f=c*c,t<5&&(v=v+.3*(t-4.5)*(c+.6)),v=(((.05*g*c-5)*c-7)*c-2)*c+h+v,f=(((((.4*f+6.3)*f+36)*f+94.5)/v-f-3)/h+1)*c,f=A*f*f,f>.002?f=o(f)-1:f=.5*f*f+f):f=((1/(((t+6)/(t*f)-.089*g-.822)*(t+2)*3)+.5/(t+4))*f-1)*(t+1)/(t+2)+1/f,a(t*f)}function L6t(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 R6t(e,t,n){let r=A=>A*t+n,a=e.length,i=lc(e,A=>A.x)/e.length,o=RZ(LZ,a-2),s=Math.sqrt(lc(e,A=>(A.y-r(A.x))**2)/(a-2)/lc(e,A=>(A.x-i)**2)),c=s*o,f=s*Math.sqrt(lc(e,A=>A.x**2)/a)*o;return{slope:t,intercept:n,slopeError:c,interceptError:f}}function V6t(e,t){let n=lc(e,s=>s.x)/e.length,r=0,a=0;for(let s=0;s<e.length;++s)r+=Math.pow(e[s].x-n,2),a+=Math.pow(e[s].y-t(e[s].x),2);let i=Math.sqrt(a/(e.length-2)),o=RZ(LZ,e.length-2);return function(s){let c=t(s),f=i*Math.sqrt(1/e.length+Math.pow(s-n,2)/r),A=c-o*f,h=c+o*f;return{x:s,y:c,left:isNaN(A)?c:A,right:isNaN(h)?c:h}}}function N6t(e){let t=e.length;return Math.pow((t*lc(e,n=>n.x*n.y)-lc(e,n=>n.x)*lc(e,n=>n.y))/(Math.sqrt(t*lc(e,n=>n.x*n.x)-Math.pow(lc(e,n=>n.x),2))*Math.sqrt(t*lc(e,n=>n.y*n.y)-Math.pow(lc(e,n=>n.y),2))),2)}function z6t(e,t){let n=Vs(e,t);return Vs(e.map(r=>(t(r)-n)**2))}function VZ(e,t){return Math.sqrt(z6t(e,t))}function O6t(e,t,n){let r=Vs(e,t),a=Vs(e,n),i=e.length;return lc(e,o=>(o.x-r)*(o.y-a))/i}function F6t(e){let t=O6t(e,a=>a.x,a=>a.y),n=VZ(e,a=>a.x),r=VZ(e,a=>a.y);return t/(n*r)}function Q6t(e,t){let n=e.length,r=1,a=1,i=n-r-1,o=Vs(e,v=>v.y),s=lc(e,v=>(t(v.x)-o)**2),c=lc(e,v=>(t(v.x)-v.y)**2),f=s/a,A=c/i,h=f/A;return 1-(0,$6t.default)(h,a,i)}function j6t(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(B=>r.every((E,k)=>String(B.data[E.value])===c[k])),[A=0,h=0]=H0(f,B=>B.x),[v,g]=L6t(f),C=B=>v*B+g,b=V6t(f,C);return{predict:C,getInterval:b,getArea:(B,E,k)=>XB().x(P=>B(P.x)).y0(P=>E(P.left)).y1(P=>E(P.right))(k.map(b))??"",color:a.color,bounded:a.bounded,data:f[0].data,showStats:!0,xBounds:[A,h],stats:{r2:N6t(f),r:F6t(f),pValue:Q6t(f,C),coefficients:R6t(f,v,g)}}}),i},{}):null}function NZ(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 zZ(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function U6t(e,t,n,r){return t.reduce((a,i)=>{let o=h=>String(h[i.value]),s=h=>i.valueLabels?String(h[i.valueLabels]):o(h),c=new Set;n.forEach(h=>{h.aes&&Object.entries(h.aes).forEach(([v,g])=>{zZ(g)&&g.value===i.value&&c.add(v)})});let f={},A=[];if(c.has("dotFill")){let h=e.getColumnCategories(i.value);if(h.length>100)A=h,f={};else{let v=Zn.uniqBy(e.rows,g=>g[i.value]);f=v.reduce((g,C)=>(g[o(C)]=s(C),g),{}),A=v.map(o).sort((g,C)=>f[g].localeCompare(f[C],"en",{numeric:!0}))}}return a[i.value]={values:A,usedAes:[...c],aesMap:r[i.value],labels:f},a},{})}var G6t=class extends zm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new P6t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new IZ(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 IZ(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(),w5(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,o;return t.facetBy.some((s,c)=>{var f;return s.value!==((f=n.facetBy[c])==null?void 0:f.value)})||t.grouping.length!==n.grouping.length||t.grouping.some((s,c)=>{var f;return s.value!==((f=n.grouping[c])==null?void 0:f.value)})||(((r=t.label)==null?void 0:r.value)||((a=n.label)==null?void 0:a.value))&&((i=t.label)==null?void 0:i.value)!==((o=n.label)==null?void 0:o.value)||t.layers.length!==n.layers.length||t.layers.some((s,c)=>s.type!==n.layers[c].type)||!!t.trend!=!!n.trend}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{x:t,y:n,facetBy:r,grouping:a,keyColumn:i,trend:o,layers:s,inheritedAes:c,label:f,highlight:A}=this.settings,h=this.data.getColumnCategories(i.value),v=r.map(O=>this.data.getColumnCategories(O.value)),g=a.map(O=>this.data.getColumnCategories(O.value)),C=v.length?NZ([...v]):[["null"]],b=g.length?NZ([...g]):[["null"]],B=r.map(O=>O.value)??null;this.data.setGrouping([...B,i.value]);let E={x:this.data.rows.every(O=>{let K=O[t.value];return K===null||!(Number(K)<0)}),y:this.data.rows.every(O=>{let K=O[n.value];return K===null||!(Number(K)<0)})},k=r6t(this.data,C,t,n,f,A,h),P=Object.keys(k),I=j6t(k,P,b,a,o),$=U6t(this.data,a,s,c),z=a6t(s,P,k,b,a);this.calculatedData={onlyPositive:E,dotsByFacets:k,facetKeys:P,facetKeysCombinations:C,trendsData:I,legendLabels:$,layersData:z}}_updateAesInData(){let t=this.calculatedData;if(!t)return;let{grouping:n,trend:r,layers:a,inheritedAes:i}=this.settings,{facetKeys:o,trendsData:s}=t;o.forEach(c=>{for(let f=0;f<a.length;f++)t.layersData[c][f].info=a[f]}),n.forEach(c=>{let f=new Set;a.forEach(A=>{A.aes&&Object.entries(A.aes).forEach(([h,v])=>{zZ(v)&&v.value===c.value&&f.add(h)})}),t.legendLabels[c.value].usedAes=[...f],t.legendLabels[c.value].aesMap=i[c.value]}),s&&r&&Object.keys(s).forEach(c=>{s[c].forEach(f=>{f.color=r.color,f.bounded=r.bounded})})}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,facetSettings:r,grouping:a,keyColumn:i,inheritedAes:o,layers:s}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.facetKeys,this.calculatedData.facetKeysCombinations,this.calculatedData.dotsByFacets,this.calculatedData.trendsData,i,this.calculatedData.onlyPositive,this.calculatedData.legendLabels,this.calculatedData.layersData,o,a,s,this.onTooltipHintSwitch)}},hS={TOP:30,BOTTOM:30,LEFT:30,RIGHT:30},M9=20,OZ=4,FZ=24;function Y6t(e,t,n=[]){let r=e.data,a=[`x: ${Ka(e.x)}`,`y: ${Ka(e.y)}`];t!=null&&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 QZ(e){return typeof e=="string"?e:e.label??e.value}var jZ=b5().curve(C5);function W6t({scales:e,chartSettings:t,mainTitle:n,keyColumn:r,margins:a,chartSizes:i,onlyPositive:o,container:s,zoomStateKey:c,legendData:f,dotsByGrouping:A,layers:h,aesGetters:v,tooltipData:g}){var Q;let{title:C,xAxis:b,yAxis:B,frame:E,legend:k}=t,P=b.showTicks?OZ:0,I=B.showTicks?OZ:0,$=b.title,z=B.title,O={left:0,right:i.chartWidth,top:0,bottom:i.chartHeight};if(!s)return null;let K=h.find(j=>j.type==="curve"),[te,le]=tn.useState([]);function G(){let j=Object.entries(A).map(([Y,X])=>({key:Y,d:K!=null&&K.smoothing?jZ(X)??"":X.map(ee=>`${e.x(ee.x)},${e.y(ee.y)}`).join(" "),dot:X[0]}));le(j)}return tn.useEffect(()=>{K&&(jZ.x(j=>e.x(j.x)).y(j=>e.y(j.y)),G())},[c]),tn.useEffect(()=>{K&&G()},[K==null?void 0:K.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:Qm}),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(y3,{title:n,show:C.show,position:C.position,leftPadding:a.left,rightPadding:a.right,chartsWidth:i.chartWidth}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[$&&ie.jsx("text",{x:i.chartWidth/2,y:i.chartHeight+a.bottom-M9/2,children:QZ($)}),z&&ie.jsx("text",{x:-a.left+M9/2,y:i.chartHeight/2,transform:`rotate(-90,${-a.left+M9/2},${i.chartHeight/2})`,children:QZ(z)})]}),ie.jsx(xZ,{width:i.chartWidth,height:i.chartHeight,scaleX:e.x,scaleY:e.y,axisX:b,axisY:B,updatingKey:c,frameType:E.type}),ie.jsx("g",{transform:`translate(0,${i.chartHeight})`,children:ie.jsx(AS,{scale:e.x,orient:"bottom",onlyPositive:o.x,tickSize:P})}),ie.jsx("g",{children:ie.jsx(AS,{scale:e.y,orient:"left",onlyPositive:o.y,tickSize:I})}),K&&K.smoothing&&ie.jsx("g",{clipPath:"url(#viewportClipPath)",children:te.map(({key:j,d:Y,dot:X})=>{var ee;return ie.jsx("path",{d:Y,fill:"none",stroke:v.dotFill(X.data),strokeWidth:(ee=K.aes)==null?void 0:ee.lineWidth,strokeDasharray:v.lineType(X.data)},j)})}),K&&!K.smoothing&&ie.jsx("g",{clipPath:"url(#viewportClipPath)",children:te.map(({key:j,d:Y,dot:X})=>{var ee;return ie.jsx("polyline",{points:Y,fill:"none",stroke:v.dotFill(X.data),strokeWidth:(ee=K.aes)==null?void 0:ee.lineWidth,strokeDasharray:v.lineType(X.data)},j)})}),g.selectedData&&ie.jsx(fu,{content:Y6t(g.selectedData,r,(Q=t.tooltips)==null?void 0:Q.content),x:e.x(g.selectedData.x),y:e.y(g.selectedData.y),active:!0,fixed:g.fixed,sideDistances:O,container:s,onClose:g.onClose}),k.show&&ie.jsx("g",{transform:`translate(${i.chartWidth+FZ},0)`,children:ie.jsx(w3,{legendData:f})})]})]})}var X6t=T8.memo(W6t),K6t=20;function Z6t({scales:e,chartSizes:t,disabled:n,onPolygonUpdate:r}){let[a,i]=tn.useState([]),[o,s]=tn.useState(null),[c,f]=tn.useState(null),A=tn.useRef(null),h=tn.useRef(null),v=tn.useRef(null),g=tn.useRef(a);function C(){A.current=null,h.current=null,v.current=null,g.current=[],i([]),s(null)}function b(k){n||k.key!=="Escape"||C()}tn.useEffect(()=>{n&&(A.current=null,h.current=null,v.current=null,s(null))},[n]),tn.useEffect(()=>(document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)),[]),tn.useEffect(()=>{if(o&&c)return;if(a.length===0){r([]);return}let k=a.map(P=>P[0]);k.push(a[a.length-1][1]),r(k)},[a]);function B(){if(!A.current||n)return;let k=[...A.current],P=e.x.invert(k[0]),I=e.y.invert(k[1]),$=g.current,z=v.current,O=h.current&&$.length>1?Math.sqrt((k[0]-h.current[0])**2+(k[1]-h.current[1])**2):1/0;v.current?v.current&&O>K6t?($=[...$,[v.current,[P,I]]],z=[P,I]):($=[...$,[v.current,[P,I]]],$.length>2&&($=[...$,[$[$.length-1][1],$[0][0]]]),z=null,$.length<=2?r([]):r($.map(K=>K[0])),h.current=null):(h.current=k,$=[],z=[P,I],r([])),i($),s(z),g.current=$,v.current=z}function E(k){let P=[k.nativeEvent.offsetX,k.nativeEvent.offsetY];f(P),A.current=P}return ie.jsxs("g",{children:[ie.jsx("rect",{fill:"transparent",width:t.chartWidth,height:t.chartHeight,onMouseMove:E,onClick:B}),a.map(([k,P],I)=>ie.jsx("line",{x1:e.x(k[0]),y1:e.y(k[1]),x2:e.x(P[0]),y2:e.y(P[1]),stroke:Vt,style:{pointerEvents:"none"}},I)),o&&c&&ie.jsx("line",{x1:e.x(o[0]),y1:e.y(o[1]),x2:c[0],y2:c[1],stroke:Vt,style:{pointerEvents:"none"}},"lastLine")]})}function J6t({scales:e,container:t,labels:n,aesGetters:r,chartSizes:a,onPolygonUpdate:i,lassoMode:o,tooltipData:s}){return t?ie.jsxs("g",{children:[n.map(c=>{let{name:f,height:A,bbox:h,width:v}=c;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${h.minX},${h.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:v,height:A,fill:"transparent",stroke:"none"}),ie.jsx("text",{x:0,y:A/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:f})]})},c.dot.id)}),ie.jsx(Z6t,{scales:e,chartSizes:a,disabled:!o,onPolygonUpdate:i}),s.fixed&&ie.jsx("rect",{width:a.chartWidth,height:a.chartHeight,fill:"rgba(255,255,255,0.8)"}),s.selectedData&&ie.jsx("circle",{cx:e.x(s.selectedData.x),cy:e.y(s.selectedData.y),r:Math.max(r.dotSize(s.selectedData.data)*1.2,5),fill:r.dotFill(s.selectedData.data)})]}):null}var q6t=J6t;function ewt({settingsId:e,scales:t,chartSettings:n,mainTitle:r,keyColumn:a,margins:i,chartSizes:o,captionsSizes:s,onlyPositive:c,container:f,zoomStateKey:A,aesGetters:h,legendData:v,labels:g,onPolygonUpdate:C,onTooltipHintSwitch:b,lassoMode:B,dotsByGrouping:E,layers:k,selectedDot:P=null}){if(!f)return null;let I=h3(b);return tn.useEffect(()=>{P?I.onMouseOver(P):I.onMouseLeave()},[P]),ie.jsx("div",{children:ie.jsxs(g3,{dataId:e,children:[ie.jsx(X6t,{aesGetters:h,dotsByGrouping:E,layers:k,scales:t,keyColumn:a,margins:i,mainTitle:r,captionsSizes:s,chartSettings:n,chartSizes:o,onlyPositive:c,container:f,zoomStateKey:A,legendData:v,tooltipData:I}),cu.createPortal(ie.jsx(q6t,{scales:t,container:f,aesGetters:h,labels:g,chartSizes:o,selectedDot:P,onPolygonUpdate:C,lassoMode:B,tooltipData:I}),f)]})})}var UZ=e=>e.selection()!==e,GZ=(e,t)=>{e=e||"g";let n=(i,o)=>o,r=null,a=function(i,o){o=o||(g=>g);let s=i.selection(),c=UZ(i)?i:null,f=s.selectChildren(t==null?e:`${e}.${t}`).data(o,n),A=f.enter().append(e).attr("class",t),h=f.exit();f=f.merge(A);let v=c||r;return v&&(f=f.transition(v).style("opacity",1),A.style("opacity",1e-6),h=h.transition(v).style("opacity",1e-6)),h.remove(),f.enter=()=>A,f.exit=()=>h,f};return a.element=(...i)=>i.length?(e=i[0],a):e,a.className=(...i)=>i.length?(t=i[0],a):t,a.key=(...i)=>i.length?(n=i[0],a):n,a.transition=(...i)=>i.length?(r=i[0],a):r,a},YZ=(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}},WZ=(e,t,...n)=>{for(let r of n)e[r]=YZ(e,t,r);return e},twt=e=>t=>e.reduce((n,r)=>n&&r(n),t),GM=(e,t,...n)=>{let r=twt(n);for(let a of Object.keys(t)){let i=r(a);i&&(e[i]=YZ(e,t,a))}return e},nwt=e=>e.map(t=>typeof t=="string"?new RegExp(`^${t}$`):t),rwt=(...e)=>(e=nwt(e),t=>e.every(n=>!n.test(t))&&t),M3=e=>typeof e=="function"?e:()=>e;function awt(){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 iwt=(e,t)=>{switch(e){case"left":return t/2;case"right":return-t/2;default:return 0}},XZ=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},owt=()=>{let e=()=>0,t=s=>s.x,n=s=>s.y,r="center",a=()=>5,i="vertical",o=XZ({decorate:()=>{},defined:(s,c)=>awt(e,t,n)(s,c),xScale:sv(),yScale:sv()});return o.values=(s,c)=>{let f=a(s,c),A=iwt(r,f),h=o.xScale(),v=o.yScale();if(i==="vertical"){let g=v(n(s,c),c),C=v(e(s,c),c),b=h(t(s,c),c)+A;return{d:s,x:b,y:g,y0:C,width:f,height:g-C,origin:[b,g],baseOrigin:[b,C],transposedX:b,transposedY:g}}else{let g=h(n(s,c),c),C=h(e(s,c),c),b=v(t(s,c),c)+A;return{d:s,x:b,y:g,y0:C,width:f,height:g-C,origin:[g,b],baseOrigin:[C,b],transposedX:g,transposedY:b}}},o.xValues=()=>i==="vertical"?[t]:[e,n],o.yValues=()=>i!=="vertical"?[t]:[e,n],o.baseValue=(...s)=>s.length?(e=M3(s[0]),o):e,o.crossValue=(...s)=>s.length?(t=M3(s[0]),o):t,o.mainValue=(...s)=>s.length?(n=M3(s[0]),o):n,o.bandwidth=(...s)=>s.length?(a=M3(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},lwt=()=>{let e=owt(),t=M3(64),n=AN,r=l9(),a=l9(),i=l9().type(ih.UNSIGNED_SHORT),o=l9().type(ih.UNSIGNED_BYTE),s=Mht().crossValueAttribute(r).mainValueAttribute(a).sizeAttribute(i).definedAttribute(o),c=(C,b)=>!1,f=Vht,A=[],h=null,v=null,g=C=>{let b=f(e.xScale()),B=f(e.yScale()),E=!c(A,C);E&&(A=C,i.value((k,P)=>t(k,P)).data(C),o.value((k,P)=>e.defined()(k,P)).data(C)),(E||b.scale!==h)&&(h=b.scale,e.orient()==="vertical"?r.value((k,P)=>b.scale(e.crossValue()(k,P))).data(C):r.value((k,P)=>b.scale(e.mainValue()(k,P))).data(C)),(E||B.scale!==v)&&(v=B.scale,e.orient()==="vertical"?a.value((k,P)=>B.scale(e.mainValue()(k,P))).data(C):a.value((k,P)=>B.scale(e.crossValue()(k,P))).data(C)),s.xScale(b.webglScale).yScale(B.webglScale).type(Uht(n)).decorate(k=>e.decorate()(k,C,0)),s(C.length)};return g.size=(...C)=>C.length?(t=M3(C[0]),g):t,g.type=(...C)=>C.length?(n=C[0],g):n,g.equals=(...C)=>C.length?(c=C[0],g):c,g.scaleMapper=(...C)=>C.length?(f=C[0],g):f,GM(g,e,rwt("baseValue","bandwidth","align")),WZ(g,s,"context","pixelRatio"),g},KZ=()=>{let e=[],t=a=>a,n=(a,i)=>i,r=XZ({decorate:()=>{},xScale:sv(),yScale:sv()});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},swt=()=>{let e=KZ(),t=GZ("g"),n=GZ("g","multi"),r=a=>{UZ(a)&&(n.transition(a),t.transition(a));let i=e.mapping(),o=e.series(),s=e.xScale(),c=e.yScale();a.each((f,A,h)=>{let v=n(bs(h[A]),o);v.each((g,C,b)=>{g.xScale(s).yScale(c);let B=i(f,C,o);t(bs(b[C]),[B]).call(g)}),v.selection().order(),e.decorate()(v,f,A)})};return GM(r,e),WZ(r,n,"key"),r},uwt=()=>{let e=null,t=1,n=KZ(),r=a=>{let i=n.mapping(),o=n.series(),s=n.xScale(),c=n.yScale();o.forEach((f,A)=>{let h=i(a,A,o);f.context(e).pixelRatio(t).xScale(s).yScale(c);let v;f.decorate?(v=f.decorate(),f.decorate((g,C,b)=>{n.decorate()(g,a,A),v(g,C,b)})):n.decorate()(e,a,A),f(h),v&&f.decorate(v)})};return r.context=(...a)=>a.length?(e=a[0],r):e,r.pixelRatio=(...a)=>a.length?(t=a[0],r):t,GM(r,n),r};function ZZ(e){return e/2.35*(e/2.35)*64}function YM(e,t){return e+(1-e)*(1-t)}function WM(e,t){return[YM(e.r/255,t),YM(e.g/255,t),YM(e.b/255,t),1]}function cwt(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function XM(e={},t,n){return function(r){var a,i;if(cwt(n)){let o=n.value,s=r[o];return(i=((a=e[o])==null?void 0:a[String(s)])??m9)==null?void 0:i[t]}if(oh(n)&&t==="dotFill"){let{domain:o,range:s,type:c="linear"}=n,f=k9(s,o,c),A=r[n.columnName.value];return A===null?Gv.color:f(Number(A))}if(oh(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=cv().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}return n}}function JZ(e,t){let n=t.find(a=>a.type==="dots"),r=t.find(a=>a.type==="curve");return{dotFill:XM(e,"dotFill",(n==null?void 0:n.aes.dotFill)??Gv.color),dotSize:XM(e,"dotSize",(n==null?void 0:n.aes.dotSize)??Gv.size),lineType:XM(e,"lineShape",(r==null?void 0:r.aes.lineShape)??"solid")}}var fwt=class{constructor(){Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"canvasNode",null);Be(this,"svgLayerElement",null);Be(this,"svgLayerComponent",ie.jsx(ie.Fragment,{}));Be(this,"aesGetters",{dotSize:()=>2,dotFill:()=>Vt,lineType:()=>"solid"});Be(this,"tools",null);Be(this,"margins",{top:Gc,bottom:Gc,left:Gc,right:Gc});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,totalWidth:600,totalHeight:350});Be(this,"scales",{x:Zr().domain([0,10]).range([0,600]),y:Zr().domain([0,10]).range([350,0]),xOriginal:Zr().domain([0,10]).range([0,600]),yOriginal:Zr().domain([0,10]).range([350,0])});Be(this,"polygon",[]);Be(this,"onPolygonUpdateOutside",()=>{});Be(this,"onTooltipHintSwitch",()=>{});Be(this,"zoomStateKey","");Be(this,"selectedDot",null);Be(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Be(this,"mainTitle",[]);Be(this,"legend",{width:0,height:0,items:[]});Be(this,"notCalculatedProps",{});Be(this,"allDots",[]);Be(this,"allPossibleLabels",[]);Be(this,"visibleLabels",[]);Be(this,"lassoMode",!1);Be(this,"onPolygonUpdate",e=>{this.polygon=e,this.updateByLasso();let t=this.allDots.filter(n=>this.polygon.length>2&&RC(this.polygon,[n.x,n.y])).map(n=>Number(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=Wh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateViewport(e,t,n){let r=e.scale==="log"?X2():Zr(),{minX:a,minY:i,maxX:o,maxY:s}=n;if(e.lowerValue!==void 0&&(a=Math.max(a,e.lowerValue)),e.upperValue!==void 0&&(o=Math.min(o,e.upperValue)),t.lowerValue!==void 0&&(i=Math.max(i,t.lowerValue)),t.upperValue!==void 0&&(s=Math.min(s,t.upperValue)),e.symmetricRange!==void 0){let g=e.symmetricRange;if(g>=a&&g<=o){let C=Math.max(g-a,o-g);a=g-C,o=g+C}}if(typeof t.symmetricRange<"u"){let g=t.symmetricRange;if(g>=i&&g<=s){let C=Math.max(g-i,s-g);i=g-C,s=g+C}}let c=[0,this.chartSizes.chartWidth],f=r.copy().domain([a,o]).range([hS.LEFT,this.chartSizes.chartWidth-hS.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"?X2():Zr(),h=[this.chartSizes.chartHeight,0],v=A.copy().domain([i,s]).range([this.chartSizes.chartHeight-hS.BOTTOM,hS.TOP]);A.domain([v.invert(this.chartSizes.chartHeight),v.invert(0)]).range(h).nice(),this.scales.y=A,this.scales.yOriginal=A.copy()}updateCaptionsSize(e){let t=new hc("600 14px Arial");function n(o){return Math.max(...o.map(s=>t.getTextWidth(s)))}let{ticks:r,format:a}=T9(this.scales.y,e),i=n(r.map(a));this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:i}}createMainTitle(e){this.mainTitle=Kv(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+M9,left:Gc+this.captionsSizes.yAxisCaptionsWidth+M9,right:this.legend.width+Gc},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartHeight,this.legend.height)+this.margins.bottom,bs(this.canvasNode).style("width",this.chartSizes.chartWidth+"px").style("height",this.chartSizes.chartHeight+"px").style("top",this.margins.top+"px").style("left",this.margins.left+"px")}updateLegendSize(e,t,n,r){if(!e.show){this.legend={width:0,height:0,items:[]};return}let a=[],i={width:0,height:0,left:0,top:0};if(n.forEach(A=>{let h=t[A.value];if(h.usedAes.length===0||!h.aesMap)return;if(h.values.length>100){console.warn(`Too many values for discrete legend (${h.values.length})`);return}let v={};h.values.forEach(b=>{v[b]||(v[b]={...Gv}),h.usedAes.forEach(B=>{var E,k;B==="dotFill"&&(v[b].color=((E=h.aesMap[b])==null?void 0:E[B])??Vt),B==="dotSize"&&(v[b].size=((k=h.aesMap[b])==null?void 0:k[B])??3)})});let g=A.label??A.value,C=Qo().domain(h.values).range(h.values.map(b=>v[b]));a.push({...i,id:A.value,type:"dots",title:g,scale:C,values:h.values,labels:h.labels})}),r.forEach(A=>{if(A.type==="dots"&&oh(A.aes.dotFill)){let{domain:h,range:v,columnName:g,type:C="linear"}=A.aes.dotFill,b=g.label??g.value,B=k9(v,h,"linear"),E=(C==="log"?uv():Zr()).domain(h).range([this.chartSizes.chartHeight,0]),k=A3(E,h);a.push({...i,id:"dotFill",type:"continuous",title:b,scale:B,tickPositionScale:E,values:k})}if(A.type==="dots"&&oh(A.aes.dotSize)){let{columnName:h,domain:v,range:g}=A.aes.dotSize,C=h.label??h.value,b=cv(v,g),B=b.ticks(3),E=b.tickFormat(3),k=B.reduce((P,I)=>(P[String(I)]=E(I),P),{});a.push({...i,id:h.value,type:"size",title:C,scale:b,values:B,labels:k})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=C3(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+FZ,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}initSettings(e,t,n,r,a,i,o,s){let{xAxis:c,yAxis:f,size:A,title:h,legend:v}=t;this.updateChartSizes(A),this.updateViewport(c,f,n),this.updateCaptionsSize(r.y),this.updateLegendSize(v,o,s,i),this.createMainTitle(h),this.updateMargins(),this.aesGetters=JZ(a,i);let g=Yht().data(e).value(P=>{let I=Ug(this.aesGetters.dotFill(P.data)),$=!P.dimmed&&(this.polygon.length<2||RC(this.polygon,[P.x,P.y]))?1:.4;return WM(I,$)}),C=lwt().equals((P,I)=>P===I).size(P=>ZZ(this.aesGetters.dotSize(P.data))).crossValue(P=>P.x).mainValue(P=>P.y).decorate(P=>g(P)),b=KAt().scaleExtent([.1,1e3]).filter(()=>!this.lassoMode).on("start",()=>{this.selectedDot=null}).on("zoom",P=>{let I=P.transform,$=I.rescaleX(this.scales.xOriginal),z=I.rescaleY(this.scales.yOriginal);this.scales.x.domain($.domain()),this.scales.y.domain(z.domain()),this.zoomStateKey=`${I.x}_${I.y}_${I.k}`,this.renderSvgLayer(),this.renderWebglLayer()}).on("end",()=>{this.allPossibleLabels.forEach(P=>{P.x=this.scales.x(P.dot.x),P.y=this.scales.y(P.dot.y)}),this.visibleLabels=dS(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.renderSvgLayer()}),B=Gk().x(P=>P.x).y(P=>P.y).addAll(e),E=Wht().on("point",([P])=>{var K,te;if(!P){this.selectedDot=null,this.renderSvgLayer();return}let I=this.scales.x.invert(P.x),$=this.scales.y.invert(P.y),z=(K=this.tools)==null?void 0:K.qt.find(I,$),O=this.selectedDot&&!z||!this.selectedDot&&z||((te=this.selectedDot)==null?void 0:te.id)!==(z==null?void 0:z.id);this.selectedDot=z??null,O&&this.renderSvgLayer()}),k=xht({xScale:this.scales.x,yScale:this.scales.y}).xAxisHeight(()=>"0").yAxisWidth(()=>"0").svgPlotArea(swt()).webglPlotArea(uwt().series([C]).mapping(P=>P)).decorate(P=>{let I=P.enter();I&&!this.svgLayerElement&&(I.style("grid-template-columns","0 auto 1fr auto 0"),I.style("grid-template-rows","0 auto 1fr auto 0"),this.svgLayerElement=I.select(".svg-plot-area.plot-area svg").node()),I.select(".svg-plot-area.plot-area").call(b).call(E)});this.tools={webglChart:k,zoom:b,qt:B,fillColor:g,pointSeries:C},bs(this.canvasNode).datum(e).style("position","absolute").style("width",this.chartSizes.chartWidth+"px").style("height",this.chartSizes.chartHeight+"px").style("top",this.margins.top+"px").style("left",this.margins.left+"px")}updateAes(e,t){this.tools!==null&&(this.aesGetters=JZ(e,t),this.tools.fillColor.value(n=>{let r=this.aesGetters.dotFill??(()=>Vt),a=Ug(r(n.data)),i=!n.dimmed&&(this.polygon.length<2||RC(this.polygon,[n.x,n.y]))?1:.4;return WM(a,i)}))}updatePointSize(){this.tools!==null&&(bs(this.canvasNode).datum([...this.allDots]),this.tools.pointSeries.size(e=>ZZ(this.aesGetters.dotSize(e.data))))}updateByLasso(){var e;this.tools!==null&&((e=this.tools)==null||e.fillColor.value(t=>{let n=this.aesGetters.dotFill??(()=>Vt),r=Ug(n(t.data)),a=!t.dimmed&&(this.polygon.length<2||RC(this.polygon,[t.x,t.y]))?1:.4;return WM(r,a)}),this.renderWebglLayer())}updateData(e){this.tools!==null&&(bs(this.canvasNode).datum(e),this.tools.fillColor.data(e),this.tools.qt=Gk().x(t=>t.x).y(t=>t.y).addAll(e))}render(e,t,n,r,a,i,o,s,c,f,A,h,v,g,C){if(this.lassoMode=g,this.tools===null)this.initSettings(a,t,i,r,s,c,f,A),this.onPolygonUpdateOutside=v,this.onTooltipHintSwitch=C;else{let{title:b,legend:B}=t;this.updateLegendSize(B,f,A,c),this.createMainTitle(b),this.updateMargins(),this.updateAes(s,c)}this.allDots=a,this.allPossibleLabels=h,this.allPossibleLabels.forEach(b=>{b.x=this.scales.x(b.dot.x),b.y=this.scales.y(b.dot.y)}),this.visibleLabels=dS(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.notCalculatedProps={settingsId:e,chartSettings:t,onlyPositive:r,keyColumn:n,dotsByGrouping:o,layers:c},this.renderWebglLayer(),this.renderSvgLayer()}renderWebglLayer(){var e,t;(e=this.tools)!=null&&e.webglChart&&bs(this.canvasNode).call((t=this.tools)==null?void 0:t.webglChart)}renderSvgLayer(){var t;this.visibleLabels.forEach(n=>{n.x=this.scales.x(n.dot.x),n.y=this.scales.y(n.dot.y)}),s6t(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(ewt,{...e}),(t=this.reactRoot)==null||t.render(this.svgLayerComponent)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Xv,{message:e}))}},dwt=fwt,KM=D.object({type:D.literal("grouping"),value:D.string()}),Awt=D.object({type:D.literal("dots"),aes:D.optional(D.object({dotFill:D.optional(D.union([D.string(),KM,nA(D.string())])),dotShape:D.optional(D.union([kd,KM])),dotSize:D.optional(D.union([D.number(),nA(D.number())]))}))}),hwt=D.object({type:D.literal("curve"),smoothing:D.optional(D.boolean()),aes:D.optional(D.object({lineWidth:D.optional(D.number()),lineShape:D.optional(Z1),lineColor:D.optional(D.union([D.string(),KM,nA(D.string())])),opacity:D.optional(D.number())}))}),pwt=D.union([Awt,hwt]),vwt=D.object({type:D.literal("scatterplot-umap"),title:D.object({name:D.string(),show:D.optional(D.boolean()),position:D.optional(Wv)}),size:D.optional(D.object({width:D.optional(D.number()),height:D.optional(D.number())})),legend:D.optional(D.object({show:D.optional(D.boolean()),position:D.optional(Om)})),tooltips:D.optional(D.object({show:D.optional(D.boolean()),content:D.optional(D.array(Yn))})),frame:D.optional(D.object({type:D.optional(y9)})),keyColumn:D.optional(Yn),x:Yn,y:Yn,xAxis:D.optional(d3),yAxis:D.optional(d3),grouping:D.optional(D.array(Yn)),label:D.optional(Yn),highlight:D.optional(Yn),inheritedAes:D.optional(D.record(D.string(),f3)),layers:D.array(pwt),lassoMode:D.optional(D.boolean())}),mwt=class{constructor(e){Be(this,"type","dots");Be(this,"aes",{dotFill:Vt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},gwt=class{constructor(e){Be(this,"type","curve");Be(this,"smoothing");Be(this,"aes",{lineColor:Vt,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},qZ=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;vwt.parse(e),this.id=Zn.uniqueId("settings"),this.keyColumn=e.keyColumn??null,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 mwt(i);if(i.type==="curve")return new gwt(i);throw new Error("Unknown layer type")}).filter(Boolean),this.lassoMode=e.lassoMode??!1}};function eJ(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function ywt(e,t,n,r){return t.reduce((a,i)=>{let o=h=>String(h[i.value]),s=h=>i.valueLabels?String(h[i.valueLabels]):o(h),c=new Set;n.forEach(h=>{h.aes&&Object.entries(h.aes).forEach(([v,g])=>{eJ(g)&&g.value===i.value&&c.add(v)})});let f={},A=[];if(c.has("dotFill")){let h=e.getColumnCategories(i.value);if(h.length>100)A=h,f={};else{let v=Zn.uniqBy(e.rows,g=>g[i.value]);f=v.reduce((g,C)=>(g[o(C)]=s(C),g),{}),A=v.map(o).sort((g,C)=>f[g].localeCompare(f[C],"en",{numeric:!0}))}}return a[i.value]={values:A,usedAes:[...c],aesMap:r[i.value],labels:f},a},{})}var wwt=10;function bwt(e){let t=[],n=new hc("16px Manrope");for(let r of e){let a=r.label;if(!a)continue;let i=n.getTextMetrics(String(a));t.push({name:String(a),width:(i==null?void 0:i.width)??0,height:((i==null?void 0:i.actualBoundingBoxAscent)??0)+((i==null?void 0:i.actualBoundingBoxDescent)??0),x:0,y:0,xPosition:"right",yPosition:"middle",bbox:{minX:0,maxX:0,minY:0,maxY:0},dot:r,padding:wwt})}return t}var Cwt=class extends zm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new dwt);Be(this,"onPolygonUpdate",()=>{});Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new qZ(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 qZ(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,label:r,highlight:a,grouping:i,layers:o,inheritedAes:s}=this.settings,c={x:!0,y:!0},f={minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0},A=o.some(B=>B.type==="curve"),h=new Set,v={},g=this.data.rows.reduce((B,E,k)=>{if(E[t.value]===null||E[n.value]===null)return B;let P=Number(E[t.value]),I=Number(E[n.value]);c.x&&P!==null&&P<0&&(c.x=!1),c.y&&I!==null&&I<0&&(c.y=!1),P!==null&&P<f.minX&&(f.minX=P),P!==null&&P>f.maxX&&(f.maxX=P),I!==null&&I<f.minY&&(f.minY=I),I!==null&&I>f.maxY&&(f.maxY=I);let $=(r==null?void 0:r.valueLabels)??(r==null?void 0:r.value),z={x:P,y:I,id:String(k),dimmed:a?!E[a.value]:!1,label:$&&E[$]?String(E[$]):null,data:E};if(A){let O=i.map(K=>E[K.value]).join("_");h.add(O),v[O]||(v[O]=[]),v[O].push(z)}return B.push(z),B},[]);a&&g.sort((B,E)=>Number(E.dimmed)-Number(B.dimmed));let C=[...h];A&&C.forEach(B=>{v[B].sort((E,k)=>E.x-k.x)});let b=ywt(this.data,i,o,s);this.calculatedData={onlyPositive:c,dots:g,dotsByGrouping:v,groupingKeys:C,allPossibleLabels:bwt(g),dotsExtents:f,legendLabels:b},this.chartRenderer.updateData(g)}_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])=>{eJ(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)}},Swt=1e6;function xwt(e){let t=_I(e),n=Vs(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function Ewt(e){let t=Vs(e),[n,r]=H0(e);return t===void 0||n===void 0||r===void 0?a=>a:a=>(a-t)/(r-n)}function Bwt(e,t){return e==="standardScaling"?xwt(t):e==="meanNormalization"?Ewt(t):n=>n}function _wt(e,t,n,r,a,i,o,s,c){let f=o.map(b=>b.join("_")),A={meta:{facetKeys:f,xKeys:[],yKeys:[],xLabels:{},yLabels:{},facetKeyValues:f.reduce((b,B,E)=>(b[B]=o[E],b),{}),valueExtentSize:[1/0,-1/0],valueExtentColor:[1/0,-1/0]},facets:{}},h=new Set,v=new Set,g=t.valueLabels??t.value,C=n.valueLabels??n.value;if(e.rows.forEach(b=>{let B=i.length?i.map($=>b[$.value]).join("_"):"null",E=b[t.value],k=b[n.value],P=b[r.value]??c,I=b[a.value]??c;if(!(E===null||k===null||P===null||I===null)){if(A.facets[B]||(A.facets[B]={xKeys:[],yKeys:[],cells:{}}),A.facets[B].xKeys.push(E),A.facets[B].yKeys.push(k),h.has(E)||(h.add(E),A.meta.xKeys.push(E)),v.has(k)||(v.add(k),A.meta.yKeys.push(k)),A.facets[B].cells[E]||(A.facets[B].cells[E]={}),A.meta.valueExtentSize[0]=Math.min(P,A.meta.valueExtentSize[0]),A.meta.valueExtentSize[1]=Math.max(P,A.meta.valueExtentSize[1]),A.meta.valueExtentColor[0]=Math.min(I,A.meta.valueExtentColor[0]),A.meta.valueExtentColor[1]=Math.max(I,A.meta.valueExtentColor[1]),A.facets[B].cells[E][k])throw Error(`More than 1 value for x=${E}, y=${k}`);if(A.meta.xLabels[E]&&String(b[g])!==A.meta.xLabels[E])throw Error(`More than 1 x-label value for x=${E}`);if(A.meta.yLabels[k]&&String(b[C])!==A.meta.yLabels[k])throw Error(`More than 1 y-label value for y=${k}`);A.meta.xLabels[E]=String(b[g]),A.meta.yLabels[k]=String(b[C]),A.meta&&(A.facets[B].cells[E][k]={id:`${E}_${k}`,x:E,y:k,sizeValue:P,normalizedSizeValue:P,colorValue:I,normalizedColorValue:I,data:b})}}),A.meta.facetKeys=A.meta.facetKeys.filter(b=>A.facets[b]),A.meta.facetKeys.forEach(b=>{let B=A.facets[b];if(B.xKeys=Zn.uniq(B.xKeys),B.yKeys=Zn.uniq(B.yKeys),B.xKeys.length*B.yKeys.length>Swt)throw Error(`Too many cells for graph rendering (${B.xKeys.length*B.yKeys.length})`)}),s){let b=[1/0,-1/0];A.meta.facetKeys.forEach(B=>{if(!A.facets[B])return;let{xKeys:E,yKeys:k,cells:P}=A.facets[B],I=s.direction==="row"?E:k,$=s.direction==="row"?k:E,z=s.direction==="row"?(O,K)=>{var te;return(te=P[O])==null?void 0:te[K]}:(O,K)=>{var te;return(te=P[K])==null?void 0:te[O]};$.forEach(O=>{let K=[];I.forEach(le=>{var Q;let G=(Q=z(le,O))==null?void 0:Q.colorValue;G!==void 0&&K.push(G)});let te=Bwt(s.method,K);I.forEach(le=>{let G=z(le,O);G!==void 0&&(G.normalizedColorValue=te(G.colorValue),b[0]=Math.min(G.normalizedColorValue,b[0]),b[1]=Math.max(G.normalizedColorValue,b[1]))})})}),A.meta.valueExtentColor=b}return A.meta.valueExtentSize[0]===1/0&&(A.meta.valueExtentSize[0]=0),A.meta.valueExtentSize[1]===-1/0&&(A.meta.valueExtentSize[1]=0),A.meta.valueExtentColor[0]===1/0&&(A.meta.valueExtentColor[0]=0),A.meta.valueExtentColor[1]===-1/0&&(A.meta.valueExtentColor[1]=0),A}var Twt=15,Um=8,pS=30,kwt=48,Mwt=24,vS=16,P3=4,mS=4,tJ=20,Pwt=16,hp={left:["axis","axisTitle"],right:["axis","axisTitle"],top:["axis","axisTitle","facetTitle"],bottom:["axis","axisTitle"]};function Hwt(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?mS:0,h=t.showTicks?mS:0,v=c&&e.showTitle?pS:0,g=s&&t.showTitle?pS:0,C=c&&e.showAxisLabels&&i>vS?n.xAxisCaptions+A+P3:0,b=s&&t.showAxisLabels&&o>vS?n.yAxisCaptions+h+P3:0;return{left:{axisTitle:t.position==="left"?g:0,axis:t.position==="left"?b:0},right:{axisTitle:t.position==="right"?g:0,axis:t.position==="right"?b:0},top:{facetTitle:f?kwt:0,axisTitle:e.position==="top"?v:0,axis:e.position==="top"?C:0},bottom:{axisTitle:e.position==="bottom"?v:0,axis:e.position==="bottom"?C:0}}}function Dwt(e,t,n){return{left:hp.left.reduce((r,a,i)=>{let o=i>0?hp.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:hp.right.reduce((r,a,i)=>{let o=i>0?hp.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:hp.top.reduce((r,a,i)=>{let o=i>0?hp.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:hp.bottom.reduce((r,a,i)=>{let o=i>0?hp.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 $wt(e,t,n,r){let{xLabels:a,yLabels:i}=n.meta,o=e.xAxisLabels/180*Math.PI,s=e.yAxisLabels/180*Math.PI,c=0,f=0,A=e.xAxisLabels===45;if(A){let v=n.meta.xKeys,g=t.x,C=g>vS,b=a[v[0]];c=Math.max(c,(A&&C?r.getTextWidth(b)*Math.cos(o):0)-g/2)}let h=e.yAxisLabels===45;if(h){let v=n.meta.yKeys;if(v.length){let g=t.y,C=g>vS,b=i[v[v.length-1]];f=Math.max(f,(h&&C?r.getTextWidth(b)*Math.cos(s):0)-g/2)}}return{xCaptionTail:c,yCaptionTail:f}}function Iwt({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:f,xLabels:A,yLabels:h}){let v=i.showTicks?mS:0,g=o.showTicks?mS:0,C=e.top.axis.isVisible||e.bottom.axis.isVisible,b=e.top.axisTitle.isVisible?e.top.axisTitle:e.bottom.axisTitle,B=e.top.axis.isVisible?e.top.axis:e.bottom.axis,E=e.left.axis.isVisible||e.right.axis.isVisible,k=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,P=e.left.axis.isVisible?e.left.axis:e.right.axis;return ie.jsxs("g",{children:[ie.jsxs("g",{children:[b.isVisible&&ie.jsxs("g",{transform:`translate(${b.x},${b.y})`,children:[ie.jsx("text",{x:b.width/2,y:b.height/2,textAnchor:"middle",dominantBaseline:"central",children:i.title}),t&&ie.jsx("rect",{width:b.width,height:b.height,stroke:Vt,fill:"none"})]}),C&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${B.x},${B.y})`,children:[n.map(I=>{let $=f.xAxisLabels!==0,z=i.position==="bottom",O=z?0:B.height,K=z?O+v:O-v,te=z?K+P3:K-P3,le=a.x(I)+s/2,G=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:le,y1:O,y2:K,stroke:Vt}),ie.jsx("text",{x:le,y:te,textAnchor:$?z?"end":"start":"middle",transform:`rotate(${G},${le},${te})`,dominantBaseline:$?"central":z?"hanging":"auto",children:A[I]})]},I)}),t&&ie.jsx("rect",{width:B.width,height:B.height,stroke:Vt,fill:"none"})]})]}),ie.jsxs("g",{children:[k.isVisible&&ie.jsx("g",{transform:`translate(
15128
+ ${k.y+k.height/2})`,children:ie.jsx("text",{transform:`rotate(${o.position==="left"?-90:90})`,dominantBaseline:"central",textAnchor:"middle",children:o.title})}),t&&ie.jsx("rect",{x:k.x,y:k.y,width:k.width,height:k.height,stroke:Vt,fill:"none"}),E&&ie.jsx("g",{fontSize:"14px",transform:`translate(${P.x},${P.y})`,children:r.map(I=>{let $=f.yAxisLabels!==0,z=o.position==="left",O=-(90-f.yAxisLabels),K=f.yAxisLabels===0?"middle":z?"end":"start",te=$?"central":z?"auto":"hanging",le=z?P.width:0,G=z?le-g:le+g,Q=z?G-_3:G+_3,j=a.y(I)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:G,y1:j,y2:j,stroke:Vt}),ie.jsx("text",{x:Q,y:j,textAnchor:K,transform:`rotate(${O},${Q},${j})`,dominantBaseline:te,children:h[I]})]},I)})}),t&&ie.jsx("rect",{x:P.x,y:P.y,height:P.height,width:P.width,stroke:Vt,fill:"none"})]})]})}function m9t({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:h,yKeysByGroups:v,labelAngles:g,xLabels:C,yLabels:b,xGroupLabels:B,yGroupLabels:E}){return ie.jsxs("g",{fontWeight:"500",children:[ie.jsx(v9t,{sideElementBBoxes:e,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:g,xLabels:C,yLabels:b,debug:t}),ie.jsx(p9t,{sideElementBBoxes:e,xGroupKeys:f,yGroupKeys:A,xKeysByGroups:h,yKeysByGroups:v,xGroupLabels:B,yGroupLabels:E,scales:a,stepX:s,stepY:c,xAxis:i,yAxis:o,labelAngles:g,debug:t})]})}function fZ(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 dZ(e,t,n,r,a){if(!n)return"";let i=n.aes[e];if(!w9(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 AZ={x:0,y:0,width:0,height:0};function g9t({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:AZ,c=o?t[o.position].dendro:AZ;function f(h,v){return dZ(h,v,i,n,a)}function A(h,v){return dZ(h,v,o,r,a)}return ie.jsxs("g",{children:[ie.jsx("g",{transform:`translate(${s.x},${s.y})`,children:i&&!i.hidden&&e.x.trees.map((h,v)=>{let g=h.links(),C=h.descendants();return ie.jsxs("g",{children:[g.map(b=>{let B=i.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:fZ(b,i.position),stroke:f("lineColor",B),strokeWidth:f("lineWidth",B),strokeDasharray:Of(f("lineShape",B)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),i.showNodes&&C.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:Yc(f("dotShape",b),f("dotSize",b),f("dotFill",b))},`${b.x},${b.y}`))]},v)})}),ie.jsx("g",{transform:`translate(${c.x},${c.y})`,children:o&&!o.hidden&&e.y.trees.map((h,v)=>{let g=h.links(),C=h.descendants();return ie.jsxs("g",{children:[g.map(b=>{let B=o.edgeInheritance==="up"?b.source:b.target;return ie.jsx("path",{d:fZ(b,o.position),stroke:A("lineColor",B),strokeWidth:A("lineWidth",B),strokeDasharray:Of(A("lineShape",B)),fill:"none"},`${b.source.x},${b.source.y},${b.target.x},${b.target.y}`)}),o.showNodes&&C.map(b=>ie.jsx("g",{transform:`translate(${b.x},${b.y})`,children:Yc(A("dotShape",b),A("dotSize",b),A("dotFill",b))},`${b.x},${b.y}`))]},v)})})]})}function y9t({frame:e,width:t,height:n,xGroupKeys:r,yGroupKeys:a,xKeysByGroups:i,yKeysByGroups:o,scales:s,stepX:c,stepY:f}){return ie.jsxs("g",{children:[e.type==="full"&&ie.jsx("rect",{fill:"none",stroke:Vt,x:"0",y:"0",width:t,height:n}),e.type==="groups"&&r.map(A=>{let h=i[A].length;if(h===0)return null;let v=h*c,g=s.x(i[A][0]);return a.map(C=>{let b=o[C].length;if(b===0)return null;let B=b*f,E=s.y(o[C][0]);return ie.jsx("rect",{x:g,y:E,width:v,height:B,stroke:Vt,fill:"none"},`${g}_${E}`)})})]})}function FM(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 w9t(e,t,n=[]){let r=e.data,a=[`X: ${t.xLabels[e.x]}`,`Y: ${t.yLabels[e.y]}`,`Value: ${FM(e.value)}${e.value!==e.normalizedValue?` (${FM(e.normalizedValue)})`:""}`];for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function b9t(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}: ${FM(e.value)}`),n}function C9t(e){return e!==null&&!("data"in e)}function hZ(e){return e!==null&&"data"in e}function S9t({dendrograms:e,facetKey:t,dimensions:n,scales:r,cells:a,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,colorScale:f,chartSettings:A,cellsMeta:h,stepX:v,stepY:g,sharedX:C,sharedY:b,annotations:B,annotationColorScales:E,dendrogramAesScales:k,aes:P,labelAngles:I,chartSizes:$,margins:z,tooltipsContainer:O,tooltipsData:K}){let[te,le]=tn.useState(),{xAxis:G,yAxis:Q,tooltips:j}=A,{width:Y,height:X}=n.inner,{padding:ee,chartEdgeSides:pe,sideElementBBoxes:ae}=n,{xGroupLabels:ge,yGroupLabels:me,xLabels:fe,yLabels:Ce}=h,De=r.x.domain(),ke=r.y.domain(),$e={left:z.left+n.left+ee.left,right:$.totalWidth-(z.left+n.left+ee.left),top:z.top+n.top+ee.top,bottom:$.totalHeight-(z.top+n.top+ee.top)},je=!1,Oe=te&&K.fixed;return ie.jsxs("g",{transform:`translate(${n.left},${n.top})`,fontSize:i9t,children:[ie.jsxs("g",{transform:`translate(${ee.left},${ee.top})`,children:[ie.jsx(h9t,{facetKey:t,sideElementBBoxes:ae,annotations:B,cellsMeta:h,annotationColorScales:E,sharedX:C,sharedY:b,chartEdgeSides:pe,width:Y,height:X,scales:r,stepX:v,stepY:g,aes:P,frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,tooltipsData:K,activeElementContainer:te}),ie.jsx(g9t,{dendrograms:e,sideElementBBoxes:ae,xDataByKeys:h.xDataByKeys,yDataByKeys:h.yDataByKeys,aesScales:k}),ae.top.facetTitle.isVisible&&ie.jsx("text",{x:ae.top.facetTitle.x,y:ae.top.facetTitle.y+ae.top.facetTitle.height-a9t,fontWeight:"500",fontSize:"20px",children:h.facetKeyValues[t].join(", ")}),je,De.map(ft=>ke.map(ze=>{var gt;let Xe=(gt=a==null?void 0:a[ft])==null?void 0:gt[ze],tt=Oe&&hZ(K.selectedData)&&(Xe==null?void 0:Xe.id)===K.selectedData.id,qe=Xe?ie.jsx("rect",{x:r.x(ft),y:r.y(ze),width:v,height:g,stroke:P.cellStrokeColor,fill:Xe.value===null?P.emptyCellColor:f(Xe.normalizedValue),onMouseOver:()=>K.onMouseOver(Xe,t),onMouseLeave:()=>K.onMouseLeave()},Xe?Xe.id:`${ft}_${ze}`):null;return tt?cu.createPortal(qe,te):qe})),ie.jsx(y9t,{frame:A.frame,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,scales:r,stepX:v,stepY:g,width:Y,height:X}),ie.jsx(m9t,{xAxis:G,yAxis:Q,scales:r,stepX:v,stepY:g,debug:je,sideElementBBoxes:ae,xKeys:De,yKeys:ke,xGroupKeys:i,yGroupKeys:o,xKeysByGroups:s,yKeysByGroups:c,xGroupLabels:ge,yGroupLabels:me,labelAngles:I,xLabels:fe,yLabels:Ce})]}),A.tooltips.show&&hZ(K.selectedData)&&K.currentFacet===t&&ie.jsx(fu,{content:w9t(K.selectedData,h,j==null?void 0:j.content),x:r.x(String(K.selectedData.x))+v/2,y:r.y(String(K.selectedData.y))+g/2,offset:De.length>1?v/2:0,active:!0,sideDistances:$e,fixed:K.fixed,onClose:K.onClose,container:O}),A.tooltips.show&&C9t(K.selectedData)&&K.currentFacet===t&&ie.jsx(fu,{content:b9t(K.selectedData,h),x:K.selectedData.x,y:K.selectedData.y,offset:0,active:!0,sideDistances:$e,fixed:K.fixed,onClose:K.onClose,container:O}),ie.jsxs("g",{transform:`translate(${ee.left},${ee.top})`,children:[K.fixed&&ie.jsx("rect",{width:$.chartWidth,height:$.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:ft=>{ft&&!te&&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:h,groupedCells:v,cellsMeta:g,step:C,annotations:b,annotationColorScales:B,legend:E,aes:k,dendrograms:P,dendrogramAesScales:I,columnsCount:$,labelAngles:z,onTooltipHintSwitch:O}){let[K,te]=tn.useState(),le=h3(O),G=tn.useRef(null);tn.useEffect(()=>{G.current&&te(G.current)},[]);let Q=i[o[0]].padding,j=i[o[$-1]].padding,Y=e.left+a.chartsWidth+zM,X=e.top+Q.top;return ie.jsx(g3,{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:Qm}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(y3,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:Q.left,rightPadding:j.right,chartsWidth:a.chartsWidth}),o.map(ee=>{let{cells:pe,xKeysByGroups:ae,yKeysByGroups:ge}=v[ee];return ie.jsx(S9t,{dendrograms:P[ee],captionsSizes:t,facetKey:ee,dimensions:i[ee],xGroupKeys:c,yGroupKeys:f,xKeysByGroups:s.sharedX?g.xKeysByGroups:ae,yKeysByGroups:s.sharedY?g.yKeysByGroups:ge,sharedX:s.sharedX,sharedY:s.sharedY,scales:{x:A.x[ee],y:A.y[ee]},cells:pe,cellsMeta:g,stepX:C.x[ee],stepY:C.y[ee],colorScale:h,chartSettings:r,aes:k,annotations:b,annotationColorScales:B,dendrogramAesScales:I,labelAngles:z,margins:e,chartSizes:a,tooltipsContainer:K,tooltipsData:le},ee)})]}),ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(w3,{legendData:E})}),ie.jsx("g",{ref:G,style:{outline:"none"}})]})})}function pZ(e,t,n){function r(a){a[n]=t(a.data.height),a.children&&a.children.forEach(r)}r(e)}function vZ(e,t,n,r=n){function a(i){i[r]=i[n]+t,i.children&&i.children.forEach(a)}a(e)}var E9t=(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 mZ(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])),E9t(t,r)}var B9t=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:Zv,bottom:Zv,left:Zv,right:Zv});Be(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xGroupCaptions:Jv,yGroupCaptions:Jv,xCaptionTail:0,yCaptionTail:0});Be(this,"labelAngles",{xAxisLabels:0,yAxisLabels:0,xGroupLabels:0,yGroupLabels:0});Be(this,"columnsCount",1);Be(this,"rowsCount",1);Be(this,"scales",{x:{null:Qo().domain(["null"]).range([1])},y:{null:Qo().domain(["null"]).range([1])}});Be(this,"step",{x:{},y:{}});Be(this,"colorScale",Zr().domain([0,1]).range(["white","black"]));Be(this,"annotationColorScales",{});Be(this,"dendrogramAesScales",{});Be(this,"legend",{width:0,height:0,items:[]});Be(this,"dendrograms",{})}clear(){var e;this.parentNode&&this.rootNode&&((e=this.parentNode)==null||e.removeChild(this.rootNode),this.parentNode=null,this.rootNode=null),setTimeout(()=>{var t;(t=this.reactRoot)==null||t.unmount(),this.reactRoot=null})}init(e){this.parentNode===null&&(this.parentNode=e,this.rootNode=document.createElement("div"),this.parentNode.appendChild(this.rootNode),this.reactRoot=Wh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Zv,bottom:Zv,left:Zv,right:this.legend.width+Zv},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartsHeight+this.margins.bottom,this.legend.height)}updateLegendSize(e,t,n,r,a){if(!t.show){this.legend={width:0,height:0,items:[]};return}let i=this.chartSizes.chartHeight,o=[],s={width:0,height:0,left:0,top:0},c=v=>v.reduce((g,C)=>(g[C]=String(C),g),{});if(e==="continuous"){let v=this.colorScale,g=A3(v,a),C=Zr([g[0],g[g.length-1]],[i,0]),b=r.label??r.value;o.push({...s,type:"continuous",id:"heatmapValue",scale:v,values:g,title:b,tickPositionScale:C})}else if(e==="discrete"){let v=this.colorScale,g=r.label??r.value,C=v.domain(),b=c(C);o.push({...s,type:"discreteColor",id:"heatmapValue",title:g,scale:v,values:C,labels:b})}if(n.forEach(v=>{let g=v.valueColumn.label??v.valueColumn.value;if(v.type==="continuous"){let C=this.annotationColorScales[v.id].scale,b=A3(C,a),B=Zr([b[0],b[b.length-1]],[i,0]);o.push({...s,type:"continuous",id:v.id,tickPositionScale:B,title:g,scale:C,values:b})}if(v.type==="discrete"){let C=this.annotationColorScales[v.id].scale,b=C.domain(),B=c(b);o.push({...s,type:"discreteColor",id:v.id,title:g,scale:C,values:b,labels:B})}}),!o.length){this.legend={width:0,height:0,items:[]};return}let f=C3(o,this.chartSizes.chartHeight),A=f[f.length-1],h=A.left+A.width+zM;this.legend={width:h,height:i,items:f}}updateCaptionsSize(e,t,n,r){let a=new hc("bold 14px Arial"),{xGroupKeys:i,yGroupKeys:o,xGroupLabels:s,yGroupLabels:c,xKeysByGroups:f,yKeysByGroups:A,xLabels:h,yLabels:v}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle,xGroupLabels:t.groupLabelsAngle,yGroupLabels:n.groupLabelsAngle};function g(le,G){let Q=0;for(let j of le){let Y=a.getTextWidth(G[j]);Y>Q&&(Q=Y)}return Q}let C=Zn.flatten(Object.values(f)),b=Zn.flatten(Object.values(A)),B=g(C,h),E=g(b,v),k=g(i,s),P=g(o,c),{xCaptionTail:I,yCaptionTail:$}=f9t(this.labelAngles,r,this.step,e,a),z=this.labelAngles.xGroupLabels/180*Math.PI,O=this.labelAngles.yGroupLabels/180*Math.PI,K=this.labelAngles.xAxisLabels/180*Math.PI,te=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:I,yCaptionTail:$,xGroupCaptions:k*Math.sin(z)||Jv,yGroupCaptions:P*Math.sin(O)||Jv,xAxisCaptions:B*Math.sin(K)||Jv,yAxisCaptions:E*Math.sin(te)||Jv}}updateChartDimensions(e,t,n,r,a,i,o,s,c,f){let A=t.length,h=Math.min(a.nRows??A,A),v=Math.min(a.nCols??A,A);this.columnsCount=a.nRows?Math.ceil(A/h):v,this.rowsCount=Math.ceil(A/this.columnsCount);let{width:g,height:C}=e,{sharedX:b,sharedY:B}=a;this.chartsDimensions={};let E=0,k=0;t.forEach(($,z)=>{let O=z%this.columnsCount+1,K=cZ(z,t.length,this.columnsCount,this.rowsCount),te=this.step.x[$],le=this.step.y[$],G=o9t(i,o,this.captionsSizes,s,c,f,K,b,B,t,n,r,te,le),Q=c9t(s,K,b,B);function j(ae){return Math.max(Ap[ae].reduce((ge,me)=>ge+G[ae][me],0),Q[ae],n9t)}let Y={left:j("left"),right:j("right"),top:j("top"),bottom:j("bottom")};Y.left<this.captionsSizes.xCaptionTail&&(Y.left=this.captionsSizes.xCaptionTail),Y.bottom<this.captionsSizes.yCaptionTail&&(Y.bottom=this.captionsSizes.yCaptionTail);let X=l9t(G,g,C),ee=g+Y.left+Y.right,pe=C+Y.top+Y.bottom;this.chartsDimensions[$]={left:E,top:k,inner:{width:g,height:C},outer:{width:ee,height:pe},padding:Y,sideElementBBoxes:X,chartEdgeSides:K},E+=ee,O===this.columnsCount&&(E=0,k+=pe)});let P=t.slice(0,this.columnsCount).reduce(($,z)=>$+this.chartsDimensions[z].outer.width,0),I=t.filter(($,z)=>z%this.columnsCount===0).reduce(($,z)=>$+this.chartsDimensions[z].outer.height,0);this.chartSizes.chartsWidth=P,this.chartSizes.chartsHeight=I}updateChartsSizes(e){let{width:t,height:n}=e;this.chartSizes.chartWidth=t,this.chartSizes.chartHeight=n}updateScales(e,t,n,r,a,i,o,s,c){let{width:f,height:A}=a,{meta:h,facets:v}=t,{sharedX:g,sharedY:C}=r,b=(E,k={})=>E.sort((P,I)=>i.sorting==="asc"?(k[P]??P).localeCompare(k[I]??I,"en",{numeric:!0}):(k[I]??I).localeCompare(k[P]??P,"en",{numeric:!0})),B=(E,k={})=>E.sort((P,I)=>o.sorting==="asc"?(k[P]??P).localeCompare(k[I]??I,"en",{numeric:!0}):(k[I]??I).localeCompare(k[P]??P,"en",{numeric:!0}));e.forEach(E=>{let k=v[E],P=b(h.xGroupKeys),I=B(h.yGroupKeys),{xKeysByGroups:$}=g?h:k,{yKeysByGroups:z}=C?h:k,O=P.map(ge=>$[ge].length),K=I.map(ge=>z[ge].length),te=O.reduce((ge,me)=>ge+me,0),le=K.reduce((ge,me)=>ge+me,0),G=(f-(O.filter(ge=>ge>0).length-1)*n)/te,Q=(A-(K.filter(ge=>ge>0).length-1)*n)/le,j=[],Y=[],X=0;P.forEach(ge=>{let me=s?$[ge]:b($[ge],h.xLabels);Y.push(...me),me.forEach(()=>{j.push(X),X+=G}),me.length>0&&(X+=n)});let ee=[],pe=[],ae=0;I.forEach(ge=>{let me=c?z[ge]:B(z[ge],h.yLabels);pe.push(...me),me.forEach(()=>{ee.push(ae),ae+=Q}),me.length>0&&(ae+=n)}),this.scales.x[E]=Qo().domain(Y).range(j),this.scales.y[E]=Qo().domain(pe).range(ee),this.step.x[E]=G,this.step.y[E]=Q})}updateAesScale(e,t,n,r,a,i,o){if(e==="continuous")n.valueColors?this.colorScale=Zr().domain(n.valuesByColors??mZ(o,n.valueColors.length,t)).range(n.valueColors):n.colorsList&&(this.colorScale=Zr().domain(mZ(o,n.colorsList.length,t)).range(n.colorsList));else if(n.colorsMap){let f=Object.entries(n.colorsMap);this.colorScale=Qo().domain(f.map(A=>A[0])).range(f.map(A=>A[1])).unknown("#ccc")}else n.colorsList&&(this.colorScale=uZ(n.colorsList,i.map(String)));let{xDataByKeys:s,yDataByKeys:c}=a.meta;r.forEach(f=>{let{colors:A,type:h,axis:v,valueColumn:g}=f,C=(v==="x"?s:c)[g.value];if(h==="discrete"){let b=Zn.uniq(Object.values(C).map(String)).sort();this.annotationColorScales[f.id]={type:"discrete",scale:uZ(A,b)}}else{let b=Object.values(C).map(Number);if(!b.length)return;let[B=b[0],E=b[0]]=H0(b);this.annotationColorScales[f.id]={type:"continuous",scale:s9t(A,B,E,0,.5,1)}}})}updateDendrogram(e,t,n,r,a,i,o){e.forEach(s=>{this.dendrograms[s]={x:{trees:[],data:i},y:{trees:[],data:o}};let{xKeysByGroups:c,yKeysByGroups:f}=r[s],{hierarchyX:A,hierarchyY:h}=a[s],v=Math.max(...A.map(C=>C.data.height)),g=Math.max(...h.map(C=>C.data.height));i&&(this.dendrograms[s].x.trees=A.map((C,b)=>{let B=t[b],E=c[B];$B().separation(()=>1).size([E.length*this.step.x[s],i.size])(C);let k=C,P=Zr().domain(i.position==="top"?[0,v]:[v,0]).range([i.size,0]);return pZ(k,P,"y"),vZ(k,this.scales.x[s](E[0]),"x"),k}),this.dendrograms[s].x.data=i),o&&(this.dendrograms[s].y.trees=h.map((C,b)=>{let B=n[b],E=f[B];$B().separation(()=>1).size([E.length*this.step.y[s],o.size])(C);let k=C,P=Zr().domain(o.position==="left"?[0,g]:[g,0]).range([o.size,0]);return vZ(k,this.scales.y[s](E[0]),"x","y"),pZ(k,P,"x"),k}),this.dendrograms[s].y.data=o)})}updateDendrogramAesScales(e){if(!e)return;let t=Object.keys(e);this.dendrogramAesScales=t.reduce((n,r)=>{let a=e[r],i=Object.keys(a);return n[r]=Qo().domain(i).range(i.map(o=>({...sZ,...a[o]}))).unknown(sZ),n},{})}render(e,t,n,r,a,i,o,s,c,f,A,h,v,g){var le;let{meta:C,facets:b}=a,{facetKeys:B,xGroupKeys:E,yGroupKeys:k,valueExtent:P}=C,{xAxis:I,yAxis:$,title:z,size:O,valueType:K}=t;this.updateChartsSizes(O),this.updateAesScale(K,P,r,i,a,h,v),this.updateScales(B,a,r.groupGap,n,O,t.xAxis,t.yAxis,s,c),this.updateCaptionsSize(a,I,$,n),this.updateChartDimensions(O,B,E,k,n,I,$,i,s,c),this.updateLegendSize(K,t.legend,i,o,P),this.updateMargins(z),this.updateDendrogram(B,E,k,b,f,s,c),this.updateDendrogramAesScales(A);let te=ie.jsx(x9t,{aes:r,annotations:i,annotationColorScales:this.annotationColorScales,captionsSizes:this.captionsSizes,cellsMeta:C,columnsCount:this.columnsCount,chartsDimensions:this.chartsDimensions,chartSettings:t,chartSizes:this.chartSizes,colorScale:this.colorScale,dendrogramAesScales:this.dendrogramAesScales,dendrograms:this.dendrograms,facetKeys:B,facetSettings:n,groupedCells:b,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step,xGroupKeys:E,yGroupKeys:k,onTooltipHintSwitch:g});this.component=te,(le=this.reactRoot)==null||le.render(te)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Xv,{message:e}))}},_9t=B9t,QM={lineColor:Vt,dotShape:"21",dotFill:Vt,dotSize:3,lineShape:"solid",lineWidth:1},gZ={size:150,distance:"euclidean",linkage:"average",fillNA:0,showNodes:!0,hidden:!1,edgeInheritance:"up",aes:QM},yZ=class{constructor(e){Be(this,"id");Be(this,"type","heatmap");Be(this,"facetSettings");Be(this,"xColumn");Be(this,"xGroupBy");Be(this,"yColumn");Be(this,"yGroupBy");Be(this,"valueColumn");Be(this,"facetBy");Be(this,"normalization");Be(this,"chartSettings");Be(this,"aes");Be(this,"annotations");Be(this,"dendrogramX");Be(this,"dendrogramY");Be(this,"inheritedDendrogramAes");Be(this,"NAValueAs");var t,n,r,a,i,o,s,c,f,A,h,v,g;if(K3t.parse(e),this.id=Zn.uniqueId("settings"),this.facetSettings={sharedX:(e.facetBy??[]).length>0,sharedY:(e.facetBy??[]).length>0,...e.facetSettings},this.xColumn=e.xColumn,this.xGroupBy=e.xGroupBy??[],this.yColumn=e.yColumn,this.yGroupBy=e.yGroupBy??[],this.valueColumn=e.valueColumn,this.facetBy=e.facetBy??[],this.chartSettings={title:{position:"left",show:!0,...e.title,name:((t=e.title)==null?void 0:t.name)??"Chart"},size:{width:((n=e==null?void 0:e.size)==null?void 0:n.width)??(this.facetBy.length?400:600),height:((r=e==null?void 0:e.size)==null?void 0:r.height)??(this.facetBy.length?250:350)},frame:{type:((a=e.frame)==null?void 0:a.type)??"none"},valueType:e.valueType??"continuous",yAxis:{title:e.yColumn.label??e.yColumn.value,showTicks:!0,showTitle:!0,showAxisLabels:!0,showGroupLabels:!0,position:"left",groupingPosition:"left",axisLabelsAngle:90,groupLabelsAngle:0,sorting:"asc",...e.yAxis},xAxis:{title:e.xColumn.label??e.xColumn.value,showTicks:!0,showTitle:!0,showAxisLabels:!0,showGroupLabels:!0,position:"bottom",groupingPosition:"bottom",axisLabelsAngle:90,groupLabelsAngle:0,sorting:"asc",...e.xAxis},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.normalization=this.chartSettings.valueType==="continuous"?e.normalization??null:null,this.NAValueAs=e.NAValueAs??null,this.aes={colorsList:((i=e.aes)==null?void 0:i.colorsList)??["black","white","red"],colorsMap:((o=e.aes)==null?void 0:o.colorsMap)??null,valueColors:((s=e.aes)==null?void 0:s.valueColors)??null,valuesByColors:((c=e.aes)==null?void 0:c.valuesByColors)??null,cellStrokeColor:((f=e.aes)==null?void 0:f.cellStrokeColor)??"none",groupGap:((A=e.aes)==null?void 0:A.groupGap)??3,emptyCellColor:((h=e.aes)==null?void 0:h.emptyCellColor)??"white"},this.annotations=(e.annotations??[]).map(C=>C.axis==="x"?{id:Zn.uniqueId("annotation"),axis:"x",valueColumn:C.valueColumn,position:C.position??this.chartSettings.xAxis.position,titlePosition:C.titlePosition??"right",showTitle:C.showTitle??!0,type:C.type,colors:C.colors??["white","black"]}:{id:Zn.uniqueId("annotation"),axis:"y",valueColumn:C.valueColumn,position:C.position??this.chartSettings.yAxis.position,titlePosition:C.titlePosition??"top",showTitle:C.showTitle??!0,type:C.type,colors:C.colors??["white","black"]}),e.valueType==="discrete"&&(e.dendrogramX||e.dendrogramY))throw Error("Dendrogram is not available with discrete cells values");this.dendrogramX=e.dendrogramX?{...gZ,position:"top",...e.dendrogramX,aes:{...QM,...(v=e.dendrogramX)==null?void 0:v.aes}}:null,this.dendrogramY=e.dendrogramY?{...gZ,position:"left",...e.dendrogramY,aes:{...QM,...(g=e.dendrogramY)==null?void 0:g.aes}}:null,this.inheritedDendrogramAes=e.inheritedDendrogramAes??null}},T9t=class extends zm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new _9t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new yZ(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 yZ(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(),w5(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var $,z,O,K,te,le,G,Q,j,Y,X,ee;let{xColumn:r,yColumn:a,valueColumn:i,xGroupBy:o,yGroupBy:s,facetBy:c,annotations:f,chartSettings:A,facetSettings:h,dendrogramX:v,dendrogramY:g,normalization:C,NAValueAs:b}=n,B=Object.values((($=t.dendrogramX)==null?void 0:$.aes)||{}).filter(w9),E=Object.values((v==null?void 0:v.aes)||{}).filter(w9),k=Object.values(((z=t.dendrogramY)==null?void 0:z.aes)||{}).filter(w9),P=Object.values((g==null?void 0:g.aes)||{}).filter(w9);function I(pe,ae){return pe.length!==ae.length||pe.some((ge,me)=>ge.value!==ae[me].value)}return t.xColumn.value!==r.value||t.yColumn.value!==a.value||t.valueColumn.value!==i.value||I(t.xGroupBy,o)||I(t.yGroupBy,s)||I(t.facetBy,c)||I(t.annotations.map(pe=>pe.valueColumn),f.map(pe=>pe.valueColumn))||I(B,E)||I(k,P)||(n.dendrogramX||t.dendrogramX)&&(((O=t.dendrogramX)==null?void 0:O.distance)!==((K=n.dendrogramX)==null?void 0:K.distance)||((te=t.dendrogramX)==null?void 0:te.linkage)!==((le=n.dendrogramX)==null?void 0:le.linkage))||(n.dendrogramY||t.dendrogramY)&&(((G=t.dendrogramY)==null?void 0:G.distance)!==((Q=n.dendrogramY)==null?void 0:Q.distance)||((j=t.dendrogramY)==null?void 0:j.linkage)!==((Y=n.dendrogramY)==null?void 0:Y.linkage))||t.chartSettings.valueType!==A.valueType||t.facetSettings.sharedX!==h.sharedX||t.facetSettings.sharedY!==h.sharedY||((X=t.normalization)==null?void 0:X.method)!==(C==null?void 0:C.method)||((ee=t.normalization)==null?void 0:ee.direction)!==(C==null?void 0:C.direction)||t.NAValueAs!==b}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{xColumn:t,yColumn:n,valueColumn:r,xGroupBy:a,yGroupBy:i,facetBy:o,chartSettings:s,facetSettings:c,annotations:f,dendrogramX:A,dendrogramY:h,normalization:v,NAValueAs:g}=this.settings,C=K7t(this.data,t,n,r,o,a,i,f,A,h,v,g),b=t9t(C,A,h,c),B=s.valueType==="discrete"?this.data.getColumnCategories(r.value):[];this.calculatedData={groupedCellsData:C,dendrogramsData:b,cellUniqValues:B}}_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)}},wZ=(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 bZ(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 k9t(e,t,n,r,a,i){let o=wZ(n,r),s=PI().domain(r).thresholds(o).value(c=>c[t.value])(e);return{bins:bZ(s,a,i),maxCount:Vh(s,c=>c.length)??0}}function M9t(e,t,n,r,a,i){let o=wZ(n,r),s=uv().domain(r).range(r),c=o.map(A=>s.invert(A)),f=PI().domain(r).thresholds(c).value(A=>A[t.value])(e);return{bins:bZ(f,a,i),maxCount:Vh(f,A=>A.length)??0}}function P9t(e,t,n,r,a,i){let o={};return t.forEach(s=>{var b,B;let c=s.join("_");o[c]={groupingKeys:n,histogramByGroupingKey:{},minX:1/0,maxX:-1/0,maxCount:0,maxCountFromGroups:0};let f=e.getRowsByGrouping([...s]),[A,h]=H0(f,E=>E[r.value]);A=A??((b=f[0])==null?void 0:b[r.value])??0,h=h??((B=f[0])==null?void 0:B[r.value])??0;let v=[A,h],g=[...n].reverse();g.forEach((E,k)=>{let P=e.getRowsByGrouping([...s,E]),I=i==="linear"?k9t(P,r,a,v,E,k):M9t(P,r,a,v,E,k);o[c].histogramByGroupingKey[E]=I,o[c].minX=v[0],o[c].maxX=v[1],o[c].maxCountFromGroups=Math.max(o[c].maxCountFromGroups,I.maxCount);let $=k>0?g[k-1]:null,z=$!==null?o[c].histogramByGroupingKey[$]:null;I.bins.forEach((O,K)=>{O.y.straight=((z==null?void 0:z.bins[K].y.straight)??0)+O.count,o[c].maxCount=Math.max(o[c].maxCount,O.y.straight)})});let C=n;C.forEach((E,k)=>{let P=k>0?C[k-1]:null,I=o[c].histogramByGroupingKey[E],$=P!==null?o[c].histogramByGroupingKey[P]:null;I.bins.forEach((z,O)=>{z.y.reverse=(($==null?void 0:$.bins[O].y.reverse)??0)+z.count})})}),o}var H9t={TOP:30,BOTTOM:0,LEFT:10,RIGHT:10};function T9(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 CZ=(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 D9t(e,t,n){if(n==="linear")return CZ(e,t);if(n==="log"){let r=CZ(e,t),a=uv(t,t),i=r.map(o=>a.invert(o));return i[0]=t[0],i[i.length-1]=t[1],i}return[]}function k9(e,t,n){return(n==="log"?uv():Zr()).domain(D9t(e.length,t,n)).range(e)}function $9t(e){return`translate(${e},0)`}function I9t(e){return`translate(0,${e})`}function L9t(e){return e==="bottom"?`translate(0,${zf})`:`translate(${-zf},0)`}function R9t(e){return e==="bottom"?"hanging":"central"}function V9t(e){return e==="bottom"?"middle":"end"}var SZ=({scale:e,tickSize:t=6,tickPadding:n=zf,orient:r="bottom",onlyPositive:a=!1,hiddenLabels:i=!1,offset:o=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function s(B){return E=>{let k=B(E);return k===void 0?0:+k}}let{ticks:c,format:f}=i?{ticks:[],format:B=>B}:T9(e,a,r==="bottom"),A=Math.max(t,0)+n,h=s(e.copy()),v=r==="bottom"?$9t:I9t,g=r==="left"?-1:1,C={[(r==="left"?"x":"y")+"2"]:g*t},b={[r==="left"?"x":"y"]:g*A};return ie.jsx("g",{children:c.map((B,E)=>ie.jsxs("g",{className:"tick",transform:v(h(B)+o),children:[ie.jsx("line",{stroke:Vt,...C}),ie.jsx("g",{transform:L9t(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:R9t(r),textAnchor:V9t(r),...b,children:f(B)})})]},E))})},N9t=1;function xZ({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=tn.useState(e.ticks()),[A,h]=tn.useState(t.ticks()),{significantLines:v=[]}=a,{significantLines:g=[]}=i;return tn.useEffect(()=>{let C=e.ticks().filter(B=>!v.includes(B)),b=t.ticks().filter(B=>!g.includes(B));f(C),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Nf,children:[a.showGrid&&c.map(C=>{let b=e(C);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`x_${b}_${r}`)}),i.showGrid&&A.map(C=>{let b=t(C);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`y_${b}_${n}`)}),ie.jsx("g",{strokeDasharray:Of(a.significantLinesStyle),stroke:Vt,children:v.map(C=>{let b=e(C);return b<0||b>n?null:ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`significant_${b}_${r}`)})}),ie.jsx("g",{strokeDasharray:Of(i.significantLinesStyle),stroke:Vt,children:g.map(C=>{let b=t(C);return b<0||b>r?null:ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`significant_${b}_${n}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:N9t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?Nf:Vt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?Nf:Vt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}function z9t(e){return typeof e=="string"?e:e.value}function O9t(e,t){let n=[`Amount: ${e.count}`,`(from ${Ka(e.x)}, to ${Ka(e.x+e.width)})`];return e.groupingKey!=="null"&&n.push(`${t[e.groupingKey]??e.groupingKey}`),n}function EZ(e,t,n,r){return t==="vertical"?e:e+n*r}function BZ(e,t,n,r){return t(n==="vertical"?r==="straight"?e.y.straight:e.y.reverse:e.count)}function F9t({facetKey:e,width:t,height:n,dimensions:r,scales:a,xAxis:i,yAxis:o,frameType:s,histogramData:c,facetSettings:f,captionsSizes:A,facetTitle:h,layers:v,aesColorGetter:g,groupingDirection:C,groupingStack:b,groupingLabels:B,chartSizes:E,margins:k,tooltipsContainer:P,tooltipsData:I}){let[$,z]=tn.useState(),{padding:O}=r,K=i.showTicks?4:0,te=o.showTicks?4:0,le=r.chartEdgeSides.includes("left")||!(f!=null&&f.sharedY),G=r.chartEdgeSides.includes("bottom")||!(f!=null&&f.sharedX),Q=r.chartEdgeSides.includes("bottom"),j=c.groupingKeys,Y=c.histogramByGroupingKey[j[0]].bins[0],X=a.x(Y.width)-a.x(0),ee=b==="vertical"?X:X/j.length,pe={left:k.left+r.left+O.left,right:E.totalWidth-(k.left+r.left+O.left),top:k.top+r.top+O.top,bottom:E.totalHeight-(k.top+r.top+O.top)},ae=$&&I.fixed,ge=!1;return ie.jsxs("g",{transform:`translate(${r.left+O.left},${r.top+O.top})`,children:[ge,h.length&&ie.jsxs("g",{children:[s==="full"&&ie.jsx("rect",{x:"0",y:-O.top,height:O.top,width:t,fill:"#F7F8FA",stroke:Vt}),h.map((me,fe)=>{let Ce=h.length,De=(O.top-20*Ce)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:t/2,dy:De+20/2-O.top,y:fe*20,textAnchor:"middle",dominantBaseline:"central",children:me},fe)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[Q&&i.title&&ie.jsx("text",{x:t/2,y:n+O.bottom-20/2,children:z9t(i.title)}),ge]}),ie.jsx(xZ,{width:t,height:n,scaleX:a.x,scaleY:a.y,axisX:i,axisY:o,frameType:s}),G&&ie.jsxs("g",{transform:`translate(0,${n})`,children:[ie.jsx(SZ,{scale:a.x,orient:"bottom",tickSize:K,hiddenLabels:i.hiddenLabels}),ge]}),le&&ie.jsxs("g",{children:[ie.jsx(SZ,{scale:a.y,orient:"left",tickSize:te,hiddenLabels:o.hiddenLabels}),ge]}),v.map(me=>j.map((fe,Ce)=>c.histogramByGroupingKey[fe].bins.map(De=>{let ke=ae&&I.selectedData===De,$e=ie.jsx("rect",{x:EZ(a.x(De.x),b,Ce,ee),y:BZ(De,a.y,b,C),fill:De.rows[0]?g(me.aes.fillColor,De.rows[0],De.count):"",stroke:me.aes.lineColor,width:ee,height:a.y(0)-a.y(De.count),opacity:me.aes.opacity??1,onMouseOver:()=>I.onMouseOver(De,e),onMouseLeave:()=>I.onMouseLeave()},De.x);return ke?cu.createPortal($e,$):$e}))),I.fixed&&ie.jsx("rect",{width:E.chartWidth,height:E.chartHeight,fill:"rgba(255,255,255,0.8)"}),ie.jsx("g",{ref:me=>{me&&!$&&z(me)}}),I.selectedData&&I.currentFacet===e&&ie.jsx(fu,{content:O9t(I.selectedData,B),x:EZ(a.x(I.selectedData.x),b,I.selectedData.groupingKeyIdx,ee)+ee,y:BZ(I.selectedData,a.y,b,C)+a.y(0)-a.y(I.selectedData.count/2),offset:0,active:!0,fixed:I.fixed,sideDistances:pe,container:P,onClose:I.onClose})]})}function Q9t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,columnsCount:a,facetKeys:i,facetSettings:o,scales:s,margins:c,mainTitle:f,facetTitles:A,captionsSizes:h,histogramDataByFacets:v,layers:g,aesColorGetter:C,groupingDirection:b,groupingStack:B,groupingLabels:E,legend:k,onTooltipHintSwitch:P}){let I=h3(P),{xAxis:$,yAxis:z,title:O,frame:K}=t,te=r[i[0]].padding,le=r[i[a-1]].padding,[G,Q]=tn.useState(),j=tn.useRef(null);tn.useEffect(()=>{j.current&&Q(j.current)},[]);let Y=c.left+n.chartsWidth+zM,X=c.top+te.top;return ie.jsx(g3,{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:Qm}),ie.jsxs("g",{transform:`translate(${c.left},${c.top})`,fontFamily:"Manrope",children:[ie.jsx(y3,{title:f,show:O.show,position:O.position,leftPadding:te.left,rightPadding:le.right,chartsWidth:n.chartsWidth}),i.map(ee=>ie.jsx(F9t,{facetKey:ee,scales:{x:s.x[ee],y:s.y[ee]},width:n.chartWidth,height:n.chartHeight,dimensions:r[ee],margins:c,chartSizes:n,facetSettings:o,xAxis:$,yAxis:z,frameType:K.type,facetTitle:A[ee],captionsSizes:h,histogramData:v[ee],layers:g,aesColorGetter:C,groupingDirection:b,groupingStack:B,groupingLabels:E,tooltipsContainer:G,tooltipsData:I},ee))]}),ie.jsx("g",{transform:`translate(${Y},${X})`,children:ie.jsx(w3,{legendData:k})}),ie.jsx("g",{ref:j,style:{outline:"none"}})]})})}function j9t(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 U9t(e,t,n,r,a,i,o,s){let c=i.includes("left")||!(s!=null&&s.sharedY),f=i.includes("bottom")||!(s!=null&&s.sharedX),A=i.includes("bottom")&&e.title!=="",h=n.yAxisCaptionsWidth,v=(t.showTicks?4:0)+(t.hiddenLabels?0:6),g=n.xAxisCaptionsWidth,C=(e.showTicks?4:0)+(e.hiddenLabels?0:6),b=A?20:0,B=h+v,E=C+g+b,k=Math.max(...r.map(P=>a[P].length));return{left:c?B:12,top:k===0?0:6*2+k*20,bottom:f?E:12,right:o?0:12}}function G9t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function Y9t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function _Z(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function W9t(e){return typeof e=="object"&&e!==null&&"range"in e}function X9t(e,t,n){return function(r,a,i){var o,s;if(W9t(r)){let{domain:c=n,range:f,type:A="linear"}=r,h=k9(f,c,A);return h.clamp(!0),h(i)}if(_Z(r)){let c=r.value;return(s=((o=e[c])==null?void 0:o[String(a[c])])??m9)==null?void 0:s[t]}return r}}var K9t=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=Wh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateChartDimensions(e,t,n,r){let{chartWidth:a,chartHeight:i}=this.chartSizes,o=0,s=0;this.chartsDimensions=e.reduce((A,h,v)=>{let[g,C]=Y9t(v,this.columnsCount),b=j9t(v,e.length,this.columnsCount,this.rowsCount),B=U9t(n,r,this.captionsSizes,G9t(e,this.rowsCount,this.columnsCount)[g],this.facetTitles,b,C===this.columnsCount-1,t),E=a+B.left+B.right,k=i+B.top+B.bottom;return A[h]={left:o,top:s,chartEdgeSides:b,padding:B,inner:{width:a,height:i},outer:{width:E,height:k}},o+=E,C===this.columnsCount-1&&(o=0,s+=k),A},{});let c=Math.max(...e.map(A=>this.chartsDimensions[A].outer.width+this.chartsDimensions[A].left)),f=Math.max(...e.map(A=>this.chartsDimensions[A].outer.height+this.chartsDimensions[A].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r,a,i,o){let s=e.length,c=Math.min(t.nRows??s,s),f=Math.min(t.nCols??s,s);this.columnsCount=t.nRows?Math.ceil(s/c):f,this.rowsCount=Math.ceil(s/this.columnsCount);let[A,h]=[1/0,-1/0],v=-1/0,g=e.reduce((C,b)=>{let B=a[b],{minX:E,maxX:k,maxCount:P,maxCountFromGroups:I}=B;return A=Math.min(A,E),h=Math.max(h,k),v=Math.max(v,o==="vertical"?P:I),C[b]={minX:E,maxX:k,maxY:o==="vertical"?P:I},C},{});e.forEach(C=>{let b=n.scale==="log"?uv():Zr(),B=g[C],E=t.sharedX?A:B.minX,k=t.sharedX?h:B.maxX;b.domain([E,k]).range([0,this.chartSizes.chartWidth]),this.scales.x[C]=b}),e.forEach(C=>{let b=r.scale==="log"?uv():Zr(),B=g[C],E=0,k=t.sharedY?v:B.maxY,P=[this.chartSizes.chartHeight,0],I=b.copy().domain([E,k]).range([this.chartSizes.chartHeight,i.innerOffset]);b.domain([I.invert(this.chartSizes.chartHeight),I.invert(0)]).range(P),this.scales.y[C]=b})}updateCaptionsSize(e,t){let n=new hc("600 14px Arial"),r=0;function a(i){return Math.max(...i.map(o=>n.getTextWidth(o)))}t.hiddenLabels||Object.values(this.scales.y).forEach(i=>{let{ticks:o,format:s}=T9(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=Kv(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]=Kv(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(_Z(A.aes.fillColor)&&n){let h=A.aes.fillColor.value,v=t[n.value],g=n.label??n.value,C=Qo().domain(v.values).range(v.values.map(b=>v.aesMap[b].fillColor));a.push({...i,id:h,type:"discreteColor",title:g,scale:C,values:v.values,labels:v.labels})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=C3(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+YC,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}updateMargins(e){let t=24*this.mainTitle.length,n=t>0?t+24*2:0,r=e.outerOffset;this.margins={top:Math.max(n,r),bottom:r,left:r,right:this.legend.width+r},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+this.chartSizes.chartsHeight+this.margins.bottom}render(e,t,n,r,a,i,o,s,c,f,A,h,v){var I;let{xAxis:g,yAxis:C,size:b,title:B}=t;this.updateChartSizes(b),this.updateViewport(r,n,g,C,i,b,A),this.updateCaptionsSize(g,C),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,g,C),this.createMainTitle(r,B),this.updateLegendSize(t.legend,o,f,s),this.updateMargins(b);let E=r.reduce(($,z)=>Math.min($,i[z].minX),1/0),k=r.reduce(($,z)=>Math.max($,i[z].maxX),-1/0),P=ie.jsx(Q9t,{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:X9t(c,"fillColor",[E,k]),groupingDirection:h,groupingStack:A,groupingLabels:f?o[f.value].labels:{},legend:this.legend,onTooltipHintSwitch:v});this.component=P,(I=this.reactRoot)==null||I.render(P)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Xv,{message:e}))}},Z9t=K9t,J9t=10,q9t=class{constructor(e){Be(this,"type","bins");Be(this,"aes",{fillColor:"white",lineColor:Vt,opacity:1});this.aes={...this.aes,...e.aes}}},e6t=class{constructor(e){Be(this,"type","binsLine");Be(this,"aes",{opacity:1});this.aes={...this.aes,...e.aes}}},TZ=class{constructor(e){Be(this,"id");Be(this,"type","histogram");Be(this,"valueColumn");Be(this,"binsCount");Be(this,"facetSettings");Be(this,"facetBy");Be(this,"grouping");Be(this,"groupingStack");Be(this,"groupingDirection");Be(this,"groupingOrder");Be(this,"chartSettings");Be(this,"inheritedAes");Be(this,"layers");var t,n,r,a,i,o,s,c,f,A,h;a4t.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??J9t,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)??H9t.TOP},title:{position:"center",show:!0,...e.title,name:((i=e.title)==null?void 0:i.name)??"Chart"},yAxis:{showGrid:!0,showTicks:!0,scale:((o=e.xAxis)==null?void 0:o.scale)??"linear",hiddenLabels:!1,...e.yAxis},xAxis:{title:e.valueColumn.label??e.valueColumn.value??"",scale:((s=e.xAxis)==null?void 0:s.scale)??"linear",showGrid:((c=e.xAxis)==null?void 0:c.showGrid)??!0,showTicks:((f=e.xAxis)==null?void 0:f.showTicks)??!0,hiddenLabels:((A=e.xAxis)==null?void 0:A.hiddenLabels)??!1,...e.xAxis},frame:{type:((h=e.frame)==null?void 0:h.type)??"full"},legend:{show:!0,position:"right",...e.legend}},this.inheritedAes=e.inheritedAes??{},this.layers=e.layers.map(v=>{if(v.type==="bins")return new q9t(v);if(v.type==="binsLine")return new e6t(v);d1(v,"Unknown layer type")}).filter(Boolean)}};function kZ(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 t6t(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 n6t=class extends zm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new Z9t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new TZ(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 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 histogram")}export(){return this._updateChart(),w5(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,o;return t.valueColumn.value!==n.valueColumn.value||t.facetBy.some((s,c)=>{var f;return s.value!==((f=n.facetBy[c])==null?void 0:f.value)})||((r=t.grouping)==null?void 0:r.value)!==((a=n.grouping)==null?void 0:a.value)||t.layers.length!==n.layers.length||t.layers.some((s,c)=>s.type!==n.layers[c].type)||t.binsCount!==n.binsCount||t.chartSettings.xAxis.scale!==n.chartSettings.xAxis.scale||((i=t.groupingOrder)==null?void 0:i.some((s,c)=>{var f;return s!==((f=n.groupingOrder)==null?void 0:f[c])}))||((o=n.groupingOrder)==null?void 0:o.some((s,c)=>{var f;return s!==((f=t.groupingOrder)==null?void 0:f[c])}))}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{valueColumn:t,facetBy:n,grouping:r,binsCount:a,chartSettings:i,inheritedAes:o,groupingOrder:s}=this.settings,c=n.map(C=>this.data.getColumnCategories(C.value)),f=c.length?kZ([...c]):[["null"]],A=n.map(C=>C.value)??null,h=r?[r.value]:[],v=r?this.data.getColumnCategories(r.value):["null"];s&&(v=Zn.intersection(s,v)),this.data.setGrouping([...A,...h]);let g=P9t(this.data,f,v,t,a,i.xAxis.scale);this.calculatedData={facetKeys:f.map(C=>C.join(", ")),facetKeysCombinations:f,histogramDataByFacets:g,legendInfo:t6t(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 r6t(e,t,n,r,a,i,o){let s={};return t.forEach(c=>{let f=[],A=1/0,h=1/0,v=-1/0,g=-1/0;o.forEach(C=>{e.getRowsByGrouping([...c,C]).forEach(b=>{let B=b[n.value],E=b[r.value];A=Math.min(A,B),h=Math.min(h,E),v=Math.max(v,B),g=Math.max(g,E),B!==null&&E!==null&&f.push({id:`${Object.values(b)}`,x:B,y:E,label:a?b[a.valueLabels??a.value]:null,dimmed:i?!b[i.value]:!1,data:b})})}),f.sort((C,b)=>C.x-b.x),s[c.join("_")]={minX:A,maxX:v,minY:h,maxY:g,dots:f}}),s}function a6t(e,t,n,r,a){return t.reduce((i,o)=>{let s=n[o].dots;return i[o]=e.map(c=>{if(c.type==="curve")return{type:"curve",info:c,geoms:r.map(f=>{let A=s.filter(v=>a.every((g,C)=>v.data[g.value]===f[C])),h=a.reduce((v,g,C)=>(v[g.value]=f[C],v),{});return{dots:A,data:h}})};if(c.type==="dots")return{type:"dots",info:c,geoms:s};d1(c,"Unknown scatterplot layer type")}),i},{})}function jM(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 MZ(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 i6t(e,t){return jM(e)-t}function o6t(e,t){return MZ(e)-t}function PZ(e){let t=jM(e),n=t+e.width,r=MZ(e),a=r+e.height;return{minX:t,maxX:n,minY:r,maxY:a}}function HZ(e,t,n){let r=i6t(e,n),a=jM(e)+e.width+n,i=o6t(e,t),o=i+e.height+2*t;return{minX:r,maxX:a,minY:i,maxY:o}}function l6t(e,t,n){return e.minX>=0&&e.maxX<=t&&e.minY>=0&&e.maxY<=n}var fS=2;function s6t(e,t=fS,n=fS){e.forEach(r=>{r.bbox=PZ(r),r.outerBBox=HZ(r,t,n)})}function dS(e,t,n,r=fS,a=fS){let i=[],o=new _dt,s=[["middle","right"],["top","right"],["bottom","right"],["middle","left"],["top","left"],["bottom","left"],["top","middle"],["bottom","middle"]];for(let c of e)for(let[f,A]of s){let h={...c,yPosition:f,xPosition:A};if(h.bbox=PZ(h),h.outerBBox=HZ(h,r,a),l6t(h.outerBBox,t,n)&&!o.collides(h.outerBBox)){i.push(h),o.insert(h.outerBBox);break}}return i}function u6t(e){return`translate(${e},0)`}function c6t(e){return`translate(0,${e})`}function f6t(e){return e==="bottom"?`translate(0,${zf})`:`translate(${-zf},0)`}function d6t(e){return e==="bottom"?"hanging":"central"}function A6t(e){return e==="bottom"?"middle":"end"}var AS=({scale:e,tickSize:t=6,tickPadding:n=zf,orient:r="bottom",onlyPositive:a=!1,offset:i=typeof window<"u"&&window.devicePixelRatio>1?0:.5})=>{function o(b){return B=>{let E=b(B);return E===void 0?0:+E}}let{ticks:s,format:c}=T9(e,a,r==="bottom"),f=Math.max(t,0)+n,A=o(e.copy()),h=r==="bottom"?u6t:c6t,v=r==="left"?-1:1,g={[(r==="left"?"x":"y")+"2"]:v*t},C={[r==="left"?"x":"y"]:v*f};return ie.jsx("g",{children:s.map((b,B)=>ie.jsxs("g",{className:"tick",transform:h(A(b)+i),children:[ie.jsx("line",{stroke:Vt,...g}),ie.jsx("g",{transform:f6t(r),children:ie.jsx("text",{fill:Vt,fontSize:"14px",fontWeight:"500",fontFamily:"Manrope",dominantBaseline:d6t(r),textAnchor:A6t(r),...C,children:c(b)})})]},B))})},h6t=1;function p6t({scaleX:e,scaleY:t,width:n,height:r,axisX:a,axisY:i,frameType:o,updatingKey:s=""}){let[c,f]=tn.useState(e.ticks()),[A,h]=tn.useState(t.ticks()),{significantLines:v=[]}=a,{significantLines:g=[]}=i;return tn.useEffect(()=>{let C=e.ticks().filter(B=>!v.includes(B)),b=t.ticks().filter(B=>!g.includes(B));f(C),h(b)},[e,t,s]),ie.jsxs("g",{stroke:Nf,children:[a.showGrid&&c.map(C=>{let b=e(C);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`x_${b}_${r}`)}),i.showGrid&&A.map(C=>{let b=t(C);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`y_${b}_${n}`)}),ie.jsx("g",{strokeDasharray:Of(a.significantLinesStyle),stroke:Vt,children:v.map(C=>{let b=e(C);return ie.jsx("line",{x1:b,x2:b,y1:0,y2:r},`significant_${b}_${r}`)})}),ie.jsx("g",{strokeDasharray:Of(i.significantLinesStyle),stroke:Vt,children:g.map(C=>{let b=t(C);return ie.jsx("line",{x1:0,x2:n,y1:b,y2:b},`significant_${b}_${n}`)})}),o!=="empty"&&ie.jsxs("g",{strokeWidth:h6t,children:[(a.showGrid||o!=="left")&&ie.jsx("line",{stroke:o==="left"?Nf:Vt,x1:"0",x2:n,y1:r,y2:r}),(a.showGrid||o!=="bottom")&&ie.jsx("line",{stroke:o==="bottom"?Nf:Vt,x1:"0",x2:"0",y1:"0",y2:r}),(a.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:n,x2:n,y1:"0",y2:r}),(i.showGrid||o==="full")&&ie.jsx("line",{stroke:o==="full"?Vt:Nf,x1:"0",x2:n,y1:"0",y2:"0"})]})]})}var v6t=new hc("16px Manrope");function DZ(e,t){return typeof e=="string"?e:t.length?t[0].data[e.value]:""}function m6t(e,t,n=[]){let r=e.data,a=[`x: ${Ka(e.x)}`,`y: ${Ka(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 g6t(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:` = ${Ka(e.r2)}`})]})}function y6t(e){return typeof e.pValue>"u"?null:ie.jsx("tspan",{children:`p-value = ${Ka(e.pValue)}`})}function w6t(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 = ${Ka(t)} ± ${Ka(n)}, intercept = ${Ka(r)} ± ${Ka(a)}`})})}function b6t(e){let t=[g6t(e),y6t(e),w6t(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 UM=3;function $Z(e,t,n,r){if(!r)return[];let a=[];for(let i of e){let o=i.label;if(!o)continue;let s=v6t.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)+UM})}return a}function C6t({facetKey:e,width:t,height:n,dimensions:r,scales:a,xAxis:i,yAxis:o,frameType:s,dotsData:c,facetSettings:f,trendsData:A,keyColumn:h,margins:v,chartSizes:g,tooltips:C,tooltipsContainer:b,captionsSizes:B,facetTitle:E,onlyPositive:k,layersData:P,aesGetters:I,tooltipsData:$}){let[z,O]=tn.useState(),{padding:K}=r,{dots:te}=c,le=i.showTicks?c3:0,G=o.showTicks?c3:0,Q=DZ(i.title,te),j=DZ(o.title,te),Y=r.chartEdgeSides.includes("left")||!(f!=null&&f.sharedY),X=r.chartEdgeSides.includes("bottom")||!(f!=null&&f.sharedX),ee=r.chartEdgeSides.includes("left"),pe=r.chartEdgeSides.includes("bottom"),ae={left:v.left+r.left+K.left,right:g.totalWidth-(v.left+r.left+K.left),top:v.top+r.top+K.top,bottom:g.totalHeight-(v.top+r.top+K.top)},ge=!1,[me,fe]=tn.useState(()=>$Z(te,a,I,P.find(Oe=>Oe.type==="dots"))),[Ce,De]=tn.useState(()=>dS(me,t,n,UM,UM)),[ke,$e]=tn.useState(null);tn.useEffect(()=>{fe($Z(te,a,I,P.find(Oe=>Oe.type==="dots")))},[te,a,I,P]),tn.useEffect(()=>{let Oe=dS(me,t,n);De(Oe)},[me,t,n]);let je=z&&$.fixed;return ie.jsxs("g",{transform:`translate(${r.left+K.left},${r.top+K.top})`,children:[ge,E.length&&ie.jsxs("g",{children:[s==="full"&&ie.jsx("rect",{x:"0",y:-K.top,height:K.top,width:t,fill:"#F7F8FA",stroke:Vt}),E.map((Oe,ft)=>{let ze=E.length,Xe=(K.top-xM*ze)/2;return ie.jsx("text",{fontSize:"14px",fontWeight:"500",fill:Vt,x:t/2,dy:Xe+xM/2-K.top,y:ft*xM,textAnchor:"middle",dominantBaseline:"central",children:Oe},ft)})]}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[pe&&ie.jsx("text",{x:t/2,y:n+K.bottom-Yv-g9/2,children:Q}),ge,ee&&ie.jsx("text",{x:-K.left+Yv+g9/2,y:n/2,transform:`rotate(-90,${-K.left+Yv+g9/2},${n/2})`,children:j}),ge]}),ie.jsx(p6t,{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(AS,{scale:a.x,orient:"bottom",onlyPositive:k.x,tickSize:le}),ge]}),Y&&ie.jsxs("g",{children:[ie.jsx(AS,{scale:a.y,orient:"left",onlyPositive:k.y,tickSize:G}),ge]}),A&&A.map(({predict:Oe,getArea:ft,color:ze,data:Xe,bounded:tt,xBounds:qe,stats:gt},wt)=>{let[Xt,rr]=tt?qe:a.x.domain(),sr=(rr-Xt)/15,ra=Oe(Xt),mi=Oe(rr);if(isNaN(ra)||isNaN(mi))return null;let ea=I.dotColor(ze,Xe);return ie.jsxs("g",{children:[ie.jsx("text",{y:wt*20+20,fill:ea,x:t-8,textAnchor:"end",children:b6t(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(mi),stroke:ea})]},wt)}),P.map((Oe,ft)=>{if(Oe.type==="dots")return ie.jsxs("g",{children:[te.map(ze=>{let Xe=je&&$.selectedData===ze,tt=ie.jsx("g",{transform:`translate(${a.x(ze.x)},${a.y(ze.y)})`,opacity:ze.dimmed?.3:1,onMouseOver:()=>$.onMouseOver(ze,e),onMouseLeave:()=>$.onMouseLeave(),children:Yc(I.dotShape(Oe.info.aes.dotShape,ze.data),I.dotSize(Oe.info.aes.dotSize,ze.data),I.dotColor(Oe.info.aes.dotFill,ze.data))},ze.id);return Xe?cu.createPortal(tt,z):tt}),Ce.map(ze=>{let{name:Xe,height:tt,bbox:qe,width:gt}=ze;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${qe.minX},${qe.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:gt,height:tt,fill:"transparent",stroke:"none",onMouseOver:()=>$e(ze.dot),onMouseLeave:()=>$e(null)}),ie.jsx("text",{x:0,y:tt/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:Xe})]})},ze.dot.id)}),ke&&ie.jsxs("g",{transform:`translate(${a.x(ke.x)},${a.y(ke.y)})`,children:[Yc(I.dotShape(Oe.info.aes.dotShape,ke.data),I.dotSize(Oe.info.aes.dotSize,ke.data)+1,"white","white"),Yc(I.dotShape(Oe.info.aes.dotShape,ke.data),I.dotSize(Oe.info.aes.dotSize,ke.data),I.dotColor(Oe.info.aes.dotFill,ke.data))]},"activeDot")]},ft);if(Oe.type==="curve"&&!Oe.info.smoothing)return Oe.geoms.map((ze,Xe)=>ie.jsx("g",{children:ie.jsx("polyline",{points:ze.dots.map(tt=>`${a.x(tt.x)},${a.y(tt.y)}`).join(" "),fill:"none",stroke:I.lineColor(Oe.info.aes.lineColor,ze.data),strokeWidth:Oe.info.aes.lineWidth,strokeDasharray:Of(Oe.info.aes.lineShape)})},Xe));if(Oe.type==="curve"&&Oe.info.smoothing)return Oe.geoms.map((ze,Xe)=>ie.jsx("g",{children:ie.jsx("path",{d:b5().curve(C5).x(tt=>a.x(tt.x)).y(tt=>a.y(tt.y))(ze.dots)??"",fill:"none",stroke:I.lineColor(Oe.info.aes.lineColor,ze.data),strokeWidth:Oe.info.aes.lineWidth,strokeDasharray:Of(Oe.info.aes.lineShape)})},Xe))}),C.show&&$.selectedData&&$.currentFacet===e&&ie.jsx(fu,{content:m6t($.selectedData,h,C==null?void 0:C.content),x:a.x($.selectedData.x),y:a.y($.selectedData.y),active:!0,sideDistances:ae,fixed:$.fixed,onClose:$.onClose,container:b}),ie.jsxs("g",{children:[$.fixed&&ie.jsx("rect",{width:g.chartWidth,height:g.chartHeight,fill:"rgba(255, 255, 255, 0.8)"}),ie.jsx("g",{ref:Oe=>{Oe&&!z&&O(Oe)}})]})]})}function S6t({settingsId:e,chartSettings:t,chartSizes:n,chartsDimensions:r,facetKeys:a,facetSettings:i,scales:o,groupedDots:s,legendData:c,trendsData:f,columnsCount:A,margins:h,keyColumn:v,mainTitle:g,facetTitles:C,captionsSizes:b,onlyPositive:B,layersData:E,aesGetters:k,onTooltipHintSwitch:P}){let I=h3(P),[$,z]=tn.useState(),O=tn.useRef(null);tn.useEffect(()=>{O.current&&z(O.current)},[]);let{xAxis:K,yAxis:te,title:le,frame:G,legend:Q,tooltips:j}=t,Y=r[a[0]].padding,X=r[a[A-1]].padding,ee=n.chartsWidth+YC,pe=Y.top;return ie.jsx(g3,{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:Qm}),ie.jsxs("g",{transform:`translate(${h.left},${h.top})`,fontFamily:"Manrope",children:[ie.jsx(y3,{title:g,show:le.show,position:le.position,leftPadding:Y.left,rightPadding:X.right,chartsWidth:n.chartsWidth}),a.map(ae=>ie.jsx(C6t,{facetKey:ae,scales:{x:o.x[ae],y:o.y[ae]},width:n.chartWidth,height:n.chartHeight,dimensions:r[ae],margins:h,chartSizes:n,facetSettings:i,xAxis:K,yAxis:te,frameType:G.type,dotsData:s[ae],trendsData:f?f[ae]:null,tooltips:j,tooltipsContainer:$,keyColumn:v,facetTitle:C[ae],captionsSizes:b,layersData:E[ae],onlyPositive:B,aesGetters:k,tooltipsData:I},ae)),Q.show&&ie.jsx("g",{transform:`translate(${ee},${pe})`,children:ie.jsx(w3,{legendData:c})})]}),ie.jsx("g",{ref:O,style:{outline:"none"}})]})})}function x6t(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 E6t(e,t,n,r,a,i,o){let s=i.includes("left")||!(o!=null&&o.sharedY),c=i.includes("left")&&t.title!=="",f=i.includes("bottom")||!(o!=null&&o.sharedX),A=i.includes("bottom")&&e.title!=="",h=n.yAxisCaptionsWidth+2*EM,v=(t.showTicks?c3:0)+EM,g=c?g9+Yv:0,C=n.xAxisCaptionsWidth+2*EM,b=e.showTicks?c3:0,B=A?g9+Yv:0,E=h+v+g+ZX,k=C+b+B+ZX,P=Math.max(...r.map(I=>a[I].length));return{left:s?E:Yv,top:P===0?0:u3t*2+P*x9,bottom:f?k+8:Yv,right:Yv}}function B6t(e,t,n){let r=[];for(let a=0;a<t;a++)r.push(e.slice(a*n,a*n+n));return r}function _6t(e,t){let n=Math.floor(e/t),r=e-n*t;return[n,r]}function T6t(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function k3(e,t){return function(n,r){var a,i;if(oh(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=cv().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}if(oh(n)&&(t==="dotFill"||t==="lineColor")){let{domain:o,range:s,type:c="linear"}=n,f=k9(s,o,c),A=r[n.columnName.value];return A===null?Gv.color:f(Number(A))}if(T6t(n)){let o=n.value;return(i=((a=e[o])==null?void 0:a[String(r[o])])??m9)==null?void 0:i[t]}return n}}function k6t(e){return{dotShape:k3(e,"dotShape"),dotColor:k3(e,"dotFill"),dotSize:k3(e,"dotSize"),lineShape:k3(e,"lineShape"),lineColor:k3(e,"lineColor"),trendColor:k3(e,"dotFill")}}var M6t=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=Wh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateChartDimensions(e,t,n,r){let{chartWidth:a,chartHeight:i}=this.chartSizes,o=0,s=0;this.chartsDimensions=e.reduce((A,h,v)=>{let[g,C]=_6t(v,this.columnsCount),b=x6t(v,e.length,this.columnsCount,this.rowsCount),B=E6t(n,r,this.captionsSizes,B6t(e,this.rowsCount,this.columnsCount)[g],this.facetTitles,b,t),E=a+B.left+B.right,k=i+B.top+B.bottom;return A[h]={left:o,top:s,chartEdgeSides:b,padding:B,inner:{width:a,height:i},outer:{width:E,height:k}},o+=E,C===this.columnsCount-1&&(o=0,s+=k),A},{});let c=Math.max(...e.map(A=>this.chartsDimensions[A].outer.width+this.chartsDimensions[A].left)),f=Math.max(...e.map(A=>this.chartsDimensions[A].outer.height+this.chartsDimensions[A].top));this.chartSizes.chartsWidth=c,this.chartSizes.chartsHeight=f}updateViewport(e,t,n,r,a,i){let o=e.length,s=Math.min(t.nRows??o,o),c=Math.min(t.nCols??o,o);this.columnsCount=t.nRows?Math.ceil(o/s):c,this.rowsCount=Math.ceil(o/this.columnsCount);let[f,A]=[1/0,-1/0],[h,v]=[1/0,-1/0],g=e.reduce((b,B)=>{let E=a[B],{minX:k,minY:P,maxX:I,maxY:$}=E;return f=Math.min(f,k),h=Math.min(h,P),A=Math.max(A,I),v=Math.max(v,$),b[B]={minX:k,maxX:I,minY:P,maxY:$},b},{});e.forEach(b=>{let B=n.scale==="log"?X2():Zr(),E=g[b],k=n.lowerValue?Number(n.lowerValue):t.sharedX?f:E.minX,P=n.upperValue?Number(n.upperValue):t.sharedX?A:E.maxX;if(typeof n.symmetricRange<"u"){let z=n.symmetricRange;if(z>=k&&z<=P){let O=Math.max(z-k,P-z);k=z-O,P=z+O}}let I=[0,this.chartSizes.chartWidth],$=B.copy().domain([k,P]).range([GC.LEFT,this.chartSizes.chartWidth-GC.RIGHT]);B.domain([$.invert(0),$.invert(this.chartSizes.chartWidth)]).range(I).nice(),this.scales.x[b]=B});let C=e.reduce((b,B)=>{let E=i?i[B]:[];return b[B]=E.reduce((k,P)=>{let I=P.bounded?P.xBounds:this.scales.x[B].domain(),$=P.getInterval(I[0]),z=P.getInterval(I[1]);return k.minY=Math.min(k.minY,isNaN($.left)?k.minY:$.left,isNaN(z.left)?k.minY:z.left),k.maxY=Math.max(k.maxY,isNaN($.right)?k.maxY:$.right,isNaN(z.right)?k.maxY:z.right),k},{minY:1/0,maxY:-1/0}),h=Math.min(h,b[B].minY),v=Math.max(v,b[B].maxY),b},{});e.forEach(b=>{let B=r.scale==="log"?X2():Zr(),E=g[b],k=C[b],P=r.lowerValue?Number(r.lowerValue):t.sharedY?h:Math.min(E.minY,k.minY),I=r.upperValue?Number(r.upperValue):t.sharedY?v:Math.max(E.maxY,k.maxY);if(typeof r.symmetricRange<"u"){let O=r.symmetricRange;if(O>=P&&O<=I){let K=Math.max(O-P,I-O);P=O-K,I=O+K}}let $=[this.chartSizes.chartHeight,0],z=B.copy().domain([P,I]).range([this.chartSizes.chartHeight-GC.BOTTOM,GC.TOP]);B.domain([z.invert(this.chartSizes.chartHeight),z.invert(0)]).range($).nice(),this.scales.y[b]=B})}updateCaptionsSize(e){let t=new hc("600 14px Arial"),n=0;function r(a){return Math.max(...a.map(i=>t.getTextWidth(i)))}Object.values(this.scales.y).forEach(a=>{let{ticks:i,format:o}=T9(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=Kv(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]=Kv(t[a].join(", "),this.chartSizes.chartWidth,14),n),{})}updateMargins(){let e=24*this.mainTitle.length,t=e>0?e+24*2:0;this.margins={top:Math.max(t,Gc),bottom:Gc,left:Gc,right:this.legend.width+Gc},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartsWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartsHeight,this.legend.height)+this.margins.bottom}updateLegendSize(e,t,n,r){if(!e.show){this.legend={width:0,height:0,items:[]};return}let a=[],i={width:0,height:0,left:0,top:0};if(n.forEach(A=>{let h=t[A.value];if(h.usedAes.length===0||!h.aesMap)return;if(h.values.length>100){console.warn(`Too many values for discrete legend (${h.values.length})`);return}let v={};h.values.forEach(b=>{v[b]||(v[b]={...Gv}),h.usedAes.forEach(B=>{var E,k,P;(B==="dotFill"||B==="lineColor")&&(v[b].color=((E=h.aesMap[b])==null?void 0:E[B])??Vt),B==="dotShape"&&(v[b].shape=((k=h.aesMap[b])==null?void 0:k[B])??"21"),B==="dotSize"&&(v[b].size=((P=h.aesMap[b])==null?void 0:P[B])??3)})});let g=A.label??A.value,C=Qo().domain(h.values).range(h.values.map(b=>v[b])).unknown(Gv);a.push({...i,id:A.value,type:"dots",title:g,scale:C,values:h.values,labels:h.labels})}),r.forEach(A=>{if(A.type==="dots"&&oh(A.aes.dotFill)){let{domain:h,range:v,columnName:g,type:C="linear"}=A.aes.dotFill,b=g.label??g.value,B=k9(v,h,"linear"),E=(C==="log"?uv():Zr()).domain(h).range([this.chartSizes.chartHeight,0]),k=A3(E,h);a.push({...i,id:"dotFill",type:"continuous",title:b,scale:B,tickPositionScale:E,values:k})}if(A.type==="dots"&&oh(A.aes.dotSize)){let{columnName:h,domain:v,range:g}=A.aes.dotSize,C=h.label??h.value,b=cv(v,g),B=b.ticks(3),E=b.tickFormat(3),k=B.reduce((P,I)=>(P[String(I)]=E(I),P),{});a.push({...i,id:h.value,type:"size",title:C,scale:b,values:B,labels:k})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=C3(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+YC,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}render(e,t,n,r,a,i,o,s,c,f,A,h,v,g,C){var $;let{xAxis:b,yAxis:B,size:E,title:k,legend:P}=t;this.updateChartSizes(E),this.updateViewport(r,n,b,B,i,o),this.updateCaptionsSize(c.y),this.createFacetTitles(r,a),this.updateChartDimensions(r,n,b,B),this.updateLegendSize(P,f,v,g),this.createMainTitle(r,k),this.updateMargins();let I=ie.jsx(S6t,{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:k6t(h),onTooltipHintSwitch:C});this.component=I,($=this.reactRoot)==null||$.render(I)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Xv,{message:e}))}},P6t=M6t,H6t=class{constructor(e){Be(this,"type","dots");Be(this,"aes",{dotFill:Vt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},D6t=class{constructor(e){Be(this,"type","curve");Be(this,"smoothing");Be(this,"aes",{lineColor:Vt,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},IZ=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;Q3t.parse(e),this.id=Zn.uniqueId("settings"),this.keyColumn=e.keyColumn,this.facetSettings={sharedX:!0,sharedY:!0,titlePosition:"left",...e.facetSettings},this.x=e.x,this.y=e.y,this.facetBy=e.facetBy??[],this.grouping=e.grouping??[],this.label=e.label??null,this.highlight=e.highlight??null,this.chartSettings={size:{width:((t=e==null?void 0:e.size)==null?void 0:t.width)??(this.facetBy.length?400:600),height:((n=e==null?void 0:e.size)==null?void 0:n.height)??(this.facetBy.length?250:350)},title:{position:"center",show:!0,...e.title,name:((r=e.title)==null?void 0:r.name)??"Chart"},yAxis:{title:e.y.label??e.y.value,scale:"linear",showGrid:!0,showTicks:!0,...e.yAxis},xAxis:{title:e.x.label??e.x.value,scale:"linear",showGrid:!0,showTicks:!0,...e.xAxis},frame:{type:((a=e.frame)==null?void 0:a.type)??"full"},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.inheritedAes=e.inheritedAes??{},this.trend=e!=null&&e.trend?{bounded:e.trend.bounded??!1,color:e.trend.color??Vt}:null,this.layers=e.layers.map(i=>{if(i.type==="dots")return new H6t(i);if(i.type==="curve")return new D6t(i);d1(i,"Unknown layer type")}).filter(Boolean)}},$6t=tpt(J5t()),LZ=.05;function I6t(e){let t=3.3871328727963665,n=133.14166789178438,r=1971.5909503065513,a=13731.69376550946,i=45921.95393154987,o=67265.7709270087,s=33430.57558358813,c=2509.0809287301227,f=42.31333070160091,A=687.1870074920579,h=5394.196021424751,v=21213.794301586597,g=39307.89580009271,C=28729.085735721943,b=5226.495278852854,B=1.4234371107496835,E=4.630337846156546,k=5.769497221460691,P=3.6478483247632045,I=1.2704582524523684,$=.2417807251774506,z=.022723844989269184,O=.0007745450142783414,K=2.053191626637759,te=1.6763848301838038,le=.6897673349851,G=.14810397642748008,Q=.015198666563616457,j=.0005475938084995345,Y=10507500716444169e-25,X=6.657904643501103,ee=5.463784911164114,pe=1.7848265399172913,ae=.29656057182850487,ge=.026532189526576124,me=.0012426609473880784,fe=27115555687434876e-21,Ce=20103343992922881e-23,De=.599832206555888,ke=.1369298809227358,$e=.014875361290850615,je=.0007868691311456133,Oe=18463183175100548e-21,ft=1421511758316446e-22,ze=20442631033899397e-31,Xe=e-.5,tt,qe;return Math.abs(Xe)<=.425?(tt=.180625-Xe*Xe,qe=Xe*(((((((c*tt+s)*tt+o)*tt+i)*tt+a)*tt+r)*tt+n)*tt+t)/(((((((b*tt+C)*tt+g)*tt+v)*tt+h)*tt+A)*tt+f)*tt+1),qe):(tt=e,tt=Math.sqrt(-Math.log(tt)),tt<=5?(tt+=-1.6,qe=(((((((O*tt+z)*tt+$)*tt+I)*tt+P)*tt+k)*tt+E)*tt+B)/(((((((Y*tt+j)*tt+Q)*tt+G)*tt+le)*tt+te)*tt+K)*tt+1)):(tt+=-5,qe=(((((((Ce*tt+fe)*tt+me)*tt+ge)*tt+ae)*tt+pe)*tt+ee)*tt+X)/(((((((ze*tt+ft)*tt+Oe)*tt+je)*tt+$e)*tt+ke)*tt+De)*tt+1)),qe=-qe,qe)}function RZ(e,t){let{sin:n,cos:r,sqrt:a,pow:i,exp:o,PI:s}=Math,c,f;if(t==1)return r(e*s/2)/n(e*s/2);if(t==2)return a(2/(e*(2-e))-2);let A=1/(t-.5),h=48/(A*A),v=((20700*A/h-98)*A-16)*A+96.36,g=((94.5/(h+v)-3)/h+1)*a(A*s*.5)*t;return c=g*e,f=i(c,2/t),f>.05+A?(c=I6t(e/2),f=c*c,t<5&&(v=v+.3*(t-4.5)*(c+.6)),v=(((.05*g*c-5)*c-7)*c-2)*c+h+v,f=(((((.4*f+6.3)*f+36)*f+94.5)/v-f-3)/h+1)*c,f=A*f*f,f>.002?f=o(f)-1:f=.5*f*f+f):f=((1/(((t+6)/(t*f)-.089*g-.822)*(t+2)*3)+.5/(t+4))*f-1)*(t+1)/(t+2)+1/f,a(t*f)}function L6t(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 R6t(e,t,n){let r=A=>A*t+n,a=e.length,i=lc(e,A=>A.x)/e.length,o=RZ(LZ,a-2),s=Math.sqrt(lc(e,A=>(A.y-r(A.x))**2)/(a-2)/lc(e,A=>(A.x-i)**2)),c=s*o,f=s*Math.sqrt(lc(e,A=>A.x**2)/a)*o;return{slope:t,intercept:n,slopeError:c,interceptError:f}}function V6t(e,t){let n=lc(e,s=>s.x)/e.length,r=0,a=0;for(let s=0;s<e.length;++s)r+=Math.pow(e[s].x-n,2),a+=Math.pow(e[s].y-t(e[s].x),2);let i=Math.sqrt(a/(e.length-2)),o=RZ(LZ,e.length-2);return function(s){let c=t(s),f=i*Math.sqrt(1/e.length+Math.pow(s-n,2)/r),A=c-o*f,h=c+o*f;return{x:s,y:c,left:isNaN(A)?c:A,right:isNaN(h)?c:h}}}function N6t(e){let t=e.length;return Math.pow((t*lc(e,n=>n.x*n.y)-lc(e,n=>n.x)*lc(e,n=>n.y))/(Math.sqrt(t*lc(e,n=>n.x*n.x)-Math.pow(lc(e,n=>n.x),2))*Math.sqrt(t*lc(e,n=>n.y*n.y)-Math.pow(lc(e,n=>n.y),2))),2)}function z6t(e,t){let n=Vs(e,t);return Vs(e.map(r=>(t(r)-n)**2))}function VZ(e,t){return Math.sqrt(z6t(e,t))}function O6t(e,t,n){let r=Vs(e,t),a=Vs(e,n),i=e.length;return lc(e,o=>(o.x-r)*(o.y-a))/i}function F6t(e){let t=O6t(e,a=>a.x,a=>a.y),n=VZ(e,a=>a.x),r=VZ(e,a=>a.y);return t/(n*r)}function Q6t(e,t){let n=e.length,r=1,a=1,i=n-r-1,o=Vs(e,v=>v.y),s=lc(e,v=>(t(v.x)-o)**2),c=lc(e,v=>(t(v.x)-v.y)**2),f=s/a,A=c/i,h=f/A;return 1-(0,$6t.default)(h,a,i)}function j6t(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(B=>r.every((E,k)=>String(B.data[E.value])===c[k])),[A=0,h=0]=H0(f,B=>B.x),[v,g]=L6t(f),C=B=>v*B+g,b=V6t(f,C);return{predict:C,getInterval:b,getArea:(B,E,k)=>XB().x(P=>B(P.x)).y0(P=>E(P.left)).y1(P=>E(P.right))(k.map(b))??"",color:a.color,bounded:a.bounded,data:f[0].data,showStats:!0,xBounds:[A,h],stats:{r2:N6t(f),r:F6t(f),pValue:Q6t(f,C),coefficients:R6t(f,v,g)}}}),i},{}):null}function NZ(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 zZ(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function U6t(e,t,n,r){return t.reduce((a,i)=>{let o=h=>String(h[i.value]),s=h=>i.valueLabels?String(h[i.valueLabels]):o(h),c=new Set;n.forEach(h=>{h.aes&&Object.entries(h.aes).forEach(([v,g])=>{zZ(g)&&g.value===i.value&&c.add(v)})});let f={},A=[];if(c.has("dotFill")){let h=e.getColumnCategories(i.value);if(h.length>100)A=h,f={};else{let v=Zn.uniqBy(e.rows,g=>g[i.value]);f=v.reduce((g,C)=>(g[o(C)]=s(C),g),{}),A=v.map(o).sort((g,C)=>f[g].localeCompare(f[C],"en",{numeric:!0}))}}return a[i.value]={values:A,usedAes:[...c],aesMap:r[i.value],labels:f},a},{})}var G6t=class extends zm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new P6t);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new IZ(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 IZ(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(),w5(this.chartRenderer.component)}_needUpdateCalculatedDataBySettings(t,n){var r,a,i,o;return t.facetBy.some((s,c)=>{var f;return s.value!==((f=n.facetBy[c])==null?void 0:f.value)})||t.grouping.length!==n.grouping.length||t.grouping.some((s,c)=>{var f;return s.value!==((f=n.grouping[c])==null?void 0:f.value)})||(((r=t.label)==null?void 0:r.value)||((a=n.label)==null?void 0:a.value))&&((i=t.label)==null?void 0:i.value)!==((o=n.label)==null?void 0:o.value)||t.layers.length!==n.layers.length||t.layers.some((s,c)=>s.type!==n.layers[c].type)||!!t.trend!=!!n.trend}_needUpdateCalculatedDataByData(t,n){let r=Object.keys(t.data),a=Object.keys(n.data);return t.id!==n.id||r.length!==a.length||r.some(i=>{var o;return t.data[i].length!==((o=n.data[i])==null?void 0:o.length)})}_updateData(){let{x:t,y:n,facetBy:r,grouping:a,keyColumn:i,trend:o,layers:s,inheritedAes:c,label:f,highlight:A}=this.settings,h=this.data.getColumnCategories(i.value),v=r.map(O=>this.data.getColumnCategories(O.value)),g=a.map(O=>this.data.getColumnCategories(O.value)),C=v.length?NZ([...v]):[["null"]],b=g.length?NZ([...g]):[["null"]],B=r.map(O=>O.value)??null;this.data.setGrouping([...B,i.value]);let E={x:this.data.rows.every(O=>{let K=O[t.value];return K===null||!(Number(K)<0)}),y:this.data.rows.every(O=>{let K=O[n.value];return K===null||!(Number(K)<0)})},k=r6t(this.data,C,t,n,f,A,h),P=Object.keys(k),I=j6t(k,P,b,a,o),$=U6t(this.data,a,s,c),z=a6t(s,P,k,b,a);this.calculatedData={onlyPositive:E,dotsByFacets:k,facetKeys:P,facetKeysCombinations:C,trendsData:I,legendLabels:$,layersData:z}}_updateAesInData(){let t=this.calculatedData;if(!t)return;let{grouping:n,trend:r,layers:a,inheritedAes:i}=this.settings,{facetKeys:o,trendsData:s}=t;o.forEach(c=>{for(let f=0;f<a.length;f++)t.layersData[c][f].info=a[f]}),n.forEach(c=>{let f=new Set;a.forEach(A=>{A.aes&&Object.entries(A.aes).forEach(([h,v])=>{zZ(v)&&v.value===c.value&&f.add(h)})}),t.legendLabels[c.value].usedAes=[...f],t.legendLabels[c.value].aesMap=i[c.value]}),s&&r&&Object.keys(s).forEach(c=>{s[c].forEach(f=>{f.color=r.color,f.bounded=r.bounded})})}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,facetSettings:r,grouping:a,keyColumn:i,inheritedAes:o,layers:s}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.facetKeys,this.calculatedData.facetKeysCombinations,this.calculatedData.dotsByFacets,this.calculatedData.trendsData,i,this.calculatedData.onlyPositive,this.calculatedData.legendLabels,this.calculatedData.layersData,o,a,s,this.onTooltipHintSwitch)}},hS={TOP:30,BOTTOM:30,LEFT:30,RIGHT:30},M9=20,OZ=4,FZ=24;function Y6t(e,t,n=[]){let r=e.data,a=[`x: ${Ka(e.x)}`,`y: ${Ka(e.y)}`];t!=null&&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 QZ(e){return typeof e=="string"?e:e.label??e.value}var jZ=b5().curve(C5);function W6t({scales:e,chartSettings:t,mainTitle:n,keyColumn:r,margins:a,chartSizes:i,onlyPositive:o,container:s,zoomStateKey:c,legendData:f,dotsByGrouping:A,layers:h,aesGetters:v,tooltipData:g}){var Q;let{title:C,xAxis:b,yAxis:B,frame:E,legend:k}=t,P=b.showTicks?OZ:0,I=B.showTicks?OZ:0,$=b.title,z=B.title,O={left:0,right:i.chartWidth,top:0,bottom:i.chartHeight};if(!s)return null;let K=h.find(j=>j.type==="curve"),[te,le]=tn.useState([]);function G(){let j=Object.entries(A).map(([Y,X])=>({key:Y,d:K!=null&&K.smoothing?jZ(X)??"":X.map(ee=>`${e.x(ee.x)},${e.y(ee.y)}`).join(" "),dot:X[0]}));le(j)}return tn.useEffect(()=>{K&&(jZ.x(j=>e.x(j.x)).y(j=>e.y(j.y)),G())},[c]),tn.useEffect(()=>{K&&G()},[K==null?void 0:K.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:Qm}),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(y3,{title:n,show:C.show,position:C.position,leftPadding:a.left,rightPadding:a.right,chartsWidth:i.chartWidth}),ie.jsxs("g",{dominantBaseline:"central",textAnchor:"middle",fontWeight:"500",fontSize:"14px",fill:Vt,children:[$&&ie.jsx("text",{x:i.chartWidth/2,y:i.chartHeight+a.bottom-M9/2,children:QZ($)}),z&&ie.jsx("text",{x:-a.left+M9/2,y:i.chartHeight/2,transform:`rotate(-90,${-a.left+M9/2},${i.chartHeight/2})`,children:QZ(z)})]}),ie.jsx(xZ,{width:i.chartWidth,height:i.chartHeight,scaleX:e.x,scaleY:e.y,axisX:b,axisY:B,updatingKey:c,frameType:E.type}),ie.jsx("g",{transform:`translate(0,${i.chartHeight})`,children:ie.jsx(AS,{scale:e.x,orient:"bottom",onlyPositive:o.x,tickSize:P})}),ie.jsx("g",{children:ie.jsx(AS,{scale:e.y,orient:"left",onlyPositive:o.y,tickSize:I})}),K&&K.smoothing&&ie.jsx("g",{clipPath:"url(#viewportClipPath)",children:te.map(({key:j,d:Y,dot:X})=>{var ee;return ie.jsx("path",{d:Y,fill:"none",stroke:v.dotFill(X.data),strokeWidth:(ee=K.aes)==null?void 0:ee.lineWidth,strokeDasharray:v.lineType(X.data)},j)})}),K&&!K.smoothing&&ie.jsx("g",{clipPath:"url(#viewportClipPath)",children:te.map(({key:j,d:Y,dot:X})=>{var ee;return ie.jsx("polyline",{points:Y,fill:"none",stroke:v.dotFill(X.data),strokeWidth:(ee=K.aes)==null?void 0:ee.lineWidth,strokeDasharray:v.lineType(X.data)},j)})}),g.selectedData&&ie.jsx(fu,{content:Y6t(g.selectedData,r,(Q=t.tooltips)==null?void 0:Q.content),x:e.x(g.selectedData.x),y:e.y(g.selectedData.y),active:!0,fixed:g.fixed,sideDistances:O,container:s,onClose:g.onClose}),k.show&&ie.jsx("g",{transform:`translate(${i.chartWidth+FZ},0)`,children:ie.jsx(w3,{legendData:f})})]})]})}var X6t=T8.memo(W6t),K6t=20;function Z6t({scales:e,chartSizes:t,disabled:n,onPolygonUpdate:r}){let[a,i]=tn.useState([]),[o,s]=tn.useState(null),[c,f]=tn.useState(null),A=tn.useRef(null),h=tn.useRef(null),v=tn.useRef(null),g=tn.useRef(a);function C(){A.current=null,h.current=null,v.current=null,g.current=[],i([]),s(null)}function b(k){n||k.key!=="Escape"||C()}tn.useEffect(()=>{n&&(A.current=null,h.current=null,v.current=null,s(null))},[n]),tn.useEffect(()=>(document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)),[]),tn.useEffect(()=>{if(o&&c)return;if(a.length===0){r([]);return}let k=a.map(P=>P[0]);k.push(a[a.length-1][1]),r(k)},[a]);function B(){if(!A.current||n)return;let k=[...A.current],P=e.x.invert(k[0]),I=e.y.invert(k[1]),$=g.current,z=v.current,O=h.current&&$.length>1?Math.sqrt((k[0]-h.current[0])**2+(k[1]-h.current[1])**2):1/0;v.current?v.current&&O>K6t?($=[...$,[v.current,[P,I]]],z=[P,I]):($=[...$,[v.current,[P,I]]],$.length>2&&($=[...$,[$[$.length-1][1],$[0][0]]]),z=null,$.length<=2?r([]):r($.map(K=>K[0])),h.current=null):(h.current=k,$=[],z=[P,I],r([])),i($),s(z),g.current=$,v.current=z}function E(k){let P=[k.nativeEvent.offsetX,k.nativeEvent.offsetY];f(P),A.current=P}return ie.jsxs("g",{children:[ie.jsx("rect",{fill:"transparent",width:t.chartWidth,height:t.chartHeight,onMouseMove:E,onClick:B}),a.map(([k,P],I)=>ie.jsx("line",{x1:e.x(k[0]),y1:e.y(k[1]),x2:e.x(P[0]),y2:e.y(P[1]),stroke:Vt,style:{pointerEvents:"none"}},I)),o&&c&&ie.jsx("line",{x1:e.x(o[0]),y1:e.y(o[1]),x2:c[0],y2:c[1],stroke:Vt,style:{pointerEvents:"none"}},"lastLine")]})}function J6t({scales:e,container:t,labels:n,aesGetters:r,chartSizes:a,onPolygonUpdate:i,lassoMode:o,tooltipData:s}){return t?ie.jsxs("g",{children:[n.map(c=>{let{name:f,height:A,bbox:h,width:v}=c;return ie.jsx("g",{children:ie.jsxs("g",{transform:`translate(${h.minX},${h.minY})`,children:[ie.jsx("rect",{x:"0",y:"0",width:v,height:A,fill:"transparent",stroke:"none"}),ie.jsx("text",{x:0,y:A/2,stroke:"white",strokeWidth:2,paintOrder:"stroke",style:{pointerEvents:"none"},fontFamily:"Manrope",fontSize:"16px",dominantBaseline:"middle",children:f})]})},c.dot.id)}),ie.jsx(Z6t,{scales:e,chartSizes:a,disabled:!o,onPolygonUpdate:i}),s.fixed&&ie.jsx("rect",{width:a.chartWidth,height:a.chartHeight,fill:"rgba(255,255,255,0.8)"}),s.selectedData&&ie.jsx("circle",{cx:e.x(s.selectedData.x),cy:e.y(s.selectedData.y),r:Math.max(r.dotSize(s.selectedData.data)*1.2,5),fill:r.dotFill(s.selectedData.data)})]}):null}var q6t=J6t;function ewt({settingsId:e,scales:t,chartSettings:n,mainTitle:r,keyColumn:a,margins:i,chartSizes:o,captionsSizes:s,onlyPositive:c,container:f,zoomStateKey:A,aesGetters:h,legendData:v,labels:g,onPolygonUpdate:C,onTooltipHintSwitch:b,lassoMode:B,dotsByGrouping:E,layers:k,selectedDot:P=null}){if(!f)return null;let I=h3(b);return tn.useEffect(()=>{P?I.onMouseOver(P):I.onMouseLeave()},[P]),ie.jsx("div",{children:ie.jsxs(g3,{dataId:e,children:[ie.jsx(X6t,{aesGetters:h,dotsByGrouping:E,layers:k,scales:t,keyColumn:a,margins:i,mainTitle:r,captionsSizes:s,chartSettings:n,chartSizes:o,onlyPositive:c,container:f,zoomStateKey:A,legendData:v,tooltipData:I}),cu.createPortal(ie.jsx(q6t,{scales:t,container:f,aesGetters:h,labels:g,chartSizes:o,selectedDot:P,onPolygonUpdate:C,lassoMode:B,tooltipData:I}),f)]})})}var UZ=e=>e.selection()!==e,GZ=(e,t)=>{e=e||"g";let n=(i,o)=>o,r=null,a=function(i,o){o=o||(g=>g);let s=i.selection(),c=UZ(i)?i:null,f=s.selectChildren(t==null?e:`${e}.${t}`).data(o,n),A=f.enter().append(e).attr("class",t),h=f.exit();f=f.merge(A);let v=c||r;return v&&(f=f.transition(v).style("opacity",1),A.style("opacity",1e-6),h=h.transition(v).style("opacity",1e-6)),h.remove(),f.enter=()=>A,f.exit=()=>h,f};return a.element=(...i)=>i.length?(e=i[0],a):e,a.className=(...i)=>i.length?(t=i[0],a):t,a.key=(...i)=>i.length?(n=i[0],a):n,a.transition=(...i)=>i.length?(r=i[0],a):r,a},YZ=(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}},WZ=(e,t,...n)=>{for(let r of n)e[r]=YZ(e,t,r);return e},twt=e=>t=>e.reduce((n,r)=>n&&r(n),t),GM=(e,t,...n)=>{let r=twt(n);for(let a of Object.keys(t)){let i=r(a);i&&(e[i]=YZ(e,t,a))}return e},nwt=e=>e.map(t=>typeof t=="string"?new RegExp(`^${t}$`):t),rwt=(...e)=>(e=nwt(e),t=>e.every(n=>!n.test(t))&&t),M3=e=>typeof e=="function"?e:()=>e;function awt(){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 iwt=(e,t)=>{switch(e){case"left":return t/2;case"right":return-t/2;default:return 0}},XZ=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},owt=()=>{let e=()=>0,t=s=>s.x,n=s=>s.y,r="center",a=()=>5,i="vertical",o=XZ({decorate:()=>{},defined:(s,c)=>awt(e,t,n)(s,c),xScale:sv(),yScale:sv()});return o.values=(s,c)=>{let f=a(s,c),A=iwt(r,f),h=o.xScale(),v=o.yScale();if(i==="vertical"){let g=v(n(s,c),c),C=v(e(s,c),c),b=h(t(s,c),c)+A;return{d:s,x:b,y:g,y0:C,width:f,height:g-C,origin:[b,g],baseOrigin:[b,C],transposedX:b,transposedY:g}}else{let g=h(n(s,c),c),C=h(e(s,c),c),b=v(t(s,c),c)+A;return{d:s,x:b,y:g,y0:C,width:f,height:g-C,origin:[g,b],baseOrigin:[C,b],transposedX:g,transposedY:b}}},o.xValues=()=>i==="vertical"?[t]:[e,n],o.yValues=()=>i!=="vertical"?[t]:[e,n],o.baseValue=(...s)=>s.length?(e=M3(s[0]),o):e,o.crossValue=(...s)=>s.length?(t=M3(s[0]),o):t,o.mainValue=(...s)=>s.length?(n=M3(s[0]),o):n,o.bandwidth=(...s)=>s.length?(a=M3(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},lwt=()=>{let e=owt(),t=M3(64),n=AN,r=l9(),a=l9(),i=l9().type(ih.UNSIGNED_SHORT),o=l9().type(ih.UNSIGNED_BYTE),s=Mht().crossValueAttribute(r).mainValueAttribute(a).sizeAttribute(i).definedAttribute(o),c=(C,b)=>!1,f=Vht,A=[],h=null,v=null,g=C=>{let b=f(e.xScale()),B=f(e.yScale()),E=!c(A,C);E&&(A=C,i.value((k,P)=>t(k,P)).data(C),o.value((k,P)=>e.defined()(k,P)).data(C)),(E||b.scale!==h)&&(h=b.scale,e.orient()==="vertical"?r.value((k,P)=>b.scale(e.crossValue()(k,P))).data(C):r.value((k,P)=>b.scale(e.mainValue()(k,P))).data(C)),(E||B.scale!==v)&&(v=B.scale,e.orient()==="vertical"?a.value((k,P)=>B.scale(e.mainValue()(k,P))).data(C):a.value((k,P)=>B.scale(e.crossValue()(k,P))).data(C)),s.xScale(b.webglScale).yScale(B.webglScale).type(Uht(n)).decorate(k=>e.decorate()(k,C,0)),s(C.length)};return g.size=(...C)=>C.length?(t=M3(C[0]),g):t,g.type=(...C)=>C.length?(n=C[0],g):n,g.equals=(...C)=>C.length?(c=C[0],g):c,g.scaleMapper=(...C)=>C.length?(f=C[0],g):f,GM(g,e,rwt("baseValue","bandwidth","align")),WZ(g,s,"context","pixelRatio"),g},KZ=()=>{let e=[],t=a=>a,n=(a,i)=>i,r=XZ({decorate:()=>{},xScale:sv(),yScale:sv()});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},swt=()=>{let e=KZ(),t=GZ("g"),n=GZ("g","multi"),r=a=>{UZ(a)&&(n.transition(a),t.transition(a));let i=e.mapping(),o=e.series(),s=e.xScale(),c=e.yScale();a.each((f,A,h)=>{let v=n(bs(h[A]),o);v.each((g,C,b)=>{g.xScale(s).yScale(c);let B=i(f,C,o);t(bs(b[C]),[B]).call(g)}),v.selection().order(),e.decorate()(v,f,A)})};return GM(r,e),WZ(r,n,"key"),r},uwt=()=>{let e=null,t=1,n=KZ(),r=a=>{let i=n.mapping(),o=n.series(),s=n.xScale(),c=n.yScale();o.forEach((f,A)=>{let h=i(a,A,o);f.context(e).pixelRatio(t).xScale(s).yScale(c);let v;f.decorate?(v=f.decorate(),f.decorate((g,C,b)=>{n.decorate()(g,a,A),v(g,C,b)})):n.decorate()(e,a,A),f(h),v&&f.decorate(v)})};return r.context=(...a)=>a.length?(e=a[0],r):e,r.pixelRatio=(...a)=>a.length?(t=a[0],r):t,GM(r,n),r};function ZZ(e){return e/2.35*(e/2.35)*64}function YM(e,t){return e+(1-e)*(1-t)}function WM(e,t){return[YM(e.r/255,t),YM(e.g/255,t),YM(e.b/255,t),1]}function cwt(e){return typeof e=="object"&&e!==null&&"type"in e&&"value"in e&&e.type==="grouping"}function XM(e={},t,n){return function(r){var a,i;if(cwt(n)){let o=n.value,s=r[o];return(i=((a=e[o])==null?void 0:a[String(s)])??m9)==null?void 0:i[t]}if(oh(n)&&t==="dotFill"){let{domain:o,range:s,type:c="linear"}=n,f=k9(s,o,c),A=r[n.columnName.value];return A===null?Gv.color:f(Number(A))}if(oh(n)&&t==="dotSize"){let{domain:o,range:s}=n,c=cv().domain(o).range(s)(Number(r[n.columnName.value]));return Math.max(1,c)}return n}}function JZ(e,t){let n=t.find(a=>a.type==="dots"),r=t.find(a=>a.type==="curve");return{dotFill:XM(e,"dotFill",(n==null?void 0:n.aes.dotFill)??Gv.color),dotSize:XM(e,"dotSize",(n==null?void 0:n.aes.dotSize)??Gv.size),lineType:XM(e,"lineShape",(r==null?void 0:r.aes.lineShape)??"solid")}}var fwt=class{constructor(){Be(this,"reactRoot",null);Be(this,"parentNode",null);Be(this,"rootNode",null);Be(this,"canvasNode",null);Be(this,"svgLayerElement",null);Be(this,"svgLayerComponent",ie.jsx(ie.Fragment,{}));Be(this,"aesGetters",{dotSize:()=>2,dotFill:()=>Vt,lineType:()=>"solid"});Be(this,"tools",null);Be(this,"margins",{top:Gc,bottom:Gc,left:Gc,right:Gc});Be(this,"chartSizes",{chartWidth:600,chartHeight:350,totalWidth:600,totalHeight:350});Be(this,"scales",{x:Zr().domain([0,10]).range([0,600]),y:Zr().domain([0,10]).range([350,0]),xOriginal:Zr().domain([0,10]).range([0,600]),yOriginal:Zr().domain([0,10]).range([350,0])});Be(this,"polygon",[]);Be(this,"onPolygonUpdateOutside",()=>{});Be(this,"onTooltipHintSwitch",()=>{});Be(this,"zoomStateKey","");Be(this,"selectedDot",null);Be(this,"captionsSizes",{xAxisCaptionsWidth:30,yAxisCaptionsWidth:100});Be(this,"mainTitle",[]);Be(this,"legend",{width:0,height:0,items:[]});Be(this,"notCalculatedProps",{});Be(this,"allDots",[]);Be(this,"allPossibleLabels",[]);Be(this,"visibleLabels",[]);Be(this,"lassoMode",!1);Be(this,"onPolygonUpdate",e=>{this.polygon=e,this.updateByLasso();let t=this.allDots.filter(n=>this.polygon.length>2&&RC(this.polygon,[n.x,n.y])).map(n=>n.idx);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=Wh(this.rootNode))}updateChartSizes(e){this.chartSizes.chartWidth=e.width,this.chartSizes.chartHeight=e.height}updateViewport(e,t,n){let r=e.scale==="log"?X2():Zr(),{minX:a,minY:i,maxX:o,maxY:s}=n;if(e.lowerValue!==void 0&&(a=Math.max(a,e.lowerValue)),e.upperValue!==void 0&&(o=Math.min(o,e.upperValue)),t.lowerValue!==void 0&&(i=Math.max(i,t.lowerValue)),t.upperValue!==void 0&&(s=Math.min(s,t.upperValue)),e.symmetricRange!==void 0){let g=e.symmetricRange;if(g>=a&&g<=o){let C=Math.max(g-a,o-g);a=g-C,o=g+C}}if(typeof t.symmetricRange<"u"){let g=t.symmetricRange;if(g>=i&&g<=s){let C=Math.max(g-i,s-g);i=g-C,s=g+C}}let c=[0,this.chartSizes.chartWidth],f=r.copy().domain([a,o]).range([hS.LEFT,this.chartSizes.chartWidth-hS.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"?X2():Zr(),h=[this.chartSizes.chartHeight,0],v=A.copy().domain([i,s]).range([this.chartSizes.chartHeight-hS.BOTTOM,hS.TOP]);A.domain([v.invert(this.chartSizes.chartHeight),v.invert(0)]).range(h).nice(),this.scales.y=A,this.scales.yOriginal=A.copy()}updateCaptionsSize(e){let t=new hc("600 14px Arial");function n(o){return Math.max(...o.map(s=>t.getTextWidth(s)))}let{ticks:r,format:a}=T9(this.scales.y,e),i=n(r.map(a));this.captionsSizes={xAxisCaptionsWidth:20,yAxisCaptionsWidth:i}}createMainTitle(e){this.mainTitle=Kv(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+M9,left:Gc+this.captionsSizes.yAxisCaptionsWidth+M9,right:this.legend.width+Gc},this.chartSizes.totalWidth=this.margins.left+this.chartSizes.chartWidth+this.margins.right,this.chartSizes.totalHeight=this.margins.top+Math.max(this.chartSizes.chartHeight,this.legend.height)+this.margins.bottom,bs(this.canvasNode).style("width",this.chartSizes.chartWidth+"px").style("height",this.chartSizes.chartHeight+"px").style("top",this.margins.top+"px").style("left",this.margins.left+"px")}updateLegendSize(e,t,n,r){if(!e.show){this.legend={width:0,height:0,items:[]};return}let a=[],i={width:0,height:0,left:0,top:0};if(n.forEach(A=>{let h=t[A.value];if(h.usedAes.length===0||!h.aesMap)return;if(h.values.length>100){console.warn(`Too many values for discrete legend (${h.values.length})`);return}let v={};h.values.forEach(b=>{v[b]||(v[b]={...Gv}),h.usedAes.forEach(B=>{var E,k;B==="dotFill"&&(v[b].color=((E=h.aesMap[b])==null?void 0:E[B])??Vt),B==="dotSize"&&(v[b].size=((k=h.aesMap[b])==null?void 0:k[B])??3)})});let g=A.label??A.value,C=Qo().domain(h.values).range(h.values.map(b=>v[b]));a.push({...i,id:A.value,type:"dots",title:g,scale:C,values:h.values,labels:h.labels})}),r.forEach(A=>{if(A.type==="dots"&&oh(A.aes.dotFill)){let{domain:h,range:v,columnName:g,type:C="linear"}=A.aes.dotFill,b=g.label??g.value,B=k9(v,h,"linear"),E=(C==="log"?uv():Zr()).domain(h).range([this.chartSizes.chartHeight,0]),k=A3(E,h);a.push({...i,id:"dotFill",type:"continuous",title:b,scale:B,tickPositionScale:E,values:k})}if(A.type==="dots"&&oh(A.aes.dotSize)){let{columnName:h,domain:v,range:g}=A.aes.dotSize,C=h.label??h.value,b=cv(v,g),B=b.ticks(3),E=b.tickFormat(3),k=B.reduce((P,I)=>(P[String(I)]=E(I),P),{});a.push({...i,id:h.value,type:"size",title:C,scale:b,values:B,labels:k})}}),!a.length){this.legend={width:0,height:0,items:[]};return}let o=C3(a,this.chartSizes.chartHeight),s=o[o.length-1],c=s.left+s.width+FZ,f=this.chartSizes.chartHeight;this.legend={width:c,height:f,items:o}}initSettings(e,t,n,r,a,i,o,s){let{xAxis:c,yAxis:f,size:A,title:h,legend:v}=t;this.updateChartSizes(A),this.updateViewport(c,f,n),this.updateCaptionsSize(r.y),this.updateLegendSize(v,o,s,i),this.createMainTitle(h),this.updateMargins(),this.aesGetters=JZ(a,i);let g=Yht().data(e).value(P=>{let I=Ug(this.aesGetters.dotFill(P.data)),$=!P.dimmed&&(this.polygon.length<2||RC(this.polygon,[P.x,P.y]))?1:.4;return WM(I,$)}),C=lwt().equals((P,I)=>P===I).size(P=>ZZ(this.aesGetters.dotSize(P.data))).crossValue(P=>P.x).mainValue(P=>P.y).decorate(P=>g(P)),b=KAt().scaleExtent([.1,1e3]).filter(()=>!this.lassoMode).on("start",()=>{this.selectedDot=null}).on("zoom",P=>{let I=P.transform,$=I.rescaleX(this.scales.xOriginal),z=I.rescaleY(this.scales.yOriginal);this.scales.x.domain($.domain()),this.scales.y.domain(z.domain()),this.zoomStateKey=`${I.x}_${I.y}_${I.k}`,this.renderSvgLayer(),this.renderWebglLayer()}).on("end",()=>{this.allPossibleLabels.forEach(P=>{P.x=this.scales.x(P.dot.x),P.y=this.scales.y(P.dot.y)}),this.visibleLabels=dS(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.renderSvgLayer()}),B=Gk().x(P=>P.x).y(P=>P.y).addAll(e),E=Wht().on("point",([P])=>{var K,te;if(!P){this.selectedDot=null,this.renderSvgLayer();return}let I=this.scales.x.invert(P.x),$=this.scales.y.invert(P.y),z=(K=this.tools)==null?void 0:K.qt.find(I,$),O=this.selectedDot&&!z||!this.selectedDot&&z||((te=this.selectedDot)==null?void 0:te.id)!==(z==null?void 0:z.id);this.selectedDot=z??null,O&&this.renderSvgLayer()}),k=xht({xScale:this.scales.x,yScale:this.scales.y}).xAxisHeight(()=>"0").yAxisWidth(()=>"0").svgPlotArea(swt()).webglPlotArea(uwt().series([C]).mapping(P=>P)).decorate(P=>{let I=P.enter();I&&!this.svgLayerElement&&(I.style("grid-template-columns","0 auto 1fr auto 0"),I.style("grid-template-rows","0 auto 1fr auto 0"),this.svgLayerElement=I.select(".svg-plot-area.plot-area svg").node()),I.select(".svg-plot-area.plot-area").call(b).call(E)});this.tools={webglChart:k,zoom:b,qt:B,fillColor:g,pointSeries:C},bs(this.canvasNode).datum(e).style("position","absolute").style("width",this.chartSizes.chartWidth+"px").style("height",this.chartSizes.chartHeight+"px").style("top",this.margins.top+"px").style("left",this.margins.left+"px")}updateAes(e,t){this.tools!==null&&(this.aesGetters=JZ(e,t),this.tools.fillColor.value(n=>{let r=this.aesGetters.dotFill??(()=>Vt),a=Ug(r(n.data)),i=!n.dimmed&&(this.polygon.length<2||RC(this.polygon,[n.x,n.y]))?1:.4;return WM(a,i)}))}updatePointSize(){this.tools!==null&&(bs(this.canvasNode).datum([...this.allDots]),this.tools.pointSeries.size(e=>ZZ(this.aesGetters.dotSize(e.data))))}updateByLasso(){var e;this.tools!==null&&((e=this.tools)==null||e.fillColor.value(t=>{let n=this.aesGetters.dotFill??(()=>Vt),r=Ug(n(t.data)),a=!t.dimmed&&(this.polygon.length<2||RC(this.polygon,[t.x,t.y]))?1:.4;return WM(r,a)}),this.renderWebglLayer())}updateData(e){this.tools!==null&&(bs(this.canvasNode).datum(e),this.tools.fillColor.data(e),this.tools.qt=Gk().x(t=>t.x).y(t=>t.y).addAll(e))}render(e,t,n,r,a,i,o,s,c,f,A,h,v,g,C){if(this.lassoMode=g,this.tools===null)this.initSettings(a,t,i,r,s,c,f,A),this.onPolygonUpdateOutside=v,this.onTooltipHintSwitch=C;else{let{title:b,legend:B}=t;this.updateLegendSize(B,f,A,c),this.createMainTitle(b),this.updateMargins(),this.updateAes(s,c)}this.allDots=a,this.allPossibleLabels=h,this.allPossibleLabels.forEach(b=>{b.x=this.scales.x(b.dot.x),b.y=this.scales.y(b.dot.y)}),this.visibleLabels=dS(this.allPossibleLabels,this.chartSizes.chartWidth,this.chartSizes.chartHeight),this.notCalculatedProps={settingsId:e,chartSettings:t,onlyPositive:r,keyColumn:n,dotsByGrouping:o,layers:c},this.renderWebglLayer(),this.renderSvgLayer()}renderWebglLayer(){var e,t;(e=this.tools)!=null&&e.webglChart&&bs(this.canvasNode).call((t=this.tools)==null?void 0:t.webglChart)}renderSvgLayer(){var t;this.visibleLabels.forEach(n=>{n.x=this.scales.x(n.dot.x),n.y=this.scales.y(n.dot.y)}),s6t(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(ewt,{...e}),(t=this.reactRoot)==null||t.render(this.svgLayerComponent)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Xv,{message:e}))}},dwt=fwt,KM=D.object({type:D.literal("grouping"),value:D.string()}),Awt=D.object({type:D.literal("dots"),aes:D.optional(D.object({dotFill:D.optional(D.union([D.string(),KM,nA(D.string())])),dotShape:D.optional(D.union([kd,KM])),dotSize:D.optional(D.union([D.number(),nA(D.number())]))}))}),hwt=D.object({type:D.literal("curve"),smoothing:D.optional(D.boolean()),aes:D.optional(D.object({lineWidth:D.optional(D.number()),lineShape:D.optional(Z1),lineColor:D.optional(D.union([D.string(),KM,nA(D.string())])),opacity:D.optional(D.number())}))}),pwt=D.union([Awt,hwt]),vwt=D.object({type:D.literal("scatterplot-umap"),title:D.object({name:D.string(),show:D.optional(D.boolean()),position:D.optional(Wv)}),size:D.optional(D.object({width:D.optional(D.number()),height:D.optional(D.number())})),legend:D.optional(D.object({show:D.optional(D.boolean()),position:D.optional(Om)})),tooltips:D.optional(D.object({show:D.optional(D.boolean()),content:D.optional(D.array(Yn))})),frame:D.optional(D.object({type:D.optional(y9)})),keyColumn:D.optional(Yn),x:Yn,y:Yn,xAxis:D.optional(d3),yAxis:D.optional(d3),grouping:D.optional(D.array(Yn)),label:D.optional(Yn),highlight:D.optional(Yn),inheritedAes:D.optional(D.record(D.string(),f3)),layers:D.array(pwt),lassoMode:D.optional(D.boolean())}),mwt=class{constructor(e){Be(this,"type","dots");Be(this,"aes",{dotFill:Vt,dotShape:"21",dotSize:3,opacity:1});this.aes={...this.aes,...e.aes}}},gwt=class{constructor(e){Be(this,"type","curve");Be(this,"smoothing");Be(this,"aes",{lineColor:Vt,lineWidth:1,lineShape:"solid",opacity:1});this.smoothing=e.smoothing??!1,this.aes={...this.aes,...e.aes}}},qZ=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;vwt.parse(e),this.id=Zn.uniqueId("settings"),this.keyColumn=e.keyColumn??null,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 mwt(i);if(i.type==="curve")return new gwt(i);throw new Error("Unknown layer type")}).filter(Boolean),this.lassoMode=e.lassoMode??!1}};function eJ(e){return typeof e=="object"&&"type"in e&&e.type==="grouping"}function ywt(e,t,n,r){return t.reduce((a,i)=>{let o=h=>String(h[i.value]),s=h=>i.valueLabels?String(h[i.valueLabels]):o(h),c=new Set;n.forEach(h=>{h.aes&&Object.entries(h.aes).forEach(([v,g])=>{eJ(g)&&g.value===i.value&&c.add(v)})});let f={},A=[];if(c.has("dotFill")){let h=e.getColumnCategories(i.value);if(h.length>100)A=h,f={};else{let v=Zn.uniqBy(e.rows,g=>g[i.value]);f=v.reduce((g,C)=>(g[o(C)]=s(C),g),{}),A=v.map(o).sort((g,C)=>f[g].localeCompare(f[C],"en",{numeric:!0}))}}return a[i.value]={values:A,usedAes:[...c],aesMap:r[i.value],labels:f},a},{})}var wwt=10;function bwt(e){let t=[],n=new hc("16px Manrope");for(let r of e){let a=r.label;if(!a)continue;let i=n.getTextMetrics(String(a));t.push({name:String(a),width:(i==null?void 0:i.width)??0,height:((i==null?void 0:i.actualBoundingBoxAscent)??0)+((i==null?void 0:i.actualBoundingBoxDescent)??0),x:0,y:0,xPosition:"right",yPosition:"middle",bbox:{minX:0,maxX:0,minY:0,maxY:0},dot:r,padding:wwt})}return t}var Cwt=class extends zm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new dwt);Be(this,"onPolygonUpdate",()=>{});Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new qZ(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 qZ(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,label:r,highlight:a,grouping:i,layers:o,inheritedAes:s}=this.settings,c={x:!0,y:!0},f={minX:1/0,maxX:-1/0,minY:1/0,maxY:-1/0},A=o.some(B=>B.type==="curve"),h=new Set,v={},g=this.data.rows.reduce((B,E,k)=>{if(E[t.value]===null||E[n.value]===null)return B;let P=Number(E[t.value]),I=Number(E[n.value]);c.x&&P!==null&&P<0&&(c.x=!1),c.y&&I!==null&&I<0&&(c.y=!1),P!==null&&P<f.minX&&(f.minX=P),P!==null&&P>f.maxX&&(f.maxX=P),I!==null&&I<f.minY&&(f.minY=I),I!==null&&I>f.maxY&&(f.maxY=I);let $=(r==null?void 0:r.valueLabels)??(r==null?void 0:r.value),z={x:P,y:I,id:String(k),idx:k,dimmed:a?!E[a.value]:!1,label:$&&E[$]?String(E[$]):null,data:E};if(A){let O=i.map(K=>E[K.value]).join("_");h.add(O),v[O]||(v[O]=[]),v[O].push(z)}return B.push(z),B},[]);a&&g.sort((B,E)=>Number(E.dimmed)-Number(B.dimmed));let C=[...h];A&&C.forEach(B=>{v[B].sort((E,k)=>E.x-k.x)});let b=ywt(this.data,i,o,s);this.calculatedData={onlyPositive:c,dots:g,dotsByGrouping:v,groupingKeys:C,allPossibleLabels:bwt(g),dotsExtents:f,legendLabels:b},this.chartRenderer.updateData(g)}_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])=>{eJ(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)}},Swt=1e6;function xwt(e){let t=_I(e),n=Vs(e);return t===void 0||n===void 0||t===0?r=>r:r=>(r-n)/t}function Ewt(e){let t=Vs(e),[n,r]=H0(e);return t===void 0||n===void 0||r===void 0?a=>a:a=>(a-t)/(r-n)}function Bwt(e,t){return e==="standardScaling"?xwt(t):e==="meanNormalization"?Ewt(t):n=>n}function _wt(e,t,n,r,a,i,o,s,c){let f=o.map(b=>b.join("_")),A={meta:{facetKeys:f,xKeys:[],yKeys:[],xLabels:{},yLabels:{},facetKeyValues:f.reduce((b,B,E)=>(b[B]=o[E],b),{}),valueExtentSize:[1/0,-1/0],valueExtentColor:[1/0,-1/0]},facets:{}},h=new Set,v=new Set,g=t.valueLabels??t.value,C=n.valueLabels??n.value;if(e.rows.forEach(b=>{let B=i.length?i.map($=>b[$.value]).join("_"):"null",E=b[t.value],k=b[n.value],P=b[r.value]??c,I=b[a.value]??c;if(!(E===null||k===null||P===null||I===null)){if(A.facets[B]||(A.facets[B]={xKeys:[],yKeys:[],cells:{}}),A.facets[B].xKeys.push(E),A.facets[B].yKeys.push(k),h.has(E)||(h.add(E),A.meta.xKeys.push(E)),v.has(k)||(v.add(k),A.meta.yKeys.push(k)),A.facets[B].cells[E]||(A.facets[B].cells[E]={}),A.meta.valueExtentSize[0]=Math.min(P,A.meta.valueExtentSize[0]),A.meta.valueExtentSize[1]=Math.max(P,A.meta.valueExtentSize[1]),A.meta.valueExtentColor[0]=Math.min(I,A.meta.valueExtentColor[0]),A.meta.valueExtentColor[1]=Math.max(I,A.meta.valueExtentColor[1]),A.facets[B].cells[E][k])throw Error(`More than 1 value for x=${E}, y=${k}`);if(A.meta.xLabels[E]&&String(b[g])!==A.meta.xLabels[E])throw Error(`More than 1 x-label value for x=${E}`);if(A.meta.yLabels[k]&&String(b[C])!==A.meta.yLabels[k])throw Error(`More than 1 y-label value for y=${k}`);A.meta.xLabels[E]=String(b[g]),A.meta.yLabels[k]=String(b[C]),A.meta&&(A.facets[B].cells[E][k]={id:`${E}_${k}`,x:E,y:k,sizeValue:P,normalizedSizeValue:P,colorValue:I,normalizedColorValue:I,data:b})}}),A.meta.facetKeys=A.meta.facetKeys.filter(b=>A.facets[b]),A.meta.facetKeys.forEach(b=>{let B=A.facets[b];if(B.xKeys=Zn.uniq(B.xKeys),B.yKeys=Zn.uniq(B.yKeys),B.xKeys.length*B.yKeys.length>Swt)throw Error(`Too many cells for graph rendering (${B.xKeys.length*B.yKeys.length})`)}),s){let b=[1/0,-1/0];A.meta.facetKeys.forEach(B=>{if(!A.facets[B])return;let{xKeys:E,yKeys:k,cells:P}=A.facets[B],I=s.direction==="row"?E:k,$=s.direction==="row"?k:E,z=s.direction==="row"?(O,K)=>{var te;return(te=P[O])==null?void 0:te[K]}:(O,K)=>{var te;return(te=P[K])==null?void 0:te[O]};$.forEach(O=>{let K=[];I.forEach(le=>{var Q;let G=(Q=z(le,O))==null?void 0:Q.colorValue;G!==void 0&&K.push(G)});let te=Bwt(s.method,K);I.forEach(le=>{let G=z(le,O);G!==void 0&&(G.normalizedColorValue=te(G.colorValue),b[0]=Math.min(G.normalizedColorValue,b[0]),b[1]=Math.max(G.normalizedColorValue,b[1]))})})}),A.meta.valueExtentColor=b}return A.meta.valueExtentSize[0]===1/0&&(A.meta.valueExtentSize[0]=0),A.meta.valueExtentSize[1]===-1/0&&(A.meta.valueExtentSize[1]=0),A.meta.valueExtentColor[0]===1/0&&(A.meta.valueExtentColor[0]=0),A.meta.valueExtentColor[1]===-1/0&&(A.meta.valueExtentColor[1]=0),A}var Twt=15,Um=8,pS=30,kwt=48,Mwt=24,vS=16,P3=4,mS=4,tJ=20,Pwt=16,hp={left:["axis","axisTitle"],right:["axis","axisTitle"],top:["axis","axisTitle","facetTitle"],bottom:["axis","axisTitle"]};function Hwt(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?mS:0,h=t.showTicks?mS:0,v=c&&e.showTitle?pS:0,g=s&&t.showTitle?pS:0,C=c&&e.showAxisLabels&&i>vS?n.xAxisCaptions+A+P3:0,b=s&&t.showAxisLabels&&o>vS?n.yAxisCaptions+h+P3:0;return{left:{axisTitle:t.position==="left"?g:0,axis:t.position==="left"?b:0},right:{axisTitle:t.position==="right"?g:0,axis:t.position==="right"?b:0},top:{facetTitle:f?kwt:0,axisTitle:e.position==="top"?v:0,axis:e.position==="top"?C:0},bottom:{axisTitle:e.position==="bottom"?v:0,axis:e.position==="bottom"?C:0}}}function Dwt(e,t,n){return{left:hp.left.reduce((r,a,i)=>{let o=i>0?hp.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:hp.right.reduce((r,a,i)=>{let o=i>0?hp.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:hp.top.reduce((r,a,i)=>{let o=i>0?hp.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:hp.bottom.reduce((r,a,i)=>{let o=i>0?hp.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 $wt(e,t,n,r){let{xLabels:a,yLabels:i}=n.meta,o=e.xAxisLabels/180*Math.PI,s=e.yAxisLabels/180*Math.PI,c=0,f=0,A=e.xAxisLabels===45;if(A){let v=n.meta.xKeys,g=t.x,C=g>vS,b=a[v[0]];c=Math.max(c,(A&&C?r.getTextWidth(b)*Math.cos(o):0)-g/2)}let h=e.yAxisLabels===45;if(h){let v=n.meta.yKeys;if(v.length){let g=t.y,C=g>vS,b=i[v[v.length-1]];f=Math.max(f,(h&&C?r.getTextWidth(b)*Math.cos(s):0)-g/2)}}return{xCaptionTail:c,yCaptionTail:f}}function Iwt({sideElementBBoxes:e,debug:t,xKeys:n,yKeys:r,scales:a,xAxis:i,yAxis:o,stepX:s,stepY:c,labelAngles:f,xLabels:A,yLabels:h}){let v=i.showTicks?mS:0,g=o.showTicks?mS:0,C=e.top.axis.isVisible||e.bottom.axis.isVisible,b=e.top.axisTitle.isVisible?e.top.axisTitle:e.bottom.axisTitle,B=e.top.axis.isVisible?e.top.axis:e.bottom.axis,E=e.left.axis.isVisible||e.right.axis.isVisible,k=e.left.axisTitle.isVisible?e.left.axisTitle:e.right.axisTitle,P=e.left.axis.isVisible?e.left.axis:e.right.axis;return ie.jsxs("g",{children:[ie.jsxs("g",{children:[b.isVisible&&ie.jsxs("g",{transform:`translate(${b.x},${b.y})`,children:[ie.jsx("text",{x:b.width/2,y:b.height/2,textAnchor:"middle",dominantBaseline:"central",children:i.title}),t&&ie.jsx("rect",{width:b.width,height:b.height,stroke:Vt,fill:"none"})]}),C&&ie.jsxs("g",{fontSize:"14px",transform:`translate(${B.x},${B.y})`,children:[n.map(I=>{let $=f.xAxisLabels!==0,z=i.position==="bottom",O=z?0:B.height,K=z?O+v:O-v,te=z?K+P3:K-P3,le=a.x(I)+s/2,G=-f.xAxisLabels;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:le,y1:O,y2:K,stroke:Vt}),ie.jsx("text",{x:le,y:te,textAnchor:$?z?"end":"start":"middle",transform:`rotate(${G},${le},${te})`,dominantBaseline:$?"central":z?"hanging":"auto",children:A[I]})]},I)}),t&&ie.jsx("rect",{width:B.width,height:B.height,stroke:Vt,fill:"none"})]})]}),ie.jsxs("g",{children:[k.isVisible&&ie.jsx("g",{transform:`translate(
15129
15129
  ${k.x+k.width/2},
15130
15130
  ${k.y+k.height/2})`,children:ie.jsx("text",{transform:`rotate(${o.position==="left"?-90:90})`,dominantBaseline:"central",textAnchor:"middle",children:o.title})}),t&&ie.jsx("rect",{x:k.x,y:k.y,width:k.width,height:k.height,stroke:Vt,fill:"none"}),E&&ie.jsx("g",{fontSize:"14px",transform:`translate(${P.x},${P.y})`,children:r.map(I=>{let $=f.yAxisLabels!==0,z=o.position==="left",O=-(90-f.yAxisLabels),K=f.yAxisLabels===0?"middle":z?"end":"start",te=$?"central":z?"auto":"hanging",le=z?P.width:0,G=z?le-g:le+g,Q=z?G-P3:G+P3,j=a.y(I)+c/2;return ie.jsxs("g",{children:[ie.jsx("line",{x1:le,x2:G,y1:j,y2:j,stroke:Vt}),ie.jsx("text",{x:Q,y:j,textAnchor:K,transform:`rotate(${O},${Q},${j})`,dominantBaseline:te,children:h[I]})]},I)})}),t&&ie.jsx("rect",{x:P.x,y:P.y,height:P.height,width:P.width,stroke:Vt,fill:"none"})]})]})}function gS(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 Lwt(e,t,n=[]){let r=e.data,a=[`X: ${t.xLabels[e.x]}`,`Y: ${t.yLabels[e.y]}`,`Value (color): ${gS(e.colorValue)}${e.colorValue!==e.normalizedColorValue?` (${gS(e.normalizedColorValue)})`:""}`,`Value (size): ${gS(e.sizeValue)}${e.sizeValue!==e.normalizedSizeValue?` (${gS(e.normalizedSizeValue)})`:""}`];for(let i of n)a.push(`${i.label}: ${r[i.valueLabels??i.value]}`);return a}function Rwt({facetKey:e,dimensions:t,scales:n,cells:r,colorScale:a,sizeScale:i,chartSettings:o,cellsMeta:s,stepX:c,stepY:f,aes:A,labelAngles:h,chartSizes:v,margins:g,tooltipsContainer:C,tooltipsData:b}){let[B,E]=tn.useState(),{xAxis:k,yAxis:P,tooltips:I}=o,{width:$,height:z}=t.inner,{padding:O,sideElementBBoxes:K}=t,{xLabels:te,yLabels:le}=s,G=n.x.domain(),Q=n.y.domain(),j={left:g.left+t.left+O.left,right:v.totalWidth-(g.left+t.left+O.left),top:g.top+t.top+O.top,bottom:v.totalHeight-(g.top+t.top+O.top)},Y=!1,X=b.fixed&&B;return ie.jsxs("g",{transform:`translate(${t.left},${t.top})`,fontSize:Pwt,children:[ie.jsxs("g",{transform:`translate(${O.left},${O.top})`,children:[K.top.facetTitle.isVisible&&ie.jsx("text",{x:K.top.facetTitle.x,y:K.top.facetTitle.y+K.top.facetTitle.height-Mwt,fontWeight:"500",fontSize:"20px",children:s.facetKeyValues[e].join(", ")}),Y,G.map(ee=>Q.map(pe=>{var fe;let ae=(fe=r==null?void 0:r[ee])==null?void 0:fe[pe],ge=X&&ae&&b.selectedData===ae,me=ae?ie.jsx("circle",{cx:n.x(ee)+c/2,cy:n.y(pe)+f/2,r:i(ae.normalizedSizeValue),stroke:A.cellStrokeColor,fill:ae.colorValue===null?A.emptyCellColor:a(ae.normalizedColorValue),onMouseOver:()=>b.onMouseOver(ae,e),onMouseLeave:()=>b.onMouseLeave()},ae?ae.id:`${ee}_${pe}`):null;return ge?cu.createPortal(me,B):me})),ie.jsx("g",{children:o.frame.type==="full"&&ie.jsx("rect",{fill:"none",stroke:Vt,x:"0",y:"0",width:$,height:z})}),ie.jsx("g",{fontWeight:"500",children:ie.jsx(Iwt,{sideElementBBoxes:K,xKeys:G,yKeys:Q,scales:n,xAxis:k,yAxis:P,stepX:c,stepY:f,labelAngles:h,xLabels:te,yLabels:le,debug:Y})}),b.fixed&&ie.jsx("rect",{width:v.chartWidth,height:v.chartHeight,fill:"rgba(255,255,255,0.8)"}),ie.jsx("g",{ref:ee=>{ee&&!B&&E(ee)}})]}),o.tooltips.show&&b.selectedData&&b.currentFacet===e&&ie.jsx(fu,{content:Lwt(b.selectedData,s,I==null?void 0:I.content),x:n.x(String(b.selectedData.x))+c/2,y:n.y(String(b.selectedData.y))+f/2,offset:G.length>1?c/2:0,active:!0,sideDistances:j,container:C,onClose:b.onClose,fixed:b.fixed})]})}function Vwt({margins:e,captionsSizes:t,settingsId:n,chartSettings:r,chartSizes:a,chartsDimensions:i,facetKeys:o,scales:s,colorScale:c,sizeScale:f,groupedCells:A,cellsMeta:h,step:v,legend:g,aes:C,columnsCount:b,labelAngles:B,onTooltipHintSwitch:E}){let k=h3(E),[P,I]=tn.useState(),$=tn.useRef(null);tn.useEffect(()=>{$.current&&I($.current)},[]);let z=i[o[0]].padding,O=i[o[b-1]].padding,K=e.left+a.chartsWidth+tJ,te=e.top+z.top;return ie.jsx(g3,{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:Qm}),ie.jsxs("g",{transform:`translate(${e.left},${e.top})`,children:[ie.jsx(y3,{title:[r.title.name],show:r.title.show,position:r.title.position,leftPadding:z.left,rightPadding:O.right,chartsWidth:a.chartsWidth}),o.map(le=>{let{cells:G}=A[le];return ie.jsx(Rwt,{captionsSizes:t,facetKey:le,dimensions:i[le],scales:s,cells:G,cellsMeta:h,stepX:v.x,stepY:v.y,colorScale:c,sizeScale:f,chartSettings:r,aes:C,labelAngles:B,margins:e,chartSizes:a,tooltipsData:k,tooltipsContainer:P},le)})]}),ie.jsx("g",{transform:`translate(${K},${te})`,children:ie.jsx(w3,{legendData:g})}),ie.jsx("g",{ref:$,style:{outline:"none"}})]})})}var Nwt=(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 zwt(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])),Nwt(t,r)}var Owt=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:Um,bottom:Um,left:Um,right:Um});Be(this,"captionsSizes",{xAxisCaptions:100,yAxisCaptions:100,xCaptionTail:0,yCaptionTail:0});Be(this,"labelAngles",{xAxisLabels:0,yAxisLabels:0});Be(this,"columnsCount",1);Be(this,"rowsCount",1);Be(this,"scales",{x:Qo().domain(["null"]).range([1]),y:Qo().domain(["null"]).range([1])});Be(this,"step",{x:10,y:10});Be(this,"colorScale",Zr().domain([0,1]).range(["white","black"]));Be(this,"sizeScale",cv().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=Wh(this.rootNode))}updateMargins(e){this.margins={top:e.show?24+24*2:Um,bottom:Um,left:Um,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=A3(this.colorScale,[c[0],c[c.length-1]]),A=t.label??t.value,h=Zr([f[0],f[f.length-1]],[i,0]);a.push({id:"colorValue",type:"continuous",scale:this.colorScale,tickPositionScale:h,values:f,title:A,...s});let v=n.label??n.value,g=this.sizeScale.ticks(3),C=this.sizeScale.tickFormat(3),b=g.reduce((I,$)=>(I[String($)]=C($),I),{});if(a.push({id:"sizeValue",type:"size",title:v,scale:this.sizeScale,values:g,labels:b,...s}),!a.length){this.legend={width:0,height:0,items:[]};return}let B=C3(a,o,i),E=B[B.length-1],k=E.left+E.width+2*tJ,P=this.chartsDimensions[r[0]].padding;this.legend={width:k,height:o+P.top,items:B}}updateCaptionsSize(e,t,n){let r=new hc("bold 14px Arial"),{xKeys:a,yKeys:i,xLabels:o,yLabels:s}=e.meta;this.labelAngles={xAxisLabels:t.axisLabelsAngle,yAxisLabels:n.axisLabelsAngle};let c=0,f=0;for(let C of a){let b=r.getTextWidth(o[C]);b>c&&(c=b)}for(let C of i){let b=r.getTextWidth(s[C]);b>f&&(f=b)}let{xCaptionTail:A,yCaptionTail:h}=$wt(this.labelAngles,this.step,e,r),v=this.labelAngles.xAxisLabels/180*Math.PI,g=this.labelAngles.yAxisLabels/180*Math.PI;this.captionsSizes={xCaptionTail:A,yCaptionTail:h,xAxisCaptions:c*Math.sin(v)||pS,yAxisCaptions:f*Math.sin(g)||pS}}updateChartDimensions(e,t,n,r){let a=e.length,i=Math.min(t.nRows??a,a),o=Math.min(t.nCols??a,a);this.columnsCount=t.nRows?Math.ceil(a/i):o,this.rowsCount=Math.ceil(a/this.columnsCount),this.chartsDimensions={};let s=0,c=0;e.forEach((h,v)=>{let g=v%this.columnsCount+1,C=cZ(v,e.length,this.columnsCount,this.rowsCount),b=this.chartSizes.chartWidth,B=this.chartSizes.chartHeight,E=Hwt(n,r,this.captionsSizes,C,e,this.step.x,this.step.y);function k(O){return Math.max(hp[O].reduce((K,te)=>K+E[O][te],0),Twt)}let P={left:k("left"),right:k("right"),top:k("top"),bottom:k("bottom")};P.left<this.captionsSizes.xCaptionTail&&(P.left=this.captionsSizes.xCaptionTail),P.bottom<this.captionsSizes.yCaptionTail&&(P.bottom=this.captionsSizes.yCaptionTail);let I=Dwt(E,b,B),$=b+P.left+P.right,z=B+P.top+P.bottom;this.chartsDimensions[h]={left:s,top:c,inner:{width:b,height:B},outer:{width:$,height:z},padding:P,sideElementBBoxes:I,chartEdgeSides:C},s+=$,g===this.columnsCount&&(s=0,c+=z)});let f=e.slice(0,this.columnsCount).reduce((h,v)=>h+this.chartsDimensions[v].outer.width,0),A=e.filter((h,v)=>v%this.columnsCount===0).reduce((h,v)=>h+this.chartsDimensions[v].outer.height,0);this.chartSizes.chartsWidth=f,this.chartSizes.chartsHeight=A}updateChartsSizes(e,t){let{width:n,height:r,cellSize:a}=t;a&&(this.chartSizes.chartWidth=e.meta.xKeys.length*a,this.chartSizes.chartHeight=e.meta.yKeys.length*a),n&&r&&(this.chartSizes.chartWidth=n,this.chartSizes.chartHeight=r)}updateScales(e,t,n,r){let{width:a,height:i,cellSize:o}=t,{meta:s}=e,c=(C,b={})=>[...C].sort((B,E)=>n.sorting==="asc"?(b[B]??B).localeCompare(b[E]??E,"en",{numeric:!0}):(b[E]??E).localeCompare(b[B]??B,"en",{numeric:!0})),f=(C,b={})=>[...C].sort((B,E)=>r.sorting==="asc"?(b[B]??B).localeCompare(b[E]??E,"en",{numeric:!0}):(b[E]??E).localeCompare(b[B]??B,"en",{numeric:!0})),A=c(s.xKeys,s.xLabels),h=f(s.yKeys,s.yLabels);o?(this.step.x=o,this.step.y=o):a&&i&&(this.step.x=a/A.length,this.step.y=i/h.length);let v=new Array(A.length).fill(null).map((C,b)=>b*this.step.x),g=new Array(h.length).fill(null).map((C,b)=>b*this.step.y);this.scales.x=Qo().domain(A).range(v),this.scales.y=Qo().domain(h).range(g)}updateAesScale(e,t,n,r){this.colorScale=Zr().domain(zwt(r,e.colorsList.length,n)).range(e.colorsList),this.sizeScale=cv(t,[e.minRadius,e.maxRadius])}render(e,t,n,r,a,i,o,s,c,f){var P;let{meta:A,facets:h}=a,{valueExtentSize:v,valueExtentColor:g}=A,{xAxis:C,yAxis:b,title:B,size:E}=t;this.updateChartsSizes(a,E),this.updateAesScale(c,v,g,s),this.updateScales(a,E,t.xAxis,t.yAxis),this.updateCaptionsSize(a,C,b),this.updateChartDimensions(r,n,C,b),this.updateLegendSize(t.legend,i,o,r),this.updateMargins(B);let k=ie.jsx(Vwt,{aes:c,captionsSizes:this.captionsSizes,cellsMeta:A,columnsCount:this.columnsCount,chartsDimensions:this.chartsDimensions,chartSettings:t,chartSizes:this.chartSizes,sizeScale:this.sizeScale,colorScale:this.colorScale,facetKeys:r,facetSettings:n,groupedCells:h,labelAngles:this.labelAngles,legend:this.legend,margins:this.margins,scales:this.scales,settingsId:e,step:this.step,onTooltipHintSwitch:f});this.component=k,(P=this.reactRoot)==null||P.render(k)}renderError(e){var t;(t=this.reactRoot)==null||t.render(ie.jsx(Xv,{message:e}))}},Fwt=Owt,nJ=class{constructor(e){Be(this,"id");Be(this,"type","bubble");Be(this,"facetSettings");Be(this,"valueColumnSize");Be(this,"valueColumnColor");Be(this,"xColumn");Be(this,"yColumn");Be(this,"facetBy");Be(this,"normalization");Be(this,"NAValueAs");Be(this,"chartSettings");Be(this,"aes");var a,i,o,s,c,f,A,h,v,g;i4t.parse(e),this.id=Zn.uniqueId("settings"),this.facetSettings={titlePosition:"left",...e.facetSettings},this.facetBy=e.facetBy??[],this.valueColumnSize=e.valueSize,this.valueColumnColor=e.valueColor,this.xColumn=e.xColumn,this.yColumn=e.yColumn,this.NAValueAs=e.NAValueAs??null,this.normalization=e.normalization??null;let t=((a=e.size)==null?void 0:a.cellSize)??null,n=t?null:((i=e==null?void 0:e.size)==null?void 0:i.width)??(this.facetBy.length?400:600),r=t?null:((o=e==null?void 0:e.size)==null?void 0:o.height)??(this.facetBy.length?250:350);this.chartSettings={size:{width:n,height:r,cellSize:t},title:{position:"center",show:!0,...e.title,name:((s=e.title)==null?void 0:s.name)??"Chart"},yAxis:{title:e.yColumn.label??e.yColumn.value,showTicks:!0,showTitle:!0,showAxisLabels:!0,position:"left",axisLabelsAngle:90,sorting:"asc",...e.yAxis},xAxis:{title:e.xColumn.label??e.xColumn.value,showTicks:!0,showTitle:!0,showAxisLabels:!0,position:"bottom",axisLabelsAngle:90,sorting:"asc",...e.xAxis},frame:{type:((c=e.frame)==null?void 0:c.type)??"full"},legend:{show:!0,position:"right",...e.legend},tooltips:{show:!0,...e.tooltips}},this.aes={minRadius:((f=e.aes)==null?void 0:f.minRadius)??3,maxRadius:((A=e.aes)==null?void 0:A.maxRadius)??20,colorsList:((h=e.aes)==null?void 0:h.colorsList)??["black","white","red"],cellStrokeColor:((v=e.aes)==null?void 0:v.cellStrokeColor)??Vt,emptyCellColor:((g=e.aes)==null?void 0:g.emptyCellColor)??"white"}}},Qwt=class extends zm{constructor(t,n,r){super(t,n);Be(this,"settings");Be(this,"chartRenderer",new Fwt);Be(this,"onTooltipHintSwitch",()=>{});Be(this,"calculatedData",null);this.settings=new nJ(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 nJ(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(),w5(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?kZ([...c]):[["null"]],A=t.map(v=>v.value)??null;this.data.setGrouping([...A]);let h=_wt(this.data,n,r,a,i,t,f,o,s);this.calculatedData={facetKeys:h.meta.facetKeys,groupedCellsData:h}}_updateAesInData(){this.calculatedData}_updateChart(){if(!this.calculatedData)return;let{id:t,chartSettings:n,facetSettings:r,valueColumnColor:a,valueColumnSize:i,normalization:o,aes:s}=this.settings;this.chartRenderer.render(t,n,r,this.calculatedData.facetKeys,this.calculatedData.groupedCellsData,a,i,o,s,this.onTooltipHintSwitch)}},jwt=class Q${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 U7t(t,n,r);if(a==="dendro")return new L4t(t,n,r);if(a==="scatterplot")return new G6t(t,n,r);if(a==="scatterplot-umap")return new Cwt(t,n,r);if(a==="heatmap")return new T9t(t,n,r);if(a==="histogram")return new n6t(t,n,r);if(a==="bubble")return new Qwt(t,n,r);d1(a,`Unknown chart type: ${a}`)}static newPlot(t,n,r){let a=mK.from(t);return new this(Q$.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=Q$.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(mK.from(t),n)}updateChartState(t,n){this.chart.updateChartState(t,n)}export(){return this.chart.export()}};/*! Bundled license information:
15131
15131
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/graph-maker",
3
- "version": "1.1.124",
3
+ "version": "1.1.125",
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.116",
35
+ "@milaboratories/miplots4": "^1.0.118",
36
36
  "@milaboratories/pf-plots": "^1.1.21",
37
37
  "@platforma-sdk/model": "^1.34.10",
38
38
  "@platforma-sdk/ui-vue": "^1.35.0",