@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) • 24.1 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.data.js"),require("kendo.valueMapper.chunk.js")):"function"==typeof define&&define.amd?define(["exports","kendo.data","kendo.valueMapper.chunk"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Virtuallist={}),e.kendo._globals.Data,e.kendo._globals.ValueMapperChunk)}(this,(function(e,t,i){!function(e,t){var s=window.kendo,n=s.ui,r=s.htmlEncode,a=n.Widget,l=n.DataBoundWidget,o=/^\d+(\.\d+)?%$/i,u="k-list-item",h="k-table-row",d="k-list-item-group-label",c="k-selected",f="k-focus",p="k-hover",m="change",g="click",_="listBound",v="itemChange",I="activate",x="deactivate",b=".k-table-group-row",k=".VirtualList";function y(e){return e[e.length-1]}function D(e){return e instanceof Array?e:[e]}function S(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e}function C(e,t,i){var s=document.createElement(i||"div");return t&&(s.className=t),e.appendChild(s),s}function w(i,n,r){var a=r.template,l=this.options.columns&&this.options.columns.length,u=n.index%2==1?"k-table-alt-row":"";if(i=e(i),n.item||(a=r.placeholderTemplate),0===n.index&&this.header&&n.group&&this.header.html(r.fixedGroupTemplate(n.group)),i.attr("data-uid",n.item?n.item.uid:"").attr("data-offset-index",n.index),l&&n.item){u.length>0?i.addClass(u):i.removeClass("k-table-alt-row");let t=e(function(e,t,i){for(var n="",r=0;r<e.columns.length;r++){var a=e.columns[r].width,l=parseInt(a,10),u="";if(a){let e=`${l}${o.test(a)?"%":"px"}`;u=`${s.attr("style-width")}="${e}" ${s.attr("style-max-width")}="${e}"`}n+="<span class='k-table-td' "+u+">",n+=i["column"+r](t),n+="</span>"}return n}(this.options,n.item,r));s.applyStylesFromKendoAttributes(t,["width","max-width"]),i.empty().append(t)}else i.find("."+d).remove(),i.find(".k-list-item-text").html(a(n.item||{}));i.toggleClass(f,n.current),i.toggleClass(c,n.selected),i.toggleClass("k-first",n.newGroup),i.toggleClass("k-last",n.isLastGroupedItem),i.toggleClass("k-loading-item",!n.item),0!==n.index&&n.newGroup?l?e('<span class="k-table-td k-table-group-td"><span>'+r.groupTemplate(n.group)+"</span></span>").appendTo(i):e("<div class="+d+"></div>").appendTo(i).html(r.groupTemplate(n.group)):n.group&&l&&i.append(e('<span class="k-table-td k-table-spacer-td"></span>')),n.top!==t&&function(e,t){e.style.webkitTransform="translateY("+t+"px)",e.style.transform="translateY("+t+"px)"}(i[0],n.top)}function T(e){return e&&"resolved"!==e.state()}var H=l.extend({init:function(t,i){var n,r,l,o=this,u=i.columns&&i.columns.length?"k-table-body k-table-scroller":"k-list-content k-virtual-content";o.bound(!1),o._fetching=!1,a.fn.init.call(o,t,i),o.options.itemHeight||(o.options.itemHeight=(n=i.listSize,(l=e('<div class="k-list '+n+' k-virtual-list"><div class="k-list-content k-virtual-content"><ul class="k-list-ul"><li class="k-list-item"><span class="k-list-item-text">test</span></li></ul></div></div>')).css({position:"absolute",left:"-200000px",visibility:"hidden"}),l.appendTo(document.body),r=parseFloat(s.getComputedStyles(l.find(".k-list-item")[0],["height"]).height),l.remove(),r)),i=o.options,o.element.attr("role","listbox");var h="."+u.split(" ").join("."),d=o.element.closest(h);if(o.content=o.wrapper=d.length?d:o.element.wrap("<div unselectable='on' class='"+u+"'></div>").parent(),o.options.columns&&o.options.columns.length){var c=o.element.closest(".k-data-table").find(".k-table-thead"),f=e('<tr class="k-table-group-row"><th class="k-table-th" colspan="'+o.options.columns.length+'"></th></tr>');c.append(f),o.header=f.find(".k-table-th"),o.element.addClass("k-table-list k-virtual-table")}else o.header=o.content.before("<div class='k-list-group-sticky-header'></div>").prev(),o.element.addClass("k-list-ul");i.ariaLabel?this.element.attr("aria-label",i.ariaLabel):i.ariaLabelledBy&&this.element.attr("aria-labelledby",i.ariaLabelledBy),o.element.on("mouseenter"+k,"li:not(.k-loading-item)",(function(){e(this).addClass(p)})).on("mouseleave"+k,"li",(function(){e(this).removeClass(p)})),o._values=D(o.options.value),o._selectedDataItems=[],o._selectedIndexes=[],o._rangesList={},o._promisesList=[],o._optionID=s.guid(),o._templates(),o.setDataSource(i.dataSource),o.content.on("scroll"+k,s.throttle((function(){o._renderItems(),o._triggerListBound()}),i.delay)),o._selectable()},options:{name:"VirtualList",autoBind:!0,delay:100,height:null,listScreens:4,threshold:.5,itemHeight:null,oppositeBuffer:1,type:"flat",selectable:!1,value:[],dataValueField:null,template:e=>r(e),placeholderTemplate:()=>"loading...",groupTemplate:e=>r(e),fixedGroupTemplate:e=>r(e),mapValueTo:"index",valueMapper:null,ariaLabel:null,ariaLabelledBy:null},events:[m,g,_,v,I,x],setOptions:function(e){var t=this.options.columns&&this.options.columns.length?h:u;a.fn.setOptions.call(this,e),this._selectProxy&&!1===this.options.selectable?this.element.off(g,"."+t,this._selectProxy):!this._selectProxy&&this.options.selectable&&this._selectable(),this._templates(),this.refresh()},items:function(){return e(this._items)},destroy:function(){this.wrapper.off(k),this.dataSource.unbind(m,this._refreshHandler),a.fn.destroy.call(this)},setDataSource:function(e){var t,i=this,n=e||{};n=Array.isArray(n)?{data:n}:n,n=s.data.DataSource.create(n),i.dataSource?(i.dataSource.unbind(m,i._refreshHandler),i._clean(),i.bound(!1),i._deferValueSet=!0,t=i.value(),i.value([]),i.mute((function(){i.value(t)}))):i._refreshHandler=i.refresh.bind(i),i.dataSource=n.bind(m,i._refreshHandler),i.setDSFilter(n.filter()),0!==n.view().length?i.refresh():i.options.autoBind&&n.fetch()},skip:function(){return this.dataSource.currentRangeStart()},_triggerListBound:function(){var e=this,t=e.skip();e.bound()&&!e._selectingValue&&e._skip!==t&&(e._skip=t,e.trigger(_))},_getValues:function(t){var i=this._valueGetter;return e.map(t,(function(e){return i(e)}))},_highlightSelectedItems:function(){for(var e=0;e<this._selectedDataItems.length;e++){var t=this._getElementByDataItem(this._selectedDataItems[e]);t.length&&t.addClass(c)}},refresh:function(e){var t,i=this,s=e&&e.action,n="itemchange"===s,r=this.isFiltered();i._mute||(i._deferValueSet=!1,i._fetching?(i._renderItems&&i._renderItems(!0),i._triggerListBound()):(r&&i.focus(0),i._createList(),s||!i._values.length||r||i.options.skipUpdateOnBind||i._emptySearch?(i.bound(!0),i._highlightSelectedItems(),i._triggerListBound()):(i._selectingValue=!0,i.bound(!0),i.value(i._values,!0).done((function(){i._selectingValue=!1,i._triggerListBound()})))),(n||"remove"===s)&&(t=function(e,t){var i,s,n,r,a=t.length,l=e.length,o=[],u=[];if(l)for(n=0;n<l;n++){for(i=e[n],s=!1,r=0;r<a;r++)if(i===t[r]){s=!0,o.push({index:n,item:i});break}s||u.push(i)}return{changed:o,unchanged:u}}(i._selectedDataItems,e.items)).changed.length&&(n?i.trigger("selectedItemChange",{items:t.changed}):i.value(i._getValues(t.unchanged))),i._fetching=!1)},removeAt:function(e){var t=this._values.splice(e,1)[0];return{position:e,dataItem:this._removeSelectedDataItem(t)}},_removeSelectedDataItem:function(e){var t=this,i=t._valueGetter;for(var s in t._selectedDataItems)if(i(t._selectedDataItems[s])===e)return t._selectedIndexes.splice(s,1),t._selectedDataItems.splice(s,1)[0]},setValue:function(e){this._values=D(e)},value:function(i,s){var n=this;return i===t?n._values.slice():(null===i&&(i=[]),i=D(i),n._valueDeferred&&"resolved"!==n._valueDeferred.state()||(n._valueDeferred=e.Deferred()),!("multiple"===n.options.selectable&&n.select().length&&i.length)&&i.length||n.select(-1),n._values=i,(n.bound()&&!n._mute&&!n._deferValueSet||s)&&n._prefetchByValue(i),n._valueDeferred)},_checkValuesOrder:function(e){if(this._removedAddedIndexes&&this._removedAddedIndexes.length===e.length){var t=this._removedAddedIndexes.slice();return this._removedAddedIndexes=null,t}return e},_prefetchByValue:function(e){for(var t,s=this,n=s._dataView,r=s._valueGetter,a=s.options.mapValueTo,l=[],o=0;o<e.length;o++)for(var u=0;u<n.length;u++)(t=n[u].item)&&(S(t)?e[o]===t:e[o]===r(t))&&l.push(n[u].index);if(l.length===e.length)return s._values=[],void s.select(l);if("function"==typeof s.options.valueMapper){const t="index"===a?s.mapValueToIndex:s.mapValueToDataItem;s.options.valueMapper(i.v(this.options,e,t.bind(s)))}else s.value()[0]?(s._selectingValue=!1,s._triggerListBound()):s.select([-1])},mapValueToIndex:function(e){if((e=e===t||-1===e||null===e?[]:D(e)).length){var i=this._deselect([]).removed;i.length&&this._triggerChange(i,[])}else e=[-1];this.select(e)},mapValueToDataItem:function(i){var s,n;if((i=i===t||null===i?[]:D(i)).length){s=e.map(this._selectedDataItems,(function(e,t){return{index:t,dataItem:e}})),n=e.map(i,(function(e,t){return{index:t,dataItem:e}})),this._selectedDataItems=i,this._selectedIndexes=[];for(var r=0;r<this._selectedDataItems.length;r++){var a=this._getElementByDataItem(this._selectedDataItems[r]);this._selectedIndexes.push(this._getIndecies(a)[0]),a.addClass(c)}this._triggerChange(s,n),this._valueDeferred&&this._valueDeferred.resolve()}else this.select([-1])},deferredRange:function(t){var i=this.dataSource,s=this.itemCount,n=this._rangesList,r=e.Deferred(),a=[],l=Math.floor(t/s)*s,o=Math.ceil(t/s)*s,u=o===l?[o]:[l,o];return e.each(u,(function(t,r){var l,o=r+s,u=n[r];u&&u.end===o?l=u.deferred:(l=e.Deferred(),n[r]={end:o,deferred:l},i._multiplePrefetch(r,s,(function(){l.resolve()}))),a.push(l)})),e.when.apply(e,a).done((function(){r.resolve()})),r},prefetch:function(t){var i=this,s=this.itemCount,n=!i._promisesList.length;return T(i._activeDeferred)||(i._activeDeferred=e.Deferred(),i._promisesList=[]),e.each(t,(function(e,t){i._promisesList.push(i.deferredRange(i._getSkip(t,s)))})),n&&e.when.apply(e,i._promisesList).done((function(){i._promisesList=[],i._activeDeferred.resolve()})),i._activeDeferred},_findDataItem:function(e,t){var i;if("group"===this.options.type)for(var s=0;s<e.length;s++){if(!((i=e[s].items).length<=t))return i[t];t-=i.length}return e[t]},_getRange:function(e,t){return this.dataSource._findRange(e,Math.min(e+t,this.dataSource.total()))},dataItemByIndex:function(t){var i=this,n=i.itemCount,r=i._getSkip(t,n),a=this._getRange(r,n);return i._getRange(r,n).length?("group"===i.options.type&&(s.ui.progress(e(i.wrapper),!0),i.mute((function(){i.dataSource.range(r,n,(function(){s.ui.progress(e(i.wrapper),!1)})),a=i.dataSource.view()}))),i._findDataItem(a,[t-r])):null},selectedDataItems:function(){return this._selectedDataItems.slice()},scrollWith:function(e){this.content.scrollTop(this.content.scrollTop()+e)},scrollTo:function(e){this.content.scrollTop(e)},scrollToIndex:function(e){this.scrollTo(e*this.options.itemHeight)},focus:function(i){var s,n,r,a,l=this.options.itemHeight,o=this._optionID,u=!0;if(i===t)return(a=this.element.find("."+f)).length?a:null;if("function"==typeof i){r=this.dataSource.flatView();for(var h=0;h<r.length;h++)if(i(r[h])){i=h;break}}if(i instanceof Array&&(i=y(i)),isNaN(i)?(s=e(i),n=parseInt(e(s).attr("data-offset-index"),10)):(n=i,s=this._getElementByIndex(n)),-1===n)return this.element.find("."+f).removeClass(f),void(this._focusedIndex=t);if(s.length){s.hasClass(f)&&(u=!1),this._focusedIndex!==t&&((a=this._getElementByIndex(this._focusedIndex)).removeClass(f).removeAttr("id"),u&&this.trigger(x)),this._focusedIndex=n,s.addClass(f).attr("id",o);var d=this._getElementLocation(n);"top"===d?this.scrollTo(n*l):"bottom"===d?this.scrollTo(n*l+l-this._screenHeight):"outScreen"===d&&this.scrollTo(n*l),u&&this.trigger(I)}else this._focusedIndex=n,this.items().removeClass(f),this.scrollToIndex(n)},focusIndex:function(){return this._focusedIndex},focusFirst:function(){this.scrollTo(0),this.focus(0)},focusLast:function(){var e=this.dataSource.total();this.scrollTo(this.heightContainer.offsetHeight),this.focus(e-1)},focusPrev:function(){var e,t=this._focusedIndex;return!isNaN(t)&&t>0?(t-=1,this.focus(t),(e=this.focus())&&e.hasClass("k-loading-item")&&(t+=1,this.focus(t)),t):(t=this.dataSource.total()-1,this.focus(t),t)},focusNext:function(){var e,t=this._focusedIndex,i=this.dataSource.total()-1;return!isNaN(t)&&t<i?(t+=1,this.focus(t),(e=this.focus())&&e.hasClass("k-loading-item")&&(t-=1,this.focus(t)),t):(t=0,this.focus(t),t)},_triggerChange:function(e,t){t=t||[],((e=e||[]).length||t.length)&&this.trigger(m,{removed:e,added:t})},select:function(i){var s,n,r,a,l,o=this,u="multiple"!==o.options.selectable,h=T(o._activeDeferred),d=this.isFiltered(),c=[];if(i===t)return o._selectedIndexes.slice();if(o._selectDeferred&&"resolved"!==o._selectDeferred.state()||(o._selectDeferred=e.Deferred()),s=o._getIndecies(i),r=u&&!d&&y(s)===y(this._selectedIndexes),(c=o._deselectCurrentValues(s)).length||!s.length||r)return o._triggerChange(c),o._valueDeferred&&o._valueDeferred.resolve().promise(),o._selectDeferred.resolve().promise();1===s.length&&-1===s[0]&&(s=[]),n=s,l=o._deselect(s),c=l.removed,s=l.indices,u&&(h=!1,s.length&&(s=[y(s)]));var f=function(){var e=o._select(s);(n.length===s.length||u)&&o.focus(s),o._triggerChange(c,e),o._valueDeferred&&o._valueDeferred.resolve(),o._selectDeferred.resolve()};return a=o.prefetch(s),h||(a?a.done(f):f()),o._selectDeferred.promise()},bound:function(e){if(e===t)return this._listCreated;this._listCreated=e},mute:function(e){this._mute=!0,e(),this._mute=!1},setDSFilter:function(t){this._lastDSFilter=e.extend({},t)},isFiltered:function(){return this._lastDSFilter||this.setDSFilter(this.dataSource.filter()),!s.data.Query.compareFilters(this.dataSource.filter(),this._lastDSFilter)},skipUpdate:e.noop,_getElementByIndex:function(t){return this.items().filter((function(i,s){return t===parseInt(e(s).attr("data-offset-index"),10)}))},_getElementByDataItem:function(t){for(var i,s=this._dataView,n=this._valueGetter,r=0;r<s.length;r++)if(s[r].item&&S(s[r].item)?s[r].item===t:s[r].item&&t&&n(s[r].item)==n(t)){i=s[r];break}return i?this._getElementByIndex(i.index):e()},_clean:function(){this.result=t,this._lastScrollTop=t,this._skip=t,e(this.heightContainer).remove(),this.heightContainer=t,this.element.empty()},_height:function(){var e=!!this.dataSource.view().length,t=this.options.height,i=this.options.itemHeight,s=this.dataSource.total();return e?t/i>s&&(t=s*i):t=0,t},setScreenHeight:function(){var e=this._height();this.content.height(e),this._screenHeight=e},screenHeight:function(){return this._screenHeight},_getElementLocation:function(e){var t=this.content.scrollTop(),i=this._screenHeight,s=this.options.itemHeight,n=e*s,r=n+s,a=t+i;return n===t-s||r>t&&n<t?"top":n===a||n<a&&a<r?"bottom":n>=t&&n<=t+(i-s)?"inScreen":"outScreen"},_templates:function(){var e=this.options,t={template:e.template,placeholderTemplate:e.placeholderTemplate,groupTemplate:e.groupTemplate,fixedGroupTemplate:e.fixedGroupTemplate};for(var i in e.columns&&e.columns.forEach(((e,i)=>{var n=e.field?e.field.toString():"text";t["column"+i]=e.template||(e=>r(s.getter(n)(e)))})),t)"function"!=typeof t[i]&&(t[i]=s.template(t[i]||""));this.templates=t},_generateItems:function(e,t){for(var i,s,n=[],r=this.options.itemHeight+"px",a=this.options.columns&&this.options.columns.length?h:u;t-- >0;)(s=document.createElement("span")).className="k-list-item-text",(i=document.createElement("li")).tabIndex=-1,i.className=a,i.setAttribute("role","option"),i.style.height=r,i.style.minHeight=r,i.appendChild(s),e.appendChild(i),n.push(i);return n},_saveInitialRanges:function(){var t=this.dataSource._ranges,i=e.Deferred();i.resolve(),this._rangesList={};for(var s=0;s<t.length;s++)this._rangesList[t[s].start]={end:t[s].end,deferred:i}},_createList:function(){var e,t,i,s,n,r,a=this,l=a.content.get(0),o=a.options,u=a.dataSource;a.bound()&&a._clean(),a._saveInitialRanges(),a._buildValueGetter(),a.setScreenHeight(),a.itemCount=(e=a._screenHeight,t=o.listScreens,i=o.itemHeight,Math.ceil(e*t/i)),a.itemCount>u.total()&&(a.itemCount=u.total()),a._items=a._generateItems(a.element[0],a.itemCount),a._setHeight(o.itemHeight*u.total()),a.options.type=(u.group()||[]).length?"group":"flat","flat"===a.options.type?a.header.closest(b).length?a.header.closest(b).hide():a.header.hide():a.header.closest(b).length?a.header.closest(b).show():a.header.show(),a.getter=a._getter((function(){a._renderItems(!0)})),a._onScroll=function(e,t){var i=a._listItems(a.getter);return a._fixedHeader(e,i(e,t))},a._renderItems=a._whenChanged((n=l,r=a._onScroll,function(e){return r(n.scrollTop,e)}),(s=a._reorderList(a._items,w.bind(a)),function(e,t){return s(e.items,e.index,t),e})),a._renderItems(),a._calculateGroupPadding(a._screenHeight),a._calculateColumnsHeaderPadding()},_setHeight:function(e){var t,i=this.heightContainer;if(i?t=i.offsetHeight:i=this.heightContainer=C(this.content[0],"k-height-container"),e!==t)for(i.innerHTML="";e>0;){var s=Math.min(e,25e4);C(i).style.height=s+"px",e-=s}},_getter:function(){var e=null,t=this.dataSource,i=t.skip(),s=this.options.type,n=this.itemCount,r={};return t.pageSize()<n&&this.mute((function(){t.pageSize(n)})),function(a,l){var o=this;if(t.inRange(l,n)){var u;if(i!==l&&this.mute((function(){t.range(l,n),i=l})),"group"===s){if(!r[l])for(var h=r[l]=[],d=t.view(),c=0,f=d.length;c<f;c++)for(var p=d[c],m=0,g=p.items.length;m<g;m++)h.push({item:p.items[m],group:p.value});u=r[l][a-l]}else u=t.view()[a-l];return u}return e!==l&&(e=l,i=l,o._getterDeferred&&o._getterDeferred.reject(),o._getterDeferred=o.deferredRange(l),o._getterDeferred.then((function(){var e=o._indexConstraint(o.content[0].scrollTop);o._getterDeferred=null,l<=e&&e<=l+n&&(o._fetching=!0,t.range(l,n))}))),null}},_fixedHeader:function(e,t){var i=this.currentVisibleGroup,s=this.options.itemHeight,n=Math.floor((e-t.top)/s),r=t.items[n];if(r&&r.item){var a=r.group;if(a!==i){var l=a||"";this.header.html(this.templates.fixedGroupTemplate(l)),this.currentVisibleGroup=a}}return t},_itemMapper:function(e,t,i){var s=this.options.type,n=this.options.itemHeight,r=this._focusedIndex,a=!1,l=!1,o=!1,u=null,h=this._valueGetter;if("group"===s&&(e&&(o=0===t||!1!==this._currentGroup&&this._currentGroup!==e.group,this._currentGroup=e.group),u=e?e.group:null,e=e?e.item:null),"dataItem"===this.options.mapValueTo&&this._selectedDataItems.length&&e){for(var d=0;d<this._selectedDataItems.length;d++)if(h(this._selectedDataItems[d])===h(e)){a=!0;break}}else if(!this.isFiltered()&&i.length&&e)for(var c=0;c<i.length;c++)if(S(e)?i[c]===e:i[c]===h(e)){i.splice(c,1),a=!0;break}return r===t&&(l=!0),{item:e||null,group:u,newGroup:o,selected:a,current:l,index:t,top:t*n}},_range:function(e){var t,i=this.itemCount,s=this._values.slice(),n=[];this._view={},this._currentGroup=!1;for(var r=e,a=e+i;r<a;r++)t=this._itemMapper(this.getter(r,e),r,s),n[n.length-1]&&(n[n.length-1].isLastGroupedItem=t.newGroup),n.push(t),this._view[t.index]=t;return this._dataView=n,n},_getDataItemsCollection:function(e,t){var i=this._range(this._listIndex(e,t));return{index:i.length?i[0].index:0,top:i.length?i[0].top:0,items:i}},_listItems:function(){var e=this._screenHeight,t=function(e,t){var i=(e.listScreens-1-e.threshold)*t,s=e.threshold*t;return function(e,t,n){return t>n?t-e.top<i:0===e.top||t-e.top>s}}(this.options,e);return function(e,i){var s=this.result,n=this._lastScrollTop;return!i&&s&&t(s,e,n)||(s=this._getDataItemsCollection(e,n)),this._lastScrollTop=e,this.result=s,s}.bind(this)},_whenChanged:function(e,t){var i;return function(s){var n=e(s);n!==i&&(i=n,t(n,s))}},_reorderList:function(t,i){var n,r,a=this,l=t.length,o=-1/0;return i=(n=i,r=this.templates,function(t,i){for(var a=0,l=t.length;a<l;a++)n(t[a],i[a],r),i[a].item&&this.trigger(v,{item:e(t[a]),data:i[a].item,ns:s.ui})}).bind(this),function(e,s,n){var r,u,h=s-o;n||Math.abs(h)>=l?(r=t,u=e):(r=function(e,t){var i;return t>0?(i=e.splice(0,t),e.push.apply(e,i)):(i=e.splice(t,-t),e.unshift.apply(e,i)),i}(t,h),u=h>0?e.slice(-h):e.slice(0,-h)),i(r,u,a.bound()),o=s}},_bufferSizes:function(){var e,t,i,s=this.options;return e=this._screenHeight,t=s.listScreens,i=s.oppositeBuffer,{down:e*i,up:e*(t-1-i)}},_indexConstraint:function(e){var t=this.itemCount,i=this.options.itemHeight,s=this.dataSource.total();return Math.min(Math.max(s-t,0),Math.max(0,Math.floor(e/i)))},_listIndex:function(e,t){var i,s=this._bufferSizes();return i=e-(e>t?s.down:s.up),this._indexConstraint(i)},_selectable:function(){var e=this.options.columns&&this.options.columns.length?h:u;this.options.selectable&&(this._selectProxy=this._clickHandler.bind(this),this.element.on(g+k,"."+e,this._selectProxy))},getElementIndex:function(e){return e instanceof jQuery?parseInt(e.attr("data-offset-index"),10):t},_getIndecies:function(e){var t,i=[];if("function"==typeof e){t=this.dataSource.flatView();for(var s=0;s<t.length;s++)if(e(t[s])){i.push(s);break}}"number"==typeof e&&i.push(e);var n=this.getElementIndex(e);return isNaN(n)||i.push(n),e instanceof Array&&(i=e),i},_deselect:function(i){var s,n,r,a=[],l=this._selectedIndexes,o=this._selectedDataItems,u=0,h=this.options.selectable,d=0,f=this._valueGetter,p=null;if(i=i.slice(),!0!==h&&i.length){if("multiple"===h){let h=0;for(;h<i.length;){if(p=null,u=e.inArray(i[h],l),n=this.dataItemByIndex(i[h]),-1===u&&n)for(var m=0;m<o.length;m++)(S(n)?o[m]===n:f(o[m])===f(n))&&(r=this._getElementByIndex(i[h]),p=this._deselectSingleItem(r,m,i[h],d));else(s=l[u])!==t&&(r=this._getElementByIndex(s),p=this._deselectSingleItem(r,u,s,d));p&&(i.splice(h,1),a.push(p),d++,h--),h++}}}else{for(var g=0;g<l.length;g++)l[g]!==t?this._getElementByIndex(l[g]).removeClass(c):o[g]&&this._getElementByDataItem(o[g]).removeClass(c),a.push({index:l[g],position:g,dataItem:o[g]});this._values=[],this._selectedDataItems=[],this._selectedIndexes=[]}return{indices:i,removed:a}},_deselectSingleItem:function(e,t,i,s){if(e.hasClass(c))return e.removeClass(c),this._values.splice(t,1),this._selectedIndexes.splice(t,1),{index:i,position:t+s,dataItem:this._selectedDataItems.splice(t,1)[0]}},_deselectCurrentValues:function(t){var i,s,n,r,a=this.element[0].children,l=this._values,o=[],u=0;if("multiple"!==this.options.selectable||!this.isFiltered())return[];if(-1===t[0])return e(a).removeClass(c),o=e.map(this._selectedDataItems.slice(0),(function(e,t){return{dataItem:e,position:t}})),this._selectedIndexes=[],this._selectedDataItems=[],this._values=[],o;for(;u<t.length;u++){for(n=-1,s=t[u],this.dataItemByIndex(s)&&(i=this._valueGetter(this.dataItemByIndex(s))),r=0;r<l.length;r++)if(i==l[r]){n=r;break}n>-1&&(o.push(this.removeAt(n)),e(a[s]).removeClass(c))}return o},_getSkip:function(e,t){return((e<t?1:Math.floor(e/t)+1)-1)*t},_select:function(t){var i,s,n=this,r="multiple"!==this.options.selectable,a=this.dataSource,l=this.itemCount,o=this._valueGetter,u=[];return r&&(n._selectedIndexes=[],n._selectedDataItems=[],n._values=[]),s=a.skip(),e.each(t,(function(e,t){var r=n._getSkip(t,l);n.mute((function(){a.range(r,l),i=n._findDataItem(a.view(),[t-r]),n._selectedIndexes.push(t),n._selectedDataItems.push(i),n._values.push(S(i)?i:o(i)),u.push({index:t,dataItem:i}),n._getElementByIndex(t).addClass(c),a.range(s,l)}))})),n._values=n._checkValuesOrder(n._values),u},_clickHandler:function(t){var i=e(t.currentTarget);!t.isDefaultPrevented()&&i.attr("data-uid")&&this.trigger(g,{item:i})},_buildValueGetter:function(){this._valueGetter=s.getter(this.options.dataValueField)},_calculateGroupPadding:function(e){var t=this.items().first(),i=this.header,n=0;i[0]&&"none"!==i[0].style.display&&("auto"!==e&&(n=s.support.scrollbar()),n+=parseFloat(t.css("border-right-width"),10)+parseFloat(t.children(".k-group").css("right"),10),i.css("padding-right",n))},_calculateColumnsHeaderPadding:function(){if(this.options.columns&&this.options.columns.length){var e=s.support.isRtl(this.wrapper),t=s.support.scrollbar(),i=this.content.parent().parent().find(".k-table-header"),n=this.dataSource.total();i.css(e?"padding-left":"padding-right",n?t:0)}}});s.ui.VirtualList=H,s.ui.plugin(H)}(window.kendo.jQuery);var s=kendo;e.__meta__={id:"virtuallist",name:"VirtualList",category:"framework",depends:["data","valueMapper.chunk"],hidden:!0},e.default=s,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=kendo.virtuallist.min.js.map