{"version":3,"sources":["jsdelivr-header.js","/gh/jzaefferer/jquery-treeview@master/jquery.treeview.js"],"names":[],"mappings":"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","file":"/gh/jzaefferer/jquery-treeview@master/jquery.treeview.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /gh/jzaefferer/jquery-treeview@master/jquery.treeview.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*\n * Treeview 1.4.2 - jQuery plugin to hide and show branches of a tree\n *\n * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/\n *\n * Copyright Jörn Zaefferer\n * Released under the MIT license:\n *   http://www.opensource.org/licenses/mit-license.php\n */\n\n;(function($) {\n\n\t// TODO rewrite as a widget, removing all the extra plugins\n\t$.extend($.fn, {\n\t\tswapClass: function(c1, c2) {\n\t\t\tvar c1Elements = this.filter('.' + c1);\n\t\t\tthis.filter('.' + c2).removeClass(c2).addClass(c1);\n\t\t\tc1Elements.removeClass(c1).addClass(c2);\n\t\t\treturn this;\n\t\t},\n\t\treplaceClass: function(c1, c2) {\n\t\t\treturn this.filter('.' + c1).removeClass(c1).addClass(c2).end();\n\t\t},\n\t\thoverClass: function(className) {\n\t\t\tclassName = className || \"hover\";\n\t\t\treturn this.hover(function() {\n\t\t\t\t$(this).addClass(className);\n\t\t\t}, function() {\n\t\t\t\t$(this).removeClass(className);\n\t\t\t});\n\t\t},\n\t\theightToggle: function(animated, callback) {\n\t\t\tanimated ?\n\t\t\t\tthis.animate({ height: \"toggle\" }, animated, callback) :\n\t\t\t\tthis.each(function(){\n\t\t\t\t\tjQuery(this)[ jQuery(this).is(\":hidden\") ? \"show\" : \"hide\" ]();\n\t\t\t\t\tif(callback)\n\t\t\t\t\t\tcallback.apply(this, arguments);\n\t\t\t\t});\n\t\t},\n\t\theightHide: function(animated, callback) {\n\t\t\tif (animated) {\n\t\t\t\tthis.animate({ height: \"hide\" }, animated, callback);\n\t\t\t} else {\n\t\t\t\tthis.hide();\n\t\t\t\tif (callback)\n\t\t\t\t\tthis.each(callback);\n\t\t\t}\n\t\t},\n\t\tprepareBranches: function(settings) {\n\t\t\tif (!settings.prerendered) {\n\t\t\t\t// mark last tree items\n\t\t\t\tthis.filter(\":last-child:not(ul)\").addClass(CLASSES.last);\n\t\t\t\t// collapse whole tree, or only those marked as closed, anyway except those marked as open\n\t\t\t\tthis.filter((settings.collapsed ? \"\" : \".\" + CLASSES.closed) + \":not(.\" + CLASSES.open + \")\").find(\">ul\").hide();\n\t\t\t}\n\t\t\t// return all items with sublists\n\t\t\treturn this.filter(\":has(>ul)\");\n\t\t},\n\t\tapplyClasses: function(settings, toggler) {\n\t\t\t// TODO use event delegation\n\t\t\tthis.filter(\":has(>ul):not(:has(>a))\").find(\">span\").unbind(\"click.treeview\").bind(\"click.treeview\", function(event) {\n\t\t\t\t// don't handle click events on children, eg. checkboxes\n\t\t\t\tif ( this == event.target )\n\t\t\t\t\ttoggler.apply($(this).next());\n\t\t\t}).add( $(\"a\", this) ).hoverClass();\n\n\t\t\tif (!settings.prerendered) {\n\t\t\t\t// handle closed ones first\n\t\t\t\tthis.filter(\":has(>ul:hidden)\")\n\t\t\t\t\t\t.addClass(CLASSES.expandable)\n\t\t\t\t\t\t.replaceClass(CLASSES.last, CLASSES.lastExpandable);\n\n\t\t\t\t// handle open ones\n\t\t\t\tthis.not(\":has(>ul:hidden)\")\n\t\t\t\t\t\t.addClass(CLASSES.collapsable)\n\t\t\t\t\t\t.replaceClass(CLASSES.last, CLASSES.lastCollapsable);\n\n\t            // create hitarea if not present\n\t\t\t\tvar hitarea = this.find(\"div.\" + CLASSES.hitarea);\n\t\t\t\tif (!hitarea.length)\n\t\t\t\t\thitarea = this.prepend(\"<div class=\\\"\" + CLASSES.hitarea + \"\\\"/>\").find(\"div.\" + CLASSES.hitarea);\n\t\t\t\thitarea.removeClass().addClass(CLASSES.hitarea).each(function() {\n\t\t\t\t\tvar classes = \"\";\n\t\t\t\t\t$.each($(this).parent().attr(\"class\").split(\" \"), function() {\n\t\t\t\t\t\tclasses += this + \"-hitarea \";\n\t\t\t\t\t});\n\t\t\t\t\t$(this).addClass( classes );\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// apply event to hitarea\n\t\t\tthis.find(\"div.\" + CLASSES.hitarea).click( toggler );\n\t\t},\n\t\ttreeview: function(settings) {\n\n\t\t\tsettings = $.extend({\n\t\t\t\tcookieId: \"treeview\"\n\t\t\t}, settings);\n\n\t\t\tif ( settings.toggle ) {\n\t\t\t\tvar callback = settings.toggle;\n\t\t\t\tsettings.toggle = function() {\n\t\t\t\t\treturn callback.apply($(this).parent()[0], arguments);\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// factory for treecontroller\n\t\t\tfunction treeController(tree, control) {\n\t\t\t\t// factory for click handlers\n\t\t\t\tfunction handler(filter) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\t// reuse toggle event handler, applying the elements to toggle\n\t\t\t\t\t\t// start searching for all hitareas\n\t\t\t\t\t\ttoggler.apply( $(\"div.\" + CLASSES.hitarea, tree).filter(function() {\n\t\t\t\t\t\t\t// for plain toggle, no filter is provided, otherwise we need to check the parent element\n\t\t\t\t\t\t\treturn filter ? $(this).parent(\".\" + filter).length : true;\n\t\t\t\t\t\t}) );\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t// click on first element to collapse tree\n\t\t\t\t$(\"a:eq(0)\", control).click( handler(CLASSES.collapsable) );\n\t\t\t\t// click on second to expand tree\n\t\t\t\t$(\"a:eq(1)\", control).click( handler(CLASSES.expandable) );\n\t\t\t\t// click on third to toggle tree\n\t\t\t\t$(\"a:eq(2)\", control).click( handler() );\n\t\t\t}\n\n\t\t\t// handle toggle event\n\t\t\tfunction toggler() {\n\t\t\t\t$(this)\n\t\t\t\t\t.parent()\n\t\t\t\t\t// swap classes for hitarea\n\t\t\t\t\t.find(\">.hitarea\")\n\t\t\t\t\t\t.swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )\n\t\t\t\t\t\t.swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )\n\t\t\t\t\t.end()\n\t\t\t\t\t// swap classes for parent li\n\t\t\t\t\t.swapClass( CLASSES.collapsable, CLASSES.expandable )\n\t\t\t\t\t.swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )\n\t\t\t\t\t// find child lists\n\t\t\t\t\t.find( \">ul\" )\n\t\t\t\t\t// toggle them\n\t\t\t\t\t.heightToggle( settings.animated, settings.toggle );\n\t\t\t\tif ( settings.unique ) {\n\t\t\t\t\t$(this).parent()\n\t\t\t\t\t\t.siblings()\n\t\t\t\t\t\t// swap classes for hitarea\n\t\t\t\t\t\t.find(\">.hitarea\")\n\t\t\t\t\t\t\t.replaceClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )\n\t\t\t\t\t\t\t.replaceClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )\n\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.replaceClass( CLASSES.collapsable, CLASSES.expandable )\n\t\t\t\t\t\t.replaceClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )\n\t\t\t\t\t\t.find( \">ul\" )\n\t\t\t\t\t\t.heightHide( settings.animated, settings.toggle );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.data(\"toggler\", toggler);\n\n\t\t\tfunction serialize() {\n\t\t\t\tfunction binary(arg) {\n\t\t\t\t\treturn arg ? 1 : 0;\n\t\t\t\t}\n\t\t\t\tvar data = [];\n\t\t\t\tbranches.each(function(i, e) {\n\t\t\t\t\tdata[i] = $(e).is(\":has(>ul:visible)\") ? 1 : 0;\n\t\t\t\t});\n\t\t\t\t$.cookie(settings.cookieId, data.join(\"\"), settings.cookieOptions );\n\t\t\t}\n\n\t\t\tfunction deserialize() {\n\t\t\t\tvar stored = $.cookie(settings.cookieId);\n\t\t\t\tif ( stored ) {\n\t\t\t\t\tvar data = stored.split(\"\");\n\t\t\t\t\tbranches.each(function(i, e) {\n\t\t\t\t\t\t$(e).find(\">ul\")[ parseInt(data[i]) ? \"show\" : \"hide\" ]();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// add treeview class to activate styles\n\t\t\tthis.addClass(\"treeview\");\n\n\t\t\t// prepare branches and find all tree items with child lists\n\t\t\tvar branches = this.find(\"li\").prepareBranches(settings);\n\n\t\t\tswitch(settings.persist) {\n\t\t\tcase \"cookie\":\n\t\t\t\tvar toggleCallback = settings.toggle;\n\t\t\t\tsettings.toggle = function() {\n\t\t\t\t\tserialize();\n\t\t\t\t\tif (toggleCallback) {\n\t\t\t\t\t\ttoggleCallback.apply(this, arguments);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tdeserialize();\n\t\t\t\tbreak;\n\t\t\tcase \"location\":\n\t\t\t\tvar current = this.find(\"a\").filter(function() {\n\t\t\t\t\treturn location.href.toLowerCase().indexOf(this.href.toLowerCase()) == 0;\n\t\t\t\t});\n\t\t\t\tif ( current.length ) {\n\t\t\t\t\t// TODO update the open/closed classes\n\t\t\t\t\tvar items = current.addClass(\"selected\").parents(\"ul, li\").add( current.next() ).show();\n\t\t\t\t\tif (settings.prerendered) {\n\t\t\t\t\t\t// if prerendered is on, replicate the basic class swapping\n\t\t\t\t\t\titems.filter(\"li\")\n\t\t\t\t\t\t\t.swapClass( CLASSES.collapsable, CLASSES.expandable )\n\t\t\t\t\t\t\t.swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )\n\t\t\t\t\t\t\t.find(\">.hitarea\")\n\t\t\t\t\t\t\t\t.swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )\n\t\t\t\t\t\t\t\t.swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tbranches.applyClasses(settings, toggler);\n\n\t\t\t// if control option is set, create the treecontroller and show it\n\t\t\tif ( settings.control ) {\n\t\t\t\ttreeController(this, settings.control);\n\t\t\t\t$(settings.control).show();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\t});\n\n\t// classes used by the plugin\n\t// need to be styled via external stylesheet, see first example\n\t$.treeview = {};\n\tvar CLASSES = ($.treeview.classes = {\n\t\topen: \"open\",\n\t\tclosed: \"closed\",\n\t\texpandable: \"expandable\",\n\t\texpandableHitarea: \"expandable-hitarea\",\n\t\tlastExpandableHitarea: \"lastExpandable-hitarea\",\n\t\tcollapsable: \"collapsable\",\n\t\tcollapsableHitarea: \"collapsable-hitarea\",\n\t\tlastCollapsableHitarea: \"lastCollapsable-hitarea\",\n\t\tlastCollapsable: \"lastCollapsable\",\n\t\tlastExpandable: \"lastExpandable\",\n\t\tlast: \"last\",\n\t\thitarea: \"hitarea\"\n\t});\n\n})(jQuery);\n"]}