/** * Kendo UI v2016.1.112 (http://www.telerik.com/kendo-ui) * Copyright 2016 Telerik AD. All rights reserved. * * Kendo UI commercial licenses may be obtained at * http://www.telerik.com/purchase/license-agreement/kendo-ui-complete * If you do not own a commercial license, this file shall be governed by the trial license terms. */ !function(e,define){define("kendo.virtuallist.min",["kendo.data.min"],e)}(function(){return function(e,t){function i(e){return e[e.length-1]}function n(e){return e instanceof Array?e:[e]}function s(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e}function r(e,t,i){return Math.ceil(e*t/i)}function o(e,t,i){var n=document.createElement(i||"div");return t&&(n.className=t),e.appendChild(n),n}function a(){var t,i=e('
');return i.css({position:"absolute",left:"-200000px",visibility:"hidden"}),i.appendTo(document.body),t=parseFloat(m.getComputedStyles(i.find(".k-item")[0],["line-height"])["line-height"]),i.remove(),t}function l(e,t,i){return{down:e*i,up:e*(t-1-i)}}function u(e,t){var i=(e.listScreens-1-e.threshold)*t,n=e.threshold*t;return function(e,t,s){return t>s?i>t-e.top:0===e.top||t-e.top>n}}function h(e,t){return function(i){return t(e.scrollTop,i)}}function c(e){return function(t,i){return e(t.items,t.index,i),t}}function d(e,t){m.support.browser.msie&&10>m.support.browser.version?e.style.top=t+"px":(e.style.webkitTransform="translateY("+t+"px)",e.style.transform="translateY("+t+"px)")}function f(t,i){return function(n,s){for(var r=0,o=n.length;o>r;r++)t(n[r],s[r],i),s[r].item&&this.trigger(N,{item:e(n[r]),data:s[r].item,ns:m.ui})}}function p(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}function g(i,n,s){var r=s.template;i=e(i),n.item||(r=s.placeholderTemplate),this.angular("cleanup",function(){return{elements:[i]}}),i.attr("data-uid",n.item?n.item.uid:"").attr("data-offset-index",n.index).html(r(n.item||{})),i.toggleClass(G,n.current),i.toggleClass(V,n.selected),i.toggleClass("k-first",n.newGroup),i.toggleClass("k-loading-item",!n.item),0!==n.index&&n.newGroup&&e("
").appendTo(i).html(s.groupTemplate(n.group)),n.top!==t&&d(i[0],n.top),this.angular("compile",function(){return{elements:[i],data:[{dataItem:n.item,group:n.group,newGroup:n.newGroup}]}})}function _(e,t){var i,n,s,r,o=t.length,a=e.length,l=[],u=[];if(a)for(s=0;a>s;s++){for(i=e[s],n=!1,r=0;o>r;r++)if(i===t[r]){n=!0,l.push({index:s,item:i});break}n||u.push(i)}return{changed:l,unchanged:u}}var m=window.kendo,v=m.ui,x=v.Widget,I=v.DataBoundWidget,y=e.proxy,b="k-virtual-wrap",D="k-virtual-list",C="k-virtual-content",S="k-list",k="k-group-header",w="k-virtual-item",H="k-item",T="k-height-container",L="k-group",V="k-state-selected",G="k-state-focused",B="k-state-hover",M="change",F="click",E="listBound",N="itemChange",P="activate",A="deactivate",R=".VirtualList",z=I.extend({init:function(t,i){var s=this;s.bound(!1),s._fetching=!1,x.fn.init.call(s,t,i),s.options.itemHeight||(s.options.itemHeight=a()),i=s.options,s.element.addClass(S+" "+D).attr("role","listbox"),s.content=s.element.wrap("
").parent(),s.wrapper=s.content.wrap("
").parent(),s.header=s.content.before("
").prev(),s.element.on("mouseenter"+R,"li:not(.k-loading-item)",function(){e(this).addClass(B)}).on("mouseleave"+R,"li",function(){e(this).removeClass(B)}),s._values=n(s.options.value),s._selectedDataItems=[],s._selectedIndexes=[],s._rangesList={},s._activeDeferred=null,s._promisesList=[],s._optionID=m.guid(),s.setDataSource(i.dataSource),s.content.on("scroll"+R,m.throttle(function(){s._renderItems(),s._triggerListBound()},i.delay)),s._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:"#:data#",placeholderTemplate:"loading...",groupTemplate:"#:data#",fixedGroupTemplate:"fixed header template",valueMapper:null},events:[M,F,E,N,P,A],setOptions:function(e){x.fn.setOptions.call(this,e),this._selectProxy&&this.options.selectable===!1?this.element.off(F,"."+w,this._selectProxy):!this._selectProxy&&this.options.selectable&&this._selectable(),this.refresh()},items:function(){return e(this._items)},destroy:function(){this.wrapper.off(R),this.dataSource.unbind(M,this._refreshHandler),x.fn.destroy.call(this)},setDataSource:function(t){var i,n=this,s=t||{};s=e.isArray(s)?{data:s}:s,s=m.data.DataSource.create(s),n.dataSource?(n.dataSource.unbind(M,n._refreshHandler),n._clean(),n.bound(!1),n._deferValueSet=!0,i=n.value(),n.value([]),n.mute(function(){n.value(i)})):n._refreshHandler=e.proxy(n.refresh,n),n.dataSource=s.bind(M,n._refreshHandler),n.setDSFilter(s.filter()),0!==s.view().length?n.refresh():n.options.autoBind&&s.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(E))},_getValues:function(t){var i=this._valueGetter;return e.map(t,function(e){return i(e)})},refresh:function(e){var t,i=this,n=e&&e.action,s="itemchange"===n,r=this.isFiltered();i._mute||(i._deferValueSet=!1,i._fetching?(i._renderItems&&i._renderItems(!0),i._triggerListBound()):(r&&i.focus(0),i._createList(),n||!i._values.length||r||i.options.skipUpdateOnBind?(i.bound(!0),i._triggerListBound()):(i._selectingValue=!0,i.value(i._values,!0).done(function(){i.bound(!0),i._selectingValue=!1,i._triggerListBound()}))),(s||"remove"===n)&&(t=_(i._selectedDataItems,e.items),t.changed.length&&(s?i.trigger("selectedItemChange",{items:t.changed}):i.value(i._getValues(t.unchanged)))),i._fetching=!1)},removeAt:function(e){return this._selectedIndexes.splice(e,1),this._values.splice(e,1),{position:e,dataItem:this._selectedDataItems.splice(e,1)[0]}},setValue:function(e){this._values=n(e)},value:function(i,s){var r=this;return i===t?r._values.slice():(null===i&&(i=[]),i=n(i),"multiple"===r.options.selectable&&r.select().length&&i.length&&r.select(-1),r._valueDeferred&&"resolved"!==r._valueDeferred.state()||(r._valueDeferred=e.Deferred()),i.length||r.select(-1),r._values=i,(r.bound()&&!r._mute&&!r._deferValueSet||s)&&r._prefetchByValue(i),r._valueDeferred)},_prefetchByValue:function(e){var i,r,o,a=this,l=a._dataView,u=a._valueGetter,h=!1,c=[];for(r=0;e.length>r;r++)for(o=0;l.length>o;o++)i=l[o].item,i&&(h=s(i)?e[r]===i:e[r]===u(i),h&&c.push(l[o].index));if(c.length===e.length)return a._values=[],a.select(c),t;if("function"!=typeof a.options.valueMapper)throw Error("valueMapper is not provided");a.options.valueMapper({value:"multiple"===this.options.selectable?e:e[0],success:function(e){a._values=[],a._selectedIndexes=[],a._selectedDataItems=[],e=n(e),e.length||(e=[-1]),a.select(e)}})},deferredRange:function(t){var i=this.dataSource,n=this.itemCount,s=this._rangesList,r=e.Deferred(),o=[],a=Math.floor(t/n)*n,l=Math.ceil(t/n)*n,u=l===a?[l]:[a,l];return e.each(u,function(t,r){var a,l=r+n,u=s[r];u&&u.end===l?a=u.deferred:(a=e.Deferred(),s[r]={end:l,deferred:a},i._multiplePrefetch(r,n,function(){a.resolve()})),o.push(a)}),e.when.apply(e,o).then(function(){r.resolve()}),r},prefetch:function(t){var i=this,n=this.itemCount,s=!i._promisesList.length;return i._activeDeferred||(i._activeDeferred=e.Deferred(),i._promisesList=[]),e.each(t,function(e,t){var s=Math.floor(t/n)*n;i._promisesList.push(i.deferredRange(s))}),s&&e.when.apply(e,i._promisesList).done(function(){i._activeDeferred.resolve(),i._activeDeferred=null,i._promisesList=[]}),i._activeDeferred},_findDataItem:function(e){var t,i,n=this.dataSource.view();if("group"===this.options.type)for(i=0;n.length>i;i++){if(t=n[i].items,!(e>=t.length))return t[e];e-=t.length}return n[e]},selectedDataItems:function(){return this._selectedDataItems.slice()},scrollTo:function(e){this.content.scrollTop(e)},scrollToIndex:function(e){this.scrollTo(e*this.options.itemHeight)},focus:function(n){var s,r,o,a,l,u,h=this.options.itemHeight,c=this._optionID,d=!0;if(n===t)return a=this.element.find("."+G),a.length?a:null;if("function"==typeof n)for(o=this.dataSource.flatView(),l=0;o.length>l;l++)if(n(o[l])){n=l;break}return n instanceof Array&&(n=i(n)),isNaN(n)?(s=e(n),r=parseInt(e(s).attr("data-offset-index"),10)):(r=n,s=this._getElementByIndex(r)),-1===r?(this.element.find("."+G).removeClass(G),this._focusedIndex=t,t):(s.length?(s.hasClass(G)&&(d=!1),this._focusedIndex!==t&&(a=this._getElementByIndex(this._focusedIndex),a.removeClass(G).removeAttr("id"),d&&this.trigger(A)),this._focusedIndex=r,s.addClass(G).attr("id",c),u=this._getElementLocation(r),"top"===u?this.scrollTo(r*h):"bottom"===u?this.scrollTo(r*h+h-this.screenHeight):"outScreen"===u&&this.scrollTo(r*h),d&&this.trigger(P)):(this._focusedIndex=r,this.items().removeClass(G),this.scrollToIndex(r)),t)},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)},focusPrev:function(){var e,t=this._focusedIndex;return!isNaN(t)&&t>0?(t-=1,this.focus(t),e=this.focus(),e&&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)&&i>t?(t+=1,this.focus(t),e=this.focus(),e&&e.hasClass("k-loading-item")&&(t-=1,this.focus(t)),t):(t=0,this.focus(t),t)},_triggerChange:function(e,t){e=e||[],t=t||[],(e.length||t.length)&&this.trigger(M,{removed:e,added:t})},select:function(e){var n,s,r,o,a,l=this,u="multiple"!==l.options.selectable,h=!!l._activeDeferred,c=this.isFiltered(),d=[];return e===t?l._selectedIndexes.slice():(n=l._getIndecies(e),s=u&&!c&&i(n)===i(this._selectedIndexes),d=l._deselectCurrentValues(n),d.length||!n.length||s?(l._triggerChange(d),l._valueDeferred&&l._valueDeferred.resolve(),t):(1===n.length&&-1===n[0]&&(n=[]),o=l._deselect(n),d=o.removed,n=o.indices,u&&(l._activeDeferred=null,h=!1,n.length&&(n=[i(n)])),a=function(){var e=l._select(n);l.focus(n),l._triggerChange(d,e),l._valueDeferred&&l._valueDeferred.resolve()},r=l.prefetch(n),h||(r?r.done(a):a()),t))},bound:function(e){return e===t?this._listCreated:(this._listCreated=e,t)},mute:function(e){this._mute=!0,y(e(),this),this._mute=!1},setDSFilter:function(t){this._lastDSFilter=e.extend({},t)},isFiltered:function(){return this._lastDSFilter||this.setDSFilter(this.dataSource.filter()),!m.data.Query.compareFilters(this.dataSource.filter(),this._lastDSFilter)},skipUpdate:e.noop,_getElementByIndex:function(t){return this.items().filter(function(i,n){return t===parseInt(e(n).attr("data-offset-index"),10)})},_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,n=this.dataSource.total();return e?t/i>n&&(t=n*i):t=0,t},_screenHeight:function(){var e=this._height(),t=this.content;t.height(e),this.screenHeight=e},_getElementLocation:function(e){var t,i=this.content.scrollTop(),n=this.screenHeight,s=this.options.itemHeight,r=e*s,o=r+s,a=i+n;return t=r===i-s||o>i&&i>r?"top":r===a||a>r&&o>a?"bottom":r>=i&&i+(n-s)>=r?"inScreen":"outScreen"},_templates:function(){var e,t={template:this.options.template,placeholderTemplate:this.options.placeholderTemplate,groupTemplate:this.options.groupTemplate,fixedGroupTemplate:this.options.fixedGroupTemplate};for(e in t)"function"!=typeof t[e]&&(t[e]=m.template(t[e]));this.templates=t},_generateItems:function(e,t){for(var i,n=[],s=this.options.itemHeight+"px";t-- >0;)i=document.createElement("li"),i.tabIndex=-1,i.className=w+" "+H,i.setAttribute("role","option"),i.style.height=s,i.style.minHeight=s,e.appendChild(i),n.push(i);return n},_saveInitialRanges:function(){var t,i=this.dataSource._ranges,n=e.Deferred();for(n.resolve(),this._rangesList={},t=0;i.length>t;t++)this._rangesList[i[t].start]={end:i[t].end,deferred:n}},_createList:function(){var t=this,i=t.content.get(0),n=t.options,s=t.dataSource;t.bound()&&t._clean(),t._saveInitialRanges(),t._screenHeight(),t._buildValueGetter(),t.itemCount=r(t.screenHeight,n.listScreens,n.itemHeight),t.itemCount>s.total()&&(t.itemCount=s.total()),t._templates(),t._items=t._generateItems(t.element[0],t.itemCount),t._setHeight(n.itemHeight*s.total()),t.options.type=(s.group()||[]).length?"group":"flat","flat"===t.options.type?t.header.hide():t.header.show(),t.getter=t._getter(function(){t._renderItems(!0)}),t._onScroll=function(e,i){var n=t._listItems(t.getter);return t._fixedHeader(e,n(e,i))},t._renderItems=t._whenChanged(h(i,t._onScroll),c(t._reorderList(t._items,e.proxy(g,t)))),t._renderItems(),t._calculateGroupPadding(t.screenHeight)},_setHeight:function(e){var t,i,n=this.heightContainer;if(n?t=n.offsetHeight:n=this.heightContainer=o(this.content[0],T),e!==t)for(n.innerHTML="";e>0;)i=Math.min(e,25e4),o(n).style.height=i+"px",e-=i},_getter:function(){var e=null,t=this.dataSource,i=t.skip(),n=this.options.type,s=this.itemCount,r={};return t.pageSize()c;c++)for(f=h[c],p=0,g=f.items.length;g>p;p++)u.push({item:f.items[p],group:f.value});l=r[a][o-a]}else l=t.view()[o-a];return l}return e!==a&&(e=a,i=a,_._getterDeferred&&_._getterDeferred.reject(),_._getterDeferred=_.deferredRange(a),_._getterDeferred.then(function(){var e=_._indexConstraint(_.content[0].scrollTop);_._getterDeferred=null,e>=a&&a+s>=e&&(_._fetching=!0,t.range(a,s))})),null}},_fixedHeader:function(e,t){var i,n=this.currentVisibleGroup,s=this.options.itemHeight,r=Math.floor((e-t.top)/s),o=t.items[r];return o&&o.item&&(i=o.group,i!==n&&(this.header[0].innerHTML=i||"",this.currentVisibleGroup=i)),t},_itemMapper:function(e,t,i){var n,r=this.options.type,o=this.options.itemHeight,a=this._focusedIndex,l=!1,u=!1,h=!1,c=null,d=!1,f=this._valueGetter;if("group"===r&&(e&&(h=0===t||this._currentGroup&&this._currentGroup!==e.group,this._currentGroup=e.group),c=e?e.group:null,e=e?e.item:null),!this.isFiltered()&&i.length&&e)for(n=0;i.length>n;n++)if(d=s(e)?i[n]===e:i[n]===f(e)){i.splice(n,1),l=!0;break}return a===t&&(u=!0),{item:e?e:null,group:c,newGroup:h,selected:l,current:u,index:t,top:t*o}},_range:function(e){var t,i,n,s=this.itemCount,r=this._values.slice(),o=[];for(this._view={},this._currentGroup=null,i=e,n=e+s;n>i;i++)t=this._itemMapper(this.getter(i,e),i,r),o.push(t),this._view[t.index]=t;return this._dataView=o,o},_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 t=this.screenHeight,i=this.options,n=u(i,t);return e.proxy(function(e,t){var i=this.result,s=this._lastScrollTop;return!t&&i&&n(i,e,s)||(i=this._getDataItemsCollection(e,s)),this._lastScrollTop=e,this.result=i,i},this)},_whenChanged:function(e,t){var i;return function(n){var s=e(n);s!==i&&(i=s,t(s,n))}},_reorderList:function(t,i){var n=this,s=t.length,r=-(1/0);return i=e.proxy(f(i,this.templates),this),function(e,o,a){var l,u,h=o-r;a||Math.abs(h)>=s?(l=t,u=e):(l=p(t,h),u=h>0?e.slice(-h):e.slice(0,-h)),i(l,u,n.bound()),r=o}},_bufferSizes:function(){var e=this.options;return l(this.screenHeight,e.listScreens,e.oppositeBuffer)},_indexConstraint:function(e){var t=this.itemCount,i=this.options.itemHeight,n=this.dataSource.total();return Math.min(Math.max(n-t,0),Math.max(0,Math.floor(e/i)))},_listIndex:function(e,t){var i,n=this._bufferSizes();return i=e-(e>t?n.down:n.up),this._indexConstraint(i)},_selectable:function(){this.options.selectable&&(this._selectProxy=e.proxy(this,"_clickHandler"),this.element.on(F+R,"."+w,this._selectProxy))},_getIndecies:function(e){var t,i,n=[];if("function"==typeof e)for(t=this.dataSource.flatView(),i=0;t.length>i;i++)if(e(t[i])){n.push(i);break}return"number"==typeof e&&n.push(e),e instanceof jQuery&&(e=parseInt(e.attr("data-offset-index"),10),isNaN(e)||n.push(e)),e instanceof Array&&(n=e),n},_deselect:function(i){var n,s,r,o,a,l=[],u=this._selectedIndexes,h=0,c=this.options.selectable,d=0;if(i=i.slice(),c!==!0&&i.length){if("multiple"===c)for(a=0;i.length>a;a++)if(h=e.inArray(i[a],u),n=u[h],n!==t){if(r=this._getElementByIndex(n),!r.hasClass("k-state-selected"))continue;r.removeClass(V),this._values.splice(h,1),this._selectedIndexes.splice(h,1),s=this._selectedDataItems.splice(h,1)[0],i.splice(a,1),l.push({index:n,position:h+d,dataItem:s}),d++,a--}}else{for(o=0;u.length>o;o++)u[o]!==t&&(this._getElementByIndex(u[o]).removeClass(V),l.push({index:u[o],position:o,dataItem:this._selectedDataItems[o]}));this._values=[],this._selectedDataItems=[],this._selectedIndexes=[]}return{indices:i,removed:l}},_deselectCurrentValues:function(t){var i,n,s,r,o=this.element[0].children,a=this._values,l=[],u=0;if("multiple"!==this.options.selectable||!this.isFiltered())return[];for(;t.length>u;u++){for(s=-1,n=t[u],i=this._valueGetter(this._view[n].item),r=0;a.length>r;r++)if(i==a[r]){s=r;break}s>-1&&(l.push(this.removeAt(s)),e(o[n]).removeClass("k-state-selected"))}return l},_select:function(t){var i,n,r=this,o="multiple"!==this.options.selectable,a=this.dataSource,l=this.itemCount,u=this._valueGetter,h=[];return o&&(r._selectedIndexes=[],r._selectedDataItems=[],r._values=[]),n=a.skip(),e.each(t,function(e,t){var o=l>t?1:Math.floor(t/l)+1,c=(o-1)*l;r.mute(function(){a.range(c,l),i=r._findDataItem([t-c]),r._selectedIndexes.push(t),r._selectedDataItems.push(i),r._values.push(s(i)?i:u(i)),h.push({index:t,dataItem:i}),r._getElementByIndex(t).addClass(V),a.range(n,l)})}),h},_clickHandler:function(t){var i=e(t.currentTarget);!t.isDefaultPrevented()&&i.attr("data-uid")&&this.trigger(F,{item:i})},_buildValueGetter:function(){this._valueGetter=m.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=m.support.scrollbar()),n+=parseFloat(t.css("border-right-width"),10)+parseFloat(t.children(".k-group").css("right"),10),i.css("padding-right",n))}});m.ui.VirtualList=z,m.ui.plugin(z)}(window.kendo.jQuery),window.kendo},"function"==typeof define&&define.amd?define:function(e,t,i){(i||t)()}); //# sourceMappingURL=kendo.virtuallist.min.js.map