/*! jQuery Fancytree Plugin - 2.8.1 - 2015-03-01T20:28 * https://github.com/mar10/fancytree * Copyright (c) 2015 Martin Wendt; Licensed MIT */ (function (factory) { if (typeof define === 'function' && define.amd) { define(['jquery'], factory); } else { factory(jQuery); } })(function ($) { !(function (a, b, c, d) { 'use strict'; function e(b, c) { b || ((c = c ? ': ' + c : ''), a.error('Fancytree assertion failed' + c)); } function f(a, c) { var d, e, f = b.console ? b.console[a] : null; if (f) try { f.apply(b.console, c); } catch (g) { for (e = '', d = 0; d < c.length; d++) e += c[d]; f(e); } } function g(a) { return !(!a.tree || a.statusNodeType === d); } function h(b) { var c, d, e, f = a.map(a.trim(b).split('.'), function (a) { return parseInt(a, 10); }), g = a.map(Array.prototype.slice.call(arguments, 1), function (a) { return parseInt(a, 10); }); for (c = 0; c < g.length; c++) if (((d = f[c] || 0), (e = g[c] || 0), d !== e)) return d > e; return !0; } function i(a, b, c, d, e) { var f = (function () { var c = b[a], f = d[a], g = b.ext[e], h = function () { return c.apply(b, arguments); }, i = function (a) { return c.apply(b, a); }; return function () { var a = b._local, c = b._super, d = b._superApply; try { return (b._local = g), (b._super = h), (b._superApply = i), f.apply(b, arguments); } finally { (b._local = a), (b._super = c), (b._superApply = d); } }; })(); return f; } function j(b, c, d, e) { for (var f in d) 'function' == typeof d[f] ? 'function' == typeof b[f] ? (b[f] = i(f, b, c, d, e)) : '_' === f.charAt(0) ? (b.ext[e][f] = i(f, b, c, d, e)) : a.error( 'Could not override tree.' + f + ". Use prefix '_' to create tree." + e + '._' + f, ) : 'options' !== f && (b.ext[e][f] = d[f]); } function k(b, c) { return b === d ? a .Deferred(function () { this.resolve(); }) .promise() : a .Deferred(function () { this.resolveWith(b, c); }) .promise(); } function l(b, c) { return b === d ? a .Deferred(function () { this.reject(); }) .promise() : a .Deferred(function () { this.rejectWith(b, c); }) .promise(); } function m(a, b) { return function () { a.resolveWith(b); }; } function n(b) { var c = a.extend({}, b.data()), d = c.json; return delete c.fancytree, d && (delete c.json, (c = a.extend(c, d))), c; } function o(a) { return ( (a = a.toLowerCase()), function (b) { return b.title.toLowerCase().indexOf(a) >= 0; } ); } function p(a) { var b = new RegExp('^' + a, 'i'); return function (a) { return b.test(a.title); }; } function q(b, c) { var d, f, g, h; for ( this.parent = b, this.tree = b.tree, this.ul = null, this.li = null, this.statusNodeType = null, this._isLoading = !1, this._error = null, this.data = {}, d = 0, f = A.length; f > d; d++ ) (g = A[d]), (this[g] = c[g]); c.data && a.extend(this.data, c.data); for (g in c) B[g] || a.isFunction(c[g]) || C[g] || (this.data[g] = c[g]); null == this.key ? this.tree.options.defaultKey ? ((this.key = this.tree.options.defaultKey(this)), e(this.key, 'defaultKey() must return a unique key')) : (this.key = '_' + t._nextNodeKey++) : (this.key = '' + this.key), c.active && (e(null === this.tree.activeNode, 'only one active node allowed'), (this.tree.activeNode = this)), c.selected && (this.tree.lastSelectedNode = this), (this.children = null), (h = c.children), h && h.length && this._setChildren(h), this.tree._callHook('treeRegisterNode', this.tree, !0, this); } function r(b) { (this.widget = b), (this.$div = b.element), (this.options = b.options), this.options && (a.isFunction(this.options.lazyload) && !a.isFunction(this.options.lazyLoad) && (this.options.lazyLoad = function () { return ( t.warn( "The 'lazyload' event is deprecated since 2014-02-25. Use 'lazyLoad' (with uppercase L) instead.", ), b.options.lazyload.apply(this, arguments) ); }), a.isFunction(this.options.loaderror) && a.error( "The 'loaderror' event was renamed since 2014-07-03. Use 'loadError' (with uppercase E) instead.", ), this.options.fx !== d && t.warn("The 'fx' options was replaced by 'toggleEffect' since 2014-11-30.")), (this.ext = {}), (this.data = n(this.$div)), (this._id = a.ui.fancytree._nextId++), (this._ns = '.fancytree-' + this._id), (this.activeNode = null), (this.focusNode = null), (this._hasFocus = null), (this.lastSelectedNode = null), (this.systemFocusElement = null), (this.lastQuicksearchTerm = ''), (this.lastQuicksearchTime = 0), (this.statusClassPropName = 'span'), (this.ariaPropName = 'li'), (this.nodeContainerAttrName = 'li'), this.$div.find('>ul.fancytree-container').remove(); var c, e = { tree: this }; (this.rootNode = new q(e, { title: 'root', key: 'root_' + this._id, children: null, expanded: !0, })), (this.rootNode.parent = null), (c = a('