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
\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+=`
${r.icon}
`))}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 ${s} \n
\n
\n
\n
\n
\n
\n \n
\n
\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`

${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 =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+="
'+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 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=" "+e+" ",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),` \n \n `},FamilyTree.icon.user=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),` \n \n \n `},FamilyTree.icon.close=function(e,t,i,r,a){return null==r&&(r=0),null==a&&(a=0),` \n \n `},FamilyTree.icon.undo=function(e,t,i,r,a){return null==r&&(r=0),null==a&&(a=0),` \n \n \n `},FamilyTree.icon.redo=function(e,t,i,r,a){return null==r&&(r=0),null==a&&(a=0),` \n \n \n `},FamilyTree.icon.ft=function(e,t,i,r,a){return` \n \n \n \n \n \n \n \n \n `},FamilyTree.icon.addUser=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),` \n \n \n \n `},FamilyTree.icon.daughter=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),` \n \n \n \n \n \n \n \n `},FamilyTree.icon.son=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),` \n \n \n \n \n \n \n `},FamilyTree.icon.wife=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),` \n \n \n \n \n \n \n \n \n \n \n `},FamilyTree.icon.husband=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),` \n \n \n \n \n \n \n `},FamilyTree.icon.father=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),` \n \n \n \n \n \n \n \n \n \n \n `},FamilyTree.icon.mother=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),` \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `},FamilyTree.icon.teddy=function(e,t,i,r,a){return FamilyTree.isNEU(r)&&(r=0),FamilyTree.isNEU(a)&&(a=0),` \n \n \n \n \n \n \n \n \n \n \n `},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?`
`:`
${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 =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:' {content} ',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="

"+FamilyTree.loc.ppdfCmdTitle+'

 
';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+'
';return n&&(c+='
'+n+"
"),c+=e,o&&(c+=' "),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 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:`
\n
\n \n\n ${n}\n
\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
`,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
\n \n \n
\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  '+a+"",t.classList.add("bft-validation-error"),!1):n&&!FamilyTree.input.validatePassword(t.value)?(i.innerHTML+='  '+n+" ",t.classList.add("bft-validation-error"),!1):o&&!FamilyTree.input.isValidEmail(t.value)?(i.innerHTML+='  '+o+" ",t.classList.add("bft-validation-error"),!1):!(l&&!FamilyTree.input.isValidEmails(t.value))||(i.innerHTML+='  '+l+" ",t.classList.add("bft-validation-error"),!1)},FamilyTree.input.validateAndGetData=function(e){for(var t=e.querySelectorAll("[data-bft-input]"),i=!0,r=0;r e))}else o[s]=l.value}return o},FamilyTree.input.validatePassword=function(e){return e&&(e=e.trim()),!(e.length<5)&&(!(e.length>18)&&-1==e.indexOf(" "))},FamilyTree.input.isValidEmails=function(e){if(e)for(var t=e.split(","),i=0;i ()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(e).toLowerCase())},FamilyTree.prototype.hideTreeMenu=function(e,t){if(this._tree_menu_temp){var i=this._tree_menu_temp;if(this.manager.oldNodes=this.nodes,this.nodes=i.nodes,this.manager.maxX=i.maxX,this.manager.maxY=i.maxY,this.manager.minX=i.minX,this.manager.minY=i.minY,this.manager.roots=i.roots,this.manager.nodes=i.nodes,this.manager.rootList=i.rootList,this.manager.visibleNodeIds=i.visibleNodeIds,this.manager.bordersByRootIdAndLevel=i.bordersByRootIdAndLevel,this.config.roots=i.config.roots,this.config.nodes=i.config.nodes,this._tree_menu_temp=null,e){var r={id:i.id,animFromClickedNode:!1};this._draw(!0,FamilyTree.action.update,r,(function(){t&&t()}))}}},FamilyTree.prototype.showTreeMenu=function(e){this.editUI.hide(),null==e&&console.error("Call addNode without id");var t=this.getNode(e);t||console.error("Cannot get node id: "+e);var i=this.getNode(t.fid),r=this.getNode(t.mid),a=null,n=null,o=[],l=[];i&&(a=this.get(i.id)),r&&(n=this.get(r.id));for(var s=0;s .bft-button{background-color:#039be5;cursor:pointer;width:calc(100%);height:50px;color:#fff;padding-top:5px;padding-left:7px;padding-right:7px;text-align:center;text-transform:uppercase;border:1px solid #3fc0ff;display:inline-block;border-radius:5px}.bft-button.orange{background-color:#f57c00;border:1px solid #ffa03e}.bft-button.yellow{background-color:#ffca28;border:1px solid #ffdf7c}.bft-button.lower{text-transform:unset}.bft-button.transparent{background-color:transparent}.bft-button:hover{background-color:#35afea}.bft-button.orange:hover{background-color:#f79632}.bft-button.yellow:hover{background-color:#ffd452}.bft-button:active{transform:matrix(.98,0,0,.98,0,0)}.bft-button-icon{text-align:initial;cursor:pointer;margin-bottom:15px;color:#039be5}.bft-dark .bft-button-icon:hover{background-color:#2d2d2d}.bft-light .bft-button-icon:hover{background-color:#ececec}.bft-button-icon>img{height:24px;width:24px;vertical-align:middle;padding:7px}.bft-button:focus{outline:0}.bft-button-icon>img{filter:invert(46%) sepia(66%) saturate(2530%) hue-rotate(171deg) brightness(95%) contrast(98%)}.bft-light .bft-button.transparent{color:#039be5}.bft-light .bft-button.transparent:hover{color:#fff}.bft-button-loading{background-color:transparent;cursor:pointer;width:calc(100% - 2px);height:50px;color:#fff;text-align:center;text-transform:uppercase;border:1px solid #027cb7;display:inline-block;display:flex;justify-content:center;align-items:center;display:none}.bft-button-loading .bft-loading-dots div{margin:0 10px}.bft-link-bft-button{position:absolute;right:10px;top:-1px}@media screen and (max-width:1000px){.bft-link-bft-button{right:50px}}[data-bft-input-disabled] .bft-link-bft-button{display:none}[dir=rtl] .bft-link-bft-button{left:10px;right:unset}.bft-img-button{width:48px;height:48px;cursor:pointer;border-radius:50%;background-color:#039be5;background-repeat:no-repeat;background-size:24px 24px;background-position:center center;margin:3px;display:inline-block}.bft-img-button:hover{background-color:#f57c00}.bft-checkbox{display:block;position:relative;padding-left:35px;margin-bottom:12px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.bft-checkbox input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.bft-checkbox-checkmark{position:absolute;top:0;left:0;height:25px;width:25px;border-radius:5px}.bft-dark [data-bft-input-disabled] .bft-checkbox-checkmark,.bft-dark [data-bft-input-disabled].bft-checkbox input:checked~.bft-checkbox-checkmark,.bft-light [data-bft-input-disabled] .bft-checkbox-checkmark,.bft-light [data-bft-input-disabled].bft-checkbox input:checked~.bft-checkbox-checkmark{background-color:#aeaeae!important}[data-bft-input-disabled].bft-checkbox{cursor:default}[dir=rtl] .bft-checkbox-checkmark{right:0}[dir=rtl] .bft-checkbox{padding-left:unset;padding-right:35px}.bft-dark .bft-checkbox-checkmark{background-color:#333;border:1px solid #5b5b5b}.bft-light .bft-checkbox-checkmark{background-color:#fff;border:1px solid #c7c7c7}.bft-dark .bft-checkbox:hover input~.bft-checkbox-checkmark{background-color:#3c3c3c}.bft-light .bft-checkbox:hover input~.bft-checkbox-checkmark{background-color:#f8f9f9}.bft-dark .bft-checkbox input:checked~.bft-checkbox-checkmark{background-color:#039be5}.bft-light .bft-checkbox input:checked~.bft-checkbox-checkmark{background-color:#039be5}.bft-checkbox-checkmark:after{content:"";position:absolute;display:none}.bft-checkbox input:checked~.bft-checkbox-checkmark:after{display:block}.bft-checkbox .bft-checkbox-checkmark:after{left:9px;top:5px;width:5px;height:10px;border:solid #fff;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.bft-filter{user-select:none}.bft-light .bft-filter{color:#757575}.bft-dark .bft-filter{color:#ccc}.bft-filter>div>div{display:inline-block;padding:3px 10px;cursor:pointer}.bft-filter-menu fieldset,.bft-filter>div,.filter-field-selected{border-radius:5px}.bft-filter-menu fieldset{overflow-y:auto;max-height:300px}.bft-filter>div.bft-filter-menu{padding:10px}.bft-light .bft-filter>div.bft-filter-menu,.bft-light .filter-field-selected{background-color:#f8f9f9}.bft-dark .bft-filter>div.bft-filter-menu,.bft-dark .filter-field-selected{background-color:#3c3c3c}.bft-light .bft-filter>div{background-color:#eee}.bft-dark .bft-filter>div{background-color:#333}.bft-form-perspective{transform-style:preserve-3d;perspective:500px;position:absolute;top:32px}.bft-form{box-shadow:rgba(0,0,0,.2) 0 6px 6px 0,rgba(0,0,0,.19) 0 13px 20px 0;padding:14px;transform-origin:top center;user-select:none;display:none;position:relative;max-height:calc(100vh - 100px);overflow-y:auto;border-bottom-left-radius:5px;border-bottom-right-radius:5px}.bft-form-bottom{border-bottom-left-radius:unset;border-bottom-right-radius:unset;border-top-left-radius:5px;border-top-right-radius:5px}.bft-form .separator{margin:0 10px}@media screen and (max-width:1000px){.bft-form-perspective{min-width:100%;max-height:calc(100% - 32px);left:unset!important;right:unset!important;transform:none!important}.bft-form .set{max-height:calc(100vh - 74px)}.bft-form-fieldset{max-width:unset!important}}.bft-light .bft-form .separator{border-bottom:1px solid #c7c7c7}.bft-dark .bft-form .separator{border-bottom:1px solid #5b5b5b}.bft-light .bft-form{background-color:#fff}.bft-dark .bft-form{background-color:#252526}.bft-item{padding:6px 12px 6px 12px;display:flex;flex-direction:row}.bft-light .bft-form .bft-item.selected,.bft-light .bft-form .bft-item:hover{background-color:#0074e8;color:#fff}.bft-dark .bft-form .bft-item.selected,.bft-dark .bft-form .bft-item:hover{background-color:#094771;color:#fff}.bft-item.selected img,.bft-item:hover img{filter:invert(100%)}.bft-item.selected img{visibility:visible!important}.bft-form-fieldset{display:flex;flex-wrap:wrap;margin:0!important}.bft-form-field{flex:1 0 21%;margin:3px;min-width:200px}.bft-form-field-100{flex:1 0 96%;margin:3px;min-width:200px}.bft-input{position:relative}.bft-input>input,.bft-input>select{height:50px;padding:18px 10px 2px 9px;width:100%;box-sizing:border-box;border-style:solid;border-width:1px}.bft-input select{height:50px;padding:20px 5px 4px 5px}[data-bft-input-disabled].bft-input>input,[data-bft-input-disabled].bft-input>select{border-color:transparent!important}.bft-light [data-bft-input-disabled]>input,.bft-light [data-bft-input-disabled]>select{background-color:#fff!important}.bft-dark [data-bft-input-disabled]>input,.bft-dark [data-bft-input-disabled]>select{background-color:#252526!important}[data-bft-input-disabled]>select{appearance:none;padding-left:8px}.bft-input>label{display:inline-block;position:absolute;padding-left:10px;padding-right:10px;color:#acacac;cursor:text;-webkit-transition:all .1s ease-out;-moz-transition:all .1s ease-out;-ms-transition:all .1s ease-out;-o-transition:all .1s ease-out;transition:all .1 ease-out;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:initial;text-align:initial;white-space:nowrap}.bft-input>label{top:12px;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 14px)}.bft-input>label.focused,.bft-input>label.hasval{top:-1px}.bft-input>input,.bft-input>select{outline:0;border-radius:5px}.bft-dark .bft-input>label.focused,.bft-light .bft-input>label.focused{color:#039be5}.bft-dark .bft-input>input,.bft-dark .bft-input>select{color:#ccc;background-color:#333;border-color:#5b5b5b}.bft-light .bft-input>input,.bft-light .bft-input>select{color:#757575;background-color:#fff;border-color:#c7c7c7}.bft-light .bft-input>input:focus,.bft-light .bft-input>select:focus{border-color:#039be5;background-color:#f8f9f9}.bft-dark .bft-input>input:focus,.bft-dark .bft-input>select:focus{border-color:#039be5;background-color:#3c3c3c}.bft-dark .bft-input>input.bft-validation-error,.bft-dark .bft-input>select.bft-validation-error,.bft-light .bft-input>input.bft-validation-error,.bft-light .bft-input>select.bft-validation-error{border-color:#ca2a2a}.bft-dark .bft-validation-error-message,.bft-light .bft-validation-error-message{color:#ca2a2a}.bft-input select.multiple{height:initial}.bft-link{color:#039be5;cursor:pointer;text-decoration:underline}.bft-link:hover{color:#f57c00}.bft-dark ::-webkit-scrollbar,.bft-light ::-webkit-scrollbar{width:15px;height:15px}.bft-dark ::-webkit-scrollbar-corner{background:#1e1e1e}.bft-dark ::-webkit-scrollbar-track{background:#1e1e1e;border-left:1px solid #333;border-top:1px solid #333}.bft-dark ::-webkit-scrollbar-thumb{background:#424242}.bft-dark ::-webkit-scrollbar-thumb:hover{background:#4f4f4f}.bft-dark ::-webkit-scrollbar-thumb:active{background:#5e5e5e}.bft-light ::-webkit-scrollbar-corner{background:#fff}.bft-light ::-webkit-scrollbar-track{background:#fff;border-left:1px solid #ddd;border-top:1px solid #ddd}.bft-light ::-webkit-scrollbar-thumb{background:#c1c1c1}.bft-light ::-webkit-scrollbar-thumb:hover{background:#929292}.bft-light ::-webkit-scrollbar-thumb:active{background:#666}.bft-edit-form{position:fixed;top:0;right:0;height:100%;width:100%;box-shadow:rgba(0,0,0,.2) 0 6px 6px 0,rgba(0,0,0,.19) 0 13px 20px 0;display:flex;flex-direction:column;height:100%;width:400px}@media screen and (max-width:1000px){.bft-edit-form{width:100%}}.bft-dark .bft-edit-form{background-color:#252526}.bft-light .bft-edit-form{background-color:#fff}.bft-edit-form-header{height:200px;text-align:center;border-radius:10px}.export-service .bft-edit-form-header{border-radius:unset}.bft-edit-form-title{color:#fff;margin:0;padding:14px 17px 7px 17px}.bft-edit-form-avatar{border-radius:50%;width:150px;height:150px;position:absolute;top:75px;border:5px solid #fff;left:50%;transform:translateX(-50%);background-color:#cacaca;box-shadow:rgba(0,0,0,.2) 0 6px 6px 0,rgba(0,0,0,.19) 0 13px 20px 0}.bft-edit-form-close{position:absolute;right:14px;top:14px;width:34px;height:34px;cursor:pointer}.bft-edit-form-fields{flex-grow:1;overflow-y:auto;overflow-x:hidden}.bft-edit-form-fields-inner{margin:0 7px 20px 7px}.bft-family-menu{opacity:0;display:inline-block;position:absolute;text-align:left;user-select:none;min-width:270px;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0,rgba(0,0,0,.19) 0 6px 20px 0;font:13px/28px Helvetica,"Segoe UI",Arial,sans-serif;border-radius:10px}.bft-family-menu>div:hover img{filter:invert(100%)}.bft-family-menu [data-item]{text-align:start;padding:7px 10px}.bft-dark .bft-family-menu [data-item]{background-color:#252526;color:#acacac;border-bottom:1px solid #333}.bft-dark .bft-family-menu [data-item]:hover{background-color:#094771!important;color:#fff!important}.bft-dark .bft-family-menu [data-item]:hover svg{filter:brightness(0) invert(1)}.bft-light .bft-family-menu [data-item]{background-color:#fff;color:#333;border-bottom:1px solid #c7c7c7}.bft-light .bft-family-menu [data-item]:hover{background-color:#0074e8!important;color:#fff!important}.bft-light .bft-family-menu [data-item]:hover svg{filter:brightness(0) invert(1)}.bft-family-menu [data-item] svg{vertical-align:middle}.bft-family-menu [data-item]:first-child{border-top-left-radius:7px;border-top-right-radius:7px}.bft-family-menu [data-item]:last-child{border-bottom-width:0;border-bottom-style:none;border-bottom-left-radius:7px;border-bottom-right-radius:7px}.bft-search{position:absolute}@media screen and (max-width:500px){.bft-search{width:calc(100% - 30px);left:15px}}.bft-search .bft-input{margin-bottom:0}.bft-search-input{color:#7a7a7a;width:100%;border:none;outline:0;padding-top:10px;padding-right:47px}.bft-search-image-td{width:43px}.bft-search-text-td{padding-inline-end:7px;line-height:15px;text-align:start}.bft-search table{box-shadow:rgba(0,0,0,.2) 0 4px 8px 0,rgba(0,0,0,.19) 0 6px 20px 0;margin:0 3.5px 0 3.5px;width:calc(100% - 7px);border-radius:7px}.bft-search table tr:first-child td:first-child{border-top-left-radius:7px}.bft-search table tr:first-child td:last-child{border-top-right-radius:7px}[dir=rtl] .bft-search table tr:first-child td:first-child{border-top-left-radius:unset;border-top-right-radius:7px}[dir=rtl] .bft-search table tr:first-child td:last-child{border-top-right-radius:unset;border-top-left-radius:7px}.bft-search table tr:last-child td:first-child{border-bottom-left-radius:7px}.bft-search table tr:last-child td:last-child{border-bottom-right-radius:7px}[dir=rtl] .bft-search table tr:last-child td:first-child{border-bottom-left-radius:unset;border-bottom-right-radius:7px}[dir=rtl] .bft-search table tr:last-child td:last-child{border-bottom-right-radius:unset;border-bottom-left-radius:7px}.bft-dark .bft-search table{background-color:#252526;color:#acacac}.bft-search [data-search-item-id]{cursor:pointer}.bft-search-photo{margin:7px 7px 0 7px;width:32px;height:32px;background-size:cover;background-position:top center;border-radius:50%;display:inline-block;border:1px solid #8c8c8c}.bft-search [data-search-item-id]:hover .bft-link{color:#ffca28}.bft-search [data-search-item-id]:hover .bft-link:hover{color:#f57c00}.bft-dark .bft-search [data-search-item-id] td{border-top:1px solid #333}.bft-dark .bft-search [data-search-item-id]:hover,.bft-dark .bft-search [data-selected=yes]{background-color:#094771;color:#fff}.bft-light .bft-search table{background-color:#fff;color:#333}.bft-light .bft-search [data-search-item-id] td{border-top:1px solid #c7c7c7}.bft-light .bft-search [data-search-item-id]:hover,.bft-light .bft-search [data-selected=yes]{background-color:#0074e8;color:#fff}.bft-search [data-search-item-id]:first-child td{border-top:unset}.bft-ripple-container{position:absolute;top:0;right:0;bottom:0;left:0}.bft-drag-over rect{opacity:.5}.bft-ripple-container span{transform:scale(0);border-radius:100%;position:absolute;opacity:.75;background-color:#fff;animation:bft-ripple 1s}@-moz-keyframes bft-ripple{to{opacity:0;transform:scale(2)}}@-webkit-keyframes bft-ripple{to{opacity:0;transform:scale(2)}}@-o-keyframes bft-ripple{to{opacity:0;transform:scale(2)}}@keyframes bft-ripple{to{opacity:0;transform:scale(2)}}.bft-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.bft-slider:before{position:absolute;content:"";height:16px;width:16px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.4s;transition:.4s}.bft-slider.round{border-radius:24px}.bft-slider.round:before{border-radius:50%}svg text:hover{cursor:default}svg.bft-cursor-grab,svg.bft-cursor-grab text:hover{cursor:grab}svg.bft-cursor-nodrop,svg.bft-cursor-nodrop text:hover{cursor:no-drop}svg.bft-cursor-copy,svg.bft-cursor-copy text:hover{cursor:copy}svg.bft-cursor-move,svg.bft-cursor-move text:hover{cursor:move}#bft-close-btn:focus,#bft-close-btn:hover{color:#000;text-decoration:none;cursor:pointer}#bft-id-select:focus{outline:.5px solid #aeaeae}#bft-sampleDialog #title:hover{cursor:default;background:gray}.bft-light{background-color:#fff;font:13px/28px Helvetica,"Segoe UI",Arial,sans-serif}.bft-dark{background-color:#1e1e1e;font:13px/28px Helvetica,"Segoe UI",Arial,sans-serif}.bft-light .bft-fill{fill:#fff}.bft-dark .bft-fill{fill:#1e1e1e}.bft-dark input,.bft-dark select,.bft-light input,.bft-light select{font:16px Helvetica,"Segoe UI",Arial,sans-serif}.bft-dark h1,.bft-light h1{font-size:30px;line-height:1}.bft-edit-form{position:absolute;border-radius:10px}.export-service .bft-edit-form{border-radius:unset}.bft-dark .bft-edit-form{color:#acacac}.bft-light .bft-edit-form{color:#333}.bft-dark ::-webkit-calendar-picker-indicator{filter:invert(70%)}.bft-light ::-webkit-calendar-picker-indicator{filter:invert(50%)}.bft-edit-form-instruments{margin:42px 10px 0 10px;text-align:center;min-height:70px}.bft-img-button svg{position:relative;top:12px}.bft-light .bft-toolbar-container svg circle,.bft-light .bft-toolbar-container svg line,.bft-light .bft-toolbar-container svg path{stroke:#8c8c8c!important}.bft-dark .bft-toolbar-container svg circle,.bft-dark .bft-toolbar-container svg line,.bft-dark .bft-toolbar-container svg path{stroke:#8c8c8c!important}.bft-dark .bft-toolbar-container svg rect{fill:#252526!important}.bft-dark .bft-toolbar-container [data-tlbr=minus] svg{border-left:1px solid #5b5b5b!important;border-right:1px solid #5b5b5b!important;border-bottom:1px solid #5b5b5b!important}.bft-dark .bft-toolbar-container [data-tlbr=plus] svg{border-left:1px solid #5b5b5b!important;border-right:1px solid #5b5b5b!important;border-top:1px solid #5b5b5b!important}.bft-dark .bft-toolbar-container [data-tlbr]>svg{border:1px solid #5b5b5b!important;background-color:#252526!important}.bft-toolbar-layout{height:123px;padding-top:20px;position:absolute;width:100%;left:"0";bottom:"-145px"}.bft-light .bft-toolbar-layout{border-top:1px solid #c7c7c7;background-color:#f9f9f9}.bft-dark .bft-toolbar-layout{border-top:1px solid #5b5b5b;background-color:#2b2b2b}.bft-dotted-connector path{stroke-dasharray:7}.bft-undo-redo{position:absolute;top:23px;left:23px}@media screen and (max-width:500px){.bft-undo-redo{position:absolute;top:83px;left:23px}}.bft-light .bft-undo-redo path{fill:#cacaca}.bft-dark .bft-undo-redo path{fill:#5b5b5b}.bft-light .bft-undo-redo .bft-ur-clickable path{fill:#9c9c9c}.bft-dark .bft-undo-redo .bft-ur-clickable path{fill:#8c8c8c}.bft-undo-redo .bft-ur-clickable rect{cursor:pointer}.bft-undo-redo>span{position:relative;display:inline-block;user-select:none}.bft-undo-redo .bft-undo-i{left:-6px;top:-6px}.bft-undo-redo .bft-redo-i{right:-6px;bottom:6px}.bft-undo-redo>span>span{color:#fff;position:absolute;display:inline-block;min-width:20px;min-height:20px;border-radius:50%;line-height:20px;text-align:center;padding:1px;user-select:none;cursor:pointer}.bft-light .bft-undo-redo>span>span{background-color:#9c9c9c}.bft-dark .bft-undo-redo>span>span{background-color:#8c8c8c}'},FamilyTree.events.on("render",(function(e,t){if(e.recentRoots||(e.recentRoots=[]),e.config.roots)for(var i=0;i ')})),FamilyTree.events.on("click",(function(e,t){if(e instanceof FamilyTree){var i=e._get(t.node.id);if(i._ft_method)return"addParentNode"==i._ft_method?e[i._ft_method](i._ft_childId,i._ft_type,i._ft_data,null,!0):"addChildAndPartnerNodes"==i._ft_method?e[i._ft_method](i._ft_id,i._ft_childData,i._ft_partnerData,null,!0):"addPartnerAndParentNodes"==i._ft_method?e[i._ft_method](i._ft_id,i._ft_childIds,i._ft_partnerData,null,!0):e[i._ft_method](i._ft_data,null,!0),!1;for(var r=t.event.target;r;){if(r.getAttribute&&(r.hasAttribute("data-ctrl-n-t-menu-id")||r.hasAttribute("data-ctrl-n-t-menu-c"))){var a=r.getAttribute("data-ctrl-n-t-menu-id");return FamilyTree.isNEU(a)?e.hideTreeMenu(!0):e.showTreeMenu(a),t.event.stopPropagation(),t.event.preventDefault(),!1}r=r.parentNode}}})),void 0===FamilyTree&&(FamilyTree={}),FamilyTree.prototype.onField=function(e){return this.on("field",(function(t,i){return e.call(t,i)}))},FamilyTree.prototype.onInit=function(e){return this.on("init",(function(t){return e.call(t)}))},FamilyTree.prototype.onRedraw=function(e){return this.on("redraw",(function(t){return e.call(t)}))},FamilyTree.prototype.onUpdateNode=function(e){return this.on("update",(function(t,i,r){var a={oldData:i,newData:r};return e.call(t,a)}))},FamilyTree.prototype.onUpdated=function(e){return this.on("updated",(function(t){return e.call(t)}))},FamilyTree.prototype.onRemoveNode=function(e){return this.on("remove",(function(t,i,r){var a={id:i,newPidsAndStpidsForIds:r};return e.call(t,a)}))},FamilyTree.prototype.onAddNode=function(e){return this.on("add",(function(t,i){var r={data:i};return e.call(t,r)}))},FamilyTree.prototype.onDrop=function(e){return this.on("drop",(function(t,i,r,a,n){var o={dragId:i,dropId:r,dragNodeElement:a,event:n};return e.call(t,o)}))},FamilyTree.prototype.onDrag=function(e){return this.on("drag",(function(t,i,r,a){var n={dragId:i,event:r,nodeIds:a};return e.call(t,n)}))},FamilyTree.prototype.onExpandCollpaseButtonClick=function(e){return this.on("expcollclick",(function(t,i,r,a){var n={collapsing:i,id:r,ids:a};return e.call(t,n)}))},FamilyTree.prototype.onExportStart=function(e){return this.on("exportstart",(function(t,i){return e.call(t,i)}))},FamilyTree.prototype.onExportEnd=function(e){return this.on("exportend",(function(t,i){return e.call(t,i)}))},FamilyTree.prototype.onNodeClick=function(e){return this.on("click",(function(t,i){return e.call(t,i)}))},FamilyTree.prototype.onNodeDoubleClick=function(e){return this.on("dbclick",(function(t,i){var r={data:i};return e.call(t,r)}))},FamilyTree.prototype.onUpdateNode=function(e){return this.on("update",(function(t,i){return e.call(t,i)}))},FamilyTree.prototype.onNodeTreeMenuShow=function(e){return this.on("node-tree-menu-show",(function(t,i){return e.call(t,i)}))},FamilyTree.prototype.onRemoveNode=null,FamilyTree.prototype.onAddNode=null,FamilyTree.filterUI=function(){},FamilyTree.filterUI.prototype.init=function(e){this.instance=e,this.element=null,this.filterBy=null,this._event_id=FamilyTree._guid()},FamilyTree.filterUI.prototype.addFilterTag=function(e){if(!this.instance.config.filterBy)return!1;if(FamilyTree.isNEU(e))return!1;if(null!==this.filterBy||"object"!=typeof this.instance.config.filterBy||Array.isArray(this.instance.config.filterBy)||(this.filterBy=JSON.parse(JSON.stringify(this.instance.config.filterBy))),null!=this.filterBy)for(var t in this.filterBy){var i=e[t];if(null!=i){var r=this.filterBy[t];if(null!=r){var a=r[i];if(null!=a&&!1===a.checked)return!0}}}return!1},FamilyTree.filterUI.prototype.show=function(e){var t=this.element.querySelector('[data-filter-field="'+e+'"]');t&&t.click()},FamilyTree.filterUI.prototype.hide=function(){var e=this.instance.element.querySelector("[data-filter-close]");e&&e.click()},FamilyTree.filterUI.prototype.update=function(){if(this.instance.config.filterBy){var e={};if("all"==this.instance.config.filterBy)for(var t=FamilyTree.manager.getAllFields(this.instance.config),i=0;i ${s}`};FamilyTree.events.publish("add-filter",[p,u]),f+=u.html}this.element.innerHTML=`
${f}
`,this.element.addEventListener("click",(function(e){if(e.target.hasAttribute("data-filter-close")||e.target.hasAttribute("data-filter-field")){for(var t=e.target.getAttribute("data-filter-field"),i=p.instance.element.querySelectorAll("[data-filter-menu]"),r=0;r \n\n \n `};FamilyTree.events.publish("add-item",[p,l]);var s=l.html;for(var d in p.filterBy[t]){var c=p.filterBy[t][d],m=c.text;null==m&&(m=d),l={name:t,text:m,value:d,checked:c.checked,html:`
\n\n \n
`},FamilyTree.events.publish("add-item",[p,l]),s+=l.html}o=document.createElement("div");var h=FamilyTree.filterUI.textFilterBy;o.innerHTML=`
\n ${h} ${t}: \n ${s}\n
`,o.setAttribute("data-filter-menu",t),o.classList.add("bft-filter-menu"),e.target.parentNode.parentNode.appendChild(o);var f=o.querySelectorAll("input");for(r=0;r 0&&(i.c=FamilyTree.remote._convertToIdArray(e.children)),e.stChildren.length>0&&(i.v=FamilyTree.remote._convertToIdArray(e.stChildren)),null!=e.layout&&0!=e.layout&&(i.l=e.layout),e.isAssistant&&(i.a=1),e.isSplit&&(i.s=e.isSplit),e.isMirror&&(i.im=e.isMirror),e.padding&&(i.q=e.padding),e.lcn&&(i.k=e.lcn),e.stContainerNodes&&(i.b=FamilyTree.remote._convertToIdArray(e.stContainerNodes)),e.isPartner&&(i.i=e.isPartner),e.hasPartners&&(i.g=e.hasPartners),e.partnerSeparation&&(i.e=e.partnerSeparation),t.push(i);for(var r=0;r
Add your custom HTML here