'use strict';
var _ = require('lodash'),
callback;
/**
* Creates panels that can open and close based on a toggle.
* @module SHPanelToggle
*/
module.exports = {
/**
* Initializes the clicks on .Panel-toggles for "Bootstrap-like" panels.
* @param {Function} cb - Additional function to call with the toggle.
* @example
* SHPanelToggle.init();
* @returns {void}
*/
init: function(cb) {
callback = cb || $.noop;
$(document)
.off('.Panel-toggle')
.on('click.Panel-toggle', '.Panel-collapse .Panel-heading', _.bind(this._panelHeadingClicked, this));
},
_panelHeadingClicked: function(evt) {
evt.preventDefault();
var $panel = $(evt.currentTarget).closest('.Panel');
if ($panel.hasClass('no-close')) { return; }
$('.Panel-content', $panel).slideToggle(100, $.easing.def, function() {
$panel.toggleClass('open');
});
callback();
}
};