Files
topola-viewer/static/js/main.27298971.chunk.js
Przemek Wiech 547b44f1dc Updates
2020-02-03 14:00:44 +01:00

2 lines
48 KiB
JavaScript

(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{252:function(e){e.exports={"menu.load_from_url":"Otw\xf3rz URL","menu.load_from_file":"Otw\xf3rz plik","menu.print":"Drukuj","menu.download":"Pobierz","menu.pdf_file":"Plik PDF","menu.png_file":"Plik PNG","menu.svg_file":"Plik 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":"\u0179r\xf3d\u0142a na GitHub","menu.powered_by":"Topola Genealogy","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 URL lub OTW\xd3RZ PLIK, 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","gedcom.BAPM":"Chrzest","gedcom.BIRT":"Narodziny","gedcom.BURI":"Pogrzeb","gedcom.CHR":"Chrzest","gedcom.DEAT":"\u015amier\u0107","gedcom.EMAIL":"E-mail","gedcom.EVEN":"Wydarzenie","gedcom.OCCU":"Zaw\xf3d","gedcom.TITL":"Tytu\u0142","gedcom.WWW":"Strona WWW","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"}},253:function(e,t){},296:function(e,t,n){e.exports=n(527)},308:function(e,t){},314:function(e,t){},524:function(e,t,n){},527:function(e,t,n){"use strict";n.r(t);var a=n(44),r=n(250),i=n(251),o=n(0),s=n(64),c=n(252),l=n(15),u=n(16),d=n.n(u),f=n(20),p=n(29),h=n(30),m=n(40),g=n(37),v=n(39),w=n(65),y=n(32);function E(e,t){window.gtag("event",e,t)}var b,k=n(18),O=n(255),x=n.n(O),S=n(166),M=n(33);function j(){var e=k.select("#chart").node().parentElement;e.scrollLeft=-k.event.transform.x,e.scrollTop=-k.event.transform.y}function _(){var e=k.select("#chart").node().parentElement,t=e.scrollLeft+e.clientWidth/2,n=e.scrollTop+e.clientHeight/2;k.select(e).call(k.zoom().translateTo,t,n)}function D(e){var t=new FileReader;return t.readAsDataURL(e),new Promise(function(e,n){t.onload=function(t){return e(t.target.result)}})}function T(e){return R.apply(this,arguments)}function R(){return(R=Object(f.a)(d.a.mark(function e(t){var n,a,r,i;return d.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,D(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 N(e){return L.apply(this,arguments)}function L(){return(L=Object(f.a)(d.a.mark(function e(t){var n;return d.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(T));case 3:case"end":return e.stop()}},e)}))).apply(this,arguments)}function C(e){var t=new Image;return t.src=URL.createObjectURL(e),new Promise(function(e,n){t.addEventListener("load",function(){return e(t)})})}function I(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 z(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"}(b||(b={}));var P=function(e){function t(){var e,n;Object(p.a)(this,t);for(var a=arguments.length,r=new Array(a),i=0;i<a;i++)r[i]=arguments[i];return(n=Object(m.a)(this,(e=Object(g.a)(t)).call.apply(e,[this].concat(r)))).chart=void 0,n.animating=!1,n.rerenderRequired=!1,n}return Object(v.a)(t,e),Object(h.a)(t,[{key:"getChartType",value:function(){switch(this.props.chartType){case b.Hourglass:return M.HourglassChart;case b.Relatives:return M.RelativesChart;case b.Fancy:return M.FancyChart;default:return M.HourglassChart}}},{key:"getRendererType",value:function(){switch(this.props.chartType){case b.Fancy:return M.CircleRenderer;default:return M.DetailedRenderer}}},{key:"renderChart",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{initialRender:!1};if(t.initialRender||!this.animating){t.initialRender?(k.select("#chart").node().innerHTML="",this.chart=Object(M.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=k.select("#chart"),r=a.node().parentElement;k.select(r).on("scroll",_).call(k.zoom().scaleExtent([1,1]).translateExtent([[0,0],n.size]).on("zoom",j));var i,o,s=r.clientWidth/2-n.origin[0],c=r.clientHeight/2-n.origin[1],l=k.max([0,(r.clientWidth-n.size[0])/2]),u=k.max([0,(r.clientHeight-n.size[1])/2]),d=a.transition().delay(200).duration(500);(t.initialRender?a:d).attr("transform","translate(".concat(l,", ").concat(u,")")).attr("width",n.size[0]).attr("height",n.size[1]),t.initialRender?(r.scrollLeft=-s,r.scrollTop=-c):d.tween("scrollLeft",(o=-s,function(){var e=k.interpolateNumber(r.scrollLeft,o);return function(t){r.scrollLeft=e(t)}})).tween("scrollTop",(i=-c,function(){var e=k.interpolateNumber(r.scrollTop,i);return function(t){r.scrollTop=e(t)}})),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(){return o.createElement("div",{id:"svgContainer"},o.createElement("svg",{id:"chart"}))}},{key:"getSvgContents",value:function(){var e=document.getElementById("chart").cloneNode(!0);return e.removeAttribute("transform"),(new XMLSerializer).serializeToString(e)}},{key:"getSvgContentsWithInlinedImages",value:function(){var e=Object(f.a)(d.a.mark(function e(){var t;return d.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(t=document.getElementById("chart").cloneNode(!0)).removeAttribute("transform"),e.next=4,N(t);case 4:return e.abrupt("return",(new XMLSerializer).serializeToString(t));case 5:case"end":return e.stop()}},e)}));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(f.a)(d.a.mark(function e(){var t,n;return d.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(S.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(f.a)(d.a.mark(function e(){var t,n;return d.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=I,e.next=7,C(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(f.a)(d.a.mark(function e(){var t,n;return d.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,z(t,"image/png");case 5:n=e.sent,Object(S.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(f.a)(d.a.mark(function e(){var t,n;return d.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.drawOnCanvas();case 2:t=e.sent,(n=new x.a({orientation:t.width>t.height?"l":"p",unit:"pt",format:[t.width,t.height]})).addImage(t,"PNG",0,0,t.width,t.height,"NONE"),n.save("topola.pdf");case 6:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()}]),t}(o.PureComponent);P.contextTypes={intl:l.d};var W=n(257),U=n.n(W),A=n(258),F=n.n(A),G=n(162);function B(e){return e.substring(1,e.length-1)}function H(e){var t=e.find(function(e){return"HEAD"===e.tag}),n={},a={},r={};return e.forEach(function(e){"INDI"===e.tag?n[B(e.pointer)]=e:"FAM"===e.tag?a[B(e.pointer)]=e:e.pointer&&(r[B(e.pointer)]=e)}),{head:t,indis:n,fams:a,other:r}}function V(e){var t=function(e){var t=new Map;return e.indis.forEach(function(e){t[e.id]=e}),function(e,n){var a,r,i=(a=e)<(r=n)?-1:a>r?1:0,o=t[e],s=t[n],c=o&&o.birth,l=s&&s.birth,u=c&&(c.date||c.dateRange&&c.dateRange.from),d=l&&(l.date||l.dateRange&&l.dateRange.from);return u&&u.year&&d&&d.year?u.year!==d.year?u.year-d.year:u.month&&d.month?u.month!==d.month?u.month-d.month:u.day&&d.day&&u.day!==d.day?u.month-d.month:i:i:i}}(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})}var J=[".jpg",".png",".gif"];function q(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 J.some(function(e){return t.endsWith(e)})}(e.url)&&n.push(e)}),Object.assign({},e,{images:n})}function Z(e,t){var n=e.indis.map(function(e){return q(e,t)});return Object.assign({},e,{indis:n})}function K(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 Y=new Map([["abt","about"],["cal","calculated"],["est","estimated"]]);function X(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:Y.get(o)||o}),new Intl.DateTimeFormat(t.locale,s).format(i)].join(" ")}function $(e,t){var n=Object(M.getDate)(e);return n?n.date?X(n.date,t):n.dateRange?function(e,t){var n=e.from,a=e.to,r=n&&X(n,t),i=a&&X(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}):""}(n.dateRange,t):"":""}var Q=["BIRT","BAPM","CHR","DEAT","BURI","EVEN"],ee=["NAME","SEX","FAMC","FAMS","NOTE","SOUR"],te=new Map([["BAPM","Baptism"],["BIRT","Birth"],["BURI","Burial"],["CHR","Christening"],["DEAT","Death"],["EMAIL","E-mail"],["EVEN","Event"],["OCCU","Occupation"],["TITL","Title"],["WWW","WWW"]]);function ne(e){return o.createElement(l.a,{id:"gedcom.".concat(e),defaultMessage:te.get(e)||e})}function ae(e){return o.createElement(o.Fragment,null,e.map(function(e,t){return o.createElement("div",{key:t},o.createElement(F.a,{properties:{target:"_blank"}},e),o.createElement("br",null))}))}function re(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 ie(e){return ae(re(e).map(function(e,t){return o.createElement("i",{key:t},e)}))}function oe(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 se(e,t,n){return U()(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 ce(e){return e.tree.length>0||e.data&&!e.data.startsWith("@")}function le(e){return e.filter(function(e){return!ee.includes(e.tag)&&!Q.includes(e.tag)}).filter(ce).map(function(e){return function(e){var t=[];return e.data&&t.push.apply(t,Object(a.a)(re(e))),e.tree.filter(function(e){return"NOTE"===e.tag}).forEach(function(e){return re(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"},ne(e.tag)),o.createElement("span",null,ae(t))):null}(e)}).filter(function(e){return null!==e}).map(function(e,t){return o.createElement("div",{className:"ui segment",key:t},e)})}var ue=function(e){function t(){return Object(p.a)(this,t),Object(m.a)(this,Object(g.a)(t).apply(this,arguments))}return Object(v.a)(t,e),Object(h.a)(t,[{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[B(e.data)];if(n)return n}return e}(t,e.props.gedcom)}).filter(ce);return o.createElement("div",{className:"ui segments",id:"details"},se(t,["NAME"],oe),se(t,Q,function(t){return function(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($(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)(re(i))),e.tree.filter(function(e){return"NOTE"===e.tag}).forEach(function(e){return re(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"},ne(e.tag)),o.createElement("span",null,ae(n))):null}(t,e.context.intl)}),le(n),se(n,["NOTE"],ie))}}]),t}(o.Component);function de(e,t,n){return{id:t||e.indis[0].id,generation:n||0}}function fe(e,t,n){var a=function(e,t){var n=Object(G.parse)(e),a=Object(M.gedcomEntriesToJson)(n);if(!a||!a.indis||!a.indis.length||!a.fams||!a.fams.length)throw new Error("Failed to read GEDCOM file");return{chartData:Z(V(a),t),gedcom:H(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 pe(e,t){return he.apply(this,arguments)}function he(){return(he=Object(f.a)(d.a.mark(function e(t,n){var a,r,i,o;return d.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=n?"https://cors-anywhere.herokuapp.com/"+t:t,e.next=12,window.fetch(r);case 12:if(200===(i=e.sent).status){e.next=15;break}throw new Error(i.statusText);case 15:return e.next=17,i.text();case 17:return o=e.sent,e.abrupt("return",fe(o,t));case 19:case"end":return e.stop()}},e,null,[[0,6]])}))).apply(this,arguments)}function me(e,t,n){return ge.apply(this,arguments)}function ge(){return(ge=Object(f.a)(d.a.mark(function e(t,n,a){var r;return d.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",fe(n,t,a));case 12:case"end":return e.stop()}},e,null,[[0,6]])}))).apply(this,arguments)}ue.contextTypes={intl:l.d};var ve=n(542),we=n(535);function ye(e){return o.createElement(we.a,{to:{pathname:"/view",search:y.stringify({url:e.url})}},e.text)}function Ee(){return o.createElement(ve.a,{className:"intro"},o.createElement(ve.a.Content,null,o.createElement(ve.a.Header,null,o.createElement(l.a,{id:"intro.title",defaultMessage:"Topola Genealogy Viewer"}))),o.createElement(ve.a.Content,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 LOAD FROM URL or LOAD FROM FILE 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(ye,{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(ye,{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(ye,{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: ",new Date("2020-02-02 17:59:14 +0100").toISOString().slice(0,16).replace("T"," ")," (",o.createElement("a",{href:"https://github.com/PeWu/topola-viewer/commit/".concat("8e33f92")},"8e33f92"),")")))}var be=n(543),ke=n(550),Oe=n(538),xe=n(549),Se=n(552),Me=n(551),je=n(548),_e=n(88),De=n.n(_e),Te=n(263),Re=n.n(Te),Ne=n(167),Le=n.n(Ne),Ce=n(264),Ie=n.n(Ce),ze=n(265),Pe=n.n(ze);function We(e){return e.toLocaleLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\u0142/g,"l")}function Ue(e,t){return e.score!==t.score?t.score-e.score:Ie()(e.ref,t.ref)}function Ae(e,t){return e.tree.filter(function(e){return"FAMS"===e.tag}).map(function(e){return t.fams[B(e.data)]}).filter(function(e){return!!e}).map(function(n){var a=n.tree.find(function(e){return"HUSB"===e.tag}),r=a&&B(a.data);return r&&r!==B(e.pointer)&&t.indis[r]}).filter(function(e){return!!e}).flatMap(function(e){return e.tree.filter(function(e){return"NAME"===e.tag}).map(function(e){var t=e.data.split("/");return t.length>=2?t[1]:""})}).join(" ")}var Fe=function(){function e(t){Object(p.a)(this,e),this.gedcom=t,this.index=void 0}return Object(h.a)(e,[{key:"initialize",value:function(){var e=this;this.index=Pe()(function(){for(var t in 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.gedcom.indis){var n=e.gedcom.indis[t],a=n.tree.filter(function(e){return"NAME"===e.tag}).map(function(e){return e.data}).join(" "),r=Ae(n,e.gedcom);this.add({id:t,name:a,normalizedName:We(a),spouseLastName:r,normalizedSpouseLastName:We(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(Ue).slice(0,8).map(function(e){return{id:e.ref,indi:t.gedcom.indis[e.ref]}})}}]),e}();function Ge(e){var t=e.indi.tree.find(function(e){return"NAME"===e.tag}),n=t&&t.data.split("/").filter(function(e){return!!e}).join(" ");return e.id.length>8?n:o.createElement(o.Fragment,null,n," ",o.createElement("i",null,"(",e.id,")"))}function Be(e,t,n){var a=e.tree.find(function(e){return e.tag===t}),r=a&&a.tree.find(function(e){return"DATE"===e.tag});return r&&$(r.data,n)||""}function He(e,t){var n=Be(e,"BIRT",t),a=Be(e,"DEAT",t);return a?"".concat(n," \u2013 ").concat(a):n}var Ve,Je=n(540),qe=n(547),Ze=n(66),Ke=n(539),Ye=n(537),Xe=n(529),$e=n(544),Qe=n(541),et=n(545);function tt(e){return new Promise(function(t,n){var a=new FileReader;a.onload=function(e){t(e.target.result)},a.readAsText(e)})}function nt(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"}(Ve||(Ve={}));var at,rt=function(e){function t(){var e,n;Object(p.a)(this,t);for(var a=arguments.length,r=new Array(a),i=0;i<a;i++)r[i]=arguments[i];return(n=Object(m.a)(this,(e=Object(g.a)(t)).call.apply(e,[this].concat(r)))).state={loadUrlDialogOpen:!1,searchResults:[],wikiTreeLoginState:Ve.UNKNOWN},n.urlInputRef=o.createRef(),n.wikiTreeLoginFormRef=o.createRef(),n.wikiTreeReturnUrlRef=o.createRef(),n.searchRef=void 0,n.searchIndex=void 0,n}return Object(v.a)(t,e),Object(h.a)(t,[{key:"handleUpload",value:function(){var e=Object(f.a)(d.a.mark(function e(t){var n,a,r,i,o,s,c,l,u;return d.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((n=t.target.files)&&n.length){e.next=3;break}return e.abrupt("return");case 3:return a=Array.from(n),t.target.value="",E("upload_files_selected",{event_value:n.length}),r=1===a.length?a[0]:a.find(function(e){return e.name.toLowerCase().endsWith(".ged")})||a[0],i=a.filter(function(e){return e.name!==r.name&&nt(e.name)}).map(function(e){return{name:e.name,url:URL.createObjectURL(e)}}),o=new Map(i.map(function(e){return[e.name,e.url]})),e.next=11,tt(r);case 11:s=e.sent,c=i.map(function(e){return e.name}).sort().join("|"),l=Le()(Le()(s)+c),u=y.parse(this.props.location.search),(u.file===l?this.props.history.replace:this.props.history.push)({pathname:"/view",search:y.stringify({file:l}),state:{data:s,images:o}});case 17:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"openLoadUrlDialog",value:function(){var e=this;this.setState(Object.assign({},this.state,{loadUrlDialogOpen:!0}),function(){return e.urlInputRef.current.focus()})}},{key:"handleClose",value:function(){this.setState(Object.assign({},this.state,{loadUrlDialogOpen:!1}))}},{key:"handleLoad",value:function(){this.setState(Object.assign({},this.state,{loadUrlDialogOpen:!1})),this.state.url&&(E("url_selected"),this.props.history.push({pathname:"/view",search:y.stringify({url:this.state.url})}))}},{key:"handleUrlChange",value:function(e){this.setState(Object.assign({},this.state,{url:e.target.value}))}},{key:"handleSearch",value:function(e){var t=this;if(e){var n=this.searchIndex.search(e).map(function(e){return function(e,t){return{id:e.id,key:e.id,title:Ge(e),description:He(e.indi,t)}}(e,t.context.intl)});this.setState(Object.assign({},this.state,{searchResults:n}))}}},{key:"handleResultSelect",value:function(e){E("search_result_selected"),this.props.eventHandlers.onSelection({id:e,generation:0}),this.searchRef.setValue("")}},{key:"initializeSearchIndex",value:function(){this.props.gedcom&&(this.searchIndex=function(e){var t=new Fe(e);return t.initialize(),t}(this.props.gedcom))}},{key:"changeView",value:function(e){var t=this.props.location,n=y.parse(t.search);n.view!==e&&(n.view=e,t.search=y.stringify(n),this.props.history.push(t))}},{key:"wikiTreeLogin",value:function(){var e="".concat("https://apps.wikitree.com/apps/wiech13/topola-viewer").concat(window.location.hash,"&");this.wikiTreeReturnUrlRef.current.value=e,this.wikiTreeLoginFormRef.current.submit()}},{key:"checkWikiTreeLoginState",value:function(){var e=void 0!==De.a.get("wikidb_wtb_UserID")?Ve.LOGGED_IN:Ve.NOT_LOGGED_IN;if(this.state.wikiTreeLoginState!==e){var t=De.a.get("wikidb_wtb_UserName");this.setState(Object.assign({},this.state,{wikiTreeLoginState:e,wikiTreeLoginUsername:t}))}}},{key:"componentDidMount",value:function(){var e=Object(f.a)(d.a.mark(function e(){return d.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.checkWikiTreeLoginState(),this.initializeSearchIndex();case 2:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"componentDidUpdate",value:function(e){this.checkWikiTreeLoginState(),e.gedcom!==this.props.gedcom&&this.initializeSearchIndex()}},{key:"loadFromUrlModal",value:function(){var e=this;return o.createElement(Je.a,{open:this.state.loadUrlDialogOpen,onClose:function(){return e.handleClose()},centered:!1},o.createElement(qe.a,null,o.createElement(Ze.a,{name:"cloud download"}),o.createElement(l.a,{id:"load_from_url.title",defaultMessage:"Load from URL",children:function(e){return e}})),o.createElement(Je.a.Content,null,o.createElement(Ke.a,{onSubmit:function(){return e.handleLoad()}},o.createElement(Ye.a,{placeholder:"https://",fluid:!0,onChange:function(t){return e.handleUrlChange(t)},ref:this.urlInputRef}),o.createElement("p",null,o.createElement(l.a,{id:"load_from_url.comment",defaultMessage:"Data from the URL will be loaded through {link} to avoid CORS issues.",values:{link:o.createElement("a",{href:"https://cors-anywhere.herokuapp.com/"},"cors-anywhere.herokuapp.com")}})))),o.createElement(Je.a.Actions,null,o.createElement(Xe.a,{secondary:!0,onClick:function(){return e.handleClose()}},o.createElement(l.a,{id:"load_from_url.cancel",defaultMessage:"Cancel"})),o.createElement(Xe.a,{primary:!0,onClick:function(){return e.handleLoad()}},o.createElement(l.a,{id:"load_from_url.load",defaultMessage:"Load"}))))}},{key:"chartMenus",value:function(){var e=this;return this.props.showingChart?o.createElement(o.Fragment,null,o.createElement($e.a.Item,{as:"a",onClick:function(){return e.props.eventHandlers.onPrint()}},o.createElement(Ze.a,{name:"print"}),o.createElement(l.a,{id:"menu.print",defaultMessage:"Print"})),o.createElement(Qe.a,{trigger:o.createElement("div",null,o.createElement(Ze.a,{name:"download"}),o.createElement(l.a,{id:"menu.download",defaultMessage:"Download"})),className:"item"},o.createElement(Qe.a.Menu,null,o.createElement(Qe.a.Item,{onClick:function(){return e.props.eventHandlers.onDownloadPdf()}},o.createElement(l.a,{id:"menu.pdf_file",defaultMessage:"PDF file"})),o.createElement(Qe.a.Item,{onClick:function(){return e.props.eventHandlers.onDownloadPng()}},o.createElement(l.a,{id:"menu.png_file",defaultMessage:"PNG file"})),o.createElement(Qe.a.Item,{onClick:function(){return e.props.eventHandlers.onDownloadSvg()}},o.createElement(l.a,{id:"menu.svg_file",defaultMessage:"SVG file"})))),o.createElement(Qe.a,{trigger:o.createElement("div",null,o.createElement(Ze.a,{name:"eye"}),o.createElement(l.a,{id:"menu.view",defaultMessage:"View"})),className:"item"},o.createElement(Qe.a.Menu,null,o.createElement(Qe.a.Item,{onClick:function(){return e.changeView("hourglass")}},o.createElement(Ze.a,{name:"hourglass"}),o.createElement(l.a,{id:"menu.hourglass",defaultMessage:"Hourglass chart"})),this.props.allowAllRelativesChart?o.createElement(Qe.a.Item,{onClick:function(){return e.changeView("relatives")}},o.createElement(Ze.a,{name:"users"}),o.createElement(l.a,{id:"menu.relatives",defaultMessage:"All relatives"})):null,o.createElement(Qe.a.Item,{onClick:function(){return e.changeView("fancy")}},o.createElement(Ze.a,{name:"users"}),o.createElement(l.a,{id:"menu.fancy",defaultMessage:"Fancy tree (experimental)"})))),o.createElement(et.a,{onSearchChange:Re()(function(t,n){return e.handleSearch(n.value)},200),onResultSelect:function(t,n){return e.handleResultSelect(n.result.id)},results:this.state.searchResults,noResultsMessage:this.context.intl.formatMessage({id:"menu.search.no_results",defaultMessage:"No results found"}),placeholder:this.context.intl.formatMessage({id:"menu.search.placeholder",defaultMessage:"Search for people"}),selectFirstResult:!0,ref:function(t){return e.searchRef=t}})):null}},{key:"fileMenus",value:function(){var e=this;return this.props.standalone?o.createElement(o.Fragment,null,o.createElement(we.a,{to:"/"},o.createElement($e.a.Item,null,o.createElement("b",null,"Topola Genealogy"))),o.createElement($e.a.Item,{as:"a",onClick:function(){return e.openLoadUrlDialog()}},o.createElement(Ze.a,{name:"cloud download"}),o.createElement(l.a,{id:"menu.load_from_url",defaultMessage:"Load from URL"})),o.createElement("input",{className:"hidden",type:"file",accept:".ged,image/*",id:"fileInput",multiple:!0,onChange:function(t){return e.handleUpload(t)}}),o.createElement("label",{htmlFor:"fileInput"},o.createElement($e.a.Item,{as:"a"},o.createElement(Ze.a,{name:"folder open"}),o.createElement(l.a,{id:"menu.load_from_file",defaultMessage:"Load from file"})))):null}},{key:"wikiTreeLoginMenu",value:function(){var e=this;if(!this.props.showWikiTreeLogin)return null;var t="https://www.wikitree.com/photo.php/a/a5/WikiTree_Images.png";switch(this.state.wikiTreeLoginState){case Ve.NOT_LOGGED_IN:return o.createElement($e.a.Item,{as:"a",onClick:function(){return e.wikiTreeLogin()}},o.createElement("img",{src:t,alt:"WikiTree logo",style:{width:"24px",height:"24px"}}),o.createElement(l.a,{id:"menu.wikitree_login",defaultMessage:"Log in to WikiTree"}),o.createElement("form",{action:"https://apps.wikitree.com/api.php",method:"POST",style:{display:"hidden"},ref:this.wikiTreeLoginFormRef},o.createElement("input",{type:"hidden",name:"action",value:"clientLogin"}),o.createElement("input",{type:"hidden",name:"returnURL",ref:this.wikiTreeReturnUrlRef})));case Ve.LOGGED_IN:var n=this.state.wikiTreeLoginUsername?this.context.intl.formatMessage({id:"menu.wikitree_popup_username",defaultMessage:"Logged in to WikiTree as {username}"},{username:this.state.wikiTreeLoginUsername}):this.context.intl.formatMessage({id:"menu.wikitree_popup",defaultMessage:"Logged in to WikiTree"});return o.createElement($e.a.Item,{title:n},o.createElement("img",{src:t,alt:"WikiTree logo",style:{width:"24px",height:"24px"}}),o.createElement(l.a,{id:"menu.wikitree_logged_in",defaultMessage:"Logged in"}));default:return null}}},{key:"sourceLink",value:function(){return o.createElement($e.a.Item,{as:"a",href:"https://github.com/PeWu/topola-viewer",target:"_blank"},o.createElement(l.a,{id:"menu.github",defaultMessage:"Source on GitHub"}))}},{key:"poweredByLink",value:function(){return o.createElement($e.a.Item,{as:"a",href:"https://pewu.github.com/topola-viewer",target:"_blank"},o.createElement(l.a,{id:"menu.powered_by",defaultMessage:"Powered by Topola"}))}},{key:"render",value:function(){return o.createElement($e.a,{attached:"top",inverted:!0,color:"blue",size:"large"},this.fileMenus(),this.chartMenus(),o.createElement($e.a.Menu,{position:"right"},this.wikiTreeLoginMenu(),this.props.standalone?this.sourceLink():this.poweredByLink()),this.loadFromUrlModal())}}]),t}(o.Component);function it(e,t){return ot.apply(this,arguments)}function ot(){return(ot=Object(f.a)(d.a.mark(function e(t,n){var a,r,i,o,s;return d.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://apps.wikitree.com/api.php":"https://apps.wikitree.com/api.php",e.next=6,window.fetch(i,{method:"POST",body:a});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 st(e,t){return ct.apply(this,arguments)}function ct(){return(ct=Object(f.a)(d.a.mark(function e(t,n){var a,r,i,o;return d.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(a="wikitree:ancestors:".concat(t),!(r=sessionStorage.getItem(a))){e.next=4;break}return e.abrupt("return",JSON.parse(r));case 4:return e.next=6,it({action:"getAncestors",key:t,fields:"*"},n);case 6:return i=e.sent,o=i[0].ancestors,sessionStorage.setItem(a,JSON.stringify(o)),e.abrupt("return",o);case 10:case"end":return e.stop()}},e)}))).apply(this,arguments)}function lt(e,t){return ut.apply(this,arguments)}function ut(){return(ut=Object(f.a)(d.a.mark(function e(t,n){var a,r,i,o;return d.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(a=[],r=[],t.forEach(function(e){var t=sessionStorage.getItem("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,it({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){sessionStorage.setItem("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 dt(e){return ft.apply(this,arguments)}function ft(){return(ft=Object(f.a)(d.a.mark(function e(t){var n;return d.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,it({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 pt(e,t){return ht.apply(this,arguments)}function ht(){return(ht=Object(f.a)(d.a.mark(function e(t,n){var r,i,o,s,c,l,u,f,p,h,m,g,v,y,E,b,k,O;return d.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r="apps.wikitree.com"!==window.location.hostname)||De.a.get("wikidb_wtb_UserID")||!n){e.next=6;break}return e.next=4,dt(n);case 4:"Success"===e.sent.result&&sessionStorage.clear();case 6:return i=[],e.next=9,lt([t],r);case 9:if((o=e.sent)[0].Name){e.next=12;break}throw new Error("WikiTree profile ".concat(t," is not accessible. Try logging in."));case 12:return s=Object.values(o[0].Spouses).map(function(e){return e.Name}),e.next=15,Promise.all([t].concat(s).map(function(e){return st(e,r)}));case 15:return c=e.sent,l=c.flat().map(function(e){return e.Name}).filter(function(e){return!!e}),e.next=19,lt(l,r);case 19:u=e.sent,i.push.apply(i,Object(a.a)(u)),f=[t];case 22:if(!(f.length>0)){e.next=32;break}return e.next=25,lt(f,r);case 25:p=e.sent,i.push.apply(i,Object(a.a)(p)),h=p.flatMap(function(e){return Object.values(e.Spouses)}),i.push.apply(i,Object(a.a)(h)),f=p.flatMap(function(e){return Object.values(e.Children).map(function(e){return e.Name})}),e.next=22;break;case 32:return m=new Map,g=new Map,v=new Map,y=new Map,i.forEach(function(e){if(y.set(e.Id,e.Name),e.Mother||e.Father){var t=mt(e.Mother,e.Father);yt(m,e.Mother).add(t),yt(m,e.Father).add(t),yt(g,t).add(e.Id),v.set(t,{wife:e.Mother||void 0,husband:e.Father||void 0})}}),E=[],b=new Set,i.forEach(function(e){if(!b.has(e.Id)){b.add(e.Id);var t=gt(e);e.Spouses&&Object.values(e.Spouses).forEach(function(t){var n=mt(e.Id,t.Id);yt(m,e.Id).add(n),yt(m,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};v.set(n,a)}),t.fams=Array.from(yt(m,e.Id)),E.push(t)}}),k=Array.from(v.entries()).map(function(e){var t=Object(w.a)(e,2),n=t[0],a=t[1],r={id:n},i=a.wife&&y.get(a.wife);i&&(r.wife=i);var o=a.husband&&y.get(a.husband);if(o&&(r.husb=o),r.children=Array.from(yt(g,n)).map(function(e){return y.get(e)}),a.spouse&&(a.spouse.marriage_date&&"0000-00-00"!==a.spouse.marriage_date||a.spouse.marriage_location)){var s=vt(a.spouse.marriage_date);r.marriage=Object.assign({},s,{place:a.spouse.marriage_location})}return r}),O=wt(E),e.abrupt("return",{chartData:{indis:E,fams:k},gedcom:O});case 43:case"end":return e.stop()}},e)}))).apply(this,arguments)}function mt(e,t){return t>e?"".concat(e,"_").concat(t):"".concat(t,"_").concat(e)}function gt(e){var t={id:e.Name};if("Unknown"!==e.FirstName&&(t.firstName=e.FirstName),"Unknown"!==e.LastNameAtBirth&&(t.lastName=e.LastNameAtBirth),(e.Mother||e.Father)&&(t.famc=mt(e.Mother,e.Father)),"Male"===e.Gender?t.sex="M":"Female"===e.Gender&&(t.sex="F"),e.BirthDate&&"0000-00-00"!==e.DeathDate||e.BirthLocation){var n=vt(e.BirthDate,e.DataStatus&&e.DataStatus.BirthDate);t.birth=Object.assign({},n,{place:e.BirthLocation})}if(e.DeathDate&&"0000-00-00"!==e.DeathDate||e.DeathLocation){var a=vt(e.DeathDate,e.DataStatus&&e.DataStatus.DeathDate);t.death=Object.assign({},a,{place:e.DeathLocation})}return e.PhotoData&&(t.images=[{url:"https://wikitree.com".concat(e.PhotoData.path)}]),t}function vt(e,t){if(e){var n=e.match(/(\d\d\d\d)-(\d\d)-(\d\d)/);if(!n)return{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?{dataRange:{from:a}}:"before"===t?{dataRange:{to:a}}:("guess"===t&&(a.qualifier="abt"),{date:a})}}function wt(e){var t={};return e.forEach(function(e){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:[]},{level:1,pointer:"",tag:"WWW",data:"https://www.wikitree.com/wiki/".concat(e.id),tree:[]}]}}),{head:{level:0,pointer:"",tag:"HEAD",data:"",tree:[]},indis:t,fams:{},other:{}}}function yt(e,t){var n=e.get(t);if(n)return n;var a=new Set;return e.set(t,a),a}function Et(e){return o.createElement(be.a,{negative:!0,className:"error"},o.createElement(be.a.Header,null,o.createElement(l.a,{id:"error.failed_to_load_file",defaultMessage:"Failed to load file"})),o.createElement("p",null,e.message))}function bt(e){return o.createElement(ke.a,{open:e.open,onClose:e.onDismiss},o.createElement(be.a,{negative:!0,className:"errorPopup",onDismiss:e.onDismiss},o.createElement(be.a.Header,null,o.createElement(l.a,{id:"error.error",defaultMessage:"Error"})),o.createElement("p",null,e.message)))}rt.contextTypes={intl:l.d},function(e){e.GEDCOM="gedcom",e.READY="ready",e.PARENT_READY="parent_ready"}(at||(at={}));var kt=function(e){function t(){var e,n;Object(p.a)(this,t);for(var a=arguments.length,r=new Array(a),i=0;i<a;i++)r[i]=arguments[i];return(n=Object(m.a)(this,(e=Object(g.a)(t)).call.apply(e,[this].concat(r)))).state={loading:!1,embedded:!1,standalone:!0,chartType:b.Hourglass,showErrorPopup:!1,wikiTreeSource:!1},n.chartRef=null,n.onSelection=function(e){if(E("selection_changed"),n.state.embedded)n.updateDisplay(e);else{var t=n.props.location,a=y.parse(t.search);a.indi=e.id,a.gen=String(e.generation),t.search=y.stringify(a),n.props.history.push(t)}},n.onPrint=function(){E("print"),n.chartRef&&n.chartRef.print()},n.onDownloadPdf=Object(f.a)(d.a.mark(function e(){return d.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(E("download_pdf"),e.prev=1,e.t0=n.chartRef,!e.t0){e.next=6;break}return e.next=6,n.chartRef.downloadPdf();case 6:e.next=11;break;case 8:e.prev=8,e.t1=e.catch(1),n.showErrorPopup(n.context.intl.formatMessage({id:"error.failed_pdf",defaultMessage:"Failed to generate PDF file. Please try with a smaller diagram or download an SVG file."}));case 11:case"end":return e.stop()}},e,null,[[1,8]])})),n.onDownloadPng=Object(f.a)(d.a.mark(function e(){return d.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(E("download_png"),e.prev=1,e.t0=n.chartRef,!e.t0){e.next=6;break}return e.next=6,n.chartRef.downloadPng();case 6:e.next=11;break;case 8:e.prev=8,e.t1=e.catch(1),n.showErrorPopup(n.context.intl.formatMessage({id:"error.failed_png",defaultMessage:"Failed to generate PNG file. Please try with a smaller diagram or download an SVG file."}));case 11:case"end":return e.stop()}},e,null,[[1,8]])})),n.onDownloadSvg=function(){E("download_svg"),n.chartRef&&n.chartRef.downloadSvg()},n.onDismissErrorPopup=function(){n.setState(Object.assign({},n.state,{showErrorPopup:!1}))},n.renderMainArea=function(){return n.state.data&&n.state.selection?o.createElement("div",{id:"content"},o.createElement(bt,{open:n.state.showErrorPopup,message:n.state.error,onDismiss:n.onDismissErrorPopup}),n.state.loadingMore?o.createElement(Oe.a,{active:!0,inline:!0,size:"small"}):null,o.createElement(P,{data:n.state.data.chartData,selection:n.state.selection,chartType:n.state.chartType,onSelection:n.onSelection,ref:function(e){return n.chartRef=e}}),n.state.showSidePanel?o.createElement(xe.a,{minWidth:768,id:"sidePanel"},o.createElement(ue,{gedcom:n.state.data.gedcom,indi:n.state.selection.id})):null):n.state.error?o.createElement(Et,{message:n.state.error}):o.createElement(Oe.a,{active:!0,size:"large"})},n}return Object(v.a)(t,e),Object(h.a)(t,[{key:"isNewData",value:function(e,t,n,a){return!(!e||e===this.state.hash)||!(!t||this.state.url===t)||!!n&&!this.state.loading&&!this.state.data||"wikitree"===a&&!this.state.loading&&!this.state.data&&!this.state.error}},{key:"updateDisplay",value:function(e,t){var n,a;(!this.state.selection||this.state.selection.id!==e.id||this.state.selection.generation!==e.generation||(n=this.state,(a=t)&&Object.entries(a).some(function(e){var t=Object(w.a)(e,2),a=t[0],r=t[1];return void 0!==r&&n[a]!==r})))&&this.setState(Object.assign({},this.state,{selection:e},t))}},{key:"setError",value:function(e){this.setState(Object.assign({},this.state,{error:e,loading:!1}))}},{key:"onMessage",value:function(){var e=Object(f.a)(d.a.mark(function e(t){var n,a;return d.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t.message!==at.PARENT_READY){e.next=4;break}window.parent.postMessage({message:at.READY},"*"),e.next=21;break;case 4:if(t.message!==at.GEDCOM){e.next=21;break}if(n=t.gedcom){e.next=8;break}return e.abrupt("return");case 8:return e.prev=8,e.next=11,me("",n);case 11:a=e.sent,E("embedded_file_loaded",{event_label:K(a.gedcom.head)}),this.setState(Object.assign({},this.state,{data:a,selection:de(a.chartData),error:void 0,loading:!1})),e.next=21;break;case 17:e.prev=17,e.t0=e.catch(8),E("embedded_file_error"),this.setError(e.t0.message);case 21:case"end":return e.stop()}},e,this,[[8,17]])}));return function(t){return e.apply(this,arguments)}}()},{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(){var e=Object(f.a)(d.a.mark(function e(){var t,n,a,r,i,o,s,c,l,u,f,p,h,m,g,v,w,k,O,x,S,M,j,_=this;return d.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("/view"===this.props.location.pathname){e.next=2;break}return e.abrupt("return");case 2:if(t=y.parse(this.props.location.search),a="false"!==(n=function(e){var n=t[e];return"string"===typeof n?n:void 0})("sidePanel"),(r="true"===n("embedded"))&&!this.state.embedded&&(this.setState(Object.assign({},this.state,{embedded:!0,standalone:!1,showSidePanel:a})),window.parent.postMessage("ready","*"),window.addEventListener("message",function(e){return _.onMessage(e.data)})),!r){e.next=9;break}return e.abrupt("return");case 9:if(i=n("url"),o=n("indi"),s=Number(n("gen")),c=isNaN(s)?void 0:s,l=n("file"),u="false"!==n("handleCors"),f="false"!==n("standalone"),p=n("view"),h=n("source"),m=n("?authcode"),g=new Map([["relatives",b.Relatives],["fancy",b.Fancy]]),v=g.get(p)||b.Hourglass,w=this.props.location.state&&this.props.location.state.data,k=this.props.location.state&&this.props.location.state.images,i||l||h){e.next=27;break}this.props.history.replace({pathname:"/"}),e.next=67;break;case 27:if(!this.isNewData(l,i,w,h)){e.next=58;break}if(e.prev=28,this.setState(Object.assign({},this.state,{data:void 0,selection:void 0,hash:l,error:void 0,loading:!0,url:i,standalone:f,chartType:v})),"wikitree"!==h){e.next=36;break}return e.next=33,pt(o,m);case 33:e.t0=e.sent,e.next=46;break;case 36:if(!l){e.next=42;break}return e.next=39,me(l,w,k);case 39:e.t1=e.sent,e.next=45;break;case 42:return e.next=44,pe(i,u);case 44:e.t1=e.sent;case 45:e.t0=e.t1;case 46:O=e.t0,x=K(O.gedcom.head),"wikitree"===h?E("wikitree_loaded"):E(l?"upload_file_loaded":"url_file_loaded",{event_label:x,event_value:k&&k.size||0}),this.setState(Object.assign({},this.state,{data:O,hash:l,selection:de(O.chartData,o,c),error:void 0,loading:!1,url:i,showSidePanel:a,standalone:f,chartType:v,wikiTreeSource:"wikitree"===h})),e.next=56;break;case 52:e.prev=52,e.t2=e.catch(28),E(l?"upload_file_error":"url_file_error"),this.setError(e.t2.message);case 56:e.next=67;break;case 58:if(!this.state.data||!this.state.selection){e.next=67;break}if(S=de(this.state.data.chartData,o,c),M="wikitree"===h&&(!this.state.selection||this.state.selection.id!==S.id),this.updateDisplay(S,{chartType:v,loadingMore:M||void 0}),!M){e.next=67;break}return e.next=65,pt(o);case 65:j=e.sent,this.setState(Object.assign({},this.state,{data:j,hash:l,selection:de(j.chartData,o,c),error:void 0,loading:!1,url:i,showSidePanel:a,standalone:f,chartType:v,wikiTreeSource:"wikitree"===h,loadingMore:!1}));case 67:case"end":return e.stop()}},e,this,[[28,52]])}));return function(){return e.apply(this,arguments)}}()},{key:"showErrorPopup",value:function(e){this.setState(Object.assign({},this.state,{showErrorPopup:!0,error:e}))}},{key:"render",value:function(){var e=this;return o.createElement(o.Fragment,null,o.createElement(Se.a,{render:function(t){return o.createElement(rt,Object.assign({},t,{gedcom:e.state.data&&e.state.data.gedcom,allowAllRelativesChart:!e.state.wikiTreeSource,showingChart:!("/view"!==e.props.history.location.pathname||!e.state.data||!e.state.selection),standalone:e.state.standalone,eventHandlers:{onSelection:e.onSelection,onPrint:e.onPrint,onDownloadPdf:e.onDownloadPdf,onDownloadPng:e.onDownloadPng,onDownloadSvg:e.onDownloadSvg},showWikiTreeLogin:e.state.wikiTreeSource}))}}),o.createElement(Me.a,null,o.createElement(Se.a,{exact:!0,path:"/",component:Ee}),o.createElement(Se.a,{exact:!0,path:"/view",render:this.renderMainArea}),o.createElement(je.a,{to:"/"})))}}]),t}(o.Component);kt.contextTypes={intl:l.d};var Ot=n(283),xt=n(546);n(524),n(525),n(526);Object(l.c)([].concat(Object(a.a)(r),Object(a.a)(i)));var St={pl:c},Mt=navigator.language&&navigator.language.split(/[-_]/)[0],jt=Object(Ot.detect)();jt&&"ie"===jt.name?s.render(o.createElement("p",null,"Topola Genealogy Viewer does not support Internet Explorer. Please try a different browser."),document.querySelector("#root")):s.render(o.createElement(l.b,{locale:Mt,messages:St[Mt]},o.createElement(xt.a,null,o.createElement(Se.a,{component:kt}))),document.querySelector("#root"))}},[[296,1,2]]]);
//# sourceMappingURL=main.27298971.chunk.js.map