{"version":3,"sources":["kendo.listview.js"],"names":["f","define","$","undefined","kendo","window","CHANGE","KENDO_KEYDOWN","CANCEL","DATABOUND","DATABINDING","Widget","ui","keys","EMPTY_STRING","FOCUSSELECTOR","PROGRESS","ERROR","FOCUSED","SELECTED","KEDITITEM","EDIT","REMOVE","SAVE","MOUSEDOWN","CLICK","TOUCHSTART","NS","proxy","activeElement","_activeElement","progress","DataSource","data","ListView","DataBoundWidget","extend","init","element","options","that","this","isArray","dataSource","fn","call","wrapper","id","_itemId","_element","_layout","_dataSource","_setContentHeight","_templates","_navigatable","_selectable","_pageable","_crudHandlers","_scrollable","autoBind","fetch","notify","events","name","selectable","navigatable","height","template","altTemplate","editTemplate","contentTemplate","contentElement","bordered","borders","layout","flex","direction","wrap","grid","scrollable","setOptions","destroy","_item","action","content","children","items","dataItem","attr","uid","closest","getByUid","setDataSource","_bindScrollable","_unbindDataSource","unbind","_refreshHandler","_progressHandler","_errorHandler","refresh","_progress","_error","create","bind","toggle","opacity","addClass","document","createElement","appendTo","css","elementClassNames","contentClassNames","add","removeClass","index","className","indexOf","push","contentPadding","cols","rows","rowHeight","gutter","join","is","innerHeight","e","item","idx","length","view","html","role","active","endlessAppend","_endlessFetchInProgress","_skipRerenderItemsCount","_hasBindingTarget","editable","filter","angular","elements","replaceWith","eq","trigger","_angularItems","_destroyEditable","append","not","_focusNext","current","next","settings","pagerId","pageable","isPlainObject","pager","Pager","multi","Selectable","parseOptions","multiple","aria","change","on","keyCode","SPACEBAR","target","currentTarget","preventDefault","ctrlKey","hasClass","clear","value","overflow-y","position","-webkit-overflow-scrolling","originalPageSize","_endlessPageSize","pageSize","off","scrollTop","clientHeight","scrollHeight","total","endless","candidate","_current","removeAttr","_scrollTo","container","scrollDirectionFunc","UseJQueryoffset","SCROLL","dimension","elementOffset","offset","toLowerCase","elementDimension","containerScrollAmount","containerDimension","clickCallback","focusElement","_tabindex","focusAgain","key","canHandle","isTextBox","editItem","find","ESC","ENTER","UP","LEFT","prev","DOWN","RIGHT","PAGEUP","page","PAGEDOWN","HOME","END","blur","save","one","edit","cancel","clearSelection","select","first","_modelFromElement","_closeEditable","kendoEditable","model","clearContainer","errorTemplate","end","sync","remove","cancelChanges","hide","insert","mousedownNs","touchstartNs","clickNs","setTimeout","plugin","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.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.listview', [\n        'kendo.data',\n        'kendo.editable',\n        'kendo.selectable'\n    ], f);\n}(function () {\n    var __meta__ = {\n        id: 'listview',\n        name: 'ListView',\n        category: 'web',\n        description: 'The ListView widget offers rich support for interacting with data.',\n        depends: ['data'],\n        features: [\n            {\n                id: 'listview-editing',\n                name: 'Editing',\n                description: 'Support for record editing',\n                depends: ['editable']\n            },\n            {\n                id: 'listview-selection',\n                name: 'Selection',\n                description: 'Support for selection',\n                depends: ['selectable']\n            }\n        ]\n    };\n    (function ($, undefined) {\n        var kendo = window.kendo, CHANGE = 'change', KENDO_KEYDOWN = 'kendoKeydown', CANCEL = 'cancel', DATABOUND = 'dataBound', DATABINDING = 'dataBinding', Widget = kendo.ui.Widget, keys = kendo.keys, EMPTY_STRING = '', FOCUSSELECTOR = '> *:not(.k-loading-mask)', PROGRESS = 'progress', ERROR = 'error', FOCUSED = 'k-state-focused', SELECTED = 'k-state-selected', KEDITITEM = 'k-edit-item', EDIT = 'edit', REMOVE = 'remove', SAVE = 'save', MOUSEDOWN = 'mousedown', CLICK = 'click', TOUCHSTART = 'touchstart', NS = '.kendoListView', proxy = $.proxy, activeElement = kendo._activeElement, progress = kendo.ui.progress, DataSource = kendo.data.DataSource;\n        var ListView = kendo.ui.DataBoundWidget.extend({\n            init: function (element, options) {\n                var that = this;\n                options = $.isArray(options) ? { dataSource: options } : options;\n                Widget.fn.init.call(that, element, options);\n                options = that.options;\n                that.wrapper = element = that.element;\n                if (element[0].id) {\n                    that._itemId = element[0].id + '_lv_active';\n                }\n                that._element();\n                that._layout();\n                that._dataSource();\n                that._setContentHeight();\n                that._templates();\n                that._navigatable();\n                that._selectable();\n                that._pageable();\n                that._crudHandlers();\n                that._scrollable();\n                if (that.options.autoBind) {\n                    that.dataSource.fetch();\n                }\n                kendo.notify(that);\n            },\n            events: [\n                CHANGE,\n                CANCEL,\n                DATABINDING,\n                DATABOUND,\n                EDIT,\n                REMOVE,\n                SAVE,\n                KENDO_KEYDOWN\n            ],\n            options: {\n                name: 'ListView',\n                autoBind: true,\n                selectable: false,\n                navigatable: false,\n                height: null,\n                template: EMPTY_STRING,\n                altTemplate: EMPTY_STRING,\n                editTemplate: EMPTY_STRING,\n                contentTemplate: '<div data-content=\\'true\\' />',\n                contentElement: 'div',\n                bordered: true,\n                borders: '',\n                layout: '',\n                flex: {\n                    direction: 'row',\n                    wrap: 'nowrap'\n                },\n                grid: {},\n                scrollable: false\n            },\n            setOptions: function (options) {\n                Widget.fn.setOptions.call(this, options);\n                this._layout();\n                this._templates();\n                if (this.selectable) {\n                    this.selectable.destroy();\n                    this.selectable = null;\n                }\n                this._selectable();\n            },\n            _templates: function () {\n                var options = this.options;\n                this.template = kendo.template(options.template || EMPTY_STRING);\n                this.altTemplate = kendo.template(options.altTemplate || options.template);\n                this.editTemplate = kendo.template(options.editTemplate || EMPTY_STRING);\n            },\n            _item: function (action) {\n                return this.content.children()[action]();\n            },\n            items: function () {\n                return this.content.children(':not(.k-loading-mask)');\n            },\n            dataItem: function (element) {\n                var attr = kendo.attr('uid');\n                var uid = $(element).closest('[' + attr + ']').attr(attr);\n                return this.dataSource.getByUid(uid);\n            },\n            setDataSource: function (dataSource) {\n                this.options.dataSource = dataSource;\n                this._dataSource();\n                if (this.options.autoBind) {\n                    dataSource.fetch();\n                }\n                if (this.options.scrollable === 'endless') {\n                    this._bindScrollable();\n                }\n            },\n            _unbindDataSource: function () {\n                var that = this;\n                that.dataSource.unbind(CHANGE, that._refreshHandler).unbind(PROGRESS, that._progressHandler).unbind(ERROR, that._errorHandler);\n            },\n            _dataSource: function () {\n                var that = this;\n                if (that.dataSource && that._refreshHandler) {\n                    that._unbindDataSource();\n                } else {\n                    that._refreshHandler = proxy(that.refresh, that);\n                    that._progressHandler = proxy(that._progress, that);\n                    that._errorHandler = proxy(that._error, that);\n                }\n                that.dataSource = DataSource.create(that.options.dataSource).bind(CHANGE, that._refreshHandler).bind(PROGRESS, that._progressHandler).bind(ERROR, that._errorHandler);\n            },\n            _progress: function (toggle) {\n                var element = this.content;\n                progress(element, toggle, { opacity: true });\n            },\n            _error: function () {\n                progress(this.content, false);\n            },\n            _element: function () {\n                var options = this.options;\n                var height = options.height;\n                this.element.addClass('k-widget k-listview');\n                if (options.navigatable || options.selectable) {\n                    this.element.attr('role', 'listbox');\n                } else {\n                    this.element.attr('role', 'list');\n                }\n                if (options.contentElement) {\n                    this.content = $(document.createElement(options.contentElement)).appendTo(this.element);\n                } else {\n                    this.content = this.element;\n                }\n                if (height) {\n                    this.element.css('height', height);\n                }\n            },\n            _layout: function () {\n                var that = this;\n                var options = that.options;\n                var flex = options.flex;\n                var grid = options.grid;\n                var element = that.element;\n                var elementClassNames = [\n                    'k-widget',\n                    'k-listview'\n                ];\n                var content = that.content;\n                var contentClassNames = ['k-listview-content'];\n                element.add(content).removeClass(function (index, className) {\n                    if (className.indexOf('k-') >= 0) {\n                        return true;\n                    }\n                });\n                if (options.bordered === true) {\n                    elementClassNames.push('k-listview-bordered');\n                }\n                if (typeof options.borders === 'string' && options.borders !== EMPTY_STRING) {\n                    elementClassNames.push('k-listview-borders-' + options.borders);\n                }\n                if (typeof options.contentPadding === 'string' && options.contentPadding !== EMPTY_STRING) {\n                    contentClassNames.push('k-listview-content-padding-' + options.contentPadding);\n                }\n                if (typeof options.layout === 'string' && options.layout !== EMPTY_STRING) {\n                    contentClassNames.push('k-d-' + options.layout);\n                }\n                if (options.layout === 'flex' && typeof flex === 'object') {\n                    if (typeof flex.direction === 'string' && flex.direction !== '') {\n                        contentClassNames.push('k-flex-' + flex.direction);\n                    }\n                    if (typeof flex.wrap === 'string' && flex.wrap !== '') {\n                        contentClassNames.push('k-flex-' + flex.wrap);\n                    }\n                }\n                if (options.layout === 'grid' && typeof grid === 'object') {\n                    if (typeof grid.cols === 'number') {\n                        content.css('grid-template-columns', 'repeat(' + grid.cols + ', 1fr)');\n                    } else if (typeof grid.cols === 'string') {\n                        content.css('grid-template-columns', grid.cols);\n                    }\n                    if (typeof grid.rows === 'number') {\n                        content.css('grid-template-rows', 'repeat(' + grid.rows + ', ' + (grid.rowHeight !== undefined ? grid.rowHeight : '1fr') + ')');\n                    } else if (typeof grid.rows === 'string') {\n                        content.css('grid-template-rows', grid.rows);\n                    }\n                    if (typeof grid.gutter === 'number') {\n                        content.css('grid-gap', grid.gutter);\n                    } else if (typeof grid.gutter === 'string') {\n                        content.css('grid-gap', grid.gutter);\n                    }\n                }\n                that.element.addClass(elementClassNames.join(' '));\n                that.content.addClass(contentClassNames.join(' '));\n            },\n            _setContentHeight: function () {\n                var that = this, options = that.options, height;\n                if (options.scrollable && that.wrapper.is(':visible')) {\n                    height = that.wrapper.innerHeight();\n                    that.content.height(height);\n                }\n            },\n            refresh: function (e) {\n                var that = this, view = that.dataSource.view(), data, items, item, html = '', idx, length, template = that.template, altTemplate = that.altTemplate, options = that.options, role = options.selectable || options.navigatable ? 'option' : 'listitem', active = activeElement(), endlessAppend = that._endlessFetchInProgress, index = endlessAppend ? that._skipRerenderItemsCount : 0, scrollable = that.options.scrollable;\n                e = e || {};\n                if (e.action === 'itemchange') {\n                    if (!that._hasBindingTarget() && !that.editable) {\n                        data = e.items[0];\n                        item = that.items().filter('[' + kendo.attr('uid') + '=' + data.uid + ']');\n                        if (item.length > 0) {\n                            idx = item.index();\n                            that.angular('cleanup', function () {\n                                return { elements: [item] };\n                            });\n                            item.replaceWith(template(data));\n                            item = that.items().eq(idx);\n                            item.attr(kendo.attr('uid'), data.uid);\n                            that.angular('compile', function () {\n                                return {\n                                    elements: [item],\n                                    data: [{ dataItem: data }]\n                                };\n                            });\n                            that.trigger('itemChange', {\n                                item: item,\n                                data: data\n                            });\n                        }\n                    }\n                    return;\n                }\n                if (that.trigger(DATABINDING, {\n                        action: e.action || 'rebind',\n                        items: e.items,\n                        index: e.index\n                    })) {\n                    return;\n                }\n                that._angularItems('cleanup');\n                if (!endlessAppend) {\n                    that._destroyEditable();\n                }\n                for (idx = index, length = view.length; idx < length; idx++) {\n                    if (idx % 2) {\n                        html += altTemplate(view[idx]);\n                    } else {\n                        html += template(view[idx]);\n                    }\n                }\n                if (endlessAppend) {\n                    that.content.append(html);\n                } else {\n                    that.content.html(html);\n                }\n                items = that.items().not('.k-loading-mask');\n                for (idx = index, length = view.length; idx < length; idx++) {\n                    item = items.eq(idx);\n                    item.attr(kendo.attr('uid'), view[idx].uid).attr('role', role);\n                    if (that.options.selectable) {\n                        item.attr('aria-selected', 'false');\n                    }\n                }\n                if (that.content[0] === active && that.options.navigatable) {\n                    if (that._focusNext) {\n                        that.current(that.current().next());\n                    } else {\n                        if (!scrollable) {\n                            that.current(items.eq(0));\n                        }\n                    }\n                }\n                that._setContentHeight();\n                that._angularItems('compile');\n                that._progress(false);\n                that._endlessFetchInProgress = null;\n                that.trigger(DATABOUND, {\n                    action: e.action || 'rebind',\n                    items: e.items,\n                    index: e.index\n                });\n            },\n            _pageable: function () {\n                var that = this, pageable = that.options.pageable, settings, pagerId;\n                if ($.isPlainObject(pageable)) {\n                    pagerId = pageable.pagerId;\n                    settings = $.extend({}, pageable, {\n                        dataSource: that.dataSource,\n                        pagerId: null\n                    });\n                    that.pager = new kendo.ui.Pager($('#' + pagerId), settings);\n                }\n            },\n            _selectable: function () {\n                var that = this, multi, current, selectable = that.options.selectable, navigatable = that.options.navigatable;\n                if (selectable) {\n                    multi = kendo.ui.Selectable.parseOptions(selectable).multiple;\n                    that.selectable = new kendo.ui.Selectable(that.element, {\n                        aria: true,\n                        multiple: multi,\n                        filter: that.options.contentElement ? '.k-listview-content ' + FOCUSSELECTOR : FOCUSSELECTOR,\n                        change: function () {\n                            that.trigger(CHANGE);\n                        }\n                    });\n                    if (navigatable) {\n                        that.element.on('keydown' + NS, function (e) {\n                            if (e.keyCode === keys.SPACEBAR) {\n                                current = that.current();\n                                if (e.target == e.currentTarget) {\n                                    e.preventDefault();\n                                }\n                                if (multi) {\n                                    if (!e.ctrlKey) {\n                                        that.selectable.clear();\n                                    } else {\n                                        if (current && current.hasClass(SELECTED)) {\n                                            current.removeClass(SELECTED);\n                                            return;\n                                        }\n                                    }\n                                } else {\n                                    that.selectable.clear();\n                                }\n                                that.selectable.value(current);\n                            }\n                        });\n                    }\n                }\n            },\n            _scrollable: function () {\n                var that = this;\n                var scrollable = that.options.scrollable;\n                if (scrollable) {\n                    that.content.css({\n                        'overflow-y': 'scroll',\n                        'position': 'relative',\n                        '-webkit-overflow-scrolling': 'touch'\n                    });\n                    if (scrollable === 'endless') {\n                        that._bindScrollable();\n                    }\n                }\n            },\n            _bindScrollable: function () {\n                var that = this;\n                var originalPageSize = that._endlessPageSize = that.dataSource.options.pageSize;\n                that.content.off('scroll' + NS).on('scroll' + NS, function () {\n                    if (this.scrollTop + this.clientHeight - this.scrollHeight >= -15 && !that._endlessFetchInProgress && that._endlessPageSize < that.dataSource.total()) {\n                        that._skipRerenderItemsCount = that._endlessPageSize;\n                        that._endlessPageSize = that._skipRerenderItemsCount + originalPageSize;\n                        that.dataSource.options.endless = true;\n                        that._endlessFetchInProgress = true;\n                        that.dataSource.pageSize(that._endlessPageSize);\n                    }\n                });\n            },\n            current: function (candidate) {\n                var that = this, element = that.element, current = that._current, id = that._itemId;\n                if (candidate === undefined) {\n                    return current;\n                }\n                if (current && current[0]) {\n                    if (current[0].id === id) {\n                        current.removeAttr('id');\n                    }\n                    current.removeClass(FOCUSED);\n                    element.removeAttr('aria-activedescendant');\n                }\n                if (candidate && candidate[0]) {\n                    id = candidate[0].id || id;\n                    that._scrollTo(candidate[0]);\n                    element.attr('aria-activedescendant', id);\n                    candidate.addClass(FOCUSED).attr('id', id);\n                }\n                that._current = candidate;\n            },\n            _scrollTo: function (element) {\n                var that = this, content = that.content, container, UseJQueryoffset = false, SCROLL = 'scroll';\n                if (content.css('overflow') === 'auto' || content.css('overflow') === SCROLL || content.css('overflow-y') === SCROLL) {\n                    container = content[0];\n                } else {\n                    container = window;\n                    UseJQueryoffset = true;\n                }\n                var scrollDirectionFunc = function (direction, dimension) {\n                    var elementOffset = UseJQueryoffset ? $(element).offset()[direction.toLowerCase()] : element['offset' + direction], elementDimension = element['client' + dimension], containerScrollAmount = $(container)[SCROLL + direction](), containerDimension = $(container)[dimension.toLowerCase()]();\n                    if (elementOffset + elementDimension > containerScrollAmount + containerDimension) {\n                        $(container)[SCROLL + direction](elementOffset + elementDimension - containerDimension);\n                    } else if (elementOffset < containerScrollAmount) {\n                        $(container)[SCROLL + direction](elementOffset);\n                    }\n                };\n                scrollDirectionFunc('Top', 'Height');\n                scrollDirectionFunc('Left', 'Width');\n            },\n            _navigatable: function () {\n                var that = this, navigatable = that.options.navigatable, element = that.element, content = that.content, clickCallback = function (e) {\n                        that.current($(e.currentTarget));\n                        if (!$(e.target).is(':button, a, :input, a > .k-icon, textarea')) {\n                            kendo.focusElement(element);\n                        }\n                    };\n                if (navigatable) {\n                    that._tabindex();\n                    element.on('focus' + NS, function () {\n                        var current = that._current;\n                        if (!current || !current.is(':visible')) {\n                            current = that._item('first');\n                        }\n                        that.current(current);\n                    }).on('focusout' + NS, function () {\n                        if (that._current) {\n                            that._current.removeClass(FOCUSED);\n                        }\n                    }).on('keydown' + NS, that, function (e) {\n                        var key = e.keyCode, current = that.current(), target = $(e.target), canHandle = !target.is(':button, textarea, a, a > .t-icon, input'), isTextBox = target.is(':text, :password'), preventDefault = kendo.preventDefault, editItem = content.find('.' + KEDITITEM), active = activeElement(), idx, scrollable = that.options.scrollable;\n                        if (!canHandle && !isTextBox && key !== keys.ESC || isTextBox && key !== keys.ESC && key !== keys.ENTER) {\n                            return;\n                        }\n                        if (key === keys.UP || key === keys.LEFT) {\n                            if (current && current[0]) {\n                                current = current.prev();\n                            }\n                            if (current && current[0]) {\n                                that.current(current);\n                            } else if (!scrollable) {\n                                that.current(that._item('last'));\n                            }\n                            preventDefault(e);\n                        }\n                        if (key === keys.DOWN || key === keys.RIGHT) {\n                            if (scrollable) {\n                                if (that.options.scrollable === 'endless' && !current.next().length) {\n                                    that.content[0].scrollTop = that.content[0].scrollHeight;\n                                    that._focusNext = true;\n                                } else {\n                                    current = current.next();\n                                    if (current && current[0]) {\n                                        that.current(current);\n                                    }\n                                }\n                            } else {\n                                current = current.next();\n                                that.current(!current || !current[0] ? that._item('first') : current);\n                            }\n                            preventDefault(e);\n                        }\n                        if (key === keys.PAGEUP) {\n                            that.current(null);\n                            that.dataSource.page(that.dataSource.page() - 1);\n                            preventDefault(e);\n                        }\n                        if (key === keys.PAGEDOWN) {\n                            that.current(null);\n                            that.dataSource.page(that.dataSource.page() + 1);\n                            preventDefault(e);\n                        }\n                        if (key === keys.HOME) {\n                            that.current(that._item('first'));\n                            preventDefault(e);\n                        }\n                        if (key === keys.END) {\n                            that.current(that._item('last'));\n                            preventDefault(e);\n                        }\n                        if (key === keys.ENTER) {\n                            if (editItem.length !== 0 && (canHandle || isTextBox)) {\n                                idx = that.items().index(editItem);\n                                if (active) {\n                                    active.blur();\n                                }\n                                that.save();\n                                var focusAgain = function () {\n                                    that.element.trigger('focus');\n                                    that.current(that.items().eq(idx));\n                                };\n                                that.one('dataBound', focusAgain);\n                            } else if (that.options.editTemplate !== '') {\n                                that.edit(current);\n                            }\n                        }\n                        if (key === keys.ESC) {\n                            editItem = content.find('.' + KEDITITEM);\n                            if (editItem.length === 0) {\n                                return;\n                            }\n                            idx = that.items().index(editItem);\n                            that.cancel();\n                            that.element.trigger('focus');\n                            that.current(that.items().eq(idx));\n                        }\n                    });\n                    element.on(MOUSEDOWN + NS + ' ' + TOUCHSTART + NS, that.options.contentElement ? '.k-listview-content ' + FOCUSSELECTOR : FOCUSSELECTOR, proxy(clickCallback, that));\n                }\n            },\n            clearSelection: function () {\n                var that = this;\n                that.selectable.clear();\n                that.trigger(CHANGE);\n            },\n            select: function (items) {\n                var that = this, selectable = that.selectable;\n                items = $(items);\n                if (items.length) {\n                    if (!selectable.options.multiple) {\n                        selectable.clear();\n                        items = items.first();\n                    }\n                    selectable.value(items);\n                    return;\n                }\n                return selectable.value();\n            },\n            _destroyEditable: function () {\n                var that = this;\n                if (that.editable) {\n                    that.editable.destroy();\n                    delete that.editable;\n                }\n            },\n            _modelFromElement: function (element) {\n                var uid = element.attr(kendo.attr('uid'));\n                return this.dataSource.getByUid(uid);\n            },\n            _closeEditable: function () {\n                var that = this, editable = that.editable, options = that.options, role = options.selectable || options.navigatable ? 'option' : 'listitem', data, item, index, template = that.template;\n                if (editable) {\n                    if (editable.element.index() % 2) {\n                        template = that.altTemplate;\n                    }\n                    that.angular('cleanup', function () {\n                        return { elements: [editable.element] };\n                    });\n                    data = that._modelFromElement(editable.element);\n                    that._destroyEditable();\n                    index = editable.element.index();\n                    editable.element.replaceWith(template(data));\n                    item = that.items().eq(index);\n                    item.attr(kendo.attr('uid'), data.uid);\n                    item.attr('role', role);\n                    if (that._hasBindingTarget()) {\n                        kendo.bind(item, data);\n                    }\n                    that.angular('compile', function () {\n                        return {\n                            elements: [item],\n                            data: [{ dataItem: data }]\n                        };\n                    });\n                }\n                return true;\n            },\n            edit: function (item) {\n                var that = this, data = that._modelFromElement(item), container, uid = data.uid, index;\n                that.cancel();\n                item = that.items().filter('[' + kendo.attr('uid') + '=' + uid + ']');\n                index = item.index();\n                item.replaceWith(that.editTemplate(data));\n                container = that.items().eq(index).addClass(KEDITITEM).attr(kendo.attr('uid'), data.uid);\n                that.editable = container.kendoEditable({\n                    model: data,\n                    clearContainer: false,\n                    errorTemplate: false,\n                    target: that\n                }).data('kendoEditable');\n                that.trigger(EDIT, {\n                    model: data,\n                    item: container\n                });\n            },\n            save: function () {\n                var that = this, editable = that.editable, model;\n                if (!editable) {\n                    return;\n                }\n                var container = editable.element;\n                model = that._modelFromElement(container);\n                if (editable.end() && !that.trigger(SAVE, {\n                        model: model,\n                        item: container\n                    })) {\n                    that._closeEditable();\n                    that.dataSource.sync();\n                }\n            },\n            remove: function (item) {\n                var that = this, dataSource = that.dataSource, data = that._modelFromElement(item);\n                if (that.editable) {\n                    dataSource.cancelChanges(that._modelFromElement(that.editable.element));\n                    that._closeEditable();\n                }\n                if (!that.trigger(REMOVE, {\n                        model: data,\n                        item: item\n                    })) {\n                    item.hide();\n                    dataSource.remove(data);\n                    dataSource.sync();\n                }\n            },\n            add: function () {\n                var that = this, dataItem, dataSource = that.dataSource, index = dataSource.indexOf((dataSource.view() || [])[0]);\n                if (index < 0) {\n                    index = 0;\n                }\n                that.cancel();\n                dataItem = dataSource.insert(index, {});\n                that.edit(that.element.find('[data-uid=\\'' + dataItem.uid + '\\']'));\n            },\n            cancel: function () {\n                var that = this, dataSource = that.dataSource;\n                if (that.editable) {\n                    var container = that.editable.element;\n                    var model = that._modelFromElement(container);\n                    if (!that.trigger(CANCEL, {\n                            model: model,\n                            container: container\n                        })) {\n                        dataSource.cancelChanges(model);\n                        that._closeEditable();\n                    }\n                }\n            },\n            _crudHandlers: function () {\n                var that = this, mousedownNs = MOUSEDOWN + NS, touchstartNs = TOUCHSTART + NS, clickNs = CLICK + NS;\n                that.content.on(mousedownNs + ' ' + touchstartNs, '.k-edit-button', function (e) {\n                    e.preventDefault();\n                    var item = $(this).closest('[' + kendo.attr('uid') + ']');\n                    setTimeout(function () {\n                        that.edit(item);\n                    });\n                });\n                that.content.on(mousedownNs + ' ' + touchstartNs, '.k-delete-button', function (e) {\n                    e.preventDefault();\n                    var item = $(this).closest('[' + kendo.attr('uid') + ']');\n                    setTimeout(function () {\n                        that.remove(item);\n                    });\n                });\n                that.content.on(clickNs, '.k-update-button', function (e) {\n                    that.save();\n                    e.preventDefault();\n                });\n                that.content.on(clickNs, '.k-cancel-button', function (e) {\n                    that.cancel();\n                    e.preventDefault();\n                });\n            },\n            destroy: function () {\n                var that = this;\n                Widget.fn.destroy.call(that);\n                that._unbindDataSource();\n                that._destroyEditable();\n                that.element.off(NS);\n                that.content.off(NS);\n                that._endlessFetchInProgress = that._endlessPageSize = that._skipRerenderItemsCount = that._focusNext = null;\n                if (that.pager) {\n                    that.pager.destroy();\n                }\n                kendo.destroy(that.element);\n            }\n        });\n        kendo.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}));"]}