@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines • 4.01 kB
JavaScript
/* @license */
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`kendo.html.button.min.js`),require(`kendo.button.menu.min.js`)):typeof define==`function`&&define.amd?define([`exports`,`kendo.html.button.min`,`kendo.button.menu.min`],t):(e=typeof globalThis<`u`?globalThis:e||self,t((e.kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Dropdownbutton={}),e.kendo._globals.HtmlButton,e.kendo._globals.ButtonMenu))})(this,function(e,t,n){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let r={id:`dropdownbutton`,name:`DropDownButton`,category:`web`,description:`The DropDownButton allows the user to execute an action from a drop-down list.`,depends:[`button.menu`,`html.button`]};(function(e,t){var n=window.kendo,r=n.ui.Widget,i=`.kendoDropDownButton`,a=n.ui,o=n.keys,s=e.extend,c=n.html,l=n._outerWidth,u=`.`,d=`id`,f=`aria-haspopup`,p=`aria-disabled`,m=`aria-controls`,h=`aria-label`,g=`aria-expanded`,_=`disabled`,v=`k-disabled`,y=`click`,b=`keydown`,x=`open`,S=`close`,C=`focus`,w={menuButton:`k-menu-button`},T=r.extend({init:function(t,i){var a=this;i.enabled=i.enabled!==!1&&!e(t).prop(_),r.fn.init.call(a,t,i),a.wrapper=a.element,a._mainButton(),a._renderMenu(),a._enable(a.options.enabled),a._aria(),a._attachEvents(),n.notify(a),a._applyCssClasses()},options:{name:`DropDownButton`,direction:`down`,enabled:!0,items:[],rounded:t,size:t,fillMode:t,themeColor:t,showArrowButton:!1,icon:null,popup:null,messages:{labelSuffix:`dropdownbutton`}},events:[y,x,S],_mainButton:function(){var t=this,r=s({},t.options,{type:t.element.attr(`type`)||`button`});if(delete r.click,t.element.addClass(w.menuButton),c.renderButton(t.element,r),t.options.showArrowButton)e(`<span></span>`).addClass(`k-button-arrow`).addClass(`k-menu-button-arrow`).append(n.ui.icon(n.htmlEncode(`caret-alt-down`))).appendTo(t.element);else{let e=t.element.find(`.k-button-arrow`);e&&e.remove()}},_aria:function(){var e=this,t=e.element,n=e.menu;t.attr(f,n?`menu`:null),t.attr(g,n?!1:null),t.attr(m,n?n.list.attr(d):null),t.attr(h)||t.attr(h,t.text()+` `+e.options.messages.labelSuffix)},_renderMenu:function(){var t=this,n=s({},t.options),r=e(`<div></div>`);delete n.click,delete n.name,t.menu=r.appendTo(document.body).kendoButtonMenu(s({mainButton:t.element,toggleTarget:t.element,menuOpen:t.menuOpenHandler.bind(t),menuClose:t.menuCloseHandler.bind(t),menuClick:t._click.bind(t)},n)).data(`kendoButtonMenu`)},menuOpenHandler:function(e){var t=this,n=l(t.element);if(t.trigger(x,{target:t.element})){e.preventDefault();return}e.sender.adjustPopupWidth(n),t.element.attr(g,!0)},menuCloseHandler:function(e){var t=this;if(t.trigger(S,{target:t.element})){e.preventDefault();return}t.element.attr(g,!1),t.element.trigger(C)},_attachEvents:function(){var e=this;e.element.on(b+i,e._keydown.bind(e))},_click:function(e){var t=this,n=e.id,r=e.target,i=e.originalEvent;t.menu.close(),t.trigger(y,{id:n,target:r,originalEvent:i})},_keydown:function(e){this.element.is(u+v)&&(e.keyCode===o.ENTER||e.keyCode===o.SPACEBAR)&&e.preventDefault()},focus:function(){this.element.trigger(C)},_enable:function(e,t){this.element.toggleClass(v,!e),e?this.element.removeAttr(p):this.element.attr(p,!e),t||this.element.attr(_,!e)},enable:function(e,n,r){var i=this;if(e===t&&(e=!0),n&&n.length){i.menu.enable(e,n);return}i.options.enabled=e,i._enable(e,r),i.menu.enable(e)},hide:function(e){var t=this;e&&e.length&&t.menu.hide(e)},show:function(e){var t=this;e&&e.length&&t.menu.show(e)},open:function(){this.menu.open()},close:function(){this.menu.close()},items:function(){return this.menu.items()},setOptions:function(e){var t=this;r.fn.setOptions.call(t,e),(e.popup||e.items||e.size)&&(t.menu.destroy(),t._renderMenu()),t._mainButton(),t._aria()},destroy:function(){var e=this;e.menu.destroy(),e.element.off(i),r.fn.destroy.call(e)}});a.plugin(T)})(window.kendo.jQuery);var i=kendo;e.__meta__=r,e.default=i});
//# sourceMappingURL=kendo.dropdownbutton.min.js.map