@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) • 4.31 kB
JavaScript
!function(e){"function"==typeof define&&define.amd?define(["kendo.core.min","kendo.icons.min"],e):e()}((function(){var e,n,a,i,t,s,o,d,l,p,r,c,u,h,x,f,m,C,k,v;e=window.kendo.jQuery,n=window.kendo,a=n.ui.Widget,i=n.ui,t=n.keys,s=e.extend,o=n.htmlEncode,d=".kendoExpansionPanel",l="expand",p="collapse",r="[class*='-i-chevron-up']",c="complete",u="k-disabled",h="aria-disabled",x="aria-expanded",f="aria-hidden",m="k-expanded",C="k-focus",k=function(e){var a=e.title,i=e.subTitle,t=e.iconClass,s=e.useBareTemplate,d=e.ns,l=e.elementId;return"<div "+(s?"":'class="k-expander-header"')+" data-"+d+'expander-header role="button" tabindex="0" aria-controls="'+o(l)+'">'+(s?a:'<div class="k-expander-title">'+o(a)+"</div>")+'<span class="k-expander-spacer"></span>'+(s?"":'<div class="k-expander-sub-title">'+o(i)+"</div>")+(t&&t.includes("k-icon")?'<span class="k-expander-indicator '+o(t)+'"></span>':n.ui.icon({icon:t,iconClass:"k-expander-indicator"}))+"</div>"},v=a.extend({init:function(i,t){var s=this,o=n.attr("expander-header");a.fn.init.call(s,i,t),t=e.extend(!0,{},t),s._wrapper(),s._animations(t),s.element.attr(f,!t.expanded),s.options.useBareTemplate||s.element.addClass("k-expander-content"),s.wrapper.on("click"+d,"["+o+"]",s._click.bind(s)).on("focusin"+d,s._focus.bind(s)).on("focusout"+d,s._blur.bind(s)).on("keydown"+d,s._keydown.bind(s)),s.toggle(s.options.expanded,!1),n.notify(s)},events:[l,p,c],options:{name:"ExpansionPanel",disabled:!1,expanded:!1,animation:{expand:{effects:"expand:vertical",duration:200},collapse:{duration:200}},height:null,toggleable:!0,expandIconClass:"chevron-down",collapseIconClass:"chevron-up",title:"",subTitle:"",headerClass:null,useBareTemplate:!1},_wrapper:function(){var a,i,t=this,s=t.element,o=s[0],d=s.attr("id");d||(d=n.guid(),s.attr("id",d)),a=s.wrap("<div class='k-widget k-expander"+(t.options.expanded?" "+m:"")+"'></div>").parent(),i=n.template(k)({title:t.options.title,subTitle:t.options.subTitle,iconClass:t.options.expanded?t.options.expandIconClass:t.options.collapseIconClass,useBareTemplate:t.options.useBareTemplate,ns:n.ns,elementId:d}),t.header=e(i),a.prepend(t.header),t._indicator=a.find(".k-expander-indicator"),a[0].style.cssText=o.style.cssText,o.style.width="100%",t.wrapper=a.addClass(t.options.disabled?u:""),t.contentWrapper=t.element.wrap("<div></div>").parent().addClass("k-expander-content-wrapper"),t.header.attr(h,t.options.disabled).attr(x,t.options.expanded),t.options.useBareTemplate||a.addClass(o.className),t.options.height&&t.wrapper.css("height",t.options.height),t.options.headerClass&&t.header.addClass(t.options.headerClass)},_animations:function(e){e&&"animation"in e&&!e.animation&&(e.animation={expand:{effects:{}},collapse:{hide:!0,effects:{}}})},_click:function(e){var n=this,a=n._indicator.is(r),i=n.element;e.stopPropagation(),n.options.toggleable?n.trigger(a?p:l,{item:i[0]})||n.toggle():e.preventDefault()},toggle:function(e,a){var i=this,t=i.options.animation,o=t.expand,d=t.collapse&&"effects"in t.collapse,l=s({},t.expand,t.collapse),p=i.element,c=i.wrapper;void 0!==e?!1===a&&(l=null):e=!i._indicator.is(r),d||(l=s(l,{reverse:!0})),e?o=s({complete:i._completeHandler.bind(i)},o):(o=s(l,{hide:!0})).complete=i._completeHandler.bind(i),e?(i.options.collapseIconClass.includes("k-icon")?(i._indicator.removeClass(this.options.expandIconClass),i._indicator.addClass(this.options.collapseIconClass)):n.ui.icon(i._indicator,{icon:this.options.collapseIconClass}),c.addClass(m)):(i.options.expandIconClass.includes("k-icon")?(i._indicator.removeClass(this.options.collapseIconClass),i._indicator.addClass(this.options.expandIconClass)):n.ui.icon(i._indicator,{icon:this.options.expandIconClass}),c.removeClass(m)),p.attr(f,!e),i.header.attr(x,e),i.contentWrapper.kendoStop(!0,!0).kendoAnimate(o)},_completeHandler:function(){this.trigger(c)},_keydown:function(n){var a=n.keyCode;a!=t.ENTER&&a!=t.SPACEBAR||!e(n.target).is("[data-expander-header]")||(this._click(n),n.preventDefault())},destroy:function(){this.wrapper.off(d),a.fn.destroy.call(this)},enable:function(e){this.wrapper.toggleClass(u,!e),this.header.attr(h,!e)},_blur:function(){this.header&&this.wrapper.removeClass(C)},_focus:function(){this.wrapper&&this.wrapper.addClass(C)}}),i.plugin(v)}));
//# sourceMappingURL=kendo.expansionpanel.min.js.map