{"version":3,"file":"kendo.scrollview.min.js","names":["factory","define","amd","$","undefined$1","kendo","window","ui","Transition","effects","Pane","keys","PaneDimensions","Widget","DataBoundWidget","DataSource","data","math","Math","abs","ceil","round","max","min","floor","CHANGE","CLICK","REFRESH","CURRENT_PAGE_CLASS","VIRTUAL_PAGE_CLASS","FUNCTION","ITEM_CHANGE","NS","KEYDOWN","FOCUS","FOCUSOUT","FOCUSED","TABINDEX","className","name","ScrollViewDataReader","Observable","extend","init","dataSource","that","this","pendingRequestArray","initialFetch","useRanges","options","serverPaging","fn","call","bind","_change","trigger","offset","page","callback","view","range","pageSize","scrollTo","pageCount","total","prevPage","prevPrefetch","currentPage","nextPage","nextPrefetch","push","getViewData","index","length","destroy","unbind","Pager","Class","scrollView","element","navigationWrapElement","append","_navigationContainer","_changeProxy","_refreshProxy","_refresh","on","_click","_navigatable","items","children","_focus","_focused","_setCurrent","find","_blur","_current","removeClass","removeAttr","_keyDown","e","handled","next","current","key","keyCode","LEFT","prev","RIGHT","SPACEBAR","ENTER","preventDefault","stopPropagation","id","guid","attr","addClass","pageable","tabindex","messages","pagerLabel","role","itemsWrapper","_ariaTemplate","template","ARIATemplate","navigatable","pageHTML","idx","html","eq","_toggleNavigation","isDefaultPrevented","innerNavigationContainer","scrollViewWidth","width","containerOffset","pageWidth","outerWidth","itemOffset","position","left","scrollLeft","translate","animate","newPage","currentTarget","off","remove","ScrollViewPager","TRANSITION_END","DRAG_START","DRAG_END","ElasticPane","movable","transition","userEvents","dimensions","dimension","pane","container","parent","Movable","axis","onEnd","UserEvents","fastTap","start","x","velocity","y","capture","cancel","allowSelection","end","elastic","duration","size","getSize","height","getTotal","updateDimension","update","refresh","enabled","moveTo","moveAxis","transitionTo","ease","instant","location","tansition","ScrollViewElasticPane","ScrollViewContent","_getPages","contentHeight","enablePager","pagerOverlay","easeOutExpo","paneMoved","swipeType","bounce","snap","approx","easeOutBack","minSnap","maxSnap","updatePage","forcePageUpdate","resizeTo","pageElements","containerHeight","pager","_outerHeight","css","_paged","roleSelector","VirtualScrollViewContent","_templates","pages","_initPages","forceEnabled","setDataSource","create","_dataReader","_pendingPageRefresh","_pendingWidgetRefresh","_viewShow","setTimeout","_resetPages","dataReader","_pageProxy","_onPage","_resetProxy","_onReset","reset","emptyTemplate","templateProxy","emptyTemplateProxy","i","Page","setWidth","_repositionPages","silent","pagerScroll","thresholdPassed","isEndReached","delta","Array","_cancelMove","_moveBackward","_moveForward","shift","setPageContent","unshift","pop","_resetMovable","threshold","item","content","theContent","VirtualPage","ScrollView","stripWhitespace","wrapInner","_initNavigation","inner","first","transitionEnd","_transitionEnd","dragStart","_dragStart","dragEnd","_dragEnd","change","_defaultPrevented","angular","elements","dataItem","_content","viewInit","viewShow","velocityThreshold","bounceVelocityThreshold","enableNavigationButtons","autoBind","previousButtonLabel","nextButtonLabel","events","ariaLiveEl","eventData","emptyDataSource","fetch","_updateAria","prevArrow","nextArrow","navigationContainer","itemsWrapperId","hide","target","click","show","plugin","jQuery"],"sources":["kendo.scrollview.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.fx', 'kendo.data', 'kendo.draganddrop'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"scrollview\",\n name: \"ScrollView\",\n category: \"web\",\n description: \"The Kendo ScrollView widget is used to scroll content wider than the device screen.\",\n depends: [ \"fx\", \"data\", \"draganddrop\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n Transition = kendo.effects.Transition,\n Pane = kendo.ui.Pane,\n keys = kendo.keys,\n PaneDimensions = kendo.ui.PaneDimensions,\n Widget = ui.DataBoundWidget,\n DataSource = kendo.data.DataSource,\n\n // Math\n math = Math,\n abs = math.abs,\n ceil = math.ceil,\n round = math.round,\n max = math.max,\n min = math.min,\n floor = math.floor,\n\n CHANGE = \"change\",\n CLICK = \"click\",\n CHANGING = \"changing\",\n REFRESH = \"refresh\",\n CURRENT_PAGE_CLASS = \"primary\",\n VIRTUAL_PAGE_CLASS = \"scrollview-page\",\n FUNCTION = \"function\",\n ITEM_CHANGE = \"itemChange\",\n CLEANUP = \"cleanup\",\n NS = \".ScrollView\",\n DOT = \".\",\n KEYDOWN = \"keydown\",\n FOCUS = \"focus\",\n FOCUSOUT = \"focusout\",\n FOCUSED = \"k-focus\",\n TABINDEX = \"tabindex\",\n\n VIRTUAL_PAGE_COUNT = 3,\n LEFT_PAGE = -1,\n CETER_PAGE = 0,\n RIGHT_PAGE = 1,\n\n LEFT_SWIPE = -1,\n NUDGE = 0,\n RIGHT_SWIPE = 1;\n\n function className(name) {\n return \"k-\" + name;\n }\n\n var ScrollViewDataReader = kendo.Observable.extend({\n init: function(dataSource) {\n var that = this;\n this.dataSource = dataSource;\n this.pendingRequestArray = [];\n this.initialFetch = false;\n this.useRanges = dataSource.options.serverPaging;\n\n kendo.Observable.fn.init.call(this);\n\n dataSource.bind(\"change\", function() {\n that._change();\n });\n },\n\n _change: function() {\n this.trigger(\"reset\", { offset: this.offset });\n },\n\n page: function(page, callback) {\n var that = this;\n\n if (!this.useRanges) {\n this.dataSource.page(page + 1);\n if (callback) {\n callback(that.dataSource.view());\n } else {\n that.trigger(\"page\", { page: page });\n }\n }\n if (this.useRanges) {\n this.dataSource.range(page * this.dataSource.pageSize(), this.dataSource.pageSize(), function() {\n if (callback) {\n callback(that.dataSource.view());\n } else {\n that.trigger(\"page\", { page: page });\n }\n });\n }\n },\n\n scrollTo: function(page) {\n var pageCount = Math.ceil(this.dataSource.total() / this.dataSource.pageSize() || 1);\n var prevPage = page - 1;\n var prevPrefetch = prevPage - 1;\n var currentPage = page;\n var nextPage = pageCount > 0 && page + 1 >= pageCount ? - 1 : page + 1;\n var nextPrefetch = pageCount > 0 && nextPage + 1 >= pageCount ? - 1 : nextPage + 1;\n\n if (nextPage >= 0) {\n this.pendingRequestArray.push(nextPage);\n }\n\n if (prevPage >= 0) {\n this.pendingRequestArray.push(prevPage);\n }\n\n if (prevPrefetch >= 0) {\n this.pendingRequestArray.push(prevPrefetch);\n }\n\n if (nextPrefetch >= 0) {\n this.pendingRequestArray.push(nextPrefetch);\n }\n\n this.page(currentPage);\n },\n\n getViewData: function() {\n var view = this.dataSource.view();\n var data;\n if (this.dataSource.options.pageSize > 1) {\n data = [];\n for (var index = 0; index < view.length; index++) {\n data.push(view[index]);\n }\n }\n else {\n data = view[0];\n }\n return data;\n },\n destroy: function() {\n var that = this;\n\n that.dataSource.unbind();\n that.dataSource = null;\n }\n });\n\n kendo.ui.ScrollViewDataReader = ScrollViewDataReader;\n\n var Pager = kendo.Class.extend({\n init: function(scrollView) {\n var that = this,\n element = $(\"
\"),\n navigationWrapElement = $(\"\");\n\n navigationWrapElement.append(element);\n scrollView._navigationContainer.append(navigationWrapElement);\n\n this._changeProxy = that._change.bind(that);\n this._refreshProxy = that._refresh.bind(that);\n scrollView.bind(CHANGE, this._changeProxy);\n scrollView.bind(REFRESH, this._refreshProxy);\n element.on(CLICK + NS, \".k-link\", this._click.bind(scrollView));\n\n $.extend(that, { element: element, scrollView: scrollView });\n\n that._navigatable();\n },\n\n items: function() {\n return this.element.children();\n },\n\n _focus: function() {\n var that = this;\n that._focused = true;\n that._setCurrent(that.element.find(DOT + className(CURRENT_PAGE_CLASS)));\n },\n\n _blur: function() {\n var that = this;\n\n that._focused = false;\n\n if (that._current) {\n that._current.removeClass(FOCUSED);\n that._current.removeAttr(\"id\");\n that.element.removeAttr(\"aria-activedescendant\");\n }\n },\n\n _keyDown: function(e) {\n var that = this;\n var handled;\n var next;\n var current = that._current;\n\n var key = e.keyCode;\n\n if (key == keys.LEFT) {\n handled = true;\n next = current.prev(\".k-link\");\n\n if (next.length) {\n that._setCurrent(next);\n }\n }\n\n if (key == keys.RIGHT) {\n handled = true;\n next = current.next(\".k-link\");\n\n if (next.length) {\n that._setCurrent(next);\n }\n }\n\n if (e.keyCode == keys.SPACEBAR || e.keyCode == keys.ENTER) {\n handled = true;\n that._current.trigger(\"click\");\n }\n\n if (handled) {\n e.preventDefault();\n // prevent changing of items in scrollview\n e.stopPropagation();\n }\n },\n\n _setCurrent: function(current) {\n if (!this._focused) {\n return;\n }\n var that = this;\n var id = kendo.guid();\n var next = $(current);\n\n if (that._current) {\n $(that._current)\n .removeClass(FOCUSED)\n .removeAttr(\"id\");\n\n that.element.removeAttr(\"aria-activedescendant\");\n }\n\n next\n .attr(\"id\", id)\n .addClass(FOCUSED);\n\n that.element.attr(\"aria-activedescendant\", id);\n\n that._current = next;\n },\n\n _navigatable: function() {\n var that = this;\n var pageable = that.scrollView.options.pageable || {};\n\n that.element.attr({\n tabindex: 0,\n \"aria-label\": that.scrollView.options.messages.pagerLabel,\n role: \"group\"\n });\n\n if (that.scrollView.itemsWrapper) {\n that.element.attr(\"aria-controls\", that.scrollView.itemsWrapper.attr(\"id\"));\n }\n\n that._ariaTemplate = kendo.template(pageable.ARIATemplate || \"Item #=data.index + 1#\");\n\n if (!that.scrollView.options.navigatable) {\n return;\n }\n\n that.element.on(KEYDOWN + NS, that, that._keyDown.bind(that));\n that.element.on(FOCUS + NS, that._focus.bind(that));\n that.element.on(FOCUSOUT + NS, that._blur.bind(that));\n },\n\n _refresh: function(e) {\n var pageHTML = \"\";\n var current;\n\n for (var idx = 0; idx < e.pageCount; idx ++) {\n pageHTML += '';\n }\n\n this.element.html(pageHTML);\n current = this.items().eq(e.page);\n current.addClass(className(CURRENT_PAGE_CLASS));\n\n current.attr(\"aria-pressed\", true);\n\n this.scrollView._toggleNavigation({ currentPage: e.page });\n },\n\n _change: function(e) {\n if (e.isDefaultPrevented()) {\n return;\n }\n\n var innerNavigationContainer = this.scrollView._navigationContainer.find(\".k-scrollview-nav\");\n var scrollViewWidth = this.scrollView.element.width();\n var containerOffset = (scrollViewWidth - innerNavigationContainer.width()) / 2;\n var pageWidth = innerNavigationContainer.find(\".k-link\").eq(0).outerWidth(true) / 2;\n var items = this.items();\n var current;\n\n items.removeClass(className(CURRENT_PAGE_CLASS));\n\n current = items.eq(e.nextPage).addClass(className(CURRENT_PAGE_CLASS));\n items.attr(\"aria-pressed\", false);\n this._setCurrent(current);\n current.attr(\"aria-pressed\", true);\n\n var itemOffset = this.items().eq(e.nextPage).length > 0 ? this.items().eq(e.nextPage).position().left : 0;\n\n if (itemOffset > scrollViewWidth / 2 || itemOffset < kendo.scrollLeft(innerNavigationContainer) + scrollViewWidth / 2) {\n var translate = 0;\n\n if (itemOffset > scrollViewWidth / 2) {\n translate = kendo.scrollLeft(innerNavigationContainer) + itemOffset - scrollViewWidth / 2;\n }\n else {\n translate = kendo.scrollLeft(innerNavigationContainer) - (scrollViewWidth / 2 - itemOffset);\n }\n\n translate += (containerOffset + pageWidth);\n\n innerNavigationContainer.animate({ \"scrollLeft\": translate }, 300);\n }\n\n this.scrollView._toggleNavigation({ currentPage: e.currentPage, nextPage: e.nextPage });\n },\n\n _click: function(e) {\n var newPage = $(e.currentTarget).index();\n\n this.scrollTo(newPage);\n },\n\n destroy: function() {\n this.scrollView.unbind(CHANGE, this._changeProxy);\n this.scrollView.unbind(REFRESH, this._refreshProxy);\n this.element.off(NS);\n this.element.remove();\n }\n });\n\n kendo.ui.ScrollViewPager = Pager;\n\n var TRANSITION_END = \"transitionEnd\",\n DRAG_START = \"dragStart\",\n DRAG_END = \"dragEnd\";\n\n var ElasticPane = kendo.Observable.extend({\n init: function(element, options) {\n var that = this;\n\n kendo.Observable.fn.init.call(this);\n\n this.element = element;\n this.container = element.parent();\n\n var movable,\n transition,\n userEvents,\n dimensions,\n dimension,\n pane;\n\n movable = new kendo.ui.Movable(that.element);\n\n transition = new Transition({\n axis: \"x\",\n movable: movable,\n onEnd: function() {\n that.trigger(TRANSITION_END);\n }\n });\n\n userEvents = new kendo.UserEvents(element, {\n fastTap: true,\n start: function(e) {\n if (abs(e.x.velocity) * 2 >= abs(e.y.velocity)) {\n userEvents.capture();\n } else {\n userEvents.cancel();\n }\n\n that.trigger(DRAG_START, e);\n transition.cancel();\n },\n allowSelection: true,\n end: function(e) {\n that.trigger(DRAG_END, e);\n }\n });\n\n dimensions = new PaneDimensions({\n element: that.element,\n container: that.container\n });\n\n dimension = dimensions.x;\n\n dimension.bind(CHANGE, function() {\n that.trigger(CHANGE);\n });\n\n pane = new Pane({\n dimensions: dimensions,\n userEvents: userEvents,\n movable: movable,\n elastic: true\n });\n\n $.extend(that, {\n duration: options && options.duration || 1,\n movable: movable,\n transition: transition,\n userEvents: userEvents,\n dimensions: dimensions,\n dimension: dimension,\n pane: pane\n });\n\n this.bind([TRANSITION_END, DRAG_START, DRAG_END, CHANGE], options);\n },\n\n size: function() {\n return { width: this.dimensions.x.getSize(), height: this.dimensions.y.getSize() };\n },\n\n total: function() {\n return this.dimension.getTotal();\n },\n\n offset: function() {\n return -this.movable.x;\n },\n\n updateDimension: function() {\n this.dimension.update(true);\n },\n\n refresh: function() {\n this.dimensions.refresh();\n this.dimensions.y.enabled = false;\n },\n\n moveTo: function(offset) {\n this.movable.moveAxis(\"x\", -offset);\n },\n\n transitionTo: function(offset, ease, instant) {\n if (instant) {\n this.moveTo(-offset);\n } else {\n this.transition.moveTo({ location: offset, duration: this.duration, ease: ease });\n }\n },\n destroy: function() {\n var that = this;\n\n that.userEvents.destroy();\n that.unbind();\n that.movable = that.tansition = that.dimensions = that.dimension = that.pane = null;\n that.element.remove();\n }\n });\n\n kendo.ui.ScrollViewElasticPane = ElasticPane;\n\n var ScrollViewContent = kendo.Observable.extend({\n init: function(element, pane, options) {\n var that = this;\n\n kendo.Observable.fn.init.call(this);\n that.element = element;\n that.pane = pane;\n that._getPages();\n this.page = 0;\n this.pageSize = options.pageSize || 1;\n this.contentHeight = options.contentHeight;\n this.enablePager = options.enablePager;\n this.pagerOverlay = options.pagerOverlay;\n },\n\n scrollTo: function(page, instant) {\n var that = this;\n\n if (page == that.page && !instant) {\n return;\n }\n\n if (!that.trigger(\"resize\", { currentPage: this.page, nextPage: page, data: undefined$1 })) {\n that.page = page;\n that.pane.transitionTo(- page * that.pane.size().width, Transition.easeOutExpo, instant);\n }\n },\n\n paneMoved: function(swipeType, bounce, callback, /*internal*/ instant) {\n var that = this,\n pane = that.pane,\n width = pane.size().width * that.pageSize,\n approx = round,\n ease = bounce ? Transition.easeOutBack : Transition.easeOutExpo,\n snap,\n nextPage;\n\n if (swipeType === LEFT_SWIPE) {\n approx = ceil;\n } else if (swipeType === RIGHT_SWIPE) {\n approx = floor;\n }\n\n nextPage = approx(pane.offset() / width);\n\n if (nextPage < 0 || nextPage >= that.pageCount) {\n var tansition = nextPage < 0 ? 0 : (- this.page * this.pane.size().width);\n return this.pane.transitionTo(tansition, ease, instant);\n }\n\n snap = max(that.minSnap, min(-nextPage * width, that.maxSnap));\n\n if (nextPage != that.page) {\n if (callback && callback({ currentPage: that.page, nextPage: nextPage })) {\n snap = -that.page * pane.size().width;\n }\n }\n\n pane.transitionTo(snap, ease, instant);\n },\n\n updatePage: function() {\n var pane = this.pane,\n page = round(pane.offset() / pane.size().width);\n\n if (page != this.page) {\n this.page = page;\n return true;\n }\n\n return false;\n },\n\n forcePageUpdate: function() {\n return this.updatePage();\n },\n\n resizeTo: function(size) {\n var pane = this.pane,\n width = size.width;\n\n this.pageElements.width(width);\n\n if (this.contentHeight === \"100%\") {\n var containerHeight = this.element.parent().height();\n\n if (this.enablePager === true) {\n var pager = this.element.parent().find(\"ul.k-scrollview-nav\");\n if (!this.pagerOverlay && pager.length) {\n containerHeight -= kendo._outerHeight(pager, true);\n }\n }\n\n this.element.css(\"height\", containerHeight);\n this.pageElements.css(\"height\", containerHeight);\n }\n\n // re-read pane dimension after the pageElements have been resized.\n pane.updateDimension();\n\n if (!this._paged) {\n this.page = floor(pane.offset() / width);\n }\n\n this.scrollTo(this.page, true, true);\n\n this.pageCount = floor(pane.total() / width);\n this.minSnap = - (this.pageCount - 1) * width;\n this.maxSnap = 0;\n },\n\n _getPages: function() {\n this.pageElements = this.element.find(kendo.roleSelector(\"page\"));\n this._paged = this.pageElements.length > 0;\n },\n\n destroy: function() {\n var that = this;\n\n that.pane = null;\n that.element.remove();\n }\n });\n\n kendo.ui.ScrollViewContent = ScrollViewContent;\n\n var VirtualScrollViewContent = kendo.Observable.extend({\n init: function(element, pane, options) {\n var that = this;\n\n kendo.Observable.fn.init.call(this);\n\n that.element = element;\n that.pane = pane;\n that.options = options;\n that._templates();\n that.page = options.page || 0;\n that.pages = [];\n that._initPages();\n that.resizeTo(that.pane.size());\n\n that.pane.dimension.forceEnabled();\n },\n\n setDataSource: function(dataSource) {\n this.dataSource = DataSource.create(dataSource);\n this._dataReader();\n this._pendingPageRefresh = false;\n this._pendingWidgetRefresh = false;\n },\n\n _viewShow: function() {\n var that = this;\n if (that._pendingWidgetRefresh) {\n setTimeout(function() {\n that._resetPages();\n }, 0);\n that._pendingWidgetRefresh = false;\n }\n },\n\n _dataReader: function() {\n this.dataReader = new ScrollViewDataReader(this.dataSource);\n\n this._pageProxy = this._onPage.bind(this);\n this._resetProxy = this._onReset.bind(this);\n\n this.dataReader.bind({\n \"page\": this._pageProxy,\n \"reset\": this._resetProxy\n });\n },\n\n _templates: function() {\n var template = this.options.template,\n emptyTemplate = this.options.emptyTemplate,\n templateProxy = {},\n emptyTemplateProxy = {};\n\n if (typeof template === FUNCTION) {\n templateProxy.template = template;\n template = \"#=this.template(data)#\";\n }\n\n this.template = kendo.template(template).bind(templateProxy);\n\n if (typeof emptyTemplate === FUNCTION) {\n emptyTemplateProxy.emptyTemplate = emptyTemplate;\n emptyTemplate = \"#=this.emptyTemplate(data)#\";\n }\n\n this.emptyTemplate = kendo.template(emptyTemplate).bind(emptyTemplateProxy);\n },\n\n _initPages: function() {\n var pages = this.pages,\n element = this.element,\n page;\n\n for (var i = 0; i < VIRTUAL_PAGE_COUNT; i++) {\n page = new Page(element);\n pages.push(page);\n }\n\n this.pane.updateDimension();\n },\n\n resizeTo: function(size) {\n var pages = this.pages,\n pane = this.pane;\n\n for (var i = 0; i < pages.length; i++) {\n pages[i].setWidth(size.width);\n }\n\n if (this.options.contentHeight === \"auto\") {\n this.element.css(\"height\", this.pages[1].element.height());\n }\n\n else if (this.options.contentHeight === \"100%\") {\n var containerHeight = this.element.parent().height();\n\n if (this.options.enablePager === true) {\n var pager = this.element.parent().find(\"ul.k-scrollview-nav\");\n if (!this.options.pagerOverlay && pager.length) {\n containerHeight -= kendo._outerHeight(pager, true);\n }\n }\n\n this.element.css(\"height\", containerHeight);\n pages[0].element.css(\"height\", containerHeight);\n pages[1].element.css(\"height\", containerHeight);\n pages[2].element.css(\"height\", containerHeight);\n }\n else if (this.options.contentHeight) {\n pages[0].element.css(\"height\", this.options.contentHeight);\n pages[1].element.css(\"height\", this.options.contentHeight);\n pages[2].element.css(\"height\", this.options.contentHeight);\n }\n\n pane.updateDimension();\n\n this._repositionPages();\n\n this.width = size.width;\n },\n\n scrollTo: function(page, instant, silent) {\n var that = this;\n var dataReader = that.dataReader;\n\n if (page == that.page && !instant) {\n return;\n }\n\n dataReader.page(page, function(data) {\n if (silent) {\n dataReader.scrollTo(page);\n return;\n }\n if (!that.trigger(\"resize\", { currentPage: that.page, nextPage: page, data: data })) {\n if (!instant) {\n dataReader.pagerScroll = page > that.page ? - 1 : 1;\n that.page = page + dataReader.pagerScroll;\n } else {\n that.page = page;\n }\n dataReader.scrollTo(page);\n }\n });\n },\n paneMoved: function(swipeType, bounce, callback, /*internal*/ instant) {\n var that = this,\n pane = that.pane,\n width = pane.size().width,\n offset = pane.offset(),\n thresholdPassed = Math.abs(offset) >= width / 3,\n ease = bounce ? kendo.effects.Transition.easeOutBack : kendo.effects.Transition. easeOutExpo,\n isEndReached = that.page + 2 > that.pageCount,\n nextPage,\n delta = 0,\n data,\n element;\n\n if (swipeType === RIGHT_SWIPE) {\n if (that.page !== 0) {\n delta = -1; //backward\n }\n } else if (swipeType === LEFT_SWIPE && !isEndReached) {\n delta = 1; //forward\n } else if (offset > 0 && (thresholdPassed && !isEndReached)) {\n delta = 1; //forward\n } else if (offset < 0 && thresholdPassed) {\n if (that.page !== 0) {\n delta = -1; //backward\n }\n }\n\n nextPage = that.page;\n if (delta) {\n nextPage = (delta > 0) ? nextPage + 1 : nextPage - 1;\n\n if (that instanceof kendo.ui.VirtualScrollViewContent) {\n that.dataReader.page(nextPage);\n data = that.dataReader.getViewData();\n }\n else {\n data = undefined$1;\n }\n\n if (!(data instanceof Array)) {\n data = [data];\n }\n element = that.pages ? that.pages[1].element : undefined$1;\n\n }\n\n if (callback && that.page != nextPage && callback({ currentPage: that.page, nextPage: nextPage, element: element, data: data })) {\n delta = 0;\n }\n\n if (delta === 0) {\n that._cancelMove(ease, instant);\n } else if (delta === -1) {\n that._moveBackward(instant);\n } else if (delta === 1) {\n that._moveForward(instant);\n }\n },\n\n updatePage: function() {\n var pages = this.pages;\n\n if (this.pane.offset() === 0) {\n return false;\n }\n\n if (this.pane.offset() > 0) {\n pages.push(this.pages.shift());//forward\n this.page++;\n if (this.page + 2 < this.pageCount) {\n this.dataReader.pendingRequestArray.push(this.page + 2);\n }\n if (this.page + 1 < this.pageCount) {\n this.dataReader.page(this.page + 1);\n }\n\n if (this.page + 1 == this.pageCount) {\n this.setPageContent(this.pages[2], null);\n }\n\n } else {\n pages.unshift(this.pages.pop()); //back\n this.page--;\n if (this.page - 2 >= 0) {\n this.dataReader.pendingRequestArray.push(this.page - 2);\n }\n if (this.page - 1 >= 0) {\n this.dataReader.page(this.page - 1);\n }\n }\n\n this._repositionPages();\n\n this._resetMovable();\n\n return true;\n },\n\n forcePageUpdate: function() {\n var offset = this.pane.offset(),\n threshold = this.pane.size().width * 3 / 4;\n\n if (abs(offset) > threshold) {\n return this.updatePage();\n }\n\n return false;\n },\n\n _resetMovable: function() {\n this.pane.moveTo(0);\n },\n\n _moveForward: function(instant) {\n this.pane.transitionTo(-this.width, kendo.effects.Transition.easeOutExpo, instant);\n },\n\n _moveBackward: function(instant) {\n this.pane.transitionTo(this.width, kendo.effects.Transition.easeOutExpo, instant);\n },\n\n _cancelMove: function(ease, /*internal*/ instant) {\n this.pane.transitionTo(0, ease, instant);\n },\n\n _resetPages: function() {\n this.page = this.options.page || 0;\n this._repositionPages();\n\n this.trigger(\"reset\");\n },\n\n _onPage: function(e) {\n if (e.page >= this.pageCount) {\n this.setPageContent(this.pages[2], null);\n }\n if (this.page == e.page) {\n if (!this.dataReader.pagerScroll || this.dataReader.pagerScroll === 0 && this.dataReader.initialFetch) {\n this.setPageContent(this.pages[1], this.dataReader.getViewData());\n }\n else {\n if (this.dataReader.pagerScroll < 0) {\n this._moveForward();\n }\n else {\n this._moveBackward();\n }\n\n this.dataReader.pagerScroll = 0;\n this.setPageContent(this.pages[1], this.dataReader.getViewData());\n }\n }\n else if (this.page + 1 == e.page) {\n this.setPageContent(this.pages[2], this.dataReader.getViewData());\n }\n else if (this.page - 1 == e.page) {\n this.setPageContent(this.pages[0], this.dataReader.getViewData());\n }\n\n if (this.dataReader.pendingRequestArray.length > 0 && this.dataReader.initialFetch) {\n var item = this.dataReader.pendingRequestArray.shift();\n this.dataReader.page(item);\n }\n },\n\n _onReset: function() {\n this.pageCount = ceil(this.dataSource.total() / this.dataSource.pageSize());\n },\n\n _repositionPages: function() {\n var pages = this.pages;\n\n pages[0].position(LEFT_PAGE);\n pages[1].position(CETER_PAGE);\n pages[2].position(RIGHT_PAGE);\n },\n\n setPageContent: function(page, data) {\n var template = this.template,\n emptyTemplate = this.emptyTemplate;\n\n if (data !== null && data !== undefined$1) {\n page.content(template(data));\n } else {\n page.content(emptyTemplate({}));\n }\n },\n\n destroy: function() {\n var that = this;\n var pages = that.pages;\n\n that.dataReader.unbind();\n that.dataSource.unbind();\n that.dataReader = that.dataSource = that.pane = null;\n\n for (var index = 0; index < pages.length; index++) {\n pages[index].destroy();\n }\n\n that.element.remove();\n }\n });\n\n kendo.ui.VirtualScrollViewContent = VirtualScrollViewContent;\n\n var Page = kendo.Class.extend({\n init: function(container) {\n this.element = $(\"\");\n this.width = container.width();\n this.element.width(this.width);\n container.append(this.element);\n },\n\n content: function(theContent) {\n this.element.html(theContent);\n },\n\n position: function(position) { //position can be -1, 0, 1\n this.element.css(\"transform\", \"translate3d(\" + this.width * position + \"px, 0, 0)\");\n },\n\n setWidth: function(width) {\n this.width = width;\n this.element.width(width);\n },\n\n destroy: function() {\n var that = this;\n\n that.element.remove();\n that.element = null;\n }\n });\n\n kendo.ui.VirtualPage = Page;\n\n var ScrollView = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n options = that.options;\n element = that.element;\n\n kendo.stripWhitespace(element[0]);\n\n if (element.children().length === 0) {\n element\n .wrapInner(\"