1import{_ as P,c as E,b as W,o as k,a as b,s as pt,t as I,d as q,F as tt,r as et,f as gt,h as yt,m as St,af as Ct,W as wt,x as _t,N as Nt}from"./index-b2QmkyXD.js";import{S as rt,g as Mt,k as Dt,m as Tt,n as Rt,s as R,o as ot,q as jt,u as K,v as U,y as It,w as H,p as $t,x as Wt,A as Lt,B as Ot,j as zt,i as Ft,d as Q,z as qt,C as mt}from"./feature-bCQVWRiK.js";function G(t){return typeof t=="string"?new rt([document.querySelectorAll(t)],[document.documentElement]):new rt([Dt(t)],Mt)}const O=t=>()=>t;function Z(t,{sourceEvent:n,subject:e,target:a,identifier:r,active:o,x:l,y:p,dx:u,dy:s,dispatch:c}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:e,enumerable:!0,configurable:!0},target:{value:a,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:l,enumerable:!0,configurable:!0},y:{value:p,enumerable:!0,configurable:!0},dx:{value:u,enumerable:!0,configurable:!0},dy:{value:s,enumerable:!0,configurable:!0},_:{value:c}})}Z.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function Gt(t){return!t.ctrlKey&&!t.button}function Pt(){return this.parentNode}function Yt(t,n){return n??{x:t.x,y:t.y}}function Vt(){return navigator.maxTouchPoints||"ontouchstart"in this}function Kt(){var t=Gt,n=Pt,e=Yt,a=Vt,r={},o=Tt("start","drag","end"),l=0,p,u,s,c,d=0;function h(i){i.on("mousedown.drag",y).filter(a).on("touchstart.drag",w).on("touchmove.drag",j,Rt).on("touchend.drag touchcancel.drag",D).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function y(i,f){if(!(c||!t.call(this,i,f))){var g=T(this,n.call(this,i,f),i,f,"mouse");g&&(R(i.view).on("mousemove.drag",x,ot).on("mouseup.drag",N,ot),jt(i.view),K(i),s=!1,p=i.clientX,u=i.clientY,g("start",i))}}function x(i){if(U(i),!s){var f=i.clientX-p,g=i.clientY-u;s=f*f+g*g>d}r.mouse("drag",i)}function N(i){R(i.view).on("mousemove.drag mouseup.drag",null),It(i.view,s),U(i),r.mouse("end",i)}function w(i,f){if(t.call(this,i,f)){var g=i.changedTouches,m=n.call(this,i,f),v=g.length,_,M;for(_=0;_<v;++_)(M=T(this,m,i,f,g[_].identifier,g[_]))&&(K(i),M("start",i,g[_]))}}function j(i){var f=i.changedTouches,g=f.length,m,v;for(m=0;m<g;++m)(v=r[f[m].identifier])&&(U(i),v("drag",i,f[m]))}function D(i){var f=i.changedTouches,g=f.length,m,v;for(c&&clearTimeout(c),c=setTimeout(function(){c=null},500),m=0;m<g;++m)(v=r[f[m].identifier])&&(K(i),v("end",i,f[m]))}function T(i,f,g,m,v,_){var M=o.copy(),S=H(_||g,f),A,C,L;if((L=e.call(i,new Z("beforestart",{sourceEvent:g,target:h,identifier:v,active:l,x:S[0],y:S[1],dx:0,dy:0,dispatch:M}),m))!=null)return A=L.x-S[0]||0,C=L.y-S[1]||0,function kt(Y,nt,Et){var at=S,V;switch(Y){case"start":r[v]=kt,V=l++;break;case"end":delete r[v],--l;case"drag":S=H(Et||nt,f),V=l;break}M.call(Y,i,new Z(Y,{sourceEvent:nt,subject:L,target:h,identifier:v,active:V,x:S[0]+A,y:S[1]+C,dx:S[0]-at[0],dy:S[1]-at[1],dispatch:M}),m)}}return h.filter=function(i){return arguments.length?(t=typeof i=="function"?i:O(!!i),h):t},h.container=function(i){return arguments.length?(n=typeof i=="function"?i:O(i),h):n},h.subject=function(i){return arguments.length?(e=typeof i=="function"?i:O(i),h):e},h.touchable=function(i){return arguments.length?(a=typeof i=="function"?i:O(!!i),h):a},h.on=function(){var i=o.on.apply(o,arguments);return i===o?h:i},h.clickDistance=function(i){return arguments.length?(d=(i=+i)*i,h):Math.sqrt(d)},h}function ft(t,n){var e=n*n,a=e*e;return[t*(.8707-.131979*e+a*(-.013791+a*(.003971*e-.001529*a))),n*(1.007226+e*(.015085+a*(-.044475+.028874*e-.005916*a)))]}ft.invert=function(t,n){var e=n,a=25,r;do{var o=e*e,l=o*o;e-=r=(e*(1.007226+o*(.015085+l*(-.044475+.028874*o-.005916*l)))-n)/(1.007226+o*(.015085*3+l*(-.044475*7+.028874*9*o-.005916*11*l)))}while(Wt(r)>Lt&&--a>0);return[t/(.8707+(o=e*e)*(-.131979+o*(-.013791+o*o*o*(.003971-.001529*o)))),e]};function Ut(){return $t(ft).scale(175.295)}const Bt=1664525,Jt=1013904223,st=4294967296;function Xt(){let t=1;return()=>(t=(Bt*t+Jt)%st)/st}function Ht(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Qt(t,n){let e=t.length,a,r;for(;e;)r=n()*e--|0,a=t[e],t[e]=t[r],t[r]=a;return t}function Zt(t,n){for(var e=0,a=(t=Qt(Array.from(t),n)).length,r=[],o,l;e<a;)o=t[e],l&&bt(l,o)?++e:(l=ee(r=te(r,o)),e=0);return l}function te(t,n){var e,a;if(B(n,t))return[n];for(e=0;e<t.length;++e)if(z(n,t[e])&&B($(t[e],n),t))return[t[e],n];for(e=0;e<t.length-1;++e)for(a=e+1;a<t.length;++a)if(z($(t[e],t[a]),n)&&z($(t[e],n),t[a])&&z($(t[a],n),t[e])&&B(xt(t[e],t[a],n),t))return[t[e],t[a],n];throw new Error}function z(t,n){var e=t.r-n.r,a=n.x-t.x,r=n.y-t.y;return e<0||e*e<a*a+r*r}function bt(t,n){var e=t.r-n.r+Math.max(t.r,n.r,1)*1e-9,a=n.x-t.x,r=n.y-t.y;return e>0&&e*e>a*a+r*r}function B(t,n){for(var e=0;e<n.length;++e)if(!bt(t,n[e]))return!1;return!0}function ee(t){switch(t.length){case 1:return ne(t[0]);case 2:return $(t[0],t[1]);case 3:return xt(t[0],t[1],t[2])}}function ne(t){return{x:t.x,y:t.y,r:t.r}}function $(t,n){var e=t.x,a=t.y,r=t.r,o=n.x,l=n.y,p=n.r,u=o-e,s=l-a,c=p-r,d=Math.sqrt(u*u+s*s);return{x:(e+o+u/d*c)/2,y:(a+l+s/d*c)/2,r:(d+r+p)/2}}function xt(t,n,e){var a=t.x,r=t.y,o=t.r,l=n.x,p=n.y,u=n.r,s=e.x,c=e.y,d=e.r,h=a-l,y=a-s,x=r-p,N=r-c,w=u-o,j=d-o,D=a*a+r*r-o*o,T=D-l*l-p*p+u*u,i=D-s*s-c*c+d*d,f=y*x-h*N,g=(x*i-N*T)/(f*2)-a,m=(N*w-x*j)/f,v=(y*T-h*i)/(f*2)-r,_=(h*j-y*w)/f,M=m*m+_*_-1,S=2*(o+g*m+v*_),A=g*g+v*v-o*o,C=-(Math.abs(M)>1e-6?(S+Math.sqrt(S*S-4*M*A))/(2*M):A/S);return{x:a+g+m*C,y:r+v+_*C,r:C}}function it(t,n,e){var a=t.x-n.x,r,o,l=t.y-n.y,p,u,s=a*a+l*l;s?(o=n.r+e.r,o*=o,u=t.r+e.r,u*=u,o>u?(r=(s+u-o)/(2*s),p=Math.sqrt(Math.max(0,u/s-r*r)),e.x=t.x-r*a-p*l,e.y=t.y-r*l+p*a):(r=(s+o-u)/(2*s),p=Math.sqrt(Math.max(0,o/s-r*r)),e.x=n.x+r*a-p*l,e.y=n.y+r*l+p*a)):(e.x=n.x+e.r,e.y=n.y)}function ct(t,n){var e=t.r+n.r-1e-6,a=n.x-t.x,r=n.y-t.y;return e>0&&e*e>a*a+r*r}function lt(t){var n=t._,e=t.next._,a=n.r+e.r,r=(n.x*e.r+e.x*n.r)/a,o=(n.y*e.r+e.y*n.r)/a;return r*r+o*o}function F(t){this._=t,this.next=null,this.previous=null}function ae(t,n){if(!(o=(t=Ht(t)).length))return 0;var e,a,r,o,l,p,u,s,c,d,h;if(e=t[0],e.x=0,e.y=0,!(o>1))return e.r;if(a=t[1],e.x=-a.r,a.x=e.r,a.y=0,!(o>2))return e.r+a.r;it(a,e,r=t[2]),e=new F(e),a=new F(a),r=new F(r),e.next=r.previous=a,a.next=e.previous=r,r.next=a.previous=e;t:for(u=3;u<o;++u){it(e._,a._,r=t[u]),r=new F(r),s=a.next,c=e.previous,d=a._.r,h=e._.r;do if(d<=h){if(ct(s._,r._)){a=s,e.next=a,a.previous=e,--u;continue t}d+=s._.r,s=s.next}else{if(ct(c._,r._)){e=c,e.next=a,a.previous=e,--u;continue t}h+=c._.r,c=c.previous}while(s!==c.next);for(r.previous=e,r.next=a,e.next=a.previous=a=r,l=lt(e);(r=r.next)!==a;)(p=lt(r))<l&&(e=r,l=p);a=e.next}for(e=[a._],r=a;(r=r.next)!==a;)e.push(r._);for(r=Zt(e,n),u=0;u<o;++u)e=t[u],e.x-=r.x,e.y-=r.y;return r.r}function re(t){return ae(t,Xt()),t}function oe(t,n){var e={},a={},r={},o=[],l=-1;
1n.forEach(function(s,c){var d=t.arcs[s<0?~s:s],h;d.length<3&&!d[1][0]&&!d[1][1]&&(h=n[++l],n[l]=s,n[c]=h)}),n.forEach(function(s){var c=p(s),d=c[0],h=c[1],y,x;if(y=r[d])if(delete r[y.end],y.push(s),y.end=h,x=a[h]){delete a[x.start];var N=x===y?y:y.concat(x);a[N.start=y.start]=r[N.end=x.end]=N}else a[y.start]=r[y.end]=y;else if(y=a[h])if(delete a[y.start],y.unshift(s),y.start=d,x=r[d]){delete r[x.end];var w=x===y?y:x.concat(y);a[w.start=x.start]=r[w.end=y.end]=w}else a[y.start]=r[y.end]=y;else y=[s],a[y.start=d]=r[y.end=h]=y});function p(s){var c=t.arcs[s<0?~s:s],d=c[0],h;return t.transform?(h=[0,0],c.forEach(function(y){h[0]+=y[0],h[1]+=y[1]})):h=c[c.length-1],s<0?[h,d]:[d,h]}function u(s,c){for(var d in s){var h=s[d];delete c[h.start],delete h.start,delete h.end,h.forEach(function(y){e[y<0?~y:y]=1}),o.push(h)}}return u(r,a),u(a,r),n.forEach(function(s){e[s<0?~s:s]||o.push([s])}),o}function se(t){return Ot(t,ie.apply(this,arguments))}function ie(t,n,e){var a,r,o;if(arguments.length>1)a=ce(t,n,e);else for(r=0,a=new Array(o=t.arcs.length);r<o;++r)a[r]=r;return{type:"MultiLineString",arcs:oe(t,a)}}function ce(t,n,e){var a=[],r=[],o;function l(d){var h=d<0?~d:d;(r[h]||(r[h]=[])).push({i:d,g:o})}function p(d){d.forEach(l)}function u(d){d.forEach(p)}function s(d){d.forEach(u)}function c(d){switch(o=d,d.type){case"GeometryCollection":d.geometries.forEach(c);break;case"LineString":p(d.arcs);break;case"MultiLineString":case"Polygon":u(d.arcs);break;case"MultiPolygon":s(d.arcs);break}}return c(n),r.forEach(e==null?function(d){a.push(d[0].i)}:function(d){e(d[0].g,d[d.length-1].g)&&a.push(d[0].i)}),a}const le={props:{trait:{type:String,required:!0},percentage:{type:String,requied:!0}}},ue={key:0,class:"list-group-item"},de={class:"d-flex justify-content-between"};function he(t,n,e,a,r,o){return+e.percentage!=0?(k(),E("li",ue,[b("div",de,[b("span",null,I(e.trait)+":",1),pt(" "+I(Number(e.percentage).toFixed(1))+" % ",1)])])):W("",!0)}const At=P(le,[["render",he]]),pe={components:{SubgroupItem:At},props:{title:{type:String,required:!0},total:{type:Number,required:!0},group:{type:Object,required:!0}}},ge={key:0,class:"d-flex justify-content-between list-group-item title text-white"},ye={class:""},me={class:""};function fe(t,n,e,a,r,o){const l=q("SubgroupItem");return k(),E("div",null,[e.total!==0?(k(),E("div",ge,[b("span",ye,I(e.title),1),b("span",me,I(e.total.toFixed(1))+" %",1)])):W("",!0),(k(!0),E(tt,null,et(e.group.children,p=>(k(),E("div",null,[gt(l,{trait:p.name,percentage:p.value},null,8,["trait","percentage"])]))),256))])}const be=P(pe,[["render",fe],["__scopeId","data-v-b3baf647"]]),xe={components:{SubgroupItem:At,SubgroupTitle:be},data(){return{groups:[]}},props:{ancestryData:{type:Object,required:!0}},mounted(){this.groups=this.ancestryData.children.sort((t,n)=>n.total-t.total);for(let t of this.groups)t=t.children.sort((e,a)=>a.value-e.value)}},Ae={class:"list-group"};function ve(t,n,e,a,r,o){const l=q("SubgroupTitle");return k(),E("ul",Ae,[(k(!0),E(tt,null,et(r.groups,p=>(k(),yt(l,{title:p.name,total:p.total,group:p},null,8,["title","total","group"]))),256))])}const ke=P(xe,[["render",ve]]),vt=async(t,n,e)=>{try{t=await zt("https://raw.githubusercontent.com/holtzy/D3-graph-gallery/master/DATA/world.geojson"),Ee(t,n,e)}catch{}},Ee=(t,n,e)=>{const a=e.children,r=n?.clientWidth||0,o=window?.innerHeight-250||0;let l;const p=Ut().fitSize([r,o],{type:"Sphere"}),u=Ft(p),s="#F8961E",c=Q().domain([1,20]).range(["white",s]),d=Q().domain([1,25]).range([s,"white"]);let h=100,y=0;window.innerWidth<768&&(y=0,h=25);const x=R(n).append("svg").attr("width",r).attr("height",o).on("click",()=>dt(x,N));x.style("opacity",0).transition().duration(1e3).style("opacity",1);const N=qt().scaleExtent([1,5]).on("zoom",g=>{const{transform:m}=g;w.attr("transform",m),w.attr("stroke-width",1/m.k)});x.call(N),R("#zoom-out").on("click",()=>dt(x,N));const w=x.append("g"),j=Kt().on("drag",g=>{w.attr("transform",`translate(${g.x},${g.y})`)});x.call(j),l=w.append("g").attr("fill","#277DA1").selectAll("path").data(t.features).join("path").attr("d",u).style("opacity",.3).style("stroke","white").attr("transform","translate(0,0)"),l.append("title").text(g=>g.properties.name),w.append("path").attr("fill","none").attr("stroke","white").attr("stroke-linejoin","round").attr("d",u(se(t,t.features,(g,m)=>g!==m)));const D=ut(n),T=()=>{D.style("display","none").style("opacity",0)};Se(a,w,p,f,c,d,y,h).each(function(g){const m=R(this),v=g.children.length,_=w.append("g").attr("class","circle-group").attr("transform",`translate(${m.attr("cx")}, ${m.attr("cy")})`);_.append("text").attr("class","main-circle-tooltip").attr("id",`${g.n
1ame}-mini`).style("display",v?"":"none").style("fill-opacity",v?1:0).attr("x",0).attr("y",-m.attr("r")-8).style("text-anchor","middle").style("font-size",we()).text(g.total!==0?`${g.name}: ${Number(g.total).toFixed(1)} %`:null);const M=ut(n,g);m.on("mouseover",function(A,C){M.style("display","").style("opacity",1).html(`<div> 2 ${C.children.length?`<h2>${C.name}</h2>`:`<h4>${C.name}: </h4>`} 3 Total: ${Number(C.total).toFixed(1)} % 4 <p> ${C.description} </p> 5 </div> 6 `).style("left",`${A.pageX-430}px`).style("top",`${A.pageY-230}px`)}),m.on("mouseout",function(){M.style("display","none").style("opacity",0)});const S=g.children.map(A=>({r:A.value/1||0,name:A.name,description:A.description}));re(S),_.selectAll(".inner-circle").data(S).enter().append("circle").attr("class","inner-circle").attr("cx",A=>J(A.x)).attr("cy",A=>J(A.y)).attr("r",A=>J(A.r)).attr("fill",A=>c(A.r)).attr("stroke","#277DA1").attr("opacity",.85).attr("cursor","pointer").on("mouseover",(A,C)=>{D.style("display","").style("opacity",1).html(`<div> 7 <h5>${C.name}: </h5> 8 Total: ${C.r.toFixed(1)} % 9 <p> ${C.description}</p> 10 </div> 11 `).style("left",`${A.pageX-430}px`).style("top",`${A.pageY-230}px`)}).on("mouseout",T).on("click",(A,C)=>f(A,g))});function f(g,m){const v=p([m.coordinates.lon,m.coordinates.lat]);g.stopPropagation(),x.transition().duration(750).call(N.transform,mt.translate(r/2,o/2).scale(6).translate(-v[0],-v[1]),H(g,x.node()))}},Se=(t,n,e,a,r,o,l,p)=>{const u=Ce(l,p);return n.selectAll(".circle").data(t).enter().append("circle").attr("class","circle").attr("cx",c=>e([c.coordinates.lon,c.coordinates.lat])[0]).attr("cy",c=>e([c.coordinates.lon,c.coordinates.lat])[1]).attr("r",c=>c.total<1&&c.total>0?1:c.children.length?u(c.total/1.5):u(c.total)).attr("opacity",c=>c.children.length?.4:.85).attr("cursor","pointer").attr("fill",c=>c.children.length?"white":r(c.total)).attr("stroke","#277DA1").on("click",a)},ut=(t,n)=>R(t).append("div").attr("class","tooltip").attr("id",n?.name).style("display","none").style("opacity",0).style("background-color","white").style("border","solid").style("border-width","2px").style("border-radius","5px").style("padding","5px"),Ce=(t,n)=>Q().domain([0,100]).range([t,n]),J=t=>window.innerWidth<768?t/4:t,we=()=>window.innerWidth<768?"0.5em":"1em",dt=(t,n)=>{t.transition().duration(750).call(n.transform,mt)},_e=(t,n,e)=>{const a={name:"ancestry",children:[]};function r(o){return n.find(l=>l.keys.includes(o))}for(const o of Object.keys(t)){const l=r(o);if(l){let p=a.children.find(s=>s.name===l.groupName);p||(a.children.push({name:l.groupName,children:[],coordinates:{lat:l.coordinates[0],lon:l.coordinates[1]},total:0,description:l.description}),p=a.children.find(s=>s.name===l.groupName));let{description:u}=e.find(s=>s.name==o);p.children.push({name:o,value:t[o],description:u}),p.total+=+t[o]}}return a},ht=(t,n)=>{const e={name:"ancestry",children:[]};for(const a of Object.keys(t)){const r=n.find(o=>o.name===a);e.children.push({name:a,children:[],coordinates:{lat:r.coordinates[0].toFixed(1),lon:r.coordinates[1].toFixed(1)},total:t[a],description:r.description})}return e},Ne=(t,n)=>{const e=G(".circle").filter(a=>a.name==t);n.fill=e.attr("fill"),n.stroke=e.style("stroke"),n.r=e.attr("r"),n.tooltip=G(`[id="${t}-mini"]`),e.attr("fill","#277DA1").style("stroke","none").attr("r",n.r*1.1).attr("class"),n.tooltip.style("display","").style("fill-opacity",1)},Me=(t,n)=>{G(".circle").filter(a=>a.name==t).attr("fill",n.fill).attr("r",n.r).style("stroke",n.stroke),n.tooltip.style("display","none").style("fill-opacity",0)},De=(t,n,e)=>{R("svg").transition().duration(100).style("opacity",0).remove(),vt(t,n,e)},Te=t=>{const n=G(".circle").filter(r=>r.name==t),e=n.on("click"),a={target:n.node(),stopPropagation:()=>{}};e.call(n.node(),a,n.datum())},Re=[{groupName:"Americas",keys:["Native American"],coordinates:[31.42,-105.72],description:"Countries in South and North America"},{groupName:"Near and Middle East",keys:["Arabian","East Mediteranean","Near Eastern"],coordinates:[34.35,49.2],description:"Saudi Arabia, Yemen, Israel, Lebanon, Cyprus, Syria, Jordan, Turkey"},{groupName:"European",keys:["Armenian","Basque","Central European","East Balkan","East Central European","East European","North European","French","Iberian","Italian","North West European","North Caucasian","West European","Volga-Ural","West Caucasian","West Mediteranean"],coordinates:[49.26,15.31],description:`Armenia, Northern Spain (Basque Country), Hungary, Czech Republic, 12 Bulgaria, Romania, 13 Lithuania, Ukraine, Belarus, 14 Western Russia, 15 Finland, Norway, Sweden, Estonia, 16 France, 17 Spain, Portugal, 18 Italy, 19 Scotland, England, Germany, 20 Southern Russia (Chechnya, Ossetia, Dagestan), 21 Netherlands, Denmark, Northern Germany, England, 22 Central Russia (Volga and Ural river regions), 23 Southern Russia (Abkhazia), Georgia, 24 Italy (Sardinia)`},{groupName:"African",keys:["Central African","East African","North African","North East African","South East African","Pygmy","West African"],coordinates:[5.65,26.17],description:`Kenya, Uganda, Tanzania, Somalia, 25 Algeria, Morocco, Tunisia, 26 Ethiopia, Eritrea, 27 Botswana, Namibia, 28 Congo, Central African Republic, 29 Nigeria, Benin, Ghana, Togo, Guinea, Sierra Leone, Liberia`},{groupName:"Asian",keys:["East Asian","East Central Asian","South East Asian","Malayan","Oceanian","Siberian","South Asian","South Central Asian","South Chinese"],coordinates:[42.54,96.05],description:`Eastern China, Japanese, Korean, 30 Mongolia, Northern China, Far Eastern Russia, 31 Vietnam, Southern China, Thailand, 32 Malaysia, Laos, Cambodia, 33 Australia, Papua New Guinea, Pacific Islands, 34 Northern Russia, 35 India, Bangladesh, Sri Lanka, 36 Afghanistan, Pakistan, Iran,`}],X=[{name:"Native American",coordinates:[31.42,-105.72],description:"Countries in South and North America"},{name:"Arabian",coordinates:[24.16,45.06],description:"Saudi Arabia, Yemen"},{name:"East Mediteranean",coordinates:[32.97,35.41],description:"Israel, Lebanon, Cyprus"},{name:"Near Eastern",coordinates:[29.29,42.55],description:"Syria, Jordan, Turkey"},{name:"Armenian",coordinates:[40.06,45.03],description:"Armenia"},{name:"Basque",coordinates:[43.43,-4.98],description:"Northern Spain (Basque Country)"},{name:"Central European",coordinates:[47.16,19.5],description:"Hungary, Czech Republic"},{name:"East Balkan",coordinates:[45.94,24.96],description:"Bulgaria, Romania"},{name:"East Central European",coordinates:[48.37,31.16],description:"Lithuania, Ukraine, Belarus"},{name:"East European",coordinates:[52,37.95],description:"Western Russia"},{name:"North European",coordinates:[63,17],description:"Finland, Norway, Sweden, Estonia"},{name:"French",coordinates:[46.22,2.21],description:"France"},{name:"Iberian",coordinates:[40.71,-5.65],description:"Spain, Portugal"},{name:"Italian",coordinates:[41.87,12.56],description:"Italy"},{name:"North West European",coordinates:[52.64,-.56],description:"Scotland, England, Germany"},{name:"North Caucasian",coordinates:[43.58,45],description:"Southern Russia (Chechnya, Ossetia, Dagestan)"},{name:"West European",coordinates:[54.87,12.09],description:"Netherlands, Denmark, Northern Germany, England"}
36,{name:"Volga-Ural",coordinates:[52.5,55],description:"Central Russia (Volga and Ural river regions)"},{name:"West Caucasian",coordinates:[44,40],description:"Southern Russia (Abkhazia), Georgia"},{name:"West Mediteranean",coordinates:[37.54,14.38],description:"Italy (Sardinia)"},{name:"Central African",coordinates:[2.83,32.44],description:"Kenya, Tanzania, Uganda"},{name:"East African",coordinates:[-.28,39.07],description:"Kenya, Tanzania, Somalia"},{name:"North African",coordinates:[26.01,32.27],description:"Algeria, Morocco, Tunisia"},{name:"North East African",coordinates:[31.16,29.59],description:"Ethiopia, Somalia, Eritrea"},{name:"South East African",coordinates:[-21.33,17.07],description:"Botswana, Namibia"},{name:"Pygmy",coordinates:[.57,23.03],description:"Congo, Central African Republic"},{name:"West African",coordinates:[13.53,2.46],description:"Nigeria, Benin, Ghana, Togo, Guinea, Sierra Leone, Liberia"},{name:"East Asian",coordinates:[11.52,122.13],description:"Eastern China, Japanese, Korean"},{name:"East Central Asian",coordinates:[46.55,103.39],description:"Mongolia, Northern China, Far Eastern Russia"},{name:"South East Asian",coordinates:[12.38,104.09],description:"Vietnam, Southern China, Cambodia, Thailand"},{name:"Malayan",coordinates:[4.21,101.97],description:"Malaysia, Thailand, Laos, Cambodia"},{name:"Oceanian",coordinates:[-22.73,140.01],description:"Australia, Papua New Guinea, Pacific Islands"},{name:"Siberian",coordinates:[61.01,99.19],description:"Northern Russia"},{name:"South Asian",coordinates:[25.03,76.45],description:"India, Bangladesh, Sri Lanka"},{name:"South Central Asian",coordinates:[35.45,68.83],description:"Afghanistan, Pakistan, Iran"},{name:"South Chinese",coordinates:[21.61,109.94],description:"Southern China"}],je={ancestryData:{K36:{"Native American":"0.66","East Balkan":"2.00","South East Asian":"7.73",Italian:"2.23","Central European":"0.00","North European":"4.42","Volga-Ural":"10.00","West European":"7.28","West Mediteranean":"3.43",Oceanian:"1.58","South Central Asian":"7.15",French:"5.00",Pygmy:"9.00",Iberian:"10.63","North East African":"1.40","East Asian":"12.00","West Caucasian":"0.17","North West European":"9.62","Near Eastern":"10.00",Basque:"10.00","East Central European":"4.29",Armenian:"10.00",Arabian:"10.00","North African":"0.63","South Asian":"0.44","South Chinese":"0.93","Central African":"5.14","East Central Asian":"10.00",Siberian:"10.00","East Mediteranean":"10.00","East European":"10.00",Malayan:"0.27","North Caucasian":"10.00","West African":"27.77","East African":"0.19","South East African":"10.00"}}},Ie={components:{Subgrouping:ke,Toast:Ct},data(){return{loading:!1,restoreInitiated:!1,selectedModel:"K36",selectedAncestryData:{},subgrouping:!0,worldMapData:null,showMap:!0,jsonData:{},highlightedCircle:{fill:"",r:null,tooltip:null,stroke:""},showToast:!1,toast:{title:"",message:"",type:""}}},mounted(){vt(this.worldMapData,this.$refs.mapContainer,this.jsonData),document.title="Your Ancestry - "+this.$config.subText},computed:{...St({user:t=>t.user}),sortedAncestryData(){const t=Object.keys(this.selectedAncestryData).sort((e,a)=>this.selectedAncestryData[a]-this.selectedAncestryData[e]),n={};for(const e of t)+this.selectedAncestryData[e]&&(n[e]=this.selectedAncestryData[e]);return n}},watch:{selectedModel:{handler(t){this.user.ancestryData&&(Object.keys(this.user.ancestryData).length?this.selectedAncestryData=this.user.ancestryData[t]:this.selectedAncestryData=je.ancestryData[t],this.jsonData=ht(this.selectedAncestryData,X))},immediate:!0}},methods:{selectModel(t){this.selectedModel=t.target.value},getListItemStyle(t){const n=Math.max(...Object.values(this.selectedAncestryData)),a=(p=>{const u=parseInt(p.slice(1),16),s=u>>16&255,c=u>>8&255,d=u&255;return{r:s,g:c,b:d}})("#F8961E"),r=Math.round(t/n*255),o={r:255-r+a.r*(r/255),g:255-r+a.g*(r/255),b:255-r+a.b*(r/255)};return{backgroundColor:`rgb(${Math.round(o.r)}, ${Math.round(o.g)}, ${Math.round(o.b)})`,fontWeight:t===n?"bold":"normal",color:"black",cursor:"pointer"}},toggleSubgrouping(){this.subgrouping=!this.subgrouping,this.jsonData=this.subgrouping?ht(this.selectedAncestryData,X):_e(this.selectedAncestryData,Re,X),De(this.worldMapData,this.$refs.mapContainer,this.jsonData)},toggleShowMap(){this.showMap=!this.showMap},highlightRegionOn(t){Ne(t,this.highlightedCircle)},highlightRegionOff(t){Me(t,this.highlightedCircle)},zoomOnClick(t){Te(t)},async addToAncestryQueue(){try{const{data:t,status:n}=await Nt.addToAncestryQueue({userIds:[this.user.uid]});n===200&&(this.toast.title="Success",this.toast.message="Added user to ancestry queue.",this.toast.type="success",this.showToast=!0)}catch{}}}},$e={key:0,class:"spinner text-center"},We={key:0},Le={key:1},Oe={key:1,class:"container body"},ze={key:0,class:"component traits"},Fe={class:"component-body"},qe={class:"row"},Ge={class:"col-md-3"},Pe={class:"dropdown"},Ye={class:"list-container"},Ve={key:0,class:"list-group"},Ke=["onMouseover","onMouseout","onClick"],Ue={class:"d-flex justify-content-between"},Be={key:1},Je={class:"col-md-9 mt-5 mt-md-0"},Xe={class:"map",ref:"mapContainer"},He={key:1,class:"container body"},Qe={class:"component traits"},Ze={class:"component-body"},tn={class:"header"};function en(t,n,e,a,r,o){const l=q("Subgrouping"),p=q("Toast");return k(),E("div",null,[r.loading?(k(),E("div",$e,[n[4]||(n[4]=b("img",{src:wt,width:"100",height:"100"},null,-1)),r.restoreInitiated?(k(),E("p",We,"Requesting restore ...")):(k(),E("p",Le,"Loading your report ..."))])):W("",!0),r.loading?W("",!0):(k(),E("div",Oe,[t.user.ancestryData?(k(),E("div",ze,[b("div",Fe,[n[7]||(n[7]=b("div",{class:"header"}
36,[b("h1",null,"Your Ancestry"),b("p",{class:"page-description"},"Your ancestry generated using Eurogenes K36 calculator.")],-1)),b("div",qe,[b("div",Ge,[b("div",Pe,[r.subgrouping?(k(),E("button",{key:0,class:"btn btn-outline-secondary my-1",onClick:n[0]||(n[0]=(...u)=>o.toggleSubgrouping&&o.toggleSubgrouping(...u))}," Show by subgrouping ")):(k(),E("button",{key:1,class:"btn btn-outline-secondary my-1",onClick:n[1]||(n[1]=(...u)=>o.toggleSubgrouping&&o.toggleSubgrouping(...u))}," Show by region "))]),b("div",Ye,[r.subgrouping?(k(),E("ul",Ve,[(k(!0),E(tt,null,et(o.sortedAncestryData,(u,s)=>(k(),E("li",{class:"list-group-item",key:s,style:_t(o.getListItemStyle(u)),onMouseover:c=>o.highlightRegionOn(s),onMouseout:c=>o.highlightRegionOff(s),onClick:c=>o.zoomOnClick(s)},[b("div",Ue,[b("span",null,I(s)+":",1),pt(" "+I(Number(u).toFixed(1))+" % ",1)])],44,Ke))),128))])):(k(),E("div",Be,[gt(l,{ancestryData:r.jsonData},null,8,["ancestryData"])]))])]),b("div",Je,[n[5]||(n[5]=b("div",{class:"d-flex justify-content-end"},[b("button",{id:"zoom-out",class:"btn btn-outline-primary"},"Reset Map")],-1)),b("div",Xe,null,512),n[6]||(n[6]=b("div",{class:"d-flex justify-content-center"},[b("span",{class:"instructions"},"Click on any circle to zoom in. You can also pinch and drag to move the map. Click anywhere else to zoom out.")],-1))])])])])):(k(),E("div",He,[b("div",Qe,[b("div",Ze,[b("div",tn,[n[8]||(n[8]=b("h1",null,"Your Ancestry",-1)),n[9]||(n[9]=b("p",{class:"page-description"}," Looks like you don't have your ancestry data ready yet. Click the button below to generate it, we'll let you know once it's ready. ",-1)),b("button",{class:"btn btn-primary mt-3",onClick:n[2]||(n[2]=(...u)=>o.addToAncestryQueue&&o.addToAncestryQueue(...u))}," Generate Your Ancestry ")])])]),r.showToast?(k(),yt(p,{key:0,title:r.toast.title,message:r.toast.message,type:r.toast.type,onClose:n[3]||(n[3]=u=>r.showToast=!1)},null,8,["title","message","type"])):W("",!0)]))]))])}const rn=P(Ie,[["render",en]]);export{rn as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.