Files
topola-viewer/static/js/main.2b6d3b8f.chunk.js
Przemek Wiech 6e2f26df96 Updates
2020-04-10 16:28:37 +02:00

2 lines
58 KiB
JavaScript

(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{169:function(e,t,n){e.exports=n.p+"static/media/topola.060eef13.jpg"},253:function(e){e.exports={"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"}},254:function(e,t){},297:function(e,t,n){e.exports=n(528)},309:function(e,t){},315:function(e,t){},525:function(e,t,n){},528:function(e,t,n){"use strict";n.r(t);var a=n(44),r=n(251),i=n(252),o=n(0),s=n(64),l=n(253),c=n(9),u=n(39),d=n(37),m=n(40),f=n(65),h=n(15),p=n.n(h),g=n(18),v=n(27),w=n(28),E=n(31);function k(e,t){window.gtag("event",e,t)}var y,b=n(17),O=n(256),D=n.n(O),T=n(168),M=n(33),S=n(553);function I(){var e=b.select("#svgContainer").node(),t=e.scrollLeft+e.clientWidth/2,n=e.scrollTop+e.clientHeight/2,a=b.zoomTransform(e).k;b.select(e).call(b.zoom().translateTo,t/a,n/a)}function x(e){var t=new FileReader;return t.readAsDataURL(e),new Promise(function(e,n){t.onload=function(t){return e(t.target.result)}})}function _(e){return j.apply(this,arguments)}function j(){return(j=Object(g.a)(p.a.mark(function e(t){var n,a,r,i;return p.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,x(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 R(e){return L.apply(this,arguments)}function L(){return(L=Object(g.a)(p.a.mark(function e(t){var n;return p.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(_));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 N(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"}(y||(y={}));var W=function(e){function t(){var e,n;Object(v.a)(this,t);for(var a=arguments.length,r=new Array(a),i=0;i<a;i++)r[i]=arguments[i];return(n=Object(u.a)(this,(e=Object(d.a)(t)).call.apply(e,[this].concat(r)))).chart=void 0,n.animating=!1,n.rerenderRequired=!1,n.zoomBehavior=void 0,n}return Object(m.a)(t,e),Object(w.a)(t,[{key:"getChartType",value:function(){switch(this.props.chartType){case y.Hourglass:return M.HourglassChart;case y.Relatives:return M.RelativesChart;case y.Fancy:return M.FancyChart;default:return M.HourglassChart}}},{key:"getRendererType",value:function(){switch(this.props.chartType){case y.Fancy:return M.CircleRenderer;default:return M.DetailedRenderer}}},{key:"zoom",value:function(e){var t=b.select("#svgContainer");this.zoomBehavior.scaleBy(t,e)}},{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?(b.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=b.select("#chartSvg"),r=b.select("#svgContainer").node(),i=b.zoomTransform(r).k,o=b.min([1,i,r.clientWidth/n.size[0],r.clientHeight/n.size[1]]),s=[b.max([.1,o]),2];this.zoomBehavior=b.zoom().scaleExtent(s).translateExtent([[0,0],n.size]).on("zoom",function(){return function(e){var t=b.select("#svgContainer").node(),n=b.event.transform.k,a=b.max([0,(t.clientWidth-e[0]*n)/2]),r=b.max([0,(t.clientHeight-e[1]*n)/2]);b.select("#chartSvg").attr("width",e[0]*n).attr("height",e[1]*n).attr("transform","translate(".concat(a,", ").concat(r,")")),b.select("#chart").attr("transform","scale(".concat(n,")")),t.scrollLeft=-b.event.transform.x,t.scrollTop=-b.event.transform.y}(n.size)}),b.select(r).on("scroll",I).call(this.zoomBehavior);var l,c,u=r.clientWidth/2-n.origin[0]*i,d=r.clientHeight/2-n.origin[1]*i,m=b.max([0,(r.clientWidth-n.size[0]*i)/2]),f=b.max([0,(r.clientHeight-n.size[1]*i)/2]),h=a.transition().delay(200).duration(500);(t.initialRender?a:h).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",(c=-u,function(){var e=b.interpolateNumber(r.scrollLeft,c);return function(t){r.scrollLeft=e(t)}})).tween("scrollTop",(l=-d,function(){var e=b.interpolateNumber(r.scrollTop,l);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(){var e=this;return o.createElement("div",{id:"svgContainer"},o.createElement(S.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=b.select("#svgContainer").node(),n=b.zoomTransform(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(g.a)(p.a.mark(function e(){var t;return p.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.getStrippedSvg(),e.next=3,R(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(g.a)(p.a.mark(function e(){var t,n;return p.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(T.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(g.a)(p.a.mark(function e(){var t,n;return p.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=N,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(g.a)(p.a.mark(function e(){var t,n;return p.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(T.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(g.a)(p.a.mark(function e(){var t,n;return p.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 D.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);W.contextTypes={intl:c.d};var P=n(259),A=n.n(P),F=n(260),U=n.n(F),G=n(164);function H(e){return e.substring(1,e.length-1)}function B(e){var t=new Map;return e.indis.forEach(function(e){t.set(e.id,e)}),t}function V(e){var t=new Map;return e.fams.forEach(function(e){t.set(e.id,e)}),t}function K(e){var t=e.find(function(e){return"HEAD"===e.tag}),n={},a={},r={};return e.forEach(function(e){"INDI"===e.tag?n[H(e.pointer)]=e:"FAM"===e.tag?a[H(e.pointer)]=e:e.pointer&&(r[H(e.pointer)]=e)}),{head:t,indis:n,fams:a,other:r}}function J(e,t){return e<t?-1:e>t?1:0}function q(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.month-a.month:n.day&&a.day&&n.day!==a.day?n.month-a.month:0:0:0}function Z(e){var t=function(e){var t=B(e);return function(e,n){var a=t.get(e),r=t.get(n);return q(a&&a.birth,r&&r.birth)||J(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 Y(e){var t=function(e){var t=V(e);return function(e,n){var a=t.get(e),r=t.get(n);return q(a&&a.marriage,r&&r.marriage)||J(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 X(e){return Y(Z(e))}var $=[".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 $.some(function(e){return t.endsWith(e)})}(e.url)&&n.push(e)}),Object.assign({},e,{images:n})}function ee(e,t){var n=e.indis.map(function(e){return Q(e,t)});return Object.assign({},e,{indis:n})}function te(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 ne=new Map([["abt","about"],["cal","calculated"],["est","estimated"]]);function ae(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:ne.get(o)||o}),new Intl.DateTimeFormat(t.locale,s).format(i)].join(" ")}function re(e,t){return e?e.date?ae(e.date,t):e.dateRange?function(e,t){var n=e.from,a=e.to,r=n&&ae(n,t),i=a&&ae(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 ie=["BIRT","BAPM","CHR","DEAT","BURI","EVEN","CENS"],oe=["NAME","SEX","FAMC","FAMS","NOTE","SOUR"],se=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 le(e){return o.createElement(c.a,{id:"gedcom.".concat(e),defaultMessage:se.get(e)||e})}function ce(e){return o.createElement(o.Fragment,null,e.map(function(e,t){return o.createElement("div",{key:t},o.createElement(U.a,{properties:{target:"_blank"}},e),o.createElement("br",null))}))}function ue(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 de(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 re(Object(M.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)(ue(i))),e.tree.filter(function(e){return"NOTE"===e.tag}).forEach(function(e){return ue(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"},le(e.tag)),o.createElement("span",null,ce(n))):null}function me(e){return ce(ue(e).map(function(e,t){return o.createElement("i",{key:t},e)}))}function fe(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 he(e,t,n){return A()(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 pe(e){return e.tree.length>0||e.data&&!e.data.startsWith("@")}function ge(e){return e.filter(function(e){return!oe.includes(e.tag)&&!ie.includes(e.tag)}).filter(pe).map(function(e){return function(e){var t=[];return e.data&&t.push.apply(t,Object(a.a)(ue(e))),e.tree.filter(function(e){return"NOTE"===e.tag}).forEach(function(e){return ue(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"},le(e.tag)),o.createElement("span",null,ce(t))):null}(e)}).filter(function(e){return null!==e}).map(function(e,t){return o.createElement("div",{className:"ui segment",key:t},e)})}var ve=function(e){function t(){return Object(v.a)(this,t),Object(u.a)(this,Object(d.a)(t).apply(this,arguments))}return Object(m.a)(t,e),Object(w.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[H(e.data)];if(n)return n}return e}(t,e.props.gedcom)}).filter(pe);return o.createElement("div",{className:"ui segments",id:"details"},he(t,["NAME"],fe),he(t,ie,function(t){return de(t,e.context.intl)}),ge(n),he(n,["NOTE"],me))}}]),t}(o.Component);function we(e,t,n){return{id:t&&e.indis.some(function(e){return e.id===t})?t:e.indis[0].id,generation:n||0}}function Ee(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:ee(X(a),t),gedcom:K(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 ke(e,t){return ye.apply(this,arguments)}function ye(){return(ye=Object(g.a)(p.a.mark(function e(t,n){var a,r,i,o;return p.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",Ee(o,t));case 19:case"end":return e.stop()}},e,null,[[0,6]])}))).apply(this,arguments)}function be(e,t,n){return Oe.apply(this,arguments)}function Oe(){return(Oe=Object(g.a)(p.a.mark(function e(t,n,a){var r;return p.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",Ee(n,t,a));case 12:case"end":return e.stop()}},e,null,[[0,6]])}))).apply(this,arguments)}ve.contextTypes={intl:c.d};var De=n(169),Te=n.n(De),Me=n(543),Se=n(549),Ie=n(286),xe=n(536);function _e(e){return o.createElement(xe.a,{to:{pathname:"/view",search:E.stringify({url:e.url})}},e.text)}function je(){var e=o.createElement(o.Fragment,null,o.createElement("p",null,o.createElement(c.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(c.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(c.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(_e,{url:"http://genpol.com/module-Downloads-prep_hand_out-lid-32.html",text:"Karol Wojty\u0142a"})," ","(",o.createElement(c.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(_e,{url:"https://webtreeprint.com/tp_downloader.php?path=famous_gedcoms/shakespeare.ged",text:"Shakespeare"})," ","(",o.createElement(c.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(_e,{url:"http://genealogyoflife.com/tng/gedcom/HarryPotter.ged",text:"Harry Potter"})," ","(",o.createElement(c.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(c.a,{id:"intro.privacy",defaultMessage:"Privacy"})),": ",o.createElement(c.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-04-10 15:37:36 +0200".slice(0,16)," (",o.createElement("a",{href:"https://github.com/PeWu/topola-viewer/commit/".concat("35e6a91")},"35e6a91"),")"));return o.createElement("div",{id:"content"},o.createElement("div",{className:"backgroundImage"}),o.createElement(Me.a,{className:"intro"},o.createElement(S.a,{as:Me.a.Content,minWidth:768},o.createElement(Me.a.Header,null,o.createElement(c.a,{id:"intro.title",defaultMessage:"Topola Genealogy Viewer"}))),o.createElement(Me.a.Content,null,o.createElement(S.a,{as:Se.a,minWidth:768},o.createElement(Se.a.Row,null,o.createElement(Se.a.Column,{width:5},o.createElement(Ie.a,{src:Te.a,alt:"Topola logo"})),o.createElement(Se.a.Column,{width:11},e))),o.createElement(S.a,{maxWidth:767},o.createElement(Ie.a,{src:Te.a,alt:"Topola logo",centered:!0,size:"tiny",className:"blockImage"}),e))))}var Re=n(544),Le=n(554),Ce=n(539),Ne=n(87),ze=n.n(Ne);function We(e){try{return sessionStorage.getItem(e)}catch(t){console.warn("Failed to load data from session storage: "+t)}return null}function Pe(e,t){try{sessionStorage.setItem(e,t)}catch(n){console.warn("Failed to store data in session storage: "+n)}}function Ae(e,t){return Fe.apply(this,arguments)}function Fe(){return(Fe=Object(g.a)(p.a.mark(function e(t,n){var a,r,i,o,s;return p.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 Ue(e,t){return Ge.apply(this,arguments)}function Ge(){return(Ge=Object(g.a)(p.a.mark(function e(t,n){var a,r,i,o;return p.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(a="wikitree:ancestors:".concat(t),!(r=We(a))){e.next=4;break}return e.abrupt("return",JSON.parse(r));case 4:return e.next=6,Ae({action:"getAncestors",key:t,fields:"*"},n);case 6:return i=e.sent,o=i[0].ancestors,Pe(a,JSON.stringify(o)),e.abrupt("return",o);case 10:case"end":return e.stop()}},e)}))).apply(this,arguments)}function He(e,t){return Be.apply(this,arguments)}function Be(){return(Be=Object(g.a)(p.a.mark(function e(t,n){var a,r,i,o;return p.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(a=[],r=[],t.forEach(function(e){var t=We("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,Ae({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){Pe("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 Ve(e){return Ke.apply(this,arguments)}function Ke(){return(Ke=Object(g.a)(p.a.mark(function e(t){var n;return p.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Ae({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 Je(e,t){return qe.apply(this,arguments)}function qe(){return(qe=Object(g.a)(p.a.mark(function e(t,n){var r,i,o,s,l,c,u,d,m,h,g,v,w,E,k,y,b,O,D,T,M;return p.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r="apps.wikitree.com"!==window.location.hostname)||ze.a.get("wikidb_wtb_UserID")||!n){e.next=6;break}return e.next=4,Ve(n);case 4:"Success"===e.sent.result&&sessionStorage.clear();case 6:return i=[],e.next=9,He([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 Ue(e,r)}));case 15:return l=e.sent,c=l.flat().map(function(e){return e.Name}).filter(function(e){return!!e}),e.next=19,He(c,r);case 19:u=e.sent,i.push.apply(i,Object(a.a)(u)),d=5,m=[t],h=0;case 24:if(!(m.length>0&&h<=d)){e.next=35;break}return e.next=27,He(m,r);case 27:g=e.sent,i.push.apply(i,Object(a.a)(g)),v=g.flatMap(function(e){return Object.values(e.Spouses)}),i.push.apply(i,Object(a.a)(v)),m=g.flatMap(function(e){return Object.values(e.Children).map(function(e){return e.Name})}),h++,e.next=24;break;case 35:return w=new Map,E=new Map,k=new Map,y=new Map,i.forEach(function(e){if(y.set(e.Id,e.Name),e.Mother||e.Father){var t=Ze(e.Mother,e.Father);Qe(w,e.Mother).add(t),Qe(w,e.Father).add(t),Qe(E,t).add(e.Id),k.set(t,{wife:e.Mother||void 0,husband:e.Father||void 0})}}),b=[],O=new Set,i.forEach(function(e){if(!O.has(e.Id)){O.add(e.Id);var t=Ye(e);e.Spouses&&Object.values(e.Spouses).forEach(function(t){var n=Ze(e.Id,t.Id);Qe(w,e.Id).add(n),Qe(w,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};k.set(n,a)}),t.fams=Array.from(Qe(w,e.Id)),b.push(t)}}),D=Array.from(k.entries()).map(function(e){var t=Object(f.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(Qe(E,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=Xe(a.spouse.marriage_date);r.marriage=Object.assign({},s,{place:a.spouse.marriage_location})}return r}),T=X({indis:b,fams:D}),M=$e(b),e.abrupt("return",{chartData:T,gedcom:M});case 47:case"end":return e.stop()}},e)}))).apply(this,arguments)}function Ze(e,t){return t>e?"".concat(e,"_").concat(t):"".concat(t,"_").concat(e)}function Ye(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=Ze(e.Mother,e.Father)),"Male"===e.Gender?t.sex="M":"Female"===e.Gender&&(t.sex="F"),e.BirthDate&&"0000-00-00"!==e.BirthDate||e.BirthLocation){var n=Xe(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=Xe(e.DeathDate,e.DataStatus&&e.DataStatus.DeathDate);t.death=Object.assign({},a,{place:e.DeathLocation})}return e.PhotoData&&(t.images=[{url:"https://www.wikitree.com".concat(e.PhotoData.path)}]),t}function Xe(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 $e(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:[]},{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 Qe(e,t){var n=e.get(t);if(n)return n;var a=new Set;return e.set(t,a),a}var et=n(551),tt=n(552),nt=n(547),at=n(264),rt=n.n(at),it=n(170),ot=n.n(it),st=n(265),lt=n.n(st),ct=n(266),ut=n.n(ct);function dt(e){return e.toLocaleLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\u0142/g,"l")}function mt(e,t){return e.score!==t.score?t.score-e.score:lt()(e.ref,t.ref)}var ft=function(){function e(t){Object(v.a)(this,e),this.index=void 0,this.indiMap=void 0,this.famMap=void 0,this.indiMap=B(t),this.famMap=V(t)}return Object(w.a)(e,[{key:"initialize",value:function(){var e=this;this.index=ut()(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:dt(a),spouseLastName:r,normalizedSpouseLastName:dt(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(mt).slice(0,8).map(function(e){return{id:e.ref,indi:t.indiMap.get(e.ref)}})}}]),e}();function ht(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 pt(e,t){var n=re(e.birth,t),a=re(e.death,t);return a?"".concat(n," \u2013 ").concat(a):n}var gt,vt,wt=n(541),Et=n(550),kt=n(66),yt=n(540),bt=n(538),Ot=n(530),Dt=n(545),Tt=n(542),Mt=n(546),St="https://www.wikitree.com/photo.php/a/a5/WikiTree_Images.png";function It(e){return new Promise(function(t,n){var a=new FileReader;a.onload=function(e){t(e.target.result)},a.readAsText(e)})}function xt(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"}(gt||(gt={})),function(e){e[e.LARGE=0]="LARGE",e[e.SMALL=1]="SMALL"}(vt||(vt={}));var _t,jt=function(e){function t(){var e,n;Object(v.a)(this,t);for(var a=arguments.length,r=new Array(a),i=0;i<a;i++)r[i]=arguments[i];return(n=Object(u.a)(this,(e=Object(d.a)(t)).call.apply(e,[this].concat(r)))).state={loadUrlDialogOpen:!1,wikiTreeIdDialogOpen:!1,searchResults:[],wikiTreeLoginState:gt.UNKNOWN},n.urlInputRef=o.createRef(),n.wikiTreeIdInputRef=o.createRef(),n.wikiTreeLoginFormRef=o.createRef(),n.wikiTreeReturnUrlRef=o.createRef(),n.searchRef=void 0,n.searchIndex=void 0,n}return Object(m.a)(t,e),Object(w.a)(t,[{key:"handleUpload",value:function(){var e=Object(g.a)(p.a.mark(function e(t){var n,a,r,i,o,s,l,c,u;return p.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="",k("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&&xt(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,It(r);case 11:s=e.sent,l=i.map(function(e){return e.name}).sort().join("|"),c=ot()(ot()(s)+l),u=E.parse(this.props.location.search),(u.file===c?this.props.history.replace:this.props.history.push)({pathname:"/view",search:E.stringify({file:c}),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:"openWikiTreeIdDialog",value:function(){var e=this;this.setState(Object.assign({},this.state,{wikiTreeIdDialogOpen:!0}),function(){return e.wikiTreeIdInputRef.current.focus()})}},{key:"handleClose",value:function(){this.setState(Object.assign({},this.state,{loadUrlDialogOpen:!1,wikiTreeIdDialogOpen:!1}))}},{key:"handleLoad",value:function(){this.setState(Object.assign({},this.state,{loadUrlDialogOpen:!1})),this.state.url&&(k("url_selected"),this.props.history.push({pathname:"/view",search:E.stringify({url:this.state.url})}))}},{key:"handleSelectWikiTreeId",value:function(){if(this.setState(Object.assign({},this.state,{wikiTreeIdDialogOpen:!1})),this.state.wikiTreeId){k("wikitree_id_selected");var e=E.parse(this.props.location.search),t=void 0===e.standalone||e.standalone;this.props.history.push({pathname:"/view",search:E.stringify({indi:this.state.wikiTreeId,source:"wikitree",standalone:t})})}}},{key:"handleUrlChange",value:function(e){this.setState(Object.assign({},this.state,{url:e}))}},{key:"handleWikiTreeIdChange",value:function(e){this.setState(Object.assign({},this.state,{wikiTreeId:e}))}},{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:ht(e),description:pt(e.indi,t)}}(e,t.context.intl)});this.setState(Object.assign({},this.state,{searchResults:n}))}}},{key:"handleResultSelect",value:function(e){k("search_result_selected"),this.props.eventHandlers.onSelection({id:e,generation:0}),this.searchRef.setValue("")}},{key:"initializeSearchIndex",value:function(){this.props.data&&(this.searchIndex=function(e){var t=new ft(e);return t.initialize(),t}(this.props.data))}},{key:"changeView",value:function(e){var t=this.props.location,n=E.parse(t.search);n.view!==e&&(n.view=e,t.search=E.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!==ze.a.get("wikidb_wtb_UserID")?gt.LOGGED_IN:gt.NOT_LOGGED_IN;if(this.state.wikiTreeLoginState!==e){var t=ze.a.get("wikidb_wtb_UserName");this.setState(Object.assign({},this.state,{wikiTreeLoginState:e,wikiTreeLoginUsername:t}))}}},{key:"componentDidMount",value:function(){var e=Object(g.a)(p.a.mark(function e(){return p.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.data!==this.props.data&&this.initializeSearchIndex()}},{key:"loadFromUrlModal",value:function(){var e=this;return o.createElement(wt.a,{open:this.state.loadUrlDialogOpen,onClose:function(){return e.handleClose()},centered:!1},o.createElement(Et.a,null,o.createElement(kt.a,{name:"cloud download"}),o.createElement(c.a,{id:"load_from_url.title",defaultMessage:"Load from URL",children:function(e){return e}})),o.createElement(wt.a.Content,null,o.createElement(yt.a,{onSubmit:function(){return e.handleLoad()}},o.createElement(bt.a,{placeholder:"https://",fluid:!0,onChange:function(t,n){return e.handleUrlChange(n.value)},ref:this.urlInputRef}),o.createElement("p",null,o.createElement(c.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(wt.a.Actions,null,o.createElement(Ot.a,{secondary:!0,onClick:function(){return e.handleClose()}},o.createElement(c.a,{id:"load_from_url.cancel",defaultMessage:"Cancel"})),o.createElement(Ot.a,{primary:!0,onClick:function(){return e.handleLoad()}},o.createElement(c.a,{id:"load_from_url.load",defaultMessage:"Load"}))))}},{key:"enterWikiTreeId",value:function(e,t){e.preventDefault(),this.wikiTreeIdInputRef.current.inputRef.value=t,this.handleWikiTreeIdChange(t),this.wikiTreeIdInputRef.current.focus()}},{key:"wikiTreeIdModal",value:function(){var e=this;return o.createElement(wt.a,{open:this.state.wikiTreeIdDialogOpen,onClose:function(){return e.handleClose()},centered:!1},o.createElement(Et.a,null,o.createElement("img",{src:St,alt:"WikiTree logo",style:{width:"32px",height:"32px"}}),o.createElement(c.a,{id:"select_wikitree_id.title",defaultMessage:"Select WikiTree ID",children:function(e){return e}})),o.createElement(wt.a.Content,null,o.createElement(yt.a,{onSubmit:function(){return e.handleSelectWikiTreeId()}},o.createElement("p",null,o.createElement(c.a,{id:"select_wikitree_id.comment",defaultMessage:"Enter a {wikiTreeLink} profile ID. Examples: {example1}, {example2}.",values:{wikiTreeLink:o.createElement("a",{href:"https://wikitree.com/",target:"_blank",rel:"noopener noreferrer"},"WikiTree"),example1:o.createElement("span",{onClick:function(t){return e.enterWikiTreeId(t,"Wojtyla-13")},className:"link-span"},"Wojtyla-13"),example2:o.createElement("span",{onClick:function(t){return e.enterWikiTreeId(t,"Sk\u0142odowska-2")},className:"link-span"},"Sk\u0142odowska-2")}})),o.createElement(bt.a,{fluid:!0,onChange:function(t,n){return e.handleWikiTreeIdChange(n.value)},ref:this.wikiTreeIdInputRef}))),o.createElement(wt.a.Actions,null,o.createElement(Ot.a,{secondary:!0,onClick:function(){return e.handleClose()}},o.createElement(c.a,{id:"select_wikitree_id.cancel",defaultMessage:"Cancel"})),o.createElement(Ot.a,{primary:!0,onClick:function(){return e.handleSelectWikiTreeId()}},o.createElement(c.a,{id:"select_wikitree_id.load",defaultMessage:"Load"}))))}},{key:"search",value:function(){var e=this;return o.createElement(Dt.a,{onSearchChange:rt()(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},id:"search"})}},{key:"chartMenus",value:function(e){var t=this;if(!this.props.showingChart)return null;var n=o.createElement(o.Fragment,null,o.createElement(Tt.a.Item,{onClick:function(){return t.changeView("hourglass")}},o.createElement(kt.a,{name:"hourglass"}),o.createElement(c.a,{id:"menu.hourglass",defaultMessage:"Hourglass chart"})),this.props.allowAllRelativesChart?o.createElement(Tt.a.Item,{onClick:function(){return t.changeView("relatives")}},o.createElement(kt.a,{name:"users"}),o.createElement(c.a,{id:"menu.relatives",defaultMessage:"All relatives"})):null,o.createElement(Tt.a.Item,{onClick:function(){return t.changeView("fancy")}},o.createElement(kt.a,{name:"users"}),o.createElement(c.a,{id:"menu.fancy",defaultMessage:"Fancy tree (experimental)"})));switch(e){case vt.LARGE:return o.createElement(o.Fragment,null,o.createElement(Mt.a.Item,{onClick:function(){return t.props.eventHandlers.onPrint()}},o.createElement(kt.a,{name:"print"}),o.createElement(c.a,{id:"menu.print",defaultMessage:"Print"})),o.createElement(Tt.a,{trigger:o.createElement("div",null,o.createElement(kt.a,{name:"download"}),o.createElement(c.a,{id:"menu.download",defaultMessage:"Download"})),className:"item"},o.createElement(Tt.a.Menu,null,o.createElement(Tt.a.Item,{onClick:function(){return t.props.eventHandlers.onDownloadPdf()}},o.createElement(c.a,{id:"menu.pdf_file",defaultMessage:"PDF file"})),o.createElement(Tt.a.Item,{onClick:function(){return t.props.eventHandlers.onDownloadPng()}},o.createElement(c.a,{id:"menu.png_file",defaultMessage:"PNG file"})),o.createElement(Tt.a.Item,{onClick:function(){return t.props.eventHandlers.onDownloadSvg()}},o.createElement(c.a,{id:"menu.svg_file",defaultMessage:"SVG file"})))),o.createElement(Tt.a,{trigger:o.createElement("div",null,o.createElement(kt.a,{name:"eye"}),o.createElement(c.a,{id:"menu.view",defaultMessage:"View"})),className:"item"},o.createElement(Tt.a.Menu,null,n)),this.search());case vt.SMALL:return o.createElement(o.Fragment,null,o.createElement(Tt.a.Item,{onClick:function(){return t.props.eventHandlers.onPrint()}},o.createElement(kt.a,{name:"print"}),o.createElement(c.a,{id:"menu.print",defaultMessage:"Print"})),o.createElement(Tt.a.Divider,null),o.createElement(Tt.a.Item,{onClick:function(){return t.props.eventHandlers.onDownloadPdf()}},o.createElement(kt.a,{name:"download"}),o.createElement(c.a,{id:"menu.download_pdf",defaultMessage:"Downlod PDF"})),o.createElement(Tt.a.Item,{onClick:function(){return t.props.eventHandlers.onDownloadPng()}},o.createElement(kt.a,{name:"download"}),o.createElement(c.a,{id:"menu.download_png",defaultMessage:"Download PNG"})),o.createElement(Tt.a.Item,{onClick:function(){return t.props.eventHandlers.onDownloadSvg()}},o.createElement(kt.a,{name:"download"}),o.createElement(c.a,{id:"menu.download_svg",defaultMessage:"Download SVG"})),o.createElement(Tt.a.Divider,null),n,o.createElement(Tt.a.Divider,null))}}},{key:"title",value:function(){return o.createElement(Mt.a.Item,null,o.createElement("b",null,"Topola Genealogy"))}},{key:"fileMenus",value:function(e){var t=this,n=o.createElement(o.Fragment,null,o.createElement("img",{src:St,alt:"WikiTree logo",className:"menu-icon"}),o.createElement(c.a,{id:"menu.select_wikitree_id",defaultMessage:"Select WikiTree ID"}));if(!this.props.standalone&&this.props.showWikiTreeMenus)switch(e){case vt.LARGE:return o.createElement(o.Fragment,null,o.createElement(Mt.a.Item,{onClick:function(){return t.openWikiTreeIdDialog()}},n),this.wikiTreeIdModal());case vt.SMALL:return o.createElement(o.Fragment,null,o.createElement(Tt.a.Item,{onClick:function(){return t.openWikiTreeIdDialog()}},n),o.createElement(Tt.a.Divider,null),this.wikiTreeIdModal())}if(!this.props.standalone)return null;var a=o.createElement(o.Fragment,null,o.createElement(kt.a,{name:"folder open"}),o.createElement(c.a,{id:"menu.open_file",defaultMessage:"Open file"})),r=o.createElement(o.Fragment,null,o.createElement(kt.a,{name:"cloud download"}),o.createElement(c.a,{id:"menu.load_from_url",defaultMessage:"Load from URL"})),i=o.createElement(o.Fragment,null,this.loadFromUrlModal(),this.wikiTreeIdModal(),o.createElement("input",{className:"hidden",type:"file",accept:".ged,image/*",id:"fileInput",multiple:!0,onChange:function(e){return t.handleUpload(e)}}));switch(e){case vt.LARGE:var s=this.props.showingChart?o.createElement(Tt.a,{trigger:o.createElement("div",null,o.createElement(kt.a,{name:"folder open"}),o.createElement(c.a,{id:"menu.open",defaultMessage:"Open"})),className:"item"},o.createElement(Tt.a.Menu,null,o.createElement(Tt.a.Item,{as:"label",htmlFor:"fileInput"},a),o.createElement(Tt.a.Item,{onClick:function(){return t.openLoadUrlDialog()}},r),o.createElement(Tt.a.Item,{onClick:function(){return t.openWikiTreeIdDialog()}},n))):o.createElement(o.Fragment,null,o.createElement("label",{htmlFor:"fileInput"},o.createElement(Mt.a.Item,{as:"a"},a)),o.createElement(Mt.a.Item,{onClick:function(){return t.openLoadUrlDialog()}},r),o.createElement(Mt.a.Item,{onClick:function(){return t.openWikiTreeIdDialog()}},n));return o.createElement(o.Fragment,null,s,i);case vt.SMALL:return o.createElement(o.Fragment,null,o.createElement(Tt.a.Item,{as:"label",htmlFor:"fileInput"},a),o.createElement(Tt.a.Item,{onClick:function(){return t.openLoadUrlDialog()}},r),o.createElement(Tt.a.Item,{onClick:function(){return t.openWikiTreeIdDialog()}},n),o.createElement(Tt.a.Divider,null),i)}}},{key:"wikiTreeLoginMenu",value:function(e){var t=this;if(!this.props.showWikiTreeMenus)return null;switch(this.state.wikiTreeLoginState){case gt.NOT_LOGGED_IN:var n=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}));switch(e){case vt.LARGE:return o.createElement(Mt.a.Item,{onClick:function(){return t.wikiTreeLogin()}},o.createElement("img",{src:St,alt:"WikiTree logo",className:"menu-icon"}),o.createElement(c.a,{id:"menu.wikitree_login",defaultMessage:"Log in to WikiTree"}),n);case vt.SMALL:return o.createElement(o.Fragment,null,o.createElement(Tt.a.Item,{onClick:function(){return t.wikiTreeLogin()}},o.createElement("img",{src:St,alt:"WikiTree logo",className:"menu-icon"}),o.createElement(c.a,{id:"menu.wikitree_login",defaultMessage:"Log in to WikiTree"}),n),o.createElement(Tt.a.Divider,null))}break;case gt.LOGGED_IN:var a=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"});switch(e){case vt.LARGE:return o.createElement(Mt.a.Item,{title:a},o.createElement("img",{src:St,alt:"WikiTree logo",className:"menu-icon"}),o.createElement(c.a,{id:"menu.wikitree_logged_in",defaultMessage:"Logged in"}));case vt.SMALL:return o.createElement(o.Fragment,null,o.createElement(Mt.a.Item,{title:a},o.createElement("img",{src:St,alt:"WikiTree logo",className:"menu-icon"}),o.createElement(c.a,{id:"menu.wikitree_logged_in",defaultMessage:"Logged in"})),o.createElement(Tt.a.Divider,null));default:return null}}}},{key:"mobileMenus",value:function(){return o.createElement(o.Fragment,null,o.createElement(Tt.a,{trigger:o.createElement("div",null,o.createElement(kt.a,{name:"sidebar"})),className:"item",icon:null},o.createElement(Tt.a.Menu,null,this.fileMenus(vt.SMALL),this.chartMenus(vt.SMALL),this.wikiTreeLoginMenu(vt.SMALL),o.createElement(Tt.a.Item,{href:"https://github.com/PeWu/topola-viewer",target:"_blank",rel:"noopener noreferrer"},o.createElement(c.a,{id:"menu.github",defaultMessage:"Source on GitHub"})))),this.props.standalone?o.createElement(xe.a,{to:"/"},this.title()):this.title())}},{key:"desktopMenus",value:function(){return o.createElement(o.Fragment,null,this.props.standalone?o.createElement(xe.a,{to:"/"},this.title()):null,this.fileMenus(vt.LARGE),this.chartMenus(vt.LARGE),o.createElement(Mt.a.Menu,{position:"right"},this.wikiTreeLoginMenu(vt.LARGE),o.createElement(Mt.a.Item,{href:"https://github.com/PeWu/topola-viewer",target:"_blank",rel:"noopener noreferrer"},o.createElement(c.a,{id:"menu.github",defaultMessage:"GitHub project"}))))}},{key:"render",value:function(){return o.createElement(o.Fragment,null,o.createElement(S.a,{as:Mt.a,attached:"top",inverted:!0,color:"blue",size:"large",minWidth:768},this.desktopMenus()),o.createElement(S.a,{as:Mt.a,attached:"top",inverted:!0,color:"blue",size:"large",maxWidth:767},this.mobileMenus()))}}]),t}(o.Component);function Rt(e){return o.createElement(Re.a,{negative:!0,className:"error"},o.createElement(Re.a.Header,null,o.createElement(c.a,{id:"error.failed_to_load_file",defaultMessage:"Failed to load file"})),o.createElement("p",null,e.message))}function Lt(e){return o.createElement(Le.a,{open:e.open,onClose:e.onDismiss},o.createElement(Re.a,{negative:!0,className:"errorPopup",onDismiss:e.onDismiss},o.createElement(Re.a.Header,null,o.createElement(c.a,{id:"error.error",defaultMessage:"Error"})),o.createElement("p",null,e.message)))}jt.contextTypes={intl:c.d},function(e){e.GEDCOM="gedcom",e.READY="ready",e.PARENT_READY="parent_ready"}(_t||(_t={}));var Ct,Nt=function(){function e(){Object(v.a)(this,e)}return Object(w.a)(e,[{key:"isNewData",value:function(e,t){return e.hash!==t.hash||!(!e.gedcom||t.loading||t.data)}},{key:"loadData",value:function(){var e=Object(g.a)(p.a.mark(function e(t){var n;return p.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,be(t.hash,t.gedcom,t.images);case 3:return n=e.sent,k("upload_file_loaded",{event_label:te(n.gedcom.head),event_value:t.images&&t.images.size||0}),e.abrupt("return",n);case 9:throw e.prev=9,e.t0=e.catch(0),k("upload_file_error"),e.t0;case 13:case"end":return e.stop()}},e,null,[[0,9]])}));return function(t){return e.apply(this,arguments)}}()}]),e}(),zt=function(){function e(){Object(v.a)(this,e)}return Object(w.a)(e,[{key:"isNewData",value:function(e,t){return e.url!==t.url}},{key:"loadData",value:function(){var e=Object(g.a)(p.a.mark(function e(t){var n;return p.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,ke(t.url,t.handleCors);case 3:return n=e.sent,k("upload_file_loaded",{event_label:te(n.gedcom.head)}),e.abrupt("return",n);case 9:throw e.prev=9,e.t0=e.catch(0),k("url_file_error"),e.t0;case 13:case"end":return e.stop()}},e,null,[[0,9]])}));return function(t){return e.apply(this,arguments)}}()}]),e}(),Wt=function(){function e(){Object(v.a)(this,e)}return Object(w.a)(e,[{key:"isNewData",value:function(e,t){return(!t.selection||t.selection.id!==e.indi)&&(!t.data||!t.data.chartData.indis.some(function(t){return t.id===e.indi}))}},{key:"loadData",value:function(){var e=Object(g.a)(p.a.mark(function e(t){var n;return p.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,Je(t.indi,t.authcode);case 3:return n=e.sent,k("wikitree_loaded"),e.abrupt("return",n);case 8:throw e.prev=8,e.t0=e.catch(0),k("wikitree_error"),e.t0;case 12:case"end":return e.stop()}},e,null,[[0,8]])}));return function(t){return e.apply(this,arguments)}}()}]),e}();!function(e){e[e.UPLOADED=0]="UPLOADED",e[e.GEDCOM_URL=1]="GEDCOM_URL",e[e.WIKITREE=2]="WIKITREE"}(Ct||(Ct={}));var Pt=new Map([[Ct.UPLOADED,new Nt],[Ct.GEDCOM_URL,new zt],[Ct.WIKITREE,new Wt]]);function At(e){var t=E.parse(e.search),n=function(e){var n=t[e];return"string"===typeof n?n:void 0},a=Number(n("gen")),r=n("view"),i=new Map([["relatives",y.Relatives],["fancy",y.Fancy]]),o=n("file"),s=n("url"),l="wikitree"===n("source")?Ct.WIKITREE:o?Ct.UPLOADED:s?Ct.GEDCOM_URL:void 0;return{showSidePanel:"false"!==n("sidePanel"),embedded:"true"===n("embedded"),url:s,indi:n("indi"),generation:isNaN(a)?void 0:a,hash:o,handleCors:"false"!==n("handleCors"),standalone:"false"!==n("standalone"),source:l,authcode:n("?authcode"),chartType:i.get(r)||y.Hourglass,gedcom:e.state&&e.state.data,images:e.state&&e.state.images}}var Ft=function(e){function t(){var e,n;Object(v.a)(this,t);for(var a=arguments.length,r=new Array(a),i=0;i<a;i++)r[i]=arguments[i];return(n=Object(u.a)(this,(e=Object(d.a)(t)).call.apply(e,[this].concat(r)))).state={loading:!1,embedded:!1,standalone:!0,chartType:y.Hourglass,showErrorPopup:!1},n.chartRef=null,n.onSelection=function(e){if(k("selection_changed"),n.state.embedded)n.updateDisplay(e);else{var t=n.props.location,a=E.parse(t.search);a.indi=e.id,a.gen=String(e.generation),t.search=E.stringify(a),n.props.history.push(t)}},n.onPrint=function(){k("print"),n.chartRef&&n.chartRef.print()},n.onDownloadPdf=Object(g.a)(p.a.mark(function e(){return p.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(k("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(g.a)(p.a.mark(function e(){return p.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(k("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(){k("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(Lt,{open:n.state.showErrorPopup,message:n.state.error,onDismiss:n.onDismissErrorPopup}),n.state.loadingMore?o.createElement(Ce.a,{active:!0,size:"small",className:"loading-more"}):null,o.createElement(W,{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(S.a,{minWidth:768,id:"sidePanel"},o.createElement(ve,{gedcom:n.state.data.gedcom,indi:n.state.selection.id})):null):n.state.error?o.createElement(Rt,{message:n.state.error}):o.createElement(Ce.a,{active:!0,size:"large"})},n}return Object(m.a)(t,e),Object(w.a)(t,[{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(f.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(g.a)(p.a.mark(function e(t){var n,a;return p.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t.message!==_t.PARENT_READY){e.next=4;break}window.parent.postMessage({message:_t.READY},"*"),e.next=21;break;case 4:if(t.message!==_t.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,be("",n);case 11:a=e.sent,k("embedded_file_loaded",{event_label:te(a.gedcom.head)}),this.setState(Object.assign({},this.state,{data:a,selection:we(a.chartData),error:void 0,loading:!1})),e.next=21;break;case 17:e.prev=17,e.t0=e.catch(8),k("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(g.a)(p.a.mark(function e(){var t,n,a,r,i,o,s=this;return p.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=At(this.props.location)).embedded&&!this.state.embedded&&(this.setState(Object.assign({},this.state,{embedded:!0,standalone:!1,showSidePanel:t.showSidePanel})),window.parent.postMessage("ready","*"),window.addEventListener("message",function(e){return s.onMessage(e.data)})),!t.embedded){e.next=6;break}return e.abrupt("return");case 6:if(n=Pt.get(t.source)){e.next=11;break}this.props.history.replace({pathname:"/"}),e.next=34;break;case 11:if((this.state.loading||this.state.data||this.state.error)&&t.source===this.state.source&&!n.isNewData(t,this.state)){e.next=25;break}return this.setState(Object.assign({},this.state,{data:void 0,selection:{id:t.indi},hash:t.hash,error:void 0,loading:!0,url:t.url,standalone:t.standalone,chartType:t.chartType,source:t.source})),e.prev=13,e.next=16,n.loadData(t);case 16:a=e.sent,this.setState(Object.assign({},this.state,{data:a,hash:t.hash,selection:we(a.chartData,t.indi,t.generation),error:void 0,loading:!1,url:t.url,showSidePanel:t.showSidePanel,standalone:t.standalone,chartType:t.chartType,source:t.source})),e.next=23;break;case 20:e.prev=20,e.t0=e.catch(13),this.setError(e.t0.message);case 23:e.next=34;break;case 25:if(!this.state.data||!this.state.selection){e.next=34;break}if(r=we(this.state.data.chartData,t.indi,t.generation),i=t.source===Ct.WIKITREE&&(!this.state.selection||this.state.selection.id!==r.id),this.updateDisplay(r,{chartType:t.chartType,loadingMore:i||void 0}),!i){e.next=34;break}return e.next=32,Je(t.indi);case 32:o=e.sent,this.setState(Object.assign({},this.state,{data:o,hash:t.hash,selection:we(o.chartData,t.indi,t.generation),error:void 0,loading:!1,url:t.url,showSidePanel:t.showSidePanel,standalone:t.standalone,chartType:t.chartType,source:t.source,loadingMore:!1}));case 34:case"end":return e.stop()}},e,this,[[13,20]])}));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(et.a,{render:function(t){return o.createElement(jt,Object.assign({},t,{data:e.state.data&&e.state.data.chartData,allowAllRelativesChart:e.state.source!==Ct.WIKITREE,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},showWikiTreeMenus:e.state.source===Ct.WIKITREE}))}}),o.createElement(tt.a,null,o.createElement(et.a,{exact:!0,path:"/",component:je}),o.createElement(et.a,{exact:!0,path:"/view",render:this.renderMainArea}),o.createElement(nt.a,{to:"/"})))}}]),t}(o.Component);Ft.contextTypes={intl:c.d};var Ut=n(284),Gt=n(548);n(525),n(526),n(527);Object(c.c)([].concat(Object(a.a)(r),Object(a.a)(i)));var Ht={pl:l},Bt=navigator.language&&navigator.language.split(/[-_]/)[0],Vt=Object(Ut.detect)();Vt&&"ie"===Vt.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(c.b,{locale:Bt,messages:Ht[Bt]},o.createElement(Gt.a,null,o.createElement(et.a,{component:Ft}))),document.querySelector("#root"))}},[[297,1,2]]]);
//# sourceMappingURL=main.2b6d3b8f.chunk.js.map