@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines (2 loc) • 22.2 kB
JavaScript
!function(e){"function"==typeof define&&define.amd?define(["kendo.draganddrop.min","kendo.data.min","kendo.selectable.min","kendo.html.button.min"],e):e()}((function(){!function(e,t){var a=window.kendo,n=a.attr,o=a.data,r=a.keys,i=a.template,l=a.ui.Widget,s=o.DataSource,d=a.ui.Selectable,c=a.ui.DataBoundWidget,u=a.Class,m=e.extend,g=e.noop,f="-",p="kendoListBox",h=".kendoListBox",_="k-disabled",v="k-selected",b=".k-list-item:not(.k-disabled)",x=".k-list-ul:not(.k-disabled) >"+b,T="k-listbox-actions",k=".k-button",S="k-focus",C="click"+h,I="keydown"+h,y=a._outerWidth,B=a._outerHeight,D="change",L="dataBound",E="add",w="remove",A="reorder",F="moveUp",N="moveDown",U="transferTo",H="transferFrom",W="transferAllTo",K="transferAllFrom",O="k-ghost",V="id",P="tabindex",q="dragstart",M="drag",R="drop",j="dragend",G="right",Q="bottom",z="aria-activedescendant",J="aria-busy",X="aria-label",Y=["k-listbox-actions-left",T+f+G,"k-listbox-actions-top",T+f+Q];function Z(t){return e.map(t,(function(t){return e(t).index()}))}function $(e){return void 0===e}function ee(e){return e.clone().attr("class","").addClass("k-drag-clue")}function te(){return e("<li>").addClass("k-drop-hint")}var ae=c.extend({init:function(e,t){var a=this;l.fn.init.call(a,e,t),a._wrapper(),a._list(),a._ariaLabel(a._getList()),(e=a.element.attr("multiple","multiple").hide())[0]&&!a.options.dataSource&&(a.options.dataTextField=a.options.dataTextField||"text",a.options.dataValueField=a.options.dataValueField||"value"),a._templates(),a._selectable(),a._dataSource(),a._createToolbar(),a._createDraggable(),a._createNavigatable()},destroy:function(){var e=this;c.fn.destroy.call(e),isNaN(e._listTabIndex)||(e._getList().off(),e._listTabIndex=null),e._unbindDataSource(),e._destroySelectable(),e._destroyToolbar(),e.wrapper.off(h),e._target&&(e._target=null),e._draggable&&(e._draggable.destroy(),e.placeholder=null),a.destroy(e.element)},setOptions:function(e){l.fn.setOptions.call(this,e),this._templates(),this._dataSource()},events:[D,L,E,w,A,q,M,R,j],options:{name:"ListBox",autoBind:!0,template:"",dataTextField:"",dataValueField:"",selectable:"single",draggable:null,dropSources:[],connectWith:"",navigatable:!0,toolbar:{position:G,tools:[]},messages:{tools:{remove:"Delete",moveUp:"Move Up",moveDown:"Move Down",transferTo:"Transfer To",transferFrom:"Transfer From",transferAllTo:"Transfer All To",transferAllFrom:"Transfer All From"}}},add:function(e){var t,a=this,n=e&&e.length?e:[e],o=n.length,r=a._getList();for(a._unbindDataSource(),a._unbindDataChange(),t=0;t<o;t++)a._addItem(n[t],r);a._bindDataChange(),a._bindDataSource(),a._syncElement()},_addItem:function(t,a){var n=this,o=e(n.templates.itemTemplate({item:t,r:n.templates.itemContent}));n._setItemId(o,t.uid),o.appendTo(a),"string"==typeof t?n.dataSource._data.push(t):n.dataSource.add(t)},_addItemAt:function(t,a){var n=this,o=e(n.templates.itemTemplate({item:t,r:n.templates.itemContent}));n._unbindDataSource(),"string"==typeof t?(n._insertElementAt(o,a),n.dataSource._data.push(t)):(n._setItemId(o,t.uid),n._insertElementAt(o,a),n.dataSource.add(t)),n._bindDataSource(),n._syncElement()},_insertElementAt:function(t,a){var n=this._getList();a>0?e(t).insertAfter(n.children().eq(a-1)):e(n).prepend(t)},_createNavigatable:function(){var e=this;e.options.navigatable&&e._getList().on(C,b,e._click.bind(e)).on(I,e._keyDown.bind(e)).on("blur.kendoListBox",e._blur.bind(e))},_getTabIndex:function(){var e,t=this;return isNaN(t._listTabIndex)?(e=t.element.attr(P),t._listTabIndex=isNaN(e)?0:e,t.element.removeAttr(P),t._listTabIndex):t._listTabIndex},_blur:function(){this._target&&(this._target.removeClass(S),this._getList().removeAttr(z)),this._target=null},_click:function(t){var n=this,o=e(t.currentTarget),r=n._target,i=n._getList(),l=a._activeElement(),s=e.contains(i,l);r&&r.removeClass(S),n._target=o,o.addClass(S),i.attr(z,o.attr(V)),i[0]===l||s&&e(l).is(":button,a,:input,a>.k-icon,a>.k-svg-icon,textarea,span.k-select,span.k-icon,span.k-svg-icon,span.k-link,label.k-checkbox-label,.k-input,.k-multiselect-wrap,.k-picker-wrap,.k-picker-wrap>.k-selected-color,.k-tool-icon,.k-dropdownlist")||n.focus()},_getNavigatableItem:function(e){var t,a=this;return t=a._target?a._target:a.items().filter(b).first(),e===r.UP&&a._target&&(t=a._target.prevAll(b).first()),e===r.DOWN&&a._target&&(t=a._target.nextAll(b).first()),t.length?t:null},_scrollIntoView:function(e){if(e){e[0]&&(e=e[0]);var t=this._getList().parent()[0],a=e.offsetTop,n=t.scrollTop,o=t.clientHeight,r=a+e.offsetHeight;n>a?n=a:r>n+o&&(n=r-o),t.scrollTop=n}},_keyDown:function(e){var t,a=this,n=e.keyCode,o=a._getNavigatableItem(n);if((!e.shiftKey||e.ctrlKey||n!==r.DOWN&&n!==r.UP)&&(a._shiftSelecting=!1),n==r.DELETE)a._executeCommand(w),a._target&&(a._target.removeClass(S),a._getList().removeAttr(z),a._target=null),t=!0;else if(n===r.DOWN||n===r.UP){if(!o)return void e.preventDefault();if(e.shiftKey&&!e.ctrlKey)a._target&&a._target.removeClass(S),a._shiftSelecting||(a.clearSelection(),a._shiftSelecting=!0),a._target&&o.hasClass("k-selected")?a._target.removeClass(v):"single"==a.options.selectable?a.select(o):a.select(o.add(a._target)),a._updateToolbar(),a._updateAllToolbars(),a.trigger(D);else{if(e.shiftKey&&e.ctrlKey)return a._executeCommand(n===r.DOWN?N:F),a._scrollIntoView(a._target),void e.preventDefault();e.shiftKey||e.ctrlKey||(a._target&&a._target.removeClass(S),"multiple"===a.options.selectable&&a.clearSelection(),a.select(o),a._updateToolbar(),a._updateAllToolbars(),a.trigger(D))}o&&a._target&&a._target[0]!==o[0]&&a._target.removeClass(S),a._target=o,a._target?(a._target.addClass(S),a._scrollIntoView(a._target),a._getList().attr(z,a._target.attr(V))):a._getList().removeAttr(z),t=!0}else n==r.SPACEBAR?(e.ctrlKey&&a._target?(a._target.hasClass(v)?a._target.removeClass(v):a.select(a._target),a.trigger(D)):(a.clearSelection(),a.select(a._target),a.trigger(D)),a._updateToolbar(),a._updateAllToolbars(),t=!0):e.ctrlKey&&n==r.RIGHT?(e.shiftKey?a._executeCommand(W):a._executeCommand(U),a._target=a.select().length?a.select():null,t=!0):e.ctrlKey&&n==r.LEFT?(e.shiftKey?a._executeCommand(K):a._executeCommand(H),t=!0):n===r.F10&&a.toolbar&&(a.toolbar.element.find(k).not("[tabindex=-1]").trigger("focus"),t=!0);t&&e.preventDefault()},focus:function(){a.focusElement(this._getList())},_createDraggable:function(){var t,n=this,o=n.options.draggable;if(o){if(t=o.hint,!n.options.selectable)throw new Error("Dragging requires selection to be enabled");t||(t=ee),n._draggable=new a.ui.Draggable(n.wrapper,{filter:o.filter?o.filter:"ul.k-list-ul>li.k-list-item",hint:a.isFunction(t)?t:e(t),dragstart:n._dragstart.bind(n),dragcancel:n._clear.bind(n),drag:n._drag.bind(n),dragend:n._dragend.bind(n)})}},_dragstart:function(t){var n=this,o=n.draggedElement=t.currentTarget,r=n.options.draggable.placeholder,i={dataItems:n.dataItem(o),items:e(o),draggableEvent:t};!1!==n.options.draggable.enabled?(r||(r=te),n.placeholder=a.isFunction(r)?e(r.call(n,o)):e(r),o.is(".k-disabled")||n.trigger(q,i)?t.preventDefault():(n.clearSelection(),n.select(o),o.addClass(O))):t.preventDefault()},_clear:function(){this.draggedElement.removeClass(O),this.placeholder.remove()},_findElementUnderCursor:function(t){var n=a.elementUnderCursor(t),o=t.sender;return(e.contains(o.hint[0],n)||o.hint[0]===n)&&(o.hint.hide(),n=a.elementUnderCursor(t),o.hint.show()),n},_findTarget:function(t){var a,n,o=this,r=o._findElementUnderCursor(t),i=e(r),l=o._getList();return e.contains(l[0],r)?(a=o.items(),r=i.is("li")?r:i.closest("li")[0],(n=a.filter(r)[0]||a.has(r)[0])?(n=e(n)).hasClass(_)?null:{element:n,listBox:o}:null):l[0]==r||l.parent()[0]==r?{element:e(l),appendToBottom:!0,listBox:o}:o._searchConnectedListBox(i)},_getElementCenter:function(e){var t=e.length?a.getOffset(e):null;return t&&(t.top+=B(e)/2,t.left+=y(e)/2),t},_searchConnectedListBox:function(t){var a,n,o,r,i=t;return(r=t.hasClass("k-list-scroller k-selectable")?t:t.closest(".k-list-scroller.k-selectable")).length&&(a=r.parent().find("[data-role='listbox']").getKendoListBox())&&-1!==e.inArray(this.element[0].id,a.options.dropSources)?(n=a.items(),t=t.is("li")?t[0]:t.closest("li")[0],(o=n.filter(t)[0]||n.has(t)[0])?(o=e(o)).hasClass(_)?null:{element:o,listBox:a}:!n.length||i.hasClass("k-list-scroller k-selectable")||i.hasClass("k-list-content")?{element:a._getList(),listBox:a,appendToBottom:!0}:null):null},_drag:function(t){var a,n,o,r=this,i=r.draggedElement,l=r._findTarget(t),s=t.x.location,d=t.y.location,c={dataItems:[r.dataItem(i)],items:e(i),draggableEvent:t};if(r.trigger(M,c))t.preventDefault();else if(l){if(a=this._getElementCenter(l.element),n={left:Math.round(s-a.left),top:Math.round(d-a.top)},l.appendToBottom)return void r._movePlaceholder(l,null,i);n.top<0?o="prev":n.top>0&&(o="next"),o&&l.element[0]!=r.placeholder[0]&&r._movePlaceholder(l,o,i)}else r.placeholder.parent().length&&r.placeholder.remove()},_movePlaceholder:function(t,n,o){var r=this,i=r.placeholder,l=t.listBox.options.draggable;i.parent().length&&(r.placeholder.remove(),l&&l.placeholder?r.placeholder=a.isFunction(l.placeholder)?e(l.placeholder.call(r,o)):e(l.placeholder):r.placeholder=e(te.call(r,o))),n?"prev"===n?t.element.before(r.placeholder):"next"===n&&t.element.after(r.placeholder):t.element.append(r.placeholder)},_dragend:function(t){var a=this,n=a.draggedElement,o=a.items(),r=o.not(a.draggedElement).index(a.placeholder),i=o.not(a.placeholder).index(a.draggedElement),l=a.dataItem(n),s={dataItems:[l],items:e(n)},d=a.placeholder.closest(".k-listbox").find("[data-role='listbox']").getKendoListBox();if(a.trigger(R,m({},s,{draggableEvent:t})))return t.preventDefault(),void this._clear();r>=0?r===i||a.trigger(A,m({},s,{offset:r-i}))||(n.removeClass(O),a.reorder(n,r)):d&&(a.trigger(w,s)||a.remove(e(n)),d.trigger(E,s)||d._addItemAt(l,d.items().index(a.placeholder))),a._clear(),a._draggable.dropped=!0,a.trigger(j,m({},s,{draggableEvent:t})),a._updateToolbar(),a._updateAllToolbars()},reorder:function(t,a){var n=this,o=n.dataSource,r=n.dataItem(t),i=o.at(a),l=n.items()[a],s=e(t);r&&l&&i&&(n._removeElement(s),n._insertElementAt(s,a),n._updateToolbar())},remove:function(t){var a,n=this,o=n._getItems(t),r=o.length;for(n._unbindDataSource(),n._unbindDataChange(),a=0;a<r;a++)n._removeItem(e(o[a]));n._bindDataChange(),n._bindDataSource(),n._syncElement(),n._updateToolbar(),n._updateAllToolbars()},_removeItem:function(e){var t=this,a=t.dataSource,n=t.dataItem(e),o=a.transport;if(n&&a){if("string"==typeof n){for(var r=a._data,i=0;i<r.length;i++)if(n===r[i]){r[i]=r[r.length-1],r.pop();break}}else a.remove(n),!o||!o.destroy&&!(o.options||{}).destroy||n.isNew&&n.isNew()||a._destroyed.push(n);t._removeElement(e)}},_removeElement:function(t){a.destroy(t),e(t).off().remove()},dataItem:function(t){var a=n("uid"),o=e(t).attr(a)||e(t).closest("["+a+"]").attr(a);return o?this.dataSource.getByUid(o):e(t).find(".k-list-item-text").html()},_dataItems:function(t){var a,n=[],o=e(t),r=o.length;for(a=0;a<r;a++)n.push(this.dataItem(o.eq(a)));return n},items:function(){return this._getList().children()},select:function(e){var t,a=this.selectable;return $(e)?a.value():(t=this.items().filter(e).filter(x),a.options.multiple||(a.clear(),t=t.first()),a.value(t))},clearSelection:function(){var e=this.selectable;e&&e.clear()},enable:function(t,a){var n,o=this,r=!!$(a)||!!a,i=o._getItems(t),l=i.length;for(n=0;n<l;n++)o._enableItem(e(i[n]),r);o._updateAllToolbars()},_enableItem:function(t,a){this.dataItem(t)&&(a?e(t).removeClass(_):e(t).addClass(_).removeClass(v))},setDataSource:function(e){this.options.dataSource=e,this._dataSource()},_dataSource:function(){var e=this,t=e.options,a=t.dataSource||{};(a=Array.isArray(a)?{data:a}:a).select=e.element,a.fields=[{field:t.dataTextField},{field:t.dataValueField}],e._unbindDataSource(),e.dataSource=s.create(a),e._bindDataSource(),e.options.autoBind&&(e.wrapper.attr(J,!0),e.dataSource.fetch())},_bindDataChange:function(){var e=this.dataSource;e._data&&e._changeHandler&&(e._data.bind(D,e._changeHandler),e._data.trigger(D))},_unbindDataChange:function(){var e=this.dataSource;e._data&&e._changeHandler&&e._data.unbind(D,e._changeHandler)},_bindDataSource:function(){var e=this,t=e.dataSource;e._dataChangeHandler=e.refresh.bind(e),t&&t.bind(D,e._dataChangeHandler)},_unbindDataSource:function(){var e=this.dataSource;e&&e.unbind(D,this._dataChangeHandler)},_wrapper:function(){var t=this,a=t.element,n=a.parent("div.k-listbox");n[0]||((n=a.wrap('<div class="k-listbox" unselectable="on" />').parent())[0].style.cssText=a[0].style.cssText,n[0].title=a[0].title,e('<div class="k-list-scroller"><div class="k-list k-list-md"><div class="k-list-content"></div></div></div>').insertBefore(a)),t.wrapper=n.addClass(a[0].className).css("display",""),t._innerWrapper=e(n[0].firstChild)},_list:function(){var t=this,a=e("<ul class='k-list-ul' role='listbox'></ul>"),n=t.options.selectable;d.parseOptions(n).multiple&&a.attr("aria-multiselectable","true"),a.appendTo(t.wrapper.find(".k-list-content")),t.options.navigatable&&t._getList().attr(P,t._getTabIndex())},_templates:function(){var e,t=this.options;e=t.template&&"string"==typeof t.template?a.template(t.template):t.template?t.template:a.template((function(e){return""+a.getter(t.dataTextField)(e)})),this.templates={itemTemplate:a.template((function(e){var t=e.item;return"<li class='k-list-item' role='option' aria-selected='false'><span class='k-list-item-text'>"+(0,e.r)(t)+"</span></li>"})),itemContent:e,toolbar:"<div role='toolbar' class='k-listbox-actions'></div>"}},refresh:function(){for(var e=this,t=e.dataSource.view(),a=e.templates.itemTemplate,n="",o=0;o<t.length;o++)n+=a({item:t[o],r:e.templates.itemContent});e._getList().html(n),e._setItemIds(),e._createToolbar(),e._syncElement(),e._updateToolbar(),e._updateAllToolbars(),e.trigger(L),e.wrapper.attr(J,!1)},_syncElement:function(){for(var e="",t=this.dataSource.view(),a=0;a<t.length;a++)e+=this._option(t[a][this.options.dataValueField]||t[a],t[a][this.options.dataTextField]||t[a],!0);this.element.html(e)},_option:function(e,n){var o="<option";return e!==t&&(-1!==(e+="").indexOf('"')&&(e=e.replace(/"/g,""")),o+=' value="'+e+'"'),o+=" selected>",n!==t&&(o+=a.htmlEncode(n)),o+"</option>"},_setItemId:function(e,t){e.length&&e.attr(n("uid"),t).attr(V,t)},_setItemIds:function(){var e,t=this,a=t.items(),n=t.dataSource.view(),o=n.length;for(e=0;e<o;e++)t._setItemId(a.eq(e),n[e].uid)},_selectable:function(){var e=this,t=e.options.selectable,a=d.parseOptions(t);e.selectable=new d(e._innerWrapper,{aria:!0,selectedClass:"k-selected",multiple:a.multiple,filter:b,change:e._onSelect.bind(e)})},_onSelect:function(){var e=this;e._updateToolbar(),e._updateAllToolbars(),e.trigger(D)},_destroySelectable:function(){var e=this;e.selectable&&e.selectable.element&&(e.selectable.destroy(),e.selectable=null)},_getList:function(){return this.wrapper.find(".k-list-ul")},_getItems:function(e){return this.items().filter(e)},_createToolbar:function(){var t=this,a=t.options.toolbar,n=a.position||G,o=n===Q?"insertAfter":"insertBefore",r=a.tools||[],i=t.options.messages;if(t._destroyToolbar(),t.wrapper.removeClass(Y.join(" ")),r.length&&r.length>0){var l=e(t.templates.toolbar)[o](t._innerWrapper);t.toolbar=new fe(l,m({},a,{listBox:t,messages:i})),t.wrapper.addClass(T+f+n)}},_destroyToolbar:function(){var e=this;e.toolbar&&(e.toolbar.destroy(),e.toolbar=null)},_executeCommand:function(e){var t=this,a=ne.current.create(e,{listBox:t});a&&(a.execute(),t._updateToolbar(),t._updateAllToolbars())},_updateToolbar:function(){var e=this.toolbar;e&&e._updateToolStates()},_updateAllToolbars:function(){var t,a,n=e("select[data-role='listbox']"),o=n.length;for(a=0;a<o;a++)(t=e(n[a]).data(p))&&t._updateToolbar()}});a.ui.plugin(ae);var ne=u.extend({init:function(){this._commands=[]},register:function(e,t){this._commands.push({commandName:e,commandType:t})},create:function(e,t){var a,n,o,r=this._commands,i=r.length,l=e?e.toLowerCase():"";for(o=0;o<i;o++)if((n=r[o]).commandName.toLowerCase()===l){a=n;break}if(a)return new a.commandType(t)}});ne.current=new ne;var oe=u.extend({init:function(e){var t=this;t.options=m({},t.options,e),t.listBox=t.options.listBox},options:{listBox:null},getItems:function(){return e(this.listBox.select())},execute:g,canExecute:g}),re=oe.extend({execute:function(){var e=this.listBox,t=this.getItems();e.trigger(w,{dataItems:e._dataItems(t),items:t})||e.remove(t)},canExecute:function(){return this.listBox.select().length>0}});ne.current.register(w,re);var ie=oe.extend({execute:function(){this.canExecute()&&this.moveItems()},canExecute:g,moveItems:function(){var t,a=this,n=a.listBox,o=a.options,r=a.getItems(),i=o.offset,l=Z(r),s=e.makeArray(r.sort(a.itemComparer)),d=o.moveAction;if(!n.trigger(A,{dataItems:n._dataItems(s),items:e(s),offset:i}))for(;s.length>0&&l.length>0;)t=s[d](),n.reorder(t,l[d]()+i)},options:{offset:0,moveAction:"pop"},itemComparer:function(t,a){var n=e(t).index(),o=e(a).index();return n===o?0:n>o?1:-1}}),le=ie.extend({options:{offset:-1,moveAction:"shift"},canExecute:function(){var e=Z(this.getItems());return e.length>0&&e[0]>0}});ne.current.register(F,le);var se=ie.extend({options:{offset:1,moveAction:"pop"},canExecute:function(){var t=Z(this.getItems());return t.length>0&&e(t).last()[0]<this.listBox.items().length-1}});ne.current.register(N,se);var de=oe.extend({options:{filter:b},execute:function(){var e=this,t=e.getSourceListBox(),a=e.getItems().filter(e.options.filter),n=t?t._dataItems(a):[],o=e.getDestinationListBox(),r=e.getUpdatedSelection(a);o&&a.length>0&&(o.trigger(E,{dataItems:n,items:a})||o.add(n),t.trigger(w,{dataItems:n,items:a})||(t.remove(a),e.updateSelection(r)))},getUpdatedSelection:function(t){if(1!==t.length)return null;var a=this.options.filter,n=this.getSourceListBox(),o=n?n.items().filter(a).last():null,r=e(t).filter(o).length>0?e(t).prevAll(a)[0]:e(t).nextAll(a)[0];return r||null},updateSelection:function(t){var a=this.getSourceListBox();a&&t&&(a.select(e(t)),a.selectable.trigger(D),a._scrollIntoView(t))},getSourceListBox:g,getDestinationListBox:g}),ce=de.extend({canExecute:function(){var e=this.getSourceListBox();return!!e&&e.select().length>0},getSourceListBox:function(){return this.listBox},getDestinationListBox:function(){var t=this.getSourceListBox();return t&&t.options.connectWith?e("#"+t.options.connectWith).data(p):null},getItems:function(){var t=this.getSourceListBox();return t?e(t.select()):e()}});ne.current.register(U,ce);var ue=de.extend({canExecute:function(){var e=this.getSourceListBox();return!!e&&e.select().length>0},getSourceListBox:function(){var t=this.getDestinationListBox();return t&&t.options.connectWith?e("#"+t.options.connectWith).data(p):null},getDestinationListBox:function(){return this.listBox},getItems:function(){var t=this.getSourceListBox();return t?e(t.select()):e()}});ne.current.register(H,ue);var me=ce.extend({canExecute:function(){var e=this.getSourceListBox();return!!e&&e.wrapper.find(x).length>0},getItems:function(){var t=this.getSourceListBox();return t?t.items():e()},getUpdatedSelection:g,updateSelection:g});ne.current.register(W,me);var ge=ue.extend({canExecute:function(){var e=this.getSourceListBox();return!!e&&e.wrapper.find(x).length>0},getItems:function(){var t=this.getSourceListBox();return t?t.items():e()},getUpdatedSelection:g,updateSelection:g});ne.current.register(K,ge);var fe=u.extend({init:function(t,a){var n=this;n.element=e(t).addClass(T),n.options=m({},n.options,a),n.listBox=n.options.listBox,n._initTemplates(),n._createTools(),n._updateToolStates(),n._attachEventHandlers(),n._aria(),n._tabindex()},destroy:function(){var e=this;e._detachEventHandlers(),a.destroy(e.element),e.element.remove(),e.element=null},options:{position:G,tools:[]},_aria:function(){var t=this.listBox._getList(),n=t.attr("aria-labelledby"),o=n?e("#"+n).text():t.attr(X),r=t.attr("id")||a.guid();t.attr("id",r),this.element.attr("aria-controls",r),o&&this.element.attr(X,o+" toolbar.")},_attachEventHandlers:function(){var e=this;e.element.on(C,"button.k-button:not(.k-disabled)",e._onToolClick.bind(e)).on(I,e._keyDown.bind(e))},_createTools:function(){var t,a,n=this,o=n.options.tools,r=o.length,i=n.options.messages.tools,l=n.element;for(a=0;a<r;a++)(t=m({},fe.defaultTools[o[a]],{text:i[o[a]]}))&&l.append(e(n.templates.tool(t)));n.element.append(l)},_detachEventHandlers:function(){this.element.off(h).find("*").off(h)},_executeToolCommand:function(e){var t=this.listBox;t&&t._executeCommand(e)},_focusTool:function(){this.element.find(k).not("[tabindex=-1]").trigger("focus")},_initTemplates:function(){this.templates={tool:i((function(e){var t=e.icon,n=e.iconClass,o=e.command,r=e.text;return a.html.renderButton("<button data-command='"+o+"' title='"+r+"' aria-label='"+r+"'></button>",{icon:t,iconClass:n})}))}},_keyDown:function(t){var n=t.keyCode,o=e(t.target),r=o.is(k)?o:o.closest("li");n===a.keys.UP||n===a.keys.LEFT?(t.preventDefault(),r.prev().length&&this._tabindex(r.prev()),this._focusTool()):n!==a.keys.DOWN&&n!==a.keys.RIGHT||(t.preventDefault(),r.next()&&this._tabindex(r.next()),this._focusTool())},_onToolClick:function(t){t.preventDefault(),this._executeToolCommand(e(t.currentTarget).data("command")),this._focusTool()},_tabindex:function(e){var t,a=this.element.find(k);t=e&&e.length?e:a.first(),a.attr(P,-1),t.removeAttr(P)},_updateToolStates:function(){var e,t=this,a=t.options.tools,n=a.length,o=t.element.find(k).not("[tabindex=-1]");for(e=0;e<n;e++)t._updateToolState(a[e]);t._tabindex(o)},_updateToolState:function(e){var t=ne.current.create(e,{listBox:this.listBox}),a=this.element.find("[data-command='"+e+"']");a[0]&&t&&t.canExecute&&(t.canExecute()?a.removeClass(_).removeAttr(P):a.addClass(_).attr(P,"-1"))}});fe.defaultTools={remove:{command:w,icon:"x"},moveUp:{command:F,icon:"caret-alt-up"},moveDown:{command:N,icon:"caret-alt-down"},transferTo:{command:U,icon:"caret-alt-right"},transferFrom:{command:H,icon:"caret-alt-left"},transferAllTo:{command:W,icon:"caret-double-alt-right"},transferAllFrom:{command:K,icon:"caret-double-alt-left"}},m(ae,{ToolBar:fe})}(window.kendo.jQuery)}));
//# sourceMappingURL=kendo.listbox.min.js.map