{"version":3,"sources":["kendo.mobile.listview.js"],"names":["f","define","$","undefined","whitespace","this","nodeType","Node","TEXT_NODE","nodeValue","match","whitespaceRegExp","addIcon","item","icon","querySelector","prepend","enhanceItem","attrValue","children","ICON_SELECTOR","enhanceLinkItem","parent","itemAndDetailButtons","add","kendo","roleSelector","otherNodes","contents","not","length","addClass","attr","enhanceCheckBoxItem","label","putAt","element","top","css","VirtualListViewItem","LOAD_ICON","VirtualListViewLoadingIndicator","VirtualListViewPressToLoadMore","VirtualListViewItemBinder","ListViewItemBinder","ListViewFilter","ListView","window","mobile","ui","DataSource","data","Widget","DataBoundWidget","ITEM_SELECTOR","HIGHLIGHT_SELECTOR","proxy","GROUP_CLASS","ACTIVE_CLASS","GROUP_WRAPPER","GROUP_TEMPLATE","template","WRAPPER","SEARCH_TEMPLATE","NS","STYLED","DATABOUND","DATABINDING","ITEM_CHANGE","CLICK","CHANGE","PROGRESS","FUNCTION","buttonRegExp","HeaderFixer","Class","extend","init","listView","headerFixer","cacheHeaders","scroller","options","_shouldFixHeaders","_cacheHeaders","bind","e","_fixHeader","fixedHeaders","headerPair","offset","header","i","headers","scrollTop","currentHeader","fixedContainer","html","clone","type","find","each","_","unshift","position","DEFAULT_PULL_PARAMETERS","page","RefreshHandler","handler","pullParameters","setDataSource","dataSource","setOptions","pullToRefresh","pull","_pulled","read","call","_first","messages","pullTemplate","releaseTemplate","refreshTemplate","view","_change","pullHandled","VirtualList","Observable","list","fn","buffer","height","items","footer","refresh","itemConstructor","prevItem","idx","endReached","pop","destroy","viewSize","total","content","below","push","itemCount","trigger","_resize","totalHeight","bottom","averageItemHeight","remainingItemsCount","batchUpdate","nextIndex","initialOffset","lastDirection","update","above","shift","firstItem","lastItem","padding","up","lastTop","topBorder","bottomBorder","index","at","unbind","dataItem","append","offsetHeight","setDataItem","remove","appendTo","_loadIcon","enable","show","outerHeight","disable","hide","_loadButton","loadMoreText","loadMore","kendoMobileButton","_hideShowButton","next","_showLoadButton","removeClass","binder","chromeHeight","wrapper","empty","reset","range","makeVirtual","pageSize","pressToLoadMore","virtualViewSize","Error","Buffer","Math","floor","updateScrollerSize","updateSize","virtualSize","itemBinder","_refreshHandler","_progressHandler","showLoading","_unbindDataSource","removedItems","addedItems","addedDataItems","adding","removing","action","dataItems","prependOnRefresh","appendOnRefresh","groups","group","groupedMode","_hasBindingTarget","findByDataItem","_filter","_shouldShowLoading","hideLoading","replaceGrouped","replace","indexOf","insertAt","ns","endlessScroll","filter","filterable","events","that","before","placeholder","autoFilter","searchInput","closest","on","preventDefault","end","_oldFilter","val","split","join","_filterChange","clearButton","_dataSourceChange","_refreshInput","appliedFilters","filters","field","value","_search","expr","setTimeout","_applyFilter","operator","ignoreCase","_clearFilter","scrollTreshold","scrollThreshold","_userEvents","UserEvents","fastTap","allowSelection","tap","_click","wrap","_headerFixer","_itemsCache","_templates","virtual","_style","$angular","_start","_itemBinder","_pullToRefreshHandler","_enhanceItems","notify","name","style","autoBind","headerTemplate","pullOffset","emptyDataSource","create","fetch","unwrap","_scrollerInstance","loader","triggerChange","_renderItems","eq","after","_angularItems","cancel","render","groupTemplate","angular","elements","selectors","uid","replaceItem","newItem","replaceWith","_size","getSize","callback","map","_dim","_toggle","_highlight","highlight","which","clicked","currentTarget","role","plainItem","prevented","isDefaultPrevented","toggleClass","dataIDAttribute","templateProxy","groupTemplateProxy","_headerTemplate","event","target","buttonElement","button","widgetInstance","id","getByUid","_styleGroups","rootItems","li","groupHeader","first","is","grouped","inset","parents","child","enhanced","plugin","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.mobile.listview.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.mobile.listview', [\n 'kendo.data',\n 'kendo.userevents',\n 'kendo.mobile.button'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'mobile.listview',\n name: 'ListView',\n category: 'mobile',\n description: 'The Kendo Mobile ListView widget is used to display flat or grouped list of items.',\n depends: [\n 'data',\n 'userevents',\n 'mobile.button'\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, Node = window.Node, mobile = kendo.mobile, ui = mobile.ui, DataSource = kendo.data.DataSource, Widget = ui.DataBoundWidget, ITEM_SELECTOR = '.km-list > li, > li:not(.km-group-container)', HIGHLIGHT_SELECTOR = '.km-listview-link, .km-listview-label', ICON_SELECTOR = '[' + kendo.attr('icon') + ']', proxy = $.proxy, attrValue = kendo.attrValue, GROUP_CLASS = 'km-group-title', ACTIVE_CLASS = 'km-state-active', GROUP_WRAPPER = '
', GROUP_TEMPLATE = kendo.template('
  • #= this.headerTemplate(data) #
  • '), WRAPPER = '
    ', SEARCH_TEMPLATE = kendo.template('
    '), NS = '.kendoMobileListView', STYLED = 'styled', DATABOUND = 'dataBound', DATABINDING = 'dataBinding', ITEM_CHANGE = 'itemChange', CLICK = 'click', CHANGE = 'change', PROGRESS = 'progress', FUNCTION = 'function', whitespaceRegExp = /^\\s+$/, buttonRegExp = /button/;\n function whitespace() {\n return this.nodeType === Node.TEXT_NODE && this.nodeValue.match(whitespaceRegExp);\n }\n function addIcon(item, icon) {\n if (icon && !item[0].querySelector('.km-icon')) {\n item.prepend('');\n }\n }\n function enhanceItem(item) {\n addIcon(item, attrValue(item, 'icon'));\n addIcon(item, attrValue(item.children(ICON_SELECTOR), 'icon'));\n }\n function enhanceLinkItem(item) {\n var parent = item.parent(), itemAndDetailButtons = item.add(parent.children(kendo.roleSelector('detailbutton'))), otherNodes = parent.contents().not(itemAndDetailButtons).not(whitespace);\n if (otherNodes.length) {\n return;\n }\n item.addClass('km-listview-link').attr(kendo.attr('role'), 'listview-link');\n addIcon(item, attrValue(parent, 'icon'));\n addIcon(item, attrValue(item, 'icon'));\n }\n function enhanceCheckBoxItem(label) {\n if (!label[0].querySelector('input[type=checkbox],input[type=radio]')) {\n return;\n }\n var item = label.parent();\n if (item.contents().not(label).not(function () {\n return this.nodeType == 3;\n })[0]) {\n return;\n }\n label.addClass('km-listview-label');\n label.children('[type=checkbox],[type=radio]').addClass('km-widget km-icon km-check');\n }\n function putAt(element, top) {\n $(element).css('transform', 'translate3d(0px, ' + top + 'px, 0px)');\n }\n var HeaderFixer = kendo.Class.extend({\n init: function (listView) {\n var scroller = listView.scroller();\n if (!scroller) {\n return;\n }\n this.options = listView.options;\n this.element = listView.element;\n this.scroller = listView.scroller();\n this._shouldFixHeaders();\n var headerFixer = this;\n var cacheHeaders = function () {\n headerFixer._cacheHeaders();\n };\n listView.bind('resize', cacheHeaders);\n listView.bind(STYLED, cacheHeaders);\n listView.bind(DATABOUND, cacheHeaders);\n scroller.bind('scroll', function (e) {\n headerFixer._fixHeader(e);\n });\n },\n _fixHeader: function (e) {\n if (!this.fixedHeaders) {\n return;\n }\n var i = 0, scroller = this.scroller, headers = this.headers, scrollTop = e.scrollTop, headerPair, offset, header;\n do {\n headerPair = headers[i++];\n if (!headerPair) {\n header = $('
    ');\n break;\n }\n offset = headerPair.offset;\n header = headerPair.header;\n } while (offset + 1 > scrollTop);\n if (this.currentHeader != i) {\n scroller.fixedContainer.html(header.clone());\n this.currentHeader = i;\n }\n },\n _shouldFixHeaders: function () {\n this.fixedHeaders = this.options.type === 'group' && this.options.fixedHeaders;\n },\n _cacheHeaders: function () {\n this._shouldFixHeaders();\n if (!this.fixedHeaders) {\n return;\n }\n var headers = [], offset = this.scroller.scrollTop;\n this.element.find('.' + GROUP_CLASS).each(function (_, header) {\n header = $(header);\n headers.unshift({\n offset: header.position().top + offset,\n header: header\n });\n });\n this.headers = headers;\n this._fixHeader({ scrollTop: offset });\n }\n });\n var DEFAULT_PULL_PARAMETERS = function () {\n return { page: 1 };\n };\n var RefreshHandler = kendo.Class.extend({\n init: function (listView) {\n var handler = this, options = listView.options, scroller = listView.scroller(), pullParameters = options.pullParameters || DEFAULT_PULL_PARAMETERS;\n this.listView = listView;\n this.scroller = scroller;\n listView.bind('_dataSource', function (e) {\n handler.setDataSource(e.dataSource);\n });\n scroller.setOptions({\n pullToRefresh: true,\n pull: function () {\n if (!handler._pulled) {\n handler._pulled = true;\n handler.dataSource.read(pullParameters.call(listView, handler._first));\n }\n },\n messages: {\n pullTemplate: options.messages.pullTemplate,\n releaseTemplate: options.messages.releaseTemplate,\n refreshTemplate: options.messages.refreshTemplate\n }\n });\n },\n setDataSource: function (dataSource) {\n var handler = this;\n this._first = dataSource.view()[0];\n this.dataSource = dataSource;\n dataSource.bind('change', function () {\n handler._change();\n });\n dataSource.bind('error', function () {\n handler._change();\n });\n },\n _change: function () {\n var scroller = this.scroller, dataSource = this.dataSource;\n if (this._pulled) {\n scroller.pullHandled();\n }\n if (this._pulled || !this._first) {\n var view = dataSource.view();\n if (view[0]) {\n this._first = view[0];\n }\n }\n this._pulled = false;\n }\n });\n var VirtualList = kendo.Observable.extend({\n init: function (options) {\n var list = this;\n kendo.Observable.fn.init.call(list);\n list.buffer = options.buffer;\n list.height = options.height;\n list.item = options.item;\n list.items = [];\n list.footer = options.footer;\n list.buffer.bind('reset', function () {\n list.refresh();\n });\n },\n refresh: function () {\n var buffer = this.buffer, items = this.items, endReached = false;\n while (items.length) {\n items.pop().destroy();\n }\n this.offset = buffer.offset;\n var itemConstructor = this.item, prevItem, item;\n for (var idx = 0; idx < buffer.viewSize; idx++) {\n if (idx === buffer.total()) {\n endReached = true;\n break;\n }\n item = itemConstructor(this.content(this.offset + items.length));\n item.below(prevItem);\n prevItem = item;\n items.push(item);\n }\n this.itemCount = items.length;\n this.trigger('reset');\n this._resize();\n if (endReached) {\n this.trigger('endReached');\n }\n },\n totalHeight: function () {\n if (!this.items[0]) {\n return 0;\n }\n var list = this, items = list.items, top = items[0].top, bottom = items[items.length - 1].bottom, averageItemHeight = (bottom - top) / list.itemCount, remainingItemsCount = list.buffer.length - list.offset - list.itemCount;\n return (this.footer ? this.footer.height : 0) + bottom + remainingItemsCount * averageItemHeight;\n },\n batchUpdate: function (top) {\n var height = this.height(), items = this.items, item, initialOffset = this.offset;\n if (!items[0]) {\n return;\n }\n if (this.lastDirection) {\n while (items[items.length - 1].bottom > top + height * 2) {\n if (this.offset === 0) {\n break;\n }\n this.offset--;\n item = items.pop();\n item.update(this.content(this.offset));\n item.above(items[0]);\n items.unshift(item);\n }\n } else {\n while (items[0].top < top - height) {\n var nextIndex = this.offset + this.itemCount;\n if (nextIndex === this.buffer.total()) {\n this.trigger('endReached');\n break;\n }\n if (nextIndex === this.buffer.length) {\n break;\n }\n item = items.shift();\n item.update(this.content(this.offset + this.itemCount));\n item.below(items[items.length - 1]);\n items.push(item);\n this.offset++;\n }\n }\n if (initialOffset !== this.offset) {\n this._resize();\n }\n },\n update: function (top) {\n var list = this, items = this.items, item, firstItem, lastItem, height = this.height(), itemCount = this.itemCount, padding = height / 2, up = (this.lastTop || 0) > top, topBorder = top - padding, bottomBorder = top + height + padding;\n if (!items[0]) {\n return;\n }\n this.lastTop = top;\n this.lastDirection = up;\n if (up) {\n if (items[0].top > topBorder && items[items.length - 1].bottom > bottomBorder + padding && this.offset > 0) {\n this.offset--;\n item = items.pop();\n firstItem = items[0];\n item.update(this.content(this.offset));\n items.unshift(item);\n item.above(firstItem);\n list._resize();\n }\n } else {\n if (items[items.length - 1].bottom < bottomBorder && items[0].top < topBorder - padding) {\n var nextIndex = this.offset + itemCount;\n if (nextIndex === this.buffer.total()) {\n this.trigger('endReached');\n } else if (nextIndex !== this.buffer.length) {\n item = items.shift();\n lastItem = items[items.length - 1];\n items.push(item);\n item.update(this.content(this.offset + this.itemCount));\n list.offset++;\n item.below(lastItem);\n list._resize();\n }\n }\n }\n },\n content: function (index) {\n return this.buffer.at(index);\n },\n destroy: function () {\n this.unbind();\n },\n _resize: function () {\n var items = this.items, top = 0, bottom = 0, firstItem = items[0], lastItem = items[items.length - 1];\n if (firstItem) {\n top = firstItem.top;\n bottom = lastItem.bottom;\n }\n this.trigger('resize', {\n top: top,\n bottom: bottom\n });\n if (this.footer) {\n this.footer.below(lastItem);\n }\n }\n });\n kendo.mobile.ui.VirtualList = VirtualList;\n var VirtualListViewItem = kendo.Class.extend({\n init: function (listView, dataItem) {\n var element = listView.append([dataItem], true)[0], height = element.offsetHeight;\n $.extend(this, {\n top: 0,\n element: element,\n listView: listView,\n height: height,\n bottom: height\n });\n },\n update: function (dataItem) {\n this.element = this.listView.setDataItem(this.element, dataItem);\n },\n above: function (item) {\n if (item) {\n this.height = this.element.offsetHeight;\n this.top = item.top - this.height;\n this.bottom = item.top;\n putAt(this.element, this.top);\n }\n },\n below: function (item) {\n if (item) {\n this.height = this.element.offsetHeight;\n this.top = item.bottom;\n this.bottom = this.top + this.height;\n putAt(this.element, this.top);\n }\n },\n destroy: function () {\n kendo.destroy(this.element);\n $(this.element).remove();\n }\n });\n var LOAD_ICON = '
    ';\n var VirtualListViewLoadingIndicator = kendo.Class.extend({\n init: function (listView) {\n this.element = $('
  • ').appendTo(listView.element);\n this._loadIcon = $(LOAD_ICON).appendTo(this.element);\n },\n enable: function () {\n this.element.show();\n this.height = this.element.outerHeight(true);\n },\n disable: function () {\n this.element.hide();\n this.height = 0;\n },\n below: function (item) {\n if (item) {\n this.top = item.bottom;\n this.bottom = this.height + this.top;\n putAt(this.element, this.top);\n }\n }\n });\n var VirtualListViewPressToLoadMore = VirtualListViewLoadingIndicator.extend({\n init: function (listView, buffer) {\n this._loadIcon = $(LOAD_ICON).hide();\n this._loadButton = $('' + listView.options.messages.loadMoreText + '').hide();\n this.element = $('
  • ').append(this._loadIcon).append(this._loadButton).appendTo(listView.element);\n var loadMore = this;\n this._loadButton.kendoMobileButton().data('kendoMobileButton').bind('click', function () {\n loadMore._hideShowButton();\n buffer.next();\n });\n buffer.bind('resize', function () {\n loadMore._showLoadButton();\n });\n this.height = this.element.outerHeight(true);\n this.disable();\n },\n _hideShowButton: function () {\n this._loadButton.hide();\n this.element.addClass('km-scroller-refresh');\n this._loadIcon.css('display', 'block');\n },\n _showLoadButton: function () {\n this._loadButton.show();\n this.element.removeClass('km-scroller-refresh');\n this._loadIcon.hide();\n }\n });\n var VirtualListViewItemBinder = kendo.Class.extend({\n init: function (listView) {\n var binder = this;\n this.chromeHeight = listView.wrapper.children().not(listView.element).outerHeight() || 0;\n this.listView = listView;\n this.scroller = listView.scroller();\n this.options = listView.options;\n listView.bind('_dataSource', function (e) {\n binder.setDataSource(e.dataSource, e.empty);\n });\n listView.bind('resize', function () {\n if (!binder.list.items.length) {\n return;\n }\n binder.scroller.reset();\n binder.buffer.range(0);\n binder.list.refresh();\n });\n this.scroller.makeVirtual();\n this.scroller.bind('scroll', function (e) {\n binder.list.update(e.scrollTop);\n });\n this.scroller.bind('scrollEnd', function (e) {\n binder.list.batchUpdate(e.scrollTop);\n });\n },\n destroy: function () {\n this.list.unbind();\n this.buffer.unbind();\n },\n setDataSource: function (dataSource, empty) {\n var binder = this, options = this.options, listView = this.listView, scroller = listView.scroller(), pressToLoadMore = options.loadMore, pageSize, buffer, footer;\n this.dataSource = dataSource;\n pageSize = dataSource.pageSize() || options.virtualViewSize;\n if (!pageSize && !empty) {\n throw new Error('the DataSource does not have page size configured. Page Size setting is mandatory for the mobile listview virtual scrolling to work as expected.');\n }\n if (this.buffer) {\n this.buffer.destroy();\n }\n buffer = new kendo.data.Buffer(dataSource, Math.floor(pageSize / 2), pressToLoadMore);\n if (pressToLoadMore) {\n footer = new VirtualListViewPressToLoadMore(listView, buffer);\n } else {\n footer = new VirtualListViewLoadingIndicator(listView);\n }\n if (this.list) {\n this.list.destroy();\n }\n var list = new VirtualList({\n buffer: buffer,\n footer: footer,\n item: function (dataItem) {\n return new VirtualListViewItem(listView, dataItem);\n },\n height: function () {\n return scroller.height();\n }\n });\n list.bind('resize', function () {\n binder.updateScrollerSize();\n listView.updateSize();\n });\n list.bind('reset', function () {\n binder.footer.enable();\n });\n list.bind('endReached', function () {\n footer.disable();\n binder.updateScrollerSize();\n });\n buffer.bind('expand', function () {\n list.lastDirection = false;\n list.batchUpdate(scroller.scrollTop);\n });\n $.extend(this, {\n buffer: buffer,\n scroller: scroller,\n list: list,\n footer: footer\n });\n },\n updateScrollerSize: function () {\n this.scroller.virtualSize(0, this.list.totalHeight() + this.chromeHeight);\n },\n refresh: function () {\n this.list.refresh();\n },\n reset: function () {\n this.buffer.range(0);\n this.list.refresh();\n }\n });\n var ListViewItemBinder = kendo.Class.extend({\n init: function (listView) {\n var binder = this;\n this.listView = listView;\n this.options = listView.options;\n var itemBinder = this;\n this._refreshHandler = function (e) {\n itemBinder.refresh(e);\n };\n this._progressHandler = function () {\n listView.showLoading();\n };\n listView.bind('_dataSource', function (e) {\n binder.setDataSource(e.dataSource);\n });\n },\n destroy: function () {\n this._unbindDataSource();\n },\n reset: function () {\n },\n refresh: function (e) {\n var action = e && e.action, dataItems = e && e.items, listView = this.listView, dataSource = this.dataSource, prependOnRefresh = this.options.appendOnRefresh, view = dataSource.view(), groups = dataSource.group(), groupedMode = groups && groups[0], item;\n if (action === 'itemchange') {\n if (!listView._hasBindingTarget()) {\n item = listView.findByDataItem(dataItems)[0];\n if (item) {\n listView.setDataItem(item, dataItems[0]);\n }\n }\n return;\n }\n var removedItems, addedItems, addedDataItems;\n var adding = action === 'add' && !groupedMode || prependOnRefresh && !listView._filter;\n var removing = action === 'remove' && !groupedMode;\n if (adding) {\n removedItems = [];\n } else if (removing) {\n removedItems = listView.findByDataItem(dataItems);\n }\n if (listView.trigger(DATABINDING, {\n action: action || 'rebind',\n items: dataItems,\n removedItems: removedItems,\n index: e && e.index\n })) {\n if (this._shouldShowLoading()) {\n listView.hideLoading();\n }\n return;\n }\n if (action === 'add' && !groupedMode) {\n var index = view.indexOf(dataItems[0]);\n if (index > -1) {\n addedItems = listView.insertAt(dataItems, index);\n addedDataItems = dataItems;\n }\n } else if (action === 'remove' && !groupedMode) {\n addedItems = [];\n listView.remove(dataItems);\n } else if (groupedMode) {\n listView.replaceGrouped(view);\n } else if (prependOnRefresh && !listView._filter) {\n addedItems = listView.prepend(view);\n addedDataItems = view;\n } else {\n listView.replace(view);\n }\n if (this._shouldShowLoading()) {\n listView.hideLoading();\n }\n listView.trigger(DATABOUND, {\n ns: ui,\n addedItems: addedItems,\n addedDataItems: addedDataItems\n });\n },\n setDataSource: function (dataSource) {\n if (this.dataSource) {\n this._unbindDataSource();\n }\n this.dataSource = dataSource;\n dataSource.bind(CHANGE, this._refreshHandler);\n if (this._shouldShowLoading()) {\n this.dataSource.bind(PROGRESS, this._progressHandler);\n }\n },\n _unbindDataSource: function () {\n this.dataSource.unbind(CHANGE, this._refreshHandler).unbind(PROGRESS, this._progressHandler);\n },\n _shouldShowLoading: function () {\n var options = this.options;\n return !options.pullToRefresh && !options.loadMore && !options.endlessScroll;\n }\n });\n var ListViewFilter = kendo.Class.extend({\n init: function (listView) {\n var filter = this, filterable = listView.options.filterable, events = 'change paste', that = this;\n this.listView = listView;\n this.options = filterable;\n listView.element.before(SEARCH_TEMPLATE({ placeholder: filterable.placeholder || 'Search...' }));\n if (filterable.autoFilter !== false) {\n events += ' keyup';\n }\n this.element = listView.wrapper.find('.km-search-form');\n this.searchInput = listView.wrapper.find('input[type=search]').closest('form').on('submit' + NS, function (e) {\n e.preventDefault();\n }).end().on('focus' + NS, function () {\n filter._oldFilter = filter.searchInput.val();\n }).on(events.split(' ').join(NS + ' ') + NS, proxy(this._filterChange, this));\n this.clearButton = listView.wrapper.find('.km-filter-reset').on(CLICK, proxy(this, '_clearFilter')).hide();\n this._dataSourceChange = $.proxy(this._refreshInput, this);\n listView.bind('_dataSource', function (e) {\n e.dataSource.bind('change', that._dataSourceChange);\n });\n },\n _refreshInput: function () {\n var appliedFilters = this.listView.dataSource.filter();\n var searchInput = this.listView._filter.searchInput;\n if (!appliedFilters || appliedFilters.filters[0].field !== this.listView.options.filterable.field) {\n searchInput.val('');\n } else {\n searchInput.val(appliedFilters.filters[0].value);\n }\n },\n _search: function (expr) {\n this._filter = true;\n this.clearButton[expr ? 'show' : 'hide']();\n this.listView.dataSource.filter(expr);\n },\n _filterChange: function (e) {\n var filter = this;\n if (e.type == 'paste' && this.options.autoFilter !== false) {\n setTimeout(function () {\n filter._applyFilter();\n }, 1);\n } else {\n this._applyFilter();\n }\n },\n _applyFilter: function () {\n var options = this.options, value = this.searchInput.val(), expr = value.length ? {\n field: options.field,\n operator: options.operator || 'startswith',\n ignoreCase: options.ignoreCase,\n value: value\n } : null;\n if (value === this._oldFilter) {\n return;\n }\n this._oldFilter = value;\n this._search(expr);\n },\n _clearFilter: function (e) {\n this.searchInput.val('');\n this._search(null);\n e.preventDefault();\n }\n });\n var ListView = Widget.extend({\n init: function (element, options) {\n var listView = this;\n Widget.fn.init.call(this, element, options);\n element = this.element;\n options = this.options;\n if (options.scrollTreshold) {\n options.scrollThreshold = options.scrollTreshold;\n }\n element.on('down', HIGHLIGHT_SELECTOR, '_highlight').on('move up cancel', HIGHLIGHT_SELECTOR, '_dim');\n this._userEvents = new kendo.UserEvents(element, {\n fastTap: true,\n filter: ITEM_SELECTOR,\n allowSelection: true,\n tap: function (e) {\n listView._click(e);\n }\n });\n element.css('-ms-touch-action', 'auto');\n element.wrap(WRAPPER);\n this.wrapper = this.element.parent();\n this._headerFixer = new HeaderFixer(this);\n this._itemsCache = {};\n this._templates();\n this.virtual = options.endlessScroll || options.loadMore;\n this._style();\n if (this.options.$angular && (this.virtual || this.options.pullToRefresh)) {\n setTimeout($.proxy(this, '_start'));\n } else {\n this._start();\n }\n },\n _start: function () {\n var options = this.options;\n if (this.options.filterable) {\n this._filter = new ListViewFilter(this);\n }\n if (this.virtual) {\n this._itemBinder = new VirtualListViewItemBinder(this);\n } else {\n this._itemBinder = new ListViewItemBinder(this);\n }\n if (this.options.pullToRefresh) {\n this._pullToRefreshHandler = new RefreshHandler(this);\n }\n this.setDataSource(options.dataSource);\n this._enhanceItems(this.items());\n kendo.notify(this, ui);\n },\n events: [\n CLICK,\n DATABINDING,\n DATABOUND,\n ITEM_CHANGE\n ],\n options: {\n name: 'ListView',\n style: '',\n type: 'flat',\n autoBind: true,\n fixedHeaders: false,\n template: '#:data#',\n headerTemplate: '#:value#',\n appendOnRefresh: false,\n loadMore: false,\n endlessScroll: false,\n scrollThreshold: 30,\n pullToRefresh: false,\n messages: {\n loadMoreText: 'Press to load more',\n pullTemplate: 'Pull to refresh',\n releaseTemplate: 'Release to refresh',\n refreshTemplate: 'Refreshing'\n },\n pullOffset: 140,\n filterable: false,\n virtualViewSize: null\n },\n refresh: function () {\n this._itemBinder.refresh();\n },\n reset: function () {\n this._itemBinder.reset();\n },\n setDataSource: function (dataSource) {\n var emptyDataSource = !dataSource;\n this.dataSource = DataSource.create(dataSource);\n this.trigger('_dataSource', {\n dataSource: this.dataSource,\n empty: emptyDataSource\n });\n if (this.options.autoBind && !emptyDataSource) {\n this.items().remove();\n this.dataSource.fetch();\n }\n },\n destroy: function () {\n Widget.fn.destroy.call(this);\n kendo.destroy(this.element);\n this._userEvents.destroy();\n if (this._itemBinder) {\n this._itemBinder.destroy();\n }\n this.element.unwrap();\n delete this.element;\n delete this.wrapper;\n delete this._userEvents;\n },\n items: function () {\n if (this.options.type === 'group') {\n return this.element.find('.km-list').children();\n } else {\n return this.element.children().not('.km-load-more');\n }\n },\n scroller: function () {\n if (!this._scrollerInstance) {\n this._scrollerInstance = this.element.closest('.km-scroll-wrapper').data('kendoMobileScroller');\n }\n return this._scrollerInstance;\n },\n showLoading: function () {\n var view = this.view();\n if (view && view.loader) {\n view.loader.show();\n }\n },\n hideLoading: function () {\n var view = this.view();\n if (view && view.loader) {\n view.loader.hide();\n }\n },\n insertAt: function (dataItems, index, triggerChange) {\n var listView = this;\n return listView._renderItems(dataItems, function (items) {\n if (index === 0) {\n listView.element.prepend(items);\n } else if (index === -1) {\n listView.element.append(items);\n } else {\n listView.items().eq(index - 1).after(items);\n }\n if (triggerChange) {\n for (var i = 0; i < items.length; i++) {\n listView.trigger(ITEM_CHANGE, {\n item: items.eq(i),\n data: dataItems[i],\n ns: ui\n });\n }\n }\n });\n },\n append: function (dataItems, triggerChange) {\n return this.insertAt(dataItems, -1, triggerChange);\n },\n prepend: function (dataItems, triggerChange) {\n return this.insertAt(dataItems, 0, triggerChange);\n },\n replace: function (dataItems) {\n this.options.type = 'flat';\n this._angularItems('cleanup');\n this.element.empty();\n this._userEvents.cancel();\n this._style();\n return this.insertAt(dataItems, 0);\n },\n replaceGrouped: function (groups) {\n this.options.type = 'group';\n this._angularItems('cleanup');\n this.element.empty();\n var items = $(kendo.render(this.groupTemplate, groups));\n this._enhanceItems(items.children('ul').children('li'));\n this.element.append(items);\n mobile.init(items);\n this._style();\n this._angularItems('compile');\n },\n remove: function (dataItems) {\n var items = this.findByDataItem(dataItems);\n this.angular('cleanup', function () {\n return { elements: items };\n });\n kendo.destroy(items);\n items.remove();\n },\n findByDataItem: function (dataItems) {\n var selectors = [];\n for (var idx = 0, length = dataItems.length; idx < length; idx++) {\n selectors[idx] = '[data-' + kendo.ns + 'uid=' + dataItems[idx].uid + ']';\n }\n return this.element.find(selectors.join(','));\n },\n setDataItem: function (item, dataItem) {\n var listView = this, replaceItem = function (items) {\n var newItem = $(items[0]);\n kendo.destroy(item);\n listView.angular('cleanup', function () {\n return { elements: [$(item)] };\n });\n $(item).replaceWith(newItem);\n listView.trigger(ITEM_CHANGE, {\n item: newItem,\n data: dataItem,\n ns: ui\n });\n };\n return this._renderItems([dataItem], replaceItem)[0];\n },\n updateSize: function () {\n this._size = this.getSize();\n },\n _renderItems: function (dataItems, callback) {\n var items = $(kendo.render(this.template, dataItems));\n callback(items);\n this.angular('compile', function () {\n return {\n elements: items,\n data: dataItems.map(function (data) {\n return { dataItem: data };\n })\n };\n });\n mobile.init(items);\n this._enhanceItems(items);\n return items;\n },\n _dim: function (e) {\n this._toggle(e, false);\n },\n _highlight: function (e) {\n this._toggle(e, true);\n },\n _toggle: function (e, highlight) {\n if (e.which > 1) {\n return;\n }\n var clicked = $(e.currentTarget), item = clicked.parent(), role = attrValue(clicked, 'role') || '', plainItem = !role.match(buttonRegExp), prevented = e.isDefaultPrevented();\n if (plainItem) {\n item.toggleClass(ACTIVE_CLASS, highlight && !prevented);\n }\n },\n _templates: function () {\n var template = this.options.template, headerTemplate = this.options.headerTemplate, dataIDAttribute = ' data-uid=\"#=arguments[0].uid || \"\"#\"', templateProxy = {}, groupTemplateProxy = {};\n if (typeof template === FUNCTION) {\n templateProxy.template = template;\n template = '#=this.template(data)#';\n }\n this.template = proxy(kendo.template('' + template + ''), templateProxy);\n groupTemplateProxy.template = this.template;\n if (typeof headerTemplate === FUNCTION) {\n groupTemplateProxy._headerTemplate = headerTemplate;\n headerTemplate = '#=this._headerTemplate(data)#';\n }\n groupTemplateProxy.headerTemplate = kendo.template(headerTemplate);\n this.groupTemplate = proxy(GROUP_TEMPLATE, groupTemplateProxy);\n },\n _click: function (e) {\n if (e.event.which > 1 || e.event.isDefaultPrevented()) {\n return;\n }\n var dataItem, item = e.target, target = $(e.event.target), buttonElement = target.closest(kendo.roleSelector('button', 'detailbutton', 'backbutton')), button = kendo.widgetInstance(buttonElement, ui), id = item.attr(kendo.attr('uid'));\n if (id) {\n dataItem = this.dataSource.getByUid(id);\n }\n if (this.trigger(CLICK, {\n target: target,\n item: item,\n dataItem: dataItem,\n button: button\n })) {\n e.preventDefault();\n }\n },\n _styleGroups: function () {\n var rootItems = this.element.children();\n rootItems.children('ul').addClass('km-list');\n rootItems.each(function () {\n var li = $(this), groupHeader = li.contents().first();\n li.addClass('km-group-container');\n if (!groupHeader.is('ul') && !groupHeader.is('div.' + GROUP_CLASS)) {\n groupHeader.wrap(GROUP_WRAPPER);\n }\n });\n },\n _style: function () {\n var options = this.options, grouped = options.type === 'group', element = this.element, inset = options.style === 'inset';\n element.addClass('km-listview').toggleClass('km-list', !grouped).toggleClass('km-virtual-list', this.virtual).toggleClass('km-listinset', !grouped && inset).toggleClass('km-listgroup', grouped && !inset).toggleClass('km-listgroupinset', grouped && inset);\n if (!element.parents('.km-listview')[0]) {\n element.closest('.km-content').toggleClass('km-insetcontent', inset);\n }\n if (grouped) {\n this._styleGroups();\n }\n this.trigger(STYLED);\n },\n _enhanceItems: function (items) {\n items.each(function () {\n var item = $(this), child, enhanced = false;\n item.children().each(function () {\n child = $(this);\n if (child.is('a')) {\n enhanceLinkItem(child);\n enhanced = true;\n } else if (child.is('label')) {\n enhanceCheckBoxItem(child);\n enhanced = true;\n }\n });\n if (!enhanced) {\n enhanceItem(item);\n }\n });\n }\n });\n ui.plugin(ListView);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"],"sourceRoot":"/source/"}