framework7
Version:
Full featured mobile HTML framework for building iOS & Android apps
2 lines (1 loc) • 2.69 kB
JavaScript
(function framework7ComponentLoader(e,o){void 0===o&&(o=!0);var n=e.$,i=e.utils,t=(e.getDevice,e.getSupport,e.Class,e.Modal,e.ConstructorMethods,e.ModalMethods,i.bindMethods),c=i.nextFrame,r={toggleClicked:function(e){var o=e.closest(".accordion-item").eq(0);o.length||(o=e.parents("li").eq(0));var n=e.parents(".accordion-item-content").eq(0);n.length&&n.parents(o).length||e.parents("li").length>1&&e.parents("li")[0]!==o[0]||this.accordion.toggle(o)},open:function(e){var o=this,i=n(e),t=!1;function r(){t=!0}if(i.trigger("accordion:beforeopen",{prevent:r},r),o.emit("accordionBeforeOpen",i[0],r),!t){var a=i.parents(".accordion-list").eq(0),s=i.children(".accordion-item-content");if(s.removeAttr("aria-hidden"),0===s.length&&(s=i.find(".accordion-item-content")),0!==s.length){var d=a.length>0&&i.parent().children(".accordion-item-opened");d.length>0&&o.accordion.close(d),s.transitionEnd((function(){i.hasClass("accordion-item-opened")?(s.transition(0),s.css("height","auto"),c((function(){s.transition(""),i.trigger("accordion:opened"),o.emit("accordionOpened",i[0])}))):(s.css("height",""),i.trigger("accordion:closed"),o.emit("accordionClosed",i[0]))})),s.css("height",s[0].scrollHeight+"px"),i.trigger("accordion:open"),i.addClass("accordion-item-opened"),o.emit("accordionOpen",i[0])}}},close:function(e){var o=this,i=n(e),t=!1;function r(){t=!0}if(i.trigger("accordion:beforeclose",{prevent:r},r),o.emit("accordionBeforeClose",i[0],r),!t){var a=i.children(".accordion-item-content");0===a.length&&(a=i.find(".accordion-item-content")),i.removeClass("accordion-item-opened"),a.attr("aria-hidden",!0),a.transition(0),a.css("height",a[0].scrollHeight+"px"),a.transitionEnd((function(){i.hasClass("accordion-item-opened")?(a.transition(0),a.css("height","auto"),c((function(){a.transition(""),i.trigger("accordion:opened"),o.emit("accordionOpened",i[0])}))):(a.css("height",""),i.trigger("accordion:closed"),o.emit("accordionClosed",i[0]))})),c((function(){a.transition(""),a.css("height",""),i.trigger("accordion:close"),o.emit("accordionClose",i[0])}))}},toggle:function(e){var o=n(e);0!==o.length&&(o.hasClass("accordion-item-opened")?this.accordion.close(e):this.accordion.open(e))}},a={name:"accordion",create:function(){t(this,{accordion:r})},clicks:{".accordion-item .item-link, .accordion-item-toggle, .links-list.accordion-list > ul > li > a":function(e){r.toggleClicked.call(this,e)}}};if(o){if(e.prototype.modules&&e.prototype.modules[a.name])return;e.use(a),e.instance&&(e.instance.useModuleParams(a,e.instance.params),e.instance.useModule(a))}return a}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))