(this["webpackJsonptopola-viewer"]=this["webpackJsonptopola-viewer"]||[]).push([[0],{196:function(e,t,n){e.exports=n.p+"static/media/topola.060eef13.jpg"},287:function(e){e.exports=JSON.parse('{"menu.open":"Otw\xf3rz","menu.open_file":"Otw\xf3rz plik","menu.load_from_url":"Otw\xf3rz URL","menu.select_wikitree_id":"Wybierz WikiTree ID","menu.print":"Drukuj","menu.download":"Pobierz","menu.pdf_file":"Plik PDF","menu.png_file":"Plik PNG","menu.svg_file":"Plik SVG","menu.download_pdf":"Pobierz PDF","menu.download_png":"Pobierz PNG","menu.download_svg":"Pobierz SVG","menu.view":"Widok","menu.hourglass":"Wykres klepsydrowy","menu.relatives":"Wszyscy krewni","menu.fancy":"Ozdobne drzewo (eksperymentalne)","menu.wikitree_login":"Zaloguj do WikiTree","menu.wikitree_logged_in":"Zalogowano","menu.wikitree_popup_username":"Zalogowano do WikiTree jako {username}","menu.wikitree_popup":"Zalogowano do WikiTree","menu.github":"Projekt na stronie GitHub","menu.search.placeholder":"Szukaj osoby","menu.search.no_results":"Brak wynik\xf3w","intro.title":"Topola Genealogy","intro.description":"Topola Genealogy pozwala przegl\u0105da\u0107 drzewo genealogiczne w interaktywny spos\xf3b.","intro.instructions":"Kliknij OTW\xd3RZ PLIK lub OTW\xd3RZ URL, aby za\u0142adowa\u0107 plik GEDCOM. Wi\u0119kszo\u015b\u0107 program\xf3w genealogicznych posiada funkcj\u0119 eksportu do pliku GEDCOM.","intro.examples":"Poni\u017cej jest kilka przyk\u0142ad\xf3w znalezionych w Internecie:","intro.from":"\u017ar\xf3d\u0142o:","intro.privacy":"Prywatno\u015b\u0107","intro.privacy_note":"U\u017cywaj\u0105c funkcji \\"Otw\xf3rz plik\\", Twoje dane nie s\u0105 nigdzie wysy\u0142ane i pozostaj\u0105 na Twoim komputerze. U\u017cywaj\u0105c funkcji \\"Otw\xf3rz URL\\", dane z podanego adresu przesy\u0142ane s\u0105 przez us\u0142ug\u0119 {link} w celu umo\u017cliwienia za\u0142adowania danych z innej domeny (CORS).","load_from_url.title":"Otw\xf3rz z adresu URL","load_from_url.comment":"Dane z podanego adresu URL zostan\u0105 za\u0142adowane poprzez us\u0142ug\u0119 {link} w celu unikni\u0119cia problem\xf3w z CORS.","load_from_url.cancel":"Anuluj","load_from_url.load":"Otw\xf3rz","select_wikitree_id.title":"Podaj WikiTree ID","select_wikitree_id.comment":"Wpisz identyfikator profilu {wikiTreeLink}. Przyk\u0142ady: {example1}, {example2}","select_wikitree_id.cancel":"Anuluj","select_wikitree_id.load":"Otw\xf3rz","gedcom.BAPM":"Chrzest","gedcom.BIRT":"Narodziny","gedcom.BURI":"Pogrzeb","gedcom.CENS":"Spis ludno\u015bci","gedcom.CHR":"Chrzest","gedcom.DEAT":"\u015amier\u0107","gedcom.DSCR":"Opis","gedcom.EMAIL":"E-mail","gedcom.EVEN":"Wydarzenie","gedcom.OCCU":"Zaw\xf3d","gedcom.RIN":"ID","gedcom.TITL":"Tytu\u0142","gedcom.WWW":"Strona WWW","gedcom._UPD":"Ostatnia aktualizacja","date.abt":"oko\u0142o","date.cal":"wyliczone","date.est":"oszacowane","date.between":"mi\u0119dzy {from} a {to}","date.after":"po {from}","date.before":"przed {to}","error.error":"B\u0142\u0105d","error.failed_pdf":"Nie uda\u0142o si\u0119 utworzy\u0107 pliku PDF. Spr\xf3buj jeszcze raz z mniejszym diagramem lub pobierz plik SVG.","error.failed_png":"Nie uda\u0142o si\u0119 utworzy\u0107 pliku PNG. Spr\xf3buj jeszcze raz z mniejszym diagramem lub pobierz plik SVG.","error.failed_to_load_file":"B\u0142\u0105d wczytywania pliku","error.failed_wikitree_load_more":"B\u0142\u0105d podczas pobierania danych z WikiTree. {error}","wikitree.private":"Prywatne"}')},288:function(e,t){},331:function(e,t,n){e.exports=n(585)},343:function(e,t){},349:function(e,t){},410:function(e,t){},582:function(e,t,n){},585:function(e,t,n){"use strict";n.r(t);var a=n(34),r=n(285),i=n(286),o=n(0),s=n(76),c=n(287),l=n(8),u=n(41),d=n(40),m=n(48),f=n(10),h=n.n(f),p=n(18),g=n(28),v=n(29),w=n(33);function E(e,t){window.gtag("event",e,t)}var k,b=n(142),y=n(72),O=n(49),M=n(103),D=n(73),T=n(615),I=n(195),S=n(95),j=(n(74),n(35));function x(e){var t=Object(b.a)("#svgContainer").node(),n=y.c.transform.k,a=Object(M.a)([0,(t.clientWidth-e[0]*n)/2]),r=Object(M.a)([0,(t.clientHeight-e[1]*n)/2]);Object(b.a)("#chartSvg").attr("width",e[0]*n).attr("height",e[1]*n).attr("transform","translate(".concat(a,", ").concat(r,")")),Object(b.a)("#chart").attr("transform","scale(".concat(n,")")),t.scrollLeft=-y.c.transform.x,t.scrollTop=-y.c.transform.y}function _(){var e=Object(b.a)("#svgContainer").node(),t=e.scrollLeft+e.clientWidth/2,n=e.scrollTop+e.clientHeight/2,a=Object(S.b)(e).k;Object(b.a)(e).call(Object(S.a)().translateTo,t/a,n/a)}function R(e){var t=new FileReader;return t.readAsDataURL(e),new Promise((function(e,n){t.onload=function(t){return e(t.target.result)}}))}function N(e){return L.apply(this,arguments)}function L(){return(L=Object(p.a)(h.a.mark((function e(t){var n,a,r,i;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.href.baseVal){e.next=3;break}return e.abrupt("return");case 3:return e.prev=3,e.next=6,fetch(n);case 6:return a=e.sent,e.next=9,a.blob();case 9:return r=e.sent,e.next=12,R(r);case 12:i=e.sent,t.href.baseVal=i,e.next=19;break;case 16:e.prev=16,e.t0=e.catch(3),console.warn("Failed to load image:",e.t0);case 19:case"end":return e.stop()}}),e,null,[[3,16]])})))).apply(this,arguments)}function C(e){return z.apply(this,arguments)}function z(){return(z=Object(p.a)(h.a.mark((function e(t){var n;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=Array.from(t.getElementsByTagName("image")),e.next=3,Promise.all(n.map(N));case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function W(e){var t=new Image;return t.src=URL.createObjectURL(e),new Promise((function(e,n){t.addEventListener("load",(function(){return e(t)}))}))}function P(e){var t=document.createElement("canvas");t.width=2*e.width,t.height=2*e.height;var n=t.getContext("2d"),a=n.fillStyle;return n.fillStyle="white",n.fillRect(0,0,t.width,t.height),n.fillStyle=a,n.drawImage(e,0,0,t.width,t.height),t}function A(e,t){return new Promise((function(n,a){e.toBlob((function(e){e?n(e):a()}),t)}))}!function(e){e[e.Hourglass=0]="Hourglass",e[e.Relatives=1]="Relatives",e[e.Fancy=2]="Fancy"}(k||(k={}));var F=function(e){Object(u.a)(a,e);var t=Object(d.a)(a);function a(){var e;Object(g.a)(this,a);for(var n=arguments.length,r=new Array(n),i=0;i0&&void 0!==arguments[0]?arguments[0]:{initialRender:!1};if(t.initialRender||!this.animating){if(t.initialRender||!this.props.freezeAnimation){t.initialRender?(Object(b.a)("#chart").node().innerHTML="",this.chart=Object(j.createChart)({json:this.props.data,chartType:this.getChartType(),renderer:this.getRendererType(),svgSelector:"#chart",indiCallback:function(t){return e.props.onSelection(t)},animate:!0,updateSvgSize:!1,locale:this.context.intl.locale})):this.chart.setData(this.props.data);var n=this.chart.render({startIndi:this.props.selection.id,baseGeneration:this.props.selection.generation}),a=Object(b.a)("#chartSvg"),r=Object(b.a)("#svgContainer").node(),i=Object(S.b)(r).k,o=Object(D.a)([1,i,r.clientWidth/n.size[0],r.clientHeight/n.size[1]]),s=[Object(M.a)([.1,o]),2];this.zoomBehavior=Object(S.a)().scaleExtent(s).translateExtent([[0,0],n.size]).on("zoom",(function(){return x(n.size)})),Object(b.a)(r).on("scroll",_).call(this.zoomBehavior);var c=function(e){return function(){var t=Object(O.a)(r.scrollTop,e);return function(e){r.scrollTop=t(e)}}},l=function(e){return function(){var t=Object(O.a)(r.scrollLeft,e);return function(e){r.scrollLeft=t(e)}}},u=r.clientWidth/2-n.origin[0]*i,d=r.clientHeight/2-n.origin[1]*i,m=Object(M.a)([0,(r.clientWidth-n.size[0]*i)/2]),f=Object(M.a)([0,(r.clientHeight-n.size[1]*i)/2]),h=a.transition().delay(200).duration(500),p=t.initialRender?a:h;p.attr("transform","translate(".concat(m,", ").concat(f,")")).attr("width",n.size[0]*i).attr("height",n.size[1]*i),t.initialRender?(r.scrollLeft=-u,r.scrollTop=-d):h.tween("scrollLeft",l(-u)).tween("scrollTop",c(-d)),this.animating=!0,n.animationPromise.then((function(){e.animating=!1,e.rerenderRequired&&(e.rerenderRequired=!1,e.renderChart({initialRender:!1}))}))}}else this.rerenderRequired=!0}},{key:"componentDidMount",value:function(){this.renderChart({initialRender:!0})}},{key:"componentDidUpdate",value:function(e){var t=this.props.chartType!==e.chartType;this.renderChart({initialRender:t})}},{key:"render",value:function(){var e=this;return o.createElement("div",{id:"svgContainer"},o.createElement(T.a,{minWidth:768,className:"zoom"},o.createElement("button",{className:"zoom-in",onClick:function(){return e.zoom(1.3)}},"+"),o.createElement("button",{className:"zoom-out",onClick:function(){return e.zoom(1/1.3)}},"\u2212")),o.createElement("svg",{id:"chartSvg"},o.createElement("g",{id:"chart"})))}},{key:"getStrippedSvg",value:function(){var e=document.getElementById("chartSvg").cloneNode(!0);e.removeAttribute("transform");var t=Object(b.a)("#svgContainer").node(),n=Object(S.b)(t).k;return e.setAttribute("width",String(Number(e.getAttribute("width"))/n)),e.setAttribute("height",String(Number(e.getAttribute("height"))/n)),e.querySelector("#chart").removeAttribute("transform"),e}},{key:"getSvgContents",value:function(){return(new XMLSerializer).serializeToString(this.getStrippedSvg())}},{key:"getSvgContentsWithInlinedImages",value:function(){var e=Object(p.a)(h.a.mark((function e(){var t;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.getStrippedSvg(),e.next=3,C(t);case 3:return e.abrupt("return",(new XMLSerializer).serializeToString(t));case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"print",value:function(){var e=this,t=document.createElement("iframe");t.style.position="absolute",t.style.top="-1000px",t.style.left="-1000px",t.onload=function(){t.contentDocument.open(),t.contentDocument.write(e.getSvgContents()),t.contentDocument.close(),setTimeout((function(){t.contentWindow.focus(),t.contentWindow.print(),t.parentNode.removeChild(t)}),500)},document.body.appendChild(t)}},{key:"downloadSvg",value:function(){var e=Object(p.a)(h.a.mark((function e(){var t,n;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getSvgContentsWithInlinedImages();case 2:t=e.sent,n=new Blob([t],{type:"image/svg+xml"}),Object(I.saveAs)(n,"topola.svg");case 5:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"drawOnCanvas",value:function(){var e=Object(p.a)(h.a.mark((function e(){var t,n;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getSvgContentsWithInlinedImages();case 2:return t=e.sent,n=new Blob([t],{type:"image/svg+xml"}),e.t0=P,e.next=7,W(n);case 7:return e.t1=e.sent,e.next=10,(0,e.t0)(e.t1);case 10:return e.abrupt("return",e.sent);case 11:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"downloadPng",value:function(){var e=Object(p.a)(h.a.mark((function e(){var t,n;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.drawOnCanvas();case 2:return t=e.sent,e.next=5,A(t,"image/png");case 5:n=e.sent,Object(I.saveAs)(n,"topola.png");case 7:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"downloadPdf",value:function(){var e=Object(p.a)(h.a.mark((function e(){var t,a,r,i;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.e(3).then(n.t.bind(null,617,7));case 2:return t=e.sent,a=t.default,e.next=6,this.drawOnCanvas();case 6:r=e.sent,(i=new a({orientation:r.width>r.height?"l":"p",unit:"pt",format:[r.width,r.height]})).addImage(r,"PNG",0,0,r.width,r.height,"NONE"),i.save("topola.pdf");case 10:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()}]),a}(o.PureComponent);F.contextTypes={intl:l.d};var U=n(292),G=n.n(U),H=n(293),B=n.n(H),V=n(191);function K(e){return e.substring(1,e.length-1)}function J(e){var t=new Map;return e.indis.forEach((function(e){t.set(e.id,e)})),t}function q(e){var t=new Map;return e.fams.forEach((function(e){t.set(e.id,e)})),t}function Z(e){var t=e.find((function(e){return"HEAD"===e.tag})),n={},a={},r={};return e.forEach((function(e){"INDI"===e.tag?n[K(e.pointer)]=e:"FAM"===e.tag?a[K(e.pointer)]=e:e.pointer&&(r[K(e.pointer)]=e)})),{head:t,indis:n,fams:a,other:r}}function Y(e,t){return et?1:0}function X(e,t){var n=e&&(e.date||e.dateRange&&e.dateRange.from),a=t&&(t.date||t.dateRange&&t.dateRange.from);return n&&n.year&&a&&a.year?n.year!==a.year?n.year-a.year:n.month&&a.month&&(n.month!==a.month||n.day&&a.day&&n.day!==a.day)?n.month-a.month:0:0}function $(e){var t=function(e){var t=J(e);return function(e,n){var a=t.get(e),r=t.get(n);return X(a&&a.birth,r&&r.birth)||Y(e,n)}}(e),n=e.fams.map((function(e){return function(e,t){if(!e.children)return e;var n=e.children.sort(t);return Object.assign({},e,{children:n})}(e,t)}));return Object.assign({},e,{fams:n})}function Q(e){var t=function(e){var t=q(e);return function(e,n){var a=t.get(e),r=t.get(n);return X(a&&a.marriage,r&&r.marriage)||Y(e,n)}}(e),n=e.indis.map((function(e){return function(e,t){if(!e.fams)return e;var n=e.fams.sort(t);return Object.assign({},e,{fams:n})}(e,t)}));return Object.assign({},e,{indis:n})}function ee(e){return Q($(e))}var te=[".jpg",".png",".gif"];function ne(e,t){if(!e.images||0===e.images.length)return e;var n=[];return e.images.forEach((function(e){var a=e.url.match(/[^/\\]*$/)[0];t.has(a)?n.push({url:t.get(a),title:e.title}):e.url.startsWith("http")&&function(e){var t=e.toLowerCase();return te.some((function(e){return t.endsWith(e)}))}(e.url)&&n.push(e)})),Object.assign({},e,{images:n})}function ae(e,t){var n=e.indis.map((function(e){return ne(e,t)}));return Object.assign({},e,{indis:n})}function re(e){var t=e&&e.tree&&e.tree.find((function(e){return"SOUR"===e.tag})),n=t&&t.tree&&t.tree.find((function(e){return"NAME"===e.tag}));return n&&n.data||null}var ie=new Map([["abt","about"],["cal","calculated"],["est","estimated"]]);function oe(e,t){var n=void 0!==e.day,a=void 0!==e.month,r=void 0!==e.year;if(!n&&!a&&!r)return e.text||"";var i=new Date(r?e.year:0,a?e.month-1:0,n?e.day:1),o=e.qualifier&&e.qualifier.toLowerCase(),s={day:n?"numeric":void 0,month:a?"long":void 0,year:r?"numeric":void 0};return[o&&t.formatMessage({id:"date.".concat(o),defaultMessage:ie.get(o)||o}),new Intl.DateTimeFormat(t.locale,s).format(i)].join(" ")}function se(e,t){return e?e.date?oe(e.date,t):e.dateRange?function(e,t){var n=e.from,a=e.to,r=n&&oe(n,t),i=a&&oe(a,t);return r&&i?t.formatMessage({id:"date.between",defaultMessage:"between {from} and {to}"},{from:r,to:i}):r?t.formatMessage({id:"date.after",defaultMessage:"after {from}"},{from:r}):i?t.formatMessage({id:"date.before",defaultMessage:"before {to}"},{to:i}):""}(e.dateRange,t):"":""}var ce=["BIRT","BAPM","CHR","DEAT","BURI","EVEN","CENS"],le=["NAME","SEX","FAMC","FAMS","NOTE","SOUR"],ue=new Map([["BAPM","Baptism"],["BIRT","Birth"],["BURI","Burial"],["CENS","Census"],["CHR","Christening"],["DEAT","Death"],["EMAIL","E-mail"],["EVEN","Event"],["OCCU","Occupation"],["TITL","Title"],["WWW","WWW"]]);function de(e){return o.createElement(l.a,{id:"gedcom.".concat(e),defaultMessage:ue.get(e)||e})}function me(e){return o.createElement(o.Fragment,null,e.map((function(e,t){return o.createElement("div",{key:t},o.createElement(B.a,{properties:{target:"_blank"}},e),o.createElement("br",null))})))}function fe(e){var t=[e.data];return e.tree.forEach((function(e){if("CONC"===e.tag&&e.data){var n=t.length-1;t[n]+=e.data}else"CONT"===e.tag&&e.data&&t.push(e.data)})),t}function he(e,t){var n=[];e.data&&e.data.length>1&&n.push(o.createElement("i",null,e.data));var r=e.tree.find((function(e){return"DATE"===e.tag}));r&&r.data&&n.push(function(e,t){return se(Object(j.getDate)(e),t)}(r.data,t));var i=e.tree.find((function(e){return"PLAC"===e.tag}));return i&&i.data&&n.push.apply(n,Object(a.a)(fe(i))),e.tree.filter((function(e){return"NOTE"===e.tag})).forEach((function(e){return fe(e).forEach((function(e){return n.push(o.createElement("i",null,e))}))})),n.length?o.createElement(o.Fragment,null,o.createElement("div",{className:"ui sub header"},de(e.tag)),o.createElement("span",null,me(n))):null}function pe(e){return me(fe(e).map((function(e,t){return o.createElement("i",{key:t},e)})))}function ge(e){return o.createElement("h2",{className:"ui header"},e.data.split("/").filter((function(e){return!!e})).map((function(e,t){return o.createElement("div",{key:t},e,o.createElement("br",null))})))}function ve(e,t,n){return G()(t,(function(t){return e.filter((function(e){return e.tag===t})).map((function(e){return n(e)}))})).filter((function(e){return null!==e})).map((function(e,t){return o.createElement("div",{className:"ui segment",key:t},e)}))}function we(e){return e.tree.length>0||e.data&&!e.data.startsWith("@")}function Ee(e){return e.filter((function(e){return!le.includes(e.tag)&&!ce.includes(e.tag)})).filter(we).map((function(e){return function(e){var t=[];return e.data&&t.push.apply(t,Object(a.a)(fe(e))),e.tree.filter((function(e){return"NOTE"===e.tag})).forEach((function(e){return fe(e).forEach((function(e){return t.push(o.createElement("i",null,e))}))})),t.length?o.createElement(o.Fragment,null,o.createElement("div",{className:"ui sub header"},de(e.tag)),o.createElement("span",null,me(t))):null}(e)})).filter((function(e){return null!==e})).map((function(e,t){return o.createElement("div",{className:"ui segment",key:t},e)}))}var ke=function(e){Object(u.a)(n,e);var t=Object(d.a)(n);function n(){return Object(g.a)(this,n),t.apply(this,arguments)}return Object(v.a)(n,[{key:"render",value:function(){var e=this,t=this.props.gedcom.indis[this.props.indi].tree,n=t.map((function(t){return function(e,t){if(e.data){var n=t.other[K(e.data)];if(n)return n}return e}(t,e.props.gedcom)})).filter(we);return o.createElement("div",{className:"ui segments",id:"details"},ve(t,["NAME"],ge),ve(t,ce,(function(t){return he(t,e.context.intl)})),Ee(n),ve(n,["NOTE"],pe))}}]),n}(o.Component);function be(e,t,n){return{id:t&&e.indis.some((function(e){return e.id===t}))?t:e.indis[0].id,generation:n||0}}function ye(e,t,n){var a=function(e,t){var n=Object(V.parse)(e),a=Object(j.gedcomEntriesToJson)(n);if(!a||!a.indis||!a.indis.length||!a.fams||!a.fams.length)throw new Error("Failed to read GEDCOM file");return{chartData:ae(ee(a),t),gedcom:Z(n)}}(e,n||new Map),r=JSON.stringify(a);try{sessionStorage.setItem(t,r)}catch(i){console.warn("Failed to store data in session storage: "+i)}return a}function Oe(e,t){return Me.apply(this,arguments)}function Me(){return(Me=Object(p.a)(h.a.mark((function e(t,n){var a,r,i,o,s,c;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,!(a=sessionStorage.getItem(t))){e.next=4;break}return e.abrupt("return",JSON.parse(a));case 4:e.next=9;break;case 6:e.prev=6,e.t0=e.catch(0),console.warn("Failed to load data from session storage: "+e.t0);case 9:return(r=t.match(/https:\/\/drive\.google\.com\/file\/d\/(.*)\/.*/))&&(t="https://drive.google.com/uc?id=".concat(r[1],"&export=download")),(i=t.match(/https:\/\/drive\.google\.com\/open\?id=([^&]*)&?.*/))&&(t="https://drive.google.com/uc?id=".concat(i[1],"&export=download")),o=n?"https://cors-anywhere.herokuapp.com/"+t:t,e.next=16,window.fetch(o);case 16:if(200===(s=e.sent).status){e.next=19;break}throw new Error(s.statusText);case 19:return e.next=21,s.text();case 21:return c=e.sent,e.abrupt("return",ye(c,t));case 23:case"end":return e.stop()}}),e,null,[[0,6]])})))).apply(this,arguments)}function De(e,t,n){return Te.apply(this,arguments)}function Te(){return(Te=Object(p.a)(h.a.mark((function e(t,n,a){var r;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,!(r=sessionStorage.getItem(t))){e.next=4;break}return e.abrupt("return",JSON.parse(r));case 4:e.next=9;break;case 6:e.prev=6,e.t0=e.catch(0),console.warn("Failed to load data from session storage: "+e.t0);case 9:if(n){e.next=11;break}throw new Error("Error loading data. Please upload your file again.");case 11:return e.abrupt("return",ye(n,t,a));case 12:case"end":return e.stop()}}),e,null,[[0,6]])})))).apply(this,arguments)}ke.contextTypes={intl:l.d};var Ie=n(196),Se=n.n(Ie),je=n(605),xe=n(611),_e=n(318),Re=n(598);function Ne(e){return o.createElement(Re.a,{to:{pathname:"/view",search:w.stringify({url:e.url})}},e.text)}function Le(){var e=o.createElement(o.Fragment,null,o.createElement("p",null,o.createElement(l.a,{id:"intro.description",defaultMessage:"Topola Genealogy is a genealogy tree viewer that lets you browse the structure of the family."})),o.createElement("p",null,o.createElement(l.a,{id:"intro.instructions",defaultMessage:"Use the OPEN FILE or LOAD FROM URL buttons above to load a GEDCOM file. You can export a GEDCOM file from most of the existing genealogy programs and web sites."})),o.createElement("p",null,o.createElement(l.a,{id:"intro.examples",defaultMessage:"Here are some examples from the web that you can view:"})),o.createElement("ul",null,o.createElement("li",null,o.createElement(Ne,{url:"http://genpol.com/module-Downloads-prep_hand_out-lid-32.html",text:"Karol Wojty\u0142a"})," ","(",o.createElement(l.a,{id:"intro.from",defaultMessage:"from"})," ",o.createElement("a",{href:"http://genpol.com/module-Downloads-display-lid-32.html"},"GENPOL"),")"),o.createElement("li",null,o.createElement(Ne,{url:"https://webtreeprint.com/tp_downloader.php?path=famous_gedcoms/shakespeare.ged",text:"Shakespeare"})," ","(",o.createElement(l.a,{id:"intro.from",defaultMessage:"from"})," ",o.createElement("a",{href:"https://webtreeprint.com/tp_famous_gedcoms.php"},"webtreeprint.com"),")"),o.createElement("li",null,o.createElement(Ne,{url:"http://genealogyoflife.com/tng/gedcom/HarryPotter.ged",text:"Harry Potter"})," ","(",o.createElement(l.a,{id:"intro.from",defaultMessage:"from"})," ",o.createElement("a",{href:"http://famousfamilytrees.blogspot.com/"},"Famous Family Trees"),")")),o.createElement("p",null,o.createElement("b",null,o.createElement(l.a,{id:"intro.privacy",defaultMessage:"Privacy"})),": ",o.createElement(l.a,{id:"intro.privacy_note",defaultMessage:'When using the "load from file" option, this site does not send your data anywhere and files loaded from disk do not leave your computer. When using "load from URL", data is passed through the {link} service to deal with an issue with cross-site file loading in the browser (CORS).',values:{link:o.createElement("a",{href:"https://cors-anywhere.herokuapp.com/"},"cors-anywhere")}})),o.createElement("p",{className:"ui right aligned version"},"version: ","2020-05-01 16:57:41 +0200".slice(0,16)," (",o.createElement("a",{href:"https://github.com/PeWu/topola-viewer/commit/".concat("f588c62")},"f588c62"),")"));return o.createElement("div",{id:"content"},o.createElement("div",{className:"backgroundImage"}),o.createElement(je.a,{className:"intro"},o.createElement(T.a,{as:je.a.Content,minWidth:768},o.createElement(je.a.Header,null,o.createElement(l.a,{id:"intro.title",defaultMessage:"Topola Genealogy Viewer"}))),o.createElement(je.a.Content,null,o.createElement(T.a,{as:xe.a,minWidth:768},o.createElement(xe.a.Row,null,o.createElement(xe.a.Column,{width:5},o.createElement(_e.a,{src:Se.a,alt:"Topola logo"})),o.createElement(xe.a.Column,{width:11},e))),o.createElement(T.a,{maxWidth:767},o.createElement(_e.a,{src:Se.a,alt:"Topola logo",centered:!0,size:"tiny",className:"blockImage"}),e))))}var Ce=n(606),ze=n(616),We=n(601),Pe=n(197),Ae=n.n(Pe);function Fe(e){try{return sessionStorage.getItem(e)}catch(t){console.warn("Failed to load data from session storage: "+t)}return null}function Ue(e,t){try{sessionStorage.setItem(e,t)}catch(n){console.warn("Failed to store data in session storage: "+n)}}function Ge(e,t){return He.apply(this,arguments)}function He(){return(He=Object(p.a)(h.a.mark((function e(t,n){var a,r,i,o,s;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:for(r in(a=new FormData).append("format","json"),t)a.append(r,t[r]);return i=n?"https://cors-anywhere.herokuapp.com/https://api.wikitree.com/api.php":"https://api.wikitree.com/api.php",e.next=6,window.fetch(i,{method:"POST",body:a,credentials:n?void 0:"include"});case 6:return o=e.sent,e.next=9,o.text();case 9:return s=e.sent,e.abrupt("return",JSON.parse(s));case 11:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Be(e,t){return Ve.apply(this,arguments)}function Ve(){return(Ve=Object(p.a)(h.a.mark((function e(t,n){var a,r,i,o;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a="wikitree:ancestors:".concat(t),!(r=Fe(a))){e.next=4;break}return e.abrupt("return",JSON.parse(r));case 4:return e.next=6,Ge({action:"getAncestors",key:t,fields:"*"},n);case 6:return i=e.sent,o=i[0].ancestors,Ue(a,JSON.stringify(o)),e.abrupt("return",o);case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ke(e,t){return Je.apply(this,arguments)}function Je(){return(Je=Object(p.a)(h.a.mark((function e(t,n){var a,r,i,o;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a=[],r=[],t.forEach((function(e){var t=Fe("wikitree:relatives:".concat(e));t?a.push(JSON.parse(t)):r.push(e)})),0!==r.length){e.next=5;break}return e.abrupt("return",a);case 5:return e.next=7,Ge({action:"getRelatives",keys:r.join(","),getChildren:!0,getSpouses:!0},n);case 7:if(null!==(i=e.sent)[0].items){e.next=10;break}throw new Error("WikiTree profile ".concat(r[0]," not found."));case 10:return(o=i[0].items.map((function(e){return e.person}))).forEach((function(e){Ue("wikitree:relatives:".concat(e.Name),JSON.stringify(e))})),e.abrupt("return",a.concat(o));case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function qe(e){return Ze.apply(this,arguments)}function Ze(){return(Ze=Object(p.a)(h.a.mark((function e(t){var n;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Ge({action:"clientLogin",authcode:t},!1);case 2:return n=e.sent,e.abrupt("return",n.clientLogin);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ye(){return Ae.a.get("wikidb_wtb_UserName")}function Xe(e,t,n){return $e.apply(this,arguments)}function $e(){return($e=Object(p.a)(h.a.mark((function e(t,n,r){var i,o,s,c,l,u,d,f,p,g,v,w,E,k,b,y,O,M,D,T,I,S,j,x,_;return h.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((i="apps.wikitree.com"!==window.location.hostname)||Ye()||!r){e.next=6;break}return e.next=4,qe(r);case 4:"Success"===(o=e.sent).result&&(sessionStorage.clear(),Ae.a.set("wikidb_wtb_UserName",o.username));case 6:return s=[],e.next=9,Ke([t],i);case 9:if((c=e.sent)[0].Name){e.next=12;break}throw new Error("WikiTree profile ".concat(t," is not accessible. Try logging in."));case 12:return l=Object.values(c[0].Spouses).map((function(e){return e.Name})),e.next=15,Promise.all([t].concat(l).map((function(e){return Be(e,i)})));case 15:return u=e.sent,d=u.flat().map((function(e){return e.Name})).filter((function(e){return!!e})),e.next=19,Ke(d,i);case 19:f=e.sent,p=new Map,g=new Map,u.forEach((function(e,t){var n=1e3*t;e.forEach((function(e){e.Id<0&&(e.Id-=n,e.Name="".concat("~Private").concat(e.Id)),e.Father<0&&(e.Father-=n,p.set(e.Id,e.Father)),e.Mother<0&&(e.Mother-=n,g.set(e.Id,e.Mother))}))})),f.forEach((function(e){var t=p.get(e.Id);t&&(e.Father=t);var n=g.get(e.Id);n&&(e.Mother=n)})),s.push.apply(s,Object(a.a)(f)),v=u.flat().filter((function(e){return e.Id<0})),s.push.apply(s,Object(a.a)(v)),w=5,E=[t],k=0;case 30:if(!(E.length>0&&k<=w)){e.next=41;break}return e.next=33,Ke(E,i);case 33:b=e.sent,s.push.apply(s,Object(a.a)(b)),y=b.flatMap((function(e){return Object.values(e.Spouses)})),s.push.apply(s,Object(a.a)(y)),E=b.flatMap((function(e){return Object.values(e.Children).map((function(e){return e.Name}))})),k++,e.next=30;break;case 41:return O=new Map,M=new Map,D=new Map,T=new Map,s.forEach((function(e){if(T.set(e.Id,e.Name),e.Mother||e.Father){var t=Qe(e.Mother,e.Father);rt(O,e.Mother).add(t),rt(O,e.Father).add(t),rt(M,t).add(e.Id),D.set(t,{wife:e.Mother||void 0,husband:e.Father||void 0})}})),I=[],S=new Set,s.forEach((function(e){if(!S.has(e.Id)){S.add(e.Id);var t=et(e,n);e.Spouses&&Object.values(e.Spouses).forEach((function(t){var n=Qe(e.Id,t.Id);rt(O,e.Id).add(n),rt(O,t.Id).add(n);var a="Male"===e.Gender?{wife:t.Id,husband:e.Id,spouse:t}:{wife:e.Id,husband:t.Id,spouse:t};D.set(n,a)})),t.fams=Array.from(rt(O,e.Id)),I.push(t)}})),j=Array.from(D.entries()).map((function(e){var t=Object(m.a)(e,2),n=t[0],a=t[1],r={id:n},i=a.wife&&T.get(a.wife);i&&(r.wife=i);var o=a.husband&&T.get(a.husband);if(o&&(r.husb=o),r.children=Array.from(rt(M,n)).map((function(e){return T.get(e)})),a.spouse&&(a.spouse.marriage_date&&"0000-00-00"!==a.spouse.marriage_date||a.spouse.marriage_location)){var s=tt(a.spouse.marriage_date);r.marriage=Object.assign({},s,{place:a.spouse.marriage_location})}return r})),x=ee({indis:I,fams:j}),_=at(I),e.abrupt("return",{chartData:x,gedcom:_});case 53:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Qe(e,t){return t>e?"".concat(e,"_").concat(t):"".concat(t,"_").concat(e)}function et(e,t){var n={id:e.Name};if(e.Name.startsWith("~Private")&&(n.hideId=!0,n.firstName=t.formatMessage({id:"wikitree.private",defaultMessage:"Private"})),e.FirstName&&"Unknown"!==e.FirstName?n.firstName=e.FirstName:e.RealName&&"Unknown"!==e.RealName&&(n.firstName=e.RealName),"Unknown"!==e.LastNameAtBirth&&(n.lastName=e.LastNameAtBirth),(e.Mother||e.Father)&&(n.famc=Qe(e.Mother,e.Father)),"Male"===e.Gender?n.sex="M":"Female"===e.Gender&&(n.sex="F"),e.BirthDate&&"0000-00-00"!==e.BirthDate||e.BirthLocation||"unknown"!==e.BirthDateDecade){var a=tt(e.BirthDate,e.DataStatus&&e.DataStatus.BirthDate)||nt(e.BirthDateDecade);n.birth=Object.assign({},a,{place:e.BirthLocation})}if(e.DeathDate&&"0000-00-00"!==e.DeathDate||e.DeathLocation||"unknown"!==e.DeathDateDecade){var r=tt(e.DeathDate,e.DataStatus&&e.DataStatus.DeathDate)||nt(e.DeathDateDecade);n.death=Object.assign({},r,{place:e.DeathLocation})}return e.PhotoData&&(n.images=[{url:"https://www.wikitree.com".concat(e.PhotoData.url)}]),n}function tt(e,t){if(e){var n=e.match(/(\d\d\d\d)-(\d\d)-(\d\d)/);if(!n)return{date:{text:e}};var a={};return"0000"!==n[1]&&(a.year=~~n[1]),"00"!==n[2]&&(a.month=~~n[2]),"00"!==n[3]&&(a.day=~~n[3]),"after"===t?{dateRange:{from:a}}:"before"===t?{dateRange:{to:a}}:("guess"===t&&(a.qualifier="abt"),{date:a})}}function nt(e){return"unknown"!==e?{date:{text:e}}:void 0}function at(e){var t={};return e.forEach((function(e){var n=e.id.replace(/ /g,"_");t[e.id]={level:0,pointer:"@".concat(e.id,"@"),tag:"INDI",data:"",tree:[{level:1,pointer:"",tag:"NAME",data:"".concat(e.firstName||""," /").concat(e.lastName||"","/"),tree:[]}]},e.id.startsWith("~")||t[e.id].tree.push({level:1,pointer:"",tag:"WWW",data:"https://www.wikitree.com/wiki/".concat(n),tree:[]})})),{head:{level:0,pointer:"",tag:"HEAD",data:"",tree:[]},indis:t,fams:{},other:{}}}function rt(e,t){var n=e.get(t);if(n)return n;var a=new Set;return e.set(t,a),a}var it=n(613),ot=n(614),st=n(609),ct=n(297),lt=n.n(ct),ut=n(198),dt=n.n(ut),mt=n(298),ft=n.n(mt),ht=n(299),pt=n.n(ht);function gt(e){return e.toLocaleLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\u0142/g,"l")}function vt(e,t){return e.score!==t.score?t.score-e.score:ft()(e.ref,t.ref)}var wt=function(){function e(t){Object(g.a)(this,e),this.index=void 0,this.indiMap=void 0,this.famMap=void 0,this.indiMap=J(t),this.famMap=q(t)}return Object(v.a)(e,[{key:"initialize",value:function(){var e=this;this.index=pt()((function(){var t=this;this.ref("id"),this.field("id"),this.field("name",{boost:10}),this.field("normalizedName",{boost:8}),this.field("spouseLastName",{boost:2}),this.field("normalizedSpouseLastName",{boost:2}),e.indiMap.forEach((function(n){var a=[n.firstName,n.lastName].join(" "),r=function(e,t,n){return(e.fams||[]).map((function(e){return n.get(e)})).map((function(e){return e&&e.husb})).map((function(e){return e&&t.get(e)})).map((function(e){return e&&e.lastName})).join(" ")}(n,e.indiMap,e.famMap);t.add({id:n.id,name:a,normalizedName:gt(a),spouseLastName:r,normalizedSpouseLastName:gt(r)})}))}))}},{key:"search",value:function(e){var t=this,n=e.split(" ").filter((function(e){return!!e})).map((function(e){return"+".concat(e,"*")})).join(" ");return this.index.search(n).sort(vt).slice(0,8).map((function(e){return{id:e.ref,indi:t.indiMap.get(e.ref)}}))}}]),e}();function Et(e){var t=[e.indi.firstName,e.indi.lastName].join(" ").trim();return e.id.length>8?t:o.createElement(o.Fragment,null,t," ",o.createElement("i",null,"(",e.id,")"))}function kt(e,t){var n=se(e.birth,t),a=se(e.death,t);return a?"".concat(n," \u2013 ").concat(a):n}var bt,yt,Ot=n(603),Mt=n(612),Dt=n(77),Tt=n(602),It=n(600),St=n(587),jt=n(607),xt=n(604),_t=n(608),Rt=n(78),Nt=n.n(Rt);function Lt(e){return new Promise((function(t,n){var a=new FileReader;a.onload=function(e){t(e.target.result)},a.readAsText(e)}))}function Ct(e){var t=e.toLowerCase();return t.endsWith(".jpg")||t.endsWith(".png")}!function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.NOT_LOGGED_IN=1]="NOT_LOGGED_IN",e[e.LOGGED_IN=2]="LOGGED_IN"}(bt||(bt={})),function(e){e[e.LARGE=0]="LARGE",e[e.SMALL=1]="SMALL"}(yt||(yt={}));var zt,Wt=function(e){Object(u.a)(n,e);var t=Object(d.a)(n);function n(){var e;Object(g.a)(this,n);for(var a=arguments.length,r=new Array(a),i=0;i