UNPKG

@three11/accordion

Version:

Front-end Accordion widget using max-height

3 lines (2 loc) 1.8 kB
function t(){return t=Object.assign?Object.assign.bind():function(t){for(var i=1;i<arguments.length;i++){var s=arguments[i];for(var e in s)Object.prototype.hasOwnProperty.call(s,e)&&(t[e]=s[e])}return t},t.apply(this,arguments)}var i=/*#__PURE__*/function(){function i(i,s){var e,h;return void 0===s&&(s={}),this.el=void 0,this.head=void 0,this.body=void 0,this.height=0,this.isOpen=!1,this.settings=void 0,this.defaultSettings={headSelector:"[data-title]",bodySelector:"[data-content]",hiddenClass:"is--hidden",activeClass:"is--active"},this.settings=t({},this.defaultSettings,s),this.el=i,this.head=(null==(e=this.el)?void 0:e.querySelector(this.settings.headSelector))||null,this.body=(null==(h=this.el)?void 0:h.querySelector(this.settings.bodySelector))||null,this.bind().close(),this}var s=i.prototype;return s.bind=function(){var t=this;return this.head&&this.head.addEventListener("click",this.toggle.bind(this)),this.body&&this.body.addEventListener("transitionend",function(){!t.isOpen&&t.el&&t.el.classList.add(t.settings.hiddenClass)}),this},s.setHeight=function(t){var i=this;return setTimeout(function(){i.body&&(i.body.style.maxHeight=t+"px")},1),this},s.toggle=function(){var t;return this.height=(null==(t=this.body)?void 0:t.scrollHeight)||0,this.isOpen?this.close():this.open(),this},s.close=function(){return this.isOpen=!1,this.el&&this.el.classList.remove(this.settings.activeClass),this.body&&(this.body.style.maxHeight=this.height+"px"),this.setHeight(0),this},s.open=function(){return this.isOpen=!0,this.el&&(this.el.classList.add(this.settings.activeClass),this.el.classList.remove(this.settings.hiddenClass)),this.body&&(this.body.style.maxHeight="0px"),this.setHeight(this.height),this},i}();exports.Accordion=i,exports.default=i; //# sourceMappingURL=accordion.cjs.map