code: function Collapsible(el, options) {
        _classCallCheck(this, Collapsible);
  
        var _this3 = _possibleConstructorReturn(this, (Collapsible.__proto__ || Object.getPrototypeOf(Collapsible)).call(this, Collapsible, el, options));
  
        _this3.el.M_Collapsible = _this3;
  
        /**
         * Options for the collapsible
         * @member Collapsible#options
         * @prop {Boolean} [accordion=false] - Type of the collapsible
         * @prop {Function} onOpenStart - Callback function called before collapsible is opened
         * @prop {Function} onOpenEnd - Callback function called after collapsible is opened
         * @prop {Function} onCloseStart - Callback function called before collapsible is closed
         * @prop {Function} onCloseEnd - Callback function called after collapsible is closed
         * @prop {Number} inDuration - Transition in duration in milliseconds.
         * @prop {Number} outDuration - Transition duration in milliseconds.
         */
        _this3.options = $.extend({}, Collapsible.defaults, options);
  
        // Setup tab indices
        _this3.$headers = _this3.$el.children('li').children('.collapsible-header');
        _this3.$headers.attr('tabindex', 0);
  
        _this3._setupEventHandlers();
  
        // Open first active
        var $activeBodies = _this3.$el.children('li.active').children('.collapsible-body');
        if (_this3.options.accordion) {
          // Handle Accordion
          $activeBodies.first().css('display', 'block');
        } else {
          // Handle Expandables
          $activeBodies.css('display', 'block');
        }
        return _this3;
      }
docs: Construct Collapsible instance
  @constructor
  @param {Element} el
  @param {Object} options