UNPKG

kendo-ui-core

Version:
3 lines (2 loc) 3.6 kB
!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",a=t.ui,l=t.keys,d=e.extend,u=t.html,r=t._outerWidth,s="aria-disabled",m="aria-label",p="aria-expanded",c="disabled",f="k-disabled",h="click",b="open",k="close",g="focus",w="k-menu-button",v="k-dropdown-button",y=o.extend({init:function(n,i){var a=this;i.enabled=!1!==i.enabled&&!e(n).prop(c),o.fn.init.call(a,n,i),a.wrapper=a.element,a._mainButton(),a._renderMenu(),a._enable(a.options.enabled),a._aria(),a._attachEvents(),t.notify(a),a._applyCssClasses()},options:{name:"DropDownButton",direction:"down",enabled:!0,items:[],rounded:"medium",size:"medium",fillMode:"solid",themeColor:"base",showArrowButton:!1,icon:null,popup:null,messages:{labelSuffix:"dropdownbutton"}},events:[h,b,k],_mainButton:function(){var n=this,o=d({},n.options,{type:n.element.attr("type")||"button"});if(delete o.click,n.element.addClass(w).addClass(v),u.renderButton(n.element,o),n.options.showArrowButton)e("<span></span>").addClass("k-button-arrow").addClass("k-menu-button-arrow").append(t.ui.icon(t.htmlEncode("caret-alt-down"))).appendTo(n.element);else{const e=n.element.find(".k-button-arrow");e&&e.remove()}},_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,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(k,{target:n.element})?e.preventDefault():(n.element.attr(p,!1),n.element.trigger(g))},_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!==l.ENTER&&e.keyCode!==l.SPACEBAR||e.preventDefault()},focus:function(){this.element.trigger(g)},_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.open()},close:function(){this.menu.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)}});a.plugin(y)}(window.kendo.jQuery),kendo})); //# sourceMappingURL=kendo.dropdownbutton.min.js.map