kendo-ui-core
Version:
3 lines (2 loc) • 3.37 kB
JavaScript
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("kendo.html.button.js"),require("kendo.button.menu.js")):"function"==typeof define&&define.amd?define(["kendo.html.button.min","kendo.button.menu.min"],n):((e="undefined"!=typeof globalThis?globalThis:e||self).kendodropdownbutton=e.kendodropdownbutton||{},e.kendodropdownbutton.js=n())}(this,(function(){return function(e,n){var t=window.kendo,o=t.ui.Widget,i=".kendoDropDownButton",l=t.ui,u=t.keys,d=e.extend,a=t.html,r=t._outerWidth,s="aria-disabled",m="aria-label",p="aria-expanded",c="disabled",f="k-disabled",h="click",b="open",g="close",k="focus",v="k-menu-button",_="k-dropdown-button",y=o.extend({init:function(n,i){var l=this;i.enabled=!1!==i.enabled&&!e(n).prop(c),o.fn.init.call(l,n,i),l.wrapper=l.element,l._mainButton(),l._renderMenu(),l._enable(l.options.enabled),l._aria(),l._attachEvents(),t.notify(l),l._applyCssClasses()},options:{name:"DropDownButton",direction:"down",enabled:!0,items:[],rounded:"medium",size:"medium",fillMode:"solid",themeColor:"base",icon:null,popup:null,messages:{labelSuffix:"dropdownbutton"}},events:[h,b,g],_mainButton:function(){var e=this,n=d({},e.options,{type:e.element.attr("type")||"button"});delete n.click,e.element.addClass(v).addClass(_),a.renderButton(e.element,n)},_aria:function(){var e=this,n=e.element,t=e.menu;n.attr("aria-haspopup",t?"menu":null),n.attr(p,!t&&null),n.attr("aria-controls",t?t.list.attr("id"):null),n.attr(m)||n.attr(m,n.text()+" "+e.options.messages.labelSuffix)},_renderMenu:function(){var n=this,t=d({},n.options),o=e("<div></div>");delete t.click,delete t.name,t.items.length&&(n.menu=o.appendTo(document.body).kendoButtonMenu(d({mainButton:n.element,toggleTarget:n.element,menuOpen:n.menuOpenHandler.bind(n),menuClose:n.menuCloseHandler.bind(n),menuClick:n._click.bind(n)},t)).data("kendoButtonMenu"))},menuOpenHandler:function(e){var n=this,t=r(n.element);n.trigger(b,{target:n.element})?e.preventDefault():(e.sender.adjustPopupWidth(t),n.element.attr(p,!0))},menuCloseHandler:function(e){var n=this;n.trigger(g,{target:n.element})?e.preventDefault():(n.element.attr(p,!1),n.element.trigger(k))},_attachEvents:function(){var e=this;e.element.on("keydown"+i,e._keydown.bind(e))},_click:function(e){var n=e.id,t=e.target,o=e.originalEvent;this.menu.close(),this.trigger(h,{id:n,target:t,originalEvent:o})},_keydown:function(e){!this.element.is("."+f)||e.keyCode!==u.ENTER&&e.keyCode!==u.SPACEBAR||e.preventDefault()},focus:function(){this.element.trigger(k)},_enable:function(e,n){this.element.toggleClass(f,!e),e?this.element.removeAttr(s):this.element.attr(s,!e),n||this.element.attr(c,!e)},enable:function(e,n,t){var o=this;undefined===e&&(e=!0),n&&n.length?o.menu.enable(e,n):(o.options.enabled=e,o._enable(e,t),o.menu.enable(e))},hide:function(e){e&&e.length&&this.menu.hide(e)},show:function(e){e&&e.length&&this.menu.show(e)},open:function(){this.menu._popup.open()},close:function(){this.menu._popup.close()},items:function(){return this.menu.items()},setOptions:function(e){var n=this;o.fn.setOptions.call(n,e),(e.popup||e.items||e.size)&&(n.menu.destroy(),n._renderMenu()),n._mainButton(),n._aria()},destroy:function(){var e=this;e.menu.destroy(),e.element.off(i),o.fn.destroy.call(e)}});l.plugin(y)}(window.kendo.jQuery),kendo}));
//# sourceMappingURL=kendo.dropdownbutton.min.js.map