mirror of
https://github.com/PeWu/topola-viewer.git
synced 2026-03-11 01:53:46 +00:00
2 lines
52 KiB
JavaScript
2 lines
52 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){},260:function(e,t,n){e.exports=n.p+"static/media/topola.060eef13.jpg"},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(250),i=n(251),o=n(0),s=n(64),c=n(252),l=n(16),u=n(39),d=n(37),f=n(40),m=n(65),h=n(14),p=n.n(h),g=n(18),v=n(27),w=n(28),b=n(32);function y(e,t){window.gtag("event",e,t)}var E,k=n(17),O=n(255),x=n.n(O),D=n(168),S=n(33),j=n(553);function M(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 T.apply(this,arguments)}function T(){return(T=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,M(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 N.apply(this,arguments)}function N(){return(N=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 L(e){var t=new Image;return t.src=URL.createObjectURL(e),new Promise(function(e,n){t.addEventListener("load",function(){return e(t)})})}function C(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"}(E||(E={}));var I=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(f.a)(t,e),Object(w.a)(t,[{key:"getChartType",value:function(){switch(this.props.chartType){case E.Hourglass:return S.HourglassChart;case E.Relatives:return S.RelativesChart;case E.Fancy:return S.FancyChart;default:return S.HourglassChart}}},{key:"getRendererType",value:function(){switch(this.props.chartType){case E.Fancy:return S.CircleRenderer;default:return S.DetailedRenderer}}},{key:"zoom",value:function(e){var t=k.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?(k.select("#chart").node().innerHTML="",this.chart=Object(S.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("#chartSvg"),r=k.select("#svgContainer").node(),i=this.props.enableZoom?k.zoomTransform(r).k:1,o=k.min([1,i,r.clientWidth/n.size[0],r.clientHeight/n.size[1]]),s=this.props.enableZoom?[k.max([.1,o]),2]:[1,1];this.zoomBehavior=k.zoom().scaleExtent(s).translateExtent([[0,0],n.size]).on("zoom",function(){return function(e,t){var n=k.select("#svgContainer").node();if(t){var a=k.event.transform.k,r=k.max([0,(n.clientWidth-e[0]*a)/2]),i=k.max([0,(n.clientHeight-e[1]*a)/2]);k.select("#chartSvg").attr("width",e[0]*a).attr("height",e[1]*a).attr("transform","translate(".concat(r,", ").concat(i,")")),k.select("#chart").attr("transform","scale(".concat(a,")"))}n.scrollLeft=-k.event.transform.x,n.scrollTop=-k.event.transform.y}(n.size,e.props.enableZoom)}),k.select(r).on("scroll",function(){return function(e){var t=k.select("#svgContainer").node(),n=t.scrollLeft+t.clientWidth/2,a=t.scrollTop+t.clientHeight/2,r=e?k.zoomTransform(t).k:1;k.select(t).call(k.zoom().translateTo,n/r,a/r)}(e.props.enableZoom)}).call(this.zoomBehavior);var c,l,u=r.clientWidth/2-n.origin[0]*i,d=r.clientHeight/2-n.origin[1]*i,f=k.max([0,(r.clientWidth-n.size[0]*i)/2]),m=k.max([0,(r.clientHeight-n.size[1]*i)/2]),h=a.transition().delay(200).duration(500);(t.initialRender?a:h).attr("transform","translate(".concat(f,", ").concat(m,")")).attr("width",n.size[0]*i).attr("height",n.size[1]*i),t.initialRender?(r.scrollLeft=-u,r.scrollTop=-d):h.tween("scrollLeft",(l=-u,function(){var e=k.interpolateNumber(r.scrollLeft,l);return function(t){r.scrollLeft=e(t)}})).tween("scrollTop",(c=-d,function(){var e=k.interpolateNumber(r.scrollTop,c);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"},this.props.enableZoom?o.createElement(j.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")):null,o.createElement("svg",{id:"chartSvg"},o.createElement("g",{id:"chart"})))}},{key:"getStrippedSvg",value:function(){var e=document.getElementById("chartSvg").cloneNode(!0);if(e.removeAttribute("transform"),this.props.enableZoom){var t=k.select("#svgContainer").node(),n=k.zoomTransform(t).k;e.setAttribute("width",String(Number(e.getAttribute("width"))/n)),e.setAttribute("height",String(Number(e.getAttribute("height"))/n)),e.querySelector("#chart").removeAttribute("transform")}return 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(D.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=C,e.next=7,L(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(D.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 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);I.contextTypes={intl:l.d};var P=n(258),W=n.n(P),U=n(259),A=n.n(U),F=n(164);function G(e){return e.substring(1,e.length-1)}function B(e){var t=e.find(function(e){return"HEAD"===e.tag}),n={},a={},r={};return e.forEach(function(e){"INDI"===e.tag?n[G(e.pointer)]=e:"FAM"===e.tag?a[G(e.pointer)]=e:e.pointer&&(r[G(e.pointer)]=e)}),{head:t,indis:n,fams:a,other:r}}function H(e,t){return e<t?-1:e>t?1:0}function Z(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 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=t[e],r=t[n];return Z(a&&a.birth,r&&r.birth)||H(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 K(e){var t=function(e){var t=new Map;return e.fams.forEach(function(e){t[e.id]=e}),function(e,n){var a=t[e],r=t[n];return Z(a&&a.marriage,r&&r.marriage)||H(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 J(e){return K(V(e))}var q=[".jpg",".png",".gif"];function Y(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 q.some(function(e){return t.endsWith(e)})}(e.url)&&n.push(e)}),Object.assign({},e,{images:n})}function X(e,t){var n=e.indis.map(function(e){return Y(e,t)});return Object.assign({},e,{indis:n})}function $(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 Q=new Map([["abt","about"],["cal","calculated"],["est","estimated"]]);function ee(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:Q.get(o)||o}),new Intl.DateTimeFormat(t.locale,s).format(i)].join(" ")}function te(e,t){var n=Object(S.getDate)(e);return n?n.date?ee(n.date,t):n.dateRange?function(e,t){var n=e.from,a=e.to,r=n&&ee(n,t),i=a&&ee(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 ne=["BIRT","BAPM","CHR","DEAT","BURI","EVEN"],ae=["NAME","SEX","FAMC","FAMS","NOTE","SOUR"],re=new Map([["BAPM","Baptism"],["BIRT","Birth"],["BURI","Burial"],["CHR","Christening"],["DEAT","Death"],["EMAIL","E-mail"],["EVEN","Event"],["OCCU","Occupation"],["TITL","Title"],["WWW","WWW"]]);function ie(e){return o.createElement(l.a,{id:"gedcom.".concat(e),defaultMessage:re.get(e)||e})}function oe(e){return o.createElement(o.Fragment,null,e.map(function(e,t){return o.createElement("div",{key:t},o.createElement(A.a,{properties:{target:"_blank"}},e),o.createElement("br",null))}))}function se(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 ce(e){return oe(se(e).map(function(e,t){return o.createElement("i",{key:t},e)}))}function le(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 ue(e,t,n){return W()(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 de(e){return e.tree.length>0||e.data&&!e.data.startsWith("@")}function fe(e){return e.filter(function(e){return!ae.includes(e.tag)&&!ne.includes(e.tag)}).filter(de).map(function(e){return function(e){var t=[];return e.data&&t.push.apply(t,Object(a.a)(se(e))),e.tree.filter(function(e){return"NOTE"===e.tag}).forEach(function(e){return se(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"},ie(e.tag)),o.createElement("span",null,oe(t))):null}(e)}).filter(function(e){return null!==e}).map(function(e,t){return o.createElement("div",{className:"ui segment",key:t},e)})}var me=function(e){function t(){return Object(v.a)(this,t),Object(u.a)(this,Object(d.a)(t).apply(this,arguments))}return Object(f.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[G(e.data)];if(n)return n}return e}(t,e.props.gedcom)}).filter(de);return o.createElement("div",{className:"ui segments",id:"details"},ue(t,["NAME"],le),ue(t,ne,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(te(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)(se(i))),e.tree.filter(function(e){return"NOTE"===e.tag}).forEach(function(e){return se(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"},ie(e.tag)),o.createElement("span",null,oe(n))):null}(t,e.context.intl)}),fe(n),ue(n,["NOTE"],ce))}}]),t}(o.Component);function he(e,t,n){return{id:t&&e.indis.some(function(e){return e.id===t})?t:e.indis[0].id,generation:n||0}}function pe(e,t,n){var a=function(e,t){var n=Object(F.parse)(e),a=Object(S.gedcomEntriesToJson)(n);if(!a||!a.indis||!a.indis.length||!a.fams||!a.fams.length)throw new Error("Failed to read GEDCOM file");return{chartData:X(J(a),t),gedcom:B(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 ge(e,t){return ve.apply(this,arguments)}function ve(){return(ve=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",pe(o,t));case 19:case"end":return e.stop()}},e,null,[[0,6]])}))).apply(this,arguments)}function we(e,t,n){return be.apply(this,arguments)}function be(){return(be=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",pe(n,t,a));case 12:case"end":return e.stop()}},e,null,[[0,6]])}))).apply(this,arguments)}me.contextTypes={intl:l.d};var ye=n(260),Ee=n.n(ye),ke=n(543),Oe=n(549),xe=n(286),De=n(536);function Se(e){return o.createElement(De.a,{to:{pathname:"/view",search:b.stringify({url:e.url})}},e.text)}function je(){return o.createElement("div",{id:"content"},o.createElement("div",{className:"backgroundImage"}),o.createElement(ke.a,{className:"intro"},o.createElement(ke.a.Content,null,o.createElement(ke.a.Header,null,o.createElement(l.a,{id:"intro.title",defaultMessage:"Topola Genealogy Viewer"}))),o.createElement(ke.a.Content,null,o.createElement(Oe.a,null,o.createElement(Oe.a.Row,null,o.createElement(Oe.a.Column,{width:5},o.createElement(xe.a,{src:Ee.a,alt:"Topola logo"})),o.createElement(Oe.a.Column,{width:11},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(Se,{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(Se,{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(Se,{url:"http://genealogyoflife.com/tng/gedcom/HarryPotter.ged",text:"Harry Potter"})," ","(",o.createElement(l.a,{id:"intro.from",defaultMessage:"from"})," ",o.createElement("a",{href:"http://famousfamilytrees.blogspot.com/"},"Famous Family Trees"),")")),o.createElement("p",null,o.createElement("b",null,o.createElement(l.a,{id:"intro.privacy",defaultMessage:"Privacy"})),": ",o.createElement(l.a,{id:"intro.privacy_note",defaultMessage:'When using the "load from file" option, this site does not send your data anywhere and files loaded from disk do not leave your computer. When using "load from URL", data is passed through the {link} service to deal with an issue with cross-site file loading in the browser (CORS).',values:{link:o.createElement("a",{href:"https://cors-anywhere.herokuapp.com/"},"cors-anywhere")}})),o.createElement("p",{className:"ui right aligned version"},"version: ","2020-03-22 14:30:25 +0100".slice(0,16)," (",o.createElement("a",{href:"https://github.com/PeWu/topola-viewer/commit/".concat("0450064")},"0450064"),")"))," ")," "))))}var Me=n(544),_e=n(554),Te=n(539),Re=n(87),Ne=n.n(Re);function Le(e){try{return sessionStorage.getItem(e)}catch(t){console.warn("Failed to load data from session storage: "+t)}return null}function Ce(e,t){try{sessionStorage.setItem(e,t)}catch(n){console.warn("Failed to store data in session storage: "+n)}}function ze(e,t){return Ie.apply(this,arguments)}function Ie(){return(Ie=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 Pe(e,t){return We.apply(this,arguments)}function We(){return(We=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=Le(a))){e.next=4;break}return e.abrupt("return",JSON.parse(r));case 4:return e.next=6,ze({action:"getAncestors",key:t,fields:"*"},n);case 6:return i=e.sent,o=i[0].ancestors,Ce(a,JSON.stringify(o)),e.abrupt("return",o);case 10:case"end":return e.stop()}},e)}))).apply(this,arguments)}function Ue(e,t){return Ae.apply(this,arguments)}function Ae(){return(Ae=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=Le("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,ze({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){Ce("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 Fe(e){return Ge.apply(this,arguments)}function Ge(){return(Ge=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,ze({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 Be(e,t){return He.apply(this,arguments)}function He(){return(He=Object(g.a)(p.a.mark(function e(t,n){var r,i,o,s,c,l,u,d,f,h,g,v,w,b,y,E,k,O,x,D,S;return p.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r="apps.wikitree.com"!==window.location.hostname)||Ne.a.get("wikidb_wtb_UserID")||!n){e.next=6;break}return e.next=4,Fe(n);case 4:"Success"===e.sent.result&&sessionStorage.clear();case 6:return i=[],e.next=9,Ue([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 Pe(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,Ue(l,r);case 19:u=e.sent,i.push.apply(i,Object(a.a)(u)),d=5,f=[t],h=0;case 24:if(!(f.length>0&&h<=d)){e.next=35;break}return e.next=27,Ue(f,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)),f=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,b=new Map,y=new Map,E=new Map,i.forEach(function(e){if(E.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(b,t).add(e.Id),y.set(t,{wife:e.Mother||void 0,husband:e.Father||void 0})}}),k=[],O=new Set,i.forEach(function(e){if(!O.has(e.Id)){O.add(e.Id);var t=Ve(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};y.set(n,a)}),t.fams=Array.from(qe(w,e.Id)),k.push(t)}}),x=Array.from(y.entries()).map(function(e){var t=Object(m.a)(e,2),n=t[0],a=t[1],r={id:n},i=a.wife&&E.get(a.wife);i&&(r.wife=i);var o=a.husband&&E.get(a.husband);if(o&&(r.husb=o),r.children=Array.from(qe(b,n)).map(function(e){return E.get(e)}),a.spouse&&(a.spouse.marriage_date&&"0000-00-00"!==a.spouse.marriage_date||a.spouse.marriage_location)){var s=Ke(a.spouse.marriage_date);r.marriage=Object.assign({},s,{place:a.spouse.marriage_location})}return r}),D=J({indis:k,fams:x}),S=Je(k),e.abrupt("return",{chartData:D,gedcom:S});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 Ve(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=Ke(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=Ke(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 Ke(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 Je(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 Ye=n(551),Xe=n(552),$e=n(547),Qe=n(264),et=n.n(Qe),tt=n(169),nt=n.n(tt),at=n(265),rt=n.n(at),it=n(266),ot=n.n(it);function st(e){return e.toLocaleLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\u0142/g,"l")}function ct(e,t){return e.score!==t.score?t.score-e.score:rt()(e.ref,t.ref)}function lt(e,t){return e.tree.filter(function(e){return"FAMS"===e.tag}).map(function(e){return t.fams[G(e.data)]}).filter(function(e){return!!e}).map(function(n){var a=n.tree.find(function(e){return"HUSB"===e.tag}),r=a&&G(a.data);return r&&r!==G(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 ut=function(){function e(t){Object(v.a)(this,e),this.gedcom=t,this.index=void 0}return Object(w.a)(e,[{key:"initialize",value:function(){var e=this;this.index=ot()(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=lt(n,e.gedcom);this.add({id:t,name:a,normalizedName:st(a),spouseLastName:r,normalizedSpouseLastName:st(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(ct).slice(0,8).map(function(e){return{id:e.ref,indi:t.gedcom.indis[e.ref]}})}}]),e}();function dt(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 ft(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&&te(r.data,n)||""}function mt(e,t){var n=ft(e,"BIRT",t),a=ft(e,"DEAT",t);return a?"".concat(n," \u2013 ").concat(a):n}var ht,pt=n(541),gt=n(550),vt=n(66),wt=n(540),bt=n(538),yt=n(530),Et=n(545),kt=n(542),Ot=n(546);function xt(e){return new Promise(function(t,n){var a=new FileReader;a.onload=function(e){t(e.target.result)},a.readAsText(e)})}function Dt(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"}(ht||(ht={}));var St,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,searchResults:[],wikiTreeLoginState:ht.UNKNOWN},n.urlInputRef=o.createRef(),n.wikiTreeLoginFormRef=o.createRef(),n.wikiTreeReturnUrlRef=o.createRef(),n.searchRef=void 0,n.searchIndex=void 0,n}return Object(f.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,c,l,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="",y("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&&Dt(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,xt(r);case 11:s=e.sent,c=i.map(function(e){return e.name}).sort().join("|"),l=nt()(nt()(s)+c),u=b.parse(this.props.location.search),(u.file===l?this.props.history.replace:this.props.history.push)({pathname:"/view",search:b.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&&(y("url_selected"),this.props.history.push({pathname:"/view",search:b.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:dt(e),description:mt(e.indi,t)}}(e,t.context.intl)});this.setState(Object.assign({},this.state,{searchResults:n}))}}},{key:"handleResultSelect",value:function(e){y("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 ut(e);return t.initialize(),t}(this.props.gedcom))}},{key:"changeView",value:function(e){var t=this.props.location,n=b.parse(t.search);n.view!==e&&(n.view=e,t.search=b.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!==Ne.a.get("wikidb_wtb_UserID")?ht.LOGGED_IN:ht.NOT_LOGGED_IN;if(this.state.wikiTreeLoginState!==e){var t=Ne.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.gedcom!==this.props.gedcom&&this.initializeSearchIndex()}},{key:"loadFromUrlModal",value:function(){var e=this;return o.createElement(pt.a,{open:this.state.loadUrlDialogOpen,onClose:function(){return e.handleClose()},centered:!1},o.createElement(gt.a,null,o.createElement(vt.a,{name:"cloud download"}),o.createElement(l.a,{id:"load_from_url.title",defaultMessage:"Load from URL",children:function(e){return e}})),o.createElement(pt.a.Content,null,o.createElement(wt.a,{onSubmit:function(){return e.handleLoad()}},o.createElement(bt.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(pt.a.Actions,null,o.createElement(yt.a,{secondary:!0,onClick:function(){return e.handleClose()}},o.createElement(l.a,{id:"load_from_url.cancel",defaultMessage:"Cancel"})),o.createElement(yt.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(Et.a.Item,{as:"a",onClick:function(){return e.props.eventHandlers.onPrint()}},o.createElement(vt.a,{name:"print"}),o.createElement(l.a,{id:"menu.print",defaultMessage:"Print"})),o.createElement(kt.a,{trigger:o.createElement("div",null,o.createElement(vt.a,{name:"download"}),o.createElement(l.a,{id:"menu.download",defaultMessage:"Download"})),className:"item"},o.createElement(kt.a.Menu,null,o.createElement(kt.a.Item,{onClick:function(){return e.props.eventHandlers.onDownloadPdf()}},o.createElement(l.a,{id:"menu.pdf_file",defaultMessage:"PDF file"})),o.createElement(kt.a.Item,{onClick:function(){return e.props.eventHandlers.onDownloadPng()}},o.createElement(l.a,{id:"menu.png_file",defaultMessage:"PNG file"})),o.createElement(kt.a.Item,{onClick:function(){return e.props.eventHandlers.onDownloadSvg()}},o.createElement(l.a,{id:"menu.svg_file",defaultMessage:"SVG file"})))),o.createElement(kt.a,{trigger:o.createElement("div",null,o.createElement(vt.a,{name:"eye"}),o.createElement(l.a,{id:"menu.view",defaultMessage:"View"})),className:"item"},o.createElement(kt.a.Menu,null,o.createElement(kt.a.Item,{onClick:function(){return e.changeView("hourglass")}},o.createElement(vt.a,{name:"hourglass"}),o.createElement(l.a,{id:"menu.hourglass",defaultMessage:"Hourglass chart"})),this.props.allowAllRelativesChart?o.createElement(kt.a.Item,{onClick:function(){return e.changeView("relatives")}},o.createElement(vt.a,{name:"users"}),o.createElement(l.a,{id:"menu.relatives",defaultMessage:"All relatives"})):null,o.createElement(kt.a.Item,{onClick:function(){return e.changeView("fancy")}},o.createElement(vt.a,{name:"users"}),o.createElement(l.a,{id:"menu.fancy",defaultMessage:"Fancy tree (experimental)"})))),o.createElement(Ot.a,{onSearchChange:et()(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(De.a,{to:"/"},o.createElement(Et.a.Item,null,o.createElement("b",null,"Topola Genealogy"))),o.createElement(Et.a.Item,{as:"a",onClick:function(){return e.openLoadUrlDialog()}},o.createElement(vt.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(Et.a.Item,{as:"a"},o.createElement(vt.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 ht.NOT_LOGGED_IN:return o.createElement(Et.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 ht.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(Et.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(Et.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(Et.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(Et.a,{attached:"top",inverted:!0,color:"blue",size:"large"},this.fileMenus(),this.chartMenus(),o.createElement(Et.a.Menu,{position:"right"},this.wikiTreeLoginMenu(),this.props.standalone?this.sourceLink():this.poweredByLink()),this.loadFromUrlModal())}}]),t}(o.Component);function Mt(e){return o.createElement(Me.a,{negative:!0,className:"error"},o.createElement(Me.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 _t(e){return o.createElement(_e.a,{open:e.open,onClose:e.onDismiss},o.createElement(Me.a,{negative:!0,className:"errorPopup",onDismiss:e.onDismiss},o.createElement(Me.a.Header,null,o.createElement(l.a,{id:"error.error",defaultMessage:"Error"})),o.createElement("p",null,e.message)))}jt.contextTypes={intl:l.d},function(e){e.GEDCOM="gedcom",e.READY="ready",e.PARENT_READY="parent_ready"}(St||(St={}));var Tt,Rt=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,we(t.hash,t.gedcom,t.images);case 3:return n=e.sent,y("upload_file_loaded",{event_label:$(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),y("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}(),Nt=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,ge(t.url,t.handleCors);case 3:return n=e.sent,y("upload_file_loaded",{event_label:$(n.gedcom.head)}),e.abrupt("return",n);case 9:throw e.prev=9,e.t0=e.catch(0),y("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}(),Lt=function(){function e(){Object(v.a)(this,e)}return Object(w.a)(e,[{key:"isNewData",value:function(e,t){return!1}},{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.indi,t.authcode);case 3:return n=e.sent,y("wikitree_loaded"),e.abrupt("return",n);case 8:throw e.prev=8,e.t0=e.catch(0),y("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"}(Tt||(Tt={}));var Ct=new Map([[Tt.UPLOADED,new Rt],[Tt.GEDCOM_URL,new Nt],[Tt.WIKITREE,new Lt]]);function zt(e){var t=b.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",E.Relatives],["fancy",E.Fancy]]),o=n("file"),s=n("url"),c="wikitree"===n("source")?Tt.WIKITREE:o?Tt.UPLOADED:s?Tt.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:c,authcode:n("?authcode"),chartType:i.get(r)||E.Hourglass,gedcom:e.state&&e.state.data,images:e.state&&e.state.images,enableZoom:"false"!==n("enableZoom")}}var It=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:E.Hourglass,showErrorPopup:!1,enableZoom:!1},n.chartRef=null,n.onSelection=function(e){if(y("selection_changed"),n.state.embedded)n.updateDisplay(e);else{var t=n.props.location,a=b.parse(t.search);a.indi=e.id,a.gen=String(e.generation),t.search=b.stringify(a),n.props.history.push(t)}},n.onPrint=function(){y("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(y("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(y("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(){y("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(_t,{open:n.state.showErrorPopup,message:n.state.error,onDismiss:n.onDismissErrorPopup}),n.state.loadingMore?o.createElement(Te.a,{active:!0,size:"small",className:"loading-more"}):null,o.createElement(I,{data:n.state.data.chartData,selection:n.state.selection,chartType:n.state.chartType,onSelection:n.onSelection,ref:function(e){return n.chartRef=e},enableZoom:n.state.enableZoom}),n.state.showSidePanel?o.createElement(j.a,{minWidth:768,id:"sidePanel"},o.createElement(me,{gedcom:n.state.data.gedcom,indi:n.state.selection.id})):null):n.state.error?o.createElement(Mt,{message:n.state.error}):o.createElement(Te.a,{active:!0,size:"large"})},n}return Object(f.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(m.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!==St.PARENT_READY){e.next=4;break}window.parent.postMessage({message:St.READY},"*"),e.next=21;break;case 4:if(t.message!==St.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,we("",n);case 11:a=e.sent,y("embedded_file_loaded",{event_label:$(a.gedcom.head)}),this.setState(Object.assign({},this.state,{data:a,selection:he(a.chartData),error:void 0,loading:!1})),e.next=21;break;case 17:e.prev=17,e.t0=e.catch(8),y("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=zt(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=Ct.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:void 0,hash:t.hash,error:void 0,loading:!0,url:t.url,standalone:t.standalone,chartType:t.chartType,source:t.source,enableZoom:t.enableZoom})),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:he(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,enableZoom:t.enableZoom})),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=he(this.state.data.chartData,t.indi,t.generation),i=t.source===Tt.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,Be(t.indi);case 32:o=e.sent,this.setState(Object.assign({},this.state,{data:o,hash:t.hash,selection:he(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,enableZoom:t.enableZoom,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(Ye.a,{render:function(t){return o.createElement(jt,Object.assign({},t,{gedcom:e.state.data&&e.state.data.gedcom,allowAllRelativesChart:e.state.source!==Tt.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},showWikiTreeLogin:e.state.source===Tt.WIKITREE}))}}),o.createElement(Xe.a,null,o.createElement(Ye.a,{exact:!0,path:"/",component:je}),o.createElement(Ye.a,{exact:!0,path:"/view",render:this.renderMainArea}),o.createElement($e.a,{to:"/"})))}}]),t}(o.Component);It.contextTypes={intl:l.d};var Pt=n(284),Wt=n(548);n(525),n(526),n(527);Object(l.c)([].concat(Object(a.a)(r),Object(a.a)(i)));var Ut={pl:c},At=navigator.language&&navigator.language.split(/[-_]/)[0],Ft=Object(Pt.detect)();Ft&&"ie"===Ft.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:At,messages:Ut[At]},o.createElement(Wt.a,null,o.createElement(Ye.a,{component:It}))),document.querySelector("#root"))}},[[297,1,2]]]);
|
|
//# sourceMappingURL=main.f1354ae9.chunk.js.map
|