@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 5.21 kB
JavaScript
module.exports=function(n){var o={};function r(e){if(o[e])return o[e].exports;var t=o[e]={exports:{},id:e,loaded:!1};return n[e].call(t.exports,t,t.exports,r),t.loaded=!0,t.exports}return r.m=n,r.c=o,r.p="",r(0)}({0:function(e,t,n){e.exports=n(1438)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1089:function(e,t){e.exports=require("./kendo.html.button")},1212:function(e,t){e.exports=require("./kendo.button.menu")},1438:function(e,t,n){var o;n(3),n=[n(1089),n(1212)],void 0===(t="function"==typeof(o=function(){var e={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"]},i=window.kendo.jQuery,c=void 0,o=window.kendo,r=o.ui.Widget,t=".kendoSplitButton",n=o.ui,a=i.extend,f=o.html,m=o._outerWidth,h=o.keys,b=".",s="id",v="aria-haspopup",g="aria-disabled",w="aria-controls",_="aria-label",u="aria-expanded",l="disabled",k="k-disabled",B="k-focus",d="click",C="keydown",x="open",y="close",p="focus",S="blur",E={widget:"k-split-button k-button-group"},P=r.extend({init:function(e,t){var n=this;t.enabled=t.enabled!==false&&!i(e).prop(l);r.fn.init.call(n,e,t);n._wrapper();n._renderButtons();n._renderMenu();n._enable(n.options.enabled);n._aria();n._attachEvents();o.notify(n);n._applyCssClasses()},options:{name:"SplitButton",enabled:true,items:[],rounded:"medium",size:"medium",fillMode:"solid",themeColor:"base",icon:null,popup:null,arrowIcon:"arrow-s",messages:{labelSuffix:"splitbutton"}},events:[d,x,y],_wrapper:function(){var e=this,t=e.element.attr(s)||o.guid(),n=t+"_wrapper";e.wrapper=e.element.wrap('<div id="'+n+'" class="'+E.widget+'"></div>').parent(".k-split-button");e.arrowButton=i('<button tabindex="-1" aria-label="arrow-button" class="k-split-button-arrow"></button>').appendTo(e.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,n=o.cssProperties.getValidClass({widget:t,propName:"rounded",value:e.options.rounded});return n},_renderButtons:function(){var e=this;e._mainButton();e._arrowButton()},_mainButton:function(){var e=this,t=a({},e.options);delete t.click;f.renderButton(e.element,t)},_arrowButton:function(){var e=this,t=a({},e.options,{icon:e.options.arrowIcon});delete t.text;delete t.imageUrl;delete t.click;f.renderButton(e.arrowButton,t)},_aria:function(){var e=this,t=e.element,n=e.menu;t.attr(v,n?"menu":null);t.attr(u,n?false:null);t.attr(w,n?n.list.attr(s):null);if(!t.attr(_))t.attr(_,t.text()+" "+e.options.messages.labelSuffix)},_renderMenu:function(){var e=this,t=a({},e.options),n=i("<div></div>");delete t.click;delete t.name;if(!t.items.length)return;e.menu=n.appendTo(e.wrapper).kendoButtonMenu(a({mainButton:e.element,toggleTarget:e.arrowButton,menuOpen:e.menuOpenHandler.bind(e),menuClose:e.menuCloseHandler.bind(e),menuClick:e._click.bind(e)},t)).data("kendoButtonMenu")},menuOpenHandler:function(e){var t=this,n=m(t.wrapper);var o=t.trigger(x,{target:t.element});if(o){e.preventDefault();return}e.sender.adjustPopupWidth(n);t.element.attr(u,true)},menuCloseHandler:function(e){var t=this,n=t.trigger(y,{target:t.element});if(n){e.preventDefault();return}t.element.attr(u,false);t.element.trigger(p)},_attachEvents:function(){var e=this;e.element.on(d+t,e._click.bind(e));e.element.on(C+t,e._keydown.bind(e));e.element.on(p+t,e._focus.bind(e));e.element.on(S+t,e._blur.bind(e))},_focus:function(){this.wrapper.addClass(B)},_blur:function(){this.wrapper.removeClass(B)},_click:function(e){var t=this,n=i(e.target).closest(".k-button"),o=n.attr(s),r=e;if(e.type==="menu-click"){o=e.id;n=e.target;r=e.originalEvent}t.menu.close();t.trigger(d,{id:o,target:n,originalEvent:r})},_keydown:function(e){var t=this;if(t.element.is(b+k)&&(e.keyCode===h.ENTER||e.keyCode===h.SPACEBAR))e.preventDefault()},focus:function(){var e=this;e.element.trigger(p)},_enable:function(e,t){this.element.add(this.arrowButton).toggleClass(k,!e);if(e)this.element.removeAttr(g);else this.element.attr(g,!e);if(!t)this.element.attr(l,!e);this.arrowButton.attr(l,!e)},enable:function(e,t,n){var o=this;if(e===c)e=true;if(t&&t.length){o.menu.enable(e,t);return}o.options.enabled=e;o._enable(e,n);o.menu.enable(e)},hide:function(e){var t=this;if(e&&e.length)t.menu.hide(e)},show:function(e){var t=this;if(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);if(e.popup||e.items||e.size){t.menu.destroy();t._renderMenu()}t._renderButtons();t._aria()},destroy:function(){var e=this;e.menu.destroy();e.element.off(t);r.fn.destroy.call(e)}});return o.cssProperties.registerPrefix("SplitButton","k-splitbutton-"),o.cssProperties.registerValues("SplitButton",[{prop:"rounded",values:o.cssProperties.roundedValues.concat([["full","full"]])}]),n.plugin(P),window.kendo})?o.apply(t,n):o)||(e.exports=t)}});