{"version":3,"file":"kendo.scrollview.js","names":["__meta__","id","name","category","description","depends","$","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","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","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","icon","hide","target","click","show","plugin","jQuery","kendo$1"],"sources":["kendo.scrollview.js"],"mappings":"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","sourcesContent":["import './kendo.fx.js';\nimport './kendo.data.js';\nimport './kendo.draganddrop.js';\nimport './kendo.icons.js';\n\nvar __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\", \"icons\" ]\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 var defaultAriaTemplate = ({ index }) => `Item ${index + 1}`;\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 || defaultAriaTemplate);\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 = (data) => templateProxy.template(data);\n }\n\n this.template = kendo.template(template).bind(templateProxy);\n\n if (typeof emptyTemplate === FUNCTION) {\n emptyTemplateProxy.emptyTemplate = emptyTemplate;\n emptyTemplate = (data) => emptyTemplateProxy.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(\"