{"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","_scrollHandler","e","_fixHeader","destroy","that","unbind","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","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","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","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 this._scrollHandler = function (e) {\n headerFixer._fixHeader(e);\n };\n scroller.bind('scroll', this._scrollHandler);\n },\n destroy: function () {\n var that = this;\n if (that.scroller) {\n that.scroller.unbind('scroll', that._scrollHandler);\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 if (this._headerFixer) {\n this._headerFixer.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 kendo.destroy(this.element.children());\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/"}