@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines (2 loc) • 2.6 kB
JavaScript
!function(e){"function"==typeof define&&define.amd?define(["kendo.core.min"],e):e()}((function(){var e,t,n,i,s,o,a,l,d,c;e=window.kendo.jQuery,t=window.kendo,n=t.mobile.ui,i=n.Widget,s="km-collapsed",o="km-expanded",a="km-animated",l="expand",d="collapse",c=i.extend({init:function(n,l){var d=this,c=e(n);i.fn.init.call(d,c,l),c.addClass("km-collapsible"),d._buildHeader(),d.content=c.children().not(d.header).wrapAll("<div data-role='collapsible-content' class='km-collapsible-content'></div>").parent(),d._userEvents=new t.UserEvents(d.header,{fastTap:!0,tap:function(){d.toggle()}}),c.addClass(d.options.collapsed?s:o),d.options.inset&&c.addClass("km-collapsibleinset"),d.options.animation?(d.content.addClass(a),d.content.height(0),d.options.collapsed&&d.content.hide()):d.options.collapsed&&d.content.hide()},events:[l,d],options:{name:"Collapsible",collapsed:!0,collapseIcon:"arrow-n",expandIcon:"caret-alt-down",iconPosition:"left",animation:!0,inset:!1},destroy:function(){i.fn.destroy.call(this),this._userEvents.destroy()},expand:function(e){var n=this.options.collapseIcon,i=this.content,d=t.support.mobileOS.ios;this.trigger(l)||(n&&this.header.find(".km-icon").removeClass().addClass("km-icon km-"+n),this.element.removeClass(s).addClass(o),this.options.animation&&!e?(i.off("transitionend"),i.show(),d&&i.removeClass(a),i.height(this._getContentHeight()),d&&i.addClass(a),t.resize(i)):i.show())},collapse:function(e){var t=this.options.expandIcon,n=this.content;this.trigger(d)||(t&&this.header.find(".km-icon").removeClass().addClass("km-icon km-"+t),this.element.removeClass(o).addClass(s),this.options.animation&&!e?(n.one("transitionend",(function(){n.hide()})),n.height(0)):n.hide())},toggle:function(e){this.isCollapsed()?this.expand(e):this.collapse(e)},isCollapsed:function(){return this.element.hasClass(s)},resize:function(){!this.isCollapsed()&&this.options.animation&&this.content.height(this._getContentHeight())},_buildHeader:function(){var t=this.element.children(":header").wrapAll("<div data-role='collapsible-header' class='km-collapsible-header'></div>"),n=e('<span class="km-icon"/>'),i=this.options.collapsed?this.options.expandIcon:this.options.collapseIcon,s=this.options.iconPosition;i&&(t.prepend(n),n.addClass("km-"+i)),this.header=t.parent(),this.header.addClass("km-icon-"+s)},_getContentHeight:function(){var e,t=this.content.attr("style");return this.content.css({position:"absolute",visibility:"hidden",height:"auto"}),e=this.content.height(),this.content.attr("style",t||""),e}}),n.plugin(c)}));
//# sourceMappingURL=kendo.mobile.collapsible.min.js.map