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.2 kB
/* @license */ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`kendo.core.min.js`),require(`kendo.togglebutton.min.js`),require(`kendo.button.min.js`)):typeof define==`function`&&define.amd?define([`exports`,`kendo.core.min`,`kendo.togglebutton.min`,`kendo.button.min`],t):(e=typeof globalThis<`u`?globalThis:e||self,t((e.kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Buttongroup={}),e.kendo._globals.Core,e.kendo._globals.Togglebutton,e.kendo._globals.Button))})(this,function(e,t,n,r){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let i={id:`buttongroup`,name:`ButtonGroup`,category:`web`,description:`The Kendo ButtonGroup widget is a linear set of grouped buttons.`,depends:[`core`,`togglebutton`,`button`]};(function(e,t){var n=window.kendo,r=n.ui,i=r.Widget,a=r.ToggleButton,o=r.Button,s=n.keys,c=`.kendoButtonGroup`,l=`k-button-group`,u=`k-button`,d=`k-selected`,f=`k-disabled`,p=`k-focus`,m=`select`,h=`keydown`,g=`aria-disabled`,_=`.`,v=`none`,y=`single`,b=`multiple`,x=`toggle`,S=`focus`,C=i.extend({init:function(e,t){var n=this;i.fn.init.call(n,e,t),n.wrapper=n.element,n.selectedIndices=[],n._buttons=n._renderItems(n.options.items);let r=t&&t.fillMode?` k-button-group-`+t.fillMode:``;n.element.addClass(l).attr(`role`,`group`),r&&n.element.addClass(r),n._enable=!0,(!n.options.enable||!n.options.enabled)&&(n._enable=!1,n.element.attr(g,!0).addClass(f),n._buttons.forEach(e=>{e.enable(!1)})),n.options.selection!==v&&n.select(n.options.index),n._attachEvents()},events:[m],options:{name:`ButtonGroup`,selection:y,index:-1,enable:!0,enabled:!0,preventKeyNav:!1,size:t,rounded:t,fillMode:t,themeColor:t},badge:function(e,t){var r=this,i=r.element,a=isNaN(e)?i.find(e).getKendoToggleButton()||i.find(e).getKendoButton():r._buttons[e],o=t||t===0,s,c;if(a){if(s=a.badge,!s&&o)return a._badge({text:n.htmlEncode(t)}),n.htmlEncode(t);if(o)s.text(n.htmlEncode(t));else if(t===!1){a.badge=null,c=s.element,s.destroy(),c.empty().remove();return}return s?s.text():null}},current:function(){return this.element.find(_+d)},destroy:function(){var t=this;t.element.off(c),t.element.find(_+u).each(function(t,n){var r=e(n).getKendoToggleButton()||e(n).getKendoButton();r&&r.destroy()}),i.fn.destroy.call(t)},enable:function(e){e===void 0&&(e=!0),this.element.attr(g,!e).toggleClass(f,!e),this._buttons.forEach(t=>{var n=t.element.hasClass(p)||t.element.is(`:focus`);t.enable(e),n&&t.element.removeAttr(`disabled`).addClass(`k-focus`).trigger(`focus`)}),this._enable=this.options.enable=e},select:function(n){var r=this,i,a=-1;this.options.selection===v||n===t||n===-1||(typeof n==`number`?a=n:(n.nodeType&&(n=e(n)),a=n.index()),i=r._buttons[a],i&&(r.options.selection===b?n.length>1?n.each((t,n)=>{var i=e(n).index();r._buttons[i].toggle(),r._toggleIndex(i)}):(r._buttons[a].toggle(),r._toggleIndex(a)):r._resetIndexes(a)))},_addButton:function(e,t){if(this.options.selection===v||t.command&&!t.togglable)return delete t.selected,new o(e,t);var n=new a(e,t);return n.bind(x,this._select.bind(this,e)),n},_attachEvents:function(){this.options.preventKeyNav||this.element.on(h+c,this._keyDown.bind(this))},_keyDown:function(t){var r=this,i=e(r.element),a=i.find(_+u),o=i.find(`:focus`),c=a.index(o),l=n.support.isRtl(r.element),d;t.keyCode===s.LEFT&&!l||t.keyCode===s.RIGHT&&l?(d=c===0?a.eq(a.length-1):e(a[c-1]),d.trigger(S),t.preventDefault()):(t.keyCode===s.LEFT&&l||t.keyCode===s.RIGHT&&!l)&&(d=c+1===a.length?a.eq(0):e(a[c+1]),d.trigger(S),t.preventDefault())},_decorateButtons:function(t){t.length&&(e(t[0].element).addClass(`k-group-start`),e(t[t.length-1].element).addClass(`k-group-end`))},_renderItems:function(t){var r=this,i=r.options,a=r.element.children(),o=[];return a.length>0&&a.each(function(t){var a=e(this),s=a.find(`img`).addClass(`k-image`),c=a.is(`[disabled]`)||a.hasClass(f),l={badge:n.attrValue(a,`badge`),icon:s[0]?null:n.attrValue(a,`icon`),disabled:c,selected:c?!1:a.is(_+d),size:i.size,rounded:i.rounded,fillMode:i.fillMode,themeColor:i.themeColor};o.push(r._addButton(a,l)),l.selected&&r.selectedIndices.push(t)}),t?(t.forEach(function(t,a){var s=t.text?t.encoded===!1?t.text:n.htmlEncode(t.text):``,c=t.url?e(`<a href=`+n.sanitizeLink(t.url)+`>`):e(`<button>`);c.html(s),t.attributes&&c.attr(t.attributes),t=e.extend({},t,{size:i.size,rounded:i.rounded,fillMode:i.fillMode,themeColor:i.themeColor}),c.appendTo(r.element),o.push(r._addButton(c,t)),t.selected&&r.selectedIndices.push(a)}),r._decorateButtons(o),o):(r._decorateButtons(o),o)},_resetIndexes:function(e){this.selectedIndices=[],this._buttons.forEach(e=>{e.toggle(!1)}),this._buttons[e].toggle(!0),this.selectedIndices.push(e)},_select:function(e){var t=this.options.selection,n=e.index();!this._enable||e.is(_+f)||(t===b?this._toggleIndex(n):t===y&&this._resetIndexes(n),this.trigger(m,{indices:this.selectedIndices,target:e}))},_toggleIndex:function(e){this.selectedIndices.indexOf(e)===-1?this.selectedIndices.push(e):this.selectedIndices.splice(this.selectedIndices.indexOf(e),1)}});r.plugin(C)})(window.kendo.jQuery);var a=kendo;e.__meta__=i,e.default=a}); //# sourceMappingURL=kendo.buttongroup.min.js.map