UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

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