UNPKG

@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.9 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.draganddrop.js"),require("kendo.data.js"),require("kendo.selectable.js"),require("kendo.html.button.js")):"function"==typeof define&&define.amd?define(["exports","kendo.draganddrop","kendo.data","kendo.selectable","kendo.html.button"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Listbox={}))}(this,(function(e){!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,p="-",f="kendoListBox",_="."+f,h="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"+_,y="keydown"+_,I="blur"+_,B=a._outerWidth,D=a._outerHeight,E="change",L="dataBound",w="add",A="remove",F="reorder",N="moveUp",U="moveDown",H="transferTo",W="transferFrom",K="transferAllTo",O="transferAllFrom",q="caret-alt-right",P="caret-alt-left",V="caret-double-alt-right",j="caret-double-alt-left",$="k-ghost",M="id",R="tabindex",G="dragstart",Q="drag",z="drop",J="dragend",X="right",Y="aria-activedescendant",Z="aria-busy",ee="aria-label",te=[T+p+"left",T+p+X,T+p+"top",T+p+"bottom"];function ae(t){return e.map(t,(function(t){return e(t).index()}))}function ne(e){return void 0===e}function oe(e){return e.clone().attr("class","").addClass("k-drag-clue")}function re(){return e("<li>").addClass("k-drop-hint")}var ie=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(_),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:[E,L,w,A,F,G,Q,z,J],options:{name:"ListBox",autoBind:!0,template:"",dataTextField:"",dataValueField:"",selectable:"single",draggable:null,dropSources:[],connectWith:"",navigatable:!0,toolbar:{position:X,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(y,e._keyDown.bind(e)).on(I,e._blur.bind(e))},_getTabIndex:function(){var e,t=this;return isNaN(t._listTabIndex)?(e=t.element.attr(R),t._listTabIndex=isNaN(e)?0:e,t.element.removeAttr(R),t._listTabIndex):t._listTabIndex},_blur:function(){this._target&&(this._target.removeClass(S),this._getList().removeAttr(Y)),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(Y,o.attr(M)),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(A),a._target&&(a._target.removeClass(S),a._getList().removeAttr(Y),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(E);else{if(e.shiftKey&&e.ctrlKey)return a._executeCommand(n===r.DOWN?U:N),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(E))}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(Y,a._target.attr(M))):a._getList().removeAttr(Y),t=!0}else n==r.SPACEBAR?(e.ctrlKey&&a._target?(a._target.hasClass(v)?a._target.removeClass(v):a.select(a._target),a.trigger(E)):(a.clearSelection(),a.select(a._target),a.trigger(E)),a._updateToolbar(),a._updateAllToolbars(),t=!0):e.ctrlKey&&n==r.RIGHT?(e.shiftKey?a._executeCommand(K):a._executeCommand(H),a._target=a.select().length?a.select():null,t=!0):e.ctrlKey&&n==r.LEFT?(e.shiftKey?a._executeCommand(O):a._executeCommand(W),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=oe),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=re),n.placeholder=a.isFunction(r)?e(r.call(n,o)):e(r),o.is("."+h)||n.trigger(G,i)?t.preventDefault():(n.clearSelection(),n.select(o),o.addClass($))):t.preventDefault()},_clear:function(){this.draggedElement.removeClass($),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(h)?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+=D(e)/2,t.left+=B(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(h)?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(Q,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(re.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(z,m({},s,{draggableEvent:t})))return t.preventDefault(),void this._clear();r>=0?r===i||a.trigger(F,m({},s,{offset:r-i}))||(n.removeClass($),a.reorder(n,r)):d&&(a.trigger(A,s)||a.remove(e(n)),d.trigger(w,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){const t=this,a=t.selectable;let n;if(ne(e))return a.value();n=t.items().filter(e).filter(x),a.options.multiple||(a.clear(),n=n.first());const o=a.value(n);return t._updateAllToolbars(),o},clearSelection:function(){const e=this.selectable;e&&e.clear(),this._updateAllToolbars()},enable:function(t,a){var n,o=this,r=!!ne(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(h):e(t).addClass(h).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(Z,!0),e.dataSource.fetch())},_bindDataChange:function(){var e=this.dataSource;e._data&&e._changeHandler&&(e._data.bind(E,e._changeHandler),e._data.trigger(E))},_unbindDataChange:function(){var e=this.dataSource;e._data&&e._changeHandler&&e._data.unbind(E,e._changeHandler)},_bindDataSource:function(){var e=this,t=e.dataSource;e._dataChangeHandler=e.refresh.bind(e),t&&t.bind(E,e._dataChangeHandler)},_unbindDataSource:function(){var e=this.dataSource;e&&e.unbind(E,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(R,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((e=>`${a.getter(t.dataTextField)(e)}`)),this.templates={itemTemplate:a.template((({item:e,r:t})=>`<li class='k-list-item' role='option' aria-selected='false'><span class='k-list-item-text'>${t(e)}</span></li>`)),itemContent:e,toolbar:`<div role='toolbar' class='${T}'></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.toolbar||e._createToolbar(),e._syncElement(),e._updateToolbar(),e._updateAllToolbars(),e.trigger(L),e.wrapper.attr(Z,!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,"&quot;")),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(M,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(E)},_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||X,o=a.tools||[],r=t.options.messages;if(t._destroyToolbar(),t.wrapper.removeClass(te.join(" ")),o.length&&o.length>0){var i=e(t.templates.toolbar).insertBefore(t._innerWrapper);t.toolbar=new ve(i,m({},a,{listBox:t,messages:r})),t.wrapper.addClass(T+p+n)}},_destroyToolbar:function(){var e=this;e.toolbar&&(e.toolbar.destroy(),e.toolbar=null)},_executeCommand:function(e){var t=this,a=le.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(f))&&t._updateToolbar()}});a.ui.plugin(ie);var le=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)}});le.current=new le;var se=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}),de=se.extend({execute:function(){var e=this.listBox,t=this.getItems();e.trigger(A,{dataItems:e._dataItems(t),items:t})||e.remove(t)},canExecute:function(){return this.listBox.select().length>0}});le.current.register(A,de);var ce=se.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=ae(r),s=e.makeArray([].sort.call(r,a.itemComparer)),d=o.moveAction;if(!n.trigger(F,{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}}),ue=ce.extend({options:{offset:-1,moveAction:"shift"},canExecute:function(){var e=ae(this.getItems());return e.length>0&&e[0]>0}});le.current.register(N,ue);var me=ce.extend({options:{offset:1,moveAction:"pop"},canExecute:function(){var t=ae(this.getItems());return t.length>0&&e(t).last()[0]<this.listBox.items().length-1}});le.current.register(U,me);var ge=se.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(w,{dataItems:n,items:a})||o.add(n),t.trigger(A,{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(E),a._scrollIntoView(t))},getSourceListBox:g,getDestinationListBox:g}),pe=ge.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(f):null},getItems:function(){var t=this.getSourceListBox();return t?e(t.select()):e()}});le.current.register(H,pe);var fe=ge.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(f):null},getDestinationListBox:function(){return this.listBox},getItems:function(){var t=this.getSourceListBox();return t?e(t.select()):e()}});le.current.register(W,fe);var _e=pe.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});le.current.register(K,_e);var he=fe.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});le.current.register(O,he);var ve=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:X,tools:[]},_aria:function(){var t=this.listBox._getList(),n=t.attr("aria-labelledby"),o=n?e("#"+n).text():t.attr(ee),r=t.attr("id")||a.guid();t.attr("id",r),this.element.attr("aria-controls",r),o&&this.element.attr(ee,o+" toolbar.")},_attachEventHandlers:function(){var e=this;e.element.on(C,"button.k-button:not(.k-disabled)",e._onToolClick.bind(e)).on(y,e._keyDown.bind(e))},_createTools:function(){var t,n,o=this,r=a.support.isRtl(o.element),i=o.options.tools,l=i.length,s=o.options.messages.tools,d=o.element;for(ve.defaultTools=a.deepExtend({},ve.defaultTools,{transferTo:{icon:r?P:q},transferFrom:{icon:r?q:P},transferAllTo:{icon:r?j:V},transferAllFrom:{icon:r?V:j}}),n=0;n<l;n++)(t=m({},ve.defaultTools[i[n]],{text:s[i[n]]}))&&d.append(e(o.templates.tool(t)));o.element.append(d)},_detachEventHandlers:function(){this.element.off(_).find("*").off(_)},_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((({icon:e,iconClass:t,command:n,text:o})=>a.html.renderButton(`<button data-command='${n}' title='${o}' aria-label='${o}'></button>`,{icon:e,iconClass:t})))}},_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();var a=e(t.currentTarget);this._tabindex(a),this._executeToolCommand(a.data("command")),this._focusTool()},_tabindex:function(e){var t,a=this.element.find(k);t=e&&e.length?e:a.first(),a.attr(R,-1),t.removeAttr(R)},_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=le.current.create(e,{listBox:this.listBox}),a=this.element.find("[data-command='"+e+"']");a[0]&&t&&t.canExecute&&(t.canExecute()?a.removeClass(h).removeAttr(R):a.addClass(h).attr(R,"-1"))}});ve.defaultTools={remove:{command:A,icon:"x"},moveUp:{command:N,icon:"caret-alt-up"},moveDown:{command:U,icon:"caret-alt-down"},transferTo:{command:H,icon:q},transferFrom:{command:W,icon:P},transferAllTo:{command:K,icon:V},transferAllFrom:{command:O,icon:j}},m(ie,{ToolBar:ve})}(window.kendo.jQuery);var t=kendo;e.__meta__={id:"listbox",name:"ListBox",category:"web",depends:["draganddrop","data","selectable","html.button"]},e.default=t,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.listbox.min.js.map