function openShareUrl(n){n.preventDefault();window.open(n.target,"sharer","menubar= no,toolbar=no,resizable=yes,scrollbars=yes,width=648,height=395");return}function getContent(n){for(var i=document.getElementsByTagName("meta"),t=0;t<i.length;t++)if(i[t].getAttribute("property")==n)return i[t].getAttribute("content");return""}function facebookUrlBuilder(n,t,i){var r="";return i&&(r+="&picture="+encodeURIComponent(i)),n&&(r+="&title="+encodeURIComponent(n)),t&&(r+="&description="+encodeURIComponent(t)),r}function linkedinUrlBuilder(n,t,i){var r="";return i&&(r+="&submitted-image-url="+encodeURIComponent(i)),n&&(r+="&title="+encodeURIComponent(n)),t&&(r+="&description="+encodeURIComponent(t)),r}$(document).ready(function(){var t,i,r,u,f,e,n;$(".exploration-models__table").show();$(".exploration-models__table").DataTable({searching:!1,paging:!1,responsive:!0,bInfo:!1});document.body.addEventListener("click",function(n){n.target.className==="exploration-model__sub-menu__parent-page"&&$(n.target).next("ul").toggle()});t=document.getElementsByClassName("article");$(t).each(function(){$("table").each(function(){$("tr:odd").each(function(){$(this).addClass("odd")})})});$(".custom-datatable").DataTable({searching:!1,paging:!1,responsive:!0,bInfo:!1});$(".custom-datatable").show();i=document.getElementsByClassName("stacktable");$(i).each(function(){$(this).stacktable()});$(".article figure img").first().addClass("article__img");r=document.getElementsByClassName("f_header");u=document.getElementsByClassName("d_header");(r.length>0||u.length>0)&&$("#lang-changer").remove();f=navigator.userAgent.match(/iPad/i)!==null;f&&document.getElementById("font-changer").remove();$(".btn-next").on("click",function(){$(".pagination .active").next().trigger("click")});$(".btn-next-mobile").on("click",function(){$(".pagination .active").next().trigger("click")});$(".btn-prev").on("click",function(){$(".pagination .active").prev().trigger("click")});e=function(n){var t=new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window}),i=!n.dispatchEvent(t)};lightbox.option({fadeDuration:0,resizeDuration:0,imageFadeDuration:0,wrapAround:!0,albumLabel:"%1/%2",disableScrolling:!0});$("img.lightbox-img").each(function(){var n=document.createElement("a");$(n).attr("href",this.src);$(n).attr("target","_blank");$(n).attr("data-lightbox","lightbox-img");$(n).attr("data-title",$(this).attr("alt"));$(n).addClass("lightbox-link");$(n).append($(this).clone());$(this).replaceWith(n)});$("body").on("click","#lb-download",function(){$("#lb-download-link").attr("href",$(".lb-image").first().attr("src"));$("#lb-download-link").attr("download","")});$("body").on("click",".lightbox-img",function(){var n,t;$(".lightbox-img").length<2&&($(".lb-prev .fas").hide(),$(".lb-next .fas").hide());n=document.querySelector("#lightboxOverlay");n.click();n.setAttribute("tabIndex","-1");e(n);n.focus();t=setInterval(function(){try{var n=document.querySelector("#lightboxOverlay");n!==null?(clearInterval(t),n.focus()):console.log("Lightbox config still pending...")}catch(i){console.error(i);clearInterval(t)}},100)});n=setInterval(function(){try{var t=document.querySelector("#lightboxOverlay");t!==null?(clearInterval(n),t.removeAttribute("tabIndex")):console.log("Lightbox config still pending...")}catch(i){console.error(i);clearInterval(n)}},100)});$(document).ready(function(){var n=!1;$("button.scroll-top").hide();$(window).scroll(function(){var t=$(window).scrollTop()>200;t&&!n?(n=!0,$("button.scroll-top").show()):n&&!t&&(n=!1,$("button.scroll-top").hide())});$("button.scroll-top").click(function(n){n.preventDefault();window.scrollTo({top:0,behavior:"smooth"})})});$(document).ready(function(){var n=window.navigator.userAgent,t=/MSIE|Trident/.test(n);t&&$(".header .logo img").css({width:"100%",height:"initial",maxWidth:"initial"})});$(document).keydown(function(n){n.keyCode==27&&($("#changeFontSize").length>0&&$("#changeFontSize").collapse("hide"),$("#collapsingNavbar").length>0&&$("#collapsingNavbar").collapse("hide"))});$(document).ready(function(){$(".nav-mobile__container").on("shown.bs.collapse",function(){$("body").css({overflow:"hidden"})});$(".nav-mobile__container").on("hidden.bs.collapse",function(){$("body").css({overflow:"auto"})})});$(window).on("load",function(){$(".pagination .active a.page").removeAttr("href");$(".report__buttons a.disabled").removeAttr("href")});$(document).ready(function(){$("li.sitemap__sublist-item").each(function(){$.trim($(this).text())==""&&$(this).remove()});$("ul.sitemap__sublist").each(function(){$(this).children("li").length==0&&$(this).remove()})});$(document).ready(function(){var n=getContent("og:title"),t=getContent("og:description"),i=getContent("og:image");$(".share_facebook").attr("href","http://www.facebook.com/share.php?u="+encodeURIComponent(location.href)+facebookUrlBuilder(n,t,i));$(".share_linkedin").attr("href","http://www.linkedin.com/shareArticle?mini=true&url="+encodeURIComponent(location.href)+linkedinUrlBuilder(n,t,i))});$(document).ready(function(){var n=$("input[type=checkbox]").parent();n.addClass("checkbox-container");n.append('<span class="checkmark"><\/span>')});$(document).ready(function(){var n=$(".FormChoice__Input--Radio").parent();n.addClass("radio-container");n.append('<span class="checkmark"><\/span>')});$(document).ready(function(){var n={co2:"CO<sub>2<\/sub>",h2o:"H<sub>2<\/sub>O",co3:"CO<sub>3<\/sub>",so2:"SO<sub>2<\/sub>",m2:"m<sup>2<\/sup>",m3:"m<sup>3<\/sup>"},f={co2:"CO₂",h2o:"H₂O",co3:"CO₃",so2:"SO₂",m2:"m²",m3:"m³"},u=document.getElementsByClassName("article"),t,i,r;u.length>0&&$(u).each(function(){var t=this;$.each(n,function(n,i){t.innerHTML.toLowerCase().indexOf(n)>=0&&(t.innerHTML=t.innerHTML.replace(new RegExp(n,"gi"),i))})});t=document.getElementsByClassName("news-article__preview");t.length>0&&$(t).each(function(){var t=this;$.each(n,function(n,i){t.innerHTML.toLowerCase().indexOf(n)>=0&&(t.innerHTML=t.innerHTML.replace(new RegExp(n,"gi"),i))})});i=document.getElementsByClassName("nav-sub");i.length>0&&$(i).each(function(){var t=this;$.each(n,function(n,i){t.innerHTML.toLowerCase().indexOf(n)>=0&&(t.innerHTML=t.innerHTML.replace(new RegExp(n,"gi"),i))})});r=document.getElementsByClassName("breadcrumbs");r.length>0&&$(r).each(function(){var t=this;$.each(n,function(n,i){t.innerHTML.toLowerCase().indexOf(n)>=0&&(t.innerHTML=t.innerHTML.replace(new RegExp(n,"gi"),i))})});$("a").each(function(){var t=this;$.each(n,function(n,i){$(t).attr("href").toLowerCase().indexOf(i.toLowerCase())>=0&&$(t).attr("href",$(t).attr("href").replace(new RegExp(i,"gi"),n));var r=$(t).attr("title");typeof r!=typeof undefined&&r!==!1&&$(t).attr("title").toLowerCase().indexOf(i.toLowerCase())>=0&&$(t).attr("title",$(t).attr("title").replace(new RegExp(i,"gi"),n))});$.each(f,function(n,i){var r=$(t).attr("title");typeof r!=typeof undefined&&r!==!1&&r.toLowerCase().indexOf(n.toLowerCase())>=0&&$(t).attr("title",r.replace(new RegExp(n,"gi"),i))})});$("iframe").each(function(){var t=this;$.each(n,function(n,i){$(t).attr("src").toLowerCase().indexOf(i.toLowerCase())>=0&&$(t).attr("src",$(t).attr("src").replace(new RegExp(i,"gi"),n))})})}),function(n){n.fn.cardtable=function(t){var r=this,i=n.extend({},{headIndex:0},t),u;return u=t&&t.headIndex?t.headIndex:0,r.each(function(){var t=n(this),e,u,f,s,o,h,r,c;t.hasClass("stacktable")||(e=n(this).prop("class"),u=n("<div><\/div>"),typeof i.myClass!="undefined"&&u.addClass(i.myClass),f="",t.addClass("stacktable large-only"),s=t.find("caption").clone(),o=t.find("tr").eq(0),t.find("tbody tr").each(function(){h="";r="";c=n(this).prop("class");n(this).find("td,th").each(function(t){n(this).html()!==""&&(r+='<tr class="'+c+'">',r+=o.find("td,th").eq(t).html()?'<td class="st-key">'+o.find("td,th").eq(t).html()+"<\/td>":'<td class="st-key"><\/td>',r+='<td class="st-val '+n(this).prop("class")+'">'+n(this).html()+"<\/td>",r+="<\/tr>")});f+='<table class=" '+e+' stacktable small-only"><tbody>'+h+r+"<\/tbody><\/table>"}),t.find("tfoot tr td").each(function(t,i){n.trim(n(i).text())!==""&&(f+='<table class="'+e+' stacktable small-only"><tbody><tr><td>'+n(i).html()+"<\/td><\/tr><\/tbody><\/table>")}),u.prepend(s),u.append(n(f)),t.before(u))})};n.fn.stacktable=function(t){var u=this,r=n.extend({},{headIndex:0},t),i;return i=t&&t.headIndex?t.headIndex:0,u.each(function(){var l=n(this).prop("class"),f=n('<table class="'+l+' stacktable small-only"><tbody><\/tbody><\/table>'),e,u,c,s,h,t,o;typeof r.myClass!="undefined"&&f.addClass(r.myClass);e="";u=n(this);u.addClass("stacktable large-only");c=u.find("caption").clone();s=u.find("tr").eq(0);u.find("tr").each(function(r){h="";t="";o=n(this).prop("class");r===0?e+='<tr class=" '+o+' "><th class="st-head-row st-head-row-main" colspan="2">'+n(this).find("th,td").eq(i).html()+"<\/th><\/tr>":(n(this).find("td,th").each(function(r){r===i?h='<tr class="'+o+'"><th class="st-head-row" colspan="2">'+n(this).html()+"<\/th><\/tr>":n(this).html()!==""&&(t+='<tr class="'+o+'">',t+=s.find("td,th").eq(r).html()?'<td class="st-key">'+s.find("td,th").eq(r).html()+"<\/td>":'<td class="st-key"><\/td>',t+='<td class="st-val '+n(this).prop("class")+'">'+n(this).html()+"<\/td>",t+="<\/tr>")}),e+=h+t)});f.prepend(c);f.append(n(e));u.before(f)})};n.fn.stackcolumns=function(t){var r=this,i=n.extend({},{},t);return r.each(function(){var r=n(this),e=r.find("tr").eq(0).find("td,th").length,u,f,t;if(!(e<3)){for(u=n('<table class="stacktable small-only"><\/table>'),typeof i.myClass!="undefined"&&u.addClass(i.myClass),r.addClass("stacktable large-only"),f=n("<tbody><\/tbody>"),t=1;t<e;)r.find("tr").each(function(i){var e=n("<tr><\/tr>"),o,u,r,s;i===0&&e.addClass("st-head-row st-head-row-main");o=n(this).find("td,th").eq(0).clone().addClass("st-key");u=t;n(this).find("*[colspan]").length&&(r=0,n(this).find("td,th").each(function(){var i=n(this).attr("colspan");return i?(i=parseInt(i,10),u-=i-1,r+i>t&&(u+=r+i-t-1),r+=i):r++,r>t?!1:void 0}));s=n(this).find("td,th").eq(u).clone().addClass("st-val").removeAttr("colspan");e.append(o,s);f.append(e)}),++t;u.append(n(f));r.before(u)}})}}(jQuery);!function(n,t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports?module.exports=t(require("jquery")):n.lightbox=t(n.jQuery)}(this,function(n){function t(t){this.album=[];this.currentImageIndex=void 0;this.init();this.options=n.extend({},this.constructor.defaults);this.option(t)}return t.defaults={albumLabel:"Image %1 of %2",alwaysShowNavOnTouchDevices:!1,fadeDuration:600,fitImagesInViewport:!0,imageFadeDuration:600,positionFromTop:50,resizeDuration:700,showImageNumberLabel:!0,wrapAround:!1,disableScrolling:!1,sanitizeTitle:!1},t.prototype.option=function(t){n.extend(this.options,t)},t.prototype.imageCountLabel=function(n,t){return this.options.albumLabel.replace(/%1/g,n).replace(/%2/g,t)},t.prototype.init=function(){var t=this;n(document).ready(function(){t.enable();t.build()})},t.prototype.enable=function(){var t=this;n("body").on("click","a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]",function(i){return t.start(n(i.currentTarget)),!1})},t.prototype.build=function(){if(!(n("#lightbox").length>0)){var t=this;n('<div id="lightboxOverlay" tabindex="-1" class="lightboxOverlay"><\/div><div id="lightbox" tabindex="-1" class="lightbox" role="complementary" aria-label="popup"><div class="lb-outerContainer"><div class="lb-container"><div class="lb-closeContainer"><a class="lb-close"><span class="fa fa-times"><\/span><span class="sr-only">Lukk<\/span><\/a><\/div><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" alt=""/><div class="lb-loader"><a class="lb-cancel"><\/a><\/div><\/div><\/div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"><\/span><a class="lb-prev" aria-label="Previous image" href="#" role="button"><span class="fas fa-chevron-left"><\/span><\/a><a class="lb-next" aria-label="Next image" href="#" role="button"><span class="fas fa-chevron-right"><\/span><\/a><span id="lb-number" class="lb-number"><\/span><\/div><div class="lb-downloadContainer"><a id="lb-download-link"><span id="lb-download" class="fa fa-download lb-download"><\/span><\/a><\/div><\/div><\/div><\/div>').appendTo(n("body"));this.$lightbox=n("#lightbox");this.$overlay=n("#lightboxOverlay");this.$outerContainer=this.$lightbox.find(".lb-outerContainer");this.$container=this.$lightbox.find(".lb-container");this.$image=this.$lightbox.find(".lb-image");this.$nav=this.$lightbox.find(".lb-nav");this.containerPadding={top:parseInt(this.$container.css("padding-top"),10),right:parseInt(this.$container.css("padding-right"),10),bottom:parseInt(this.$container.css("padding-bottom"),10),left:parseInt(this.$container.css("padding-left"),10)};this.imageBorderWidth={top:parseInt(this.$image.css("border-top-width"),10),right:parseInt(this.$image.css("border-right-width"),10),bottom:parseInt(this.$image.css("border-bottom-width"),10),left:parseInt(this.$image.css("border-left-width"),10)};this.$overlay.hide().on("click",function(){return t.end(),!1});this.$lightbox.hide().on("click",function(i){"lightbox"===n(i.target).attr("id")&&t.end()});this.$outerContainer.on("click",function(i){return"lightbox"===n(i.target).attr("id")&&t.end(),!1});this.$lightbox.find(".lb-prev").on("click",function(){return 0===t.currentImageIndex?t.changeImage(t.album.length-1):t.changeImage(t.currentImageIndex-1),!1});this.$lightbox.find(".lb-next").on("click",function(){return t.currentImageIndex===t.album.length-1?t.changeImage(0):t.changeImage(t.currentImageIndex+1),!1});this.$nav.on("mousedown",function(n){3===n.which&&(t.$nav.css("pointer-events","none"),t.$lightbox.one("contextmenu",function(){setTimeout(function(){this.$nav.css("pointer-events","auto")}.bind(t),0)}))});this.$lightbox.find(".lb-loader, .lb-close").on("click",function(){return t.end(),!1})}},t.prototype.start=function(t){function e(n){l.album.push({alt:n.attr("data-alt"),link:n.attr("href"),title:n.attr("data-title")||n.attr("title")})}var l=this,o=n(window),i,f,s,r,u,h,c;if(o.on("resize",n.proxy(this.sizeOverlay,this)),this.sizeOverlay(),this.album=[],f=0,s=t.attr("data-lightbox"),s)for(i=n(t.prop("tagName")+'[data-lightbox="'+s+'"]'),r=0;r<i.length;r=++r)e(n(i[r])),i[r]===t[0]&&(f=r);else if("lightbox"===t.attr("rel"))e(t);else for(i=n(t.prop("tagName")+'[rel="'+t.attr("rel")+'"]'),u=0;u<i.length;u=++u)e(n(i[u])),i[u]===t[0]&&(f=u);h=o.scrollTop()+this.options.positionFromTop;c=o.scrollLeft();this.$lightbox.css({top:h+"px",left:c+"px"}).fadeIn(this.options.fadeDuration);this.options.disableScrolling&&n("body").addClass("lb-disable-scrolling");this.changeImage(f)},t.prototype.changeImage=function(t){var i=this,f=this.album[t].link,e=f.split(".").slice(-1)[0],u=this.$lightbox.find(".lb-image"),r;this.disableKeyboardNav();this.$overlay.fadeIn(this.options.fadeDuration);n(".lb-loader").fadeIn("slow");this.$lightbox.find(".lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption").hide();this.$outerContainer.addClass("animating");r=new Image;r.onload=function(){var h,c,o,s,l,a;u.attr({alt:i.album[t].alt,src:f});n(r);u.width(r.width);u.height(r.height);a=n(window).width();l=n(window).height();s=a-i.containerPadding.left-i.containerPadding.right-i.imageBorderWidth.left-i.imageBorderWidth.right-20;o=l-i.containerPadding.top-i.containerPadding.bottom-i.imageBorderWidth.top-i.imageBorderWidth.bottom-i.options.positionFromTop-70;"svg"===e&&(0!==r.width&&0!==r.height||(u.width(s),u.height(o)));i.options.fitImagesInViewport?(i.options.maxWidth&&i.options.maxWidth<s&&(s=i.options.maxWidth),i.options.maxHeight&&i.options.maxHeight<o&&(o=i.options.maxHeight)):(s=i.options.maxWidth||r.width||s,o=i.options.maxHeight||r.height||o);(r.width>s||r.height>o)&&(r.width/s>r.height/o?(c=s,h=parseInt(r.height/(r.width/c),10),u.width(c),u.height(h)):(h=o,c=parseInt(r.width/(r.height/h),10),u.width(c),u.height(h)));i.sizeContainer(u.width(),u.height())};r.src=this.album[t].link;this.currentImageIndex=t},t.prototype.sizeOverlay=function(){var t=this;setTimeout(function(){t.$overlay.width(n(document).width()).height(n(document).height())},0)},t.prototype.sizeContainer=function(n,t){function f(){i.$lightbox.find(".lb-dataContainer").width(u);i.$lightbox.find(".lb-prevLink").height(r);i.$lightbox.find(".lb-nextLink").height(r);i.showImage()}var i=this,e=this.$outerContainer.outerWidth(),o=this.$outerContainer.outerHeight(),u=n+this.containerPadding.left+this.containerPadding.right+this.imageBorderWidth.left+this.imageBorderWidth.right,r=t+this.containerPadding.top+this.containerPadding.bottom+this.imageBorderWidth.top+this.imageBorderWidth.bottom;e!==u||o!==r?this.$outerContainer.animate({width:u,height:r},this.options.resizeDuration,"swing",function(){f()}):f()},t.prototype.showImage=function(){this.$lightbox.find(".lb-loader").stop(!0).hide();this.$lightbox.find(".lb-image").fadeIn(this.options.imageFadeDuration);this.updateNav();this.updateDetails();this.preloadNeighboringImages();this.enableKeyboardNav()},t.prototype.updateNav=function(){var n=!1;try{document.createEvent("TouchEvent");n=!!this.options.alwaysShowNavOnTouchDevices}catch(n){}this.$lightbox.find(".lb-nav").show();this.album.length>1&&(this.options.wrapAround?(n&&this.$lightbox.find(".lb-prev, .lb-next").css("opacity","1"),this.$lightbox.find(".lb-prev, .lb-next").show()):(this.currentImageIndex>0&&(this.$lightbox.find(".lb-prev").show(),n&&this.$lightbox.find(".lb-prev").css("opacity","1")),this.currentImageIndex<this.album.length-1&&(this.$lightbox.find(".lb-next").show(),n&&this.$lightbox.find(".lb-next").css("opacity","1"))))},t.prototype.updateDetails=function(){var i=this,n,t;void 0!==this.album[this.currentImageIndex].title&&""!==this.album[this.currentImageIndex].title&&(n=this.$lightbox.find(".lb-caption"),this.options.sanitizeTitle?n.text(this.album[this.currentImageIndex].title):n.html(this.album[this.currentImageIndex].title),n.fadeIn("fast"));this.album.length>1&&this.options.showImageNumberLabel?(t=this.imageCountLabel(this.currentImageIndex+1,this.album.length),this.$lightbox.find(".lb-number").text(t).fadeIn("fast")):this.$lightbox.find(".lb-number").hide();this.$outerContainer.removeClass("animating");this.$lightbox.find(".lb-dataContainer").fadeIn(this.options.resizeDuration,function(){return i.sizeOverlay()})},t.prototype.preloadNeighboringImages=function(){this.album.length>this.currentImageIndex+1&&((new Image).src=this.album[this.currentImageIndex+1].link);this.currentImageIndex>0&&((new Image).src=this.album[this.currentImageIndex-1].link)},t.prototype.enableKeyboardNav=function(){this.$lightbox.on("keyup.keyboard",n.proxy(this.keyboardAction,this));this.$overlay.on("keyup.keyboard",n.proxy(this.keyboardAction,this))},t.prototype.disableKeyboardNav=function(){this.$lightbox.off(".keyboard");this.$overlay.off(".keyboard")},t.prototype.keyboardAction=function(n){var t=n.keyCode;27===t?(n.stopPropagation(),this.end()):37===t?0!==this.currentImageIndex?this.changeImage(this.currentImageIndex-1):this.options.wrapAround&&this.album.length>1&&this.changeImage(this.album.length-1):39===t&&(this.currentImageIndex!==this.album.length-1?this.changeImage(this.currentImageIndex+1):this.options.wrapAround&&this.album.length>1&&this.changeImage(0))},t.prototype.end=function(){this.disableKeyboardNav();n(window).off("resize",this.sizeOverlay);this.$lightbox.fadeOut(this.options.fadeDuration);this.$overlay.fadeOut(this.options.fadeDuration);this.options.disableScrolling&&n("body").removeClass("lb-disable-scrolling")},new t});!function(n){var i,r,t,u;n.ui=n.ui||{};n.ui.version="1.12.1";r=0;t=Array.prototype.slice;n.cleanData=(i=n.cleanData,function(t){for(var f,r,u=0;null!=(r=t[u]);u++)try{(f=n._data(r,"events"))&&f.remove&&n(r).triggerHandler("remove")}catch(t){}i(t)});n.widget=function(t,i,r){var f,u,o,s={},e=t.split(".")[0],h=e+"-"+(t=t.split(".")[1]);return r||(r=i,i=n.Widget),n.isArray(r)&&(r=n.extend.apply(null,[{}].concat(r))),n.expr[":"][h.toLowerCase()]=function(t){return!!n.data(t,h)},n[e]=n[e]||{},f=n[e][t],u=n[e][t]=function(n,t){if(!this._createWidget)return new u(n,t);arguments.length&&this._createWidget(n,t)},n.extend(u,f,{version:r.version,_proto:n.extend({},r),_childConstructors:[]}),(o=new i).options=n.widget.extend({},o.options),n.each(r,function(t,r){s[t]=n.isFunction(r)?function(){function n(){return i.prototype[t].apply(this,arguments)}function u(n){return i.prototype[t].apply(this,n)}return function(){var t,i=this._super,f=this._superApply;return this._super=n,this._superApply=u,t=r.apply(this,arguments),this._super=i,this._superApply=f,t}}():r}),u.prototype=n.widget.extend(o,{widgetEventPrefix:f&&o.widgetEventPrefix||t},s,{constructor:u,namespace:e,widgetName:t,widgetFullName:h}),f?(n.each(f._childConstructors,function(t,i){var r=i.prototype;n.widget(r.namespace+"."+r.widgetName,u,i._proto)}),delete f._childConstructors):i._childConstructors.push(u),n.widget.bridge(t,u),u};n.widget.extend=function(i){for(var r,u,e=t.call(arguments,1),f=0,o=e.length;f<o;f++)for(r in e[f])u=e[f][r],e[f].hasOwnProperty(r)&&void 0!==u&&(i[r]=n.isPlainObject(u)?n.isPlainObject(i[r])?n.widget.extend({},i[r],u):n.widget.extend({},u):u);return i};n.widget.bridge=function(i,r){var u=r.prototype.widgetFullName||i;n.fn[i]=function(f){var s="string"==typeof f,o=t.call(arguments,1),e=this;return s?this.length||"instance"!==f?this.each(function(){var t,r=n.data(this,u);return"instance"===f?(e=r,!1):r?n.isFunction(r[f])&&"_"!==f.charAt(0)?(t=r[f].apply(r,o))!==r&&void 0!==t?(e=t&&t.jquery?e.pushStack(t.get()):t,!1):void 0:n.error("no such method '"+f+"' for "+i+" widget instance"):n.error("cannot call methods on "+i+" prior to initialization; attempted to call method '"+f+"'")}):e=void 0:(o.length&&(f=n.widget.extend.apply(null,[f].concat(o))),this.each(function(){var t=n.data(this,u);t?(t.option(f||{}),t._init&&t._init()):n.data(this,u,new r(f,this))})),e}};n.Widget=function(){};n.Widget._childConstructors=[];n.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,i){i=n(i||this.defaultElement||this)[0];this.element=n(i);this.uuid=r++;this.eventNamespace="."+this.widgetName+this.uuid;this.bindings=n();this.hoverable=n();this.focusable=n();this.classesElementLookup={};i!==this&&(n.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(n){n.target===i&&this.destroy()}}),this.document=n(i.style?i.ownerDocument:i.document||i),this.window=n(this.document[0].defaultView||this.document[0].parentWindow));this.options=n.widget.extend({},this.options,this._getCreateOptions(),t);this._create();this.options.disabled&&this._setOptionDisabled(this.options.disabled);this._trigger("create",null,this._getCreateEventData());this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:n.noop,_create:n.noop,_init:n.noop,destroy:function(){var t=this;this._destroy();n.each(this.classesElementLookup,function(n,i){t._removeClass(i,n)});this.element.off(this.eventNamespace).removeData(this.widgetFullName);this.widget().off(this.eventNamespace).removeAttr("aria-disabled");this.bindings.off(this.eventNamespace)},_destroy:n.noop,widget:function(){return this.element},option:function(t,i){var u,r,f,e=t;if(0===arguments.length)return n.widget.extend({},this.options);if("string"==typeof t)if(e={},t=(u=t.split(".")).shift(),u.length){for(r=e[t]=n.widget.extend({},this.options[t]),f=0;f<u.length-1;f++)r[u[f]]=r[u[f]]||{},r=r[u[f]];if(t=u.pop(),1===arguments.length)return void 0===r[t]?null:r[t];r[t]=i}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];e[t]=i}return this._setOptions(e),this},_setOptions:function(n){var t;for(t in n)this._setOption(t,n[t]);return this},_setOption:function(n,t){return"classes"===n&&this._setOptionClasses(t),this.options[n]=t,"disabled"===n&&this._setOptionDisabled(t),this},_setOptionClasses:function(t){var i,u,r;for(i in t)r=this.classesElementLookup[i],t[i]!==this.options.classes[i]&&r&&r.length&&(u=n(r.get()),this._removeClass(r,i),u.addClass(this._classes({element:u,keys:i,classes:t,add:!0})))},_setOptionDisabled:function(n){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!n);n&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(t){function u(u,f){for(var o,e=0;e<u.length;e++)o=r.classesElementLookup[u[e]]||n(),o=t.add?n(n.unique(o.get().concat(t.element.get()))):n(o.not(t.element).get()),r.classesElementLookup[u[e]]=o,i.push(u[e]),f&&t.classes[u[e]]&&i.push(t.classes[u[e]])}var i=[],r=this;return t=n.extend({element:this.element,classes:this.options.classes||{}},t),this._on(t.element,{remove:"_untrackClassesElement"}),t.keys&&u(t.keys.match(/\S+/g)||[],!0),t.extra&&u(t.extra.match(/\S+/g)||[]),i.join(" ")},_untrackClassesElement:function(t){var i=this;n.each(i.classesElementLookup,function(r,u){-1!==n.inArray(t.target,u)&&(i.classesElementLookup[r]=n(u.not(t.target).get()))})},_removeClass:function(n,t,i){return this._toggleClass(n,t,i,!1)},_addClass:function(n,t,i){return this._toggleClass(n,t,i,!0)},_toggleClass:function(n,t,i,r){r="boolean"==typeof r?r:i;var u="string"==typeof n||null===n,f={extra:u?t:i,keys:u?n:t,element:u?this.element:n,add:r};return f.element.toggleClass(this._classes(f),r),this},_on:function(t,i,r){var f,u=this;"boolean"!=typeof t&&(r=i,i=t,t=!1);r?(i=f=n(i),this.bindings=this.bindings.add(i)):(r=i,i=this.element,f=this.widget());n.each(r,function(r,e){function o(){if(t||!0!==u.options.disabled&&!n(this).hasClass("ui-state-disabled"))return("string"==typeof e?u[e]:e).apply(u,arguments)}"string"!=typeof e&&(o.guid=e.guid=e.guid||o.guid||n.guid++);var s=r.match(/^([\w:-]*)\s*(.*)$/),h=s[1]+u.eventNamespace,c=s[2];c?f.on(h,c,o):i.on(h,o)})},_off:function(t,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace;t.off(i).off(i);this.bindings=n(this.bindings.not(t).get());this.focusable=n(this.focusable.not(t).get());this.hoverable=n(this.hoverable.not(t).get())},_delay:function(n,t){var i=this;return setTimeout(function(){return("string"==typeof n?i[n]:n).apply(i,arguments)},t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t);this._on(t,{mouseenter:function(t){this._addClass(n(t.currentTarget),null,"ui-state-hover")},mouseleave:function(t){this._removeClass(n(t.currentTarget),null,"ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t);this._on(t,{focusin:function(t){this._addClass(n(t.currentTarget),null,"ui-state-focus")},focusout:function(t){this._removeClass(n(t.currentTarget),null,"ui-state-focus")}})},_trigger:function(t,i,r){var u,f,e=this.options[t];if(r=r||{},(i=n.Event(i)).type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],f=i.originalEvent)for(u in f)u in i||(i[u]=f[u]);return this.element.trigger(i,r),!(n.isFunction(e)&&!1===e.apply(this.element[0],[i].concat(r))||i.isDefaultPrevented())}};n.each({show:"fadeIn",hide:"fadeOut"},function(t,i){n.Widget.prototype["_"+t]=function(r,u,f){var o,e;"string"==typeof u&&(u={effect:u});e=u?!0===u||"number"==typeof u?i:u.effect||i:t;"number"==typeof(u=u||{})&&(u={duration:u});o=!n.isEmptyObject(u);u.complete=f;u.delay&&r.delay(u.delay);o&&n.effects&&n.effects.effect[e]?r[t](u):e!==t&&r[e]?r[e](u.duration,u.easing,f):r.queue(function(i){n(this)[t]();f&&f.call(r[0]);i()})}});n.widget;!function(){function c(n,t,i){return[parseFloat(n[0])*(h.test(n[0])?t/100:1),parseFloat(n[1])*(h.test(n[1])?i/100:1)]}function r(t,i){return parseInt(n.css(t,i),10)||0}var u,i=Math.max,t=Math.abs,f=/left|center|right/,e=/top|center|bottom/,o=/[\+\-]\d+(\.[\d]+)?%?/,s=/^\w+/,h=/%$/,l=n.fn.position;n.position={scrollbarWidth:function(){if(void 0!==u)return u;var i,r,t=n("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'><\/div><\/div>"),f=t.children()[0];return n("body").append(t),i=f.offsetWidth,t.css("overflow","scroll"),i===(r=f.offsetWidth)&&(r=t[0].clientWidth),t.remove(),u=i-r},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),r=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),u="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth;return{width:"scroll"===r||"auto"===r&&t.height<t.element[0].scrollHeight?n.position.scrollbarWidth():0,height:u?n.position.scrollbarWidth():0}},getWithinInfo:function(t){var i=n(t||window),r=n.isWindow(i[0]),u=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:r,isDocument:u,offset:!r&&!u?n(t).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}};n.fn.position=function(u){if(!u||!u.of)return l.apply(this,arguments);u=n.extend({},u);var w,a,v,p,y,d,h,b,g=n(u.of),tt=n.position.getWithinInfo(u.within),it=n.position.getScrollInfo(tt),k=(u.collision||"flip").split(" "),nt={};return d=9===(b=(h=g)[0]).nodeType?{width:h.width(),height:h.height(),offset:{top:0,left:0}}:n.isWindow(b)?{width:h.width(),height:h.height(),offset:{top:h.scrollTop(),left:h.scrollLeft()}}:b.preventDefault?{width:0,height:0,offset:{top:b.pageY,left:b.pageX}}:{width:h.outerWidth(),height:h.outerHeight(),offset:h.offset()},g[0].preventDefault&&(u.at="left top"),a=d.width,v=d.height,p=d.offset,y=n.extend({},p),n.each(["my","at"],function(){var t,i,n=(u[this]||"").split(" ");1===n.length&&(n=f.test(n[0])?n.concat(["center"]):e.test(n[0])?["center"].concat(n):["center","center"]);n[0]=f.test(n[0])?n[0]:"center";n[1]=e.test(n[1])?n[1]:"center";t=o.exec(n[0]);i=o.exec(n[1]);nt[this]=[t?t[0]:0,i?i[0]:0];u[this]=[s.exec(n[0])[0],s.exec(n[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===u.at[0]?y.left+=a:"center"===u.at[0]&&(y.left+=a/2),"bottom"===u.at[1]?y.top+=v:"center"===u.at[1]&&(y.top+=v/2),w=c(nt.at,a,v),y.left+=w[0],y.top+=w[1],this.each(function(){var l,b,e=n(this),o=e.outerWidth(),s=e.outerHeight(),d=r(this,"marginLeft"),rt=r(this,"marginTop"),ut=o+d+r(this,"marginRight")+it.width,ft=s+rt+r(this,"marginBottom")+it.height,f=n.extend({},y),h=c(nt.my,e.outerWidth(),e.outerHeight());"right"===u.my[0]?f.left-=o:"center"===u.my[0]&&(f.left-=o/2);"bottom"===u.my[1]?f.top-=s:"center"===u.my[1]&&(f.top-=s/2);f.left+=h[0];f.top+=h[1];l={marginLeft:d,marginTop:rt};n.each(["left","top"],function(t,i){n.ui.position[k[t]]&&n.ui.position[k[t]][i](f,{targetWidth:a,targetHeight:v,elemWidth:o,elemHeight:s,collisionPosition:l,collisionWidth:ut,collisionHeight:ft,offset:[w[0]+h[0],w[1]+h[1]],my:u.my,at:u.at,within:tt,elem:e})});u.using&&(b=function(n){var r=p.left-f.left,l=r+a-o,h=p.top-f.top,y=h+v-s,c={target:{element:g,left:p.left,top:p.top,width:a,height:v},element:{element:e,left:f.left,top:f.top,width:o,height:s},horizontal:l<0?"left":0<r?"right":"center",vertical:y<0?"top":0<h?"bottom":"middle"};a<o&&t(r+l)<a&&(c.horizontal="center");v<s&&t(h+y)<v&&(c.vertical="middle");c.important=i(t(r),t(l))>i(t(h),t(y))?"horizontal":"vertical";u.using.call(this,n,c)});e.offset(n.extend(f,{using:b}))})};n.ui.position={fit:{left:function(n,t){var h,e=t.within,u=e.isWindow?e.scrollLeft:e.offset.left,o=e.width,s=n.left-t.collisionPosition.marginLeft,r=u-s,f=s+t.collisionWidth-o-u;t.collisionWidth>o?0<r&&f<=0?(h=n.left+r+t.collisionWidth-o-u,n.left+=r-h):n.left=0<f&&r<=0?u:f<r?u+o-t.collisionWidth:u:0<r?n.left+=r:0<f?n.left-=f:n.left=i(n.left-s,n.left)},top:function(n,t){var h,o=t.within,u=o.isWindow?o.scrollTop:o.offset.top,e=t.within.height,s=n.top-t.collisionPosition.marginTop,r=u-s,f=s+t.collisionHeight-e-u;t.collisionHeight>e?0<r&&f<=0?(h=n.top+r+t.collisionHeight-e-u,n.top+=r-h):n.top=0<f&&r<=0?u:f<r?u+e-t.collisionHeight:u:0<r?n.top+=r:0<f?n.top-=f:n.top=i(n.top-s,n.top)}},flip:{left:function(n,i){var s,h,r=i.within,y=r.offset.left+r.scrollLeft,c=r.width,o=r.isWindow?r.scrollLeft:r.offset.left,l=n.left-i.collisionPosition.marginLeft,a=l-o,v=l+i.collisionWidth-c-o,u="left"===i.my[0]?-i.elemWidth:"right"===i.my[0]?i.elemWidth:0,f="left"===i.at[0]?i.targetWidth:"right"===i.at[0]?-i.targetWidth:0,e=-2*i.offset[0];a<0?((s=n.left+u+f+e+i.collisionWidth-c-y)<0||s<t(a))&&(n.left+=u+f+e):0<v&&(0<(h=n.left-i.collisionPosition.marginLeft+u+f+e-o)||t(h)<v)&&(n.left+=u+f+e)},top:function(n,i){var s,h,r=i.within,y=r.offset.top+r.scrollTop,c=r.height,o=r.isWindow?r.scrollTop:r.offset.top,l=n.top-i.collisionPosition.marginTop,a=l-o,v=l+i.collisionHeight-c-o,u="top"===i.my[1]?-i.elemHeight:"bottom"===i.my[1]?i.elemHeight:0,f="top"===i.at[1]?i.targetHeight:"bottom"===i.at[1]?-i.targetHeight:0,e=-2*i.offset[1];a<0?((h=n.top+u+f+e+i.collisionHeight-c-y)<0||h<t(a))&&(n.top+=u+f+e):0<v&&(0<(s=n.top-i.collisionPosition.marginTop+u+f+e-o)||t(s)<v)&&(n.top+=u+f+e)}},flipfit:{left:function(){n.ui.position.flip.left.apply(this,arguments);n.ui.position.fit.left.apply(this,arguments)},top:function(){n.ui.position.flip.top.apply(this,arguments);n.ui.position.fit.top.apply(this,arguments)}}}}();n.ui.position;n.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38};n.fn.scrollParent=function(t){var i=this.css("position"),u="absolute"===i,f=t?/(auto|scroll|hidden)/:/(auto|scroll)/,r=this.parents().filter(function(){var t=n(this);return(!u||"static"!==t.css("position"))&&f.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&r.length?r:n(this[0].ownerDocument||document)};n.fn.extend({uniqueId:(u=0,function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++u)})}),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&n(this).removeAttr("id")})}})}(jQuery),function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=n(require("jquery")):n(jQuery)}(function(n){var t,i,r,u,f,e,o,s,h,c,l,a,v;return t=function(n){"use strict";function t(t,i){t||(i=i?": "+i:"",n.error("Fancytree assertion failed"+i))}function f(n,t){var i,r,u=window.console?window.console[n]:null;if(u)try{u.apply(window.console,t)}catch(n){for(r="",i=0;i<t.length;i++)r+=t[i];u(r)}}function nt(){var u,i,f,r,o,t=arguments[0]||{},e=1,s=arguments.length;if("object"==typeof t||n.isFunction(t)||(t={}),e===s)throw Error("need at least two args");for(;e<s;e++)if(null!=(u=arguments[e]))for(i in u)if(u.hasOwnProperty(i)){if(f=t[i],t===(r=u[i]))continue;r&&n.isPlainObject(r)?(o=f&&n.isPlainObject(f)?f:{},t[i]=nt(o,r)):void 0!==r&&(t[i]=r)}return t}function tt(n,t,i,r,u){var f,e,o,s,h;return f=t[n],e=r[n],o=t.ext[u],s=function(){return f.apply(t,arguments)},h=function(n){return f.apply(t,n)},function(){var n=t._local,i=t._super,r=t._superApply;try{return t._local=o,t._super=s,t._superApply=h,e.apply(t,arguments)}finally{t._local=n;t._super=i;t._superApply=r}}}function lt(t,i,r,u){for(var f in r)"function"==typeof r[f]?"function"==typeof t[f]?t[f]=tt(f,t,0,r,u):"_"===f.charAt(0)?t.ext[u][f]=tt(f,t,0,r,u):n.error("Could not override tree."+f+". Use prefix '_' to create tree."+u+"._"+f):"options"!==f&&(t.ext[u][f]=r[f])}function r(t,i){return void 0===t?n.Deferred(function(){this.resolve()}).promise():n.Deferred(function(){this.resolveWith(t,i)}).promise()}function y(t,i){return void 0===t?n.Deferred(function(){this.reject()}).promise():n.Deferred(function(){this.rejectWith(t,i)}).promise()}function it(n,t){return function(){n.resolveWith(t)}}function p(t){var i=n.extend({},t.data()),r=i.json;return delete i.fancytree,delete i.uiFancytree,r&&(delete i.json,i=n.extend(i,r)),i}function rt(n){return(""+n).replace(ot,function(n){return b[n]})}function ut(n){return n=n.toLowerCase(),function(t){return 0<=t.title.toLowerCase().indexOf(n)}}function s(r,u){var o,h,f,s;for(this.parent=r,this.tree=r.tree,this.ul=null,this.li=null,this.statusNodeType=null,this._isLoading=!1,this._error=null,this.data={},o=0,h=e.length;o<h;o++)this[f=e[o]]=u[f];for(f in null==this.unselectableIgnore&&null==this.unselectableStatus||(this.unselectable=!0),u.hideCheckbox&&n.error("'hideCheckbox' node option was removed in v2.23.0: use 'checkbox: false'"),u.data&&n.extend(this.data,u.data),u)l[f]||n.isFunction(u[f])||g[f]||(this.data[f]=u[f]);null==this.key?this.tree.options.defaultKey?(this.key=this.tree.options.defaultKey(this),t(this.key,"defaultKey() must return a unique key")):this.key="_"+i._nextNodeKey++:this.key=""+this.key;u.active&&(t(null===this.tree.activeNode,"only one active node allowed"),this.tree.activeNode=this);u.selected&&(this.tree.lastSelectedNode=this);(s=u.children)?s.length?this._setChildren(s):this.children=this.lazy?[]:null:this.children=null;this.tree._callHook("treeRegisterNode",this.tree,!0,this)}function h(t){this.widget=t;this.$div=t.element;this.options=t.options;this.options&&(void 0!==this.options.lazyload&&n.error("The 'lazyload' event is deprecated since 2014-02-25. Use 'lazyLoad' (with uppercase L) instead."),void 0!==this.options.loaderror&&n.error("The 'loaderror' event was renamed since 2014-07-03. Use 'loadError' (with uppercase E) instead."),void 0!==this.options.fx&&n.error("The 'fx' option was replaced by 'toggleEffect' since 2014-11-30."),void 0!==this.options.removeNode&&n.error("The 'removeNode' event was replaced by 'modifyChild' since 2.20 (2016-09-10)."));this.ext={};this.types={};this.columns={};this.data=p(this.$div);this._id=""+(this.options.treeId||n.ui.fancytree._nextId++);this._ns=".fancytree-"+this._id;this.activeNode=null;this.focusNode=null;this._hasFocus=null;this._tempCache={};this._lastMousedownNode=null;this._enableUpdate=!0;this.lastSelectedNode=null;this.systemFocusElement=null;this.lastQuicksearchTerm="";this.lastQuicksearchTime=0;this.viewport=null;this.statusClassPropName="span";this.ariaPropName="li";this.nodeContainerAttrName="li";this.$div.find(">ul.fancytree-container").remove();var r,u={tree:this};this.rootNode=new s(u,{title:"root",key:"root_"+this._id,children:null,expanded:!0});this.rootNode.parent=null;r=n("<ul>",{id:"ft-id-"+this._id,"class":"ui-fancytree fancytree-container fancytree-plain"}).appendTo(this.$div);this.$container=r;this.rootNode.ul=r[0];null==this.options.debugLevel&&(this.options.debugLevel=i.debugLevel)}if(!n.ui||!n.ui.fancytree){for(var o,i=null,ft=new RegExp(/\.|\//),et=/[&<>"'/]/g,ot=/[<>"'/]/g,w="$recursive_request",b={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},st={16:!0,17:!0,18:!0},k={8:"backspace",9:"tab",10:"return",13:"return",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",59:";",61:"=",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},ht={16:"shift",17:"ctrl",18:"alt",91:"meta",93:"meta"},ct={0:"",1:"left",2:"middle",3:"right"},c="active expanded focus folder lazy radiogroup selected unselectable unselectableIgnore".split(" "),d={},a="columns types".split(" "),e="checkbox expanded extraClasses folder icon iconTooltip key lazy partsel radiogroup refKey selected statusNodeType title tooltip type unselectable unselectableIgnore unselectableStatus".split(" "),l={},v={},g={active:!0,children:!0,data:!0,focus:!0},u=0;u<c.length;u++)d[c[u]]=!0;for(u=0;u<e.length;u++)o=e[u],l[o]=!0,o!==o.toLowerCase()&&(v[o.toLowerCase()]=o);return t(n.ui,"Fancytree requires jQuery UI (http://jqueryui.com)"),Date.now||(Date.now=function(){return(new Date).getTime()}),s.prototype={_findDirectChild:function(n){var t,r,i=this.children;if(i)if("string"==typeof n){for(t=0,r=i.length;t<r;t++)if(i[t].key===n)return i[t]}else{if("number"==typeof n)return this.children[n];if(n.parent===this)return n}return null},_setChildren:function(n){t(n&&(!this.children||0===this.children.length),"only init supported");this.children=[];for(var i=0,r=n.length;i<r;i++)this.children.push(new s(this,n[i]));this.tree._callHook("treeStructureChanged",this.tree,"setChildren")},addChildren:function(i,r){var u,e,h,c,o=this.getFirstChild(),l=this.getLastChild(),f=[];for(n.isPlainObject(i)&&(i=[i]),this.children||(this.children=[]),u=0,e=i.length;u<e;u++)f.push(new s(this,i[u]));if(c=f[0],null==r?this.children=this.children.concat(f):(r=this._findDirectChild(r),t(0<=(h=n.inArray(r,this.children)),"insertBefore must be an existing child"),this.children.splice.apply(this.children,[h,0].concat(f))),o&&!r){for(u=0,e=f.length;u<e;u++)f[u].render();o!==this.getFirstChild()&&o.renderStatus();l!==this.getLastChild()&&l.renderStatus()}else(!this.parent||this.parent.ul||this.tr)&&this.render();return 3===this.tree.options.selectMode&&this.fixSelection3FromEndNodes(),this.triggerModifyChild("add",1===f.length?f[0]:null),c},addClass:function(n){return this.toggleClass(n,!0)},addNode:function(n,i){switch(void 0!==i&&"over"!==i||(i="child"),i){case"after":return this.getParent().addChildren(n,this.getNextSibling());case"before":return this.getParent().addChildren(n,this);case"firstChild":var r=this.children?this.children[0]:null;return this.addChildren(n,r);case"child":case"over":return this.addChildren(n)}t(!1,"Invalid mode: "+i)},addPagingNode:function(t,i){var r,u;if(i=i||"child",!1!==t)return t=n.extend({title:this.tree.options.strings.moreData,statusNodeType:"paging",icon:!1},t),this.partload=!0,this.addNode(t,i);for(r=this.children.length-1;0<=r;r--)"paging"===(u=this.children[r]).statusNodeType&&this.removeChild(u);this.partload=!1},appendSibling:function(n){return this.addNode(n,"after")},applyCommand:function(n,t){return this.tree.applyCommand(n,this,t)},applyPatch:function(t){if(null===t)return this.remove(),r(this);var i,u,f={children:!0,expanded:!0,parent:!0};for(i in t)t.hasOwnProperty(i)&&(u=t[i],f[i]||n.isFunction(u)||(l[i]?this[i]=u:this.data[i]=u));return t.hasOwnProperty("children")&&(this.removeChildren(),t.children&&this._setChildren(t.children)),this.isVisible()&&(this.renderTitle(),this.renderStatus()),t.hasOwnProperty("expanded")?this.setExpanded(t.expanded):r(this)},collapseSiblings:function(){return this.tree._callHook("nodeCollapseSiblings",this)},copyTo:function(n,t,i){return n.addNode(this.toDict(!0,i),t)},countChildren:function(n){var t,u,i,r=this.children;if(!r)return 0;if(i=r.length,!1!==n)for(t=0,u=i;t<u;t++)i+=r[t].countChildren();return i},debug:function(){4<=this.tree.options.debugLevel&&(Array.prototype.unshift.call(arguments,this.toString()),f("log",arguments))},discard:function(){return this.warn("FancytreeNode.discard() is deprecated since 2014-02-16. Use .resetLazy() instead."),this.resetLazy()},discardMarkup:function(n){var t=n?"nodeRemoveMarkup":"nodeRemoveChildMarkup";this.tree._callHook(t,this)},error:function(){1<=this.tree.options.debugLevel&&(Array.prototype.unshift.call(arguments,this.toString()),f("error",arguments))},findAll:function(t){t=n.isFunction(t)?t:ut(t);var i=[];return this.visit(function(n){t(n)&&i.push(n)}),i},findFirst:function(t){t=n.isFunction(t)?t:ut(t);var i=null;return this.visit(function(n){if(t(n))return i=n,!1}),i},findRelatedNode:function(n,t){return this.tree.findRelatedNode(this,n,t)},_changeSelectStatusAttrs:function(n){var r=!1,u=this.tree.options,e=i.evalOption("unselectable",this,this,u,!1),f=i.evalOption("unselectableStatus",this,this,u,void 0);switch(e&&null!=f&&(n=f),n){case!1:r=this.selected||this.partsel;this.selected=!1;this.partsel=!1;break;case!0:r=!this.selected||!this.partsel;this.selected=!0;this.partsel=!0;break;case void 0:r=this.selected||!this.partsel;this.selected=!1;this.partsel=!0;break;default:t(!1,"invalid state: "+n)}return r&&this.renderStatus(),r},fixSelection3AfterClick:function(n){var t=this.isSelected();this.visit(function(n){if(n._changeSelectStatusAttrs(t),n.radiogroup)return"skip"});this.fixSelection3FromEndNodes(n)},fixSelection3FromEndNodes:function(n){var r=this.tree.options;t(3===r.selectMode,"expected selectMode 3"),function n(t){var f,l,o,s,u,h,c,a,e=t.children;if(e&&e.length){for(c=!(h=!0),f=0,l=e.length;f<l;f++)s=n(o=e[f]),i.evalOption("unselectableIgnore",o,o,r,!1)||(!1!==s&&(c=!0),!0!==s&&(h=!1));u=!!h||!!c&&void 0}else u=null==(a=i.evalOption("unselectableStatus",t,t,r,void 0))?!!t.selected:!!a;return t.partsel&&!t.selected&&t.lazy&&null==t.children&&(u=void 0),t._changeSelectStatusAttrs(u),u}(this);this.visitParents(function(n){for(var t,f,o,s=n.children,h=!0,c=!1,u=0,e=s.length;u<e;u++)t=s[u],i.evalOption("unselectableIgnore",t,t,r,!1)||(((f=null==(o=i.evalOption("unselectableStatus",t,t,r,void 0))?!!t.selected:!!o)||t.partsel)&&(c=!0),f||(h=!1));f=!!h||!!c&&void 0;n._changeSelectStatusAttrs(f)})},fromDict:function(t){for(var i in t)l[i]?this[i]=t[i]:"data"===i?n.extend(this.data,t.data):n.isFunction(t[i])||g[i]||(this.data[i]=t[i]);t.children&&(this.removeChildren(),this.addChildren(t.children));this.renderTitle()},getChildren:function(){if(void 0!==this.hasChildren())return this.children},getFirstChild:function(){return this.children?this.children[0]:null},getIndex:function(){return n.inArray(this,this.parent.children)},getIndexHier:function(t,i){t=t||".";var r,u=[];return n.each(this.getParentList(!1,!0),function(n,t){r=""+(t.getIndex()+1);i&&(r=("0000000"+r).substr(-i));u.push(r)}),u.join(t)},getKeyPath:function(n){var t=this.tree.options.keyPathSeparator;return t+this.getPath(!n,"key",t)},getLastChild:function(){return this.children?this.children[this.children.length-1]:null},getLevel:function(){for(var t=0,n=this.parent;n;)t++,n=n.parent;return t},getNextSibling:function(){if(this.parent)for(var t=this.parent.children,n=0,i=t.length-1;n<i;n++)if(t[n]===this)return t[n+1];return null},getParent:function(){return this.parent},getParentList:function(n,t){for(var r=[],i=t?this:this.parent;i;)(n||i.parent)&&r.unshift(i),i=i.parent;return r},getPath:function(t,i,r){t=!1!==t;i=i||"title";r=r||"/";var u,f=[],e=n.isFunction(i);return this.visitParents(function(n){n.parent&&(u=e?i(n):n[i],f.unshift(u))},t),f.join(r)},getPrevSibling:function(){if(this.parent)for(var t=this.parent.children,n=1,i=t.length;n<i;n++)if(t[n]===this)return t[n-1];return null},getSelectedNodes:function(n){var t=[];return this.visit(function(i){if(i.selected&&(t.push(i),!0===n))return"skip"}),t},hasChildren:function(){return this.lazy?null==this.children?void 0:0===this.children.length?!1:1===this.children.length&&this.children[0].isStatusNode()?void 0:!0:!(!this.children||!this.children.length)},hasClass:function(n){return 0<=(" "+(this.extraClasses||"")+" ").indexOf(" "+n+" ")},hasFocus:function(){return this.tree.hasFocus()&&this.tree.focusNode===this},info:function(){3<=this.tree.options.debugLevel&&(Array.prototype.unshift.call(arguments,this.toString()),f("info",arguments))},isActive:function(){return this.tree.activeNode===this},isBelowOf:function(n){return this.getIndexHier(".",5)>n.getIndexHier(".",5)},isChildOf:function(n){return this.parent&&this.parent===n},isDescendantOf:function(t){if(!t||t.tree!==this.tree)return!1;for(var i=this.parent;i;){if(i===t)return!0;i===i.parent&&n.error("Recursive parent link: "+i);i=i.parent}return!1},isExpanded:function(){return!!this.expanded},isFirstSibling:function(){var n=this.parent;return!n||n.children[0]===this},isFolder:function(){return!!this.folder},isLastSibling:function(){var n=this.parent;return!n||n.children[n.children.length-1]===this},isLazy:function(){return!!this.lazy},isLoaded:function(){return!this.lazy||void 0!==this.hasChildren()},isLoading:function(){return!!this._isLoading},isRoot:function(){return this.isRootNode()},isPartsel:function(){return!this.selected&&!!this.partsel},isPartload:function(){return!!this.partload},isRootNode:function(){return this.tree.rootNode===this},isSelected:function(){return!!this.selected},isStatusNode:function(){return!!this.statusNodeType},isPagingNode:function(){return"paging"===this.statusNodeType},isTopLevel:function(){return this.tree.rootNode===this.parent},isUndefined:function(){return void 0===this.hasChildren()},isVisible:function(){var n,t,r=this.tree.enableFilter,i=this.getParentList(!1,!1);if(r&&!this.match&&!this.subMatchCount)return!1;for(n=0,t=i.length;n<t;n++)if(!i[n].expanded)return!1;return!0},lazyLoad:function(n){return this.warn("FancytreeNode.lazyLoad() is deprecated since 2014-02-16. Use .load() instead."),this.load(n)},load:function(n){var i,u,f=this,e=this.isExpanded();return t(this.isLazy(),"load() requires a lazy node"),n||this.isUndefined()?(this.isLoaded()&&this.resetLazy(),!1===(u=this.tree._triggerNodeEvent("lazyLoad",this))?r(this):(t("boolean"!=typeof u,"lazyLoad event must return source in data.result"),i=this.tree._callHook("nodeLoadChildren",this,u),e?(this.expanded=!0,i.always(function(){f.render()})):i.always(function(){f.renderStatus()}),i)):r(this)},makeVisible:function(t){for(var e=this,u=[],r=new n.Deferred,f=this.getParentList(!1,!1),o=f.length,s=!(t&&!0===t.noAnimation),h=!(t&&!1===t.scrollIntoView),i=o-1;0<=i;i--)u.push(f[i].setExpanded(!0,t));return n.when.apply(n,u).done(function(){h?e.scrollIntoView(s).done(function(){r.resolve()}):r.resolve()}),r.promise()},moveTo:function(i,r,u){void 0===r||"over"===r?r="child":"firstChild"===r&&(i.children&&i.children.length?(r="before",i=i.children[0]):r="child");var o,s=this.tree,e=this.parent,f="child"===r?i:i.parent;if(this!==i){if(this.parent?f.isDescendantOf(this)&&n.error("Cannot move a node to its own descendant"):n.error("Cannot move system root"),f!==e&&e.triggerModifyChild("remove",this),1===this.parent.children.length){if(this.parent===f)return;this.parent.children=this.parent.lazy?[]:null;this.parent.expanded=!1}else t(0<=(o=n.inArray(this,this.parent.children)),"invalid source parent"),this.parent.children.splice(o,1);if((this.parent=f).hasChildren())switch(r){case"child":f.children.push(this);break;case"before":t(0<=(o=n.inArray(i,f.children)),"invalid target parent");f.children.splice(o,0,this);break;case"after":t(0<=(o=n.inArray(i,f.children)),"invalid target parent");f.children.splice(o+1,0,this);break;default:n.error("Invalid mode "+r)}else f.children=[this];u&&i.visit(u,!0);f===e?f.triggerModifyChild("move",this):f.triggerModifyChild("add",this);s!==i.tree&&(this.warn("Cross-tree moveTo is experimental!"),this.visit(function(n){n.tree=i.tree},!0));s._callHook("treeStructureChanged",s,"moveTo");e.isDescendantOf(f)||e.render();f.isDescendantOf(e)||f===e||f.render()}},navigate:function(t,i){var u,f=n.ui.keyCode;switch(t){case"left":case f.LEFT:if(this.expanded)return this.setExpanded(!1);break;case"right":case f.RIGHT:if(!this.expanded&&(this.children||this.lazy))return this.setExpanded()}if(u=this.findRelatedNode(t)){try{u.makeVisible({scrollIntoView:!1})}catch(t){}return!1===i?(u.setFocus(),r()):u.setActive()}return this.warn("Could not find related node '"+t+"'."),r()},remove:function(){return this.parent.removeChild(this)},removeChild:function(n){return this.tree._callHook("nodeRemoveChild",this,n)},removeChildren:function(){return this.tree._callHook("nodeRemoveChildren",this)},removeClass:function(n){return this.toggleClass(n,!1)},render:function(n,t){return this.tree._callHook("nodeRender",this,n,t)},renderTitle:function(){return this.tree._callHook("nodeRenderTitle",this)},renderStatus:function(){return this.tree._callHook("nodeRenderStatus",this)},replaceWith:function(i){var e,r=this.parent,o=n.inArray(this,r.children),f=this;return t(this.isPagingNode(),"replaceWith() currently requires a paging status node"),(e=this.tree._callHook("nodeLoadChildren",this,i)).done(function(){var n=f.children;for(u=0;u<n.length;u++)n[u].parent=r;r.children.splice.apply(r.children,[o+1,0].concat(n));f.children=null;f.remove();r.render()}).fail(function(){f.setExpanded()}),e},resetLazy:function(){this.removeChildren();this.expanded=!1;this.lazy=!0;this.children=void 0;this.renderStatus()},scheduleAction:function(t,i){this.tree.timer&&(clearTimeout(this.tree.timer),this.tree.debug("clearTimeout(%o)",this.tree.timer));this.tree.timer=null;var r=this;switch(t){case"cancel":break;case"expand":this.tree.timer=setTimeout(function(){r.tree.debug("setTimeout: trigger expand");r.setExpanded(!0)},i);break;case"activate":this.tree.timer=setTimeout(function(){r.tree.debug("setTimeout: trigger activate");r.setActive(!0)},i);break;default:n.error("Invalid mode "+t)}},scrollIntoView:function(i,u){if(void 0!==u&&(k=u).tree&&void 0!==k.statusNodeType)throw Error("scrollIntoView() with 'topNode' option is deprecated since 2014-05-08. Use 'options.topNode' instead.");var k,o=n.extend({effects:!0===i?{duration:200,queue:!1}:i,scrollOfs:this.tree.options.scrollOfs,scrollParent:this.tree.options.scrollParent,topNode:null},u),f=o.scrollParent,c=this.tree.$container,d=c.css("overflow-y");f?f.jquery||(f=n(f)):f=this.tree.tbody?c.scrollParent():"scroll"===d||"auto"===d?c:c.scrollParent();f[0]!==document&&f[0]!==document.body||(this.debug("scrollIntoView(): normalizing scrollParent to 'window':",f[0]),f=n(window));var l,h,y,a=new n.Deferred,tt=this,g=n(this.span).height(),p=o.scrollOfs.top||0,nt=o.scrollOfs.bottom||0,w=f.height(),v=f.scrollTop(),b=f,it=f[0]===window,e=o.topNode||null,s=null;return this.isVisible()?(it?(h=n(this.span).offset().top,l=e&&e.span?n(e.span).offset().top:0,b=n("html,body")):(t(f[0]!==document&&f[0]!==document.body,"scrollParent should be a simple element or `window`, not document or body."),y=f.offset().top,h=n(this.span).offset().top-y+v,l=e?n(e.span).offset().top-y+v:0,w-=Math.max(0,f.innerHeight()-f[0].clientHeight)),h<v+p?s=h-p:v+w-nt<h+g&&(s=h+g-w+nt,e&&(t(e.isRootNode()||e.isVisible(),"topNode must be visible"),l<s&&(s=l-p))),null===s?a.resolveWith(this):o.effects?(o.effects.complete=function(){a.resolveWith(tt)},b.stop(!0).animate({scrollTop:s},o.effects)):(b[0].scrollTop=s,a.resolveWith(this)),a.promise()):(this.warn("scrollIntoView(): node is invisible."),r())},setActive:function(n,t){return this.tree._callHook("nodeSetActive",this,n,t)},setExpanded:function(n,t){return this.tree._callHook("nodeSetExpanded",this,n,t)},setFocus:function(n){return this.tree._callHook("nodeSetFocus",this,n)},setSelected:function(n,t){return this.tree._callHook("nodeSetSelected",this,n,t)},setStatus:function(n,t,i){return this.tree._callHook("nodeSetStatus",this,n,t,i)},setTitle:function(n){this.title=n;this.renderTitle();this.triggerModify("rename")},sortChildren:function(n,t){var i,u,r=this.children;if(r){if(n=n||function(n,t){var i=n.title.toLowerCase(),r=t.title.toLowerCase();return i===r?0:r<i?1:-1},r.sort(n),t)for(i=0,u=r.length;i<u;i++)r[i].children&&r[i].sortChildren(n,"$norender$");"$norender$"!==t&&this.render();this.triggerModifyChild("sort")}},toDict:function(t,i){var u,s,h,f,r={},o=this;if(n.each(e,function(n,t){(o[t]||!1===o[t])&&(r[t]=o[t])}),n.isEmptyObject(this.data)||(r.data=n.extend({},this.data),n.isEmptyObject(r.data)&&delete r.data),i){if(!1===(f=i(r,o)))return!1;"skip"===f&&(t=!1)}if(t&&this.hasChildren())for(r.children=[],u=0,s=this.children.length;u<s;u++)(h=this.children[u]).isStatusNode()||!1!==(f=h.toDict(!0,i))&&r.children.push(f);return r},toggleClass:function(t,i){var u,f,s=t.match(/\S+/g)||[],h=0,e=!1,o=this[this.tree.statusClassPropName],r=" "+(this.extraClasses||"")+" ";for(o&&n(o).toggleClass(t,i);u=s[h++];)if(f=0<=r.indexOf(" "+u+" "),i=void 0===i?!f:!!i)f||(r+=u+" ",e=!0);else for(;-1<r.indexOf(" "+u+" ");)r=r.replace(" "+u+" "," ");return this.extraClasses=n.trim(r),e},toggleExpanded:function(){return this.tree._callHook("nodeToggleExpanded",this)},toggleSelected:function(){return this.tree._callHook("nodeToggleSelected",this)},toString:function(){return"FancytreeNode@"+this.key+"[title='"+this.title+"']"},triggerModifyChild:function(t,i,r){var u,f=this.tree.options.modifyChild;f&&(i&&i.parent!==this&&n.error("childNode "+i+" is not a child of "+this),u={node:this,tree:this.tree,operation:t,childNode:i||null},r&&n.extend(u,r),f({type:"modifyChild"},u))},triggerModify:function(n,t){this.parent.triggerModifyChild(n,this,t)},visit:function(n,t){var r,f,i=!0,u=this.children;if(!0===t&&(!1===(i=n(this))||"skip"===i))return i;if(u)for(r=0,f=u.length;r<f&&!1!==(i=u[r].visit(n,!0));r++);return i},visitAndLoad:function(t,i,u){var o,f,s,e=this;return!t||!0!==i||!1!==(f=t(e))&&"skip"!==f?e.children||e.lazy?(o=new n.Deferred,s=[],e.load().done(function(){for(var i=0,r=e.children.length;i<r;i++){if(!1===(f=e.children[i].visitAndLoad(t,!0,!0))){o.reject();break}"skip"!==f&&s.push(f)}n.when.apply(this,s).then(function(){o.resolve()})}),o.promise()):r():u?f:r()},visitParents:function(n,t){if(t&&!1===n(this))return!1;for(var i=this.parent;i;){if(!1===n(i))return!1;i=i.parent}return!0},visitSiblings:function(n,t){for(var r,f=this.parent.children,i=0,u=f.length;i<u;i++)if(r=f[i],(t||r!==this)&&!1===n(r))return!1;return!0},warn:function(){2<=this.tree.options.debugLevel&&(Array.prototype.unshift.call(arguments,this.toString()),f("warn",arguments))}},h.prototype={_makeHookContext:function(t,i,r){var u,f;return void 0!==t.node?(i&&t.originalEvent!==i&&n.error("invalid args"),u=t):t.tree?u={node:t,tree:f=t.tree,widget:f.widget,options:f.widget.options,originalEvent:i,typeInfo:f.types[t.type]||{}}:t.widget?u={node:null,tree:t,widget:t.widget,options:t.widget.options,originalEvent:i}:n.error("invalid args"),r&&n.extend(u,r),u},_callHook:function(t,i){var f=this._makeHookContext(i),r=this[t],u=Array.prototype.slice.call(arguments,2);return n.isFunction(r)||n.error("_callHook('"+t+"') is not a function"),u.unshift(f),r.apply(this,u)},_setExpiringValue:function(n,t,i){this._tempCache[n]={value:t,expire:Date.now()+(+i||50)}},_getExpiringValue:function(n){var t=this._tempCache[n];return t&&t.expire>Date.now()?t.value:(delete this._tempCache[n],null)},_usesExtension:function(t){return 0<=n.inArray(t,this.options.extensions)},_requireExtension:function(i,r,u,f){null!=u&&(u=!!u);var e=this._local.name,s=this.options.extensions,c=n.inArray(i,s)<n.inArray(e,s),o=r&&null==this.ext[i],h=!o&&null!=u&&u!==c;return t(e&&e!==i,"invalid or same name '"+e+"' (require yourself?)"),!o&&!h||(f||(o||r?(f="'"+e+"' extension requires '"+i+"'",h&&(f+=" to be registered "+(u?"before":"after")+" itself")):f="If used together, `"+i+"` must be registered "+(u?"before":"after")+" `"+e+"`"),n.error(f),!1)},activateKey:function(n,t){var i=this.getNodeByKey(n);return i?i.setActive(!0,t):this.activeNode&&this.activeNode.setActive(!1,t),i},addPagingNode:function(n,t){return this.rootNode.addPagingNode(n,t)},applyCommand:function(t,i){var r;switch(i=i||this.getActiveNode(),t){case"moveUp":(r=i.getPrevSibling())&&(i.moveTo(r,"before"),i.setActive());break;case"moveDown":(r=i.getNextSibling())&&(i.moveTo(r,"after"),i.setActive());break;case"indent":(r=i.getPrevSibling())&&(i.moveTo(r,"child"),r.setExpanded(),i.setActive());break;case"outdent":i.isTopLevel()||(i.moveTo(i.getParent(),"after"),i.setActive());break;case"remove":r=i.getPrevSibling()||i.getParent();i.remove();r&&r.setActive();break;case"addChild":i.editCreateNode("child","");break;case"addSibling":i.editCreateNode("after","");break;case"rename":i.editStart();break;case"down":case"first":case"last":case"left":case"parent":case"right":case"up":return i.navigate(t);default:n.error("Unhandled command: '"+t+"'")}},applyPatch:function(i){for(var f,e,u,s,o,c=i.length,h=[],r=0;r<c;r++)t(2===(e=i[r]).length,"patchList must be an array of length-2-arrays"),u=e[0],s=e[1],(o=null===u?this.rootNode:this.getNodeByKey(u))?(f=new n.Deferred,h.push(f),o.applyPatch(s).always(it(f,o))):this.warn("could not find node with key '"+u+"'");return n.when.apply(n,h).promise()},clear:function(){this._callHook("treeClear",this)},count:function(){return this.rootNode.countChildren()},debug:function(){4<=this.options.debugLevel&&(Array.prototype.unshift.call(arguments,this.toString()),f("log",arguments))},destroy:function(){this.widget.destroy()},enable:function(n){!1===n?this.widget.disable():this.widget.enable()},enableUpdate:function(n){return n=!1!==n,!!this._enableUpdate==!!n?n:((this._enableUpdate=n)?(this.debug("enableUpdate(true): redraw "),this._callHook("treeStructureChanged",this,"enableUpdate"),this.render()):this.debug("enableUpdate(false)..."),!n)},error:function(){1<=this.options.debugLevel&&(Array.prototype.unshift.call(arguments,this.toString()),f("error",arguments))},expandAll:function(n,t){var i=this.enableUpdate(!1);n=!1!==n;this.visit(function(i){!1!==i.hasChildren()&&i.isExpanded()!==n&&i.setExpanded(n,t)});this.enableUpdate(i)},findAll:function(n){return this.rootNode.findAll(n)},findFirst:function(n){return this.rootNode.findFirst(n)},findNextNode:function(n,t){function f(r){if(n(r)&&(i=r),i||r===t)return!1}var u,i=null,r=this.getFirstChild();return n="string"==typeof n?(u=new RegExp("^"+n,"i"),function(n){return u.test(n.title)}):n,t=t||r,this.visitRows(f,{start:t,includeSelf:!1}),i||t===r||this.visitRows(f,{start:r,includeSelf:!0}),i},findRelatedNode:function(t,i){var r=null,u=n.ui.keyCode;switch(i){case"parent":case u.BACKSPACE:t.parent&&t.parent.parent&&(r=t.parent);break;case"first":case u.HOME:this.visit(function(n){if(n.isVisible())return r=n,!1});break;case"last":case u.END:this.visit(function(n){n.isVisible()&&(r=n)});break;case"left":case u.LEFT:t.expanded?t.setExpanded(!1):t.parent&&t.parent.parent&&(r=t.parent);break;case"right":case u.RIGHT:t.expanded||!t.children&&!t.lazy?t.children&&t.children.length&&(r=t.children[0]):(t.setExpanded(),r=t);break;case"up":case u.UP:this.visitRows(function(n){return r=n,!1},{start:t,reverse:!0,includeSelf:!1});break;case"down":case u.DOWN:this.visitRows(function(n){return r=n,!1},{start:t,includeSelf:!1});break;default:this.tree.warn("Unknown relation '"+i+"'.")}return r},generateFormElements:function(t,i,r){function o(t){u.append(n("<input>",{type:"checkbox",name:s,value:t.key,checked:!0}))}r=r||{};var f,s="string"==typeof t?t:"ft_"+this._id+"[]",h="string"==typeof i?i:"ft_"+this._id+"_active",e="fancytree_result_"+this._id,u=n("#"+e),c=3===this.options.selectMode&&!1!==r.stopOnParents;u.length?u.empty():u=n("<div>",{id:e}).hide().insertAfter(this.$container);!1!==i&&this.activeNode&&u.append(n("<input>",{type:"radio",name:h,value:this.activeNode.key,checked:!0}));r.filter?this.visit(function(n){var t=r.filter(n);if("skip"===t)return t;!1!==t&&o(n)}):!1!==t&&(f=this.getSelectedNodes(c),n.each(f,function(n,t){o(t)}))},getActiveNode:function(){return this.activeNode},getFirstChild:function(){return this.rootNode.getFirstChild()},getFocusNode:function(){return this.focusNode},getOption:function(n){return this.widget.option(n)},getNodeByKey:function(n,t){var i,r;return!t&&(i=document.getElementById(this.options.idPrefix+n))?i.ftnode?i.ftnode:null:(t=t||this.rootNode,r=null,t.visit(function(t){if(t.key===n)return r=t,!1},!0),r)},getRootNode:function(){return this.rootNode},getSelectedNodes:function(n){return this.rootNode.getSelectedNodes(n)},hasFocus:function(){return!!this._hasFocus},info:function(){3<=this.options.debugLevel&&(Array.prototype.unshift.call(arguments,this.toString()),f("info",arguments))},isLoading:function(){var n=!1;return this.rootNode.visit(function(t){if(t._isLoading||t._requestId)return!(n=!0)},!0),n},loadKeyPath:function(t,i){var r,u,f,c=this,e=new n.Deferred,l=this.getRootNode(),s=this.options.keyPathSeparator,h=[],o=n.extend({},i);for("function"==typeof i?r=i:i&&i.callback&&(r=i.callback),o.callback=function(n,t,i){r&&r.call(n,t,i);e.notifyWith(n,[{node:t,status:i}])},null==o.matchKey&&(o.matchKey=function(n,t){return n.key===t}),n.isArray(t)||(t=[t]),u=0;u<t.length;u++)(f=t[u]).charAt(0)===s&&(f=f.substr(1)),h.push(f.split(s));return setTimeout(function(){c._loadKeyPathImpl(e,o,l,h).done(function(){e.resolve()})},0),e.promise()},_loadKeyPathImpl:function(t,i,r,u){function w(n,t){var r,f,u=n.children;if(u)for(r=0,f=u.length;r<f;r++)if(i.matchKey(u[r],t))return u[r];return null}function b(n,t,r){i.callback(s,t,"loading");t.load().done(function(){s._loadKeyPathImpl.call(s,n,i,t,r).always(it(n,s))}).fail(function(){s.warn("loadKeyPath: error loading lazy "+t);i.callback(s,f,"error");n.rejectWith(s)})}for(var a,e,f,v,y,l,h,p,s=this,o={},c=0;c<u.length;c++)for(h=u[c],l=r;h.length;){if(e=h.shift(),!(f=w(l,e))){this.warn("loadKeyPath: key not found: "+e+" (parent: "+l+")");i.callback(this,e,"error");break}if(0===h.length){i.callback(this,f,"ok");break}if(f.lazy&&void 0===f.hasChildren()){i.callback(this,f,"loaded");o[e=f.key]?o[e].pathSegList.push(h):o[e]={parent:f,pathSegList:[h]};break}i.callback(this,f,"loaded");l=f}for(v in a=[],o)o.hasOwnProperty(v)&&(y=o[v],p=new n.Deferred,a.push(p),b(p,y.parent,y.pathSegList));return n.when.apply(n,a).promise()},reactivate:function(n){var i,t=this.activeNode;return t?(this.activeNode=null,i=t.setActive(!0,{noFocus:!0}),n&&t.setFocus(),i):r()},reload:function(n){return this._callHook("treeClear",this),this._callHook("treeLoad",this,n)},render:function(n,t){return this.rootNode.render(n,t)},selectAll:function(n){this.visit(function(t){t.setSelected(n)})},setFocus:function(n){return this._callHook("treeSetFocus",this,n)},setOption:function(n,t){return this.widget.option(n,t)},debugTime:function(n){4<=this.options.debugLevel&&window.console.time(this+" - "+n)},debugTimeEnd:function(n){4<=this.options.debugLevel&&window.console.timeEnd(this+" - "+n)},toDict:function(n,t){var i=this.rootNode.toDict(!0,t);return n?i:i.children},toString:function(){return"Fancytree@"+this._id},_triggerNodeEvent:function(n,t,i,r){var u=this._makeHookContext(t,i,r),f=this.widget._trigger(n,i,u);return!1!==f&&void 0!==u.result?u.result:f},_triggerTreeEvent:function(n,t,i){var r=this._makeHookContext(this,t,i),u=this.widget._trigger(n,t,r);return!1!==u&&void 0!==r.result?r.result:u},visit:function(n){return this.rootNode.visit(n,!1)},visitRows:function(n,t){if(!this.rootNode.hasChildren())return!1;if(t&&t.reverse)return delete t.reverse,this._visitRowsUp(n,t);for(var u,f,o=0,s=!1===(t=t||{}).includeSelf,e=!!t.includeHidden,h=!e&&this.enableFilter,i=t.start||this.rootNode.children[0],r=i.parent;r;){for(u=(f=r.children).indexOf(i)+o;u<f.length;u++)if((i=f[u],!h||i.match||i.subMatchCount)&&(!s&&!1===n(i)||(s=!1,i.children&&i.children.length&&(e||i.expanded)&&!1===i.visit(function(t){return!h||t.match||t.subMatchCount?!1!==n(t)&&(e||!t.children||t.expanded?void 0:"skip"):"skip"},!1))))return!1;r=(i=r).parent;o=1}return!0},_visitRowsUp:function(n,t){for(var r,f,u,e=!!t.includeHidden,i=t.start||this.rootNode.children[0];;){if((r=(u=i.parent).children)[0]===i){if(!(i=u).parent)break;r=u.children}else for(f=r.indexOf(i),i=r[f-1];(e||i.expanded)&&i.children&&i.children.length;)i=(r=(u=i).children)[r.length-1];if((e||i.isVisible())&&!1===n(i))return!1}},warn:function(){2<=this.options.debugLevel&&(Array.prototype.unshift.call(arguments,this.toString()),f("warn",arguments))}},n.extend(h.prototype,{nodeClick:function(n){var t,i,u=n.targetType,r=n.node;if("expander"===u){if(r.isLoading())return void r.debug("Got 2nd click while loading: ignored");this._callHook("nodeToggleExpanded",n)}else if("checkbox"===u)this._callHook("nodeToggleSelected",n),n.options.focusOnSelect&&this._callHook("nodeSetFocus",n,!0);else{if(t=!(i=!1),r.folder)switch(n.options.clickFolderMode){case 2:t=!(i=!0);break;case 3:i=t=!0}t&&(this.nodeSetFocus(n),this._callHook("nodeSetActive",n,!0));i&&this._callHook("nodeToggleExpanded",n)}},nodeCollapseSiblings:function(n,t){var r,i,f,u=n.node;if(u.parent)for(i=0,f=(r=u.parent.children).length;i<f;i++)r[i]!==u&&r[i].expanded&&this._callHook("nodeSetExpanded",r[i],!1,t)},nodeDblclick:function(n){"title"===n.targetType&&4===n.options.clickFolderMode&&this._callHook("nodeToggleExpanded",n);"title"===n.targetType&&n.originalEvent.preventDefault()},nodeKeydown:function(t){var s,h,c,u=t.originalEvent,f=t.node,r=t.tree,e=t.options,o=u.which,a=u.key||String.fromCharCode(o),v=!!(u.altKey||u.ctrlKey||u.metaKey),y=!ht[o]&&!k[o]&&!v,p=n(u.target),l=!0,w=!(u.ctrlKey||!e.autoActivate);if(f||(c=this.getActiveNode()||this.getFirstChild())&&(c.setFocus(),(f=t.node=this.focusNode).debug("Keydown force focus on active node")),e.quicksearch&&y&&!p.is(":input:enabled"))return 500<(h=Date.now())-r.lastQuicksearchTime&&(r.lastQuicksearchTerm=""),r.lastQuicksearchTime=h,r.lastQuicksearchTerm+=a,(s=r.findNextNode(r.lastQuicksearchTerm,r.getActiveNode()))&&s.setActive(),void u.preventDefault();switch(i.eventToString(u)){case"+":case"=":r.nodeSetExpanded(t,!0);break;case"-":r.nodeSetExpanded(t,!1);break;case"space":f.isPagingNode()?r._triggerNodeEvent("clickPaging",t,u):i.evalOption("checkbox",f,f,e,!1)?r.nodeToggleSelected(t):r.nodeSetActive(t,!0);break;case"return":r.nodeSetActive(t,!0);break;case"home":case"end":case"backspace":case"left":case"right":case"up":case"down":f.navigate(u.which,w);break;default:l=!1}l&&u.preventDefault()},nodeLoadChildren:function(i,r){var o,e,h,s,u=i.tree,f=i.node,c=Date.now();return n.isFunction(r)&&(r=r.call(u,{type:"source"},i),t(!n.isFunction(r),"source callback must not return another function")),r.url&&(f._requestId&&f.warn("Recursive load request #"+c+" while #"+f._requestId+" is pending."),o=n.extend({},i.options.ajax,r),f._requestId=c,h=o.debugDelay?(e=o.debugDelay,delete o.debugDelay,n.isArray(e)&&(e=e[0]+Math.random()*(e[1]-e[0])),f.warn("nodeLoadChildren waiting debugDelay "+Math.round(e)+" ms ..."),n.Deferred(function(t){setTimeout(function(){n.ajax(o).done(function(){t.resolveWith(this,arguments)}).fail(function(){t.rejectWith(this,arguments)})},e)})):n.ajax(o),r=new n.Deferred,h.done(function(t){var o,e;if("json"!==this.dataType&&"jsonp"!==this.dataType||"string"!=typeof t||n.error("Ajax request returned a string (did you get the JSON dataType wrong?)."),f._requestId&&f._requestId>c)r.rejectWith(this,[w]);else{if(i.options.postProcess){try{e=u._triggerNodeEvent("postProcess",i,i.originalEvent,{response:t,error:null,dataType:this.dataType})}catch(t){e={error:t,message:""+t,details:"postProcess failed"}}if(e.error)return o=n.isPlainObject(e.error)?e.error:{message:e.error},o=u._makeHookContext(f,null,o),void r.rejectWith(this,[o]);(n.isArray(e)||n.isPlainObject(e)&&n.isArray(e.children))&&(t=e)}else t&&t.hasOwnProperty("d")&&i.options.enableAspx&&(t="string"==typeof t.d?n.parseJSON(t.d):t.d);r.resolveWith(this,[t])}}).fail(function(n,t,i){var e=u._makeHookContext(f,null,{error:n,args:Array.prototype.slice.call(arguments),message:i,details:n.status+": "+i});r.rejectWith(this,[e])})),n.isFunction(r.then)&&n.isFunction(r.catch)&&(h=r,r=new n.Deferred,h.then(function(n){r.resolve(n)},function(n){r.reject(n)})),n.isFunction(r.promise)?(u.nodeSetStatus(i,"loading"),r.done(function(){u.nodeSetStatus(i,"ok");f._requestId=null}).fail(function(n){var t;n!==w?(n.node&&n.error&&n.message?t=n:"[object Object]"===(t=u._makeHookContext(f,null,{error:n,args:Array.prototype.slice.call(arguments),message:n?n.message||n.toString():""})).message&&(t.message=""),f.warn("Load children failed ("+t.message+")",t),!1!==u._triggerNodeEvent("loadError",t,null)&&u.nodeSetStatus(i,"error",t.message,t.details)):f.warn("Ignored response for obsolete load request #"+c+" (expected #"+f._requestId+")")})):i.options.postProcess&&(s=u._triggerNodeEvent("postProcess",i,i.originalEvent,{response:r,error:null,dataType:typeof r}),(n.isArray(s)||n.isPlainObject(s)&&n.isArray(s.children))&&(r=s)),n.when(r).done(function(r){var e,o;n.isPlainObject(r)&&(t(f.isRootNode(),"source may only be an object for root nodes (expecting an array of child objects otherwise)"),t(n.isArray(r.children),"if an object is passed as source, it must contain a 'children' array (all other properties are added to 'tree.data')"),r=(e=r).children,delete e.children,n.each(a,function(n,t){void 0!==e[t]&&(u[t]=e[t],delete e[t])}),n.extend(u.data,e));t(n.isArray(r),"expected array of children");f._setChildren(r);u.options.nodata&&0===r.length&&(n.isFunction(u.options.nodata)?o=u.options.nodata.call(u,{type:"nodata"},i):!0===u.options.nodata&&f.isRootNode()?o=u.options.strings.nodata:"string"==typeof u.options.nodata&&f.isRootNode()&&(o=u.options.nodata),o&&f.setStatus("nodata",o));u._triggerNodeEvent("loadChildren",f)})},nodeLoadKeyPath:function(){},nodeRemoveChild:function(i,r){var f,e=i.node,o=n.extend({},i,{node:r}),u=e.children;if(1===u.length)return t(r===u[0],"invalid single child"),this.nodeRemoveChildren(i);this.activeNode&&(r===this.activeNode||this.activeNode.isDescendantOf(r))&&this.activeNode.setActive(!1);this.focusNode&&(r===this.focusNode||this.focusNode.isDescendantOf(r))&&(this.focusNode=null);this.nodeRemoveMarkup(o);this.nodeRemoveChildren(o);t(0<=(f=n.inArray(r,u)),"invalid child");e.triggerModifyChild("remove",r);r.visit(function(n){n.parent=null},!0);this._callHook("treeRegisterNode",this,!1,r);u.splice(f,1)},nodeRemoveChildMarkup:function(t){var i=t.node;i.ul&&(i.isRootNode()?n(i.ul).empty():(n(i.ul).remove(),i.ul=null),i.visit(function(n){n.li=n.ul=null}))},nodeRemoveChildren:function(n){var i=n.tree,t=n.node;t.children&&(this.activeNode&&this.activeNode.isDescendantOf(t)&&this.activeNode.setActive(!1),this.focusNode&&this.focusNode.isDescendantOf(t)&&(this.focusNode=null),this.nodeRemoveChildMarkup(n),t.triggerModifyChild("remove",null),t.visit(function(n){n.parent=null;i._callHook("treeRegisterNode",i,!1,n)}),t.children=t.lazy?[]:null,t.isRootNode()||(t.expanded=!1),this.nodeRenderStatus(n))},nodeRemoveMarkup:function(t){var i=t.node;i.li&&(n(i.li).remove(),i.li=null);this.nodeRemoveChildMarkup(t)},nodeRender:function(i,r,u,f,e){var s,b,l,h,y,k,d,o=i.node,w=i.tree,c=i.options,g=c.aria,nt=!1,p=o.parent,a=!p,v=o.children,tt=null;if(!1!==w._enableUpdate&&(a||p.ul)){if(t(a||p.ul,"parent UL must exist"),a||(o.li&&(r||o.li.parentNode!==o.parent.ul)&&(o.li.parentNode===o.parent.ul?tt=o.li.nextSibling:this.debug("Unlinking "+o+" (must be child of "+o.parent+")"),this.nodeRemoveMarkup(i)),o.li?this.nodeRenderStatus(i):(nt=!0,o.li=document.createElement("li"),(o.li.ftnode=o).key&&c.generateIds&&(o.li.id=c.idPrefix+o.key),o.span=document.createElement("span"),o.span.className="fancytree-node",g&&!o.tr&&n(o.li).attr("role","treeitem"),o.li.appendChild(o.span),this.nodeRenderTitle(i),c.createNode&&c.createNode.call(w,{type:"createNode"},i)),c.renderNode&&c.renderNode.call(w,{type:"renderNode"},i)),v){if(a||o.expanded||!0===u){for(o.ul||(o.ul=document.createElement("ul"),(!0!==f||e)&&o.expanded||(o.ul.style.display="none"),g&&n(o.ul).attr("role","group"),o.li?o.li.appendChild(o.ul):o.tree.$div.append(o.ul)),h=0,y=v.length;h<y;h++)d=n.extend({},i,{node:v[h]}),this.nodeRender(d,r,u,!1,!0);for(s=o.ul.firstChild;s;)s=(l=s.ftnode)&&l.parent!==o?(o.debug("_fixParent: remove missing "+l,s),k=s.nextSibling,s.parentNode.removeChild(s),k):s.nextSibling;for(s=o.ul.firstChild,h=0,y=v.length-1;h<y;h++)(b=v[h])===(l=s.ftnode)?s=s.nextSibling:o.ul.insertBefore(b.li,l.li)}}else o.ul&&(this.warn("remove child markup for "+o),this.nodeRemoveChildMarkup(i));a||nt&&p.ul.insertBefore(o.li,tt)}},nodeRenderTitle:function(t,r){var p,a,f,c,o,l,h,u=t.node,v=t.tree,e=t.options,y=e.aria,w=u.getLevel(),s=[];void 0!==r&&(u.title=r);u.span&&!1!==v._enableUpdate&&(o=y&&!1!==u.hasChildren()?" role='button'":"",w<e.minExpandLevel?(u.lazy||(u.expanded=!0),1<w&&s.push("<span "+o+" class='fancytree-expander fancytree-expander-fixed'><\/span>")):s.push("<span "+o+" class='fancytree-expander'><\/span>"),(p=i.evalOption("checkbox",u,u,e,!1))&&!u.isStatusNode()&&(o=y?" role='checkbox'":"",a="fancytree-checkbox",("radio"===p||u.parent&&u.parent.radiogroup)&&(a+=" fancytree-radio"),s.push("<span "+o+" class='"+a+"'><\/span>")),void 0!==u.data.iconClass&&(u.icon?n.error("'iconClass' node option is deprecated since v2.14.0: use 'icon' only instead"):(u.warn("'iconClass' node option is deprecated since v2.14.0: use 'icon' instead"),u.icon=u.data.iconClass)),!1!==(f=i.evalOption("icon",u,u,e,!0))&&(o=y?" role='presentation'":"",h=(h=i.evalOption("iconTooltip",u,u,e,null))?" title='"+rt(h)+"'":"","string"==typeof f?ft.test(f)?(f="/"===f.charAt(0)?f:(e.imagePath||"")+f,s.push("<img src='"+f+"' class='fancytree-icon'"+h+" alt='' />")):s.push("<span "+o+" class='fancytree-custom-icon "+f+"'"+h+"><\/span>"):f.text?s.push("<span "+o+" class='fancytree-custom-icon "+(f.addClass||"")+"'"+h+">"+i.escapeHtml(f.text)+"<\/span>"):f.html?s.push("<span "+o+" class='fancytree-custom-icon "+(f.addClass||"")+"'"+h+">"+f.html+"<\/span>"):s.push("<span "+o+" class='fancytree-icon'"+h+"><\/span>")),c="",e.renderTitle&&(c=e.renderTitle.call(v,{type:"renderTitle"},t)||""),c||(!0===(l=i.evalOption("tooltip",u,u,e,null))&&(l=u.title),c="<span class='fancytree-title'"+(l=l?" title='"+rt(l)+"'":"")+(e.titlesTabbable?" tabindex='0'":"")+">"+(e.escapeTitles?i.escapeHtml(u.title):u.title)+"<\/span>"),s.push(c),u.span.innerHTML=s.join(""),this.nodeRenderStatus(t),e.enhanceTitle&&(t.$title=n(">span.fancytree-title",u.span),c=e.enhanceTitle.call(v,{type:"enhanceTitle"},t)||""))},nodeRenderStatus:function(t){var e,r=t.node,o=t.tree,c=t.options,l=r.hasChildren(),s=r.isLastSibling(),h=c.aria,f=c._classNames,u=[],a=r[o.statusClassPropName];a&&!1!==o._enableUpdate&&(h&&(e=n(r.tr||r.li)),u.push(f.node),o.activeNode===r&&u.push(f.active),o.focusNode===r&&u.push(f.focused),r.expanded&&u.push(f.expanded),h&&(!1===l?e.removeAttr("aria-expanded"):e.attr("aria-expanded",Boolean(r.expanded))),r.folder&&u.push(f.folder),!1!==l&&u.push(f.hasChildren),s&&u.push(f.lastsib),r.lazy&&null==r.children&&u.push(f.lazy),r.partload&&u.push(f.partload),r.partsel&&u.push(f.partsel),i.evalOption("unselectable",r,r,c,!1)&&u.push(f.unselectable),r._isLoading&&u.push(f.loading),r._error&&u.push(f.error),r.statusNodeType&&u.push(f.statusNodePrefix+r.statusNodeType),r.selected?(u.push(f.selected),h&&e.attr("aria-selected",!0)):h&&e.attr("aria-selected",!1),r.extraClasses&&u.push(r.extraClasses),!1===l?u.push(f.combinedExpanderPrefix+"n"+(s?"l":"")):u.push(f.combinedExpanderPrefix+(r.expanded?"e":"c")+(r.lazy&&null==r.children?"d":"")+(s?"l":"")),u.push(f.combinedIconPrefix+(r.expanded?"e":"c")+(r.folder?"f":"")),a.className=u.join(" "),r.li&&n(r.li).toggleClass(f.lastsib,s))},nodeSetActive:function(i,u,f){f=f||{};var h,o=i.node,e=i.tree,c=i.options,s=!0===f.noEvents,l=!0===f.noFocus,a=!1!==f.scrollIntoView;return o===e.activeNode==(u=!1!==u)?r(o):u&&!s&&!1===this._triggerNodeEvent("beforeActivate",o,i.originalEvent)?y(o,["rejected"]):(u?(e.activeNode&&(t(e.activeNode!==o,"node was active (inconsistency)"),h=n.extend({},i,{node:e.activeNode}),e.nodeSetActive(h,!1),t(null===e.activeNode,"deactivate was out of sync?")),c.activeVisible&&o.makeVisible({scrollIntoView:a}),e.activeNode=o,e.nodeRenderStatus(i),l||e.nodeSetFocus(i),s||e._triggerNodeEvent("activate",o,i.originalEvent)):(t(e.activeNode===o,"node was not active (inconsistency)"),e.activeNode=null,this.nodeRenderStatus(i),s||i.tree._triggerNodeEvent("deactivate",o,i.originalEvent)),r(o))},nodeSetExpanded:function(t,i,u){u=u||{};var s,e,h,p,l,w,f=t.node,a=t.tree,o=t.options,c=!0===u.noAnimation,v=!0===u.noEvents;if((i=!1!==i,f.expanded&&i||!f.expanded&&!i)||i&&!f.lazy&&!f.hasChildren())return r(f);if(!i&&f.getLevel()<o.minExpandLevel)return y(f,["locked"]);if(!v&&!1===this._triggerNodeEvent("beforeExpand",f,t.originalEvent))return y(f,["rejected"]);if(c||f.isVisible()||(c=u.noAnimation=!0),e=new n.Deferred,i&&!f.expanded&&o.autoCollapse){l=f.getParentList(!1,!0);w=o.autoCollapse;try{for(o.autoCollapse=!1,h=0,p=l.length;h<p;h++)this._callHook("nodeCollapseSiblings",l[h],u)}finally{o.autoCollapse=w}}return e.done(function(){var n=f.getLastChild();i&&o.autoScroll&&!c&&n&&a._enableUpdate?n.scrollIntoView(!0,{topNode:f}).always(function(){v||t.tree._triggerNodeEvent(i?"expand":"collapse",t)}):v||t.tree._triggerNodeEvent(i?"expand":"collapse",t)}),s=function(r){var e=o._classNames,u=o.toggleEffect;if(f.expanded=i,a._callHook("treeStructureChanged",t,i?"expand":"collapse"),a._callHook("nodeRender",t,!1,!1,!0),f.ul)if("none"!==f.ul.style.display==!!f.expanded)f.warn("nodeSetExpanded: UL.style.display already set");else{if(u&&!c)return n(f.li).addClass(e.animating),void(n.isFunction(n(f.ul)[u.effect])?n(f.ul)[u.effect]({duration:u.duration,always:function(){n(this).removeClass(e.animating);n(f.li).removeClass(e.animating);r()}}):(n(f.ul).stop(!0,!0),n(f.ul).parent().find(".ui-effects-placeholder").remove(),n(f.ul).toggle(u.effect,u.options,u.duration,function(){n(this).removeClass(e.animating);n(f.li).removeClass(e.animating);r()})));f.ul.style.display=f.expanded||!parent?"":"none"}r()},i&&f.lazy&&void 0===f.hasChildren()?f.load().done(function(){e.notifyWith&&e.notifyWith(f,["loaded"]);s(function(){e.resolveWith(f)})}).fail(function(n){s(function(){e.rejectWith(f,["load failed ("+n+")"])})}):s(function(){e.resolveWith(f)}),e.promise()},nodeSetFocus:function(t,i){var f,r=t.tree,u=t.node,e=r.options,o=!!t.originalEvent&&n(t.originalEvent.target).is(":input");if(i=!1!==i,r.focusNode){if(r.focusNode===u&&i)return;f=n.extend({},t,{node:r.focusNode});r.focusNode=null;this._triggerNodeEvent("blur",f);this._callHook("nodeRenderStatus",f)}i&&(this.hasFocus()||(u.debug("nodeSetFocus: forcing container focus"),this._callHook("treeSetFocus",t,!0,{calledByNode:!0})),u.makeVisible({scrollIntoView:!1}),r.focusNode=u,e.titlesTabbable&&(o||n(u.span).find(".fancytree-title").focus()),e.aria&&n(r.$container).attr("aria-activedescendant",n(u.tr||u.li).uniqueId().attr("id")),this._triggerNodeEvent("focus",t),document.activeElement===r.$container.get(0)||1<=n(document.activeElement,r.$container).length||n(r.$container).focus(),e.autoScroll&&u.scrollIntoView(),this._callHook("nodeRenderStatus",t))},nodeSetSelected:function(n,t,r){r=r||{};var u=n.node,f=n.tree,e=n.options,s=!0===r.noEvents,o=u.parent;if(t=!1!==t,!i.evalOption("unselectable",u,u,e,!1)){if(u._lastSelectIntent=t,!!u.selected===t&&(3!==e.selectMode||!u.partsel||t))return t;if(!s&&!1===this._triggerNodeEvent("beforeSelect",u,n.originalEvent))return!!u.selected;t&&1===e.selectMode?(f.lastSelectedNode&&f.lastSelectedNode.setSelected(!1),u.selected=t):3!==e.selectMode||!o||o.radiogroup||u.radiogroup?o&&o.radiogroup?u.visitSiblings(function(n){n._changeSelectStatusAttrs(t&&n===u)},!0):u.selected=t:(u.selected=t,u.fixSelection3AfterClick(r));this.nodeRenderStatus(n);f.lastSelectedNode=t?u:null;s||f._triggerNodeEvent("select",n)}},nodeSetStatus:function(t,i,r,u){function o(i,r){var u=f.children?f.children[0]:null;return u&&u.isStatusNode()?(n.extend(u,i),u.statusNodeType=r,e._callHook("nodeRenderTitle",u)):(f._setChildren([i]),e._callHook("treeStructureChanged",t,"setStatusNode"),f.children[0].statusNodeType=r,e.render()),f.children[0]}var f=t.node,e=t.tree;switch(i){case"ok":!function(){var n=f.children?f.children[0]:null;if(n&&n.isStatusNode()){try{f.ul&&(f.ul.removeChild(n.li),n.li=null)}catch(n){}1===f.children.length?f.children=[]:f.children.shift();e._callHook("treeStructureChanged",t,"clearStatusNode")}}();f._isLoading=!1;f._error=null;f.renderStatus();break;case"loading":f.parent||o({title:e.options.strings.loading+(r?" ("+r+")":""),checkbox:!1,tooltip:u},i);f._isLoading=!0;f._error=null;f.renderStatus();break;case"error":o({title:e.options.strings.loadError+(r?" ("+r+")":""),checkbox:!1,tooltip:u},i);f._isLoading=!1;f._error={message:r,details:u};f.renderStatus();break;case"nodata":o({title:r||e.options.strings.noData,checkbox:!1,tooltip:u},i);f._isLoading=!1;f._error=null;f.renderStatus();break;default:n.error("invalid node status "+i)}},nodeToggleExpanded:function(n){return this.nodeSetExpanded(n,!n.node.expanded)},nodeToggleSelected:function(n){var t=n.node,i=!t.selected;return t.partsel&&!t.selected&&!0===t._lastSelectIntent&&(i=!1,t.selected=!0),t._lastSelectIntent=i,this.nodeSetSelected(n,i)},treeClear:function(n){var t=n.tree;t.activeNode=null;t.focusNode=null;t.$div.find(">ul.fancytree-container").empty();t.rootNode.children=null;t._callHook("treeStructureChanged",n,"clear")},treeCreate:function(){},treeDestroy:function(){this.$div.find(">ul.fancytree-container").remove();this.$source&&this.$source.removeClass("fancytree-helper-hidden")},treeInit:function(t){var i=t.tree,r=i.options;i.$container.attr("tabindex",r.tabindex);n.each(a,function(n,t){void 0!==r[t]&&(i.info("Move option "+t+" to tree"),i[t]=r[t],delete r[t])});r.checkboxAutoHide&&i.$container.addClass("fancytree-checkbox-auto-hide");r.rtl?i.$container.attr("DIR","RTL").addClass("fancytree-rtl"):i.$container.removeAttr("DIR").removeClass("fancytree-rtl");r.aria&&(i.$container.attr("role","tree"),1!==r.selectMode&&i.$container.attr("aria-multiselectable",!0));this.treeLoad(t)},treeLoad:function(r,u){var e,h,o,f=r.tree,s=r.widget.element,c=n.extend({},r,{node:this.rootNode});if(f.rootNode.children&&this.treeClear(r),u=u||this.options.source)"string"==typeof u&&n.error("Not implemented");else switch(h=s.data("type")||"html"){case"html":(o=s.find(">ul").not(".fancytree-container").first()).length?(o.addClass("ui-fancytree-source fancytree-helper-hidden"),u=n.ui.fancytree.parseHtml(o),this.data=n.extend(this.data,p(o))):(i.warn("No `source` option was passed and container does not contain `<ul>`: assuming `source: []`."),u=[]);break;case"json":u=n.parseJSON(s.text());s.contents().filter(function(){return 3===this.nodeType}).remove();n.isPlainObject(u)&&(t(n.isArray(u.children),"if an object is passed as source, it must contain a 'children' array (all other properties are added to 'tree.data')"),u=(e=u).children,delete e.children,n.each(a,function(n,t){void 0!==e[t]&&(f[t]=e[t],delete e[t])}),n.extend(f.data,e));break;default:n.error("Invalid data-type: "+h)}return f._triggerTreeEvent("preInit",null),this.nodeLoadChildren(c,u).done(function(){f._callHook("treeStructureChanged",r,"loadChildren");f.render();3===r.options.selectMode&&f.rootNode.fixSelection3FromEndNodes();f.activeNode&&f.options.activeVisible&&f.activeNode.makeVisible();f._triggerTreeEvent("init",null,{status:!0})}).fail(function(){f.render();f._triggerTreeEvent("init",null,{status:!1})})},treeRegisterNode:function(n,t){n.tree._callHook("treeStructureChanged",n,t?"addNode":"removeNode")},treeSetFocus:function(t,i,r){var u;(i=!1!==i)!==this.hasFocus()&&(!(this._hasFocus=i)&&this.focusNode?this.focusNode.setFocus(!1):!i||r&&r.calledByNode||n(this.$container).focus(),this.$container.toggleClass("fancytree-treefocus",i),this._triggerTreeEvent(i?"focusTree":"blurTree"),i&&!this.activeNode&&(u=this._lastMousedownNode||this.getFirstChild())&&u.setFocus())},treeSetOption:function(t,i,r){var u=t.tree,e=!0,o=!1,f=!1;switch(i){case"aria":case"checkbox":case"icon":case"minExpandLevel":case"tabindex":f=o=!0;break;case"checkboxAutoHide":u.$container.toggleClass("fancytree-checkbox-auto-hide",!!r);break;case"escapeTitles":case"tooltip":f=!0;break;case"rtl":!1===r?u.$container.removeAttr("DIR").removeClass("fancytree-rtl"):u.$container.attr("DIR","RTL").addClass("fancytree-rtl");f=!0;break;case"source":e=!1;u._callHook("treeLoad",u,r);f=!0}u.debug("set option "+i+"="+r+" <"+typeof r+">");e&&(this.widget._super?this.widget._super.call(this.widget,i,r):n.Widget.prototype._setOption.call(this.widget,i,r));o&&u._callHook("treeCreate",u);f&&u.render(!0,!1)},treeStructureChanged:function(){}}),n.widget("ui.fancytree",{options:{activeVisible:!0,ajax:{type:"GET",cache:!1,dataType:"json"},aria:!0,autoActivate:!0,autoCollapse:!1,autoScroll:!1,checkbox:!1,clickFolderMode:4,debugLevel:null,disabled:!1,enableAspx:!0,escapeTitles:!1,extensions:[],toggleEffect:{effect:"slideToggle",duration:200},generateIds:!1,icon:!0,idPrefix:"ft_",focusOnSelect:!1,keyboard:!0,keyPathSeparator:"/",minExpandLevel:1,nodata:!0,quicksearch:!1,rtl:!1,scrollOfs:{top:0,bottom:0},scrollParent:null,selectMode:2,strings:{loading:"Loading...",loadError:"Load error!",moreData:"More...",noData:"No data."},tabindex:"0",titlesTabbable:!1,tooltip:!1,treeId:null,_classNames:{node:"fancytree-node",folder:"fancytree-folder",animating:"fancytree-animating",combinedExpanderPrefix:"fancytree-exp-",combinedIconPrefix:"fancytree-ico-",hasChildren:"fancytree-has-children",active:"fancytree-active",selected:"fancytree-selected",expanded:"fancytree-expanded",lazy:"fancytree-lazy",focused:"fancytree-focused",partload:"fancytree-partload",partsel:"fancytree-partsel",radio:"fancytree-radio",unselectable:"fancytree-unselectable",lastsib:"fancytree-lastsib",loading:"fancytree-loading",error:"fancytree-error",statusNodePrefix:"fancytree-statusnode-"},lazyLoad:null,postProcess:null},_deprecationWarning:function(n){var t=this.tree;t&&3<=t.options.debugLevel&&t.warn("$().fancytree('"+n+"') is deprecated (see https://wwwendt.de/tech/fancytree/doc/jsdoc/Fancytree_Widget.html")},_create:function(){this.tree=new h(this);this.$source=this.source||"json"===this.element.data("type")?this.element:this.element.find(">ul").first();var u,r,f,i=this.options,e=i.extensions;for(this.tree,f=0;f<e.length;f++)r=e[f],(u=n.ui.fancytree._extensions[r])||n.error("Could not apply extension '"+r+"' (it is not registered, did you forget to include it?)"),this.tree.options[r]=nt({},u.options,this.tree.options[r]),t(void 0===this.tree.ext[r],"Extension name must not exist as Fancytree.ext attribute: '"+r+"'"),this.tree.ext[r]={},lt(this.tree,0,u,r),u;void 0!==i.icons&&(!0===i.icon?(this.tree.warn("'icons' tree option is deprecated since v2.14.0: use 'icon' instead"),i.icon=i.icons):n.error("'icons' tree option is deprecated since v2.14.0: use 'icon' only instead"));void 0!==i.iconClass&&(i.icon?n.error("'iconClass' tree option is deprecated since v2.14.0: use 'icon' only instead"):(this.tree.warn("'iconClass' tree option is deprecated since v2.14.0: use 'icon' instead"),i.icon=i.iconClass));void 0!==i.tabbable&&(i.tabindex=i.tabbable?"0":"-1",this.tree.warn("'tabbable' tree option is deprecated since v2.17.0: use 'tabindex='"+i.tabindex+"' instead"));this.tree._callHook("treeCreate",this.tree)},_init:function(){this.tree._callHook("treeInit",this.tree);this._bind()},_setOption:function(n,t){return this.tree._callHook("treeSetOption",this.tree,n,t)},_destroy:function(){this._unbind();this.tree._callHook("treeDestroy",this.tree)},_unbind:function(){var t=this.tree._ns;this.element.off(t);this.tree.$container.off(t);n(document).off(t)},_bind:function(){var f=this,u=this.options,t=this.tree,r=t._ns;this._unbind();t.$container.on("focusin"+r+" focusout"+r,function(r){var u=i.getNode(r),f="focusin"===r.type;if(!f&&u&&n(r.target).is("a"))u.debug("Ignored focusout on embedded <a> element.");else{if(f){if(t._getExpiringValue("focusin"))return void t.debug("Ignored double focusin.");t._setExpiringValue("focusin",!0,50);u||(u=t._getExpiringValue("mouseDownNode"))&&t.debug("Reconstruct mouse target for focusin from recent event.")}u?t._callHook("nodeSetFocus",t._makeHookContext(u,r),f):t.tbody&&n(r.target).parents("table.fancytree-container > thead").length?t.debug("Ignore focus event outside table body.",r):t._callHook("treeSetFocus",t,f)}}).on("selectstart"+r,"span.fancytree-title",function(n){n.preventDefault()}).on("keydown"+r,function(n){if(u.disabled||!1===u.keyboard)return!0;var i,r=t.focusNode,f=t._makeHookContext(r||t,n),e=t.phase;try{return t.phase="userEvent","preventNav"===(i=r?t._triggerNodeEvent("keydown",r,n):t._triggerTreeEvent("keydown",n))?i=!0:!1!==i&&(i=t._callHook("nodeKeydown",f)),i}finally{t.phase=e}}).on("mousedown"+r,function(n){var r=i.getEventTarget(n);t._lastMousedownNode=r?r.node:null;t._setExpiringValue("mouseDownNode",t._lastMousedownNode)}).on("click"+r+" dblclick"+r,function(n){if(u.disabled)return!0;var r,e=i.getEventTarget(n),o=e.node,t=f.tree,s=t.phase;if(!o)return!0;r=t._makeHookContext(o,n);try{switch(t.phase="userEvent",n.type){case"click":return r.targetType=e.type,o.isPagingNode()?!0===t._triggerNodeEvent("clickPaging",r,n):!1!==t._triggerNodeEvent("click",r,n)&&t._callHook("nodeClick",r);case"dblclick":return r.targetType=e.type,!1!==t._triggerNodeEvent("dblclick",r,n)&&t._callHook("nodeDblclick",r)}}finally{t.phase=s}})},getActiveNode:function(){return this._deprecationWarning("getActiveNode"),this.tree.activeNode},getNodeByKey:function(n){return this._deprecationWarning("getNodeByKey"),this.tree.getNodeByKey(n)},getRootNode:function(){return this._deprecationWarning("getRootNode"),this.tree.rootNode},getTree:function(){return this._deprecationWarning("getTree"),this.tree}}),i=n.ui.fancytree,n.extend(n.ui.fancytree,{version:"2.34.0",buildType:"production",debugLevel:3,_nextId:1,_nextNodeKey:1,_extensions:{},_FancytreeClass:h,_FancytreeNodeClass:s,jquerySupports:{positionMyOfs:function(t){for(var r,u,e=n.map(n.trim(t).split("."),function(n){return parseInt(n,10)}),f=n.map(Array.prototype.slice.call(arguments,1),function(n){return parseInt(n,10)}),i=0;i<f.length;i++)if((r=e[i]||0)!==(u=f[i]||0))return u<r;return!0}(n.ui.version,1,9)},assert:function(n,i){return t(n,i)},createTree:function(t,r){var u=n(t).fancytree(r);return i.getTree(u)},debounce:function(n,t,i,r){var u;return 3===arguments.length&&"boolean"!=typeof i&&(r=i,i=!1),function(){var f=arguments;r=r||this;i&&!u&&t.apply(r,f);clearTimeout(u);u=setTimeout(function(){i||t.apply(r,f);u=null},n)}},debug:function(){4<=n.ui.fancytree.debugLevel&&f("log",arguments)},error:function(){1<=n.ui.fancytree.debugLevel&&f("error",arguments)},escapeHtml:function(n){return(""+n).replace(et,function(n){return b[n]})},fixPositionOptions:function(t){if((t.offset||0<=(""+t.my+t.at).indexOf("%"))&&n.error("expected new position syntax (but '%' is not supported)"),!n.ui.fancytree.jquerySupports.positionMyOfs){var i=/(\w+)([+-]?\d+)?\s+(\w+)([+-]?\d+)?/.exec(t.my),r=/(\w+)([+-]?\d+)?\s+(\w+)([+-]?\d+)?/.exec(t.at),u=(i[2]?+i[2]:0)+(r[2]?+r[2]:0),f=(i[4]?+i[4]:0)+(r[4]?+r[4]:0);t=n.extend({},t,{my:i[1]+" "+i[3],at:r[1]+" "+r[3]});(u||f)&&(t.offset=u+" "+f)}return t},getEventTarget:function(t){var f,u=t&&t.target?t.target.className:"",r={node:this.getNode(t.target),type:void 0};return/\bfancytree-title\b/.test(u)?r.type="title":/\bfancytree-expander\b/.test(u)?r.type=!1===r.node.hasChildren()?"prefix":"expander":/\bfancytree-checkbox\b/.test(u)?r.type="checkbox":/\bfancytree(-custom)?-icon\b/.test(u)?r.type="icon":/\bfancytree-node\b/.test(u)?r.type="title":t&&t.target&&((f=n(t.target)).is("ul[role=group]")?((r.node&&r.node.tree||i).debug("Ignoring click on outer UL."),r.node=null):f.closest(".fancytree-title").length?r.type="title":f.closest(".fancytree-checkbox").length?r.type="checkbox":f.closest(".fancytree-expander").length&&(r.type="expander")),r},getEventTargetType:function(n){return this.getEventTarget(n).type},getNode:function(t){if(t instanceof s)return t;for(t instanceof n?t=t[0]:void 0!==t.originalEvent&&(t=t.target);t;){if(t.ftnode)return t.ftnode;t=t.parentNode}return null},getTree:function(t){var i,r=t;return t instanceof h?t:(void 0===t&&(t=0),"number"==typeof t?t=n(".fancytree-container").eq(t):"string"==typeof t?(t=n("#ft-id-"+r).eq(0)).length||(t=n(r).eq(0)):t instanceof Element||t instanceof HTMLDocument?t=n(t):t instanceof n?t=t.eq(0):void 0!==t.originalEvent&&(t=n(t.target)),(i=(t=t.closest(":ui-fancytree")).data("ui-fancytree")||t.data("fancytree"))?i.tree:null)},evalOption:function(t,i,r,u,f){var c,e,o=i.tree,s=u[t],h=r[t];return n.isFunction(s)?(c={node:i,tree:o,widget:o.widget,options:o.widget.options,typeInfo:o.types[i.type]||{}},null==(e=s.call(o,{type:t},c))&&(e=h)):e=null==h?s:h,null==e&&(e=f),e},setSpanIcon:function(t,i,r){var u=n(t);"string"==typeof r?u.attr("class",i+" "+r):(r.text?u.text(""+r.text):r.html&&(t.innerHTML=r.html),u.attr("class",i+" "+(r.addClass||"")))},eventToString:function(n){var r=n.which,i=n.type,t=[];return n.altKey&&t.push("alt"),n.ctrlKey&&t.push("ctrl"),n.metaKey&&t.push("meta"),n.shiftKey&&t.push("shift"),"click"===i||"dblclick"===i?t.push(ct[n.button]+i):"wheel"===i?t.push(i):st[r]||t.push(k[r]||String.fromCharCode(r).toLowerCase()),t.join("+")},info:function(){3<=n.ui.fancytree.debugLevel&&f("info",arguments)},keyEventToString:function(n){return this.warn("keyEventToString() is deprecated: use eventToString()"),this.eventToString(n)},overrideMethod:function(t,i,r,u){var f,e=t[i]||n.noop;t[i]=function(){var n=u||this;try{return f=n._super,n._super=e,r.apply(n,arguments)}finally{n._super=f}}},parseHtml:function(t){var o,f,s,i,h,u,r,l,y=t.find(">li"),a=[];return y.each(function(){var w,g,b=n(this),nt=b.find(">span",this).first(),k=nt.length?null:b.find(">a").first(),y={tooltip:null,data:{}};for(nt.length?y.title=nt.html():k&&k.length?(y.title=k.html(),y.data.href=k.attr("href"),y.data.target=k.attr("target"),y.tooltip=k.attr("title")):(y.title=b.html(),0<=(h=y.title.search(/<ul/i))&&(y.title=y.title.substring(0,h))),y.title=n.trim(y.title),i=0,u=c.length;i<u;i++)y[c[i]]=void 0;for(o=this.className.split(" "),s=[],i=0,u=o.length;i<u;i++)f=o[i],d[f]?y[f]=!0:s.push(f);if(y.extraClasses=s.join(" "),(r=b.attr("title"))&&(y.tooltip=r),(r=b.attr("id"))&&(y.key=r),b.attr("hideCheckbox")&&(y.checkbox=!1),(w=p(b))&&!n.isEmptyObject(w)){for(g in v)w.hasOwnProperty(g)&&(w[v[g]]=w[g],delete w[g]);for(i=0,u=e.length;i<u;i++)r=e[i],null!=(l=w[r])&&(delete w[r],y[r]=l);n.extend(y.data,w)}y.children=(t=b.find(">ul").first()).length?n.ui.fancytree.parseHtml(t):y.lazy?void 0:null;a.push(y)}),a},registerExtension:function(i){t(null!=i.name,"extensions must have a `name` property.");t(null!=i.version,"extensions must have a `version` property.");n.ui.fancytree._extensions[i.name]=i},unescapeHtml:function(n){var t=document.createElement("div");return t.innerHTML=n,0===t.childNodes.length?"":t.childNodes[0].nodeValue},warn:function(){2<=n.ui.fancytree.debugLevel&&f("warn",arguments)}}),n.ui.fancytree}n.ui.fancytree.warn("Fancytree: ignored duplicate include")},"function"==typeof define&&define.amd?define(["jquery","./jquery.fancytree.ui-deps"],t):"object"==typeof module&&module.exports?(require("./jquery.fancytree.ui-deps"),module.exports=t(require("jquery"))):t(jQuery),i=function(n){"use strict";return n.ui.fancytree._FancytreeClass.prototype.countSelected=function(n){return this.options,this.getSelectedNodes(n).length},n.ui.fancytree._FancytreeNodeClass.prototype.updateCounters=function(){var t=this,i=n("span.fancytree-childcounter",t.span),r=t.tree.options.childcounter,u=t.countChildren(r.deep);!(t.data.childCounter=u)&&r.hideZeros||t.isExpanded()&&r.hideExpanded?i.remove():(i.length||(i=n("<span class='fancytree-childcounter'/>").appendTo(n("span.fancytree-icon,span.fancytree-custom-icon",t.span))),i.text(u));!r.deep||t.isTopLevel()||t.isRoot()||t.parent.updateCounters()},n.ui.fancytree.prototype.widgetMethod1=function(n){return this.tree,n},n.ui.fancytree.registerExtension({name:"childcounter",version:"2.34.0",options:{deep:!0,hideZeros:!0,hideExpanded:!1},foo:42,_appendCounter:function(){},treeInit:function(n){n.options;n.options.childcounter;this._superApply(arguments);this.$container.addClass("fancytree-ext-childcounter")},treeDestroy:function(){this._superApply(arguments)},nodeRenderTitle:function(t,i){var r=t.node,u=t.options.childcounter,f=null==r.data.childCounter?r.countChildren(u.deep):+r.data.childCounter;this._super(t,i);!f&&u.hideZeros||r.isExpanded()&&u.hideExpanded||n("span.fancytree-icon,span.fancytree-custom-icon",r.span).append(n("<span class='fancytree-childcounter'/>").text(f))},nodeSetExpanded:function(n){var t=n.tree;return n.node,this._superApply(arguments).always(function(){t.nodeRenderTitle(n)})}}),n.ui.fancytree},"function"==typeof define&&define.amd?define(["jquery","./jquery.fancytree"],i):"object"==typeof module&&module.exports?(require("./jquery.fancytree"),module.exports=i(require("jquery"))):i(jQuery),r=function(n){"use strict";function t(t,i){t||(i=i?": "+i:"",n.error("Assertion failed"+i))}function i(n,t,i){for(var s,u,h=3&n.length,c=n.length-h,r=i,e=3432918353,o=461845907,f=0;f<c;)u=255&n.charCodeAt(f)|(255&n.charCodeAt(++f))<<8|(255&n.charCodeAt(++f))<<16|(255&n.charCodeAt(++f))<<24,++f,r=27492+(65535&(s=5*(65535&(r=(r^=u=(65535&(u=(u=(65535&u)*e+(((u>>>16)*e&65535)<<16)&4294967295)<<15|u>>>17))*o+(((u>>>16)*o&65535)<<16)&4294967295)<<13|r>>>19))+((5*(r>>>16)&65535)<<16)&4294967295))+((58964+(s>>>16)&65535)<<16);switch(u=0,h){case 3:u^=(255&n.charCodeAt(f+2))<<16;case 2:u^=(255&n.charCodeAt(f+1))<<8;case 1:r^=u=(65535&(u=(u=(65535&(u^=255&n.charCodeAt(f)))*e+(((u>>>16)*e&65535)<<16)&4294967295)<<15|u>>>17))*o+(((u>>>16)*o&65535)<<16)&4294967295}return r^=n.length,r=2246822507*(65535&(r^=r>>>16))+((2246822507*(r>>>16)&65535)<<16)&4294967295,r=3266489909*(65535&(r^=r>>>13))+((3266489909*(r>>>16)&65535)<<16)&4294967295,r^=r>>>16,t?("0000000"+(r>>>0).toString(16)).substr(-8):r>>>0}return n.ui.fancytree._FancytreeNodeClass.prototype.getCloneList=function(t){var r,u=this.tree,i=u.refMap[this.refKey]||null,f=u.keyMap;return i&&(r=this.key,t?i=n.map(i,function(n){return f[n]}):(i=n.map(i,function(n){return n===r?null:f[n]})).length<1&&(i=null)),i},n.ui.fancytree._FancytreeNodeClass.prototype.isClone=function(){var n=this.refKey||null,t=n&&this.tree.refMap[n]||null;return!!(t&&1<t.length)},n.ui.fancytree._FancytreeNodeClass.prototype.reRegister=function(t,i){t=null==t?null:""+t;i=null==i?null:""+i;var h=this.tree,e=this.key,f=this.refKey,o=h.keyMap,r=h.refMap,u=r[f]||null,s=!1;return null!=t&&t!==this.key&&(o[t]&&n.error("[ext-clones] reRegister("+t+"): already exists: "+this),delete o[e],o[t]=this,u&&(r[f]=n.map(u,function(n){return n===e?t:n})),this.key=t,s=!0),null!=i&&i!==this.refKey&&(u&&(1===u.length?delete r[f]:r[f]=n.map(u,function(n){return n===e?null:n})),r[i]?r[i].append(t):r[i]=[this.key],this.refKey=i,s=!0),s},n.ui.fancytree._FancytreeNodeClass.prototype.setRefKey=function(n){return this.reRegister(null,n)},n.ui.fancytree._FancytreeClass.prototype.getNodesByRef=function(t,i){var u=this.keyMap,r=this.refMap[t]||null;return r&&(r=i?n.map(r,function(n){var t=u[n];return t.isDescendantOf(i)?t:null}):n.map(r,function(n){return u[n]})).length<1&&(r=null),r},n.ui.fancytree._FancytreeClass.prototype.changeRefKey=function(n,t){var i,u=this.keyMap,r=this.refMap[n]||null;if(r){for(i=0;i<r.length;i++)u[r[i]].refKey=t;delete this.refMap[n];this.refMap[t]=r}},n.ui.fancytree.registerExtension({name:"clones",version:"2.34.0",options:{highlightActiveClones:!0,highlightClones:!1},treeCreate:function(n){this._superApply(arguments);n.tree.refMap={};n.tree.keyMap={}},treeInit:function(r){this.$container.addClass("fancytree-ext-clones");t(null==r.options.defaultKey);r.options.defaultKey=function(t){return u=t,r=n.map(u.getParentList(!1,!0),function(n){return n.refKey||n.key}),"id_"+(f=i(r=r.join("/"),!0))+i(f+r,!0);var u,f,r};this._superApply(arguments)},treeClear:function(n){return n.tree.refMap={},n.tree.keyMap={},this._superApply(arguments)},treeRegisterNode:function(i,r,u){var f,c,l=i.tree,e=l.keyMap,h=l.refMap,o=u.key,s=u&&null!=u.refKey?""+u.refKey:null,v,a;return u.isStatusNode()?this._super(i,r,u):(r?(null!=e[u.key]&&(v=e[u.key],a="clones.treeRegisterNode: duplicate key '"+u.key+"': /"+u.getPath(!0)+" => "+v.getPath(!0),l.error(a),n.error(a)),e[o]=u,s&&((f=h[s])?(f.push(o),2===f.length&&i.options.clones.highlightClones&&e[f[0]].renderStatus()):h[s]=[o])):(null==e[o]&&n.error("clones.treeRegisterNode: node.key not registered: "+u.key),delete e[o],s&&(f=h[s])&&((c=f.length)<=1?(t(1===c),t(f[0]===o),delete h[s]):(!function(n,t){for(var i=n.length-1;0<=i;i--)if(n[i]===t)return n.splice(i,1)}(f,o),2===c&&i.options.clones.highlightClones&&e[f[0]].renderStatus()))),this._super(i,r,u))},nodeRenderStatus:function(t){var i,r,u=t.node;return r=this._super(t),t.options.clones.highlightClones&&(i=n(u[t.tree.statusClassPropName])).length&&u.isClone()&&i.addClass("fancytree-clone"),r},nodeSetActive:function(t,i){var r,f=t.tree.statusClassPropName,u=t.node;return r=this._superApply(arguments),t.options.clones.highlightActiveClones&&u.isClone()&&n.each(u.getCloneList(!0),function(t,r){n(r[f]).toggleClass("fancytree-active-clone",!1!==i)}),r}}),n.ui.fancytree},"function"==typeof define&&define.amd?define(["jquery","./jquery.fancytree"],r):"object"==typeof module&&module.exports?(require("./jquery.fancytree"),module.exports=r(require("jquery"))):r(jQuery),u=function(n){"use strict";function g(){r=i=w=o=b=s=t=null;a&&a.removeClass(nt+" "+tt);a=null;u&&u.hide();h&&(h.remove(),h=null)}function ut(n){return 0===n?"":0<n?"+"+n:""+n}function e(n,t){var f,r,e,i,u=t.tree,s=t.dataTransfer;"dragstart"===n.type?(t.effectAllowed=u.options.dnd5.effectAllowed,t.dropEffect=u.options.dnd5.dropEffectDefault):(t.effectAllowed=o,t.dropEffect=b);t.dropEffectSuggested=(r=n,e=(f=u).options.dnd5.dropEffectDefault,i=e,ft?r.metaKey&&r.altKey?i="link":r.ctrlKey?i="link":r.metaKey?i="move":r.altKey&&(i="copy"):r.ctrlKey?i="copy":r.shiftKey?i="move":r.altKey&&(i="link"),i!==w&&f.info("evalEffectModifiers: "+r.type+" - evalEffectModifiers(): "+w+" -> "+i),w=i);t.isMove="move"===t.dropEffect;t.files=s.files||[]}function k(n,t,i){var r=t.tree,u=t.dataTransfer;return"dragstart"!==n.type&&o!==t.effectAllowed&&r.warn("effectAllowed should only be changed in dragstart event: "+n.type+": data.effectAllowed changed from "+o+" -> "+t.effectAllowed),!1===i&&(r.info("applyDropEffectCallback: allowDrop === false"),t.effectAllowed="none",t.dropEffect="none"),t.isMove="move"===t.dropEffect,o=t.effectAllowed,b=t.dropEffect,u.effectAllowed=o,u.dropEffect=b}function ot(i,r){var b,g,ct,h,lt,p,nt,tt,a;if(r.options.dnd5.scroll&&(b=r.tree,g=i,lt=b.options.dnd5,p=b.$scrollParent[0],nt=lt.scrollSensitivity,tt=lt.scrollSpeed,a=0,p!==document&&"HTML"!==p.tagName?(ct=b.$scrollParent.offset(),h=p.scrollTop,ct.top+p.offsetHeight-g.pageY<nt?0<p.scrollHeight-b.$scrollParent.innerHeight()-h&&(p.scrollTop=a=h+tt):0<h&&g.pageY-ct.top<nt&&(p.scrollTop=a=h-tt)):0<(h=n(document).scrollTop())&&g.pageY-h<nt?(a=h-tt,n(document).scrollTop(a)):n(window).height()-(g.pageY-h)<nt&&(a=h+tt,n(document).scrollTop(a)),a&&b.debug("autoScroll: "+a+"px")),!r.node)return r.tree.warn("Ignored dragover for non-node"),f;var ft,vt,st,ot,o=null,yt=r.tree,pt=yt.options,d=pt.dnd5,s=r.node,w=r.otherNode,ht="center",at=n(s.span),wt=at.find("span.fancytree-title");if(!1===t)return yt.debug("Ignored dragover, since dragenter returned false."),!1;if(("string"==typeof t&&n.error("assert failed: dragenter returned string"),vt=at.offset(),ot=(i.pageY-vt.top)/at.height(),t.after&&.75<ot?o="after":!t.over&&t.after&&.5<ot?o="after":t.before&&ot<=.25?o="before":!t.over&&t.before&&ot<=.5?o="before":t.over&&(o="over"),d.preventVoidMoves&&"move"===r.dropEffect&&(s===w?(s.debug("Drop over source node prevented."),o=null):"before"===o&&w&&s===w.getNextSibling()?(s.debug("Drop after source node prevented."),o=null):"after"===o&&w&&s===w.getPrevSibling()?(s.debug("Drop before source node prevented."),o=null):"over"===o&&w&&w.parent===s&&w.isLastSibling()&&(s.debug("Drop last child over own parent prevented."),o=null)),(r.hitMode=o)&&d.dragOver)&&(e(i,r),d.dragOver(s,r),k(i,r,!!o),o=r.hitMode),"after"===(f=o)||"before"===o||"over"===o){switch(ft=d.dropMarkerOffsetX||0,o){case"before":ht="top";ft+=d.dropMarkerInsertOffsetX||0;break;case"after":ht="bottom";ft+=d.dropMarkerInsertOffsetX||0}st={my:"left"+ut(ft)+" center",at:"left "+ht,of:wt};pt.rtl&&(st.my="right"+ut(-ft)+" center",st.at="right "+ht);u.toggleClass(it,"after"===o).toggleClass(l,"over"===o).toggleClass(rt,"before"===o).show().position(c.fixPositionOptions(st))}else u.hide();return n(s.span).toggleClass(et,"after"===o||"before"===o||"over"===o).toggleClass(it,"after"===o).toggleClass(rt,"before"===o).toggleClass(v,"over"===o).toggleClass(y,!1===o),o}function st(o){var et,nt,st,ht,tt,w,rt,b=this,d=b.options.dnd5,ut=null,h=c.getNode(o),it=o.dataTransfer||o.originalEvent.dataTransfer,a={tree:b,node:h,options:b.options,originalEvent:o.originalEvent,widget:b.widget,hitMode:t,dataTransfer:it,otherNode:i||null,otherNodeList:r||null,otherNodeData:null,useDefaultImage:!0,dropEffect:void 0,dropEffectSuggested:void 0,effectAllowed:void 0,files:null,isCancelled:void 0,isMove:void 0},ft,ct;switch(o.type){case"dragenter":if(s=null,!h){b.debug("Ignore non-node "+o.type+": "+o.target.tagName+"."+o.target.className);t=!1;break}if(n(h.span).addClass(l).removeClass(v+" "+y),st=0<=n.inArray(p,it.types),d.preventNonNodes&&!st){h.debug("Reject dropping a non-node.");t=!1;break}if(d.preventForeignNodes&&(!i||i.tree!==h.tree)){h.debug("Reject dropping a foreign node.");t=!1;break}if(d.preventSameParent&&a.otherNode&&a.otherNode.tree===h.tree&&h.parent===a.otherNode.parent){h.debug("Reject dropping as sibling (same parent).");t=!1;break}if(d.preventRecursion&&a.otherNode&&a.otherNode.tree===h.tree&&h.isDescendantOf(a.otherNode)){h.debug("Reject dropping below own ancestor.");t=!1;break}u.show();e(o,a);ht=d.dragEnter(h,a);tt=!!(w=ht)&&(rt=n.isPlainObject(w)?{over:!!w.over,before:!!w.before,after:!!w.after}:n.isArray(w)?{over:0<=n.inArray("over",w),before:0<=n.inArray("before",w),after:0<=n.inArray("after",w)}:{over:!0===w||"over"===w,before:!0===w||"before"===w,after:!0===w||"after"===w},0!==Object.keys(rt).length&&rt);k(o,a,ut=(t=tt)&&(tt.over||tt.before||tt.after));break;case"dragover":if(!h){b.debug("Ignore non-node "+o.type+": "+o.target.tagName+"."+o.target.className);break}e(o,a);ut=!!(f=ot(o,a));("over"===f||!1===f)&&!h.expanded&&!1!==h.hasChildren()?s?d.autoExpandMS&&Date.now()-s>d.autoExpandMS&&(!d.dragExpand||!1!==d.dragExpand(h,a))&&h.setExpanded():s=Date.now():s=null;break;case"dragleave":if(!h){b.debug("Ignore non-node "+o.type+": "+o.target.tagName+"."+o.target.className);break}if(!n(h.span).hasClass(l)){h.debug("Ignore dragleave (multi).");break}n(h.span).removeClass(l+" "+v+" "+y);h.scheduleAction("cancel");d.dragLeave(h,a);u.hide();break;case"drop":if(0<=n.inArray(p,it.types)&&(nt=it.getData(p),b.info(o.type+": getData('application/x-fancytree-node'): '"+nt+"'")),nt||(nt=it.getData("text"),b.info(o.type+": getData('text'): '"+nt+"'")),nt)try{void 0!==(et=JSON.parse(nt)).title&&(a.otherNodeData=et)}catch(o){}b.debug(o.type+": nodeData: '"+nt+"', otherNodeData: ",a.otherNodeData);n(h.span).removeClass(l+" "+v+" "+y);a.hitMode=f;e(o,a);a.isCancelled=!f;ft=i&&i.span;ct=i&&i.tree;d.dragDrop(h,a);o.preventDefault();ft&&!document.body.contains(ft)&&(ct===b?(b.debug("Drop handler removed source element: generating dragEnd."),d.dragEnd(i,a)):b.warn("Drop handler removed source element: dragend event may be lost."));g()}if(ut)return o.preventDefault(),!1}var d,h,c=n.ui.fancytree,ft=/Mac/.test(navigator.platform),nt="fancytree-drag-source",tt="fancytree-drag-remove",v="fancytree-drop-accept",it="fancytree-drop-after",rt="fancytree-drop-before",l="fancytree-drop-over",y="fancytree-drop-reject",et="fancytree-drop-target",p="application/x-fancytree-node",u=null,i=null,r=null,a=null,t=null,w=null,b=null,o=null,f=null,s=null;return n.ui.fancytree.getDragNodeList=function(){return r||[]},n.ui.fancytree.getDragNode=function(){return i},n.ui.fancytree.registerExtension({name:"dnd5",version:"2.34.0",options:{autoExpandMS:1500,dropMarkerInsertOffsetX:-16,dropMarkerOffsetX:-24,multiSource:!1,effectAllowed:"all",dropEffectDefault:"move",preventForeignNodes:!1,preventNonNodes:!1,preventRecursion:!0,preventSameParent:!1,preventVoidMoves:!0,scroll:!0,scrollSensitivity:20,scrollSpeed:5,setTextTypeJson:!1,dragStart:null,dragDrag:n.noop,dragEnd:n.noop,dragEnter:null,dragOver:n.noop,dragExpand:n.noop,dragDrop:n.noop,dragLeave:n.noop},treeInit:function(t){var v,s=t.tree,l=t.options,y=l.glyph||null,o=l.dnd5;0<=n.inArray("dnd",l.extensions)&&n.error("Extensions 'dnd' and 'dnd5' are mutually exclusive.");o.dragStop&&n.error("dragStop is not used by ext-dnd5. Use dragEnd instead.");null!=o.preventRecursiveMoves&&n.error("preventRecursiveMoves was renamed to preventRecursion.");o.dragStart&&c.overrideMethod(t.options,"createNode",function(n,t){this._super.apply(this,arguments);t.node.span?t.node.span.draggable=!0:t.node.warn("Cannot add `draggable`: no span tag")});this._superApply(arguments);this.$container.addClass("fancytree-ext-dnd5");v=n("<span>").appendTo(this.$container);this.$scrollParent=v.scrollParent();v.remove();(u=n("#fancytree-drop-marker")).length||(u=n("<div id='fancytree-drop-marker'><\/div>").hide().css({"z-index":1e3,"pointer-events":"none"}).prependTo("body"),y&&c.setSpanIcon(u[0],y.map._addClass,y.map.dropMarker));u.toggleClass("fancytree-rtl",!!l.rtl);o.dragStart&&s.$container.on("dragstart drag dragend",function(t){var y,l=this,v=l.options.dnd5,u=c.getNode(t),s=t.dataTransfer||t.originalEvent.dataTransfer,o={tree:l,node:u,options:l.options,originalEvent:t.originalEvent,widget:l.widget,dataTransfer:s,useDefaultImage:!0,dropEffect:void 0,dropEffectSuggested:void 0,effectAllowed:void 0,files:void 0,isCancelled:void 0,isMove:void 0},w;switch(t.type){case"dragstart":if(!u)return l.info("Ignored dragstart on a non-node."),!1;i=u;!1===v.multiSource?r=[u]:!0===v.multiSource?(r=l.getSelectedNodes(),u.isSelected()||r.unshift(u)):r=v.multiSource(u,o);(a=n(n.map(r,function(n){return n.span}))).addClass(nt);w=u.toDict();w.treeId=u.tree._id;y=JSON.stringify(w);try{s.setData(p,y);s.setData("text/html",n(u.span).html());s.setData("text/plain",u.title)}catch(t){l.warn("Could not set data (IE only accepts 'text') - "+t)}return v.setTextTypeJson?s.setData("text",y):s.setData("text",u.title),e(t,o),!1===v.dragStart(u,o)?(g(),!1):(k(t,o),h=null,o.useDefaultImage&&(d=n(u.span).find(".fancytree-title"),r&&1<r.length&&(h=n("<span class='fancytree-childcounter'/>").text("+"+(r.length-1)).appendTo(d)),s.setDragImage&&s.setDragImage(d[0],-10,-10)),!0);case"drag":e(t,o);v.dragDrag(u,o);k(t,o);a.toggleClass(tt,o.isMove);break;case"dragend":e(t,o);g();o.isCancelled=!f;v.dragEnd(u,o,!f)}}.bind(s));o.dragEnter&&s.$container.on("dragenter dragover dragleave drop",st.bind(s))}}),n.ui.fancytree},"function"==typeof define&&define.amd?define(["jquery","./jquery.fancytree"],u):"object"==typeof module&&module.exports?(require("./jquery.fancytree"),module.exports=u(require("jquery"))):u(jQuery),f=function(n){"use strict";var t=/Mac/.test(navigator.platform),i=n.ui.fancytree.escapeHtml,r=n.ui.fancytree.unescapeHtml;return n.ui.fancytree._FancytreeNodeClass.prototype.editStart=function(){var i,t=this,u=this.tree,f=u.ext.edit,e=u.options.edit,s=n(".fancytree-title",t.span),o={node:t,tree:u,options:u.options,isNew:n(t[u.statusClassPropName]).hasClass("fancytree-edit-new"),orgTitle:t.title,input:null,dirty:!1};if(!1===e.beforeEdit.call(t,{type:"beforeEdit"},o))return!1;n.ui.fancytree.assert(!f.currentNode,"recursive edit");f.currentNode=this;f.eventData=o;u.widget._unbind();f.lastDraggableAttrValue=t.span.draggable;f.lastDraggableAttrValue&&(t.span.draggable=!1);n(document).on("mousedown.fancytree-edit",function(i){n(i.target).hasClass("fancytree-edit-input")||t.editEnd(!0,i)});i=n("<input />",{"class":"fancytree-edit-input",type:"text",value:u.options.escapeTitles?o.orgTitle:r(o.orgTitle)});f.eventData.input=i;null!=e.adjustWidthOfs&&i.width(s.width()+e.adjustWidthOfs);null!=e.inputCss&&i.css(e.inputCss);s.html(i);i.focus().change(function(){i.addClass("fancytree-edit-dirty")}).on("keydown",function(i){switch(i.which){case n.ui.keyCode.ESCAPE:t.editEnd(!1,i);break;case n.ui.keyCode.ENTER:return t.editEnd(!0,i),!1}i.stopPropagation()}).blur(function(n){return t.editEnd(!0,n)});e.edit.call(t,{type:"edit"},o)},n.ui.fancytree._FancytreeNodeClass.prototype.editEnd=function(t,r){var e,f=this,s=this.tree,o=s.ext.edit,u=o.eventData,h=s.options.edit,c=n(".fancytree-title",f.span).find("input.fancytree-edit-input");return h.trim&&c.val(n.trim(c.val())),e=c.val(),u.dirty=e!==f.title,u.originalEvent=r,u.save=!1===t?!1:u.isNew?""!==e:u.dirty&&""!==e,!1!==h.beforeClose.call(f,{type:"beforeClose"},u)&&(!u.save||!1!==h.save.call(f,{type:"save"},u))&&(c.removeClass("fancytree-edit-dirty").off(),n(document).off(".fancytree-edit"),u.save?(f.setTitle(s.options.escapeTitles?e:i(e)),f.setFocus()):u.isNew?(f.remove(),f=u.node=null,o.relatedNode.setFocus()):(f.renderTitle(),f.setFocus()),o.eventData=null,o.currentNode=null,o.relatedNode=null,s.widget._bind(),o.lastDraggableAttrValue&&(f.span.draggable=!0),n(s.$container).focus(),u.input=null,h.close.call(f,{type:"close"},u),!0)},n.ui.fancytree._FancytreeNodeClass.prototype.editCreateNode=function(t,i){var r,f=this.tree,u=this;t=t||"child";null==i?i={title:""}:"string"==typeof i?i={title:i}:n.ui.fancytree.assert(n.isPlainObject(i));"child"!==t||this.isExpanded()||!1===this.hasChildren()?((r=this.addNode(i,t)).match=!0,n(r[f.statusClassPropName]).removeClass("fancytree-hide").addClass("fancytree-match"),r.makeVisible().done(function(){n(r[f.statusClassPropName]).addClass("fancytree-edit-new");u.tree.ext.edit.relatedNode=u;r.editStart()})):this.setExpanded().done(function(){u.editCreateNode(t,i)})},n.ui.fancytree._FancytreeClass.prototype.isEditing=function(){return this.ext.edit?this.ext.edit.currentNode:null},n.ui.fancytree._FancytreeNodeClass.prototype.isEditing=function(){return!!this.tree.ext.edit&&this.tree.ext.edit.currentNode===this},n.ui.fancytree.registerExtension({name:"edit",version:"2.34.0",options:{adjustWidthOfs:4,allowEmpty:!1,inputCss:{minWidth:"3em"},triggerStart:["f2","mac+enter","shift+click"],trim:!0,beforeClose:n.noop,beforeEdit:n.noop,close:n.noop,edit:n.noop,save:n.noop},currentNode:null,treeInit:function(n){var t=n.tree;this._superApply(arguments);this.$container.addClass("fancytree-ext-edit").on("fancytreebeforeupdateviewport",function(n){var i=t.isEditing();i&&(i.info("Cancel edit due to scroll event."),i.editEnd(!1,n))})},nodeClick:function(t){var i=n.ui.fancytree.eventToString(t.originalEvent),r=t.options.edit.triggerStart;return"shift+click"===i&&0<=n.inArray("shift+click",r)&&t.originalEvent.shiftKey?(t.node.editStart(),!1):"click"===i&&0<=n.inArray("clickActive",r)&&t.node.isActive()&&!t.node.isEditing()&&n(t.originalEvent.target).hasClass("fancytree-title")?(t.node.editStart(),!1):this._superApply(arguments)},nodeDblclick:function(t){return 0<=n.inArray("dblclick",t.options.edit.triggerStart)?(t.node.editStart(),!1):this._superApply(arguments)},nodeKeydown:function(i){switch(i.originalEvent.which){case 113:if(0<=n.inArray("f2",i.options.edit.triggerStart))return i.node.editStart(),!1;break;case n.ui.keyCode.ENTER:if(0<=n.inArray("mac+enter",i.options.edit.triggerStart)&&t)return i.node.editStart(),!1}return this._superApply(arguments)}}),n.ui.fancytree},"function"==typeof define&&define.amd?define(["jquery","./jquery.fancytree"],f):"object"==typeof module&&module.exports?(require("./jquery.fancytree"),module.exports=f(require("jquery"))):f(jQuery),e=function(n){"use strict";function i(n){return(n+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}var t="__not_found__",r=n.ui.fancytree.escapeHtml;return n.ui.fancytree._FancytreeClass.prototype._applyFilterImpl=function(u,f,e){var a,o,v,c,y,p,l=0,h=this.options,w=h.escapeTitles,k=h.autoCollapse,s=n.extend({},h.filter,e),b="hide"===s.mode,d=!!s.leavesOnly&&!f;if("string"==typeof u){if(""===u)return this.warn("Fancytree passing an empty string as a filter is handled as clearFilter()."),void this.clearFilter();a=s.fuzzy?u.split("").reduce(function(n,t){return n+"[^"+t+"]*"+t}):i(u);v=new RegExp(".*"+a+".*","i");c=new RegExp(i(u),"gi");u=function(t){if(!t.title)return!1;var i,u=w?t.title:0<=(i=t.title).indexOf(">")?n("<div/>").html(i).text():i,f=!!v.test(u);return f&&s.highlight&&(t.titleWithHighlight=w?(y=u.replace(c,function(n){return"￷"+n+"￸"}),r(y).replace(/\uFFF7/g,"<mark>").replace(/\uFFF8/g,"<\/mark>")):u.replace(c,function(n){return"<mark>"+n+"<\/mark>"})),f}}return this.enableFilter=!0,this.lastFilterArgs=arguments,p=this.enableUpdate(!1),this.$div.addClass("fancytree-ext-filter"),b?this.$div.addClass("fancytree-ext-filter-hide"):this.$div.addClass("fancytree-ext-filter-dimm"),this.$div.toggleClass("fancytree-ext-filter-hide-expanders",!!s.hideExpanders),this.rootNode.subMatchCount=0,this.visit(function(n){delete n.match;delete n.titleWithHighlight;n.subMatchCount=0}),(o=this.getRootNode()._findDirectChild(t))&&o.remove(),h.autoCollapse=!1,this.visit(function(n){if(!d||null==n.children){var t=u(n),i=!1;if("skip"===t)return n.visit(function(n){n.match=!1},!0),"skip";!t&&(f||"branch"===t)&&n.parent.match&&(i=t=!0);t&&(l++,n.match=!0,n.visitParents(function(t){t!==n&&(t.subMatchCount+=1);!s.autoExpand||i||t.expanded||(t.setExpanded(!0,{noAnimation:!0,noEvents:!0,scrollIntoView:!1}),t._filterAutoExpanded=!0)},!0))}}),h.autoCollapse=k,0===l&&s.nodata&&b&&(o=s.nodata,n.isFunction(o)&&(o=o()),!0===o?o={}:"string"==typeof o&&(o={title:o}),o=n.extend({statusNodeType:"nodata",key:t,title:this.options.strings.noData},o),this.getRootNode().addNode(o).match=!0),this._callHook("treeStructureChanged",this,"applyFilter"),this.enableUpdate(p),l},n.ui.fancytree._FancytreeClass.prototype.filterNodes=function(n,t){return"boolean"==typeof t&&(t={leavesOnly:t},this.warn("Fancytree.filterNodes() leavesOnly option is deprecated since 2.9.0 / 2015-04-19. Use opts.leavesOnly instead.")),this._applyFilterImpl(n,!1,t)},n.ui.fancytree._FancytreeClass.prototype.filterBranches=function(n,t){return this._applyFilterImpl(n,!0,t)},n.ui.fancytree._FancytreeClass.prototype.clearFilter=function(){var i,r=this.getRootNode()._findDirectChild(t),f=this.options.escapeTitles,u=this.options.enhanceTitle,e=this.enableUpdate(!1);r&&r.remove();delete this.rootNode.match;delete this.rootNode.subMatchCount;this.visit(function(t){t.match&&t.span&&(i=n(t.span).find(">span.fancytree-title"),f?i.text(t.title):i.html(t.title),u&&u({type:"enhanceTitle"},{node:t,$title:i}));delete t.match;delete t.subMatchCount;delete t.titleWithHighlight;t.$subMatchBadge&&(t.$subMatchBadge.remove(),delete t.$subMatchBadge);t._filterAutoExpanded&&t.expanded&&t.setExpanded(!1,{noAnimation:!0,noEvents:!0,scrollIntoView:!1});delete t._filterAutoExpanded});this.enableFilter=!1;this.lastFilterArgs=null;this.$div.removeClass("fancytree-ext-filter fancytree-ext-filter-dimm fancytree-ext-filter-hide");this._callHook("treeStructureChanged",this,"clearFilter");this.enableUpdate(e)},n.ui.fancytree._FancytreeClass.prototype.isFilterActive=function(){return!!this.enableFilter},n.ui.fancytree._FancytreeNodeClass.prototype.isMatched=function(){return!(this.tree.enableFilter&&!this.match)},n.ui.fancytree.registerExtension({name:"filter",version:"2.34.0",options:{autoApply:!0,autoExpand:!1,counter:!0,fuzzy:!1,hideExpandedCounter:!0,hideExpanders:!1,highlight:!0,leavesOnly:!1,nodata:!0,mode:"dimm"},nodeLoadChildren:function(n){var t=n.tree;return this._superApply(arguments).done(function(){t.enableFilter&&t.lastFilterArgs&&n.options.filter.autoApply&&t._applyFilterImpl.apply(t,t.lastFilterArgs)})},nodeSetExpanded:function(n,t){var i=n.node;return delete i._filterAutoExpanded,!t&&n.options.filter.hideExpandedCounter&&i.$subMatchBadge&&i.$subMatchBadge.show(),this._superApply(arguments)},nodeRenderStatus:function(t){var u,i=t.node,f=t.tree,e=t.options.filter,r=n(i.span).find("span.fancytree-title"),o=n(i[f.statusClassPropName]),s=t.options.enhanceTitle,h=t.options.escapeTitles;return u=this._super(t),o.length&&f.enableFilter&&(o.toggleClass("fancytree-match",!!i.match).toggleClass("fancytree-submatch",!!i.subMatchCount).toggleClass("fancytree-hide",!(i.match||i.subMatchCount)),!e.counter||!i.subMatchCount||i.isExpanded()&&e.hideExpandedCounter?i.$subMatchBadge&&i.$subMatchBadge.hide():(i.$subMatchBadge||(i.$subMatchBadge=n("<span class='fancytree-childcounter'/>"),n("span.fancytree-icon, span.fancytree-custom-icon",i.span).append(i.$subMatchBadge)),i.$subMatchBadge.show().text(i.subMatchCount)),!i.span||i.isEditing&&i.isEditing.call(i)||(i.titleWithHighlight?r.html(i.titleWithHighlight):h?r.text(i.title):r.html(i.title),s&&s({type:"enhanceTitle"},{node:i,$title:r}))),u}}),n.ui.fancytree},"function"==typeof define&&define.amd?define(["jquery","./jquery.fancytree"],e):"object"==typeof module&&module.exports?(require("./jquery.fancytree"),module.exports=e(require("jquery"))):e(jQuery),o=function(n){"use strict";function t(t,i,r,u){var o=r.map,f=o[u],e=n(t),s=e.find(".fancytree-childcounter"),h=i+" "+(o._addClass||"");"string"==typeof f?(t.innerHTML="",e.attr("class",h+" "+f).append(s)):f&&(f.text?t.textContent=""+f.text:t.innerHTML=f.html?f.html:"",e.attr("class",h+" "+(f.addClass||"")).append(s))}var i=n.ui.fancytree,r={awesome3:{_addClass:"",checkbox:"icon-check-empty",checkboxSelected:"icon-check",checkboxUnknown:"icon-check icon-muted",dragHelper:"icon-caret-right",dropMarker:"icon-caret-right",error:"icon-exclamation-sign",expanderClosed:"icon-caret-right",expanderLazy:"icon-angle-right",expanderOpen:"icon-caret-down",loading:"icon-refresh icon-spin",nodata:"icon-meh",noExpander:"",radio:"icon-circle-blank",radioSelected:"icon-circle",doc:"icon-file-alt",docOpen:"icon-file-alt",folder:"icon-folder-close-alt",folderOpen:"icon-folder-open-alt"},awesome4:{_addClass:"fa",checkbox:"fa-square-o",checkboxSelected:"fa-check-square-o",checkboxUnknown:"fa-square fancytree-helper-indeterminate-cb",dragHelper:"fa-arrow-right",dropMarker:"fa-long-arrow-right",error:"fa-warning",expanderClosed:"fa-caret-right",expanderLazy:"fa-angle-right",expanderOpen:"fa-caret-down",loading:{html:"<span class='fa fa-spinner fa-pulse' />"},nodata:"fa-meh-o",noExpander:"",radio:"fa-circle-thin",radioSelected:"fa-circle",doc:"fa-file-o",docOpen:"fa-file-o",folder:"fa-folder-o",folderOpen:"fa-folder-open-o"},awesome5:{_addClass:"",checkbox:"far fa-square",checkboxSelected:"far fa-check-square",checkboxUnknown:"fas fa-square fancytree-helper-indeterminate-cb",radio:"far fa-circle",radioSelected:"fas fa-circle",radioUnknown:"far fa-dot-circle",dragHelper:"fas fa-arrow-right",dropMarker:"fas fa-long-arrow-alt-right",error:"fas fa-exclamation-triangle",expanderClosed:"fas fa-caret-right",expanderLazy:"fas fa-angle-right",expanderOpen:"fas fa-caret-down",loading:"fas fa-spinner fa-pulse",nodata:"far fa-meh",noExpander:"",doc:"far fa-file",docOpen:"far fa-file",folder:"far fa-folder",folderOpen:"far fa-folder-open"},bootstrap3:{_addClass:"glyphicon",checkbox:"glyphicon-unchecked",checkboxSelected:"glyphicon-check",checkboxUnknown:"glyphicon-expand fancytree-helper-indeterminate-cb",dragHelper:"glyphicon-play",dropMarker:"glyphicon-arrow-right",error:"glyphicon-warning-sign",expanderClosed:"glyphicon-menu-right",expanderLazy:"glyphicon-menu-right",expanderOpen:"glyphicon-menu-down",loading:"glyphicon-refresh fancytree-helper-spin",nodata:"glyphicon-info-sign",noExpander:"",radio:"glyphicon-remove-circle",radioSelected:"glyphicon-ok-circle",doc:"glyphicon-file",docOpen:"glyphicon-file",folder:"glyphicon-folder-close",folderOpen:"glyphicon-folder-open"},material:{_addClass:"material-icons",checkbox:{text:"check_box_outline_blank"},checkboxSelected:{text:"check_box"},checkboxUnknown:{text:"indeterminate_check_box"},dragHelper:{text:"play_arrow"},dropMarker:{text:"arrow-forward"},error:{text:"warning"},expanderClosed:{text:"chevron_right"},expanderLazy:{text:"last_page"},expanderOpen:{text:"expand_more"},loading:{text:"autorenew",addClass:"fancytree-helper-spin"},nodata:{text:"info"},noExpander:{text:""},radio:{text:"radio_button_unchecked"},radioSelected:{text:"radio_button_checked"},doc:{text:"insert_drive_file"},docOpen:{text:"insert_drive_file"},folder:{text:"folder"},folderOpen:{text:"folder_open"}}};return n.ui.fancytree.registerExtension({name:"glyph",version:"2.34.0",options:{preset:null,map:{}},treeInit:function(t){var f=t.tree,u=t.options.glyph;u.preset?(i.assert(!!r[u.preset],"Invalid value for `options.glyph.preset`: "+u.preset),u.map=n.extend({},r[u.preset],u.map)):f.warn("ext-glyph: missing `preset` option.");this._superApply(arguments);f.$container.addClass("fancytree-ext-glyph")},nodeRenderStatus:function(r){var s,h,f,u=r.node,o=n(u.span),e=r.options.glyph;return h=this._super(r),u.isRoot()||((f=o.children("span.fancytree-expander").get(0))&&t(f,"fancytree-expander",e,u.expanded&&u.hasChildren()?"expanderOpen":u.isUndefined()?"expanderLazy":u.hasChildren()?"expanderClosed":"noExpander"),(f=u.tr?n("td",u.tr).find("span.fancytree-checkbox").get(0):o.children("span.fancytree-checkbox").get(0))&&(s=i.evalOption("checkbox",u,u,e,!1),u.parent&&u.parent.radiogroup||"radio"===s?t(f,"fancytree-checkbox fancytree-radio",e,u.selected?"radioSelected":"radio"):t(f,"fancytree-checkbox",e,u.selected?"checkboxSelected":u.partsel?"checkboxUnknown":"checkbox")),(f=o.children("span.fancytree-icon").get(0))&&t(f,"fancytree-icon",e,u.statusNodeType?u.statusNodeType:u.folder?u.expanded&&u.hasChildren()?"folderOpen":"folder":u.expanded?"docOpen":"doc")),h},nodeSetStatus:function(i,r){var e,u,o=i.options.glyph,f=i.node;return e=this._superApply(arguments),"error"!==r&&"loading"!==r&&"nodata"!==r||(f.parent?(u=n("span.fancytree-expander",f.span).get(0))&&t(u,"fancytree-expander",o,r):(u=n(".fancytree-statusnode-"+r,f[this.nodeContainerAttrName]).find("span.fancytree-icon").get(0))&&t(u,"fancytree-icon",o,r)),e}}),n.ui.fancytree},"function"==typeof define&&define.amd?define(["jquery","./jquery.fancytree"],o):"object"==typeof module&&module.exports?(require("./jquery.fancytree"),module.exports=o(require("jquery"))):o(jQuery),s=function(n){"use strict";function r(t,i){var r,u=null,f=0;return t.children().each(function(){if(i<=f)return u=n(this),!1;r=n(this).prop("colspan");f+=r||1}),u}function u(i,u){var f,h,c,l,a,s,o=i.closest("td"),e=null;switch(u){case t.LEFT:e=o.prev();break;case t.RIGHT:e=o.next();break;case t.UP:case t.DOWN:for(f=o.parent(),c=f,a=o.get(0),s=0,c.children().each(function(){if(this===a)return!1;l=n(this).prop("colspan");s+=l||1}),h=s;(f=u===t.UP?f.prev():f.next()).length&&(f.is(":hidden")||!(e=r(f,h))||!e.find(":input,a").length););}return e}var t=n.ui.keyCode,i={text:[t.UP,t.DOWN],checkbox:[t.UP,t.DOWN,t.LEFT,t.RIGHT],link:[t.UP,t.DOWN,t.LEFT,t.RIGHT],radiobutton:[t.UP,t.DOWN,t.LEFT,t.RIGHT],"select-one":[t.LEFT,t.RIGHT],"select-multiple":[t.LEFT,t.RIGHT]};return n.ui.fancytree.registerExtension({name:"gridnav",version:"2.34.0",options:{autofocusInput:!1,handleCursorKeys:!0},treeInit:function(t){this._requireExtension("table",!0,!0);this._superApply(arguments);this.$container.addClass("fancytree-ext-gridnav");this.$container.on("focusin",function(i){var u,r=n.ui.fancytree.getNode(i.target);r&&!r.isActive()&&(u=t.tree._makeHookContext(r,i),t.tree._callHook("nodeSetActive",u,!0))})},nodeSetActive:function(t,i){var f=t.options.gridnav,r=t.node,e=t.originalEvent||{},u=n(e.target).is(":input");i=!1!==i;this._superApply(arguments);i&&(t.options.titlesTabbable?(u||(n(r.span).find("span.fancytree-title").focus(),r.setFocus()),t.tree.$container.attr("tabindex","-1")):f.autofocusInput&&!u&&n(r.tr||r.span).find(":input:enabled").first().focus())},nodeKeydown:function(t){var r,s,e,h=t.options.gridnav,o=t.originalEvent,f=n(o.target);return f.is(":input:enabled")?r=f.prop("type"):f.is("a")&&(r="link"),r&&h.handleCursorKeys?!((s=i[r])&&0<=n.inArray(o.which,s)&&(e=u(f,o.which))&&e.length)||(e.find(":input:enabled,a").focus(),!1):this._superApply(arguments)}}),n.ui.fancytree},"function"==typeof define&&define.amd?define(["jquery","./jquery.fancytree","./jquery.fancytree.table"],s):"object"==typeof module&&module.exports?(require("./jquery.fancytree.table"),module.exports=s(require("jquery"))):s(jQuery),h=function(n){"use strict";return n.ui.fancytree.registerExtension({name:"multi",version:"2.34.0",options:{allowNoSelect:!1,mode:"sameParent"},treeInit:function(t){this._superApply(arguments);this.$container.addClass("fancytree-ext-multi");1===t.options.selectMode&&n.error("Fancytree ext-multi: selectMode: 1 (single) is not compatible.")},nodeClick:function(t){var i=t.tree,r=t.node,u=i.getActiveNode()||i.getFirstChild(),f="checkbox"===t.targetType,e="expander"===t.targetType;switch(n.ui.fancytree.eventToString(t.originalEvent)){case"click":if(e)break;f||(i.selectAll(!1),r.setSelected());break;case"shift+click":i.visitRows(function(n){if(n.setSelected(),n===r)return!1},{start:u,reverse:u.isBelowOf(r)});break;case"ctrl+click":case"meta+click":return void r.toggleSelected()}return this._superApply(arguments)},nodeKeydown:function(t){var i=t.tree,u=t.node,r=t.originalEvent;switch(n.ui.fancytree.eventToString(r)){case"up":case"down":i.selectAll(!1);u.navigate(r.which,!0);i.getActiveNode().setSelected();break;case"shift+up":case"shift+down":u.navigate(r.which,!0);i.getActiveNode().setSelected()}return this._superApply(arguments)}}),n.ui.fancytree},"function"==typeof define&&define.amd?define(["jquery","./jquery.fancytree"],h):"object"==typeof module&&module.exports?(require("./jquery.fancytree"),module.exports=h(require("jquery"))):h(jQuery),c=function(n){"use strict";var f=null,e=window.localStorage?{get:function(n){return window.localStorage.getItem(n)},set:function(n,t){window.localStorage.setItem(n,t)},remove:function(n){window.localStorage.removeItem(n)}}:null,o=window.sessionStorage?{get:function(n){return window.sessionStorage.getItem(n)},set:function(n,t){window.sessionStorage.setItem(n,t)},remove:function(n){window.sessionStorage.removeItem(n)}}:null,s=n.ui.fancytree.assert,r="active",i="expanded",u="focus",t="selected";return"function"==typeof Cookies?f={get:Cookies.get,set:function(n,t){Cookies.set(n,t,this.options.persist.cookie)},remove:Cookies.remove}:n&&"function"==typeof n.cookie&&(f={get:n.cookie,set:function(t,i){n.cookie.set(t,i,this.options.persist.cookie)},remove:n.removeCookie}),n.ui.fancytree._FancytreeClass.prototype.clearPersistData=function(n){var f=this.ext.persist,e=f.cookiePrefix;0<=(n=n||"active expanded focus selected").indexOf(r)&&f._data(e+r,null);0<=n.indexOf(i)&&f._data(e+i,null);0<=n.indexOf(u)&&f._data(e+u,null);0<=n.indexOf(t)&&f._data(e+t,null)},n.ui.fancytree._FancytreeClass.prototype.clearCookies=function(n){return this.warn("'tree.clearCookies()' is deprecated since v2.27.0: use 'clearPersistData()' instead."),this.clearPersistData(n)},n.ui.fancytree._FancytreeClass.prototype.getPersistData=function(){var n=this.ext.persist,e=n.cookiePrefix,o=n.cookieDelimiter,f={};return f[r]=n._data(e+r),f[i]=(n._data(e+i)||"").split(o),f[t]=(n._data(e+t)||"").split(o),f[u]=n._data(e+u),f},n.ui.fancytree.registerExtension({name:"persist",version:"2.34.0",options:{cookieDelimiter:"~",cookiePrefix:void 0,cookie:{raw:!1,expires:"",path:"",domain:"",secure:!1},expandLazy:!1,expandOpts:void 0,fireActivate:!0,overrideSource:!0,store:"auto",types:"active expanded focus selected"},_data:function(n,t){var i=this._local.store;if(void 0===t)return i.get.call(this,n);null===t?i.remove.call(this,n):i.set.call(this,n,t)},_appendKey:function(t,i,r){i=""+i;var f=this._local,e=this.options.persist.cookieDelimiter,o=f.cookiePrefix+t,s=f._data(o),u=s?s.split(e):[],h=n.inArray(i,u);0<=h&&u.splice(h,1);r&&u.push(i);f._data(o,u.join(e))},treeInit:function(h){var a=h.tree,v=h.options,c=this._local,l=this.options.persist;return c.cookiePrefix=l.cookiePrefix||"fancytree-"+a._id+"-",c.storeActive=0<=l.types.indexOf(r),c.storeExpanded=0<=l.types.indexOf(i),c.storeSelected=0<=l.types.indexOf(t),c.storeFocus=0<=l.types.indexOf(u),c.store=null,"auto"===l.store&&(l.store=e?"local":"cookie"),n.isPlainObject(l.store)?c.store=l.store:"cookie"===l.store?c.store=f:"local"===l.store?c.store="local"===l.store?e:o:"session"===l.store&&(c.store="local"===l.store?e:o),s(c.store,"Need a valid store."),a.$div.on("fancytreeinit",function(f){if(!1!==a._triggerTreeEvent("beforeRestore",null,{})){var o,h,s,e,y=c._data(c.cookiePrefix+u),p=!1===l.fireActivate;o=c._data(c.cookiePrefix+i);s=o&&o.split(l.cookieDelimiter);(c.storeExpanded?function f(t,r,u,e,o){var s,l,a,h,y=!1,p=t.options.persist.expandOpts,v=[],c=[];for(u=u||[],o=o||n.Deferred(),s=0,a=u.length;s<a;s++)l=u[s],(h=t.getNodeByKey(l))?e&&h.isUndefined()?(y=!0,t.debug("_loadLazyNodes: "+h+" is lazy: loading..."),"expand"===e?v.push(h.setExpanded(!0,p)):v.push(h.load())):(t.debug("_loadLazyNodes: "+h+" already loaded."),h.setExpanded(!0,p)):(c.push(l),t.debug("_loadLazyNodes: "+h+" was not yet found."));return n.when.apply(n,v).always(function(){if(y&&0<c.length)f(t,r,c,e,o);else{if(c.length)for(t.warn("_loadLazyNodes: could not load those keys: ",c),s=0,a=c.length;s<a;s++)l=u[s],r._appendKey(i,u[s],!1);o.resolve()}}),o}(a,c,s,!!l.expandLazy&&"expand",null):(new n.Deferred).resolve()).done(function(){if(c.storeSelected){if(o=c._data(c.cookiePrefix+t))for(s=o.split(l.cookieDelimiter),h=0;h<s.length;h++)(e=a.getNodeByKey(s[h]))?(void 0===e.selected||l.overrideSource&&!1===e.selected)&&(e.selected=!0,e.renderStatus()):c._appendKey(t,s[h],!1);3===a.options.selectMode&&a.visit(function(n){if(n.selected)return n.fixSelection3AfterClick(),"skip"})}c.storeActive&&(!(o=c._data(c.cookiePrefix+r))||!v.persist.overrideSource&&a.activeNode||(e=a.getNodeByKey(o))&&(e.debug("persist: set active",o),e.setActive(!0,{noFocus:!0,noEvents:p})));c.storeFocus&&y&&(e=a.getNodeByKey(y))&&(a.options.titlesTabbable?n(e.span).find(".fancytree-title").focus():n(a.$container).focus());a._triggerTreeEvent("restore",null,{})})}}),this._superApply(arguments)},nodeSetActive:function(n,t){var u,i=this._local;return t=!1!==t,u=this._superApply(arguments),i.storeActive&&i._data(i.cookiePrefix+r,this.activeNode?this.activeNode.key:null),u},nodeSetExpanded:function(n,t){var r,f=n.node,u=this._local;return t=!1!==t,r=this._superApply(arguments),u.storeExpanded&&u._appendKey(i,f.key,t),r},nodeSetFocus:function(n,t){var r,i=this._local;return t=!1!==t,r=this._superApply(arguments),i.storeFocus&&i._data(i.cookiePrefix+u,this.focusNode?this.focusNode.key:null),r},nodeSetSelected:function(i,r){var e,f,o=i.tree,s=i.node,u=this._local;return r=!1!==r,e=this._superApply(arguments),u.storeSelected&&(3===o.options.selectMode?(f=(f=n.map(o.getSelectedNodes(!0),function(n){return n.key})).join(i.options.persist.cookieDelimiter),u._data(u.cookiePrefix+t,f)):u._appendKey(t,s.key,s.selected)),e}}),n.ui.fancytree},"function"==typeof define&&define.amd?define(["jquery","./jquery.fancytree"],c):"object"==typeof module&&module.exports?(require("./jquery.fancytree"),module.exports=c(require("jquery"))):c(jQuery),l=function(n){"use strict";function t(t,i){i=i||"";t||n.error("Assertion failed "+i)}function i(n,t){n.visit(function(n){var i=n.tr;if(i&&(i.style.display=n.hide||!t?"none":""),!n.expanded)return"skip"})}return n.ui.fancytree.registerExtension({name:"table",version:"2.34.0",options:{checkboxColumnIdx:null,indentation:16,mergeStatusColumns:!0,nodeColumnIdx:0},treeInit:function(i){var h,s,u,o,r=i.tree,f=i.options,c=f.table,e=r.widget.element;if(null!=c.customStatus&&(null==f.renderStatusColumns?(r.warn("The 'customStatus' option is deprecated since v2.15.0. Use 'renderStatusColumns' instead."),f.renderStatusColumns=c.customStatus):n.error("The 'customStatus' option is deprecated since v2.15.0. Use 'renderStatusColumns' only instead.")),f.renderStatusColumns&&!0===f.renderStatusColumns&&(f.renderStatusColumns=f.renderColumns),e.addClass("fancytree-container fancytree-ext-table"),(o=e.find(">tbody")).length||(e.find(">tr").length&&n.error("Expected table > tbody > tr. If you see this please open an issue."),o=n("<tbody>").appendTo(e)),r.tbody=o[0],r.columnCount=n("thead >tr",e).last().find(">th",e).length,(u=o.children("tr").first()).length)s=u.children("td").length,r.columnCount&&s!==r.columnCount&&(r.warn("Column count mismatch between thead ("+r.columnCount+") and tbody ("+s+"): using tbody."),r.columnCount=s),u=u.clone();else for(t(1<=r.columnCount,"Need either <thead> or <tbody> with <td> elements to determine column count."),u=n("<tr />"),h=0;h<r.columnCount;h++)u.append("<td />");u.find(">td").eq(c.nodeColumnIdx).html("<span class='fancytree-node' />");f.aria&&(u.attr("role","row"),u.find("td").attr("role","gridcell"));r.rowFragment=document.createDocumentFragment();r.rowFragment.appendChild(u.get(0));o.empty();r.statusClassPropName="tr";r.ariaPropName="tr";this.nodeContainerAttrName="tr";r.$container=e;this._superApply(arguments);n(r.rootNode.ul).remove();r.rootNode.ul=null;this.$container.attr("tabindex",f.tabindex);f.aria&&r.$container.attr("role","treegrid").attr("aria-readonly",!0)},nodeRemoveChildMarkup:function(t){t.node.visit(function(t){t.tr&&(n(t.tr).remove(),t.tr=null)})},nodeRemoveMarkup:function(t){var i=t.node;i.tr&&(n(i.tr).remove(),i.tr=null);this.nodeRemoveChildMarkup(t)},nodeRender:function(r,u,f,e,o){var v,d,y,g,c,p,a,w,h=r.tree,s=r.node,l=r.options,nt=!s.parent,b,tt,k,it;if(!1!==h._enableUpdate){if(o||(r.hasCollapsedParents=s.parent&&!s.parent.expanded),!nt)if(s.tr&&u&&this.nodeRemoveMarkup(r),s.tr)u?this.nodeRenderTitle(r):this.nodeRenderStatus(r);else{if(r.hasCollapsedParents&&!f)return;c=h.rowFragment.firstChild.cloneNode(!0);t(p=function(i){var e,r,f=i.parent,u=f?f.children:null;if(u&&1<u.length&&u[0]!==i)for(t((r=u[n.inArray(i,u)-1]).tr);r.children&&r.children.length&&(e=r.children[r.children.length-1]).tr;)r=e;else r=f;return r}(s));!0===e&&o?c.style.display="none":f&&r.hasCollapsedParents&&(c.style.display="none");p.tr?(k=p.tr,it=c,k.parentNode.insertBefore(it,k.nextSibling)):(t(!p.parent,"prev. row must have a tr, or be system root"),b=h.tbody,tt=c,b.insertBefore(tt,b.firstChild));s.tr=c;s.key&&l.generateIds&&(s.tr.id=l.idPrefix+s.key);(s.tr.ftnode=s).span=n("span.fancytree-node",s.tr).get(0);this.nodeRenderTitle(r);l.createNode&&l.createNode.call(h,{type:"createNode"},r)}if(l.renderNode&&l.renderNode.call(h,{type:"renderNode"},r),(v=s.children)&&(nt||f||s.expanded))for(y=0,g=v.length;y<g;y++)(w=n.extend({},r,{node:v[y]})).hasCollapsedParents=w.hasCollapsedParents||!s.expanded,this.nodeRender(w,u,f,e,!0);v&&!o&&(a=s.tr||null,d=h.tbody.firstChild,s.visit(function(n){if(n.tr){if(n.parent.expanded||"none"===n.tr.style.display||(n.tr.style.display="none",i(n,!1)),n.tr.previousSibling!==a){s.debug("_fixOrder: mismatch at node: "+n);var t=a?a.nextSibling:d;h.tbody.insertBefore(n.tr,t)}a=n.tr}}))}},nodeRenderTitle:function(t,i){var e,o,f=t.tree,u=t.node,r=t.options,s=u.isStatusNode();return o=this._super(t,i),u.isRootNode()||(r.checkbox&&!s&&null!=r.table.checkboxColumnIdx&&(e=n("span.fancytree-checkbox",u.span),n(u.tr).find("td").eq(+r.table.checkboxColumnIdx).html(e)),this.nodeRenderStatus(t),s?r.renderStatusColumns?r.renderStatusColumns.call(f,{type:"renderStatusColumns"},t):r.table.mergeStatusColumns&&u.isTopLevel()&&n(u.tr).find(">td").eq(0).prop("colspan",f.columnCount).text(u.title).addClass("fancytree-status-merged").nextAll().remove():r.renderColumns&&r.renderColumns.call(f,{type:"renderColumns"},t)),o},nodeRenderStatus:function(t){var r,i=t.node,u=t.options;this._super(t);n(i.tr).removeClass("fancytree-node");r=(i.getLevel()-1)*u.table.indentation;u.rtl?n(i.span).css({paddingRight:r+"px"}):n(i.span).css({paddingLeft:r+"px"})},nodeSetExpanded:function(t,r,u){function e(n){i(t.node,r);n?r&&t.options.autoScroll&&!u.noAnimation&&t.node.hasChildren()?t.node.getLastChild().scrollIntoView(!0,{topNode:t.node}).always(function(){u.noEvents||t.tree._triggerNodeEvent(r?"expand":"collapse",t);f.resolveWith(t.node)}):(u.noEvents||t.tree._triggerNodeEvent(r?"expand":"collapse",t),f.resolveWith(t.node)):(u.noEvents||t.tree._triggerNodeEvent(r?"expand":"collapse",t),f.rejectWith(t.node))}if(r=!1!==r,t.node.expanded&&r||!t.node.expanded&&!r)return this._superApply(arguments);var f=new n.Deferred,o=n.extend({},u,{noEvents:!0,noAnimation:!0});return u=u||{},this._super(t,r,o).done(function(){e(!0)}).fail(function(){e(!1)}),f.promise()},nodeSetStatus:function(t,i){if("ok"===i){var u=t.node,r=u.children?u.children[0]:null;r&&r.isStatusNode()&&n(r.tr).remove()}return this._superApply(arguments)},treeClear:function(){return this.nodeRemoveChildMarkup(this._makeHookContext(this.rootNode)),this._superApply(arguments)},treeDestroy:function(){return this.$container.find("tbody").empty(),this.$source&&this.$source.removeClass("fancytree-helper-hidden"),this._superApply(arguments)}}),n.ui.fancytree},"function"==typeof define&&define.amd?define(["jquery","./jquery.fancytree"],l):"object"==typeof module&&module.exports?(require("./jquery.fancytree"),module.exports=l(require("jquery"))):l(jQuery),a=function(n){"use strict";return n.ui.fancytree.registerExtension({name:"themeroller",version:"2.34.0",options:{activeClass:"ui-state-active",addClass:"ui-corner-all",focusClass:"ui-state-focus",hoverClass:"ui-state-hover",selectedClass:"ui-state-highlight"},treeInit:function(t){var i=t.widget.element,r=t.options.themeroller;this._superApply(arguments);"TABLE"===i[0].nodeName?(i.addClass("ui-widget ui-corner-all"),i.find(">thead tr").addClass("ui-widget-header"),i.find(">tbody").addClass("ui-widget-conent")):i.addClass("ui-widget ui-widget-content ui-corner-all");i.on("mouseenter mouseleave",".fancytree-node",function(t){var i=n.ui.fancytree.getNode(t.target),u="mouseenter"===t.type;n(i.tr?i.tr:i.span).toggleClass(r.hoverClass+" "+r.addClass,u)})},treeDestroy:function(n){this._superApply(arguments);n.widget.element.removeClass("ui-widget ui-widget-content ui-corner-all")},nodeRenderStatus:function(t){var r={},u=t.node,f=n(u.tr?u.tr:u.span),i=t.options.themeroller;this._super(t);r[i.activeClass]=!1;r[i.focusClass]=!1;r[i.selectedClass]=!1;u.isActive()&&(r[i.activeClass]=!0);u.hasFocus()&&(r[i.focusClass]=!0);u.isSelected()&&!u.isActive()&&(r[i.selectedClass]=!0);f.toggleClass(i.activeClass,r[i.activeClass]);f.toggleClass(i.focusClass,r[i.focusClass]);f.toggleClass(i.selectedClass,r[i.selectedClass]);f.addClass(i.addClass)}}),n.ui.fancytree},"function"==typeof define&&define.amd?define(["jquery","./jquery.fancytree"],a):"object"==typeof module&&module.exports?(require("./jquery.fancytree"),module.exports=a(require("jquery"))):a(jQuery),v=function(n){"use strict";function i(t,i){var r=n("#"+(t="fancytree-style-"+t));if(!i)return r.remove(),null;r.length||(r=n("<style />").attr("id",t).addClass("fancytree-style").prop("type","text/css").appendTo("head"));try{r.html(i)}catch(t){r[0].styleSheet.cssText=i}return r}function r(n,t,i,r,u,f){for(var s="#"+n+" span.fancytree-level-",o=[],e=0;e<t;e++)o.push(s+(e+1)+" span.fancytree-title { padding-left: "+(e*i+r)+f+"; }");return o.push("#"+n+" div.ui-effects-wrapper ul li span.fancytree-title, #"+n+" li.fancytree-animating span.fancytree-title { padding-left: "+u+f+"; position: static; width: auto; }"),o.join("\n")}var t=/^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/;return n.ui.fancytree.registerExtension({name:"wide",version:"2.34.0",options:{iconWidth:null,iconSpacing:null,labelSpacing:null,levelOfs:null},treeCreate:function(u){this._superApply(arguments);this.$container.addClass("fancytree-ext-wide");var l,a,v,f,y,o=u.options.wide,c=n("<li id='fancytreeTemp'><span class='fancytree-node'><span class='fancytree-icon' /><span class='fancytree-title' /><\/span><ul />").appendTo(u.tree.$container),p=c.find(".fancytree-icon"),b=c.find("ul"),e=o.iconSpacing||p.css("margin-left"),s=o.iconWidth||p.css("width"),h=o.labelSpacing||"3px",w=o.levelOfs||b.css("padding-left");c.remove();a=e.match(t)[2];e=parseFloat(e,10);v=h.match(t)[2];h=parseFloat(h,10);f=s.match(t)[2];s=parseFloat(s,10);y=w.match(t)[2];a===f&&y===f&&v===f||n.error("iconWidth, iconSpacing, and levelOfs must have the same css measure unit");this._local.measureUnit=f;this._local.levelOfs=parseFloat(w);this._local.lineOfs=(1+(u.options.checkbox?1:0)+(!1===u.options.icon?0:1))*(s+e)+e;this._local.labelOfs=h;this._local.maxDepth=10;i(l=this.$container.uniqueId().attr("id"),r(l,this._local.maxDepth,this._local.levelOfs,this._local.lineOfs,this._local.labelOfs,this._local.measureUnit))},treeDestroy:function(){return i(this.$container.attr("id"),null),this._superApply(arguments)},nodeRenderStatus:function(t){var u,e,f=t.node,o=f.getLevel();return e=this._super(t),o>this._local.maxDepth&&(u=this.$container.attr("id"),this._local.maxDepth*=2,f.debug("Define global ext-wide css up to level "+this._local.maxDepth),i(u,r(u,this._local.maxDepth,this._local.levelOfs,this._local.lineOfs,this._local.labelSpacing,this._local.measureUnit))),n(f.span).addClass("fancytree-level-"+o),e}}),n.ui.fancytree},"function"==typeof define&&define.amd?define(["jquery","./jquery.fancytree"],v):"object"==typeof module&&module.exports?(require("./jquery.fancytree"),module.exports=v(require("jquery"))):v(jQuery),n.ui.fancytree});$(document).ready(function(){function n(n){var t=215,e=n.find("h3"),i=n.find("[data-ellipsis-lead]"),o=e.text().length,r=i.text(),u=r.length,f=o+u;if(f>t){var s=f-t,h=u-s,c=r.substring(0,h);i.text(c+"...")}}$("[data-ellipsis]").each(function(){var t=$(this);n(t)})});$(function(){function n(n,t){n.css("display","none");n.addClass(t);n.slideDown(100,"linear",function(){$(this).css("display","")})}function t(n,t,i){isNaN(i)&&(i=100);n.css("display","flex");n.slideUp(i,"linear",function(){n.css("display","");n.removeClass(t)})}function i(n){n.focus();n.is(":focus")||(n.attr("tabindex","-1"),n.focus())}function r(r,u){var f=r.closest("[data-toggle-root]").find("["+r.attr("data-toggle-element")+"]");r.hasClass("active")?(r.removeClass("active"),r.attr("aria-expanded",!1),t(f,"active",u)):(r.addClass("active"),r.attr("aria-expanded",!0),n(f,"active"),r[0].hasAttribute("data-toggle-focus")&&i($("["+r.attr("data-toggle-focus")+"]")))}$("[data-toggle-element]").click(function(n){r($(this));n.preventDefault();n.stopPropagation()})})