1/*! 2* Collapsible.js v1.1.2 3* https://github.com/jordnkr/collapsible 4* 5* Copyright 2016, Jordan Ruedy 6* This content is released under the MIT license 7* http://opensource.org/licenses/MIT 8*/ 9 10(function($, undefined) { 11 $.fn.collapsible = function(options) { 12 13 var defaults = { 14 accordion: false, 15 accordionUpSpeed: 400, 16 accordionDownSpeed: 400, 17 collapseSpeed: 400, 18 contentOpen: null, 19 arrowRclass: 'arrow-r', 20 arrowDclass: 'arrow-d', 21 animate: true 22 }; 23 24 var settings = $.extend(defaults, options); 25 26 return this.each(function() { 27 if (settings.animate === false) { 28 settings.accordionUpSpeed = 0; 29 settings.accordionDownSpeed = 0; 30 settings.collapseSpeed = 0; 31 } 32 33 var $thisEven = $(this).children(':even'); 34 var $thisOdd = $(this).children(':odd'); 35 var accord = 'accordion-active'; 36 37 if (settings.accordion === true) { 38 if (settings.contentOpen !== null) { 39 $($thisEven[settings.contentOpen]).children(':first-child').toggleClass(settings.arrowRclass + ' ' + settings.arrowDclass); 40 $($thisOdd[settings.contentOpen]).show().addClass(accord); 41 } 42 $($thisEven).click(function() { 43 if ($(this).next().attr('class') === accord) { 44 $(this).next().slideUp(settings.accordionUpSpeed).removeClass(accord); 45 $(this).children(':first-child').toggleClass(settings.arrowRclass + ' ' + settings.arrowDclass); 46 } else { 47 $($thisEven).children('span[class^=arrow]').removeClass(settings.arrowDclass).addClass(settings.arrowRclass); 48 $($thisOdd).slideUp(settings.accordionUpSpeed).removeClass(accord); 49 $(this).next().slideDown(settings.accordionDownSpeed).addClass(accord); 50 $(this).children(':first-child').toggleClass(settings.arrowRclass + ' ' + settings.arrowDclass); 51 } 52 }); 53 } else { 54 if (settings.contentOpen !== null) { 55 if (Array.isArray( settings.contentOpen )) { 56 for (var i = 0; i < settings.contentOpen.length; i++) { 57 var index = settings.contentOpen[i]; 58 $($thisEven[index]).children(':first-child').toggleClass(settings.arrowRclass + ' ' + settings.arrowDclass); 59 $($thisOdd[index]).show(); 60 } 61 } else { 62 $($thisEven[settings.contentOpen]).children(':first-child').toggleClass(settings.arrowRclass + ' ' + settings.arrowDclass); 63 $($thisOdd[settings.contentOpen]).show(); 64 } 65 } 66 $($thisEven).click(function() { 67 $(this).children(':first-child').toggleClass(settings.arrowRclass + ' ' + settings.arrowDclass); 68 $(this).next().slideToggle(settings.collapseSpeed); 69 }); 70 } 71 }); 72 }; 73})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.