{"version":3,"file":"kendo.splitbutton.min.js","names":["factory","define","amd","$","kendo","Widget","NS","ui","extend","html","outerWidth","keys","ID","ARIA_DISABLED","ARIA_LABEL","ARIA_EXPANDED","DISABLED","DISABLEDSTATE","FOCUSSTATE","CLICK","OPEN","CLOSE","FOCUS","cssClasses","SplitButton","window","jQuery","_outerWidth","init","element","options","that","this","enabled","prop","fn","call","_wrapper","_renderButtons","_renderMenu","_enable","_aria","_attachEvents","notify","_applyCssClasses","name","items","rounded","size","fillMode","themeColor","icon","popup","arrowIcon","messages","labelSuffix","events","wrapperId","attr","guid","wrapper","wrap","parent","arrowButton","appendTo","addClass","_getAppearanceClasses","_clearCssClasses","removeClass","widgetName","__proto__","cssProperties","getValidClass","widget","propName","value","_mainButton","_arrowButton","type","click","renderButton","text","imageUrl","menu","list","length","kendoButtonMenu","mainButton","toggleTarget","menuOpen","menuOpenHandler","bind","menuClose","menuCloseHandler","menuClick","_click","data","ev","computedWidth","trigger","target","preventDefault","sender","adjustPopupWidth","on","_keydown","_focus","_blur","closest","id","originalEvent","close","is","DOT","keyCode","ENTER","SPACEBAR","focus","enable","soft","add","toggleClass","removeAttr","menuItem","hide","show","open","_popup","setOptions","destroy","off","registerPrefix","registerValues","values","roundedValues","concat","plugin"],"sources":["kendo.splitbutton.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.html.button', 'kendo.button.menu'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"splitbutton\",\n name: \"SplitButton\",\n category: \"web\",\n 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.\",\n depends: [\"button.menu\", \"html.button\"]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n Widget = kendo.ui.Widget,\n NS = \".kendoSplitButton\",\n ui = kendo.ui,\n extend = $.extend,\n html = kendo.html,\n outerWidth = kendo._outerWidth,\n keys = kendo.keys,\n\n DOT = \".\",\n ID = \"id\",\n\n ARIA_HASPOPUP = \"aria-haspopup\",\n ARIA_DISABLED = \"aria-disabled\",\n ARIA_CONTROLS = \"aria-controls\",\n ARIA_LABEL = \"aria-label\",\n ARIA_EXPANDED = \"aria-expanded\",\n\n DISABLED = \"disabled\",\n DISABLEDSTATE = \"k-disabled\",\n FOCUSSTATE = \"k-focus\",\n\n CLICK = \"click\",\n KEYDOWN = \"keydown\",\n OPEN = \"open\",\n CLOSE = \"close\",\n\n FOCUS = \"focus\",\n BLUR = \"blur\";\n\n var cssClasses = {\n widget: \"k-split-button k-button-group\"\n };\n\n var SplitButton = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n options.enabled = options.enabled !== false && !$(element).prop(DISABLED);\n Widget.fn.init.call(that, element, options);\n\n that._wrapper();\n that._renderButtons();\n that._renderMenu();\n\n that._enable(that.options.enabled);\n\n that._aria();\n\n that._attachEvents();\n\n kendo.notify(that);\n\n that._applyCssClasses();\n },\n\n options: {\n name: \"SplitButton\",\n enabled: true,\n items: [],\n rounded: \"medium\",\n size: \"medium\",\n fillMode: \"solid\",\n themeColor: \"base\",\n icon: null,\n popup: null,\n arrowIcon: \"arrow-s\",\n messages: {\n labelSuffix: \"splitbutton\"\n }\n },\n\n events: [\n CLICK,\n OPEN,\n CLOSE\n ],\n\n _wrapper: function() {\n var that = this,\n id = that.element.attr(ID) || kendo.guid(),\n wrapperId = id + \"_wrapper\";\n\n that.wrapper = that.element\n .wrap(\"
\")\n .parent(\".k-split-button\");\n\n that.arrowButton = $(\"\").appendTo(that.wrapper);\n },\n\n _applyCssClasses: function() {\n var that = this;\n\n that.wrapper.addClass(that._getAppearanceClasses());\n },\n\n _clearCssClasses: function() {\n var that = this;\n\n that.wrapper.removeClass(that._getAppearanceClasses());\n },\n\n _getAppearanceClasses: function() {\n var that = this,\n widgetName = that.__proto__.options.name,\n roundedClass = kendo.cssProperties.getValidClass({\n widget: widgetName,\n propName: \"rounded\",\n value: that.options.rounded\n });\n\n return roundedClass;\n },\n\n _renderButtons: function() {\n var that = this;\n\n that._mainButton();\n that._arrowButton();\n },\n\n _mainButton: function() {\n var that = this,\n options = extend({}, that.options, {\n type: that.element.attr(\"type\") || \"button\"\n });\n\n delete options.click;\n\n html.renderButton(that.element, options);\n },\n\n _arrowButton: function() {\n var that = this,\n options = extend({}, that.options, {\n type: \"button\",\n icon: that.options.arrowIcon,\n });\n\n delete options.text;\n delete options.imageUrl;\n delete options.click;\n\n html.renderButton(that.arrowButton, options);\n },\n\n _aria: function() {\n var that = this,\n element = that.element,\n menu = that.menu;\n\n element.attr(ARIA_HASPOPUP, menu ? \"menu\" : null);\n element.attr(ARIA_EXPANDED, menu ? false : null);\n element.attr(ARIA_CONTROLS, menu ? menu.list.attr(ID) : null);\n\n if (!element.attr(ARIA_LABEL)) {\n element.attr(ARIA_LABEL, element.text() + \" \" + that.options.messages.labelSuffix);\n }\n },\n\n _renderMenu: function() {\n var that = this,\n options = extend({}, that.options),\n menu = $(\"
\");\n\n delete options.click;\n delete options.name;\n\n if (!options.items.length) {\n return;\n }\n\n that.menu = menu.appendTo(that.wrapper).kendoButtonMenu(extend({\n mainButton: that.element,\n toggleTarget: that.arrowButton,\n menuOpen: that.menuOpenHandler.bind(that),\n menuClose: that.menuCloseHandler.bind(that),\n menuClick: that._click.bind(that)\n }, options)).data(\"kendoButtonMenu\");\n },\n\n menuOpenHandler: function(ev) {\n var that = this,\n computedWidth = outerWidth(that.wrapper);\n\n var isDefaultPrevented = that.trigger(OPEN, { target: that.element });\n if (isDefaultPrevented) {\n ev.preventDefault();\n return;\n }\n\n ev.sender.adjustPopupWidth(computedWidth);\n that.element.attr(ARIA_EXPANDED, true);\n },\n\n menuCloseHandler: function(ev) {\n var that = this,\n isDefaultPrevented = that.trigger(CLOSE, { target: that.element });\n\n if (isDefaultPrevented) {\n ev.preventDefault();\n return;\n }\n\n that.element.attr(ARIA_EXPANDED, false);\n that.element.trigger(FOCUS);\n },\n\n _attachEvents: function() {\n var that = this;\n\n that.element.on(CLICK + NS, that._click.bind(that));\n that.element.on(KEYDOWN + NS, that._keydown.bind(that));\n that.element.on(FOCUS + NS, that._focus.bind(that));\n that.element.on(BLUR + NS, that._blur.bind(that));\n },\n\n _focus: function() {\n this.wrapper.addClass(FOCUSSTATE);\n },\n\n _blur: function() {\n this.wrapper.removeClass(FOCUSSTATE);\n },\n\n _click: function(ev) {\n var that = this,\n target = $(ev.target).closest(\".k-button\"),\n id = target.attr(ID),\n originalEvent = ev;\n\n if (ev.type === \"menu-click\") {\n id = ev.id;\n target = ev.target;\n originalEvent = ev.originalEvent;\n }\n\n that.menu.close();\n\n that.trigger(CLICK, { id: id, target: target, originalEvent: originalEvent });\n },\n\n _keydown: function(ev) {\n var that = this;\n\n if (that.element.is(DOT + DISABLEDSTATE) && (ev.keyCode === keys.ENTER || ev.keyCode === keys.SPACEBAR)) {\n ev.preventDefault();\n }\n },\n\n focus: function() {\n var that = this;\n that.element.trigger(FOCUS);\n },\n\n _enable: function(enable, soft) {\n this.element.add(this.arrowButton)\n .toggleClass(DISABLEDSTATE, !enable);\n\n if (enable) {\n this.element.removeAttr(ARIA_DISABLED);\n } else {\n this.element.attr(ARIA_DISABLED, !enable);\n }\n\n if (!soft) {\n this.element.attr(DISABLED, !enable);\n }\n\n this.arrowButton.attr(DISABLED, !enable);\n },\n\n enable: function(enable, menuItem, soft) {\n var that = this;\n\n if (enable === undefined$1) {\n enable = true;\n }\n\n if (menuItem && menuItem.length) {\n that.menu.enable(enable, menuItem);\n return;\n }\n\n that.options.enabled = enable;\n\n that._enable(enable, soft);\n that.menu.enable(enable);\n },\n\n hide: function(menuItem) {\n var that = this;\n\n if (menuItem && menuItem.length) {\n that.menu.hide(menuItem);\n }\n },\n\n show: function(menuItem) {\n var that = this;\n\n if (menuItem && menuItem.length) {\n that.menu.show(menuItem);\n }\n },\n\n open: function() {\n this.menu._popup.open();\n },\n\n close: function() {\n this.menu._popup.close();\n },\n\n items: function() {\n return this.menu.items();\n },\n\n setOptions: function(options) {\n var that = this;\n\n Widget.fn.setOptions.call(that, options);\n\n if (options.popup || options.items || options.size) {\n that.menu.destroy();\n that._renderMenu();\n }\n\n that._renderButtons();\n\n that._aria();\n },\n\n destroy: function() {\n var that = this;\n\n that.menu.destroy();\n\n that.element.off(NS);\n\n Widget.fn.destroy.call(that);\n }\n });\n\n kendo.cssProperties.registerPrefix(\"SplitButton\", \"k-splitbutton-\");\n\n kendo.cssProperties.registerValues(\"SplitButton\", [{\n prop: \"rounded\",\n values: kendo.cssProperties.roundedValues.concat([[\"full\", \"full\"]])\n }]);\n\n ui.plugin(SplitButton);\n\n })(window.kendo.jQuery);\n\n}));\n"]}