var FamilyTree=function(e,t){var i=this;if(("string"==typeof e||e instanceof String)&&(e=document.querySelector(e)),this.element=e,this.config=FamilyTree.mergeDeep(FamilyTree._defaultConfig(t),t),this._layoutConfigs={base:{orientation:this.config.orientation,levelSeparation:this.config.levelSeparation,mixedHierarchyNodesSeparation:this.config.mixedHierarchyNodesSeparation,assistantSeparation:this.config.assistantSeparation,subtreeSeparation:this.config.subtreeSeparation,siblingSeparation:this.config.siblingSeparation,layout:this.config.layout,columns:this.config.columns,collapse:this.config.collapse,partnerNodeSeparation:this.config.partnerNodeSeparation}},this.config.tags)for(var r in this.config.tags){var a=this.config.tags[r];null!=a.subTreeConfig&&(this._layoutConfigs[r]={orientation:null!=a.subTreeConfig.orientation?a.subTreeConfig.orientation:this.config.orientation,levelSeparation:null!=a.subTreeConfig.levelSeparation?a.subTreeConfig.levelSeparation:this.config.levelSeparation,mixedHierarchyNodesSeparation:null!=a.subTreeConfig.mixedHierarchyNodesSeparation?a.subTreeConfig.mixedHierarchyNodesSeparation:this.config.mixedHierarchyNodesSeparation,assistantSeparation:null!=a.subTreeConfig.assistantSeparation?a.subTreeConfig.assistantSeparation:this.config.assistantSeparation,subtreeSeparation:null!=a.subTreeConfig.subtreeSeparation?a.subTreeConfig.subtreeSeparation:this.config.subtreeSeparation,siblingSeparation:null!=a.subTreeConfig.siblingSeparation?a.subTreeConfig.siblingSeparation:this.config.siblingSeparation,layout:null!=a.subTreeConfig.layout?a.subTreeConfig.layout:this.config.layout,columns:null!=a.subTreeConfig.columns?a.subTreeConfig.columns:this.config.columns,collapse:null!=a.subTreeConfig.collapse?a.subTreeConfig.collapse:this.config.collapse,partnerNodeSeparation:null!=a.subTreeConfig.partnerNodeSeparation?a.subTreeConfig.partnerNodeSeparation:this.config.partnerNodeSeparation})}this._event_id=FamilyTree._guid(),FamilyTree._validateConfig(this.config)&&(this._vScroll={},this.config.ui||(this.ui=FamilyTree.ui),this.config.editUI?this.editUI=this.config.editUI:this.editUI=new FamilyTree.editUI,this.editUI.init(this),this.config.filterUI?this.filterUI=this.config.filterUI:this.filterUI=new FamilyTree.filterUI,this.filterUI.init(this),this.manager=new FamilyTree.manager(this),this.config.searchUI?this.searchUI=this.config.searchUI:this.searchUI=new FamilyTree.searchUI,this.config.nodeMenuUI?this.nodeMenuUI=this.config.nodeMenuUI:this.nodeMenuUI=new FamilyTree.menuUI,this.nodeMenuUI.init(this,this.config.nodeMenu),this.config.nodeCircleMenuUI?this.nodeCircleMenuUI=this.config.nodeCircleMenuUI:this.nodeCircleMenuUI=new FamilyTree.circleMenuUI,this.nodeCircleMenuUI.init(this,this.config.nodeCircleMenu),this.config.nodeContextMenuUI?this.nodeContextMenuUI=this.config.nodeContextMenuUI:this.nodeContextMenuUI=new FamilyTree.menuUI,this.nodeContextMenuUI.init(this,this.config.nodeContextMenu),this.config.toolbarUI?this.toolbarUI=this.config.toolbarUI:this.toolbarUI=new FamilyTree.toolbarUI,this.config.notifierUI?this.notifierUI=this.config.notifierUI:this.notifierUI=new FamilyTree.notifierUI,this.notifierUI.init(this),this.config.menuUI?this.menuUI=this.config.menuUI:this.menuUI=new FamilyTree.menuUI,this.menuUI.init(this,this.config.menu),this.config.xScrollUI||(this.xScrollUI=new FamilyTree.xScrollUI(this.element,this.config,(function(){return{boundary:i.response.boundary,scale:i.getScale(),viewBox:i.getViewBox(),padding:i.config.padding}}),(function(e){i.setViewBox(e)}),(function(){i._draw(!0,FamilyTree.action.xScroll)}))),this.config.yScrollUI||(this.yScrollUI=new FamilyTree.yScrollUI(this.element,this.config,(function(){return{boundary:i.response.boundary,scale:i.getScale(),viewBox:i.getViewBox(),padding:i.config.padding}}),(function(e){i.setViewBox(e)}),(function(){i._draw(!0,FamilyTree.action.xScroll)}))),this.config.undoRedoUI?this.undoRedoUI=this.config.undoRedoUI:this.undoRedoUI=new FamilyTree.undoRedoUI,this.element.classList.add("bft-"+this.config.mode),this._gragStartedId=null,this._timeout=null,this._touch=null,this._initialized=!1,this._loaded=!1,this._moveInterval=null,this._movePosition=null,this.response=null,this.nodes=null,this.isVisible=null,FamilyTree._intersectionObserver(this.element,(function(e){i.isVisible=e,!1!==FamilyTree.events.publish("visibility-change",[i])&&FamilyTree.LAZY_LOADING&&i.isVisible&&(i._loaded?i._draw(!1,FamilyTree.action.update):(i._setInitialSizeIfNotSet(),i._draw(!1,FamilyTree.action.init)))})))};FamilyTree._defaultConfig=function(e){return{interactive:!0,mode:"light",lazyLoading:!0,enableDragDrop:!1,enableSearch:!0,enableTouch:!1,enablePan:!0,keyNavigation:!1,miniMap:!1,nodeMenu:null,nodeCircleMenu:null,nodeContextMenu:null,menu:null,toolbar:!1,sticky:!0,nodeMouseClick:FamilyTree.action.details,nodeMouseDbClick:FamilyTree.none,mouseScrool:FamilyTree.action.zoom,showXScroll:FamilyTree.none,showYScroll:FamilyTree.none,template:"ana",tags:{},min:!1,nodeBinding:{},linkBinding:{},searchFields:null,searchDisplayField:null,searchFieldsWeight:null,searchFieldsAbbreviation:null,nodes:[],clinks:[],slinks:[],backdrops:[],groupDottedLines:[],dottedLines:[],undoRedoStorageName:null,levelSeparation:60,siblingSeparation:20,subtreeSeparation:40,backdropSeparation:15,mixedHierarchyNodesSeparation:15,assistantSeparation:100,minPartnerSeparation:50,partnerChildrenSplitSeparation:20,partnerNodeSeparation:15,columns:10,padding:30,orientation:FamilyTree.orientation.top,layout:FamilyTree.layout.normal,layoutGridColumns:"dynamic",scaleInitial:1,movable:null,scaleMin:.1,scaleMax:5,orderBy:null,editUI:null,filterUI:null,searchUI:null,xScrollUI:null,yScrollUI:null,nodeMenuUI:null,nodeCircleMenuUI:null,nodeContextMenuUI:null,toolbarUI:null,notifierUI:null,menuUI:null,undoRedoUI:null,exportUrl:"https://balkan.app/export",collapse:{},expand:{},align:FamilyTree.CENTER,UI:null,anim:{func:FamilyTree.anim.outPow,duration:200},zoom:{speed:120,smooth:12},roots:null,state:null,editForm:{readOnly:!1,titleBinding:"name",photoBinding:"img",addMore:"Add more fields",addMoreBtn:"Add",addMoreFieldName:"Field name",saveAndCloseBtn:"Save and close",cancelBtn:"Cancel",generateElementsFromFields:!0,focusBinding:null,buttons:{edit:{icon:FamilyTree.icon.edit(24,24,"#fff"),text:"Edit",hideIfEditMode:!0,hideIfDetailsMode:!1},share:{icon:FamilyTree.icon.share(24,24,"#fff"),text:"Share"},pdf:{icon:FamilyTree.icon.pdf(24,24,"#fff"),text:"Save as PDF"},remove:{icon:FamilyTree.icon.remove(24,24,"#fff"),text:"Remove",hideIfDetailsMode:!0}},elements:[]}}},FamilyTree.prototype.load=function(e,t){var i=this;return this.config.nodes=e,this._draw(!1,FamilyTree.action.init,void 0,(function(){i.filterUI.update(),t&&t()})),this},FamilyTree.prototype.loadXML=function(e,t){var i=FamilyTree._xml2json(e);return this.load(i,t)},FamilyTree.prototype.getXML=function(){return FamilyTree._json2xml(this.config.nodes)},FamilyTree.prototype.on=function(e,t){return FamilyTree.events.on(e,t,this._event_id),this},FamilyTree.prototype.removeListener=function(e,t){return FamilyTree.events.remove(e,t,this._event_id)},FamilyTree.prototype.draw=function(e,t,i){null==e&&(e=FamilyTree.action.update),this._draw(!1,e,t,i)},FamilyTree.prototype._draw=function(e,t,i,r){var a=this;if(!FamilyTree.LAZY_LOADING||this.isVisible)if(FamilyTree.LAZY_LOADING||this._initialized||(this._setInitialSizeIfNotSet(),0!=this.width()&&0!=this.height())){this._hideBeforeAnimationCompleted=!1;var n=t==FamilyTree.action.init?null:this.getViewBox();this.manager.read(e,this.width(),this.height(),n,t,i,(function(e){if(!a.notifierUI.show(e.notif)){t!=FamilyTree.action.exporting&&(a.nodes=e.nodes,a.visibleNodeIds=e.visibleNodeIds,a.roots=e.roots),a.editUI.fields=e.allFields;var n={defs:""};FamilyTree.events.publish("renderdefs",[a,n]);var o=a.ui.defs(n.defs),l=a.getScale(e.viewBox);o+=a.ui.pointer(a.config,t,l);var s=a.getViewBox(),d=e.viewBox;n={content:o,res:e};FamilyTree.events.publish("prerender",[a,n]),o=n.content;var c=[];if(FamilyTree.RENDER_LINKS_BEFORE_NODES)for(var m=0;m 0){a._hideBeforeAnimation(g[0].length);for(m=0;m this.config.scaleMax&&(e=this.config.scaleMax),e n?n:a,l=t,s=t[2],d=t[3];return t[2]=t[2]/(e/o),t[3]=t[3]/(e/o),t[0]=l[0]-(t[2]-s)/2,t[1]=l[1]-(t[3]-d)/2,this.setViewBox(t),FamilyTree.events.publish("redraw",[this]),e},FamilyTree.prototype.ripple=function(e,t,i){var r=this.getNode(e);if(null!=r){var a=this.getNodeElement(e);if(null!=a){var n=this.getScale(),o=r.w/2,l=r.h/2;if(void 0!==t&&void 0!==i){var s=a.getBoundingClientRect();o=t/n-s.left/n,l=i/n-s.top/n}var d=r.w,c=r.h,m=d-o>o?d-o:o,h=c-l>l?c-l:l,p=m>h?m:h,f=document.createElementNS("http://www.w3.org/2000/svg","g"),u=document.createElementNS("http://www.w3.org/2000/svg","clipPath"),y=document.createElementNS("http://www.w3.org/2000/svg","rect"),g=document.createElementNS("http://www.w3.org/2000/svg","circle"),v=FamilyTree.randomId();u.setAttribute("id",v);var T={ripple:FamilyTree.t(r.templateName,r.min,this.getScale()).ripple,node:r};FamilyTree.events.publish("ripple",[this,T]),y.setAttribute("x",T.ripple.rect?T.ripple.rect.x:0),y.setAttribute("y",T.ripple.rect?T.ripple.rect.y:0),y.setAttribute("width",T.ripple.rect?T.ripple.rect.width:r.w),y.setAttribute("height",T.ripple.rect?T.ripple.rect.height:r.h),y.setAttribute("rx",T.ripple.radius),y.setAttribute("ry",T.ripple.radius),g.setAttribute("clip-path","url(#"+v+")"),g.setAttribute("cx",o),g.setAttribute("cy",l),g.setAttribute("r",0),g.setAttribute("fill",T.ripple.color),g.setAttribute("class","bft-ripple"),u.appendChild(y),f.appendChild(u),f.appendChild(g),a.appendChild(f),FamilyTree.animate(g,{r:0,opacity:1},{r:p,opacity:0},500,FamilyTree.anim.outPow,(function(){a.removeChild(f)}))}}},FamilyTree.prototype.center=function(e,t,i){var r,a,n=e,o=!0,l=!0;t&&null!=t.parentState&&(r=t.parentState),t&&null!=t.childrenState&&(a=t.childrenState),t&&null!=t.rippleId&&(n=t.rippleId),t&&null!=t.vertical&&(o=t.vertical),t&&null!=t.horizontal&&(l=t.horizontal);var s={parentState:r,childrenState:a,rippleId:n,vertical:o,horizontal:l};this._draw(!1,FamilyTree.action.centerNode,{id:e,options:s},i)},FamilyTree.prototype.fit=function(e){this.config.scaleInitial=FamilyTree.match.boundary,this._draw(!0,FamilyTree.action.init,{method:"fit"},e)},FamilyTree.prototype.toggleFullScreen=function(){var e=document.querySelector("["+FamilyTree.attr.tlbr+"r='fullScreen']");document.fullscreenElement==this.element||document.webkitFullscreenElement==this.element||document.mozFullScreenElement==this.element||document.msFullscreenElement==this.element?(document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.msExitFullscreen&&document.msExitFullscreen(),e&&(e.innerHTML=FamilyTree.toolbarUI.openFullScreenIcon)):(this.element.requestFullscreen?this.element.requestFullscreen():this.element.mozRequestFullScreen?this.element.mozRequestFullScreen():this.element.webkitRequestFullscreen?this.element.webkitRequestFullscreen():this.element.msRequestFullscreen&&this.element.msRequestFullscreen(),e&&(e.innerHTML=FamilyTree.toolbarUI.closeFullScreenIcon))},FamilyTree.prototype.getNode=function(e){return this.nodes[e]},FamilyTree.prototype.setLayout=function(e,t){t||(t="base"),this._layoutConfigs[t].layout=e,"base"==t&&(this.config.layout=e),this._draw(!1,FamilyTree.action.update)},FamilyTree.prototype.setOrientation=function(e,t,i){var r=this;t||(t="base"),this._layoutConfigs[t].orientation=e,"base"==t&&(this.config.orientation=e),this._draw(!1,FamilyTree.action.update,void 0,(function(){FamilyTree._moveToBoundaryArea(r.getSvg(),r.getViewBox(),r.response.boundary,(function(){r._draw(!0,FamilyTree.action.pan),i&&i()}))}))},FamilyTree.prototype.search=function(e,t,i){return FamilyTree.isNEU(t)&&(t=this.searchUI._searchFields),FamilyTree.isNEU(i)&&(i=t),FamilyTree._search.search(this.config.nodes,e,t,i,this.config.searchDisplayField,this.config.searchFieldsWeight,this.searchUI._searchFieldsAbbreviation)},FamilyTree.prototype._hideBeforeAnimation=function(e){if(1!=this._hideBeforeAnimationCompleted&&!(e&&e FamilyTree.TEXT_THRESHOLD)for(var i=0;i FamilyTree.IMAGES_THRESHOLD)for(i=0;i FamilyTree.LINKS_THRESHOLD)for(i=0;i FamilyTree.BUTTONS_THRESHOLD)for(i=0;i FamilyTree.BUTTONS_THRESHOLD)for(i=0;i c.x)&&(l=c.x),(null===s||s>c.y)&&(s=c.y)}var m=this.width(),h=this.height(),p=m/(v=n-l+2*this.config.padding),f=h/(T=o-s+2*this.config.padding),u=p>f?f:p,y=Math.ceil(m/u),g=Math.ceil(h/u),v=0,T=0;if(y-2*this.config.padding>=n-l)v=(n+l)/2-y/2;else switch(v=firstRoot.x-y/2+FamilyTree.manager._getNodeWidth(firstRoot,this.config)/2,this.config.orientation){case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:(v=-(y/2-(l-n)/2)) -this.config.padding&&(v=-this.config.padding)}if(g-2*this.config.padding>=o-s)T=(o+s)/2-g/2;else switch((T=-(g/2-(o-s)/2))>-this.config.padding&&(T=-this.config.padding),this.config.orientation){case FamilyTree.orientation.bottom:case FamilyTree.orientation.bottom_left:(T=-(g/2-(s-o)/2)) 1)))},FamilyTree.prototype._center=FamilyTree.prototype.center,FamilyTree.prototype.center=function(e,t,i){var r=this.getRecentRootsByNodeId(e);Array.isArray(this.config.roots)||(roots=[]),FamilyTree._changeRootOption(this.config.roots,r,this.manager.rootList),this._center(e,t,i)},FamilyTree.localStorage={},FamilyTree.localStorage.getItem=function(e){var t=localStorage.getItem("to_date");if(t){if((t=new Date(t)) =0;i--)this.config.nodes[i].pid!=e&&this.config.nodes[i].stpid!=e||(this.config.nodes[i].pid=t.pid,this.config.nodes[i].stpid=t.stpid),this.config.nodes[i].id==e&&this.config.nodes.splice(i,1)}return this},FamilyTree.prototype._getNewPidsAndStpidsForIds=function(e){var t=this.get(e),i={},r={};if(t)for(var a=this.config.nodes.length-1;a>=0;a--)this.config.nodes[a].pid==e?i[this.config.nodes[a].id]=t.pid:this.config.nodes[a].stpid==e&&(r[this.config.nodes[a].id]=t.stpid);return{newPidsForIds:i,newStpidsForIds:r}},FamilyTree.prototype.addNode=function(e,t,i){var r=this;if(!0===i&&!1===FamilyTree.events.publish("add",[this,e]))return!1;this.add(e),FamilyTree.events.publish("updated",[this]),this.filterUI.update(),r._draw(!1,FamilyTree.action.insert,{id:e.pid,insertedNodeId:e.id},(function(){r.ripple(e.id),t&&t()}))},FamilyTree.prototype.add=function(e){if(null==e.id&&console.error("Call addNode without id"),this._putInUndoStack(),this.clearRedo(),this.config.movable&&!FamilyTree.isNEU(e.pid)){var t=this._get(e.pid);t&&(null!=t.movex&&(e.movex=t.movex),null!=t.movey&&(e.movey=t.movey))}return this.config.nodes.push(e),this},FamilyTree.prototype.replaceIds=function(e,t){this._replaceIds(e),this._draw(!1,FamilyTree.action.update,void 0,t)},FamilyTree.prototype._replaceIds=function(e){for(var t=function(t){for(var i=0;i 0,n=!1,o=t.pids.length>0,l=t.pids.length>1;if(1==t.pids.length){var s=this.getNode(t.pids[0]);n=t.ftChildrenIds.compare(s.ftChildrenIds)}return!(!i&&!r||a||o)||(!(i||r||a||l||!o||n)||(!(i||r||!a||!n)||(!(i||r||!a||n)||!(i||r||a||!n))))},FamilyTree.prototype.removeNode=function(e,t,i){var r=this;if(this.canRemove(e)){var a=this.getNode(e),n=[];if(Array.isArray(a.pids))for(var o=0;o c+1&&(clearInterval(l),n&&n(e))}),s)},FamilyTree.anim={},FamilyTree.anim.inPow=function(e){return e<0?0:e>1?1:Math.pow(e,2)},FamilyTree.anim.outPow=function(e){if(e<0)return 0;if(e>1)return 1;return-1*(Math.pow(e-1,2)+-1)},FamilyTree.anim.inOutPow=function(e){if(e<0)return 0;if(e>1)return 1;if((e*=2)<1)return FamilyTree.anim.inPow(e,2)/2;return-.5*(Math.pow(e-2,2)+-2)},FamilyTree.anim.inSin=function(e){return e<0?0:e>1?1:1-Math.cos(e*(Math.PI/2))},FamilyTree.anim.outSin=function(e){return e<0?0:e>1?1:Math.sin(e*(Math.PI/2))},FamilyTree.anim.inOutSin=function(e){return e<0?0:e>1?1:-.5*(Math.cos(Math.PI*e)-1)},FamilyTree.anim.inExp=function(e){return e<0?0:e>1?1:Math.pow(2,10*(e-1))},FamilyTree.anim.outExp=function(e){return e<0?0:e>1?1:1-Math.pow(2,-10*e)},FamilyTree.anim.inOutExp=function(e){return e<0?0:e>1?1:e<.5?.5*Math.pow(2,10*(2*e-1)):.5*(2-Math.pow(2,10*(-2*e+1)))},FamilyTree.anim.inCirc=function(e){return e<0?0:e>1?1:-(Math.sqrt(1-e*e)-1)},FamilyTree.anim.outCirc=function(e){return e<0?0:e>1?1:Math.sqrt(1-(e-1)*(e-1))},FamilyTree.anim.inOutCirc=function(e){return e<0?0:e>1?1:e<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(2*e-2)*(2*e-2))+1)},FamilyTree.anim.rebound=function(e){return e<0?0:e>1?1:e<1/2.75?1-7.5625*e*e:e<2/2.75?1-(7.5625*(e-1.5/2.75)*(e-1.5/2.75)+.75):e<2.5/2.75?1-(7.5625*(e-2.25/2.75)*(e-2.25/2.75)+.9375):1-(7.5625*(e-2.625/2.75)*(e-2.625/2.75)+.984375)},FamilyTree.anim.inBack=function(e){return e<0?0:e>1?1:e*e*(2.70158*e-1.70158)},FamilyTree.anim.outBack=function(e){return e<0?0:e>1?1:(e-1)*(e-1)*(2.70158*(e-1)+1.70158)+1},FamilyTree.anim.inOutBack=function(e){return e<0?0:e>1?1:e<.5?4*e*e*(7.1898*e-2.5949)*.5:.5*((2*e-2)*(2*e-2)*(3.5949*(2*e-2)+2.5949)+2)},FamilyTree.anim.impulse=function(e){var t=2*e;return t*Math.exp(1-t)},FamilyTree.anim.expPulse=function(e){return Math.exp(-2*Math.pow(e,2))},void 0===FamilyTree&&(FamilyTree={}),FamilyTree.prototype._attachInitEventHandlers=function(e){this._addEvent(window,"resize",this._resizeHandler)},FamilyTree.prototype._attachEventHandlers=function(e){if(this.config.interactive){e=this.getSvg();this.config.enableTouch||FamilyTree.isMobile()?(this._addEvent(e,"touchstart",this._globalMouseDownHandler),this._addEvent(e,"touchend",this._globalClickHandler)):(this._addEvent(e,"mousedown",this._globalMouseDownHandler),this._addEvent(e,"click",this._globalClickHandler),this._addEvent(e,"contextmenu",this._globalContextHandler),this._addEvent(e,"dblclick",this._globalDbClickHandler),this.config.mouseScrool!=FamilyTree.action.none&&this._addEvent(e,"wheel",this._mouseScrollHandler));var t=this.getMenuButton();t&&this._addEvent(t,"click",this._menuClickHandler)}},FamilyTree.prototype._addEvent=function(e,t,i,r){var a,n;(r||(r=""),e.getListenerList||(e.getListenerList={}),e.getListenerList[t+r])||(a=this,n=i,i=function(){if(n)return n.apply(a,[this,arguments[0]])},e.addEventListener?"mousewheel"==t?e.addEventListener(t,o,{passive:!1}):e.addEventListener(t,o,!1):e.attachEvent("on"+t,(function(){var t=i.call(e,window.event);return!1===t&&(window.event.returnValue=!1,window.event.cancelBubble=!0),t})),e.getListenerList[t+r]=o);function o(e){var t=i.apply(this,arguments);return!1===t&&(e.stopPropagation(),e.preventDefault()),t}},FamilyTree.prototype._removeEvent=function(e,t){if(e.getListenerList[t]){var i=e.getListenerList[t];e.removeEventListener(t,i,!1),delete e.getListenerList[t]}},void 0===FamilyTree&&(FamilyTree={}),FamilyTree.VERSION="8.14.55",FamilyTree.orientation={},FamilyTree.orientation.top=0,FamilyTree.orientation.bottom=1,FamilyTree.orientation.right=2,FamilyTree.orientation.left=3,FamilyTree.orientation.top_left=4,FamilyTree.orientation.bottom_left=5,FamilyTree.orientation.right_top=6,FamilyTree.orientation.left_top=7,FamilyTree.align={},FamilyTree.align.center=FamilyTree.CENTER=8,FamilyTree.align.orientation=FamilyTree.ORIENTATION=9,FamilyTree.attr={},FamilyTree.attr.l="data-l",FamilyTree.attr.id="data-id",FamilyTree.attr.sl="data-sl",FamilyTree.attr.lbl="data-lbl",FamilyTree.attr.val="data-val",FamilyTree.attr.tlbr="data-tlbr",FamilyTree.attr.item="data-item",FamilyTree.attr.layout="data-layout",FamilyTree.attr.node_id="data-n-id",FamilyTree.attr.link_id="data-l-id",FamilyTree.attr.field_name="data-f-name",FamilyTree.attr.c_link_to="data-c-l-to",FamilyTree.attr.c_link_from="data-c-l-from",FamilyTree.attr.s_link_to="data-s-l-to",FamilyTree.attr.s_link_from="data-s-l-from",FamilyTree.attr.control_add="data-ctrl-add",FamilyTree.attr.control_expcoll_id="data-ctrl-ec-id",FamilyTree.attr.control_up_id="data-ctrl-up-id",FamilyTree.attr.control_export_menu="data-ctrl-menu",FamilyTree.attr.control_node_menu_id="data-ctrl-n-menu-id",FamilyTree.attr.control_node_circle_menu_id="data-ctrl-n-c-menu-id",FamilyTree.attr.control_node_circle_menu_name="data-ctrl-n-c-menu-name",FamilyTree.attr.control_node_circle_menu_wrraper_id="data-ctrl-n-c-menu-wrapper-id",FamilyTree.attr.width="data-width",FamilyTree.attr.text_overflow="data-text-overflow",FamilyTree.ID="id",FamilyTree.PID="pid",FamilyTree.STPID="stpid",FamilyTree.TAGS="tags",FamilyTree.NODES="nodes",FamilyTree.ELASTIC="elastic",FamilyTree.ASSISTANT="Assistant",FamilyTree.action={},FamilyTree.action.expand=0,FamilyTree.action.collapse=1,FamilyTree.action.maximize=101,FamilyTree.action.minimize=102,FamilyTree.action.expandCollapse=501,FamilyTree.action.edit=1,FamilyTree.action.zoom=2,FamilyTree.action.ctrlZoom=22,FamilyTree.action.scroll=41,FamilyTree.action.xScroll=3,FamilyTree.action.yScroll=4,FamilyTree.action.none=5,FamilyTree.action.init=6,FamilyTree.action.update=7,FamilyTree.action.move=70,FamilyTree.action.pan=8,FamilyTree.action.centerNode=9,FamilyTree.action.resize=10,FamilyTree.action.insert=11,FamilyTree.action.insertfirst=12,FamilyTree.action.details=13,FamilyTree.action.exporting=14,FamilyTree.none=400001,FamilyTree.scroll={},FamilyTree.scroll.visible=!0,FamilyTree.scroll.smooth=12,FamilyTree.scroll.speed=120,FamilyTree.scroll.safari={smooth:12,speed:250},FamilyTree.match={},FamilyTree.match.height=100001,FamilyTree.match.width=100002,FamilyTree.match.boundary=100003,FamilyTree.movable={},FamilyTree.movable.node="node",FamilyTree.movable.tree="tree",FamilyTree.movable.detachTree="detachTree",FamilyTree.layout={},FamilyTree.layout.normal=FamilyTree.normal=0,FamilyTree.layout.mixed=FamilyTree.mixed=1,FamilyTree.layout.tree=FamilyTree.tree=2,FamilyTree.layout.treeLeftOffset=FamilyTree.treeLeftOffset=3,FamilyTree.layout.treeRightOffset=FamilyTree.treeRightOffset=4,FamilyTree.layout.treeLeft=5,FamilyTree.layout.treeRight=6,FamilyTree.layout.grid=-1,FamilyTree.nodeOpenTag=" ",FamilyTree.linkOpenTag=" ',FamilyTree.expcollOpenTag=" ',FamilyTree.upOpenTag=" ',FamilyTree.linkFieldsOpenTag=' ',FamilyTree.grCloseTag="
",FamilyTree.A5w=420,FamilyTree.A5h=595,FamilyTree.A4w=595,FamilyTree.A4h=842,FamilyTree.A3w=842,FamilyTree.A3h=1191,FamilyTree.A2w=1191,FamilyTree.A2h=1684,FamilyTree.A1w=1684,FamilyTree.A1h=2384,FamilyTree.Letterw=612,FamilyTree.Letterh=791,FamilyTree.Legalw=612,FamilyTree.Legalh=1009,FamilyTree.COLLAPSE_PARENT_NEIGHBORS=1,FamilyTree.COLLAPSE_SUB_CHILDRENS=2,FamilyTree.COLLAPSE_PARENT_SUB_CHILDREN_EXCEPT_CLICKED=3,FamilyTree.TEXT_THRESHOLD=400,FamilyTree.IMAGES_THRESHOLD=100,FamilyTree.LINKS_THRESHOLD=200,FamilyTree.BUTTONS_THRESHOLD=70,FamilyTree.ANIM_THRESHOLD=50,FamilyTree.IT_IS_LONELY_HERE=' {link}
',FamilyTree.RES={},FamilyTree.IT_IS_LONELY_HERE_LINK=FamilyTree.RES.IT_IS_LONELY_HERE_LINK="It's lonely here, add your first node",FamilyTree.FIRE_DRAG_NOT_CLICK_IF_MOVE=3,FamilyTree.STRING_TAGS=!1,FamilyTree.MAX_NODES_MESS="The trial has expired or 200 nodes limit was reached!
See more ",FamilyTree.OFFLINE_MESS="The evaluation version requires internet connection!
See more ",FamilyTree.SEARCH_PLACEHOLDER="Search... type ? to get help.",FamilyTree.SEARCH_HELP_SYMBOL="?",FamilyTree.SEARCH_CLOSE_RESULT_ON_ESCAPE_OR_CLICKOUTSIDE=!1,FamilyTree.SEARCH_RESULT_LIMIT=10,FamilyTree.IMPORT_MESSAGE="Choose the columns (fields) in your data file that contain the required information.",FamilyTree.FIXED_POSITION_ON_CLICK=!1,FamilyTree.RENDER_LINKS_BEFORE_NODES=!1,FamilyTree.RENDER_CLINKS_BEFORE_NODES=!1,FamilyTree.MIXED_LAYOUT_ALL_NODES=!0,FamilyTree.MIXED_LAYOUT_FOR_NODES_WITH_COLLAPSED_CHILDREN=!1,FamilyTree.MIXED_LAYOUT_IF_NUMBER_OF_CHILDREN_IS_MORE_THEN=1,FamilyTree.LINK_ROUNDED_CORNERS=5,FamilyTree.MOVE_STEP=5,FamilyTree.CLINK_CURVE=1,FamilyTree.MAX_DEPTH=200,FamilyTree.SCALE_FACTOR=1.44,FamilyTree.LAZY_LOADING_FACTOR=500,FamilyTree.HIDE_EDIT_FORM_ON_PAN=!0,FamilyTree.LAZY_LOADING=!0,FamilyTree.ARRAY_FIELDS=["tags"],FamilyTree.CSV_DELIMITER=",",FamilyTree.EDITFORM_CLOSE_BTN=' ',FamilyTree.ESCAPE_HTML=!1,FamilyTree.VERTICAL_CHILDREN_ASSISTANT=!1,FamilyTree.EXPORT_PAGES_CUT_NODES=!1,FamilyTree.RESET_MOVABLE_ONEXPANDCOLLAPSE=!1,FamilyTree.FILTER_ALPHABETICALLY=!0,FamilyTree.SERVER_PREFIX=".azurewebsites.net/api/OrgChartJS",FamilyTree.FUNC_URL_NAME="func-url-orgfamilyjs",FamilyTree.MINIMUM_SYMBOLS_IN_SEARCH_INPUT=1,"undefined"!=typeof module&&(module.exports=FamilyTree),FamilyTree.SERVER_PREFIX=".azurewebsites.net/api/FamilyTreeJS",FamilyTree.FUNC_URL_NAME="func-url-familytreejs",FamilyTree.OC_VERSION=FamilyTree.VERSION,FamilyTree.VERSION="1.09.46",FamilyTree.RENDER_LINKS_BEFORE_NODES=!0,FamilyTree.ARRAY_FIELDS=["tags","pids"],FamilyTree._intersects=function(e,t,i){var r=e.x-i.siblingSeparation/4,a=e.y,n=e.x+e.w+i.siblingSeparation/4,o=e.y;switch(i.orientation){case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:case FamilyTree.orientation.left:case FamilyTree.orientation.left_top:r=e.x,a=e.y-i.siblingSeparation/4,n=e.x,o=e.y+e.h+i.siblingSeparation/4}var l,s,d,c=t.p,m=t.q,h=t.r,p=t.s;return 0!==(l=(n-r)*(p-m)-(h-c)*(o-a))&&(s=((a-o)*(h-r)+(n-r)*(p-a))/l,0<(d=((p-m)*(h-r)+(c-h)*(p-a))/l)&&d<1&&0`},FamilyTree.editUI.prototype.content=function(e,t,i,r,a){var n,o=this.obj.config.editForm.readOnly,l=JSON.parse(JSON.stringify(this.obj.config.editForm.elements)),s=this.obj.config.editForm.addMore,d=this.obj.config.editForm.saveAndCloseBtn,c=this.obj.config.editForm.cancelBtn,m=this.obj.config.editForm.buttons,h=this.obj.config.editForm.titleBinding,p=this.obj.config.editForm.photoBinding,f=this.obj.getNode(e),u=this.obj._get(e),y=FamilyTree.t(f.templateName,f.min,this.obj.getScale()),g=u[h],v=u[p];if(this.obj.config.editForm.generateElementsFromFields)for(var T=0;T `;var w=!t,k=t?"display:none;":"",S=t||!s?"display:none;":"",C=y.editFormHeaderColor?`style="background-color:${y.editFormHeaderColor};"`:"",I=document.createElement("form");if(I.setAttribute("data-bft-edit-form",""),I.classList.add("bft-edit-form"),I.classList.add(this.obj.config.mode),I.classList.add(f.templateName.replaceAll(" ","")),I.classList.add(FamilyTree.ui._defsIds[f.templateName]),Array.isArray(f.tags)&&f.tags.length)for(T=0;T \n =0;e--)clearInterval(this._buttonsInterval[e]),this._buttonsInterval.splice(e,1);this._buttonsInterval=[];for(e=this._linesInterval.length-1;e>=0;e--)clearInterval(this._linesInterval[e]),this._linesInterval.splice(e,1);this._linesInterval=[];var t=this.obj.element.querySelector("["+FamilyTree.attr.control_node_circle_menu_wrraper_id+"]");if(null!=t){var i=t.getAttribute(FamilyTree.attr.control_node_circle_menu_wrraper_id),r=this.obj.getNode(i),a=FamilyTree.t(r.templateName,r.min,this.obj.getScale()),n=this.obj.element.querySelector("["+FamilyTree.attr.control_node_circle_menu_id+'="'+i+'"]').querySelectorAll("line");n[0].setAttribute("x1",-a.nodeCircleMenuButton.radius/2),n[0].setAttribute("x2",a.nodeCircleMenuButton.radius/2),n[0].setAttribute("y1",-6),n[0].setAttribute("y2",-6),n[1].setAttribute("x1",-a.nodeCircleMenuButton.radius/2),n[1].setAttribute("x2",a.nodeCircleMenuButton.radius/2),n[1].setAttribute("y1",0),n[1].setAttribute("y2",0),n[2].setAttribute("x1",-a.nodeCircleMenuButton.radius/2),n[2].setAttribute("x2",a.nodeCircleMenuButton.radius/2),n[2].setAttribute("y1",6),n[2].setAttribute("y2",6),t.parentElement.removeChild(t),t=null}},FamilyTree.circleMenuUI.prototype.on=function(e,t){return FamilyTree.events.on(e,t,this._event_id),this},void 0===FamilyTree&&(FamilyTree={}),FamilyTree.idb={version:1,dbName:"BALKAN",tableName:"familytree-js",keyPath:"id"},FamilyTree.idb.db=null,FamilyTree.idb._open=function(e){if(FamilyTree._browser().msie)e&&e(!1);else if((navigator.userAgent.toLowerCase().indexOf("safari")>0||navigator.userAgent.toLowerCase().indexOf("firefox")>0)&&window.location!==window.parent.location)e&&e(!1);else{if(!window.indexedDB)return console.error("Your browser doesn't support a stable version of IndexedDB."),void(e&&e(!1));if(null==FamilyTree.idb.db){var t=indexedDB.open(FamilyTree.idb.dbName,FamilyTree.idb.version);t.onerror=function(t){console.error("Cannot open database!"),e&&e(!1)},t.onsuccess=function(t){FamilyTree.idb.db=t.target.result,e&&e(!0)},t.onupgradeneeded=function(e){var t=e.target.result;t.objectStoreNames.contains(FamilyTree.idb.tableName)&&t.deleteObjectStore(FamilyTree.idb.tableName);t.createObjectStore(FamilyTree.idb.tableName,{keyPath:FamilyTree.idb.keyPath})}}else e&&e(!0)}},FamilyTree.idb.read=function(e,t){FamilyTree.idb._open((function(i){if(i){var r=FamilyTree.idb.db.transaction([FamilyTree.idb.tableName]).objectStore(FamilyTree.idb.tableName).get(e);r.onerror=function(e){console.error("Unable to retrieve data from database!"),t&&t(!1)},r.onsuccess=function(e){r.result?t&&t(!0,r.result):t&&t(null)}}else t&&t(!1)}))},FamilyTree.idb.write=function(e,t){FamilyTree.idb.read(e.id,(function(i){if(null==i){var r=FamilyTree.idb.db.transaction([FamilyTree.idb.tableName],"readwrite").objectStore(FamilyTree.idb.tableName).add(e);r.onerror=function(e){console.error("Unable to add data to database!"),t&&t(!1)},r.onsuccess=function(e){t&&t(!0)}}else t&&t(i)}))},FamilyTree.idb.put=function(e,t){FamilyTree.idb._open((function(i){if(i){var r=FamilyTree.idb.db.transaction([FamilyTree.idb.tableName],"readwrite").objectStore(FamilyTree.idb.tableName).put(e);r.onerror=function(e){console.error("Unable to put data to database!"),t&&t(!1)},r.onsuccess=function(e){t&&t(!0)}}else t&&t(!1)}))},FamilyTree.idb.delete=function(e,t){FamilyTree.idb._open((function(i){if(i){var r=FamilyTree.idb.db.transaction([FamilyTree.idb.tableName],"readwrite").objectStore(FamilyTree.idb.tableName).delete(e);r.onerror=function(e){console.error("Unable to retrieve data from database!"),t&&t(!1)},r.onsuccess=function(e){r.error?t&&t(!1):t&&t(!0)}}else t&&t(!1)}))},FamilyTree.toolbarUI=function(){},FamilyTree.toolbarUI.expandAllIcon='
',FamilyTree.toolbarUI.fitIcon='
',FamilyTree.toolbarUI.openFullScreenIcon='
',FamilyTree.toolbarUI.closeFullScreenIcon='
',FamilyTree.toolbarUI.zoomInIcon='
',FamilyTree.toolbarUI.zoomOutIcon='
',FamilyTree.toolbarUI.layoutIcon="
',FamilyTree.toolbarUI.prototype.init=function(e,t){if(t){this.obj=e,this.toolbar=t,this._visible=!1,this.div=document.createElement("div"),this.div.classList.add("bft-toolbar-container"),Object.assign(this.div.style,{position:"absolute",padding:"3px",right:this.obj.config.padding-10+"px",bottom:this.obj.config.padding-10+"px"}),t.expandAll&&(this.div.innerHTML+=" i.right?i.right:i.left),t[0]>i.right&&t[0]>i.left&&(a[0]=i.left>i.right?i.left:i.right),t[1] i.bottom?i.bottom:i.top),t[1]>i.bottom&&t[1]>i.top&&(a[1]=i.top>i.bottom?i.top:i.bottom),t[0]!==a[0]||t[1]!==a[1]?FamilyTree.animate(e,{viewBox:t},{viewBox:a},300,FamilyTree.anim.outPow,(function(){r&&r()})):r&&r()},FamilyTree.randomId=function(){return"_"+("0000"+(Math.random()*Math.pow(36,4)|0).toString(36)).slice(-4)},FamilyTree._getClientXY=function(e){return-1==e.type.indexOf("touch")?{x:e.clientX,y:e.clientY}:e.changedTouches.length?{x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY}:void 0},FamilyTree._getClientTouchesXY=function(e,t){return-1!=e.type.indexOf("touch")?e.touches.length =0,t="undefined"!=typeof InstallTrigger,i=/constructor/i.test(window.HTMLElement)||"[object SafariRemoteNotification]"===(!window.safari||void 0!==window.safari&&safari.pushNotification).toString(),r=!!document.documentMode,a=!r&&!!window.StyleMedia,n=!(!window.chrome||!window.chrome.webstore&&!window.chrome.runtime);return{opera:e,firefox:t,safari:i,msie:r,edge:a,chrome:n,blink:(n||e)&&!!window.CSS}},FamilyTree._menuPosition=function(e,t,i){var r=e.getBoundingClientRect(),a=i.getBoundingClientRect(),n=t.getBoundingClientRect(),o=r.left-a.left,l=r.top-a.top;return r.top+n.height>a.top+a.height&&(l-=n.height),r.left-n.width 1===e.nodeType))},FamilyTree._getTestDiv=function(){var e=document.getElementById("orgfamily_js_test_div");return e||((e=document.createElement("div")).id="orgfamily_js_test_div",e.style.position="fixed",e.style.top="-10000px",e.style.left="-10000px",document.body.appendChild(e)),e},FamilyTree._getLabelSize=function(e){var t=FamilyTree._getTestDiv();return t.innerHTML="
",t.querySelector("text").getBoundingClientRect()},FamilyTree.wrapText=function(e,t){var i=t.toLowerCase();if(-1==i.indexOf(" "+t+"";var a,n,o=(new DOMParser).parseFromString(t,"text/xml").getElementsByTagName("text")[0],l=parseFloat(o.getAttribute("x")),s=parseFloat(o.getAttribute("y")),d=o.getAttribute("text-anchor"),c=o.getAttribute(FamilyTree.attr.width),m=o.getAttribute(FamilyTree.attr.text_overflow),h="http://www.w3.org/2000/svg",p=r.getElementsByTagName("svg")[0].getElementsByTagName("text")[0];m||(m="ellipsis");var f=m.split("-");if(f.length>1&&(a=parseInt(m.split("-")[1]),f.length>2&&"ellipsis"==f[2]&&(n=!0)),!c)return FamilyTree._escapeHtml(e);if(c=parseFloat(c),l||(l=0),s||(s=0),l||(d="start"),"ellipsis"==m){p.removeChild(p.firstChild),p.textContent=e;for(var u=p.getComputedTextLength(),y=2;u>c;)p.textContent=e.substring(0,e.length-y),p.textContent+="...",u=p.getComputedTextLength(),y++;return y>2?` ${FamilyTree._escapeHtml(e)}
${p.textContent}`:FamilyTree._escapeHtml(e)}if(-1!=m.indexOf("multiline")){var g=e.split(" "),v=p.getBBox().height;p.textContent="";var T=document.createElementNS(h,"tspan"),b=document.createTextNode(g[0]);T.setAttributeNS(null,"x",l),T.setAttributeNS(null,"y",s),T.setAttributeNS(null,"text-anchor",d),T.appendChild(b),p.appendChild(T);y=1;for(var F=1,x=!1,_=1;_ c){if(T.firstChild.data=T.firstChild.data.slice(0,w),F++,a&&F>a){if(n&&p.children.length==a){var k=p.children[a-1].textContent;p.children[a-1].textContent=k.substring(0,k.length-3)+"...",x=!0}break}(T=document.createElementNS(h,"tspan")).setAttributeNS(null,"x",l),T.setAttributeNS(null,"y",s+v*y),T.setAttributeNS(null,"text-anchor",d),b=document.createTextNode(g[_]),T.appendChild(b),p.appendChild(T),y++}}var S="";if(null!=p.innerHTML)S=p.innerHTML,p.innerHTML="";else{var C="";for(_=p.childNodes.length-1;_>=0;_--)C=XMLSerializer().serializeToString(p.childNodes[_])+C,p.removeChild(p.childNodes[_]);S=C}return x?` ${FamilyTree._escapeHtml(e)}
${S}`:S}},FamilyTree._downloadFile=function(e,t,i,r,a){var n=new Blob([t],{type:e});if(1==r){var o=URL.createObjectURL(n);window.open(o,"_blank").focus()}else if(navigator.msSaveBlob)navigator.msSaveBlob(n,i);else{var l=document.createElement("a");if(void 0!==l.download){o=URL.createObjectURL(n);l.setAttribute("href",o);var s=i;s.toLowerCase().endsWith(a.toLowerCase())||(s=s+"."+a),l.setAttribute("download",s),l.style.visibility="hidden",document.body.appendChild(l),l.click(),document.body.removeChild(l)}}},FamilyTree._getPosition=function(e,t,i,r){var a={x:t.x,y:t.y};if(null!=i&&(a.x=i),null!=r&&(a.y=i),e&&3==e.length){var n=e[0].indexOf(t.id);-1!=n&&null!=e[1][n].transform&&(null==i&&(a.x=e[1][n].transform[4]),null==r&&(a.y=e[1][n].transform[5]))}return a},FamilyTree._getOpacity=function(e,t){var i=1;if(e&&3==e.length){var r=e[0].indexOf(t.id);-1!=r&&null!=e[1][r].opacity&&(i=e[1][r].opacity)}return i},FamilyTree.t=function(e,t,i){var r=FamilyTree.templates[e];null==r&&console.error(`Template "${e}" does not exist!`);var a=null;if(null!=i&&r.scaleLessThen){var n=[];for(var o in r.scaleLessThen){var l=parseFloat(o);i 0){n.sort((function(e,t){return e-t}));var s=r.scaleLessThen[n[0]];for(var d in s)null==a&&(a=Object.assign({},r)),a[d]=s[d]}}return t?null==a?r.min?r.min:r:a.min?a.min:a:null==a?r:a},FamilyTree.setNodeSize=function(e){var t=FamilyTree.t(e.templateName,e.min);e.w=t&&t.size?t.size[0]:0,e.h=t&&t.size?t.size[1]:0},FamilyTree._imgs2base64=function(e,t,i,r){var a=e.getElementsByTagName(t),n=a.length;0==n&&r();for(var o=0;o '+(new XMLSerializer).serializeToString(t.documentElement)},FamilyTree._xml2json=function(e){for(var t=(new DOMParser).parseFromString(e,"text/xml").getElementsByTagName("node"),i=[],r=0;r =0&&(n='"'+n+'"'),r>0&&(i+=FamilyTree.CSV_DELIMITER),i+=n}return i+"\n"},r="",a=0;a t.maxX)&&(t.maxX=e.x+e.w),(null==t.maxY||null!=e.y&&e.y+e.h>t.maxY)&&(t.maxY=e.y+e.h)},FamilyTree.getStParentNodes=function(e,t){for(t||(t=[]);e.parent;)e=e.parent;return e.stParent&&(t.push(e.stParent),FamilyTree.getStParentNodes(e.stParent,t)),t},FamilyTree.getRootOf=function(e){for(;e&&e.parent;)e=e.parent;return e},FamilyTree._getViewBox=function(e){var t=null;return e?(t=(t="["+(t=e.getAttribute("viewBox"))+"]").replace(/\ /g,","),t=JSON.parse(t)):null},FamilyTree.isNEU=function(e){return null==e||""===e},FamilyTree.gradientCircleForDefs=function(e,t,i,r){function a(e,t,i,r){var a=(r-90)*Math.PI/180;return{x:e+i*Math.cos(a),y:t+i*Math.sin(a)}}function n(e,t,i,r,n){var o=a(e,t,i,n),l=a(e,t,i,r),s=n-r<=180?"0":"1";return["M",o.x,o.y,"A",i,i,0,s,0,l.x,l.y].join(" ")}return Array.isArray(t)||(t=[t,t,t,t,t,t]),` \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
`},FamilyTree._intersectionObserver=function(e,t){"function"==typeof IntersectionObserver?new IntersectionObserver((function(e,i){e.forEach((function(e){var i=e.intersectionRatio>0;0==e.intersectionRatio&&(i=e.isIntersecting),t(i)}))})).observe(e):t(!0)},FamilyTree.convertCsvToNodes=function(e){for(var t=FamilyTree._csvToArray(e),i=t[0],r=[],a=1;a /g,">").replace(/"/g,""").replace(/'/g,"'"):e},FamilyTree._escapeDoubleQuotes=function(e){return"string"==typeof e?e.replace(/"/g,"""):e},FamilyTree._escapeGreaterLessSign=function(e){return"string"==typeof e?e.replace(//g,">"):e},FamilyTree.roundPathCorners=function(e,t,i){function r(e,t,i){var r=t.x-e.x,n=t.y-e.y,o=Math.sqrt(r*r+n*n);return a(e,t,Math.min(1,i/o))}function a(e,t,i){return{x:e.x+(t.x-e.x)*i,y:e.y+(t.y-e.y)*i}}function n(e,t){e.length>2&&(e[e.length-2]=t.x,e[e.length-1]=t.y)}function o(e){return{x:parseFloat(e[e.length-2]),y:parseFloat(e[e.length-1])}}Array.isArray(e)||(e=(e=e.split(/[,\s]/).reduce((function(e,t){var i=t.match("([a-zA-Z])(.+)");return i?(e.push(i[1]),e.push(i[2])):e.push(t),e}),[])).reduce((function(e,t){return parseFloat(t)==t&&e.length?e[e.length-1].push(t):e.push([t]),e}),[]));var l=[];if(e.length>1){var s=o(e[0]),d=null;"Z"==e[e.length-1][0]&&e[0].length>2&&(d=["L",s.x,s.y],e[e.length-1]=d),l.push(e[0]);for(var c=1;c 2&&"L"==h[0]&&p.length>2&&"L"==p[0]){var f,u,y=o(m),g=o(h),v=o(p);i?(f=a(g,m.origPoint||y,t),u=a(g,p.origPoint||v,t)):(f=r(g,y,t),u=r(g,v,t)),n(h,f),h.origPoint=g,l.push(h);var T=a(f,g,.5),b=a(g,u,.5),F=["C",T.x,T.y,b.x,b.y,u.x,u.y];F.origPoint=g,l.push(F)}else l.push(h)}if(d){var x=o(l[l.length-1]);l.push(["Z"]),n(l[0],x)}}else l=e;return l.reduce((function(e,t){return e+t.join(" ")+" "}),"")},FamilyTree._isMoved=function(e){return null!=e.movex||null!=e.movey},FamilyTree._getDynamicGridCoulumns=function(e){for(var t=1;t 2&&t--,t},FamilyTree._changeRootOption=function(e,t,i){for(var r=[],a=0;a
'},FamilyTree.icon.pdf=function(e,t,i){return'
'},FamilyTree.icon.svg=function(e,t,i){return'
'},FamilyTree.icon.csv=function(e,t,i){return'
'},FamilyTree.icon.json=function(e,t,i){return'
'},FamilyTree.icon.excel=function(e,t,i){return'
'},FamilyTree.icon.edit=function(e,t,i){return'
'},FamilyTree.icon.details=function(e,t,i){return'
'},FamilyTree.icon.remove=function(e,t,i){return'
'},FamilyTree.icon.add=function(e,t,i){return'
'},FamilyTree.icon.search=function(e,t,i){return'
'},FamilyTree.icon.xml=function(e,t,i){return'
'},FamilyTree.icon.link=function(e,t,i){return'
'},FamilyTree.icon.happy=function(e,t,i){return'
'},FamilyTree.icon.sad=function(e,t,i){return'
'},FamilyTree.icon.share=function(e,t,i,r,a){return null==r&&(r=0),null==a&&(a=0),`
`},FamilyTree.icon.user=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),`
`},FamilyTree.icon.close=function(e,t,i,r,a){return null==r&&(r=0),null==a&&(a=0),`
`},FamilyTree.icon.undo=function(e,t,i,r,a){return null==r&&(r=0),null==a&&(a=0),`
`},FamilyTree.icon.redo=function(e,t,i,r,a){return null==r&&(r=0),null==a&&(a=0),`
`},FamilyTree.icon.ft=function(e,t,i,r,a){return`
`},FamilyTree.icon.addUser=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),`
`},FamilyTree.icon.daughter=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),`
`},FamilyTree.icon.son=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),`
`},FamilyTree.icon.wife=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),`
`},FamilyTree.icon.husband=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),`
`},FamilyTree.icon.father=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),`
`},FamilyTree.icon.mother=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),`
`},FamilyTree.icon.teddy=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),`
`},FamilyTree.prototype.exportPDFProfile=function(e,t){e=this._defaultExportProfileOptions(e,"pdf"),this._exportProfile(e,t)},FamilyTree.prototype.exportPDFPreview=function(e){FamilyTree.pdfPrevUI.show(this,e)},FamilyTree.prototype.exportPNGProfile=function(e,t){e=this._defaultExportProfileOptions(e,"png"),this._exportProfile(e,t)},FamilyTree.prototype.shareProfile=function(e){var t;"object"==typeof e?e=(t=e).focusId:t=this.editUI.content(e,!0,!0,"100%",!0);var i=new URL(window.location.href);i.searchParams.append("nodeId",e);var r={title:t.title,text:t.shareText,url:i.href};try{navigator.share(r)}catch(e){console.error("error: "+e)}},FamilyTree.prototype.exportPDF=function(e,t){e=this._defaultExportOptions(e,"pdf"),this._export(e,t)},FamilyTree.prototype.exportPNG=function(e,t){e=this._defaultExportOptions(e,"png"),this._export(e,t)},FamilyTree.prototype.exportSVG=function(e,t){e=this._defaultExportOptions(e,"svg"),this._export(e,t)},FamilyTree.prototype._defaultExportOptions=function(e,t){return null==e&&(e={}),"svg"==t?(e.ext="svg",e.mime="image/svg+xml"):"pdf"==t?(e.mime="application/pdf",e.ext="pdf"):"png"==t&&(e.mime="image/png",e.ext="png"),null==e.margin&&(e.margin=[50,40,50,40]),null==e.padding&&(e.padding=0),null==e.landscape&&(e.landscape=!1),null==e.filename&&(e.filename="FamilyTree."+e.ext),null==e.scale&&(e.scale="fit"),null==e.format&&(e.format="fit"),null==e.header&&(e.header=""),"pdf"==t&&null==e.footer?e.footer="Page {current-page} of {total-pages}":null==e.footer&&(e.footer=""),null==e.openInNewTab&&(e.openInNewTab=!1),null==e.mode&&(e.mode="bft-"+this.config.mode),e},FamilyTree.prototype._export=function(e,t){var i=this,r={id:e.nodeId,expandChildren:e.expandChildren,min:e.min};e.margin&&e.margin[0]<2&&(e.margin[0]=2),e.margin&&e.margin[1]<2&&(e.margin[1]=2),e.margin&&e.margin[2]<2&&(e.margin[2]=2),e.margin&&e.margin[3]<2&&(e.margin[3]=2),this._draw(!1,FamilyTree.action.exporting,r,(function(r,a){var n=document.createElement("div");if(n.innerHTML=r,e.padding>0){var o=n.querySelector("svg"),l=FamilyTree._getViewBox(o);l[0]-=e.padding,l[1]-=e.padding,l[2]+=2*e.padding,l[3]+=2*e.padding,o.setAttribute("viewBox",l.join()),o.setAttribute("width",l[2]),o.setAttribute("height",l[3])}if("svg"==e.ext)if(t)t(e,n.innerHTML);else{(o=n.querySelector("svg")).classList.add("bft-"+i.config.mode);var s={content:n.innerHTML,options:e,styles:""},d=FamilyTree.events.publish("exportstart",[i,s]),c=i.element.querySelector("[data-bft-styles]");if(c&&(s.styles+=c.outerHTML),s.styles&&(n.childNodes[0].insertAdjacentHTML("afterbegin",s.styles),s.content=n.innerHTML),!1===d)return!1;if(!1===(d=FamilyTree.events.publish("exportend",[i,s])))return!1;FamilyTree._downloadFile(e.mime,s.content,s.options.filename,s.options.openInNewTab,s.options.ext)}else i._pages(e,n.querySelector("svg"),a,(function(r){var a={content:n.innerHTML,options:e,pages:r,styles:""},o=FamilyTree.events.publish("exportstart",[i,a]),l=i.element.querySelector("[data-bft-styles]");if(l&&(a.styles+=l.outerHTML),!1===o)return!1;t||FamilyTree.loading.show(i),t?t(i,a,n.querySelector("svg")):(a=JSON.stringify(a),FamilyTree._ajax(i.config.exportUrl+"/v3","POST",a,"arraybuffer",(function(t){var r=FamilyTree.events.publish("exportend",[i,t]);if(FamilyTree.loading.hide(i),!1===r)return!1;FamilyTree._downloadFile(e.mime,t,e.filename,e.openInNewTab,e.ext)})))}))}))},FamilyTree.prototype.exportCSV=function(e){var t=FamilyTree._defaultExportProfileOptionsForCSV_SVG_JSON(e,"csv"),i=this.getNode(t.nodeId),r=null;i?(r=[],FamilyTree._exportIterateForJSON_XML_CSV(this,i,t,r)):!1===t.min||!1===t.expandChildren?FamilyTree._exportIterateForJSON_XML_CSV(this,this.roots,t,r):r=JSON.parse(JSON.stringify(this.config.nodes));var a={ext:"csv",filename:e,options:t,nodes:r};if(!1===FamilyTree.events.publish("exportstart",[this,a]))return!1;var n=FamilyTree._json2csv(a.nodes),o={ext:a.ext,filename:a.filename,options:t,nodes:a.nodes,content:n};if(!1===FamilyTree.events.publish("exportend",[this,o]))return!1;FamilyTree._downloadFile("text/csv;charset=utf-8;","\ufeff"+o.content,o.options.filename,o.options.openInNewTab,o.ext)},FamilyTree.prototype.exportXML=function(e){var t=FamilyTree._defaultExportProfileOptionsForCSV_SVG_JSON(e,"xml"),i=this.getNode(t.nodeId),r=null;i?(r=[],FamilyTree._exportIterateForJSON_XML_CSV(this,i,t,r)):!1===t.min||!1===t.expandChildren?FamilyTree._exportIterateForJSON_XML_CSV(this,this.roots,t,r):r=JSON.parse(JSON.stringify(this.config.nodes));var a={ext:"xml",filename:e,options:t,nodes:r};if(!1===FamilyTree.events.publish("exportstart",[this,a]))return!1;var n=FamilyTree._json2xml(a.nodes),o={ext:a.ext,filename:a.filename,options:t,nodes:a.nodes,content:n};if(!1===FamilyTree.events.publish("exportend",[this,o]))return!1;FamilyTree._downloadFile("application/xml",o.content,o.options.filename,o.options.openInNewTab,o.ext)},FamilyTree.prototype.exportJSON=function(e){var t=FamilyTree._defaultExportProfileOptionsForCSV_SVG_JSON(e,"json"),i=this.getNode(t.nodeId),r=null;i?(r=[],FamilyTree._exportIterateForJSON_XML_CSV(this,i,t,r)):!1===t.min||!1===t.expandChildren?FamilyTree._exportIterateForJSON_XML_CSV(this,this.roots,t,r):r=JSON.parse(JSON.stringify(this.config.nodes));var a={ext:"json",filename:t.filename,options:t,nodes:r};if(!1===FamilyTree.events.publish("exportstart",[this,a]))return!1;var n={ext:a.ext,filename:a.filename,options:t,nodes:a.nodes,content:JSON.stringify(a.nodes)};if(!1===FamilyTree.events.publish("exportend",[this,n]))return!1;FamilyTree._downloadFile("application/json",n.content,n.options.filename,n.options.openInNewTab,n.ext)},FamilyTree._exportIterateForJSON_XML_CSV=function(e,t,i,r){if(Array.isArray(t))for(var a=0;a m.h){v=!1;break}var k=(b[_].minY-b[w].minY)/(100/i);if(_==F-1&&(k=(b[_].maxY-b[w].minY)/(100/i)),k>m.h)break;_++}if(!v)break;var S=(_==F?b[_-1].maxY:b[_-1].minY)-b[w].minY;if(0==S){v=!1;break}if(C=(C=[u,b[w].minY,p,S]).join(),g.push({vb:C,innerSize:{w:m.x,h:S/(100/i)-1},size:h}),_==F)break;_--}g.length&&(g[g.length-1].innerSize.h+=1)}if(!v||FamilyTree.EXPORT_PAGES_CUT_NODES||"fit"!=e.scale)for(t.setAttribute("preserveAspectRatio","xMinYMin slice"),g=[];u 0)for(var n=e[t].length-1;n>=0;n--)(!FamilyTree.isNEU(r)&&!FamilyTree.isNEU(i)&&e[t][n].event_id==r&&e[t][n].listener==i||!FamilyTree.isNEU(r)&&FamilyTree.isNEU(i)&&e[t][n].event_id==r||FamilyTree.isNEU(r)&&!FamilyTree.isNEU(i)&&e[t][n].listener==i||FamilyTree.isNEU(r)&&FamilyTree.isNEU(i))&&(e[t].splice(n,1),a=!0);return a},has:function(t,i){if(e[t]&&Array.isArray(e[t])&&e[t].length>0){if(FamilyTree.isNEU(i))return!0;for(var r=0;r =0;r--)e[i][r].event_id==t&&e[i].splice(r,1)},publish:function(t,i){if(e[t]){for(var r=[],a=0;a 0){var o=!0;for(a=0;a 0?this.substring(0,e)+t+this.substr(e):t+this}),Array.prototype.unique||Object.defineProperty(Array.prototype,"unique",{value:function(){for(var e=this.concat(),t=0;t r[0]/10)return;if(o>r[1]/10)return}}else if(-1!=t.type.indexOf("touch")&&null==this._touch)return;for(var l=t.target;l!=e;){if(l.hasAttribute(FamilyTree.attr.control_expcoll_id)){var s=l.getAttribute(FamilyTree.attr.control_expcoll_id),d=this.getNode(s);return void this._expCollHandler(d.id)}if(l.hasAttribute(FamilyTree.attr.node_id)){s=l.getAttribute(FamilyTree.attr.node_id),d=this.getNode(s);return void this._nodeClickHandler(d.id,t)}if(l.hasAttribute(FamilyTree.attr.control_node_menu_id)){t.stopPropagation(),t.preventDefault();s=l.getAttribute(FamilyTree.attr.control_node_menu_id),d=this.getNode(s);return void this._nodeMenuClickHandler(d.id,l,t)}if(l.hasAttribute(FamilyTree.attr.control_node_circle_menu_id)){t.stopPropagation(),t.preventDefault();s=l.getAttribute(FamilyTree.attr.control_node_circle_menu_id);return void this._nodeCircleMenuClickHandler(s)}if(l.hasAttribute(FamilyTree.attr.control_node_circle_menu_name))return t.stopPropagation(),t.preventDefault(),void this._nodeCircleMenuItemClickHandler(l,t);if(l.hasAttribute(FamilyTree.attr.control_add))return void this._lonelyButtonHandler();if(l.hasAttribute(FamilyTree.attr.control_up_id)){s=l.getAttribute(FamilyTree.attr.control_up_id);return t.stopPropagation(),t.preventDefault(),void this._upHandler(s)}if(l.hasAttribute(FamilyTree.attr.c_link_from))return void FamilyTree.events.publish("clink-click",[this,{from:l.getAttribute(FamilyTree.attr.c_link_from),to:l.getAttribute(FamilyTree.attr.c_link_to),event:t}]);if(l.hasAttribute(FamilyTree.attr.s_link_from))return void FamilyTree.events.publish("slink-click",[this,{from:l.getAttribute(FamilyTree.attr.s_link_from),to:l.getAttribute(FamilyTree.attr.s_link_to),event:t}]);l=l.parentNode}},FamilyTree.prototype._globalContextHandler=function(e,t){for(var i=t.target;i!=e;){if(i.hasAttribute(FamilyTree.attr.node_id)){var r=i.getAttribute(FamilyTree.attr.node_id),a=this.getNode(r);return void this._nodeContextHandler(a.id,t)}i=i.parentNode}},FamilyTree.prototype._nodeContextHandler=function(e,t){t.preventDefault(),FamilyTree.SEARCH_CLOSE_RESULT_ON_ESCAPE_OR_CLICKOUTSIDE&&this.searchUI.hide(),this.nodeMenuUI.hide(),this.nodeContextMenuUI.hide(),this.menuUI.hide(),this.nodeCircleMenuUI.hide();var i=this.get(e),r=null;if(null!=i&&Array.isArray(i.tags))for(var a=0;a 0?t++:t--,l+=t,i.zoom(1-t/12/50,s),parseInt(l)==parseInt(o)?r=!1:d(e)}()},FamilyTree.prototype._nodeCircleNodeMenuItemMouseDownHandler=function(e,t,i){var r=e.parentNode.getAttribute(FamilyTree.attr.control_node_circle_menu_wrraper_id),a=e.getAttribute(FamilyTree.attr.control_node_circle_menu_name),n=this.nodeCircleMenuUI._menu[a];if(n.draggable){var o=this,l=FamilyTree._getClientXY(t),s=this.getNode(r);e._dragEventFired=!1;var d=o.getScale(),c=null,m=null;this._gragStartedId=r,document.body.style.mozUserSelect=document.body.style.webkitUserSelect=document.body.style.userSelect="none";var h=this.getSvg(),p={x:l.x,y:l.y},f=e.cloneNode(!0);h.insertBefore(f,h.firstChild);var u=FamilyTree._getTransform(f),y=u[4],g=u[5],v=function(e){for(;e&&!e.hasAttribute(FamilyTree.attr.control_node_circle_menu_wrraper_id);)e=e.parentNode;if(e){var t=FamilyTree._getTransform(e);return{x:t[4],y:t[5]}}console.error("cannot find parent"+FamilyTree.attr.control_node_circle_menu_wrraper_id)}(e);f.setAttribute("transform","matrix(1,0,0,1,"+(y+v.x)+","+(g+v.y)+")"),f.style.opacity=.7;var T=function(e,t){if(null!=e){t.classList.remove("bft-drag-over");for(var i=FamilyTree.getStParentNodes(o.getNode(c)),r=0;r FamilyTree.FIRE_DRAG_NOT_CLICK_IF_MOVE||Math.abs(i.y-p.y)>FamilyTree.FIRE_DRAG_NOT_CLICK_IF_MOVE))!1===FamilyTree.events.publish("drag",[o.nodeCircleMenuUI,{from:C,menuItem:n,menuItemName:a}])&&F(),e._dragEventFired=!0;f.setAttribute("transform","matrix("+u.toString()+")")}}},F=function(t){if(o.moveEnd(),h.classList&&(h.classList.remove("bft-cursor-grab"),h.classList.remove("bft-cursor-move"),h.classList.remove("bft-cursor-nodrop"),h.classList.remove("bft-cursor-copy")),h.removeEventListener(i.move,b),h.removeEventListener(i.up,F),i.leave&&h.removeEventListener(i.leave,F),s.id==c||null==c)return h.removeChild(f),o._gragStartedId=null,void(e._dragEventFired&&FamilyTree.events.publish("drop",[o.nodeCircleMenuUI,{from:s.id,menuItemName:a,menuItem:n,event:t}]));var r=o.getNode(c);FamilyTree.events.publish("drop",[o.nodeCircleMenuUI,{from:s.id,to:r.id,menuItem:n,menuItemName:a,event:t}]),T(c,m),h.removeChild(f),o._gragStartedId=null};h.addEventListener(i.move,b),h.addEventListener(i.up,F),i.leave&&h.addEventListener(i.leave,F)}},FamilyTree.prototype._nodeMouseDownHandler=function(e,t,i){var r=e.getAttribute(FamilyTree.attr.node_id),a=this.getNode(r);this.config.movable&&!FamilyTree.getRootOf(a).stParent?this._movableHandler(e,t,i):this.config.enableDragDrop&&this._dragDropHandler(e,t,i)},FamilyTree.prototype._movableHandler=function(e,t,i){var r=this,a=e.getAttribute(FamilyTree.attr.node_id),n=[],o=function(e,t){if(Array.isArray(e))for(var i=0;i FamilyTree.FIRE_DRAG_NOT_CLICK_IF_MOVE||Math.abs(i.y-C.y)>FamilyTree.FIRE_DRAG_NOT_CLICK_IF_MOVE)){if(!1===FamilyTree.events.publish("drag",[r,a,t,n])&&L(),r.config.enableDragDrop)for(_=0;_ FamilyTree.FIRE_DRAG_NOT_CLICK_IF_MOVE||Math.abs(i.y-c.y)>FamilyTree.FIRE_DRAG_NOT_CLICK_IF_MOVE))!1===FamilyTree.events.publish("drag",[s,k,t])&&v(),e._dragEventFired=!0;u.setAttribute("transform","matrix("+m.toString()+")")}}},v=function(t){if(s.moveEnd(),d.classList&&(d.classList.remove("bft-cursor-grab"),d.classList.remove("bft-cursor-move"),d.classList.remove("bft-cursor-nodrop"),d.classList.remove("bft-cursor-copy")),d.removeEventListener(i.move,g),d.removeEventListener(i.up,v),i.leave&&d.removeEventListener(i.leave,v),n.id==o||null==o)return e._dragEventFired&&FamilyTree.events.publish("drop",[s,n.id,void 0,u,t]),d.removeChild(u),void(s._gragStartedId=null);var r=s.getNode(o);if(!1===FamilyTree.events.publish("drop",[s,n.id,r.id,u,t]))return y(o,l),d.removeChild(u),void(s._gragStartedId=null);if(s.canUpdateLink(n.id,o)){var a=s.get(n.id);a.pid=o,a.stpid=null,null!=a.movex&&(a.movex=void 0),null!=a.movey&&(a.movey=void 0),s.updateNode(a,null,!0)}else d.removeChild(u),y(o,l);s._gragStartedId=null};d.addEventListener(i.move,g),d.addEventListener(i.up,v),i.leave&&d.addEventListener(i.leave,v)},FamilyTree.prototype._resizeHandler=function(e,t){if(this.isVisible){var i=this.getViewBox(),r=this.getSvg(),a=r.getAttribute("width"),n=r.getAttribute("height"),o=a/i[2],l=n/i[3],s=o>l?l:o;r.setAttribute("width",this.width()),r.setAttribute("height",this.height()),i[2]=this.width()/s,i[3]=this.height()/s,this.setViewBox(i),this.xScrollUI.create(this.width()),this.yScrollUI.create(this.height()),this._draw(!1,FamilyTree.action.resize)}},FamilyTree.prototype._nodeDbClickHandler=function(e,t){if(!1===FamilyTree.events.publish("dbclick",[this,this.get(e)]))return!1;this._commonClickHandler(e,t,this.config.nodeMouseDbClick)},FamilyTree.prototype._nodeClickHandler=function(e,t){var i=this.getNodeElement(e);if(i&&i._dragEventFired)i._dragEventFired=!1;else{if(!1===FamilyTree.events.publish("click",[this,{node:this.getNode(e),event:t}]))return!1;this._commonClickHandler(e,t,this.config.nodeMouseClick)}},FamilyTree.prototype._nodeCircleMenuItemClickHandler=function(e,t){var i=e.parentNode.getAttribute(FamilyTree.attr.control_node_circle_menu_wrraper_id),r=e.getAttribute(FamilyTree.attr.control_node_circle_menu_name),a=this.nodeCircleMenuUI._menu[r];FamilyTree.events.publish("click",[this.nodeCircleMenuUI,{nodeId:i,menuItemName:r,menuItem:a,event:t}])},FamilyTree.prototype._nodeCircleMenuClickHandler=function(e){FamilyTree.SEARCH_CLOSE_RESULT_ON_ESCAPE_OR_CLICKOUTSIDE&&this.searchUI.hide(),this.nodeMenuUI.hide(),this.nodeContextMenuUI.hide(),this.menuUI.hide();var t=this.getNode(e),i=null;if(Array.isArray(t.tags))for(var r=0;r 1&&(s.type="pinch",s.dist=Math.sqrt((o.x-l.x)*(o.x-l.x)+(o.y-l.y)*(o.y-l.y))),"pan"==s.type&&(this._hideBeforeAnimation(),this._changeCursorOnPanStart(a,n,t));var d=function(e){var t=FamilyTree._getClientTouchesXY(e,0);if(s&&"pan"==s.type){r._hideBeforeAnimation(),s.diffX=t.x-s.x0,s.diffY=t.y-s.y0;var i=-s.diffY/n+s.viewBoxTop,o=-s.diffX/n+s.viewBoxLeft;r._move(i,o,a)}else if(s&&"pinch"==s.type){var l=FamilyTree._getClientTouchesXY(e,1),d=Math.sqrt((t.x-l.x)*(t.x-l.x)+(t.y-l.y)*(t.y-l.y)),c=1+(d-s.dist)/(s.dist/100)/100;s.dist=d;var m=FamilyTree._pinchMiddlePointInPercent(r.element,r.width(),r.height(),e);r.zoom(c,m)}},c=function(){"pan"==s.type&&r.config.sticky?setTimeout((function(){FamilyTree._moveToBoundaryArea(e,r.getViewBox(),r.response.boundary,(function(){r._draw(!0,FamilyTree.action.pan)}))}),0):"pan"!=s.type||r.config.sticky||setTimeout((function(){r._draw(!0,FamilyTree.action.pan)}),0),"pan"==s.type&&r._changeCursorOnPanEnd(),s=null,e.removeEventListener(i.move,d),e.removeEventListener(i.up,c),i.leave&&e.removeEventListener(i.leave,c),i.touchstart&&e.removeEventListener(i.touchstart,c)};this.config.enablePan&&(e.addEventListener(i.move,d),e.addEventListener(i.up,c),i.leave&&e.addEventListener(i.leave,c),i.touchstart&&e.addEventListener(i.touchstart,c))},FamilyTree.prototype._changeCursorOnPanStart=function(e,t,i){var r=this.getPointerElement(),a=FamilyTree._getOffsetXY(this.element,i),n=a.x/t+e[0]-16/t,o=a.y/t+e[1]-16/t;r.style.display="inherit",r.setAttribute("transform","matrix(0,0,0,0,"+n+","+o+")"),FamilyTree.animate(r,{transform:[0,0,0,0,n,o],opacity:0},{transform:[1/t,0,0,1/t,n,o],opacity:1},300,FamilyTree.anim.outBack)},FamilyTree.prototype._changeCursorOnPanEnd=function(){this.getPointerElement().style.display="none"},FamilyTree.searchUI=function(){this.lastSearch=[],this._searchAfterEnterPress=!1,this._event_id=FamilyTree._guid(),this.instance=null},FamilyTree.searchUI.prototype.init=function(e){this.instance=e,this.obj=this.instance,this._initSearchFields();var t=this,i=this.instance.config.padding-10,r=this.instance.config.padding-10,a=this.instance.getMenuButton();if(a){var n=a.getBoundingClientRect(),o=this.instance.getSvg().getBoundingClientRect();i=o.right-n.left+10,r=n.top-o.top-10}var l=document.createElement("div");l.classList.add("bft-search"),l.style.right=i+"px",l.style.top=r+"px";var s=FamilyTree.elements.textbox({},{label:FamilyTree.SEARCH_PLACEHOLDER,btn:"X"},"320px");l.innerHTML+=s.html,this.xBtn=l.querySelector("[data-input-btn]"),this.xBtn.style.display="none",this.searchTableWrapper=document.createElement("div"),l.appendChild(this.searchTableWrapper);var d=this.instance.getSvg().nextSibling;this.instance.element.insertBefore(l,d),FamilyTree.input.init(l),this.input=document.getElementById(s.id),this.xBtn.addEventListener("click",(function(e){e.preventDefault(),t.hide()})),this.input.addEventListener("keypress",(function(e){"Enter"==e.key&&e.preventDefault()})),this.input.addEventListener("focus",(function(e){t.xBtn.style.display="",t._search()})),this.input.addEventListener("blur",(function(e){FamilyTree.isNEU(t.input.value)&&FamilyTree.SEARCH_HELP_SYMBOL!=t.input.value&&(t.xBtn.style.display="none")})),this.input.addEventListener("keydown",(function(e){("ArrowDown"==e.key||"ArrowUp"==e.key)&&e.preventDefault()})),this.input.addEventListener("keyup",(function(e){"ArrowDown"==e.key?c():"ArrowUp"==e.key?m():"Enter"==e.key?t._enterHandler():"Escape"==e.key?t.hide():this.value.length>=FamilyTree.MINIMUM_SYMBOLS_IN_SEARCH_INPUT&&t._search()}));var c=function(){var e=t.instance.element.querySelectorAll("[data-search-item-id]"),i=t.instance.element.querySelector('[data-selected="yes"]');null==i&&e.length>0?e[0].setAttribute("data-selected","yes"):e.length>0&&i.nextSibling&&i.nextSibling.setAttribute&&(i.removeAttribute("data-selected"),i.nextSibling.setAttribute("data-selected","yes"))},m=function(){var e=t.instance.element.querySelectorAll("[data-search-item-id]"),i=t.instance.element.querySelector('[data-selected="yes"]');null==i&&e.length>0?e[e.length-1].setAttribute("data-selected","yes"):e.length>0&&i.previousSibling&&i.previousSibling.setAttribute&&(i.removeAttribute("data-selected"),i.previousSibling.setAttribute("data-selected","yes"))}},FamilyTree.searchUI.prototype._enterHandler=function(){var e=this.instance.element.querySelector('[data-selected="yes"]');if(e){if(e.hasAttribute("data-search-item-id")){var t=e.getAttribute("data-search-item-id");if(this.input.value!=FamilyTree.SEARCH_HELP_SYMBOL){var i=FamilyTree.events.publish("",[this.instance,t]),r=FamilyTree.events.publish("searchclick",[this,{nodeId:t}]);!1===i&&(r=!1),0!=r&&this.instance.center(t)}else this.input.value=t+" ",this.searchTableWrapper.innerHTML=""}}else this._searchAfterEnterPress=!0,this.__search(),this.searchTableWrapper.innerHTML="",this.instance.draw()},FamilyTree.searchUI.prototype._initSearchFields=function(){if(null==this.instance.config.searchFields){this._searchFields=[];for(var e=0;e \n \n ${function(){for(var e="",r=0;r =FamilyTree.SEARCH_RESULT_LIMIT);r++){var a=t.lastSearch[r],n="";if(i){var o=t.instance._get(a.id);"function"==typeof i?n=i(t.instance,t.instance.getNode(a.id),o):o[i]&&(n=o[i])}var l="",s="";t.instance.config.searchDisplayField==a.__searchField?l=a.__searchMarks:t.instance.config.searchDisplayField?(l=a[t.instance.config.searchDisplayField],FamilyTree.isNEU(l)&&(l=""),s=a.__searchMarks):l=a.__searchMarks;var d={img:n,nodeId:a.id,first:l,second:s,searchItem:a,html:FamilyTree.searchUI.createItem(n,a.id,l,s)};FamilyTree.events.publish("add-item",[t,d]),e+=d.html}return e}()} \n \n `}this.searchTableWrapper.innerHTML=e;for(var r=this.instance.element.querySelectorAll("[data-search-item-id]"),a=0;a ${t}${this.searchFieldsAbbreviation[t]}`;return e+=""},FamilyTree.searchUI.createItem=function(e,t,i,r){return i&&(i=" "+i+"
"),`\n \n ${e=e?`
`:`
${r}\n `},FamilyTree.searchUI.prototype.hide=function(){if(!1===FamilyTree.events.publish("hide",[this]))return!1;this._searchAfterEnterPress&&(this._searchAfterEnterPress=!1,this.instance.draw()),this.lastSearch=[],this.xBtn&&(this.xBtn.style.display="none"),this.searchTableWrapper&&(this.searchTableWrapper.innerHTML=""),this.input&&(this.input.value="",document.activeElement==this.input&&this.input.blur(),document.activeElement==this.xBtn&&FamilyTree.input.blurHandler(this.input))},FamilyTree.searchUI.prototype.on=function(e,t){return FamilyTree.events.on(e,t,this._event_id),this},void 0===FamilyTree&&(FamilyTree={}),FamilyTree.manager=function(e){this.config=e.config,this.layoutConfigs=e._layoutConfigs,this.visibleNodeIds=[],this.viewBox=null,this.action=null,this.actionParams=null,this.nodes={},this.oldNodes={},this.maxX=null,this.maxY=null,this.minX=null,this.minY=null,this.bordersByRootIdAndLevel=null,this.roots=null,this.state=null,this.vbIsInitializedFromState=!1,this.rootList=[],this.instance=e,this._fixAdjustForExport={x:0,y:0}},FamilyTree.manager.prototype.read=function(e,t,i,r,a,n,o,l){var s=this;FamilyTree.state._get(this.config.state,t,i,(function(d){s.state=d,s.action=a,s.actionParams=n,a!=FamilyTree.action.init||!s.state||n&&n.method&&"fit"==n.method?(s.viewBox=r,s.vbIsInitializedFromState=!1):(s.viewBox=s.state.vb,s.vbIsInitializedFromState=!0,Array.isArray(s.state.roots)&&(s.config.roots=s.state.roots));var c=s.maxX,m=s.maxY,h=s.minX,p=s.minY,f=s.bordersByRootIdAndLevel,u=s.roots,y=s.nodes;if(e){var g=FamilyTree.manager._getResponse(t,i,s.visibleNodeIds,s.config,c,m,h,p,s.viewBox,u,s.action,s.actionParams,y,s.oldNodes,s.vbIsInitializedFromState);a!=FamilyTree.action.exporting&&(s.maxX=c,s.maxY=m,s.minX=h,s.minY=p,s.roots=u,s.nodes=y,s.visibleNodeIds=g.visibleNodeIds),g.bordersByRootIdAndLevel=f,g.roots=u,g.adjustify={x:0,y:0},s.state&&(g.adjustify=s.state.adjustify),o(g)}else s.oldNodes=y||null,s._read((function(e){c=e.maxX,m=e.maxY,h=e.minX,p=e.minY,f=e.bordersByRootIdAndLevel,u=e.roots,y=e.nodes;var r=FamilyTree.manager._getResponse(t,i,s.visibleNodeIds,s.config,c,m,h,p,s.viewBox,u,s.action,s.actionParams,y,s.oldNodes,s.vbIsInitializedFromState);r.notif=e.limit,r.roots=u,r.bordersByRootIdAndLevel=f,r.adjustify=e.adjustify,a!=FamilyTree.action.exporting&&(s.maxX=c,s.maxY=m,s.minX=h,s.minY=p,s.roots=u,s.nodes=y,s.visibleNodeIds=r.visibleNodeIds,s.bordersByRootIdAndLevel=f,s.rootList=e.rootList),o(r)}),l)}))},FamilyTree.manager.prototype._read=function(e,t){var i=this,r=FamilyTree.manager._createNodes(this.instance);t(r);var a=r.nodes,n=r.roots,o=FamilyTree.remote;null==o&&(o=FamilyTree.local),o._setPositions(n,i.layoutConfigs,(function(t){var o=FamilyTree.manager._doNotChangePositionOfClickedNodeIfAny(n,a,i.action,i.actionParams,i.oldNodes,i.config.orientation);i.state&&i.action==FamilyTree.action.init&&(o=i.state.adjustify),i.action==FamilyTree.action.exporting?o=i._fixAdjustForExport:i._fixAdjustForExport=o;for(var l={minX:null,minY:null,maxX:null,maxY:null},s={},d=[],c=0;c=t.collapse.level&&-1==r.indexOf(e.id):e.collapsed=t.collapse&&n>=t.collapse.level-1&&-1==r.indexOf(e.id):a==FamilyTree.action.centerNode||a==FamilyTree.action.insert||a==FamilyTree.action.expand||a==FamilyTree.action.collapse?r.has(e.id)&&(e.collapsed=!1):a==FamilyTree.action.update&&i&&i.changeRoots&&i.changeRoots.has(e.id)&&(e.collapsed=!1)},FamilyTree.manager._initNode=function(e,t,i,r,a,n,o){var l=o.manager.config,s=o.manager.layoutConfigs,d=o.manager.action,c=o.manager.actionParams,m=o.manager.state,h=s[i||"base"];null==e.parent&&FamilyTree.manager._setCollpasedProperty(e,h,c,a,d,r-1,m);for(var p=0;p 0&&(e.subLevels=y),-1!=e.tags.indexOf("assistant")&&null!=e.parent&&(e.isAssistant=!0);var g=FamilyTree.t(e.templateName,e.min);e.w=g&&g.size?g.size[0]:0,e.h=g&&g.size?g.size[1]:0,e.padding=g&&g.padding?g.padding:[0,0,0,0];var v={node:e};FamilyTree.events.publish("node-initialized",[o,v])},FamilyTree.manager._iterate=function(e,t,i,r,a,n,o,l,s,d,c,m){var h=m.manager.layoutConfigs;if(FamilyTree.manager._initNode(t,i,s,r,d,c,m),t.isAssistant&&(n[t.pid]||(n[t.pid]=[]),n[t.pid].push(t.id)),t.subLevels>0&&o.push(t.id),FamilyTree.MIXED_LAYOUT_FOR_NODES_WITH_COLLAPSED_CHILDREN&&!t.isAssistant&&t.parent){if(t.parent&&t.parent.children.length&&t.parent.children[t.parent.children.length-1]==t){for(var p=[],f=0,u=0,y=0;y 1&&p.length==t.parent.children.length-f-u||!FamilyTree.MIXED_LAYOUT_ALL_NODES&&p.length>1)&&(l[t.pid]=p)}}else if(!t.isAssistant&&0==t.childrenIds.length&&t.parent&&!l[t.pid]){for(p=[],f=0,u=0,y=0;y FamilyTree.MIXED_LAYOUT_IF_NUMBER_OF_CHILDREN_IS_MORE_THEN&&p.length==t.parent.childrenIds.length-f-u||!FamilyTree.MIXED_LAYOUT_ALL_NODES&&p.length>FamilyTree.MIXED_LAYOUT_IF_NUMBER_OF_CHILDREN_IS_MORE_THEN)&&(l[t.pid]=p)}t.stChildren.length&&(e.stContainerNodes||(e.stContainerNodes=[]),e.stContainerNodes.push(t));for(var v=0;v -1&&v.childrenIds.splice(ue,1);s.push(m)}}}t.roots=[];for(c=0;c =0;c--)s[c].collapsed&&s.splice(c,1);for(c=0;c =0;b--)if(A[N[b]])for(u=0;u -1&&(v.children.splice(ue,1),v.children.splice(ue,0,z)),z.children.push(g),z.parent=v,g.parent=z,l[z.id]=z}}for(var $ in _){(v=l[$]).hasAssistants=!0;z=new FamilyTree.node(v.id+"_split_assitant_0",v.id,["assistant"],"split");FamilyTree.manager._initDinamicNode(z,v.lcn,!0),l[z.id]=z;var j=[];for(b=v.children.length-1;b>=0;b--){(D=v.children[b]).isAssistant?(D.parent=null,v.children.splice(b,1),j.splice(0,0,D.id)):D.isPartner||(D.parent&&k[D.parent.id]&&z&&D.parent.id!=z.id&&(Object.defineProperty(k,z.id,Object.getOwnPropertyDescriptor(k,D.parent.id)),delete k[D.parent.id]),D.parent=z,z.children.unshift(D),v.children.splice(b,1))}if(j.length%2){var Y=l[j[j.length-1]],X=new FamilyTree.node(Y.id+"_mirror",v.pid,[],"mirror");FamilyTree.manager._initDinamicNode(X,Y.lcn,!0),X.isAssistant=!0,X.w=Y.w,X.h=Y.h,l[X.id]=X,j.splice(j.length-1,0,X.id)}var q=1;for(b=j.length-1;b>=0;b--)if(b%2&&b!=j.length-1){var V=new FamilyTree.node(v.id+"_split_assitant_"+q,v.pid,[],"split");FamilyTree.manager._initDinamicNode(V,v.lcn,!0),l[V.id]=V,j.splice(b,0,V.id),q++}else b%2&&j.splice(b,0,z.id);for(b=0;b 0)),ae[se]||(ae[se]=[]),ae[se].push(de),le&&(oe[se]=$,ne[se]||(ne[se]=[]),ne[se].push(de))}}for(var $ in k={},ne)if(ne[$].length>FamilyTree.MIXED_LAYOUT_IF_NUMBER_OF_CHILDREN_IS_MORE_THEN){var ce=oe[$];for(c=l[ce].children.length-1;c>=0;c--){D=l[ce].children[c];ne[$].has(D.id)&&l[ce].children.splice(c,1)}}for(var $ in ae)ae[$].length>FamilyTree.MIXED_LAYOUT_IF_NUMBER_OF_CHILDREN_IS_MORE_THEN&&(k[$]=ae[$])}}for(var $ in k){for(var me=v=l[$];me.isSplit;)me=l[me.pid];for(;me.isSubLevel;)me=l[me.pid];if(0!=(H=i[v.lcn?v.lcn:"base"]).layout||ee){te.pnode=v,te.layout=H.layout,te.layoutGridColumns=t.layoutGridColumns,te.childrenIds=k[$],te.lastChildrenPidIds=k,te.subLevels=0,te.layouts=[],FamilyTree.events.publish("node-layout",[e,te]),FamilyTree.events.publish("layout",[te]),te.layouts.length||te.layouts.push({layout:te.layout,childrenIds:te.childrenIds,subLevels:te.subLevels,layoutGridColumns:te.layoutGridColumns});for(var he=0;he 2){"dynamic"==pe.layoutGridColumns&&(pe.layoutGridColumns=FamilyTree._getDynamicGridCoulumns(pe.childrenIds.length));var ye=v.id;for(c=v.children.length-1;c>=0;c--)for(b=0;b 2&&ge--;for(c=0;c =pe.childrenIds.length;if(pe.childrenIds.length-1 =0;c--){v=(D=l[be[c]]).parent,D.layout=FamilyTree.layout.mixed;for(b=v.children.length-1;b>=0;b--)if(D.id==v.children[b].id){v.children.splice(b,1);break}if(c>0){var Fe=l[be[c-1]];D.parent=Fe,D.layout=FamilyTree.layout.mixed,Fe.children.push(D)}else v.children.push(D)}}else if(pe.layout>1){z=new FamilyTree.node(he+"_"+v.id+"_split_0",me.id,[],"split");FamilyTree.manager._initDinamicNode(z,v.lcn),l[z.id]=z,z.layout=pe.layout;var xe=[];for(c=pe.childrenIds.length-1;c>=0;c--){for(D=l[pe.childrenIds[c]],b=0;b 2){var _e=new FamilyTree.node(he+"_"+D.id+"_mirror",me.id,[],"mirror");FamilyTree.manager._initDinamicNode(_e,D.lcn),_e.layout=pe.layout,l[_e.id]=_e,xe.splice(0,0,_e.id)}pe.layout!=FamilyTree.layout.treeRightOffset&&pe.layout!=FamilyTree.layout.treeRight&&xe.splice(0,0,D.id)}for(q=1,b=xe.length-1;b>=0;b--)if(b%2&&b!=xe.length-1){V=new FamilyTree.node(he+"_"+v.id+"_split_"+q,me.id,[],"split");FamilyTree.manager._initDinamicNode(V,v.lcn),V.layout=pe.layout,l[V.id]=V,xe.splice(b,0,V.id),q++}else b%2&&xe.splice(b,0,z.id);for(b=0;b o&&l>i;return c&&(c=r+n>s&&d>r),c}if(a(e,i))return!0;for(var n=0;n t.sl&&(t=i);for(var r=0;r =a-o)switch(w=(a+o)/2-x/2,r.orientation){case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:w=(o-a)/2-x/2}else switch(w=u.x-x/2+FamilyTree.manager._getNodeWidth(u,r)/2,r.orientation){case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:(w=-(x/2-(o-a)/2)) -r.padding&&(w=-r.padding)}if(_-2*r.padding>=n-l)switch(k=(n+l)/2-_/2,r.orientation){case FamilyTree.orientation.bottom:case FamilyTree.orientation.bottom_left:k=(l-n)/2-_/2}else switch((k=-(_/2-(n-l)/2))>-r.padding&&(k=-r.padding),r.orientation){case FamilyTree.orientation.bottom:case FamilyTree.orientation.bottom_left:(k=-(_/2-(l-n)/2)) g.right?g.right:g.left),s[0]>g.right&&s[0]>g.left&&(s[0]=g.left>g.right?g.left:g.right),s[1] g.bottom?g.bottom:g.top),s[1]>g.bottom&&s[1]>g.top&&(s[1]=g.top>g.bottom?g.top:g.bottom))}if(c==FamilyTree.action.centerNode||c==FamilyTree.action.maximize){var S=h[m.id];1==m.options.horizontal&&(s[0]=S.x+S.w/2-s[2]/2),1==m.options.vertical&&(s[1]=S.y+S.h/2-s[3]/2),r.sticky&&(s[0] g.right?g.right:g.left),s[0]>g.right&&s[0]>g.left&&(s[0]=g.left>g.right?g.left:g.right),s[1] g.bottom?g.bottom:g.top),s[1]>g.bottom&&s[1]>g.top&&(s[1]=g.top>g.bottom?g.top:g.bottom))}if(c==FamilyTree.action.insert||c==FamilyTree.action.expand||c==FamilyTree.action.collapse||c==FamilyTree.action.update||c==FamilyTree.action.centerNode){var C=null;if(c==FamilyTree.action.insert&&m&&null!=m.insertedNodeId&&null!=m.insertedNodeId)C=h[m.insertedNodeId];else if(c==FamilyTree.action.update&&m&&null!=m.visId&&null!=m.visId)C=h[m.visId];else if(c!=FamilyTree.action.expand&&c!=FamilyTree.action.collapse||!m||null==m.id||null==m.id){if(c==FamilyTree.action.centerNode){switch(r.orientation){case FamilyTree.orientation.top:case FamilyTree.orientation.top_left:case FamilyTree.orientation.bottom:case FamilyTree.orientation.bottom_left:m.options.vertical||(C=h[m.id]);break;case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:case FamilyTree.orientation.left:case FamilyTree.orientation.left_top:m.options.horizontal||(C=h[m.id])}C&&(C=FamilyTree.manager._getMostDeepChild(C,h))}}else C=h[m.id],C=FamilyTree.manager._getMostDeepChild(C,h);if(!FamilyTree.FIXED_POSITION_ON_CLICK&&C)switch(r.orientation){case FamilyTree.orientation.top:case FamilyTree.orientation.top_left:var I=C.y+C.h-s[3]+r.padding;s[1] I&&(s[1]=I);break;case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:I=C.x-r.padding;s[0]>I&&(s[0]=I);break;case FamilyTree.orientation.left:case FamilyTree.orientation.left_top:I=C.x+C.w-s[2]+r.padding;s[0] 0&&(d[i-1].children.push(c),c.parent=d[i-1]),t[c.id]=c,d.push(c)}if(d.length){for(var m=d[d.length-1],h=d[0],p=e.children.length-1;p>=0;p--){var f=e.children[p];m.children.unshift(f),f.parent=m,e.children.splice(p,1)}e.children.push(h),h.parent=e}}},FamilyTree.manager._verticalAssistantLevelCountIterate=function(e,t,i){i.max =0;h--)o[h].length||o.splice(h,1);if(!i.roots||!i.roots.length){i.roots=[];for(h=o.length-1;h>=0;h--)i.roots.push(o[h][0])}for(h=0;h
\n
\n \n
\n ${FamilyTree.icon.addUser(25,25,"#fff",0,0)}\n
\n \n
\n ${FamilyTree.icon.close(25,25,"#fff",0,0)}\n
\n \n
\n ${FamilyTree.icon.ft(20,20,"#aeaeae",5,5)}\n
\n
`,size:[250,120],linkAdjuster:{fromX:0,fromY:0,toX:0,toY:0},ripple:{radius:0,color:"#e6e6e6",rect:null},expandCollapseSize:0,svg:'
',link:'
',assistanseLink:'
',pointer:'
',node:'
',menuButton:'
',padding:[50,20,35,20],nodeMenuButton:`
`,nodeTreeMenuButton:'
',nodeTreeMenuCloseButton:'
',up:'
',img_0:'
',link_field_0:' {val}
'},FamilyTree.templates.dot=Object.assign({},FamilyTree.templates.base),FamilyTree.templates.dot.node='
',FamilyTree.templates.dot.size=[10,10],FamilyTree.templates.dot.nodeMenuButton="",FamilyTree.templates.dot.nodeTreeMenuButton="",FamilyTree.templates.dot.nodeTreeMenuCloseButton="",FamilyTree.templates.dot.up="",FamilyTree.templates.john=Object.assign({},FamilyTree.templates.base),FamilyTree.templates.john.nodeMenuButton=`
`,FamilyTree.templates.john.defs=`
\n
\n ${FamilyTree.gradientCircleForDefs("circle","#aeaeae",60,5)}\n ${FamilyTree.gradientCircleForDefs("male_circle","#039BE5",60,5)}\n ${FamilyTree.gradientCircleForDefs("female_circle","#F57C00",60,5)}`,FamilyTree.templates.john.field_0=" {val}
',FamilyTree.templates.john.field_1=" {val}
',FamilyTree.templates.john.node='
',FamilyTree.templates.john.img_0='
',FamilyTree.templates.john.ripple={radius:60,color:"#e6e6e6",rect:null},FamilyTree.templates.john.size=[120,120],FamilyTree.templates.john_male=Object.assign({},FamilyTree.templates.john),FamilyTree.templates.john_male.node+='
',FamilyTree.templates.john_male.ripple={radius:60,color:"#039BE5",rect:null},FamilyTree.templates.john_female=Object.assign({},FamilyTree.templates.john),FamilyTree.templates.john_female.node+='
',FamilyTree.templates.john_female.ripple={radius:60,color:"#F57C00",rect:null},FamilyTree.templates.tommy=Object.assign({},FamilyTree.templates.base),FamilyTree.templates.tommy.defs="
",FamilyTree.templates.tommy.field_0=" {val}
',FamilyTree.templates.tommy.field_1=" {val}
',FamilyTree.templates.tommy.node='
',FamilyTree.templates.tommy_male=Object.assign({},FamilyTree.templates.tommy),FamilyTree.templates.tommy_male.node='
',FamilyTree.templates.tommy_female=Object.assign({},FamilyTree.templates.tommy),FamilyTree.templates.tommy_female.node='
',FamilyTree.templates.hugo=Object.assign({},FamilyTree.templates.base),FamilyTree.templates.hugo.up='
',FamilyTree.templates.hugo.nodeMenuButton=`
`,FamilyTree.templates.hugo.defs=`
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n ${FamilyTree.icon.ft(24,24,"#fff",0,0)}\n
\n
\n
`,FamilyTree.templates.hugo.img_0='
',FamilyTree.templates.hugo.field_0=" {val}
',FamilyTree.templates.hugo.field_1=" {val}
',FamilyTree.templates.hugo.node='
',FamilyTree.templates.hugo_male=Object.assign({},FamilyTree.templates.hugo),FamilyTree.templates.hugo_male.node='
',FamilyTree.templates.hugo_female=Object.assign({},FamilyTree.templates.hugo),FamilyTree.templates.hugo_female.node='
',FamilyTree.templates.mother=Object.assign({},FamilyTree.templates.base),FamilyTree.templates.mother.up="",FamilyTree.templates.mother.node='
Add mother
'+FamilyTree.icon.mother(70,70,"#F57C00",10,40),FamilyTree.templates.mother.field_0="",FamilyTree.templates.mother.field_1="",FamilyTree.templates.father=Object.assign({},FamilyTree.templates.mother),FamilyTree.templates.father.node='
Add father
'+FamilyTree.icon.father(70,70,"#039BE5",10,40),FamilyTree.templates.partner=Object.assign({},FamilyTree.templates.mother),FamilyTree.templates.partner.node='
Add partner
',FamilyTree.templates.son=Object.assign({},FamilyTree.templates.mother),FamilyTree.templates.son.node='
Add son
'+FamilyTree.icon.son(70,70,"#039BE5",10,40),FamilyTree.templates.daughter=Object.assign({},FamilyTree.templates.mother),FamilyTree.templates.daughter.node='
Add daughter
'+FamilyTree.icon.daughter(70,70,"#F57C00",10,40),FamilyTree.templates.husband=Object.assign({},FamilyTree.templates.mother),FamilyTree.templates.husband.node='
Add husband
'+FamilyTree.icon.husband(70,70,"#039BE5",10,40),FamilyTree.templates.wife=Object.assign({},FamilyTree.templates.mother),FamilyTree.templates.wife.node='
Add wife
'+FamilyTree.icon.wife(70,70,"#F57C00",10,40),FamilyTree.templates.pet=Object.assign({},FamilyTree.templates.mother),FamilyTree.templates.pet.node='
Add pet
'+FamilyTree.icon.teddy(70,70,"#F57C00",10,40),FamilyTree.templates.cgroup=Object.assign({},FamilyTree.templates.base),FamilyTree.templates.cgroup.defs="",FamilyTree.templates.cgroup.size=[250,120],FamilyTree.templates.cgroup.padding=[0,0,0,0],FamilyTree.templates.cgroup.node="",FamilyTree.templates.split=Object.assign({},FamilyTree.templates.base),FamilyTree.templates.split.size=[10,10],FamilyTree.templates.split.node='
',FamilyTree.templates.mirror={linkAdjuster:{},link:"",node:"",nodeMenuButton:"",size:[0,0]},FamilyTree.ui={_defsIds:{},defs:function(e){var t="";for(var i in FamilyTree.templates){var r=FamilyTree.templates[i];r.defs&&(FamilyTree.ui._defsIds[i]=FamilyTree.randomId(),t+=r.defs.replaceAll("{randId}",FamilyTree.ui._defsIds[i]))}return" "+t+e+"
"},lonely:function(e){return e.nodes&&e.nodes.length?"":FamilyTree.IT_IS_LONELY_HERE.replace("{link}",FamilyTree.RES.IT_IS_LONELY_HERE_LINK)},pointer:function(e,t,i){return t===FamilyTree.action.exporting?"":FamilyTree.t(e.template,!1,i).pointer},node:function(e,t,i,r,a,n,o,l,s,d){var c=FamilyTree.t(e.templateName,e.min,s),m=c.node.replaceAll("{w}",e.w).replaceAll("{h}",e.h);c.defs&&(m=m.replaceAll("{randId}",FamilyTree.ui._defsIds[e.templateName])),null==o&&(o=r.nodeBinding);var h={node:e,data:t};for(var p in o){var f,u=o[p];t&&(f=t[u]);var y=FamilyTree._lblIsImg(r,p);if(h.value=f,h.element=c[p],h.name=u,h.field=p,!1!==FamilyTree.events.publish("field",[d,h])&&null!=h.value&&null!=h.value&&null!=h.element&&(!y||y&&!FamilyTree.isNEU(h.value))){if(!y&&"string"==typeof h.value){var g=h.element;g&&(g=g.replaceAll("{ew}",e.w-(e.padding?e.padding[1]:0)).replaceAll("{cw}",e.w/2)),h.value=FamilyTree.wrapText(h.value,g)}var v=h.element.replace("{val}",h.value);m+=v=v.replaceAll("{ew}",e.w-(e.padding?e.padding[1]:0)).replaceAll("{cw}",e.w/2).replaceAll("{randId}",FamilyTree.randomId()).replaceAll("{randId2}",FamilyTree.randomId())}}var T=FamilyTree._getPosition(i,e,a,n),b="node";Array.isArray(e.tags)&&e.tags.length&&(b+=" "+e.tags.join(" ")),e.layout&&(b+=" tree-layout");var F="";e.lcn&&(F='lcn="'+e.lcn+'"');var x=FamilyTree.nodeOpenTag.replace("{lcn}",F).replace("{id}",e.id).replace("{class}",b).replace("{sl}",e.sl).replace("{level}",e.level).replace("{x}",T.x).replace("{y}",T.y),_=FamilyTree._getOpacity(i,e);return m=(x=x.replace("{opacity}",_))+(m+=FamilyTree.ui.nodeBtns(r,e,l,c,d))+FamilyTree.grCloseTag},nodeBtns:function(e,t,i,r,a){var n="";return null==e.nodeMenu||t.isSplit||i===FamilyTree.action.exporting||(n+=r.nodeMenuButton.replace("{id}",t.id).replace("{cw}",t.w/2).replace("{ch}",t.h/2).replace("{ew}",t.w-(t.padding?t.padding[1]:0)).replace("{eh}",t.h-(t.padding?t.padding[2]:0))),null==e.nodeCircleMenu||t.isSplit||i===FamilyTree.action.exporting||FamilyTree.isNEU(r.nodeCircleMenuButton)||(n+='
'),n},expandCollapseBtn:function(e,t,i,r,a){var n="";if(r!==FamilyTree.action.exporting&&!t.isSplit){var o=i[t.lcn?t.lcn:"base"],l=0,s=0,d=FamilyTree.t(t.templateName,t.min,a);if(t.childrenIds.length>0){if(t.hasPartners){for(var c=!1,m=0;m 0&&(h=s.mixedHierarchyNodesSeparation/2);var p=0,f=FamilyTree.getRootOf(e).id,u=r[f][e.sl],y=void 0;if(e.hasPartners){y={ids:[],indexes:{},ppnodes:{},lastLeft:null,firstRight:null,maxSidePartnersWithChildren:0,rightIds:[],leftIds:[],partnerChildrenSplitSeparation:t.config.partnerChildrenSplitSeparation};for(var g=0;g 1)&&T.rightNeighbor&&T.rightNeighbor.isSplit)switch(s.orientation){case FamilyTree.orientation.top:case FamilyTree.orientation.top_left:case FamilyTree.orientation.bottom:case FamilyTree.orientation.bottom_left:F=FamilyTree.ui._linkRightToLeft(T.rightNeighbor,T,d,h);break;case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:case FamilyTree.orientation.left:case FamilyTree.orientation.left_top:F=FamilyTree.ui._linkBottomToTop(T.rightNeighbor,T,d,h)}else if((k||T.layout>1)&&T.leftNeighbor&&T.leftNeighbor.isSplit)switch(s.orientation){case FamilyTree.orientation.top:case FamilyTree.orientation.top_left:case FamilyTree.orientation.bottom:case FamilyTree.orientation.bottom_left:F=FamilyTree.ui._linkLeftToRight(T.leftNeighbor,T,d,h);break;case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:case FamilyTree.orientation.left:case FamilyTree.orientation.left_top:F=FamilyTree.ui._linkTopToBottom(T.leftNeighbor,T,d,h)}else switch(s.orientation){case FamilyTree.orientation.top:case FamilyTree.orientation.top_left:if(1==T.isPartner)F=FamilyTree.ui._linkLeftToRight(e,T,d,p);else if(2==T.isPartner)F=FamilyTree.ui._linkRightToLeft(e,T,d,p);else{_=1==T.layout?void 0:b.minY-(b.minY-u.maxY)/2;F=FamilyTree.ui._linkTopToBottom(e,T,d,h,_)}break;case FamilyTree.orientation.bottom:case FamilyTree.orientation.bottom_left:if(1==T.isPartner)F=FamilyTree.ui._linkLeftToRight(e,T,d,p);else if(2==T.isPartner)F=FamilyTree.ui._linkRightToLeft(e,T,d,p);else{_=1==T.layout?void 0:b.maxY-(b.maxY-u.minY)/2;F=FamilyTree.ui._linkBottomToTop(e,T,d,h,_)}break;case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:if(1==T.isPartner)F=FamilyTree.ui._linkTopToBottom(e,T,d,p);else if(2==T.isPartner)F=FamilyTree.ui._linkBottomToTop(e,T,d,p);else{_=1==T.layout?void 0:b.maxX-(b.maxX-u.minX)/2;F=FamilyTree.ui._linkRightToLeft(e,T,d,h,_)}break;case FamilyTree.orientation.left:case FamilyTree.orientation.left_top:if(1==T.isPartner)F=FamilyTree.ui._linkTopToBottom(e,T,d,p);else if(2==T.isPartner)F=FamilyTree.ui._linkBottomToTop(e,T,d,p);else{_=1==T.layout?void 0:b.minX-(b.minX-u.maxX)/2;F=FamilyTree.ui._linkLeftToRight(e,T,d,h,_)}}}var S=FamilyTree.ui._draggableLinkPath(t,e,T,F,h,s.orientation);if(S)v=S,x=x.replaceAll("{rounded}",S).replaceAll("{edge}",S).replaceAll("{curve}",v);else if(-1!=x.indexOf("{rounded}"))if(F.xa==F.xb&&F.xa==F.xc&&F.xa==F.xd||F.ya==F.yb&&F.ya==F.yc&&F.ya==F.yd)v="M"+F.xa+","+F.ya+" L"+F.xd+","+F.yd,x=x.replaceAll("{rounded}",v);else if(Math.abs(F.xa-F.xd)<=FamilyTree.LINK_ROUNDED_CORNERS&&Math.abs(F.xa-F.xc)<=FamilyTree.LINK_ROUNDED_CORNERS&&Math.abs(F.xa-F.xb)<=FamilyTree.LINK_ROUNDED_CORNERS)v="M"+F.xa+","+F.ya+" L"+F.xa+","+F.yd,x=x.replaceAll("{rounded}",v);else if(Math.abs(F.ya-F.yd)<=FamilyTree.LINK_ROUNDED_CORNERS&&Math.abs(F.ya-F.yc)<=FamilyTree.LINK_ROUNDED_CORNERS&&Math.abs(F.ya-F.yb)<=FamilyTree.LINK_ROUNDED_CORNERS)v="M"+F.xa+","+F.ya+" L"+F.xd+","+F.ya,x=x.replaceAll("{rounded}",v);else{var C=FamilyTree.ui._roundedEdge(F.xa,F.ya,F.xb,F.yb,F.xc,F.yc),I=FamilyTree.ui._roundedEdge(F.xb,F.yb,F.xc,F.yc,F.xd,F.yd);v="M"+C.x1+","+C.y1+" "+C.x2+","+C.y2+" Q"+C.qx1+","+C.qy1+" "+C.qx2+","+C.qy2+" L"+I.x2+","+I.y2+" Q"+I.qx1+","+I.qy1+" "+I.qx2+","+I.qy2+" L"+I.x3+","+I.y3,x=x.replaceAll("{rounded}",v)}else-1!=x.indexOf("{edge}")?(v="M"+F.xa+","+F.ya+" "+F.xb+","+F.yb+" "+F.xc+","+F.yc+" L"+F.xd+","+F.yd,x=x.replaceAll("{edge}",v)):-1!=x.indexOf("{curve}")?(v="M"+F.xa+","+F.ya+" C"+F.xb+","+F.yb+" "+F.xc+","+F.yc+" "+F.xd+","+F.yd,x=x.replaceAll("{curve}",v)):(v=x.replaceAll("{xa}",F.xa).replaceAll("{ya}",F.ya).replaceAll("{xb}",F.xb).replaceAll("{yb}",F.yb).replaceAll("{xc}",F.xc).replaceAll("{yc}",F.yc).replaceAll("{xd}",F.xd).replaceAll("{yd}",F.yd),x=v);c.push(FamilyTree.linkOpenTag.replaceAll("{id}",e.id).replaceAll("{class}","link "+T.tags.join(" ")).replaceAll("{child-id}",T.id));var N={node:e,cnode:T,p:F,html:x,action:n};FamilyTree.events.publish("render-link",[t,N]),c.push(N.html),o&&m.push({id:e.id,childId:T.id,html:N.html});var A="";for(var L in t.config.linkBinding){var E=t.config.linkBinding[L],M=t._get(T.id);if(M){var O=M[E];N.value=O,N.element=d[L],N.name=E,!1!==FamilyTree.events.publish("label",[t,N])&&(FamilyTree.isNEU(N.value)||FamilyTree.isNEU(N.element)||(A+=N.element.replace("{val}",N.value)))}}if(""!=A){var U=F.x,B=F.y;null!=T.movey&&(B+=T.movey),A=FamilyTree.linkFieldsOpenTag.replace("{x}",U).replace("{y}",B).replace("{rotate}",0)+A+FamilyTree.grCloseTag,c.push(A)}c.push(FamilyTree.grCloseTag)}return o?m:c.join("")},svg:function(e,t,i,r,a,n){return FamilyTree.t(r.template,!1,n).svg.replace("{w}",e).replace("{h}",t).replace("{viewBox}",i).replace("{randId}",FamilyTree.ui._defsIds[r.template]).replace("{mode}",r.mode).replace("{template}",r.template).replace("{content}",(function(){return a}))},menuButton:function(e){return null==e.menu?"":FamilyTree.t(e.template,!1).menuButton.replaceAll("{p}",e.padding)},_roundedEdge:function(e,t,i,r,a,n){var o,l,s,d=FamilyTree.LINK_ROUNDED_CORNERS,c=0;return e==i&&e==a||t==r&&t==n?(o=s=i,l=c=r):(e!=a&&i==a&&(o=s=i,l=r,t n&&(c=r-d)),e a&&i==a&&(i+=d),t!=n&&r==n&&(o=i,l=c=r,e a&&(s=i-d)),t n&&r==n&&(r+=d)),{x1:e,y1:t,x2:i,y2:r,x3:a,y3:n,qx1:o,qy1:l,qx2:s,qy2:c}},_linkTopToBottom:function(e,t,i,r,a){var n,o,l,s,d,c=0;return n=e.x+e.w/2+i.linkAdjuster.toX,o=e.y+e.h+i.linkAdjuster.toY,s=l=t.x+t.w/2+i.linkAdjuster.fromX,d=t.y+i.linkAdjuster.fromY,{xa:n,ya:o,xb:n,yb:c=e.rightNeighbor&&e.rightNeighbor.isAssistant&&"split"==t.templateName?e.rightNeighbor.y+e.rightNeighbor.h+r:"split"==e.templateName&&(t.isAssistant||t.layout>1)?d:"split"==t.templateName?o+r:null!=a?a:d-r,xc:l,yc:c,xd:s,yd:d,x:l,y:FamilyTree.isNEU(t.parentPartner)?c+16:c,rotate:0}},_linkBottomToTop:function(e,t,i,r,a){var n,o,l,s,d,c=0;return n=e.x+e.w/2+i.linkAdjuster.toX,o=e.y+i.linkAdjuster.toY,s=l=t.x+t.w/2+i.linkAdjuster.fromX,d=t.y+t.h+i.linkAdjuster.fromY,{xa:n,ya:o,xb:n,yb:c=e.rightNeighbor&&e.rightNeighbor.isAssistant&&"split"==t.templateName?e.rightNeighbor.y-r:"split"==e.templateName&&(t.isAssistant||t.layout>1)?d:"split"==t.templateName?o-r:null!=a?a:d+r,xc:l,yc:c,xd:s,yd:d,x:l,y:c-14,rotate:0}},_linkRightToLeft:function(e,t,i,r,a){var n,o,l,s,d,c,m=0;return n=e.x+i.linkAdjuster.toX,o=e.y+e.h/2+i.linkAdjuster.toY,d=t.x+t.w+i.linkAdjuster.fromX,c=s=t.y+t.h/2+i.linkAdjuster.fromY,l=o,{xa:n,ya:o,xb:m=e.rightNeighbor&&e.rightNeighbor.isAssistant&&"split"==t.templateName?e.rightNeighbor.x-r:"split"==e.templateName&&(t.isAssistant||t.layout>1)?d:"split"==t.templateName?n-r:null!=a?a:d+r,yb:l,xc:m,yc:s,xd:d,yd:c,x:m-16,y:s,rotate:90}},_linkLeftToRight:function(e,t,i,r,a){var n,o,l,s,d,c,m=0;return n=e.x+e.w+i.linkAdjuster.toX,o=e.y+e.h/2+i.linkAdjuster.toY,d=t.x+i.linkAdjuster.fromX,c=s=t.y+t.h/2+i.linkAdjuster.fromY,l=o,{xa:n,ya:o,xb:m=e.rightNeighbor&&e.rightNeighbor.isAssistant&&"split"==t.templateName?e.rightNeighbor.x+e.rightNeighbor.w+r:"split"==e.templateName&&(t.isAssistant||t.layout>1)?d:"split"==t.templateName?n+r:null!=a?a:d-r,yb:l,xc:m,yc:s,xd:d,yd:c,x:m+14,y:s,rotate:270}},_linkPpTop:function(e,t,i,r,a,n){var o=e.ppnodes[i.id],l=o.y+o.h/2,s=r.minY-(r.minY-a.maxY)/2,d=(r.minY-a.maxY)/e.maxSidePartnersWithChildren/4,c=FamilyTree.ui.__linkPpBottomTop(e,t,i,s,d,o),m=c.x;return s=c.mid,FamilyTree.ui._linkTopToBottom({x:m,y:l,w:0,h:0},i,n,0,s)},_linkPpBottom:function(e,t,i,r,a,n){var o=e.ppnodes[i.id],l=o.y+o.h/2,s=r.maxY-(r.maxY-a.minY)/2,d=(r.maxY-a.minY)/e.maxSidePartnersWithChildren/4,c=FamilyTree.ui.__linkPpBottomTop(e,t,i,s,d,o),m=c.x;return s=c.mid,FamilyTree.ui._linkBottomToTop({x:m,y:l,w:0,h:0},i,n,0,s)},_linkPpLeft:function(e,t,i,r,a,n){var o=e.ppnodes[i.id],l=r.minX-(r.minX-a.maxX)/2,s=(r.minX-a.maxX)/e.maxSidePartnersWithChildren/4,d=o.x+o.w/2,c=FamilyTree.ui.__linkPpLeftRight(e,t,i,l,s,o),m=c.y;return l=c.mid,FamilyTree.ui._linkLeftToRight({x:d,y:m,w:0,h:0},i,n,0,l)},_linkPpRight:function(e,t,i,r,a,n){var o=e.ppnodes[i.id],l=r.maxX-(r.maxX-a.minX)/2,s=(r.maxX-a.minX)/e.maxSidePartnersWithChildren/4,d=o.x+o.w/2,c=FamilyTree.ui.__linkPpLeftRight(e,t,i,l,s,o),m=c.y;return l=c.mid,FamilyTree.ui._linkRightToLeft({x:d,y:m,w:0,h:0},i,n,0,l)},__linkPpBottomTop:function(e,t,i,r,a,n){var o=0;return 1==n.isPartner?(o=n.x-t.partnerSeparation/2+e.indexes[i.id]*e.partnerChildrenSplitSeparation-(e.rightIds.length-1)*e.partnerChildrenSplitSeparation/2,e.lastLeft&&o e.firstRight.x+e.firstRight.w/2?o e.firstRight.y+e.firstRight.h/2?o r.yd)return null;s=r.xa r.xd)return null;d=r.ya r.yb)l=!0,s=r.xa r.yd)return null;s=r.xa r.xd)return null;d=r.ya r.xb)l=!0,d=r.ya r.yd){var s=r.xa r.xd){d=r.ya 0)e++;else{if(0==e)return void(n=!1);e--}Math.ceil(t.bar.scrollLeft)==Math.ceil(t.position)?n=!1:(t.bar.scrollLeft+=e,l(o))}e.addEventListener("wheel",(function(e){if(e.ctrlKey)return;var a=0;if(t.config.mouseScrool==FamilyTree.action.xScroll)(a=e.deltaX||e.wheelDeltaX)||(a=e.deltaY||e.wheelDeltaY);else if(t.config.mouseScrool==FamilyTree.action.scroll&&!(a=i||!e.shiftKey?e.deltaX||e.wheelDeltaX:e.deltaY||e.wheelDeltaY))return;a=-a,a=Math.max(-1,Math.min(1,a)),t.position+=-a*r;var l=parseFloat(t.innerBar.clientWidth)-parseFloat(t.bar.clientWidth);t.position<0&&(t.position=0);t.position>l&&(t.position=l);n||o()}),{passive:!0});var l=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){setTimeout(e,20)}}(e,r.speed,r.smooth)}},FamilyTree.xScrollUI.prototype.create=function(e){if(this.config.showXScroll===FamilyTree.scroll.visible||this.config.mouseScrool===FamilyTree.action.scroll||this.config.mouseScrool===FamilyTree.action.xScroll){var t=this;this.bar&&this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.bar=document.createElement("div"),this.innerBar=document.createElement("div");this.requestParams();this.innerBar.innerHTML=" ",Object.assign(this.bar.style,{position:"absolute",left:0,bottom:0,width:e+"px","overflow-x":"scroll",height:"20px"}),this.element.appendChild(this.bar),this.bar.appendChild(this.innerBar),this.bar.addEventListener("scroll",(function(){if(this.ignore)this.ignore=!1;else{var e=t.requestParams(),i=(parseFloat(t.innerBar.clientWidth)-parseFloat(t.bar.clientWidth))/100,r=this.scrollLeft/i,a=(e.boundary.right-e.boundary.left)/100;e.viewBox[0]=r*a+e.boundary.left,t.onSetViewBoxCallback(e.viewBox),clearTimeout(this._timeout),this._timeout=setTimeout((function(){t.onDrawCallback()}),500)}}))}},FamilyTree.xScrollUI.prototype.setPosition=function(){if(this.bar){var e=this.requestParams(),t=(Math.abs(e.boundary.maxX-e.boundary.minX)+2*this.config.padding)*e.scale;switch(this.config.orientation){case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:t=Math.abs(e.boundary.minX*e.scale)}this.innerBar.style.width=t+"px";var i=(e.boundary.right-e.boundary.left)/100,r=(e.viewBox[0]-e.boundary.left)/i;r<0?r=0:r>100&&(r=100);var a=(parseFloat(this.innerBar.clientWidth)-parseFloat(this.bar.clientWidth))/100,n=r*a;this.bar.ignore=!0,this.bar.scrollLeft=n,this.position=this.bar.scrollLeft,this.bar.style.visibility=a<=0?"hidden":"",this.config.showXScroll!==FamilyTree.scroll.visible&&(this.bar.style.visibility="hidden"),FamilyTree.events.publish("change",[this,{isScrollBarVisible:"hidden"!=this.bar.style.visibility}])}},FamilyTree.xScrollUI.prototype.on=function(e,t){return FamilyTree.events.on(e,t,this._event_id),this},FamilyTree.yScrollUI=function(e,t,i,r,a){this.element=e,this.requestParams=i,this.config=t,this.onSetViewBoxCallback=r,this.onDrawCallback=a,this.position=0,this.bar=null,this._event_id=FamilyTree._guid()},FamilyTree.yScrollUI.prototype.addListener=function(e){var t=this;if((this.config.mouseScrool==FamilyTree.action.yScroll||this.config.mouseScrool==FamilyTree.action.scroll)&&this.bar){var i=-1!==navigator.userAgent.indexOf("Mac OS"),r=FamilyTree._getScrollSensitivity();!function(e,r,a){var n=!1;function o(){n=!0;var e=(t.position-t.bar.scrollTop)/a;if(e>0)e++;else{if(0==e)return void(n=!1);e--}Math.ceil(t.bar.scrollTop)==Math.ceil(t.position)?n=!1:(t.bar.scrollTop+=e,l(o))}e.addEventListener("wheel",(function(e){if(e.ctrlKey)return;var a=0;if(t.config.mouseScrool==FamilyTree.action.yScroll)(a=e.deltaY||e.wheelDeltaY)||(a=e.deltaX||e.wheelDeltaX);else if(t.config.mouseScrool==FamilyTree.action.scroll&&!(a=i||!e.shiftKey?e.deltaY||e.wheelDeltaY:e.deltaX||e.wheelDeltaX))return;a=-a,a=Math.max(-1,Math.min(1,a)),t.position+=-a*r;var l=parseFloat(t.innerBar.clientHeight)-parseFloat(t.bar.clientHeight);t.position<0&&(t.position=0);t.position>l&&(t.position=l);n||o()}),{passive:!0});var l=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){setTimeout(e,20)}}(e,r.speed,r.smooth)}},FamilyTree.yScrollUI.prototype.create=function(e){if(this.config.showYScroll===FamilyTree.scroll.visible||this.config.mouseScrool===FamilyTree.action.scroll||this.config.mouseScrool===FamilyTree.action.yScroll){var t=this;this.bar&&this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.bar=document.createElement("div"),this.innerBar=document.createElement("div"),this.innerBar.innerHTML=" ",Object.assign(this.bar.style,{position:"absolute",right:0,bottom:0,height:e+"px","overflow-y":"scroll",width:"20px"}),this.element.appendChild(this.bar),this.bar.appendChild(this.innerBar),this.bar.addEventListener("scroll",(function(){if(this.ignore)this.ignore=!1;else{var e=t.requestParams(),i=(parseFloat(t.innerBar.clientHeight)-parseFloat(t.bar.clientHeight))/100,r=this.scrollTop/i,a=(e.boundary.bottom-e.boundary.top)/100;e.viewBox[1]=r*a+e.boundary.top,t.onSetViewBoxCallback(e.viewBox),clearTimeout(this._timeout),this._timeout=setTimeout((function(){t.onDrawCallback()}),500)}}))}},FamilyTree.yScrollUI.prototype.setPosition=function(){if(this.bar){var e=this.requestParams(),t=(Math.abs(e.boundary.maxY-e.boundary.minY)+2*this.config.padding)*e.scale;switch(this.config.orientation){case FamilyTree.orientation.bottom:case FamilyTree.orientation.bottom_left:t=Math.abs(e.boundary.minY*e.scale)}this.innerBar.style.height=t+"px";var i=(e.boundary.bottom-e.boundary.top)/100,r=(e.viewBox[1]-e.boundary.top)/Math.abs(i);r<0?r=0:r>100&&(r=100);var a=(parseFloat(this.innerBar.clientHeight)-parseFloat(this.bar.clientHeight))/100,n=r*a;this.bar.ignore=!0,this.bar.scrollTop=n,this.position=this.bar.scrollTop,this.bar.style.visibility=a<=0?"hidden":"",this.config.showYScroll!==FamilyTree.scroll.visible&&(this.bar.style.visibility="hidden"),FamilyTree.events.publish("change",[this,{isScrollBarVisible:"hidden"!=this.bar.style.visibility}])}},FamilyTree.yScrollUI.prototype.on=function(e,t){return FamilyTree.events.on(e,t,this._event_id),this},FamilyTree.prototype.zoom=function(e,t,i,r){var a=this.getViewBox().slice(0),n=a,o=a[2],l=a[3];!0===e?(a[2]=a[2]/FamilyTree.SCALE_FACTOR,a[3]=a[3]/FamilyTree.SCALE_FACTOR):!1===e?(a[2]=a[2]*FamilyTree.SCALE_FACTOR,a[3]=a[3]*FamilyTree.SCALE_FACTOR):(a[2]=a[2]/e,a[3]=a[3]/e),t||(t=[50,50]),a[0]=n[0]-(a[2]-o)/(100/t[0]),a[1]=n[1]-(a[3]-l)/(100/t[1]);var s=this.getScale(a);if(a[2]=this.width()/s,a[3]=this.height()/s,!0===e&&s this.config.scaleMin||0!=e&&1!=e&&s this.config.scaleMin){this._hideBeforeAnimation();var d=this;i?(clearTimeout(d._timeout),FamilyTree.animate(this.getSvg(),{viewbox:this.getViewBox()},{viewbox:a},this.config.anim.duration,this.config.anim.func,(function(){clearTimeout(d._timeout),d._timeout=setTimeout((function(){d._draw(!0,FamilyTree.action.zoom,null,r)}),500)}))):(this.setViewBox(a),clearTimeout(d._timeout),d._timeout=setTimeout((function(){d._draw(!0,FamilyTree.action.zoom,null,r)}),500))}},FamilyTree.loading={},FamilyTree.loading.show=function(e){var t=document.createElement("div");t.id="bft-loading",t.innerHTML='
',e.element.appendChild(t)},FamilyTree.loading.hide=function(e){var t=e.element.querySelector("#bft-loading");t&&t.parentNode.removeChild(t)},FamilyTree.pdfPrevUI={},FamilyTree.loc||(FamilyTree.loc={}),FamilyTree.loc.ppdfCmdTitle="PDF Preview",FamilyTree.loc.ppdfSave="Save",FamilyTree.loc.ppdfCancel="Cancel",FamilyTree.loc.ppdfFormat="Format",FamilyTree.loc.ppdfFitToDrwaing="Fit",FamilyTree.loc.ppdfA4="A4",FamilyTree.loc.ppdfA3="A3",FamilyTree.loc.ppdfA2="A2",FamilyTree.loc.ppdfA1="A1",FamilyTree.loc.ppdfLetter="Letter",FamilyTree.loc.ppdfLegal="Legal",FamilyTree.loc.ppdfLayout="Layout",FamilyTree.loc.ppdfPortrait="Portrait",FamilyTree.loc.ppdfLandscape="Landscape",FamilyTree.loc.ppdfFittopagewidth="Fit to page width",FamilyTree.loc.ppdfMargin="Margin",FamilyTree.loc.ppdfHeader="Header",FamilyTree.loc.ppdfFooter="Footer",FamilyTree.loc.ppdfScale="Scale",FamilyTree.pdfPrevUI.show=function(e,t){FamilyTree.pdfPrevUI.hide(e),t=e._defaultExportOptions(t,"pdf");var i=document.createElement("div");i.classList.add(e.config.mode),i.id="bft-ppdf-btns",Object.assign(i.style,{position:"absolute",top:0,left:0,"background-color":"#fff","z-index":5,margin:"0 0 0 -265px","box-shadow":"0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)",width:"265px",height:"100%","font-family":"Roboto,Helvetica",color:"#757575","text-align":"right",padding:"10px"}),e.element.appendChild(i),i.innerHTML="
';var r=document.createElement("div");r.id="bft-ppdf-wrapper",Object.assign(r.style,{"overflow-y":"scroll","z-index":11,position:"absolute",top:0,left:"285px","background-color":"#eee",width:e.width()-270+"px",height:"100%"}),e.element.appendChild(r),r.innerHTML='
';var a,n,o,l=e.element.querySelector("#bft-ppdf-size"),s=e.element.querySelector("#bft-ppdf-layout"),d=e.element.querySelector("#bft-ppdf-scale"),c=e.element.querySelector("#bft-ppdf-margin"),m=e.element.querySelector("#bft-ppdf-header"),h=e.element.querySelector("#bft-ppdf-footer");l.value=t.format,s.value=t.landscape,d.value=t.scale,c.value=t.margin,m.value=t.header,h.value=t.footer,FamilyTree.animate(e.element.querySelector("#bft-ppdf-btns"),{margin:[0,0,0,-250]},{margin:[0,0,0,0]},300,FamilyTree.anim.outSin,(function(){e.exportPDF(t,FamilyTree.pdfPrevUI._handler)})),e.element.querySelector("#bft-prev-cancel").addEventListener("click",(function(){FamilyTree.pdfPrevUI.hide(e)})),e.element.querySelector("#bft-prev-save").addEventListener("click",(function(){e.exportPDF(t),FamilyTree.pdfPrevUI.hide(e)})),FamilyTree.pdfPrevUI._showHide(l,s,d),l.addEventListener("change",(function(){FamilyTree.animate(e.element.querySelector("#bft-ppdf-content"),{opacity:1},{opacity:0},300,FamilyTree.anim.inSin,(function(){e.element.querySelector("#bft-ppdf-content").innerHTML="",t.format=l.value,e.exportPDF(t,FamilyTree.pdfPrevUI._handler),FamilyTree.pdfPrevUI._showHide(l,s,d)}))})),s.addEventListener("change",(function(){FamilyTree.animate(e.element.querySelector("#bft-ppdf-content"),{opacity:1},{opacity:0},300,FamilyTree.anim.inSin,(function(){e.element.querySelector("#bft-ppdf-content").innerHTML="",t.landscape="true"==s.value,e.exportPDF(t,FamilyTree.pdfPrevUI._handler),FamilyTree.pdfPrevUI._showHide(l,s,d)}))})),d.addEventListener("change",(function(){FamilyTree.animate(e.element.querySelector("#bft-ppdf-content"),{opacity:1},{opacity:0},300,FamilyTree.anim.inSin,(function(){e.element.querySelector("#bft-ppdf-content").innerHTML="",t.scale=d.value,e.exportPDF(t,FamilyTree.pdfPrevUI._handler),FamilyTree.pdfPrevUI._showHide(l,s,d)}))})),c.addEventListener("keyup",(function(){clearTimeout(a),a=setTimeout((function(){FamilyTree.animate(e.element.querySelector("#bft-ppdf-content"),{opacity:1},{opacity:0},300,FamilyTree.anim.inSin,(function(){e.element.querySelector("#bft-ppdf-content").innerHTML="";var i=c.value.split(",");if(4==i.length){for(var r=0;r " +t+' c?(m.y=s,h.y=c+o.h):(m.y=s+n.h,h.y=c);break;case FamilyTree.orientation.bottom:case FamilyTree.orientation.bottom_left:p<=f?(g=-1,m.x=p+n.w/10,h.x=f+o.w/10):(g=1,m.x=p-n.w/10,h.x=f+o.w/10),s==c?(g=-1,m.y=s+n.h,h.y=c+o.h):s>c?(m.y=s,h.y=c+o.h):(m.y=s+n.h,h.y=c);break;case FamilyTree.orientation.left:case FamilyTree.orientation.left_top:u<=y?(g=-1,m.y=u+n.h/5,h.y=y+o.h/5):(g=1,m.y=u-n.h/5,h.y=y+o.h/5),l==d?(g=-1,m.x=l,h.x=d):l>d?(m.x=l,h.x=d+o.w):(m.x=l+n.w,h.x=d);break;case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:u<=y?(g=1,m.y=u+n.h/5,h.y=y+o.h/5):(g=-1,m.y=u-n.h/5,h.y=y+o.h/5),l==d?(g=1,m.x=l+n.w,h.x=d+o.w):l>d?(m.x=l,h.x=d+o.w):(m.x=l+n.w,h.x=d)}var v=_(m,h,g),T=a.template;T||(T="orange");var b=FamilyTree.clinkTemplates[T];if(a.label){var F=FamilyTree.clinkLabelPosition(a,m,h,v);i+=b.label.replace("{x}",F.x).replace("{y}",F.y).replace("{val}",a.label)}var x="M"+m.x+","+m.y+"C"+m.x+","+m.y+" "+v.x+","+v.y+" "+h.x+","+h.y;i+=(" ').replace("{from}",n.id).replace("{to}",o.id)+b.link.replaceAll("{d}",x)+'
',i+=FamilyTree.grCloseTag}function _(e,t,i){null==i&&(i=1);var r=t.x-e.x,n=t.y-e.y,o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))/3;return o=o/(Math.sqrt(r*r+n*n)*i)*FamilyTree.clinkCurve(a),{x:e.x+r/2-n*o,y:e.y+n/2+r*o}}}t.content+=i},FamilyTree.clinkLabelPosition=function(e,t,i,r){var a=(i.x-t.x)/2+t.x,n=(i.y-t.y)/2+t.y;return{x:(a-r.x)/2+r.x,y:(n-r.y)/2+r.y}},FamilyTree.clinkCurve=function(e){return FamilyTree.CLINK_CURVE},FamilyTree.prototype.addClink=function(e,t,i,r){this._putInUndoStack(),this.clearRedo();for(var a=this.config.clinks.length-1;a>=0;a--){var n=this.config.clinks[a];n.from==e&&n.to==t&&this.config.clinks.splice(a,1)}return this.config.clinks.push({from:e,to:t,label:i,template:r}),FamilyTree.events.publish("updated",[this]),this},FamilyTree.prototype.removeClink=function(e,t){this._putInUndoStack(),this.clearRedo();for(var i=this.config.clinks.length-1;i>=0;i--){var r=this.config.clinks[i];r.from==e&&r.to==t&&this.config.clinks.splice(i,1)}return FamilyTree.events.publish("updated",[this]),this},FamilyTree.clinkTemplates={},FamilyTree.clinkTemplates.orange={defs:'
',link:'
',label:' {val}
'},FamilyTree.clinkTemplates.blue={defs:'
',link:'
',label:' {val}
'},FamilyTree.clinkTemplates.yellow={defs:'
',link:'
',label:' {val}
'},void 0===FamilyTree&&(FamilyTree={}),FamilyTree.events.on("renderdefs",(function(e,t){for(var i=0;i t.x&&(c="right");break;case FamilyTree.orientation.left:case FamilyTree.orientation.left_top:case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:c="top",n.y>t.y&&(c="bottom")}var p=FamilyTree.t(t.templateName,t.min,r),f=h.levelSeparation;t.parent&&t.parent.layout&&(f=h.mixedHierarchyNodesSeparation);var u={p:t.x+t.w/2+p.expandCollapseSize,q:t.y,r:t.x+t.w/2+p.expandCollapseSize,s:a.minY+f};if(t.sl==n.sl)switch(d=n,h.orientation){case FamilyTree.orientation.top:case FamilyTree.orientation.top_left:s.push([u.p,u.q]),s.push([u.p,u.q-f/3]),p=FamilyTree.t(d.templateName,d.min,r),s.push([d.x+d.w/2+p.expandCollapseSize,s[s.length-1][1]]),s.push([s[s.length-1][0],d.y]);break;case FamilyTree.orientation.bottom:case FamilyTree.orientation.bottom_left:u.q=t.y+t.h,u.s=a.maxY-f,s.push([u.p,u.q]),s.push([u.r,t.y+t.h+f/3]),p=FamilyTree.t(d.templateName,d.min,r),s.push([d.x+d.w/2+p.expandCollapseSize,s[s.length-1][1]]),s.push([s[s.length-1][0],d.y+d.h]);break;case FamilyTree.orientation.left:case FamilyTree.orientation.left_top:u.p=t.x,u.q=t.y+t.h/2+p.expandCollapseSize,u.r=a.minX-f,u.s=t.y+t.h/2+p.expandCollapseSize,s.push([u.p,u.q]),s.push([t.x-f/3,u.q]),p=FamilyTree.t(d.templateName,d.min,r),s.push([s[s.length-1][0],d.y+d.h/2+p.expandCollapseSize]),s.push([d.x,s[s.length-1][1]]);break;case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:u.p=t.x+t.w,u.q=t.y+t.h/2+p.expandCollapseSize,u.r=a.maxX+f,u.s=t.y+t.h/2+p.expandCollapseSize,s.push([u.p,u.q]),s.push([t.x+t.w+f/3,u.q]),p=FamilyTree.t(d.templateName,d.min,r),s.push([s[s.length-1][0],d.y+d.h/2+p.expandCollapseSize]),s.push([d.x+d.w,s[s.length-1][1]])}else{switch(h.orientation){case FamilyTree.orientation.top:case FamilyTree.orientation.top_left:s.push([u.p,u.q]),s.push([u.r,t.y-f/3]);break;case FamilyTree.orientation.bottom:case FamilyTree.orientation.bottom_left:u.q=t.y+t.h,u.s=a.maxY-f,s.push([u.p,u.q]),s.push([u.r,t.y+t.h+f/3]);break;case FamilyTree.orientation.left:case FamilyTree.orientation.left_top:u.p=t.x,u.q=t.y+t.h/2+p.expandCollapseSize,u.r=a.minX-f,u.s=t.y+t.h/2+p.expandCollapseSize,s.push([u.p,u.q]),s.push([t.x-f/3,u.q]);break;case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:u.p=t.x+t.w,u.q=t.y+t.h/2+p.expandCollapseSize,u.r=a.maxX+f,u.s=t.y+t.h/2+p.expandCollapseSize,s.push([u.p,u.q]),s.push([t.x+t.w+f/3,u.q])}for(var y=t,g=t;g.parent;)g=g.parent;for(;null==d;){var v=!1,T=y.parent,b=T.leftNeighbor,F=T.rightNeighbor;if(T.id==n.id?d=T:FamilyTree._intersects(T,u,h)&&(u=FamilyTree._addPoint(T,s,h,u,c),v=!0),T.id!=n.id){for(;b;){if(b.id==n.id){d=b;break}FamilyTree._intersects(b,u,h)&&(u=FamilyTree._addPoint(b,s,h,u,c),v=!0),b=b.leftNeighbor}for(;F;){if(F.id==n.id){d=F;break}FamilyTree._intersects(F,u,h)&&(u=FamilyTree._addPoint(F,s,h,u,c),v=!0),F=F.rightNeighbor}}if(!v){var x=s[s.length-1][0],_=0;if(T.parent){f=h.levelSeparation,T.parent.layout&&(f=h.mixedHierarchyNodesSeparation);var w=e.manager.bordersByRootIdAndLevel[g.id][T.parent.sl];switch(h.orientation){case FamilyTree.orientation.top:case FamilyTree.orientation.top_left:_=w.maxY+f*(2/3);break;case FamilyTree.orientation.bottom:case FamilyTree.orientation.bottom_left:_=w.minY-f*(2/3);break;case FamilyTree.orientation.left:case FamilyTree.orientation.left_top:x=w.maxX+f*(2/3),_=s[s.length-1][1];break;case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:x=w.minX-f*(2/3),_=s[s.length-1][1]}}s.push([x,_])}y=T}switch(p=FamilyTree.t(d.templateName,d.min,r),s.splice(s.length-1,1),h.orientation){case FamilyTree.orientation.top:case FamilyTree.orientation.top_left:s.push([d.x+d.w/2+p.expandCollapseSize,s[s.length-1][1]]),s.push([s[s.length-1][0],d.y+d.h]);break;case FamilyTree.orientation.bottom:case FamilyTree.orientation.bottom_left:s.push([d.x+d.w/2+p.expandCollapseSize,s[s.length-1][1]]),s.push([s[s.length-1][0],d.y]);break;case FamilyTree.orientation.left:case FamilyTree.orientation.left_top:s.push([s[s.length-1][0],d.y+d.h/2+p.expandCollapseSize]),s.push([d.x+d.w,s[s.length-1][1]]);break;case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:s.push([s[s.length-1][0],d.y+d.h/2+p.expandCollapseSize]),s.push([d.x,s[s.length-1][1]])}}var k=l.template;k||(k="orange");var S,C,I=null;switch((p=FamilyTree.slinkTemplates[k]).labelPosition){case"start":I={x:s[1][0],y:s[1][1]};break;case"middle":var N=Math.ceil(s.length/2);S=s[N],C=s[N-1],I={x:(S[0]+C[0])/2,y:(S[1]+C[1])/2};break;case"end":I={x:s[s.length-2][0],y:s[s.length-2][1]}}o&&(s=s.reverse()),s[0].unshift("M");for(var A=1;A ').replace("{from}",U).replace("{to}",B)+p.link.replaceAll("{d}",L)+'
',i+=FamilyTree.grCloseTag}for(var o=0;o =d.sl?n(s,d,!1):n(d,s,!0))}t.content+=i},FamilyTree.prototype.addSlink=function(e,t,i,r){this._putInUndoStack(),this.clearRedo();for(var a=this.config.slinks.length-1;a>=0;a--){var n=this.config.slinks[a];n.from==e&&n.to==t&&this.config.slinks.splice(a,1)}return this.config.slinks.push({from:e,to:t,label:i,template:r}),FamilyTree.events.publish("updated",[this]),this},FamilyTree.prototype.removeSlink=function(e,t){this._putInUndoStack(),this.clearRedo();for(var i=this.config.slinks.length-1;i>=0;i--){var r=this.config.slinks[i];r.from==e&&r.to==t&&this.config.slinks.splice(i,1)}return FamilyTree.events.publish("updated",[this]),this},FamilyTree.slinkTemplates={},FamilyTree.slinkTemplates.orange={defs:'
',link:'
',label:' {val}
',labelPosition:"middle"},FamilyTree.slinkTemplates.blue={defs:'
',link:'
',label:' {val}
',labelPosition:"middle"},FamilyTree.slinkTemplates.yellow={defs:'
',link:'
',label:' {val}
',labelPosition:"middle"},FamilyTree.events.on("renderbuttons",(function(e,t){if(t.node&&t.node.tags&&t.node.tags.has("group-dotted-lines")){var i=e.getScale(),r=FamilyTree.t(t.node.templateName,t.node.min,i),a="";t.node.min?(r.nodeGroupDottedOpenButton||console.error(`[${t.node.templateName}].nodeGroupDottedOpenButton is not defined`),a+=` `,a+=r.nodeGroupDottedOpenButton):(r.nodeGroupDottedCloseButton||console.error(`[${t.node.templateName}].nodeGroupDottedCloseButton is not defined`),a+=` `,a+=r.nodeGroupDottedCloseButton),a=(a+="
").replaceAll("{cw}",t.node.w/2).replaceAll("{ch}",t.node.h/2).replaceAll("{ew}",t.node.w-(t.node.padding?t.node.padding[1]:0)).replaceAll("{eh}",t.node.h-(t.node.padding?t.node.padding[2]:0));var n=e.getNode(t.node.stChildrenIds[0]);if(-1!=a.indexOf("{collapsed-children-count}")){var o=FamilyTree.collapsedChildrenCount(e,n);a=a.replace("{collapsed-children-count}",o)}if(-1!=a.indexOf("{collapsed-children-total-count}")){var l=FamilyTree.collapsedChildrenTotalCount(e,n);a=a.replace("{collapsed-children-total-count}",l)}if(-1!=a.indexOf("{children-count}")){var s=FamilyTree.childrenCount(e,n);a=a.replace("{children-count}",s)}if(-1!=a.indexOf("{children-total-count}")){var d=FamilyTree.childrenTotalCount(e,n);a=a.replace("{children-total-count}",d)}t.html+=a}})),FamilyTree.events.on("redraw",(function(e,t){if(e.config.groupDottedLines.length){for(var i=e.element.querySelectorAll("[data-ctrl-n-dotted-close]"),r=0;r ${FamilyTree.icon.undo(50,50,"")}
\n ${FamilyTree.icon.redo(50,50,"")}
`,this.instance.element.appendChild(a),i=this.instance.element.querySelector("[data-undo]"),r=this.instance.element.querySelector("[data-redo]"),i.addEventListener("click",(function(){e.instance.undo()})),r.addEventListener("click",(function(){e.instance.redo()}))}t.undoStepsCount>0?(i.classList.add("bft-ur-clickable"),i.querySelector(".bft-undo-i").innerHTML=t.undoStepsCount,i.querySelector(".bft-undo-i").style.display="inline-block"):(i.classList.remove("bft-ur-clickable"),i.querySelector(".bft-undo-i").style.display="none"),t.redoStepsCount>0?(r.classList.add("bft-ur-clickable"),r.querySelector(".bft-redo-i").innerHTML=t.redoStepsCount,r.querySelector(".bft-redo-i").style.display="inline-block"):(r.classList.remove("bft-ur-clickable"),r.querySelector(".bft-redo-i").style.display="none")}}},FamilyTree.undoRedoUI.prototype.on=function(e,t){return FamilyTree.events.on(e,t,this._event_id),this},FamilyTree.undoRedoUI.prototype.onChange=function(e){return this.on("change",(function(t,i){return e.call(t,i)}))},FamilyTree.events.on("redraw",(function(e,t){if(e.config.miniMap){if(e.manager.action!=FamilyTree.action.move){FamilyTree.miniMap._settings._scale=Math.min(FamilyTree.miniMap.width/(e.response.boundary.maxX-e.response.boundary.minX),FamilyTree.miniMap.height/(e.response.boundary.maxY-e.response.boundary.minY)),FamilyTree.miniMap._settings._translateX=-e.response.boundary.minX*FamilyTree.miniMap._settings._scale+(FamilyTree.miniMap.width-(e.response.boundary.maxX-e.response.boundary.minX)*FamilyTree.miniMap._settings._scale)/2,FamilyTree.miniMap._settings._translateY=-e.response.boundary.minY*FamilyTree.miniMap._settings._scale+(FamilyTree.miniMap.height-(e.response.boundary.maxY-e.response.boundary.minY)*FamilyTree.miniMap._settings._scale)/2;var i=e.getViewBox();FamilyTree.miniMap._init(e),FamilyTree.miniMap._drawMainCanvas(e),FamilyTree.miniMap._drawRectSelectorCanvas(e,i);var r,a,n,o,l=e.element.querySelector('[data-id="mini-map-focus"]'),s=!1,d=null;l.onmousedown=function(e){var t,n,o,d=l.getBoundingClientRect(),c=d.left,m=d.top;if(r=parseInt(e.clientX-c),a=parseInt(e.clientY-m),t=a,n=(r-FamilyTree.miniMap._settings._translateX)/FamilyTree.miniMap._settings._scale,o=(t-FamilyTree.miniMap._settings._translateY)/FamilyTree.miniMap._settings._scale,n>i[0]&&n i[1]&&o 1){var c=d[0];o[c]&&(i=[o[c]],d=(s=s.replace(c,"").trim()).split(" "))}d=d.filter((function(e,t,i){return i.indexOf(e)===t}));for(var m={},h=0;h =0;v--)l[v].id==g&&l.splice(v,1);FamilyTree._search.addNodeToResult(l,r,p,t,u,a)}}else m[g]=t.__score,FamilyTree._search.addNodeToResult(l,r,p,t,u,a)}}}return l.sort((function(e,t){return e.__score t.__score?-1:0})),l},FamilyTree._search.addNodeToResult=function(e,t,i,r,a,n){var o={};o.id=i.id,FamilyTree.isNEU(i[n])||(o[n]=i[n]);for(var l=0;l 0?100:0,c=0,m=0;m =1&&n[p-1].start>n[p].start){d=0;break}}var u=0;0!=l&&(u=l/o);var y=l>0?100:0;0!=s&&(y=100-s/o);var g=0;r&&r[i]&&(g=r[i]),f&&(f=f/100*50),u>0&&(u=u/100*10),y>0&&(y=y/100*10),d>0&&(d=d/100*10),g>0&&(g=g/100*20);var v=Math.round(1e4*(f+u+y+d+g));n.sort((function(e,t){return e.start t.start?1:0}));for(p=n.length-1;p>=0;p--)for(m=0;m n[p].start&&n.splice(p,1);var T=t;for(p=n.length-1;p>=0;p--)T=(T=T.insert(n[p].start+n[p].length,"")).insert(n[p].start," ");return{__searchMarks:T,__score:v}},FamilyTree._search.searchIndexesOf=function(e,t){var i=[];if(!FamilyTree.isNEU(e))for(var r=0;r -1;)i.push({length:a.length,start:n,searchPhrase:a}),n+=a.length}return i.sort((function(e,t){return e.length t.length||e.start t.start?1:0})),i=i.filter((function(e){for(var t=!1,r=0;r =o&&n<=l){t=!0;break}if(a<=o&&n>=l){t=!0;break}}return!t}))},FamilyTree.events.on("redraw",(function(e,t){if(e.config.state){var i=[],r=[];!function e(t){if(Array.isArray(t))for(var a=0;a =0){l=s.childrenIds[o];this._keyNavigationActiveNodeId=l,this.center(l)}}}else if("ArrowUp"==t.code){var s;if(s=this.getNode(a.pid)){l=s.id;if(a.isAssistant||s.hasAssistants||a.isPartner||s.hasPartners){o=s.childrenIds.indexOf(a.id);--o>=0&&(l=s.childrenIds[o])}this._keyNavigationActiveNodeId=l,this.center(l)}}else if("ArrowDown"==t.code)a.childrenIds.length&&(this._keyNavigationActiveNodeId=a.childrenIds[0],this.center(a.childrenIds[0]));else if("Space"==t.code){var d=i.getAttribute(FamilyTree.attr.node_id);return void this.toggleExpandCollapse(d,t)}}},FamilyTree.events.on("redraw",(function(e,t){e.config.keyNavigation&&FamilyTree._keyNavigation(e)})),FamilyTree.events.on("click",(function(e,t){e.config&&e.config.keyNavigation&&(e._keyNavigationActiveNodeId=t.node.id,e.center(t.node.id))})),FamilyTree._keyNavigation=function(e){var t=e.element.querySelector(":focus");if(t&&t.parentElement&&t.parentElement.hasAttribute(FamilyTree.attr.node_id)){var i=t.parentElement;(a=(r=t).querySelector("title"))&&a.parentNode.removeChild(a),r.removeAttribute("tabindex")}if(!FamilyTree.isNEU(e._keyNavigationActiveNodeId)&&((i=e.getNodeElement(e._keyNavigationActiveNodeId))&&i.children.length)){var r;(r=i.children[0]).setAttribute("tabindex",2);var a,n={text:"",id:e._keyNavigationActiveNodeId};if(FamilyTree.events.publish("screen-reader-text",[e,n]),!FamilyTree.isNEU(n.text))(a=document.createElementNS("http://www.w3.org/2000/svg","title")).innerHTML=n.text,r.appendChild(a);FamilyTree.SEARCH_CLOSE_RESULT_ON_ESCAPE_OR_CLICKOUTSIDE&&e.searchUI.hide(),r.focus()}},FamilyTree.elements={},FamilyTree.elements.textbox=function(e,t,i,r){var a=FamilyTree.elements._vidrf(e,t,r);if(a.doNotRender)return{html:""};var n="";return t.btn&&(n=` ${t.btn}
`),{html:`
See more ",FamilyTree.OFFLINE_MESS="The evaluation version requires internet connection!
See more ",FamilyTree.SEARCH_PLACEHOLDER="Search... type ? to get help.",FamilyTree.SEARCH_HELP_SYMBOL="?",FamilyTree.SEARCH_CLOSE_RESULT_ON_ESCAPE_OR_CLICKOUTSIDE=!1,FamilyTree.SEARCH_RESULT_LIMIT=10,FamilyTree.IMPORT_MESSAGE="Choose the columns (fields) in your data file that contain the required information.",FamilyTree.FIXED_POSITION_ON_CLICK=!1,FamilyTree.RENDER_LINKS_BEFORE_NODES=!1,FamilyTree.RENDER_CLINKS_BEFORE_NODES=!1,FamilyTree.MIXED_LAYOUT_ALL_NODES=!0,FamilyTree.MIXED_LAYOUT_FOR_NODES_WITH_COLLAPSED_CHILDREN=!1,FamilyTree.MIXED_LAYOUT_IF_NUMBER_OF_CHILDREN_IS_MORE_THEN=1,FamilyTree.LINK_ROUNDED_CORNERS=5,FamilyTree.MOVE_STEP=5,FamilyTree.CLINK_CURVE=1,FamilyTree.MAX_DEPTH=200,FamilyTree.SCALE_FACTOR=1.44,FamilyTree.LAZY_LOADING_FACTOR=500,FamilyTree.HIDE_EDIT_FORM_ON_PAN=!0,FamilyTree.LAZY_LOADING=!0,FamilyTree.ARRAY_FIELDS=["tags"],FamilyTree.CSV_DELIMITER=",",FamilyTree.EDITFORM_CLOSE_BTN=' ',FamilyTree.ESCAPE_HTML=!1,FamilyTree.VERTICAL_CHILDREN_ASSISTANT=!1,FamilyTree.EXPORT_PAGES_CUT_NODES=!1,FamilyTree.RESET_MOVABLE_ONEXPANDCOLLAPSE=!1,FamilyTree.FILTER_ALPHABETICALLY=!0,FamilyTree.SERVER_PREFIX=".azurewebsites.net/api/OrgChartJS",FamilyTree.FUNC_URL_NAME="func-url-orgfamilyjs",FamilyTree.MINIMUM_SYMBOLS_IN_SEARCH_INPUT=1,"undefined"!=typeof module&&(module.exports=FamilyTree),FamilyTree.SERVER_PREFIX=".azurewebsites.net/api/FamilyTreeJS",FamilyTree.FUNC_URL_NAME="func-url-familytreejs",FamilyTree.OC_VERSION=FamilyTree.VERSION,FamilyTree.VERSION="1.09.46",FamilyTree.RENDER_LINKS_BEFORE_NODES=!0,FamilyTree.ARRAY_FIELDS=["tags","pids"],FamilyTree._intersects=function(e,t,i){var r=e.x-i.siblingSeparation/4,a=e.y,n=e.x+e.w+i.siblingSeparation/4,o=e.y;switch(i.orientation){case FamilyTree.orientation.right:case FamilyTree.orientation.right_top:case FamilyTree.orientation.left:case FamilyTree.orientation.left_top:r=e.x,a=e.y-i.siblingSeparation/4,n=e.x,o=e.y+e.h+i.siblingSeparation/4}var l,s,d,c=t.p,m=t.q,h=t.r,p=t.s;return 0!==(l=(n-r)*(p-m)-(h-c)*(o-a))&&(s=((a-o)*(h-r)+(n-r)*(p-a))/l,0<(d=((p-m)*(h-r)+(c-h)*(p-a))/l)&&d<1&&0
\n ${A}\n ${FamilyTree.editUI.renderHeaderContent(g,v,f,u)}\n
\n \n ${function(){if(a)return"";var e="";for(var i in m){var r=m[i];FamilyTree.isNEU(r)||(w&&r.hideIfEditMode||t&&r.hideIfDetailsMode||o&&"Edit"==r.text||(e+=`
\n \n
`))}return e}()} \n\n
\n \n
\n\n ${function(){for(var e="",i=0;i ';for(var a=0;a "}else{s=FamilyTree.elements[r.type](u,r,"280px",t);!FamilyTree.isNEU(s.id)&&FamilyTree.isNEU(n)&&FamilyTree.isNEU(s.value)&&(n=s.id),FamilyTree.isNEU(s.value)||N.push(`${r.label}: ${s.value}`),e+=s.html}}return e}()}\n\n
\n\n ${s}
\n
\n\n
`,{element:I,focusId:n,title:g,shareText:N.join("\n")}},FamilyTree.editUI.prototype.hide=function(){if(!1===FamilyTree.events.publish("hide",[this]))return!1;FamilyTree.isNEU(this.interval)&&(clearInterval(this.interval),this.interval=null);var e=this.obj.element.querySelector("[data-bft-edit-form]");e&&e.parentNode&&e.parentNode.removeChild(e)},FamilyTree.editUI.renderHeaderContent=function(e,t,i,r){return` \n
\n
\n \n
\n
\n${FamilyTree._escapeGreaterLessSign(e)}
\n${t}
`},FamilyTree.prototype.getSvg=function(){var e=this.element.getElementsByTagName("svg");return e&&e.length?e[0]:null},FamilyTree.prototype.getPointerElement=function(){return this.element.querySelector("g[data-pointer]")},FamilyTree.prototype.getNodeElement=function(e){return this.element.querySelector("["+FamilyTree.attr.node_id+"='"+e+"']")},FamilyTree.prototype.getMenuButton=function(){return this.element.querySelector("["+FamilyTree.attr.control_export_menu+"]")},FamilyTree.menuUI=function(){},FamilyTree.menuUI.prototype.init=function(e,t){this.obj=e,this.wrapper=null,this.menu=t,this._event_id=FamilyTree._guid()},FamilyTree.menuUI.prototype.showStickIn=function(e,t,i,r){this._show(e,null,t,i,r)},FamilyTree.menuUI.prototype.show=function(e,t,i,r,a){this._show(e,t,i,r,a)},FamilyTree.menuUI.prototype._show=function(e,t,i,r,a){var n=this;this.hide();var o="";a||(a=this.menu);var l={firstNodeId:i,secondNodeId:r,menu:a};if(!1===FamilyTree.events.publish("show",[this,l]))return!1;for(var s in a=l.menu){var d=a[s].icon,c=a[s].text;void 0===d&&(d=FamilyTree.icon[s]?FamilyTree.icon[s](24,24,"#7A7A7A"):""),"function"==typeof c&&(c=c()),"function"==typeof d&&(d=d()),o+=" '+d+" "+c+"
"}if(""!=o){if(this.wrapper=document.createElement("div"),this.wrapper.className="bft-family-menu",this.wrapper.style.left="-99999px",this.wrapper.style.top="-99999px",this.wrapper.innerHTML=o,this.obj.element.appendChild(this.wrapper),null==t){var m=FamilyTree._menuPosition(e,this.wrapper,this.obj.getSvg());e=m.x,t=m.y}var h=e+45;this.wrapper.style.left=h+"px",this.wrapper.style.top=t+"px",this.wrapper.style.left=h-this.wrapper.offsetWidth+"px";var p=e-this.wrapper.offsetWidth;FamilyTree.animate(this.wrapper,{opacity:0,left:h-this.wrapper.offsetWidth},{opacity:1,left:p},300,FamilyTree.anim.inOutPow);for(var f=this.wrapper.getElementsByTagName("div"),u=0;u '+FamilyTree.toolbarUI.expandAllIcon+"
"),t.fit&&(this.div.innerHTML+=" '+FamilyTree.toolbarUI.fitIcon+"
"),t.zoom&&(this.div.innerHTML+=" '+FamilyTree.toolbarUI.zoomInIcon+"
",this.div.innerHTML+=" '+FamilyTree.toolbarUI.zoomOutIcon+"
"),t.layout&&(this.div.innerHTML+=" '+FamilyTree.toolbarUI.layoutIcon+"
",this.layouts=document.createElement("div"),this.layouts.classList.add("bft-toolbar-layout"),this.layouts.innerHTML='
\n
\n
\n
\n
\n
',this.obj.element.appendChild(this.layouts)),t.fullScreen&&(this.div.innerHTML+=" '+FamilyTree.toolbarUI.openFullScreenIcon+"
"),this.obj.element.appendChild(this.div),this.layoutBtn=this.div.querySelector("["+FamilyTree.attr.tlbr+'="layout"]');var i=this.div.querySelector("["+FamilyTree.attr.tlbr+'="plus"]'),r=this.div.querySelector("["+FamilyTree.attr.tlbr+'="minus"]'),a=this.div.querySelector("["+FamilyTree.attr.tlbr+'="fit"]'),n=this.div.querySelector("["+FamilyTree.attr.tlbr+'="fullScreen"]'),o=this.div.querySelector("["+FamilyTree.attr.tlbr+'="expand"]'),l=this;i&&i.addEventListener("click",(function(){l.obj.zoom(!0,null,!0)})),r&&r.addEventListener("click",(function(){l.obj.zoom(!1,null,!0)})),a&&a.addEventListener("click",(function(){l.obj.fit()})),n&&n.addEventListener("click",(function(){l.obj.toggleFullScreen()})),o&&o.addEventListener("click",(function(){l.obj.expand(null,"all")})),this.layoutBtn&&this.layoutBtn.addEventListener("click",(function(){l._visible?l.hideLayout():l.showLayout()})),this.layouts&&this.layouts.addEventListener("click",(function(e){for(var t=e.target;t;){if(t.hasAttribute&&t.hasAttribute(FamilyTree.attr.layout)){t=t.getAttribute(FamilyTree.attr.layout),l.obj.setLayout(FamilyTree.layout[t]);break}t=t.parentNode}}))}},FamilyTree.toolbarUI.prototype.showLayout=function(){this._visible=!0,this.layoutBtn.style.transform="rotate(180deg) translateX(0px) translateY(0px)",FamilyTree.animate(this.div,{bottom:this.obj.config.padding-10},{bottom:this.obj.config.padding+135},this.obj.config.anim.duration,this.obj.config.anim.func),FamilyTree.animate(this.layouts,{bottom:-145},{bottom:0},this.obj.config.anim.duration,this.obj.config.anim.func)},FamilyTree.toolbarUI.prototype.hideLayout=function(){this._visible=!1,this.layoutBtn.style.transform="rotate(0deg) translateX(0px) translateY(0px)",FamilyTree.animate(this.div,{bottom:this.obj.config.padding+135},{bottom:this.obj.config.padding-10},this.obj.config.anim.duration,this.obj.config.anim.func),FamilyTree.animate(this.layouts,{bottom:0},{bottom:-145},this.obj.config.anim.duration,this.obj.config.anim.func)},FamilyTree.notifierUI=function(){},FamilyTree.notifierUI.prototype.init=function(e){this.obj=e},FamilyTree.notifierUI.prototype.show=function(e,t){if(null==e)return!1;1==e&&(e=FamilyTree.MAX_NODES_MESS,t="#FFCA28"),2==e&&(e=FamilyTree.OFFLINE_MESS,t="#FFCA28");var i=document.createElement("div");i.innerHTML=e,Object.assign(i.style,{position:"absolute","background-color":t,color:"#ffffff",padding:"15px","border-radius":"40px",opacity:0,overflow:"hidden","white-space":"nowrap","text-align":"center"}),this.obj.element.appendChild(i);var r=this.obj.width()/2-i.offsetWidth/2,a=this.obj.height()/2-i.offsetHeight/2;i.style.left=r+"px",i.style.top=a+"px";var n=i.offsetWidth;return i.style.width="20px",FamilyTree.animate(i,{opacity:0,width:10},{opacity:1,width:n},this.obj.config.anim.duration,this.obj.config.anim.func),!0},void 0===FamilyTree&&(FamilyTree={}),FamilyTree._validateConfig=function(e){return!!e||(console.error("config is not defined"),!1)},FamilyTree._arrayContains=function(e,t){if(e&&Array.isArray(e))for(var i=e.length;i--;)if(e[i]===t)return!0;return!1},FamilyTree._interceptions=function(e,t){if(!e)return[];if(!t)return[];var i=[];if(Array.isArray(e)&&Array.isArray(t))for(var r in e)for(var a in t)e[r]==t[a]&&i.push(e[r]);else if(Array.isArray(e)&&!Array.isArray(t))for(var r in e)for(var a in t)e[r]==a&&i.push(e[r]);else if(!Array.isArray(e)&&Array.isArray(t))for(var r in e)for(var a in t)r==t[a]&&i.push(t[a]);return i},FamilyTree._getTags=function(e){return e.tags&&!Array.isArray(e.tags)?e.tags.split(","):e.tags&&Array.isArray(e.tags)?e.tags:[]},FamilyTree._centerPointInPercent=function(e,t,i){var r=e.getBoundingClientRect(),a=t-r.left,n=i-r.top;return[a/(r.width/100),n/(r.height/100)]},FamilyTree._trim=function(e){return e.replace(/^\s+|\s+$/g,"")},FamilyTree._getTransform=function(e){var t=e.getAttribute("transform");return t=t.replace("matrix","").replace("(","").replace(")",""),FamilyTree._browser().msie&&(t=t.replace(/ /g,",")),t="["+(t=FamilyTree._trim(t))+"]",t=JSON.parse(t)},FamilyTree.getScale=function(e,t,i,r,a,n,o,l){var s=1;if(e||r!==FamilyTree.match.boundary)if(e||r!==FamilyTree.match.width)if(e||r!==FamilyTree.match.height)if(e){var d,c;s=(d=t/e[2])>(c=i/e[3])?c:d}else s=r;else s=i/l;else s=t/o;else s=(d=t/o)>(c=i/l)?c:d;return s&&s>a&&(s=a),s&&s ${FamilyTree.icon.user(32,32,"#aeaeae")}
`}\n \n ${i}${r}\n `},FamilyTree.searchUI.prototype.hide=function(){if(!1===FamilyTree.events.publish("hide",[this]))return!1;this._searchAfterEnterPress&&(this._searchAfterEnterPress=!1,this.instance.draw()),this.lastSearch=[],this.xBtn&&(this.xBtn.style.display="none"),this.searchTableWrapper&&(this.searchTableWrapper.innerHTML=""),this.input&&(this.input.value="",document.activeElement==this.input&&this.input.blur(),document.activeElement==this.xBtn&&FamilyTree.input.blurHandler(this.input))},FamilyTree.searchUI.prototype.on=function(e,t){return FamilyTree.events.on(e,t,this._event_id),this},void 0===FamilyTree&&(FamilyTree={}),FamilyTree.manager=function(e){this.config=e.config,this.layoutConfigs=e._layoutConfigs,this.visibleNodeIds=[],this.viewBox=null,this.action=null,this.actionParams=null,this.nodes={},this.oldNodes={},this.maxX=null,this.maxY=null,this.minX=null,this.minY=null,this.bordersByRootIdAndLevel=null,this.roots=null,this.state=null,this.vbIsInitializedFromState=!1,this.rootList=[],this.instance=e,this._fixAdjustForExport={x:0,y:0}},FamilyTree.manager.prototype.read=function(e,t,i,r,a,n,o,l){var s=this;FamilyTree.state._get(this.config.state,t,i,(function(d){s.state=d,s.action=a,s.actionParams=n,a!=FamilyTree.action.init||!s.state||n&&n.method&&"fit"==n.method?(s.viewBox=r,s.vbIsInitializedFromState=!1):(s.viewBox=s.state.vb,s.vbIsInitializedFromState=!0,Array.isArray(s.state.roots)&&(s.config.roots=s.state.roots));var c=s.maxX,m=s.maxY,h=s.minX,p=s.minY,f=s.bordersByRootIdAndLevel,u=s.roots,y=s.nodes;if(e){var g=FamilyTree.manager._getResponse(t,i,s.visibleNodeIds,s.config,c,m,h,p,s.viewBox,u,s.action,s.actionParams,y,s.oldNodes,s.vbIsInitializedFromState);a!=FamilyTree.action.exporting&&(s.maxX=c,s.maxY=m,s.minX=h,s.minY=p,s.roots=u,s.nodes=y,s.visibleNodeIds=g.visibleNodeIds),g.bordersByRootIdAndLevel=f,g.roots=u,g.adjustify={x:0,y:0},s.state&&(g.adjustify=s.state.adjustify),o(g)}else s.oldNodes=y||null,s._read((function(e){c=e.maxX,m=e.maxY,h=e.minX,p=e.minY,f=e.bordersByRootIdAndLevel,u=e.roots,y=e.nodes;var r=FamilyTree.manager._getResponse(t,i,s.visibleNodeIds,s.config,c,m,h,p,s.viewBox,u,s.action,s.actionParams,y,s.oldNodes,s.vbIsInitializedFromState);r.notif=e.limit,r.roots=u,r.bordersByRootIdAndLevel=f,r.adjustify=e.adjustify,a!=FamilyTree.action.exporting&&(s.maxX=c,s.maxY=m,s.minX=h,s.minY=p,s.roots=u,s.nodes=y,s.visibleNodeIds=r.visibleNodeIds,s.bordersByRootIdAndLevel=f,s.rootList=e.rootList),o(r)}),l)}))},FamilyTree.manager.prototype._read=function(e,t){var i=this,r=FamilyTree.manager._createNodes(this.instance);t(r);var a=r.nodes,n=r.roots,o=FamilyTree.remote;null==o&&(o=FamilyTree.local),o._setPositions(n,i.layoutConfigs,(function(t){var o=FamilyTree.manager._doNotChangePositionOfClickedNodeIfAny(n,a,i.action,i.actionParams,i.oldNodes,i.config.orientation);i.state&&i.action==FamilyTree.action.init&&(o=i.state.adjustify),i.action==FamilyTree.action.exporting?o=i._fixAdjustForExport:i._fixAdjustForExport=o;for(var l={minX:null,minY:null,maxX:null,maxY:null},s={},d=[],c=0;c
"+FamilyTree.loc.ppdfCmdTitle+'
';return n&&(c+='
",c+=""},FamilyTree.pdfPrevUI.hide=function(e){var t=e.element.querySelector("#bft-ppdf-wrapper");if(t){t.parentNode.removeChild(t),t.style.opacity=0;var i=e.element.querySelector("#bft-ppdf-btns");i.parentNode.removeChild(i)}},void 0===FamilyTree&&(FamilyTree={}),FamilyTree.events.on("renderdefs",(function(e,t){for(var i=0;i '+n+"
"),c+=e,o&&(c+='
"),c+="\n
`,id:a.id,value:a.value}},FamilyTree.elements.checkbox=function(e,t,i,r){var a=FamilyTree.elements._vidrf(e,t,r);if(a.doNotRender)return{html:""};var n=a.value?"checked":"",o=r?'onclick="return false;"':"";return{html:` \n
\n\n ${n}\n
\n\n
\n
`,id:a.id,value:n}},FamilyTree.elements.select=function(e,t,i,r){if(r)return FamilyTree.elements.textbox(e,t,i,r);var a=FamilyTree.elements._vidrf(e,t,r);return a.doNotRender?{html:""}:{html:` \n
`,id:a.id,value:a.value}},FamilyTree.elements.multiSelect=function(e,t,i,r){if(r)return FamilyTree.elements.textbox(e,t,i,r);var a=FamilyTree.elements._vidrf(e,t,r);return a.doNotRender?{html:""}:{html:` \n
\n
\n
\n\n
`,id:a.id,value:a.value}},FamilyTree.elements.date=function(e,t,i,r){var a=FamilyTree.elements._vidrf(e,t,r);return a.doNotRender?{html:""}:{html:` \n
\n
\n
\n\n
`,id:a.id,value:a.value}},FamilyTree.elements._vidrf=function(e,t,i){var r={};if(t.binding||(t.binding=""),t.label||(t.label=""),"select"!=t.type||Array.isArray(t.options)?r.options=t.options:r.options=[],r.value=e&&!FamilyTree.isNEU(e[t.binding])?e[t.binding]:"",i&&r.options)for(var a=0;a
\n
\n\n
\nAdd your custom HTML here