UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

3 lines 5.27 kB
/* @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.Splitbutton={}),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:`splitbutton`,name:`SplitButton`,category:`web`,description:`The SplitButton allows the user to execute a default action which is bound to a Button or to choose a predefined action from a drop-down list.`,depends:[`button.menu`,`html.button`]};(function(e,t){var n=window.kendo,r=n.ui.Widget,i=`.kendoSplitButton`,a=n.ui,o=e.extend,s=n.html,c=n._outerWidth,l=n.keys,u=`.`,d=`id`,f=`aria-haspopup`,p=`aria-disabled`,m=`aria-controls`,h=`aria-label`,g=`aria-expanded`,_=`disabled`,v=`k-disabled`,y=`k-focus`,b=`click`,x=`keydown`,S=`open`,C=`close`,w=`focus`,T=`blur`,E={widget:`k-split-button k-button-group`},D=r.extend({init:function(t,i){var a=this;i||={},i.enabled=i.enabled!==!1&&!e(t).prop(_),r.fn.init.call(a,t,i),a._wrapper(),a._renderButtons(),a._renderMenu(),a._enable(a.options.enabled),a._aria(),a._attachEvents(),n.notify(a),a._applyCssClasses()},options:{name:`SplitButton`,enabled:!0,items:[],rounded:t,size:t,fillMode:t,themeColor:t,icon:null,popup:null,arrowIcon:`caret-alt-down`,messages:{labelSuffix:`splitbutton`}},events:[b,S,C],_wrapper:function(){var t=this,r=(t.element.attr(d)||n.guid())+`_wrapper`;t.wrapper=t.element.wrap(`<div id="`+r+`" class="`+E.widget+`"></div>`).parent(`.k-split-button`),t.arrowButton=e(`<button tabindex="-1" aria-label="arrow-button" class="k-split-button-arrow"></button>`).appendTo(t.wrapper)},_applyCssClasses:function(){var e=this;e.wrapper.addClass(e._getAppearanceClasses())},_clearCssClasses:function(){var e=this;e.wrapper.removeClass(e._getAppearanceClasses())},_getAppearanceClasses:function(){var e=this,t=e.__proto__.options.name;return n.cssProperties.getValidClass({widget:t,propName:`rounded`,value:e.options.rounded})},_renderButtons:function(){var e=this;e._mainButton(),e._arrowButton()},_mainButton:function(){var e=this,t=o({},e.options,{type:e.element.attr(`type`)||`button`});delete t.click,s.renderButton(e.element,t)},_arrowButton:function(){var e=this,t=o({},e.options,{type:`button`,icon:e.options.arrowIcon});delete t.text,delete t.imageUrl,delete t.click,delete t.iconClass,s.renderButton(e.arrowButton,t)},_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=o({},t.options),r=e(`<div></div>`);delete n.click,delete n.name,n.items.length&&(t.menu=r.appendTo(t.wrapper).kendoButtonMenu(o({mainButton:t.element,toggleTarget:t.arrowButton,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=c(t.wrapper);if(t.trigger(S,{target:t.element})){e.preventDefault();return}e.sender.adjustPopupWidth(n),t.element.attr(g,!0)},menuCloseHandler:function(e){var t=this;if(t.trigger(C,{target:t.element})){e.preventDefault();return}t.element.attr(g,!1),t.element.trigger(w)},_attachEvents:function(){var e=this;e.element.on(b+i,e._click.bind(e)),e.element.on(x+i,e._keydown.bind(e)),e.element.on(w+i,e._focus.bind(e)),e.element.on(T+i,e._blur.bind(e))},_focus:function(){this.wrapper.addClass(y)},_blur:function(){this.wrapper.removeClass(y)},_click:function(t){var n=this,r=e(t.target).closest(`.k-button`),i=r.attr(d),a=t;t.type===`menu-click`&&(i=t.id,r=t.target,a=t.originalEvent),n.menu.close(),n.trigger(b,{id:i,target:r,originalEvent:a})},_keydown:function(e){this.element.is(u+v)&&(e.keyCode===l.ENTER||e.keyCode===l.SPACEBAR)&&e.preventDefault()},focus:function(){this.element.trigger(w)},_enable:function(e,t){this.element.add(this.arrowButton).toggleClass(v,!e),e?this.element.removeAttr(p):this.element.attr(p,!e),t||this.element.attr(_,!e),this.arrowButton.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._popup.open()},close:function(){this.menu._popup.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._renderButtons(),t._aria()},destroy:function(){var e=this;e.menu&&e.menu.destroy(),e.element.off(i),r.fn.destroy.call(e)}});n.cssProperties.registerPrefix(`SplitButton`,`k-splitbutton-`),n.cssProperties.registerValues(`SplitButton`,[{prop:`rounded`,values:n.cssProperties.roundedValues.concat([[`full`,`full`]])}]),a.plugin(D)})(window.kendo.jQuery);var i=kendo;e.__meta__=r,e.default=i}); //# sourceMappingURL=kendo.splitbutton.min.js.map