{"version":3,"sources":["kendo.grid.js"],"names":["f","define","$","objectKey","object","key","parts","push","sort","join","hashKey","str","i","hash","length","charCodeAt","zeroSize","width","height","baseline","measureText","text","style","measureBox","TextMetrics","current","measure","LRUCache","DEFAULT_OPTIONS","defaultMeasureBox","window","kendo","util","Class","extend","init","size","this","_size","_length","_map","put","value","map","entry","_head","_tail","newer","older","get","baselineMarkerSize","document","createElement","cssText","options","_cache","box","styleKey","cacheKey","cachedResult","baselineMarker","_baselineMarker","cloneNode","textContent","appendChild","body","String","offsetWidth","offsetHeight","offsetTop","parentNode","removeChild","marker","deepExtend","jQuery","amd","a1","a2","a3","undefined","groupCells","count","Array","stringifyAttributes","attributes","attr","result","STRING","cursor","context","add","css","reorder","selector","source","dest","before","idx","sourceIndex","eq","appendTo","elements","lockedContent","content","filter","find","attachCustomCommandEvent","container","commands","command","commandName","isArray","isPlainObject","click","name","on","CLICK","NS","replace","proxy","normalizeColumns","columns","encoded","hide","column","hidden","uid","field","isVisible","addHiddenStyle","footerAttributes","headerAttributes","guid","id","columnParent","parents","columnParents","inserted","splice","setColumnVisibility","visible","method","removeHiddenStyle","isCellVisible","display","visibleColumns","grep","toJQuery","toArray","updateCellRowSpan","cell","sourceLockedColumnsCount","lockedColumnDepth","depth","lockedColumns","nonLockedColumnDepth","nonLockedColumns","rowSpan","moveCellsBetweenContainers","sources","target","leafs","destination","groups","rows","sourcesDepth","targetDepth","children","insertAfter","last","addRowSpanValue","moveCells","updateCellIndex","thead","offset","position","allColumns","cells","leafColumns","el","hasClass","columnPosition","row","temp","max","sourcePosition","columnVisiblePosition","ths","t","append","concat","cellCounts","findParentColumnWithChildren","index","rtl","locked","findReorderTarget","parent","parentColumns","inArray","flatColumnsInDomOrder","flatColumns","hiddenLeafColumnsCount","counter","columnsWidth","cols","colWidth","indexOf","parseInt","removeRowSpanValue","removeEmptyRows","emptyRowsCount","remove","mapColumnToCellRows","rowIndex","visibleNonLockedColumns","visibleLockedColumns","visibleLeafColumns","leafDataCells","indexAttr","a","b","indexA","indexB","parentColumnsCells","parentCellsWithChildren","prevCells","parentCell","closest","headerRows","level","prevAll","colSpan","Math","childColumnsCells","child","colSpanAttr","next","appendContent","tbody","table","html","empty","placeholder","tmp","tbodySupportsInnerHtml","innerHTML","firstChild","replaceChild","normalizeCols","hasDetails","colgroup","format","is","prepend","browser","msie","version","setTimeout","normalizeHeaderCells","len","lastIndex","th","insertBefore","convertToObject","array","item","formatGroupValue","columnValues","isForeignKey","groupValue","htmlEncode","setCellVisibility","state","pad","nonDataCellsRegExp","test","className","hideColumnCells","columnIndex","groupRows","data","hasSubgroups","items","groupFooters","aggregates","showColumnCells","updateColspan","toAdd","toRemove","num","tableWidth","syncTableHeight","table1","table2","lockedHeigth","tableHeigth","diff","filterRowRegExp","adjustRowHeight","row1","row2","offsetHeight1","offsetHeight2","getCommand","focusTable","direct","scrollTop","scrollLeft","edge","setActive","e","focus","one","preventDefault","isColumnEditable","model","editable","isInputElement","element","tableClick","currentTarget","isHeader","lockedTable","headerTable","lockedHeader","isInput","currentTable","support","touch","roleSelector","_setCurrent","navigatable","isIE8","_activeElement","isInEdit","groupRowBuilder","colspan","groupRowLockedContentBuilder","ui","DataSource","tbodyInnerHtml","activeElement","Widget","outerWidth","_outerWidth","outerHeight","_outerHeight","keys","prototype","isFunction","isEmptyObject","math","PROGRESS","ERROR","DATA_CELL","SELECTION_CELL_SELECTOR","NAVROW","NAVCELL","FIRSTNAVITEM","HEADERCELLS","EDIT","SAVE","REMOVE","DETAILINIT","FILTERMENUINIT","COLUMNMENUINIT","CHANGE","COLUMNHIDE","COLUMNSHOW","SAVECHANGES","DATABOUND","DETAILEXPAND","DETAILCOLLAPSE","FOCUSED","SELECTED","NORECORDSCLASS","COLUMNRESIZE","COLUMNREORDER","COLUMNLOCK","COLUMNUNLOCK","NAVIGATE","HEIGHT","TABINDEX","FUNCTION","DELETECONFIRM","NORECORDS","CONFIRMDELETE","CANCELDELETE","formatRegExp","templateHashRegExp","whitespaceRegExp","RegExp","COMMANDBUTTONTMPL","isRtl","isIE7","VirtualScrollable","that","fn","call","_refreshHandler","refresh","setDataSource","dataSource","wrap","unbind","bind","itemHeight","noop","prefetch","destroy","wrapper","verticalScrollbar","off","drag","scrollbar","overflow","first","_wheelScroll","kineticScrollNeeded","UserEvents","global","start","sender","capture","move","y","delta","x","_scroll","ctrlKey","wheelDeltaY","clientHeight","scrollHeight","delayLoading","rowHeight","skip","_rangeStart","innerHeight","isScrollingUp","_scrollbarTop","firstItemIndex","floor","lastItemIndex","_scrollTop","_scrolling","_fetch","_scrollingTimeout","clearTimeout","_page","take","itemIndex","rangeStart","pageSize","scrollIntoView","containerHeight","containerScroll","elementOffset","elementHeight","scrollingUp","currentSkip","fetching","prefetchAt","_fetching","_timeout","inRange","range","progress","repaintScrollbar","maxHeight","wrapperElement","addScrollBarHeight","scrollWidth","totalHeight","total","cancel","page","defaultCommands","create","imageClass","iconClass","save","edit","update","canceledit","excel","pdf","Grid","DataBoundWidget","events","_events","_element","_aria","_columns","_dataSource","_tbody","_pageable","_thead","_groupable","_toolbar","_setContentHeight","_templates","_navigatable","_selectable","_clipboard","_details","_editable","_attachCustomCommandsEvent","_minScreenSupport","autoBind","fetch","_group","_groups","_footer","addClass","_resizeHandler","resize","notify","scrollable","virtual","groupable","virtualScrollable","selectable","toolbar","filterable","sortable","allowCopy","pageable","rowTemplate","altRowTemplate","noRecords","resizable","reorderable","columnMenu","detailTemplate","columnResizeHandleWidth","mobile","messages","cancelDelete","confirmation","confirmDelete","_angularItems","_destroyColumnAttachments","_navigatableTables","pager","kendoGroupable","clearArea","copyHandler","updateClipBoardState","clearAreaHandler","_resizeUserEvents","_resizeHandleDocumentClickHandler","_destroyEditable","_progressHandler","_errorHandler","_removeLockedContainers","pane","minScreenResizeHandler","_draggableInstance","lockedRowTemplate","lockedAltRowTemplate","footerTemplate","groupFooterTemplate","lockedGroupFooterTemplate","noRecordsTemplate","scrollables","footer","lockedFooter","_groupableClickHandler","_setContentWidthHandler","getOptions","initialData","_data","group","aggregate","transport","$angular","setOptions","mobileWrapper","currentOptions","_isMobile","after","removeClass","_setEvents","_items","tr","dataItems","n","resizeHandle","angular","each","filterMenu","_cellId","_hasDetails","_wrapper","_createResizeHandle","left","headerWrap","ieCorrection","webkitCorrection","firefoxCorrection","indicatorWidth","webkit","mozilla","top","show","_autoFitLeafColumn","_positionColumnResizeHandle","lockedHead","getPageZoomStyle","bodyZoom","docZoom","parseFloat","documentElement","isNaN","clientX","winScrollLeft","_resizeHandleDocumentClick","_hideResizeHandle","_positionColumnResizeHandleTouch","threshold","hold","_resizable","columnStart","columnWidth","columnMinWidth","gridWidth","isLocked","col","isMobile","mobileOS","Resizable","handle","hint","header","contentTable","location","minResizableWidth","constrain","totalWidth","rtlMultiplier","currentWidth","_footerWidth","resizeend","newWidth","trigger","oldWidth","_applyLockedContainersWidth","_syncLockedContentHeight","_syncLockedHeaderHeight","_draggable","kendoDraggable","autoScroll","dragstart","not","dragend","title","paddingLeft","paddingRight","lineHeight","paddingTop","paddingBottom","_reorderable","targetParentContainerIndex","targetIndex","kendoReorderable","draggable","dragOverContainers","lockable","inSameContainer","change","oldIndex","newIndex","reorderColumn","_reorderHeader","sourceLockedColumns","targetLockedColumns","destPosition","_reorderContent","footerCol","lockedRows","visibleSources","destIndex","colSourceIndex","colDest","lockedCount","headerCol","prev","_hasFilterRow","leafIndex","autoFitColumn","contentDiv","footerTable","j","tables","oldColumnWidth","newColumnWidth","visibleLocked","notGroupOrHierarchyCol","notGroupOrHierarchyVisibleCell","ceil","lockChanged","sourceColumns","destColumn","_updateColumnCellIndex","_updateTablesWidth","_updateFirstColumnClass","lockColumn","unlockColumn","cellIndex","td","lockedColumnOffset","contains","_modelForContainer","_editMode","getByUid","mode","multiple","handler","_editContainer","end","closeCell","isLockedCell","has","blur","editCell","timer","editRow","stopPropagation","removeRow","_confirmation","_attachModelChange","kendoEditable","fields","editor","values","_relatedRow","_adjustLockedHorizontalScrollBar","clientWidth","touchScroller","_adjustRowsHeight","_syncLockedFooterHeight","editView","_editCancelClickHandler","_editUpdateClickHandler","_detachModelChange","_destroyEditView","close","_actionSheet","purge","navigate","_modelChangeHandler","_modelChange","isCancel","_displayCell","prependTo","ns","dataItem","storage","settings","Template","templateSettings","tmpl","template","_cellTmpl","_removeRow","cancelRow","sync","ObservableObject","_createPopupEditor","_createInlineEditor","_editCancelClick","_editUpdateClick","saveRow","currentIndex","updateText","cancelText","tempCommand","unescape","_createButton","kendoWindow","modal","userTriggered","clearContainer","_openPopUpEditor","_editAnimation","center","open","Editable","cancelChanges","_displayRow","deferred","Deferred","reject","promise","resolve","related","newRow","nextRow","angularElements","angularData","isSelected","isAlt","replaceWith","select","_showMessage","actionSheet","view","ActionSheet","cancelTemplate","popup","_actionSheetPopupOptions","confirm","saveChanges","addRow","createAt","toLowerCase","serverPaging","totalPages","insert","_firstEditableColumnIndex","_toolbarTmpl","saveAsExcel","saveAsPDF","attributeClassMatch","Error","split","match","_hasFooters","collapseGroup","expandGroup","_isLocked","_attachGroupable","draggables","enabled","Groupable","groupContainer","draggableElements","allowDrag","_continuousItems","lockedItems","nonLockedItems","apply","slice","multi","notString","Selectable","parseOptions","aria","useAllItems","relatedTarget","continuousItems","keyCode","SPACEBAR","clear","grid","stopImmediatePropagation","copySelection","areaClipBoard","val","getTSV","Event","metaKey","getSelection","selection","createRange","opacity","cellsOffset","lockedCols","inLockedArea","rowsOffset","selected","delimeter","onlyVisible","cellText","any","hideMinScreenCols","screenWidth","innerWidth","screen","_iterateMinScreenCols","minWidth","minScreenWidth","hideColumn","showColumn","clearSelection","_updateCurrentAttr","headerId","removeAttr","_current","_scrollCurrent","tableContainer","isInLockedContainer","isInContent","scrollableContainer","addBack","_rowVirtualIndex","_scrollTo","preventTrigger","_removeCurrent","elementToLowercase","tagName","isHorizontal","elementOffsetDir","containerOffsetDir","bottomDistance","offsetLeft","abs","dataTables","headerTables","_openHeaderMenu","_tableFocus","_tableBlur","_tableKeyDown","altKey","DOWN","_setTabIndex","handled","requestInProgress","canHandle","isDefaultPrevented","UP","_moveUp","_moveDown","LEFT","RIGHT","_moveRight","_moveLeft","PAGEDOWN","_handlePageDown","PAGEUP","_handlePageUp","ENTER","F2","_handleEnterKey","ESC","_handleEscKey","TAB","_handleTabKey","shiftKey","collapseRow","_prevHorizontalCell","_horizontalContainer","expandRow","_nextHorizontalCell","_prevVerticalCell","_verticalContainer","_nextVerticalCell","isInCell","_tabNext","_handleEditing","active","_toggleCurrent","focusable","originalIndex","nextAll","_currentDataIndex","lockedColumnsCount","up","step","right","back","switchRow","isEdited","isIE","oldIE","editContainer","opera","triggerHandler","_initMobile","Pane","align","effect","_scrollable","hasVirtualScroll","_averageRowHeight","movable","_renderNoRecordsContent","noRecordsElement","_setContentWidth","expander","hiddenDivClass","hiddenDiv","footerWrap","contentWidth","nonLockedCols","nonLockedColsWidth","isGridHeightSet","initialHeight","newHeight","currentRowHeight","itemsCount","_rowHeight","_sum","_measures","_requestStart","_error","_progress","relatedRow","selectableRow","childCells","originalCells","Pager","_wrapFooter","_appendLockedColumnFooter","footerRow","_appendCols","_columnMenu","menu","menuOptions","hasMultiColumnHeaders","initCallback","closeCallback","sortHandler","filterHandler","compare","forceUnique","checkSource","owner","filtering","kendoColumnMenu","_headerCells","_filterable","columnFilterable","filterInit","kendoFilterMultiCheck","kendoFilterMenu","_filterRow","rowheader","suggestDataSource","operators","customDataSource","cellOptions","_updateHeader","delay","inputWidth","suggestionOperator","minLength","dataTextField","operator","showOperators","kendoFilterCell","_sortable","sorterInstance","kendoColumnSorter","initialColumns","type","_tmpl","alt","skipGroupCells","expr","paramName","_headerCellText","headerTemplate","stringify","useWithBlock","columnLeafs","columnsLocked","_detailTmpl","_footerTmpl","g","_noRecordsTmpl","defaultTemplate","scrollableNoGridHeightStyles","templateName","rowClass","scope","fieldsMap","_emptyAggregates","templateFunctionStorage","templateFunctionCount","hasFiltering","columnsWithoutFiltering","detailRow","button","expanding","masterRow","toggleClass","detailCell","toggle","correctIdx","classesRegEx","sectionRowIndex","_createHeaderCells","_appendLockedColumnContent","spanIdx","skipHiddenCount","colOffset","detach","lockedCells","_appendLockedColumnHeader","trFilter","hasFilterRow","filterCellOffset","filterCells","leafColumnsCount","filtercellCells","filterRow","existingFilterRow","syncHeight","hasLockedColumns","hasTHead","_prepareColumns","_updateCols","_retrieveFirstColumn","parentRow","childRow","totalColSpan","_updateHeaderCols","_updateLockedCols","_autoColumns","schema","toJSON","_rowsHtml","templates","_groupRowHtml","groupHeaderBuilder","skipColspan","footerData","groupHeaderTemplate","footerDefaults","_groupAggregatesDefaultObject","headerData","groupItems","showFooter","footerCount","relatedGroup","toHide","footersVisibility","groupsCount","pop","_firstDataItem","grouped","headerCellIndex","_setParentsVisibility","predicate","p","_resize","force","_isActiveInTable","isCurrentInHeader","action","_renderContent","_renderLockedContent","_restoreCurrent","contentResized","resetTouchEvents","_muteAngularRebind","cmd","_cleanupDetailItems","_angularGroupItems","_angularGroupFooterItems","rows2","containers","containersLength","heights","ExcelMixin","PDFMixin","_drawPDF_autoPageBreak","allPages","startingPage","draw","cont","_destructive","pageNumber","pageNum","drawing","drawDOM","clone","always","then","fail","err","renderPage","origBody","_initPDFProgress","_drawPDF","exportPage","doc","_drawPDFShadow","avoidLinks","done","args","paperSize","Group","pb","loading","kendoProgressBar","chunkCount","min","plugin"],"mappings":"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","file":"kendo.grid.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('util/text-metrics', ['kendo.core'], f);\n}(function () {\n (function ($) {\n window.kendo.util = window.kendo.util || {};\n var LRUCache = kendo.Class.extend({\n init: function (size) {\n this._size = size;\n this._length = 0;\n this._map = {};\n },\n put: function (key, value) {\n var map = this._map;\n var entry = {\n key: key,\n value: value\n };\n map[key] = entry;\n if (!this._head) {\n this._head = this._tail = entry;\n } else {\n this._tail.newer = entry;\n entry.older = this._tail;\n this._tail = entry;\n }\n if (this._length >= this._size) {\n map[this._head.key] = null;\n this._head = this._head.newer;\n this._head.older = null;\n } else {\n this._length++;\n }\n },\n get: function (key) {\n var entry = this._map[key];\n if (entry) {\n if (entry === this._head && entry !== this._tail) {\n this._head = entry.newer;\n this._head.older = null;\n }\n if (entry !== this._tail) {\n if (entry.older) {\n entry.older.newer = entry.newer;\n entry.newer.older = entry.older;\n }\n entry.older = this._tail;\n entry.newer = null;\n this._tail.newer = entry;\n this._tail = entry;\n }\n return entry.value;\n }\n }\n });\n function objectKey(object) {\n var parts = [];\n for (var key in object) {\n parts.push(key + object[key]);\n }\n return parts.sort().join('');\n }\n function hashKey(str) {\n var hash = 2166136261;\n for (var i = 0; i < str.length; ++i) {\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n hash ^= str.charCodeAt(i);\n }\n return hash >>> 0;\n }\n function zeroSize() {\n return {\n width: 0,\n height: 0,\n baseline: 0\n };\n }\n var DEFAULT_OPTIONS = { baselineMarkerSize: 1 };\n var defaultMeasureBox;\n if (typeof document !== 'undefined') {\n defaultMeasureBox = document.createElement('div');\n defaultMeasureBox.style.cssText = 'position: absolute !important; top: -4000px !important; width: auto !important; height: auto !important;' + 'padding: 0 !important; margin: 0 !important; border: 0 !important;' + 'line-height: normal !important; visibility: hidden !important; white-space: nowrap!important;';\n }\n var TextMetrics = kendo.Class.extend({\n init: function (options) {\n this._cache = new LRUCache(1000);\n this.options = $.extend({}, DEFAULT_OPTIONS, options);\n },\n measure: function (text, style, box) {\n if (!text) {\n return zeroSize();\n }\n var styleKey = objectKey(style);\n var cacheKey = hashKey(text + styleKey);\n var cachedResult = this._cache.get(cacheKey);\n if (cachedResult) {\n return cachedResult;\n }\n var size = zeroSize();\n var measureBox = box || defaultMeasureBox;\n var baselineMarker = this._baselineMarker().cloneNode(false);\n for (var key in style) {\n var value = style[key];\n if (typeof value !== 'undefined') {\n measureBox.style[key] = value;\n }\n }\n measureBox.textContent = text;\n measureBox.appendChild(baselineMarker);\n document.body.appendChild(measureBox);\n if (String(text).length) {\n size.width = measureBox.offsetWidth - this.options.baselineMarkerSize;\n size.height = measureBox.offsetHeight;\n size.baseline = baselineMarker.offsetTop + this.options.baselineMarkerSize;\n }\n if (size.width > 0 && size.height > 0) {\n this._cache.put(cacheKey, size);\n }\n measureBox.parentNode.removeChild(measureBox);\n return size;\n },\n _baselineMarker: function () {\n var marker = document.createElement('div');\n marker.style.cssText = 'display: inline-block; vertical-align: baseline;width: ' + this.options.baselineMarkerSize + 'px; height: ' + this.options.baselineMarkerSize + 'px;overflow: hidden;';\n return marker;\n }\n });\n TextMetrics.current = new TextMetrics();\n function measureText(text, style, measureBox) {\n return TextMetrics.current.measure(text, style, measureBox);\n }\n kendo.deepExtend(kendo.util, {\n LRUCache: LRUCache,\n TextMetrics: TextMetrics,\n measureText: measureText,\n objectKey: objectKey,\n hashKey: hashKey\n });\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.grid', [\n 'kendo.data',\n 'kendo.columnsorter',\n 'kendo.editable',\n 'kendo.window',\n 'kendo.filtermenu',\n 'kendo.columnmenu',\n 'kendo.groupable',\n 'kendo.pager',\n 'kendo.selectable',\n 'kendo.sortable',\n 'kendo.reorderable',\n 'kendo.resizable',\n 'kendo.mobile.actionsheet',\n 'kendo.mobile.pane',\n 'kendo.ooxml',\n 'kendo.excel',\n 'kendo.progressbar',\n 'kendo.pdf'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'grid',\n name: 'Grid',\n category: 'web',\n description: 'The Grid widget displays tabular data and offers rich support for interacting with data,including paging, sorting, grouping, and selection.',\n depends: [\n 'data',\n 'columnsorter'\n ],\n features: [\n {\n id: 'grid-editing',\n name: 'Editing',\n description: 'Support for record editing',\n depends: [\n 'editable',\n 'window'\n ]\n },\n {\n id: 'grid-filtering',\n name: 'Filtering',\n description: 'Support for record filtering',\n depends: ['filtermenu']\n },\n {\n id: 'grid-columnmenu',\n name: 'Column menu',\n description: 'Support for header column menu',\n depends: ['columnmenu']\n },\n {\n id: 'grid-grouping',\n name: 'Grouping',\n description: 'Support for grid grouping',\n depends: ['groupable']\n },\n {\n id: 'grid-filtercell',\n name: 'Row filter',\n description: 'Support for grid header filtering',\n depends: ['filtercell']\n },\n {\n id: 'grid-paging',\n name: 'Paging',\n description: 'Support for grid paging',\n depends: ['pager']\n },\n {\n id: 'grid-selection',\n name: 'Selection',\n description: 'Support for row selection',\n depends: ['selectable']\n },\n {\n id: 'grid-column-reorder',\n name: 'Column reordering',\n description: 'Support for column reordering',\n depends: ['reorderable']\n },\n {\n id: 'grid-column-resize',\n name: 'Column resizing',\n description: 'Support for column resizing',\n depends: ['resizable']\n },\n {\n id: 'grid-mobile',\n name: 'Grid adaptive rendering',\n description: 'Support for adaptive rendering',\n depends: [\n 'mobile.actionsheet',\n 'mobile.pane'\n ]\n },\n {\n id: 'grid-excel-export',\n name: 'Excel export',\n description: 'Export grid data as Excel spreadsheet',\n depends: ['excel']\n },\n {\n id: 'grid-pdf-export',\n name: 'PDF export',\n description: 'Export grid data as PDF',\n depends: [\n 'pdf',\n 'drawing',\n 'progressbar'\n ]\n }\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, DataSource = kendo.data.DataSource, tbodySupportsInnerHtml = kendo.support.tbodyInnerHtml, activeElement = kendo._activeElement, Widget = ui.Widget, outerWidth = kendo._outerWidth, outerHeight = kendo._outerHeight, keys = kendo.keys, isPlainObject = $.isPlainObject, extend = $.extend, map = $.map, grep = $.grep, isArray = $.isArray, inArray = $.inArray, push = Array.prototype.push, proxy = $.proxy, isFunction = kendo.isFunction, isEmptyObject = $.isEmptyObject, math = Math, PROGRESS = 'progress', ERROR = 'error', DATA_CELL = ':not(.k-group-cell):not(.k-hierarchy-cell):visible', SELECTION_CELL_SELECTOR = 'tbody>tr:not(.k-grouping-row):not(.k-detail-row):not(.k-group-footer) > td:not(.k-group-cell):not(.k-hierarchy-cell)', NAVROW = 'tr:not(.k-footer-template):visible', NAVCELL = ':not(.k-group-cell):not(.k-hierarchy-cell):visible', FIRSTNAVITEM = NAVROW + ':first>' + NAVCELL + ':first', HEADERCELLS = 'th.k-header:not(.k-group-cell):not(.k-hierarchy-cell)', NS = '.kendoGrid', EDIT = 'edit', SAVE = 'save', REMOVE = 'remove', DETAILINIT = 'detailInit', FILTERMENUINIT = 'filterMenuInit', COLUMNMENUINIT = 'columnMenuInit', CHANGE = 'change', COLUMNHIDE = 'columnHide', COLUMNSHOW = 'columnShow', SAVECHANGES = 'saveChanges', DATABOUND = 'dataBound', DETAILEXPAND = 'detailExpand', DETAILCOLLAPSE = 'detailCollapse', FOCUSED = 'k-state-focused', SELECTED = 'k-state-selected', NORECORDSCLASS = 'k-grid-norecords', COLUMNRESIZE = 'columnResize', COLUMNREORDER = 'columnReorder', COLUMNLOCK = 'columnLock', COLUMNUNLOCK = 'columnUnlock', NAVIGATE = 'navigate', CLICK = 'click', HEIGHT = 'height', TABINDEX = 'tabIndex', FUNCTION = 'function', STRING = 'string', DELETECONFIRM = 'Are you sure you want to delete this record?', NORECORDS = 'No records available.', CONFIRMDELETE = 'Delete', CANCELDELETE = 'Cancel', formatRegExp = /(\\}|\\#)/gi, templateHashRegExp = /#/gi, whitespaceRegExp = '[\\\\x20\\\\t\\\\r\\\\n\\\\f]', nonDataCellsRegExp = new RegExp('(^|' + whitespaceRegExp + ')' + '(k-group-cell|k-hierarchy-cell)' + '(' + whitespaceRegExp + '|$)'), filterRowRegExp = new RegExp('(^|' + whitespaceRegExp + ')' + '(k-filter-row)' + '(' + whitespaceRegExp + '|$)'), COMMANDBUTTONTMPL = '#=text#', isRtl = false, browser = kendo.support.browser, isIE7 = browser.msie && browser.version == 7, isIE8 = browser.msie && browser.version == 8;\n var VirtualScrollable = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n that._refreshHandler = proxy(that.refresh, that);\n that.setDataSource(options.dataSource);\n that.wrap();\n },\n setDataSource: function (dataSource) {\n var that = this;\n if (that.dataSource) {\n that.dataSource.unbind(CHANGE, that._refreshHandler);\n }\n that.dataSource = dataSource;\n that.dataSource.bind(CHANGE, that._refreshHandler);\n },\n options: {\n name: 'VirtualScrollable',\n itemHeight: $.noop,\n prefetch: true\n },\n destroy: function () {\n var that = this;\n Widget.fn.destroy.call(that);\n that.dataSource.unbind(CHANGE, that._refreshHandler);\n that.wrapper.add(that.verticalScrollbar).off(NS);\n if (that.drag) {\n that.drag.destroy();\n that.drag = null;\n }\n that.wrapper = that.element = that.verticalScrollbar = null;\n that._refreshHandler = null;\n },\n wrap: function () {\n var that = this, scrollbar = kendo.support.scrollbar() + 1, element = that.element, wrapper;\n element.css({\n width: 'auto',\n overflow: 'hidden'\n }).css(isRtl ? 'padding-left' : 'padding-right', scrollbar);\n that.content = element.children().first();\n wrapper = that.wrapper = that.content.wrap('
').parent().bind('DOMMouseScroll' + NS + ' mousewheel' + NS, proxy(that._wheelScroll, that));\n if (kendo.support.kineticScrollNeeded) {\n that.drag = new kendo.UserEvents(that.wrapper, {\n global: true,\n start: function (e) {\n e.sender.capture();\n },\n move: function (e) {\n that.verticalScrollbar.scrollTop(that.verticalScrollbar.scrollTop() - e.y.delta);\n wrapper.scrollLeft(wrapper.scrollLeft() - e.x.delta);\n e.preventDefault();\n }\n });\n }\n that.verticalScrollbar = $('
').css({ width: scrollbar }).appendTo(element).bind('scroll' + NS, proxy(that._scroll, that));\n },\n _wheelScroll: function (e) {\n if (e.ctrlKey) {\n return;\n }\n var scrollbar = this.verticalScrollbar, scrollTop = scrollbar.scrollTop(), delta = kendo.wheelDeltaY(e);\n if (delta && !(delta > 0 && scrollTop === 0) && !(delta < 0 && scrollTop + scrollbar[0].clientHeight == scrollbar[0].scrollHeight)) {\n e.preventDefault();\n this.verticalScrollbar.scrollTop(scrollTop + -delta);\n }\n },\n _scroll: function (e) {\n var that = this, delayLoading = !that.options.prefetch, scrollTop = e.currentTarget.scrollTop, dataSource = that.dataSource, rowHeight = that.itemHeight, skip = dataSource.skip() || 0, start = that._rangeStart || skip, height = that.element.innerHeight(), isScrollingUp = !!(that._scrollbarTop && that._scrollbarTop > scrollTop), firstItemIndex = math.max(math.floor(scrollTop / rowHeight), 0), lastItemIndex = math.max(firstItemIndex + math.floor(height / rowHeight), 0);\n that._scrollTop = scrollTop - start * rowHeight;\n that._scrollbarTop = scrollTop;\n that._scrolling = delayLoading;\n if (!that._fetch(firstItemIndex, lastItemIndex, isScrollingUp)) {\n that.wrapper[0].scrollTop = that._scrollTop;\n }\n if (delayLoading) {\n if (that._scrollingTimeout) {\n clearTimeout(that._scrollingTimeout);\n }\n that._scrollingTimeout = setTimeout(function () {\n that._scrolling = false;\n that._page(that._rangeStart, that.dataSource.take());\n }, 100);\n }\n },\n itemIndex: function (rowIndex) {\n var rangeStart = this._rangeStart || this.dataSource.skip() || 0;\n return rangeStart + rowIndex;\n },\n position: function (index) {\n var rangeStart = this._rangeStart || this.dataSource.skip() || 0;\n var pageSize = this.dataSource.pageSize();\n var result;\n if (index > rangeStart) {\n result = index - rangeStart + 1;\n } else {\n result = rangeStart - index - 1;\n }\n return result > pageSize ? pageSize : result;\n },\n scrollIntoView: function (row) {\n var container = this.wrapper[0];\n var containerHeight = container.clientHeight;\n var containerScroll = this._scrollTop || container.scrollTop;\n var elementOffset = row[0].offsetTop;\n var elementHeight = row[0].offsetHeight;\n if (containerScroll > elementOffset) {\n this.verticalScrollbar[0].scrollTop -= containerHeight / 2;\n } else if (elementOffset + elementHeight >= containerScroll + containerHeight) {\n this.verticalScrollbar[0].scrollTop += containerHeight / 2;\n }\n },\n _fetch: function (firstItemIndex, lastItemIndex, scrollingUp) {\n var that = this, dataSource = that.dataSource, itemHeight = that.itemHeight, take = dataSource.take(), rangeStart = that._rangeStart || dataSource.skip() || 0, currentSkip = math.floor(firstItemIndex / take) * take, fetching = false, prefetchAt = 0.33;\n if (firstItemIndex < rangeStart) {\n fetching = true;\n rangeStart = math.max(0, lastItemIndex - take);\n that._scrollTop = (firstItemIndex - rangeStart) * itemHeight;\n that._page(rangeStart, take);\n } else if (lastItemIndex >= rangeStart + take && !scrollingUp) {\n fetching = true;\n rangeStart = firstItemIndex;\n that._scrollTop = itemHeight;\n that._page(rangeStart, take);\n } else if (!that._fetching && that.options.prefetch) {\n if (firstItemIndex < currentSkip + take - take * prefetchAt && firstItemIndex > take) {\n dataSource.prefetch(currentSkip - take, take, $.noop);\n }\n if (lastItemIndex > currentSkip + take * prefetchAt) {\n dataSource.prefetch(currentSkip + take, take, $.noop);\n }\n }\n return fetching;\n },\n fetching: function () {\n return this._fetching;\n },\n _page: function (skip, take) {\n var that = this, delayLoading = !that.options.prefetch, dataSource = that.dataSource;\n clearTimeout(that._timeout);\n that._fetching = true;\n that._rangeStart = skip;\n if (dataSource.inRange(skip, take)) {\n dataSource.range(skip, take);\n } else {\n if (!delayLoading) {\n kendo.ui.progress(that.wrapper.parent(), true);\n }\n that._timeout = setTimeout(function () {\n if (!that._scrolling) {\n if (delayLoading) {\n kendo.ui.progress(that.wrapper.parent(), true);\n }\n dataSource.range(skip, take);\n }\n }, 100);\n }\n },\n repaintScrollbar: function () {\n var that = this, html = '', maxHeight = 250000, dataSource = that.dataSource, scrollbar = !kendo.support.kineticScrollNeeded ? kendo.support.scrollbar() : 0, wrapperElement = that.wrapper[0], totalHeight, idx, itemHeight;\n itemHeight = that.itemHeight = that.options.itemHeight() || 0;\n var addScrollBarHeight = wrapperElement.scrollWidth > wrapperElement.offsetWidth ? scrollbar : 0;\n totalHeight = dataSource.total() * itemHeight + addScrollBarHeight;\n for (idx = 0; idx < math.floor(totalHeight / maxHeight); idx++) {\n html += '
';\n }\n if (totalHeight % maxHeight) {\n html += '
';\n }\n that.verticalScrollbar.html(html);\n wrapperElement.scrollTop = that._scrollTop;\n },\n refresh: function () {\n var that = this, dataSource = that.dataSource, rangeStart = that._rangeStart;\n kendo.ui.progress(that.wrapper.parent(), false);\n clearTimeout(that._timeout);\n that.repaintScrollbar();\n if (that.drag) {\n that.drag.cancel();\n }\n if (rangeStart && !that._fetching) {\n that._rangeStart = dataSource.skip();\n if (dataSource.page() === 1) {\n that.verticalScrollbar[0].scrollTop = 0;\n }\n }\n that._fetching = false;\n }\n });\n function groupCells(count) {\n return new Array(count + 1).join(' ');\n }\n function stringifyAttributes(attributes) {\n var attr, result = ' ';\n if (attributes) {\n if (typeof attributes === STRING) {\n return attributes;\n }\n for (attr in attributes) {\n result += attr + '=\"' + attributes[attr] + '\"';\n }\n }\n return result;\n }\n var defaultCommands = {\n create: {\n text: 'Add new record',\n imageClass: 'k-i-plus',\n className: 'k-grid-add',\n iconClass: 'k-icon'\n },\n cancel: {\n text: 'Cancel changes',\n imageClass: 'k-i-cancel',\n className: 'k-grid-cancel-changes',\n iconClass: 'k-icon'\n },\n save: {\n text: 'Save changes',\n imageClass: 'k-i-check',\n className: 'k-grid-save-changes',\n iconClass: 'k-icon'\n },\n destroy: {\n text: 'Delete',\n imageClass: 'k-i-close',\n className: 'k-grid-delete',\n iconClass: 'k-icon'\n },\n edit: {\n text: 'Edit',\n imageClass: 'k-i-edit',\n className: 'k-grid-edit',\n iconClass: 'k-icon'\n },\n update: {\n text: 'Update',\n imageClass: 'k-i-check',\n className: 'k-primary k-grid-update',\n iconClass: 'k-icon'\n },\n canceledit: {\n text: 'Cancel',\n imageClass: 'k-i-cancel',\n className: 'k-grid-cancel',\n iconClass: 'k-icon'\n },\n excel: {\n text: 'Export to Excel',\n imageClass: 'k-i-file-excel',\n className: 'k-grid-excel',\n iconClass: 'k-icon'\n },\n pdf: {\n text: 'Export to PDF',\n imageClass: 'k-i-file-pdf',\n className: 'k-grid-pdf',\n iconClass: 'k-icon'\n }\n };\n function cursor(context, value) {\n $('th, th .k-grid-filter, th .k-link', context).add(document.body).css('cursor', value);\n }\n function reorder(selector, source, dest, before, count) {\n var sourceIndex = source;\n source = $();\n count = count || 1;\n for (var idx = 0; idx < count; idx++) {\n source = source.add(selector.eq(sourceIndex + idx));\n }\n if (typeof dest == 'number') {\n source[before ? 'insertBefore' : 'insertAfter'](selector.eq(dest));\n } else {\n source.appendTo(dest);\n }\n }\n function elements(lockedContent, content, filter) {\n return $(lockedContent).add(content).find(filter);\n }\n function attachCustomCommandEvent(context, container, commands) {\n var idx, length, command, commandName;\n commands = !isArray(commands) ? [commands] : commands;\n for (idx = 0, length = commands.length; idx < length; idx++) {\n command = commands[idx];\n if (isPlainObject(command) && command.click) {\n commandName = command.name || command.text;\n container.on(CLICK + NS, 'a.k-grid-' + (commandName || '').replace(/\\s/g, ''), { commandName: commandName }, proxy(command.click, context));\n }\n }\n }\n function normalizeColumns(columns, encoded, hide) {\n return map(columns, function (column) {\n column = typeof column === STRING ? { field: column } : column;\n var hidden;\n if (!isVisible(column) || hide) {\n column.attributes = addHiddenStyle(column.attributes);\n column.footerAttributes = addHiddenStyle(column.footerAttributes);\n column.headerAttributes = addHiddenStyle(column.headerAttributes);\n hidden = true;\n }\n if (column.columns) {\n column.columns = normalizeColumns(column.columns, encoded, hidden);\n }\n var uid = kendo.guid();\n column.headerAttributes = extend({ id: uid }, column.headerAttributes);\n return extend({\n encoded: encoded,\n hidden: hidden\n }, column);\n });\n }\n function columnParent(column, columns) {\n var parents = [];\n columnParents(column, columns, parents);\n return parents[parents.length - 1];\n }\n function columnParents(column, columns, parents) {\n parents = parents || [];\n for (var idx = 0; idx < columns.length; idx++) {\n if (column === columns[idx]) {\n return true;\n } else if (columns[idx].columns) {\n var inserted = parents.length;\n parents.push(columns[idx]);\n if (!columnParents(column, columns[idx].columns, parents)) {\n parents.splice(inserted, parents.length - inserted);\n } else {\n return true;\n }\n }\n }\n return false;\n }\n function setColumnVisibility(column, visible) {\n var method = visible ? removeHiddenStyle : addHiddenStyle;\n column.hidden = !visible;\n column.attributes = method(column.attributes);\n column.footerAttributes = method(column.footerAttributes);\n column.headerAttributes = method(column.headerAttributes);\n }\n function isCellVisible() {\n return this.style.display !== 'none';\n }\n function isVisible(column) {\n return visibleColumns([column]).length > 0;\n }\n function visibleColumns(columns) {\n return grep(columns, function (column) {\n var result = !column.hidden;\n if (result && column.columns) {\n result = visibleColumns(column.columns).length > 0;\n }\n return result;\n });\n }\n function toJQuery(elements) {\n return $(elements).map(function () {\n return this.toArray();\n });\n }\n function updateCellRowSpan(cell, columns, sourceLockedColumnsCount) {\n var lockedColumnDepth = depth(lockedColumns(columns));\n var nonLockedColumnDepth = depth(nonLockedColumns(columns));\n var rowSpan = cell.rowSpan;\n if (sourceLockedColumnsCount) {\n if (lockedColumnDepth > nonLockedColumnDepth) {\n cell.rowSpan = rowSpan - (lockedColumnDepth - nonLockedColumnDepth) || 1;\n } else {\n cell.rowSpan = rowSpan + (nonLockedColumnDepth - lockedColumnDepth);\n }\n } else {\n if (lockedColumnDepth > nonLockedColumnDepth) {\n cell.rowSpan = rowSpan + (lockedColumnDepth - nonLockedColumnDepth);\n } else {\n cell.rowSpan = rowSpan - (nonLockedColumnDepth - lockedColumnDepth) || 1;\n }\n }\n }\n function moveCellsBetweenContainers(sources, target, leafs, columns, container, destination, groups) {\n var sourcesDepth = depth(sources);\n var targetDepth = depth([target]);\n if (sourcesDepth > targetDepth) {\n var groupCells = new Array(groups + 1).join(' ');\n var rows = destination.children(':not(.k-filter-row)');\n $(new Array(sourcesDepth - targetDepth + 1).join('' + groupCells + '')).insertAfter(rows.last());\n }\n addRowSpanValue(destination, sourcesDepth - targetDepth);\n moveCells(leafs, columns, container, destination);\n }\n function updateCellIndex(thead, columns, offset) {\n offset = offset || 0;\n var position;\n var cell;\n var allColumns = columns;\n columns = leafColumns(columns);\n var cells = {};\n var rows = thead.find('>tr:not(.k-filter-row)');\n var filter = function () {\n var el = $(this);\n return !el.hasClass('k-group-cell') && !el.hasClass('k-hierarchy-cell');\n };\n for (var idx = 0, length = columns.length; idx < length; idx++) {\n position = columnPosition(columns[idx], allColumns);\n if (!cells[position.row]) {\n cells[position.row] = rows.eq(position.row).find('.k-header').filter(filter);\n }\n cell = cells[position.row].eq(position.cell);\n cell.attr(kendo.attr('index'), offset + idx);\n }\n return columns.length;\n }\n function depth(columns) {\n var result = 1;\n var max = 0;\n for (var idx = 0; idx < columns.length; idx++) {\n if (columns[idx].columns) {\n var temp = depth(columns[idx].columns);\n if (temp > max) {\n max = temp;\n }\n }\n }\n return result + max;\n }\n function moveCells(leafs, columns, container, destination) {\n var sourcePosition = columnVisiblePosition(leafs[0], columns);\n var ths = container.find('>tr:not(.k-filter-row):eq(' + sourcePosition.row + ')>th.k-header');\n var t = $();\n var sourceIndex = sourcePosition.cell;\n var idx;\n for (idx = 0; idx < leafs.length; idx++) {\n t = t.add(ths.eq(sourceIndex + idx));\n }\n destination.find('>tr:not(.k-filter-row)').eq(sourcePosition.row).append(t);\n var children = [];\n for (idx = 0; idx < leafs.length; idx++) {\n if (leafs[idx].columns) {\n children = children.concat(leafs[idx].columns);\n }\n }\n if (children.length) {\n moveCells(children, columns, container, destination);\n }\n }\n function columnPosition(column, columns, row, cellCounts) {\n var result;\n var idx;\n row = row || 0;\n cellCounts = cellCounts || {};\n cellCounts[row] = cellCounts[row] || 0;\n for (idx = 0; idx < columns.length; idx++) {\n if (columns[idx] == column) {\n result = {\n cell: cellCounts[row],\n row: row\n };\n break;\n } else if (columns[idx].columns) {\n result = columnPosition(column, columns[idx].columns, row + 1, cellCounts);\n if (result) {\n break;\n }\n }\n cellCounts[row]++;\n }\n return result;\n }\n function findParentColumnWithChildren(columns, index, source, rtl) {\n var target;\n var locked = source.locked;\n do {\n target = columns[index];\n index += rtl ? 1 : -1;\n } while (target && index > -1 && index < columns.length && target != source && !target.columns && target.locked == locked);\n return target;\n }\n function findReorderTarget(columns, target, source, before) {\n if (target.columns) {\n target = target.columns;\n return target[before ? 0 : target.length - 1];\n } else {\n var parent = columnParent(target, columns);\n var parentColumns;\n if (parent) {\n parentColumns = parent.columns;\n } else {\n parentColumns = columns;\n }\n var index = inArray(target, parentColumns);\n if (index === 0 && before) {\n index++;\n } else if (index == parentColumns.length - 1 && !before) {\n index--;\n } else if (index > 0 || index === 0 && !before) {\n index += before ? -1 : 1;\n }\n var sourceIndex = inArray(source, parentColumns);\n target = findParentColumnWithChildren(parentColumns, index, source, sourceIndex > index);\n if (target && target != source && target.columns) {\n return findReorderTarget(columns, target, source, before);\n }\n }\n return null;\n }\n function columnVisiblePosition(column, columns, row, cellCounts) {\n var result;\n var idx;\n row = row || 0;\n cellCounts = cellCounts || {};\n cellCounts[row] = cellCounts[row] || 0;\n for (idx = 0; idx < columns.length; idx++) {\n if (columns[idx] == column) {\n result = {\n cell: cellCounts[row],\n row: row\n };\n break;\n } else if (columns[idx].columns) {\n result = columnVisiblePosition(column, columns[idx].columns, row + 1, cellCounts);\n if (result) {\n break;\n }\n }\n if (!columns[idx].hidden) {\n cellCounts[row]++;\n }\n }\n return result;\n }\n function flatColumnsInDomOrder(columns) {\n var result = flatColumns(lockedColumns(columns));\n return result.concat(flatColumns(nonLockedColumns(columns)));\n }\n function flatColumns(columns) {\n var result = [];\n var children = [];\n for (var idx = 0; idx < columns.length; idx++) {\n result.push(columns[idx]);\n if (columns[idx].columns) {\n children = children.concat(columns[idx].columns);\n }\n }\n if (children.length) {\n result = result.concat(flatColumns(children));\n }\n return result;\n }\n function hiddenLeafColumnsCount(columns) {\n var counter = 0;\n var column;\n for (var idx = 0; idx < columns.length; idx++) {\n column = columns[idx];\n if (column.columns) {\n counter += hiddenLeafColumnsCount(column.columns);\n } else if (column.hidden) {\n counter++;\n }\n }\n return counter;\n }\n function columnsWidth(cols) {\n var colWidth, width = 0;\n for (var idx = 0, length = cols.length; idx < length; idx++) {\n colWidth = cols[idx].style.width;\n if (colWidth && colWidth.indexOf('%') == -1) {\n width += parseInt(colWidth, 10);\n }\n }\n return width;\n }\n function removeRowSpanValue(container, count) {\n var cells = container.find('tr:not(.k-filter-row) th:not(.k-group-cell,.k-hierarchy-cell)');\n var rowSpan;\n for (var idx = 0; idx < cells.length; idx++) {\n rowSpan = cells[idx].rowSpan;\n if (rowSpan > 1) {\n cells[idx].rowSpan = rowSpan - count || 1;\n }\n }\n }\n function addRowSpanValue(container, count) {\n var cells = container.find('tr:not(.k-filter-row) th:not(.k-group-cell,.k-hierarchy-cell)');\n for (var idx = 0; idx < cells.length; idx++) {\n cells[idx].rowSpan += count;\n }\n }\n function removeEmptyRows(container) {\n var rows = container.find('tr:not(.k-filter-row)');\n var emptyRowsCount = rows.filter(function () {\n return !$(this).children().length;\n }).remove().length;\n var cells = rows.find('th:not(.k-group-cell,.k-hierarchy-cell)');\n for (var idx = 0; idx < cells.length; idx++) {\n if (cells[idx].rowSpan > 1) {\n cells[idx].rowSpan -= emptyRowsCount;\n }\n }\n return rows.length - emptyRowsCount;\n }\n function mapColumnToCellRows(columns, cells, rows, rowIndex, offset) {\n var idx, row, length, children = [];\n for (idx = 0, length = columns.length; idx < length; idx++) {\n row = rows[rowIndex] || [];\n row.push(cells.eq(offset + idx));\n rows[rowIndex] = row;\n if (columns[idx].columns) {\n children = children.concat(columns[idx].columns);\n }\n }\n if (children.length) {\n mapColumnToCellRows(children, cells, rows, rowIndex + 1, offset + columns.length);\n }\n }\n function lockedColumns(columns) {\n return grep(columns, function (column) {\n return column.locked;\n });\n }\n function nonLockedColumns(columns) {\n return grep(columns, function (column) {\n return !column.locked;\n });\n }\n function visibleNonLockedColumns(columns) {\n return grep(columns, function (column) {\n return !column.locked && isVisible(column);\n });\n }\n function visibleLockedColumns(columns) {\n return grep(columns, function (column) {\n return column.locked && isVisible(column);\n });\n }\n function visibleLeafColumns(columns) {\n var result = [];\n for (var idx = 0; idx < columns.length; idx++) {\n if (columns[idx].hidden) {\n continue;\n }\n if (columns[idx].columns) {\n result = result.concat(visibleLeafColumns(columns[idx].columns));\n } else {\n result.push(columns[idx]);\n }\n }\n return result;\n }\n function leafColumns(columns) {\n var result = [];\n for (var idx = 0; idx < columns.length; idx++) {\n if (!columns[idx].columns) {\n result.push(columns[idx]);\n continue;\n }\n result = result.concat(leafColumns(columns[idx].columns));\n }\n return result;\n }\n function leafDataCells(container) {\n var rows = container.find('>tr:not(.k-filter-row)');\n var filter = function () {\n var el = $(this);\n return !el.hasClass('k-group-cell') && !el.hasClass('k-hierarchy-cell');\n };\n var cells = $();\n if (rows.length > 1) {\n cells = rows.find('th').filter(filter).filter(function () {\n return this.rowSpan > 1;\n });\n }\n cells = cells.add(rows.last().find('th').filter(filter));\n var indexAttr = kendo.attr('index');\n cells.sort(function (a, b) {\n a = $(a);\n b = $(b);\n var indexA = a.attr(indexAttr);\n var indexB = b.attr(indexAttr);\n if (indexA === undefined) {\n indexA = $(a).index();\n }\n if (indexB === undefined) {\n indexB = $(b).index();\n }\n indexA = parseInt(indexA, 10);\n indexB = parseInt(indexB, 10);\n return indexA > indexB ? 1 : indexA < indexB ? -1 : 0;\n });\n return cells;\n }\n function parentColumnsCells(cell) {\n var container = cell.closest('table');\n var result = $().add(cell);\n var row = cell.closest('tr');\n var headerRows = container.find('tr:not(.k-filter-row)');\n var level = headerRows.index(row);\n if (level > 0) {\n var parent = headerRows.eq(level - 1);\n var parentCellsWithChildren = parent.find('th:not(.k-group-cell,.k-hierarchy-cell)').filter(function () {\n return !$(this).attr('rowspan');\n });\n var offset = 0;\n var index = row.find('th:not(.k-group-cell,.k-hierarchy-cell)').index(cell);\n var prevCells = cell.prevAll(':not(.k-group-cell,.k-hierarchy-cell)').filter(function () {\n return this.colSpan > 1;\n });\n for (var idx = 0; idx < prevCells.length; idx++) {\n offset += prevCells[idx].colSpan || 1;\n }\n index += Math.max(offset - 1, 0);\n offset = 0;\n for (idx = 0; idx < parentCellsWithChildren.length; idx++) {\n var parentCell = parentCellsWithChildren.eq(idx);\n if (parentCell.attr('colSpan')) {\n offset += parentCell[0].colSpan;\n } else {\n offset += 1;\n }\n if (index >= idx && index < offset) {\n result = parentColumnsCells(parentCell).add(result);\n break;\n }\n }\n }\n return result;\n }\n function childColumnsCells(cell) {\n var container = cell.closest('thead');\n var result = $().add(cell);\n var row = cell.closest('tr');\n var headerRows = container.find('tr:not(.k-filter-row)');\n var level = headerRows.index(row) + cell[0].rowSpan;\n var colSpanAttr = kendo.attr('colspan');\n if (level <= headerRows.length - 1) {\n var child = row.next();\n var prevCells = cell.prevAll(':not(.k-group-cell,.k-hierarchy-cell)');\n var idx;\n prevCells = prevCells.filter(function () {\n return !this.rowSpan || this.rowSpan === 1;\n });\n var offset = 0;\n for (idx = 0; idx < prevCells.length; idx++) {\n offset += parseInt(prevCells.eq(idx).attr(colSpanAttr), 10) || 1;\n }\n var cells = child.find('th:not(.k-group-cell,.k-hierarchy-cell)');\n var colSpan = parseInt(cell.attr(colSpanAttr), 10) || 1;\n idx = 0;\n while (idx < colSpan) {\n child = cells.eq(idx + offset);\n result = result.add(childColumnsCells(child));\n var value = parseInt(child.attr(colSpanAttr), 10);\n if (value > 1) {\n colSpan -= value - 1;\n }\n idx++;\n }\n }\n return result;\n }\n function appendContent(tbody, table, html, empty) {\n var placeholder, tmp = tbody;\n if (empty) {\n tbody.empty();\n }\n if (tbodySupportsInnerHtml) {\n tbody[0].innerHTML = html;\n } else {\n placeholder = document.createElement('div');\n placeholder.innerHTML = '' + html + '
';\n tbody = placeholder.firstChild.firstChild;\n table[0].replaceChild(tbody, tmp[0]);\n tbody = $(tbody);\n }\n return tbody;\n }\n function addHiddenStyle(attr) {\n attr = attr || {};\n var style = attr.style;\n if (!style) {\n style = 'display:none';\n } else {\n style = style.replace(/((.*)?display)(.*)?:([^;]*)/i, '$1:none');\n if (style === attr.style) {\n style = style.replace(/(.*)?/i, 'display:none;$1');\n }\n }\n return extend({}, attr, { style: style });\n }\n function removeHiddenStyle(attr) {\n attr = attr || {};\n var style = attr.style;\n if (style) {\n attr.style = style.replace(/(display\\s*:\\s*none\\s*;?)*/gi, '');\n }\n return attr;\n }\n function normalizeCols(table, visibleColumns, hasDetails, groups) {\n var colgroup = table.find('>colgroup'), width, cols = map(visibleColumns, function (column) {\n width = column.width;\n if (width && parseInt(width, 10) !== 0) {\n return kendo.format('', typeof width === STRING ? width : width + 'px');\n }\n return '';\n });\n if (hasDetails || colgroup.find('.k-hierarchy-col').length) {\n cols.splice(0, 0, '');\n }\n if (colgroup.length) {\n colgroup.remove();\n }\n colgroup = $(new Array(groups + 1).join('') + cols.join(''));\n if (!colgroup.is('colgroup')) {\n colgroup = $('').append(colgroup);\n }\n table.prepend(colgroup);\n if (browser.msie && browser.version == 8) {\n table.css('display', 'inline-table');\n window.setTimeout(function () {\n table.css('display', '');\n }, 1);\n }\n }\n function normalizeHeaderCells(container, columns) {\n var lastIndex = 0;\n var idx, len;\n var th = container.find('th:not(.k-group-cell)');\n for (idx = 0, len = columns.length; idx < len; idx++) {\n if (columns[idx].locked) {\n th.eq(idx).insertBefore(th.eq(lastIndex));\n th = container.find('th:not(.k-group-cell)');\n lastIndex++;\n }\n }\n }\n function convertToObject(array) {\n var result = {}, item, idx, length;\n for (idx = 0, length = array.length; idx < length; idx++) {\n item = array[idx];\n result[item.value] = item.text;\n }\n return result;\n }\n function formatGroupValue(value, format, columnValues, encoded) {\n var isForeignKey = columnValues && columnValues.length && isPlainObject(columnValues[0]) && 'value' in columnValues[0], groupValue = isForeignKey ? convertToObject(columnValues)[value] : value;\n groupValue = groupValue != null ? groupValue : '';\n return format ? kendo.format(format, groupValue) : encoded === false ? groupValue : kendo.htmlEncode(groupValue);\n }\n function setCellVisibility(cells, index, visible) {\n var pad = 0, state, cell = cells[pad];\n while (cell) {\n state = visible ? true : cell.style.display !== 'none';\n if (state && !nonDataCellsRegExp.test(cell.className) && --index < 0) {\n cell.style.display = visible ? '' : 'none';\n break;\n }\n cell = cells[++pad];\n }\n }\n function hideColumnCells(rows, columnIndex) {\n var idx = 0, length = rows.length, cell, row;\n for (; idx < length; idx += 1) {\n row = rows.eq(idx);\n if (row.is('.k-grouping-row,.k-detail-row')) {\n cell = row.children(':not(.k-group-cell):first,.k-detail-cell').last();\n cell.attr('colspan', parseInt(cell.attr('colspan'), 10) - 1);\n } else {\n if (row.hasClass('k-grid-edit-row') && (cell = row.children('.k-edit-container')[0])) {\n cell = $(cell);\n cell.attr('colspan', parseInt(cell.attr('colspan'), 10) - 1);\n cell.find('col').eq(columnIndex).remove();\n row = cell.find('tr:first');\n }\n setCellVisibility(row[0].cells, columnIndex, false);\n }\n }\n }\n function groupRows(data) {\n var result = [];\n var item;\n for (var idx = 0; idx < data.length; idx++) {\n item = data[idx];\n if (!('field' in item && 'value' in item && 'items' in item)) {\n break;\n }\n result.push(item);\n if (item.hasSubgroups) {\n result = result.concat(groupRows(item.items));\n }\n }\n return result;\n }\n function groupFooters(data) {\n var result = [];\n var item;\n for (var idx = 0; idx < data.length; idx++) {\n item = data[idx];\n if (!('field' in item && 'value' in item && 'items' in item)) {\n break;\n }\n if (item.hasSubgroups) {\n result = result.concat(groupFooters(item.items));\n }\n result.push(item.aggregates);\n }\n return result;\n }\n function showColumnCells(rows, columnIndex) {\n var idx = 0, length = rows.length, cell, row, columns;\n for (; idx < length; idx += 1) {\n row = rows.eq(idx);\n if (row.is('.k-grouping-row,.k-detail-row')) {\n cell = row.children(':not(.k-group-cell):first,.k-detail-cell').last();\n cell.attr('colspan', parseInt(cell.attr('colspan'), 10) + 1);\n } else {\n if (row.hasClass('k-grid-edit-row') && (cell = row.children('.k-edit-container')[0])) {\n cell = $(cell);\n cell.attr('colspan', parseInt(cell.attr('colspan'), 10) + 1);\n normalizeCols(cell.find('>form>table'), visibleColumns(columns), false, 0);\n row = cell.find('tr:first');\n }\n setCellVisibility(row[0].cells, columnIndex, true);\n }\n }\n }\n function updateColspan(toAdd, toRemove, num) {\n num = num || 1;\n var item, idx, length;\n for (idx = 0, length = toAdd.length; idx < length; idx++) {\n item = toAdd.eq(idx).children().last();\n item.attr('colspan', parseInt(item.attr('colspan'), 10) + num);\n item = toRemove.eq(idx).children().last();\n item.attr('colspan', parseInt(item.attr('colspan'), 10) - num);\n }\n }\n function tableWidth(table) {\n var idx, length, width = 0;\n var cols = table.find('>colgroup>col');\n for (idx = 0, length = cols.length; idx < length; idx += 1) {\n width += parseInt(cols[idx].style.width, 10);\n }\n return width;\n }\n var Grid = kendo.ui.DataBoundWidget.extend({\n init: function (element, options, events) {\n var that = this;\n options = isArray(options) ? { dataSource: options } : options;\n Widget.fn.init.call(that, element, options);\n if (events) {\n that._events = events;\n }\n isRtl = kendo.support.isRtl(element);\n that._element();\n that._aria();\n that._columns(that.options.columns);\n that._dataSource();\n that._tbody();\n that._pageable();\n that._thead();\n that._groupable();\n that._toolbar();\n that._setContentHeight();\n that._templates();\n that._navigatable();\n that._selectable();\n that._clipboard();\n that._details();\n that._editable();\n that._attachCustomCommandsEvent();\n that._minScreenSupport();\n if (that.options.autoBind) {\n that.dataSource.fetch();\n } else {\n that._group = that._groups() > 0;\n that._footer();\n }\n if (that.lockedContent) {\n that.wrapper.addClass('k-grid-lockedcolumns');\n that._resizeHandler = function () {\n that.resize();\n };\n $(window).on('resize' + NS, that._resizeHandler);\n }\n kendo.notify(that);\n },\n events: [\n CHANGE,\n 'dataBinding',\n 'cancel',\n DATABOUND,\n DETAILEXPAND,\n DETAILCOLLAPSE,\n DETAILINIT,\n FILTERMENUINIT,\n COLUMNMENUINIT,\n EDIT,\n SAVE,\n REMOVE,\n SAVECHANGES,\n COLUMNRESIZE,\n COLUMNREORDER,\n COLUMNSHOW,\n COLUMNHIDE,\n COLUMNLOCK,\n COLUMNUNLOCK,\n NAVIGATE,\n 'page',\n 'sort',\n 'filter',\n 'group'\n ],\n setDataSource: function (dataSource) {\n var that = this;\n var scrollable = that.options.scrollable;\n that.options.dataSource = dataSource;\n that._dataSource();\n that._pageable();\n that._thead();\n if (scrollable) {\n if (scrollable.virtual) {\n that.content.find('>.k-virtual-scrollable-wrap').scrollLeft(0);\n } else {\n that.content.scrollLeft(0);\n }\n }\n if (that.options.groupable) {\n that._groupable();\n }\n if (that.virtualScrollable) {\n that.virtualScrollable.setDataSource(that.options.dataSource);\n }\n if (that.options.navigatable) {\n that._navigatable();\n }\n if (that.options.selectable) {\n that._selectable();\n }\n if (that.options.autoBind) {\n dataSource.fetch();\n }\n },\n options: {\n name: 'Grid',\n columns: [],\n toolbar: null,\n autoBind: true,\n filterable: false,\n scrollable: true,\n sortable: false,\n selectable: false,\n allowCopy: false,\n navigatable: false,\n pageable: false,\n editable: false,\n groupable: false,\n rowTemplate: '',\n altRowTemplate: '',\n noRecords: false,\n dataSource: {},\n height: null,\n resizable: false,\n reorderable: false,\n columnMenu: false,\n detailTemplate: null,\n columnResizeHandleWidth: 3,\n mobile: '',\n messages: {\n editable: {\n cancelDelete: CANCELDELETE,\n confirmation: DELETECONFIRM,\n confirmDelete: CONFIRMDELETE\n },\n commands: {\n create: defaultCommands.create.text,\n cancel: defaultCommands.cancel.text,\n save: defaultCommands.save.text,\n destroy: defaultCommands.destroy.text,\n edit: defaultCommands.edit.text,\n update: defaultCommands.update.text,\n canceledit: defaultCommands.canceledit.text,\n excel: defaultCommands.excel.text,\n pdf: defaultCommands.pdf.text\n },\n noRecords: NORECORDS\n }\n },\n destroy: function () {\n var that = this, element;\n that._angularItems('cleanup');\n that._destroyColumnAttachments();\n Widget.fn.destroy.call(that);\n this._navigatableTables = null;\n if (that._resizeHandler) {\n $(window).off('resize' + NS, that._resizeHandler);\n }\n if (that.pager && that.pager.element) {\n that.pager.destroy();\n }\n that.pager = null;\n if (that.groupable && that.groupable.element) {\n that.groupable.element.kendoGroupable('destroy');\n }\n that.groupable = null;\n if (that.options.reorderable) {\n that.wrapper.data('kendoReorderable').destroy();\n }\n if (that.selectable && that.selectable.element) {\n that.selectable.destroy();\n that.clearArea();\n if (that.copyHandler) {\n that.wrapper.off('keydown', that.copyHandler);\n that.unbind(that.copyHandler);\n }\n if (that.updateClipBoardState) {\n that.unbind(that.updateClipBoardState);\n that.updateClipBoardState = null;\n }\n if (that.clearAreaHandler) {\n that.wrapper.off('keyup', that.clearAreaHandler);\n }\n }\n that.selectable = null;\n if (that.resizable) {\n that.resizable.destroy();\n if (that._resizeUserEvents) {\n if (that._resizeHandleDocumentClickHandler) {\n $(document).off('click', that._resizeHandleDocumentClickHandler);\n }\n that._resizeUserEvents.destroy();\n that._resizeUserEvents = null;\n }\n that.resizable = null;\n }\n if (that.virtualScrollable && that.virtualScrollable.element) {\n that.virtualScrollable.destroy();\n }\n that.virtualScrollable = null;\n that._destroyEditable();\n if (that.dataSource) {\n that.dataSource.unbind(CHANGE, that._refreshHandler).unbind(PROGRESS, that._progressHandler).unbind(ERROR, that._errorHandler);\n that._refreshHandler = that._progressHandler = that._errorHandler = null;\n }\n element = that.element.add(that.wrapper).add(that.table).add(that.thead).add(that.wrapper.find('>.k-grid-toolbar'));\n if (that.content) {\n element = element.add(that.content).add(that.content.find('>.k-virtual-scrollable-wrap'));\n }\n if (that.lockedHeader) {\n that._removeLockedContainers();\n }\n if (that.pane) {\n that.pane.destroy();\n }\n if (that.minScreenResizeHandler) {\n $(window).off('resize', that.minScreenResizeHandler);\n }\n if (that._draggableInstance && that._draggableInstance.element) {\n that._draggableInstance.destroy();\n }\n that._draggableInstance = null;\n element.off(NS);\n kendo.destroy(that.wrapper);\n that.rowTemplate = that.altRowTemplate = that.lockedRowTemplate = that.lockedAltRowTemplate = that.detailTemplate = that.footerTemplate = that.groupFooterTemplate = that.lockedGroupFooterTemplate = that.noRecordsTemplate = null;\n that.scrollables = that.thead = that.tbody = that.element = that.table = that.content = that.footer = that.wrapper = that.lockedTable = that.lockedContent = that.lockedHeader = that.lockedFooter = that._groupableClickHandler = that._setContentWidthHandler = null;\n },\n getOptions: function () {\n var options = this.options;\n options.dataSource = null;\n var result = extend(true, {}, this.options);\n result.columns = kendo.deepExtend([], this.columns);\n var dataSource = this.dataSource;\n var initialData = dataSource.options.data && dataSource._data;\n dataSource.options.data = null;\n result.dataSource = $.extend(true, {}, dataSource.options);\n dataSource.options.data = initialData;\n result.dataSource.data = initialData;\n result.dataSource.page = dataSource.page();\n result.dataSource.filter = dataSource.filter();\n result.dataSource.pageSize = dataSource.pageSize();\n result.dataSource.sort = dataSource.sort();\n result.dataSource.group = dataSource.group();\n result.dataSource.aggregate = dataSource.aggregate();\n if (result.dataSource.transport) {\n result.dataSource.transport.dataSource = null;\n }\n if (result.pageable && result.pageable.pageSize) {\n result.pageable.pageSize = dataSource.pageSize();\n }\n result.$angular = undefined;\n return result;\n },\n setOptions: function (options) {\n var currentOptions = this.getOptions();\n kendo.deepExtend(currentOptions, options);\n if (!options.dataSource) {\n currentOptions.dataSource = this.dataSource;\n }\n var wrapper = this.wrapper;\n var events = this._events;\n var element = this.element;\n this.destroy();\n this.options = null;\n if (this._isMobile) {\n var mobileWrapper = wrapper.closest(kendo.roleSelector('pane')).parent();\n mobileWrapper.after(wrapper);\n mobileWrapper.remove();\n wrapper.removeClass('k-grid-mobile');\n }\n if (wrapper[0] !== element[0]) {\n wrapper.before(element);\n wrapper.remove();\n }\n element.empty();\n this.init(element, currentOptions, events);\n this._setEvents(currentOptions);\n },\n items: function () {\n if (this.lockedContent) {\n return this._items(this.tbody).add(this._items(this.lockedTable.children('tbody')));\n } else {\n return this._items(this.tbody);\n }\n },\n _items: function (container) {\n return container.children().filter(function () {\n var tr = $(this);\n return !tr.hasClass('k-grouping-row') && !tr.hasClass('k-detail-row') && !tr.hasClass('k-group-footer');\n });\n },\n dataItems: function () {\n var dataItems = kendo.ui.DataBoundWidget.fn.dataItems.call(this);\n if (this.lockedContent) {\n var n = dataItems.length, tmp = new Array(2 * n);\n for (var i = n; --i >= 0;) {\n tmp[i] = tmp[i + n] = dataItems[i];\n }\n dataItems = tmp;\n }\n return dataItems;\n },\n _destroyColumnAttachments: function () {\n var that = this;\n that.resizeHandle = null;\n if (!that.thead) {\n return;\n }\n this.angular('cleanup', function () {\n return { elements: that.thead.get() };\n });\n that.thead.add(that.lockedHeader).find('th').each(function () {\n var th = $(this), filterMenu = th.data('kendoFilterMenu'), sortable = th.data('kendoColumnSorter'), columnMenu = th.data('kendoColumnMenu');\n if (filterMenu) {\n filterMenu.destroy();\n }\n if (sortable) {\n sortable.destroy();\n }\n if (columnMenu) {\n columnMenu.destroy();\n }\n });\n },\n _attachCustomCommandsEvent: function () {\n var that = this, columns = leafColumns(that.columns || []), command, idx, length;\n for (idx = 0, length = columns.length; idx < length; idx++) {\n command = columns[idx].command;\n if (command) {\n attachCustomCommandEvent(that, that.wrapper, command);\n }\n }\n },\n _aria: function () {\n var id = this.element.attr('id') || 'aria';\n if (id) {\n this._cellId = id + '_active_cell';\n }\n },\n _element: function () {\n var that = this, table = that.element;\n if (!table.is('table')) {\n if (that.options.scrollable) {\n table = that.element.find('> .k-grid-content > table');\n } else {\n table = that.element.children('table');\n }\n if (!table.length) {\n table = $('').appendTo(that.element);\n }\n }\n if (isIE7) {\n table.attr('cellspacing', 0);\n }\n that.table = table.attr('role', that._hasDetails() ? 'treegrid' : 'grid');\n that._wrapper();\n },\n _createResizeHandle: function (container, th) {\n var that = this;\n var indicatorWidth = that.options.columnResizeHandleWidth;\n var scrollable = that.options.scrollable;\n var resizeHandle = that.resizeHandle;\n var groups = this._groups();\n var left;\n if (resizeHandle && that.lockedContent && resizeHandle.data('th')[0] !== th[0]) {\n resizeHandle.off(NS).remove();\n resizeHandle = null;\n }\n if (!resizeHandle) {\n resizeHandle = that.resizeHandle = $('
');\n container.append(resizeHandle);\n }\n if (!isRtl) {\n left = th[0].offsetWidth;\n var cells = leafDataCells(th.closest('thead')).filter(':visible');\n for (var idx = 0; idx < cells.length; idx++) {\n if (cells[idx] == th[0]) {\n break;\n }\n left += cells[idx].offsetWidth;\n }\n if (groups > 0) {\n left += outerWidth(container.find('.k-group-cell:first')) * groups;\n }\n if (that._hasDetails()) {\n left += outerWidth(container.find('.k-hierarchy-cell:first'));\n }\n } else {\n left = th.position().left;\n if (scrollable) {\n var headerWrap = th.closest('.k-grid-header-wrap, .k-grid-header-locked'), ieCorrection = browser.msie ? headerWrap.scrollLeft() : 0, webkitCorrection = browser.webkit ? headerWrap[0].scrollWidth - headerWrap[0].offsetWidth - headerWrap.scrollLeft() : 0, firefoxCorrection = browser.mozilla ? headerWrap[0].scrollWidth - headerWrap[0].offsetWidth - (headerWrap[0].scrollWidth - headerWrap[0].offsetWidth - headerWrap.scrollLeft()) : 0;\n left -= webkitCorrection - firefoxCorrection + ieCorrection;\n }\n }\n resizeHandle.css({\n top: th.position().top,\n left: left - indicatorWidth,\n height: outerHeight(th),\n width: indicatorWidth * 3\n }).data('th', th).show();\n resizeHandle.off('dblclick' + NS).on('dblclick' + NS, function () {\n that._autoFitLeafColumn(th.data('index'));\n });\n },\n _positionColumnResizeHandle: function () {\n var that = this, indicatorWidth = that.options.columnResizeHandleWidth, lockedHead = that.lockedHeader ? that.lockedHeader.find('thead:first') : $();\n that.thead.add(lockedHead).on('mousemove' + NS, 'th', function (e) {\n var th = $(this);\n if (th.hasClass('k-group-cell') || th.hasClass('k-hierarchy-cell')) {\n return;\n }\n function getPageZoomStyle() {\n var docZoom = parseFloat($(document.documentElement).css('zoom'));\n if (isNaN(docZoom)) {\n docZoom = 1;\n }\n var bodyZoom = parseFloat($(document.body).css('zoom'));\n if (isNaN(bodyZoom)) {\n bodyZoom = 1;\n }\n return docZoom * bodyZoom;\n }\n var clientX = e.clientX / getPageZoomStyle(), winScrollLeft = $(window).scrollLeft(), position = th.offset().left + (!isRtl ? this.offsetWidth : 0);\n if (clientX + winScrollLeft > position - indicatorWidth && clientX + winScrollLeft < position + indicatorWidth) {\n that._createResizeHandle(th.closest('div'), th);\n } else if (that.resizeHandle) {\n that.resizeHandle.hide();\n } else {\n cursor(that.wrapper, '');\n }\n });\n },\n _resizeHandleDocumentClick: function (e) {\n if ($(e.target).closest('.k-column-active').length) {\n return;\n }\n $(document).off(e);\n this._hideResizeHandle();\n },\n _hideResizeHandle: function () {\n if (this.resizeHandle) {\n this.resizeHandle.data('th').removeClass('k-column-active');\n if (this.lockedContent && !this._isMobile) {\n this.resizeHandle.off(NS).remove();\n this.resizeHandle = null;\n } else {\n this.resizeHandle.hide();\n }\n }\n },\n _positionColumnResizeHandleTouch: function () {\n var that = this, lockedHead = that.lockedHeader ? that.lockedHeader.find('thead:first') : $();\n that._resizeUserEvents = new kendo.UserEvents(lockedHead.add(that.thead), {\n filter: 'th:not(.k-group-cell):not(.k-hierarchy-cell)',\n threshold: 10,\n hold: function (e) {\n var th = $(e.target);\n e.preventDefault();\n th.addClass('k-column-active');\n that._createResizeHandle(th.closest('div'), th);\n if (!that._resizeHandleDocumentClickHandler) {\n that._resizeHandleDocumentClickHandler = proxy(that._resizeHandleDocumentClick, that);\n }\n $(document).on('click', that._resizeHandleDocumentClickHandler);\n }\n });\n },\n _resizable: function () {\n var that = this, options = that.options, container, columnStart, columnWidth, columnMinWidth, gridWidth, isMobile = this._isMobile, scrollbar = !kendo.support.mobileOS ? kendo.support.scrollbar() : 0, isLocked, col, th;\n if (options.resizable) {\n container = options.scrollable ? that.wrapper.find('.k-grid-header-wrap:first') : that.wrapper;\n if (isMobile) {\n that._positionColumnResizeHandleTouch(container);\n } else {\n that._positionColumnResizeHandle(container);\n }\n if (that.resizable) {\n that.resizable.destroy();\n }\n that.resizable = new ui.Resizable(container.add(that.lockedHeader), {\n handle: (!!options.scrollable ? '' : '>') + '.k-resize-handle',\n hint: function (handle) {\n return $('
').css({ height: outerHeight(handle.data('th')) + that.tbody.attr('clientHeight') });\n },\n start: function (e) {\n th = $(e.currentTarget).data('th');\n if (isMobile) {\n that._hideResizeHandle();\n }\n var header = th.closest('table'), index = $.inArray(th[0], leafDataCells(th.closest('thead')).filter(':visible'));\n isLocked = header.parent().hasClass('k-grid-header-locked');\n var contentTable = isLocked ? that.lockedTable : that.table, footer = that.footer || $();\n if (that.footer && that.lockedContent) {\n footer = isLocked ? that.footer.children('.k-grid-footer-locked') : that.footer.children('.k-grid-footer-wrap');\n }\n cursor(that.wrapper, 'col-resize');\n if (options.scrollable) {\n col = header.find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')').add(contentTable.children('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')')).add(footer.find('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')'));\n } else {\n col = contentTable.children('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')');\n }\n columnStart = e.x.location;\n columnWidth = outerWidth(th);\n columnMinWidth = leafColumns(that.columns)[index].minResizableWidth || 10;\n gridWidth = isLocked ? outerWidth(contentTable.children('tbody')) : outerWidth(that.tbody);\n if (browser.webkit) {\n that.wrapper.addClass('k-grid-column-resizing');\n }\n },\n resize: function (e) {\n var rtlMultiplier = isRtl ? -1 : 1, currentWidth = columnWidth + e.x.location * rtlMultiplier - columnStart * rtlMultiplier;\n if (options.scrollable) {\n var footer;\n if (isLocked && that.lockedFooter) {\n footer = that.lockedFooter.children('table');\n } else if (that.footer) {\n footer = that.footer.find('>.k-grid-footer-wrap>table');\n }\n if (!footer || !footer[0]) {\n footer = $();\n }\n var header = th.closest('table');\n var contentTable = isLocked ? that.lockedTable : that.table;\n var constrain = false;\n var totalWidth = that.wrapper.width() - scrollbar;\n var width = currentWidth;\n if (isLocked && gridWidth - columnWidth + width > totalWidth) {\n width = columnWidth + (totalWidth - gridWidth - scrollbar * 2);\n if (width < 0) {\n width = currentWidth;\n }\n constrain = true;\n }\n if (width > 10 && width >= columnMinWidth) {\n col.css('width', width);\n if (gridWidth) {\n if (constrain) {\n width = totalWidth - scrollbar * 2;\n } else {\n width = gridWidth + e.x.location * rtlMultiplier - columnStart * rtlMultiplier;\n }\n contentTable.add(header).add(footer).css('width', width);\n if (!isLocked) {\n that._footerWidth = width;\n }\n }\n }\n } else if (currentWidth > 10 && currentWidth >= columnMinWidth) {\n col.css('width', currentWidth);\n }\n },\n resizeend: function () {\n var newWidth = outerWidth(th), column, header;\n cursor(that.wrapper, '');\n if (browser.webkit) {\n that.wrapper.removeClass('k-grid-column-resizing');\n }\n if (columnWidth != newWidth) {\n header = that.lockedHeader ? that.lockedHeader.find('thead:first tr:first').add(that.thead.find('tr:first')) : th.parent();\n var index = th.attr(kendo.attr('index'));\n if (!index) {\n index = header.find('th:not(.k-group-cell):not(.k-hierarchy-cell)').index(th);\n }\n column = leafColumns(that.columns)[index];\n column.width = newWidth;\n that.trigger(COLUMNRESIZE, {\n column: column,\n oldWidth: columnWidth,\n newWidth: newWidth\n });\n that._applyLockedContainersWidth();\n that._syncLockedContentHeight();\n that._syncLockedHeaderHeight();\n }\n that._hideResizeHandle();\n th = null;\n }\n });\n }\n },\n _draggable: function () {\n var that = this;\n if (that.options.reorderable) {\n if (that._draggableInstance) {\n that._draggableInstance.destroy();\n }\n var header = that.wrapper.children('.k-grid-header');\n that._draggableInstance = that.wrapper.kendoDraggable({\n group: kendo.guid(),\n autoScroll: true,\n filter: that.content ? '.k-grid-header:first ' + HEADERCELLS : 'table:first>.k-grid-header ' + HEADERCELLS,\n dragstart: function () {\n header.children('.k-grid-header-wrap').unbind('scroll' + NS + 'scrolling').bind('scroll' + NS + 'scrolling', function (e) {\n if (that.virtualScrollable) {\n that.content.find('>.k-virtual-scrollable-wrap').scrollLeft(this.scrollLeft);\n } else {\n that.scrollables.not(e.currentTarget).scrollLeft(this.scrollLeft);\n }\n });\n },\n dragend: function () {\n header.children('.k-grid-header-wrap').unbind('scroll' + NS + 'scrolling');\n },\n drag: function () {\n that._hideResizeHandle();\n },\n hint: function (target) {\n var title = target.attr(kendo.attr('title'));\n if (title) {\n title = kendo.htmlEncode(title);\n }\n return $('
').css({\n width: target.width(),\n paddingLeft: target.css('paddingLeft'),\n paddingRight: target.css('paddingRight'),\n lineHeight: target.height() + 'px',\n paddingTop: target.css('paddingTop'),\n paddingBottom: target.css('paddingBottom')\n }).html(title || target.attr(kendo.attr('field')) || target.text()).prepend('');\n }\n }).data('kendoDraggable');\n }\n },\n _reorderable: function () {\n var that = this;\n if (that.options.reorderable) {\n if (that.wrapper.data('kendoReorderable')) {\n that.wrapper.data('kendoReorderable').destroy();\n }\n var targetParentContainerIndex = function (columns, sourceIndex, targetIndex) {\n var column = columns[sourceIndex];\n var target = columns[targetIndex];\n var parent = columnParent(column, that.columns);\n columns = parent ? parent.columns : that.columns;\n return inArray(target, columns);\n };\n that.wrapper.kendoReorderable({\n draggable: that._draggableInstance,\n dragOverContainers: function (sourceIndex, targetIndex) {\n var columns = flatColumnsInDomOrder(that.columns);\n return columns[sourceIndex].lockable !== false && targetParentContainerIndex(columns, sourceIndex, targetIndex) > -1;\n },\n inSameContainer: function (e) {\n return $(e.source).parent()[0] === $(e.target).parent()[0] && targetParentContainerIndex(flatColumnsInDomOrder(that.columns), e.sourceIndex, e.targetIndex) > -1;\n },\n change: function (e) {\n var columns = flatColumnsInDomOrder(that.columns);\n var column = columns[e.oldIndex];\n var newIndex = targetParentContainerIndex(columns, e.oldIndex, e.newIndex);\n that.trigger(COLUMNREORDER, {\n newIndex: newIndex,\n oldIndex: inArray(column, columns),\n column: column\n });\n that.reorderColumn(newIndex, column, e.position === 'before');\n }\n });\n }\n },\n _reorderHeader: function (sources, target, before) {\n var that = this;\n var sourcePosition = columnPosition(sources[0], that.columns);\n var destPosition = columnPosition(target, that.columns);\n var leafs = [];\n for (var idx = 0; idx < sources.length; idx++) {\n if (sources[idx].columns) {\n leafs = leafs.concat(sources[idx].columns);\n }\n }\n var ths = elements(that.lockedHeader, that.thead, 'tr:eq(' + sourcePosition.row + ')>th.k-header:not(.k-group-cell,.k-hierarchy-cell)');\n var sourceLockedColumns = lockedColumns(sources).length;\n var targetLockedColumns = lockedColumns([target]).length;\n if (leafs.length) {\n if (sourceLockedColumns > 0 && targetLockedColumns === 0) {\n moveCellsBetweenContainers(sources, target, leafs, that.columns, that.lockedHeader.find('thead'), that.thead, this._groups());\n } else if (sourceLockedColumns === 0 && targetLockedColumns > 0) {\n moveCellsBetweenContainers(sources, target, leafs, that.columns, that.thead, that.lockedHeader.find('thead'), this._groups());\n }\n if (target.columns || sourcePosition.cell - destPosition.cell > 1 || destPosition.cell - sourcePosition.cell > 1) {\n target = findReorderTarget(that.columns, target, sources[0], before);\n if (target) {\n that._reorderHeader(leafs, target, before);\n }\n }\n } else if (sourceLockedColumns !== targetLockedColumns) {\n updateCellRowSpan(ths[sourcePosition.cell], that.columns, sourceLockedColumns);\n }\n reorder(ths, sourcePosition.cell, destPosition.cell, before, sources.length);\n },\n _reorderContent: function (sources, destination, before) {\n var that = this;\n var lockedRows = $();\n var source = sources[0];\n var visibleSources = visibleColumns(sources);\n var sourceIndex = inArray(source, leafColumns(that.columns));\n var destIndex = inArray(destination, leafColumns(that.columns));\n var colSourceIndex = inArray(source, visibleLeafColumns(that.columns));\n var colDest = inArray(destination, visibleLeafColumns(that.columns));\n var lockedCount = lockedColumns(that.columns).length;\n var isLocked = !!destination.locked;\n var footer = that.footer || that.wrapper.find('.k-grid-footer');\n var headerCol, footerCol;\n headerCol = footerCol = colDest;\n if (destination.hidden) {\n if (isLocked) {\n colDest = that.lockedTable.find('colgroup');\n headerCol = that.lockedHeader.find('colgroup');\n footerCol = $(that.lockedFooter).find('>table>colgroup');\n } else {\n colDest = that.tbody.prev();\n headerCol = that.thead.prev();\n footerCol = footer.find('.k-grid-footer-wrap').find('>table>colgroup');\n }\n }\n if (that._hasFilterRow()) {\n reorder(that.wrapper.find('.k-filter-row th:not(.k-group-cell,.k-hierarchy-cell)'), sourceIndex, destIndex, before, sources.length);\n }\n reorder(elements(that.lockedHeader, that.thead.prev(), 'col:not(.k-group-col,.k-hierarchy-col)'), colSourceIndex, headerCol, before, visibleSources.length);\n if (that.options.scrollable) {\n reorder(elements(that.lockedTable, that.tbody.prev(), 'col:not(.k-group-col,.k-hierarchy-col)'), colSourceIndex, colDest, before, visibleSources.length);\n }\n if (footer && footer.length) {\n reorder(elements(that.lockedFooter, footer.find('.k-grid-footer-wrap'), '>table>colgroup>col:not(.k-group-col,.k-hierarchy-col)'), colSourceIndex, footerCol, before, visibleSources.length);\n reorder(footer.find('.k-footer-template>td:not(.k-group-cell,.k-hierarchy-cell)'), sourceIndex, destIndex, before, sources.length);\n }\n var rows = that.tbody.children(':not(.k-grouping-row,.k-detail-row)');\n if (that.lockedTable) {\n if (lockedCount > destIndex) {\n if (lockedCount <= sourceIndex) {\n updateColspan(that.lockedTable.find('>tbody>tr.k-grouping-row'), that.table.find('>tbody>tr.k-grouping-row'), sources.length);\n }\n } else if (lockedCount > sourceIndex) {\n updateColspan(that.table.find('>tbody>tr.k-grouping-row'), that.lockedTable.find('>tbody>tr.k-grouping-row'), sources.length);\n }\n lockedRows = that.lockedTable.find('>tbody>tr:not(.k-grouping-row,.k-detail-row)');\n }\n for (var idx = 0, length = rows.length; idx < length; idx += 1) {\n reorder(elements(lockedRows[idx], rows[idx], '>td:not(.k-group-cell,.k-hierarchy-cell)'), sourceIndex, destIndex, before, sources.length);\n }\n },\n _autoFitLeafColumn: function (leafIndex) {\n this.autoFitColumn(leafColumns(this.columns)[leafIndex]);\n },\n autoFitColumn: function (column) {\n var that = this, options = that.options, columns = that.columns, index, th, headerTable, isLocked, visibleLocked = that.lockedHeader ? leafDataCells(that.lockedHeader.find('>table>thead')).filter(isCellVisible).length : 0, col, contentDiv, scrollLeft, notGroupOrHierarchyCol = 'col:not(.k-group-col):not(.k-hierarchy-col)', notGroupOrHierarchyVisibleCell = 'td:visible:not(.k-group-cell):not(.k-hierarchy-cell)';\n if (typeof column == 'number') {\n column = columns[column];\n } else if (isPlainObject(column)) {\n column = grep(flatColumns(columns), function (item) {\n return item === column;\n })[0];\n } else {\n column = grep(flatColumns(columns), function (item) {\n return item.field === column;\n })[0];\n }\n if (!column || !isVisible(column)) {\n return;\n }\n index = inArray(column, leafColumns(columns));\n isLocked = column.locked;\n if (isLocked) {\n headerTable = that.lockedHeader.children('table');\n } else {\n headerTable = that.thead.parent();\n }\n th = headerTable.find('[data-index=\\'' + index + '\\']');\n var contentTable = isLocked ? that.lockedTable : that.table, footer = that.footer || $();\n if (that.footer && that.lockedContent) {\n footer = isLocked ? that.footer.children('.k-grid-footer-locked') : that.footer.children('.k-grid-footer-wrap');\n }\n var footerTable = footer.find('table').first();\n if (that.lockedHeader && !isLocked) {\n index -= visibleLocked;\n }\n for (var j = 0; j < columns.length; j++) {\n if (columns[j] === column) {\n break;\n } else {\n if (columns[j].hidden) {\n index--;\n }\n }\n }\n if (options.scrollable) {\n col = headerTable.find(notGroupOrHierarchyCol).eq(index).add(contentTable.children('colgroup').find(notGroupOrHierarchyCol).eq(index)).add(footerTable.find('colgroup').find(notGroupOrHierarchyCol).eq(index));\n if (!isLocked) {\n contentDiv = contentTable.parent();\n scrollLeft = contentDiv.scrollLeft();\n }\n } else {\n col = contentTable.children('colgroup').find(notGroupOrHierarchyCol).eq(index);\n }\n var tables = headerTable.add(contentTable).add(footerTable);\n var oldColumnWidth = outerWidth(th);\n col.width('');\n tables.css('table-layout', 'fixed');\n col.width('auto');\n tables.addClass('k-autofitting');\n tables.css('table-layout', '');\n var newColumnWidth = Math.ceil(Math.max(outerWidth(th), outerWidth(contentTable.find('tr:not(.k-grouping-row)').eq(0).children(notGroupOrHierarchyVisibleCell).eq(index)), outerWidth(footerTable.find('tr').eq(0).children(notGroupOrHierarchyVisibleCell).eq(index)))) + 1;\n col.width(newColumnWidth);\n column.width = newColumnWidth;\n if (options.scrollable) {\n var cols = headerTable.find('col'), colWidth, totalWidth = 0;\n for (var idx = 0, length = cols.length; idx < length; idx += 1) {\n colWidth = cols[idx].style.width;\n if (colWidth && colWidth.indexOf('%') == -1) {\n totalWidth += parseInt(colWidth, 10);\n } else {\n totalWidth = 0;\n break;\n }\n }\n if (totalWidth) {\n tables.each(function () {\n this.style.width = totalWidth + 'px';\n });\n }\n }\n if (browser.msie && browser.version == 8) {\n tables.css('display', 'inline-table');\n setTimeout(function () {\n tables.css('display', 'table');\n }, 1);\n }\n tables.removeClass('k-autofitting');\n if (scrollLeft) {\n contentDiv.scrollLeft(scrollLeft);\n }\n that.trigger(COLUMNRESIZE, {\n column: column,\n oldWidth: oldColumnWidth,\n newWidth: newColumnWidth\n });\n that._applyLockedContainersWidth();\n that._syncLockedContentHeight();\n that._syncLockedHeaderHeight();\n },\n reorderColumn: function (destIndex, column, before) {\n var that = this, parent = columnParent(column, that.columns), columns = parent ? parent.columns : that.columns, sourceIndex = inArray(column, columns), destColumn = columns[destIndex], lockChanged, isLocked = !!destColumn.locked, lockedCount = lockedColumns(that.columns).length;\n if (sourceIndex === destIndex) {\n return;\n }\n if (!column.locked && isLocked && nonLockedColumns(that.columns).length == 1) {\n return;\n }\n if (column.locked && !isLocked && lockedCount == 1) {\n return;\n }\n that._hideResizeHandle();\n if (before === undefined) {\n before = destIndex < sourceIndex;\n }\n var sourceColumns = [column];\n that._reorderHeader(sourceColumns, destColumn, before);\n if (that.lockedHeader) {\n removeEmptyRows(that.thead);\n removeEmptyRows(that.lockedHeader);\n }\n if (destColumn.columns) {\n destColumn = leafColumns(destColumn.columns);\n destColumn = destColumn[before ? 0 : destColumn.length - 1];\n }\n if (column.columns) {\n sourceColumns = leafColumns(column.columns);\n }\n that._reorderContent(sourceColumns, destColumn, before);\n lockChanged = !!column.locked;\n lockChanged = lockChanged != isLocked;\n column.locked = isLocked;\n columns.splice(before ? destIndex : destIndex + 1, 0, column);\n columns.splice(sourceIndex < destIndex ? sourceIndex : sourceIndex + 1, 1);\n that._templates();\n that._updateColumnCellIndex();\n that._updateTablesWidth();\n that._applyLockedContainersWidth();\n that._syncLockedHeaderHeight();\n that._syncLockedContentHeight();\n that._updateFirstColumnClass();\n if (!lockChanged) {\n return;\n }\n if (isLocked) {\n that.trigger(COLUMNLOCK, { column: column });\n } else {\n that.trigger(COLUMNUNLOCK, { column: column });\n }\n },\n _updateColumnCellIndex: function () {\n var header;\n var offset = 0;\n if (this.lockedHeader) {\n header = this.lockedHeader.find('thead');\n offset = updateCellIndex(header, lockedColumns(this.columns));\n }\n updateCellIndex(this.thead, nonLockedColumns(this.columns), offset);\n },\n lockColumn: function (column) {\n var columns = this.columns;\n if (typeof column == 'number') {\n column = columns[column];\n } else {\n column = grep(columns, function (item) {\n return item.field === column;\n })[0];\n }\n if (!column || column.locked || column.hidden) {\n return;\n }\n var index = lockedColumns(columns).length - 1;\n this.reorderColumn(index, column, false);\n },\n unlockColumn: function (column) {\n var columns = this.columns;\n if (typeof column == 'number') {\n column = columns[column];\n } else {\n column = grep(columns, function (item) {\n return item.field === column;\n })[0];\n }\n if (!column || !column.locked || column.hidden) {\n return;\n }\n var index = lockedColumns(columns).length;\n this.reorderColumn(index, column, true);\n },\n cellIndex: function (td) {\n var lockedColumnOffset = 0;\n if (this.lockedTable && !$.contains(this.lockedTable[0], td[0])) {\n lockedColumnOffset = leafColumns(lockedColumns(this.columns)).length;\n }\n return $(td).parent().children('td:not(.k-group-cell,.k-hierarchy-cell)').index(td) + lockedColumnOffset;\n },\n _modelForContainer: function (container) {\n container = $(container);\n if (!container.is('tr') && this._editMode() !== 'popup') {\n container = container.closest('tr');\n }\n var id = container.attr(kendo.attr('uid'));\n return this.dataSource.getByUid(id);\n },\n _editable: function () {\n var that = this, selectable = that.selectable && that.selectable.options.multiple, editable = that.options.editable, handler = function () {\n var target = activeElement(), cell = that._editContainer;\n if (cell && !$.contains(cell[0], target) && cell[0] !== target && !$(target).closest('.k-animation-container').length) {\n if (that.editable.end()) {\n that.closeCell();\n }\n }\n };\n if (editable) {\n this.wrapper.addClass('k-editable');\n var mode = that._editMode();\n if (mode === 'incell') {\n if (editable.update !== false) {\n that.wrapper.on(CLICK + NS, 'tr:not(.k-grouping-row) > td', function (e) {\n var td = $(this), isLockedCell = that.lockedTable && td.closest('table')[0] === that.lockedTable[0];\n if (td.hasClass('k-hierarchy-cell') || td.hasClass('k-detail-cell') || td.hasClass('k-group-cell') || td.hasClass('k-edit-cell') || td.has('a.k-grid-delete').length || td.has('button.k-grid-delete').length || td.closest('tbody')[0] !== that.tbody[0] && !isLockedCell || $(e.target).is(':input')) {\n return;\n }\n if (that.editable) {\n if (that.editable.end()) {\n if (selectable) {\n $(activeElement()).blur();\n }\n that.closeCell();\n that.editCell(td);\n }\n } else {\n that.editCell(td);\n }\n }).on('focusin' + NS, function () {\n if (!$.contains(this, activeElement())) {\n clearTimeout(that.timer);\n that.timer = null;\n }\n }).on('focusout' + NS, function () {\n that.timer = setTimeout(handler, 1);\n });\n }\n } else {\n if (editable.update !== false) {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible a.k-grid-edit', function (e) {\n e.preventDefault();\n that.editRow($(this).closest('tr'));\n });\n }\n }\n if (editable.destroy !== false) {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible .k-grid-delete', function (e) {\n e.preventDefault();\n e.stopPropagation();\n that.removeRow($(this).closest('tr'));\n });\n } else {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible button.k-grid-delete', function (e) {\n e.stopPropagation();\n if (!that._confirmation()) {\n e.preventDefault();\n }\n });\n }\n }\n },\n editCell: function (cell) {\n cell = $(cell);\n var that = this, column = leafColumns(that.columns)[that.cellIndex(cell)], model = that._modelForContainer(cell);\n that.closeCell();\n if (model && isColumnEditable(column, model) && !column.command) {\n that._attachModelChange(model);\n that._editContainer = cell;\n that.editable = cell.addClass('k-edit-cell').kendoEditable({\n fields: {\n field: column.field,\n format: column.format,\n editor: column.editor,\n values: column.values\n },\n model: model,\n target: that,\n change: function (e) {\n if (that.trigger(SAVE, {\n values: e.values,\n container: cell,\n model: model\n })) {\n e.preventDefault();\n }\n }\n }).data('kendoEditable');\n var tr = cell.parent().addClass('k-grid-edit-row');\n if (that.lockedContent) {\n adjustRowHeight(tr[0], that._relatedRow(tr).addClass('k-grid-edit-row')[0]);\n }\n that.trigger(EDIT, {\n container: cell,\n model: model\n });\n }\n },\n _adjustLockedHorizontalScrollBar: function () {\n var table = this.table, content = table.parent();\n var scrollbar = table[0].offsetWidth > content[0].clientWidth ? kendo.support.scrollbar() : 0;\n this.lockedContent.height(content.height() - scrollbar);\n },\n _syncLockedContentHeight: function () {\n if (this.lockedTable) {\n if (!this.touchScroller) {\n this._adjustLockedHorizontalScrollBar();\n }\n this._adjustRowsHeight(this.table, this.lockedTable);\n }\n },\n _syncLockedHeaderHeight: function () {\n if (this.lockedHeader) {\n var lockedTable = this.lockedHeader.children('table');\n var table = this.thead.parent();\n this._adjustRowsHeight(lockedTable, table);\n syncTableHeight(lockedTable, table);\n }\n },\n _syncLockedFooterHeight: function () {\n if (this.lockedFooter && this.footer && this.footer.length) {\n this._adjustRowsHeight(this.lockedFooter.children('table'), this.footer.find('.k-grid-footer-wrap > table'));\n }\n },\n _destroyEditable: function () {\n var that = this;\n var destroy = function () {\n if (that.editable) {\n var container = that.editView ? that.editView.element : that._editContainer;\n if (container) {\n container.off(CLICK + NS, 'a.k-grid-cancel', that._editCancelClickHandler);\n container.off(CLICK + NS, 'a.k-grid-update', that._editUpdateClickHandler);\n }\n that._detachModelChange();\n that.editable.destroy();\n that.editable = null;\n that._editContainer = null;\n that._destroyEditView();\n }\n };\n if (that.editable) {\n if (that._editMode() === 'popup' && !that._isMobile) {\n that._editContainer.data('kendoWindow').bind('deactivate', destroy).close();\n } else {\n destroy();\n }\n }\n if (that._actionSheet) {\n that._actionSheet.destroy();\n that._actionSheet = null;\n }\n },\n _destroyEditView: function () {\n if (this.editView) {\n this.editView.purge();\n this.editView = null;\n this.pane.navigate('');\n }\n },\n _attachModelChange: function (model) {\n var that = this;\n that._modelChangeHandler = function (e) {\n that._modelChange({\n field: e.field,\n model: this\n });\n };\n model.bind('change', that._modelChangeHandler);\n },\n _detachModelChange: function () {\n var that = this, container = that._editContainer, model = that._modelForContainer(container);\n if (model) {\n model.unbind(CHANGE, that._modelChangeHandler);\n }\n },\n closeCell: function (isCancel) {\n var that = this, cell = that._editContainer, id, column, tr, model;\n if (!cell) {\n return;\n }\n id = cell.closest('tr').attr(kendo.attr('uid'));\n model = that.dataSource.getByUid(id);\n if (isCancel && that.trigger('cancel', {\n container: cell,\n model: model\n })) {\n return;\n }\n cell.removeClass('k-edit-cell');\n column = leafColumns(that.columns)[that.cellIndex(cell)];\n tr = cell.parent().removeClass('k-grid-edit-row');\n that._destroyEditable();\n that._displayCell(cell, column, model);\n if (cell.hasClass('k-dirty-cell')) {\n $('').prependTo(cell);\n }\n that.trigger('itemChange', {\n item: tr,\n data: model,\n ns: ui\n });\n if (that.lockedContent) {\n adjustRowHeight(tr.css('height', '')[0], that._relatedRow(tr).css('height', '')[0]);\n }\n },\n _displayCell: function (cell, column, dataItem) {\n var that = this, state = {\n storage: {},\n count: 0\n }, settings = extend({}, kendo.Template, that.options.templateSettings), tmpl = kendo.template(that._cellTmpl(column, state), settings);\n if (state.count > 0) {\n tmpl = proxy(tmpl, state.storage);\n }\n cell.empty().html(tmpl(dataItem));\n that.angular('compile', function () {\n return {\n elements: cell,\n data: [{ dataItem: dataItem }]\n };\n });\n },\n removeRow: function (row) {\n if (!this._confirmation(row)) {\n return;\n }\n this._removeRow(row);\n },\n _removeRow: function (row) {\n var that = this, model, mode = that._editMode();\n if (mode !== 'incell') {\n that.cancelRow();\n }\n row = $(row);\n if (that.lockedContent) {\n row = row.add(that._relatedRow(row));\n }\n row = row.hide();\n model = that._modelForContainer(row);\n if (model && !that.trigger(REMOVE, {\n row: row,\n model: model\n })) {\n that.dataSource.remove(model);\n if (mode === 'inline' || mode === 'popup') {\n that.dataSource.sync();\n }\n } else if (mode === 'incell') {\n that._destroyEditable();\n }\n },\n _editMode: function () {\n var mode = 'incell', editable = this.options.editable;\n if (editable !== true) {\n if (typeof editable == 'string') {\n mode = editable;\n } else {\n mode = editable.mode || mode;\n }\n }\n return mode;\n },\n editRow: function (row) {\n var model;\n var that = this;\n if (row instanceof kendo.data.ObservableObject) {\n model = row;\n } else {\n row = $(row);\n model = that._modelForContainer(row);\n }\n var mode = that._editMode();\n var container;\n that.cancelRow();\n if (model) {\n row = that.tbody.children('[' + kendo.attr('uid') + '=' + model.uid + ']');\n that._attachModelChange(model);\n if (mode === 'popup') {\n that._createPopupEditor(model);\n } else if (mode === 'inline') {\n that._createInlineEditor(row, model);\n } else if (mode === 'incell') {\n $(row).children(DATA_CELL).each(function () {\n var cell = $(this);\n var column = leafColumns(that.columns)[that.cellIndex(cell)];\n model = that._modelForContainer(cell);\n if (model && (!model.editable || model.editable(column.field)) && column.field) {\n that.editCell(cell);\n return false;\n }\n });\n }\n container = that.editView ? that.editView.element : that._editContainer;\n if (container) {\n if (!this._editCancelClickHandler) {\n this._editCancelClickHandler = proxy(this._editCancelClick, this);\n }\n container.on(CLICK + NS, 'a.k-grid-cancel', this._editCancelClickHandler);\n if (!this._editUpdateClickHandler) {\n this._editUpdateClickHandler = proxy(this._editUpdateClick, this);\n }\n container.on(CLICK + NS, 'a.k-grid-update', this._editUpdateClickHandler);\n }\n }\n },\n _editUpdateClick: function (e) {\n e.preventDefault();\n e.stopPropagation();\n this.saveRow();\n },\n _editCancelClick: function (e) {\n var that = this;\n var navigatable = that.options.navigatable;\n var model = that.editable.options.model;\n var container = that.editView ? that.editView.element : that._editContainer;\n e.preventDefault();\n e.stopPropagation();\n if (that.trigger('cancel', {\n container: container,\n model: model\n })) {\n return;\n }\n var currentIndex = that.items().index($(that.current()).parent());\n that.cancelRow();\n if (navigatable) {\n that._setCurrent(that.items().eq(currentIndex).children().filter(NAVCELL).first());\n focusTable(that.table, true);\n }\n },\n _createPopupEditor: function (model) {\n var that = this, html = '
', column, command, fields = [], idx, length, tmpl, updateText, cancelText, tempCommand, columns = leafColumns(that.columns), attr, editable = that.options.editable, template = editable.template, options = isPlainObject(editable) ? editable.window : {}, settings = extend({}, kendo.Template, that.options.templateSettings);\n options = options || {};\n if (template) {\n if (typeof template === STRING) {\n template = window.unescape(template);\n }\n html += kendo.template(template, settings)(model);\n for (idx = 0, length = columns.length; idx < length; idx++) {\n column = columns[idx];\n if (column.command) {\n tempCommand = getCommand(column.command, 'edit');\n if (tempCommand) {\n command = tempCommand;\n }\n }\n }\n } else {\n for (idx = 0, length = columns.length; idx < length; idx++) {\n column = columns[idx];\n if (!column.command) {\n html += '
';\n if (isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\n format: column.format,\n editor: column.editor,\n values: column.values\n });\n html += '
';\n } else {\n var state = {\n storage: {},\n count: 0\n };\n tmpl = kendo.template(that._cellTmpl(column, state), settings);\n if (state.count > 0) {\n tmpl = proxy(tmpl, state.storage);\n }\n html += '
' + tmpl(model) + '
';\n }\n } else if (column.command) {\n tempCommand = getCommand(column.command, 'edit');\n if (tempCommand) {\n command = tempCommand;\n }\n }\n }\n }\n if (command) {\n if (isPlainObject(command)) {\n if (command.text && isPlainObject(command.text)) {\n updateText = command.text.update;\n cancelText = command.text.cancel;\n }\n if (command.attr) {\n attr = command.attr;\n }\n }\n }\n var container;\n if (!that._isMobile) {\n html += '
';\n html += that._createButton({\n name: 'update',\n text: updateText,\n attr: attr\n }) + that._createButton({\n name: 'canceledit',\n text: cancelText,\n attr: attr\n });\n html += '
';\n container = that._editContainer = $(html).appendTo(that.wrapper).eq(0).kendoWindow(extend({\n modal: true,\n resizable: false,\n draggable: true,\n title: 'Edit',\n visible: false,\n close: function (e) {\n if (e.userTriggered) {\n e.sender.element.focus();\n if (that.trigger('cancel', {\n container: container,\n model: model\n })) {\n e.preventDefault();\n return;\n }\n var currentIndex = that.items().index($(that.current()).parent());\n that.cancelRow();\n if (that.options.navigatable) {\n that._setCurrent(that.items().eq(currentIndex).children().filter(NAVCELL).first());\n focusTable(that.table, true);\n }\n }\n }\n }, options));\n } else {\n html += '
';\n that.editView = that.pane.append('
' + '
' + that._createButton({\n name: 'update',\n text: updateText,\n attr: attr\n }) + (options.title || 'Edit') + that._createButton({\n name: 'canceledit',\n text: cancelText,\n attr: attr\n }) + '
' + html + '
');\n container = that._editContainer = that.editView.element.find('.k-popup-edit-form');\n }\n that.editable = that._editContainer.kendoEditable({\n fields: fields,\n model: model,\n clearContainer: false,\n target: that\n }).data('kendoEditable');\n if (that._isMobile) {\n container.find('input[type=checkbox],input[type=radio]').parent('.k-edit-field').addClass('k-check').prev('.k-edit-label').addClass('k-check').click(function () {\n $(this).next().children('input').click();\n });\n }\n that._openPopUpEditor();\n that.trigger(EDIT, {\n container: container,\n model: model\n });\n },\n _openPopUpEditor: function () {\n if (!this._isMobile) {\n this._editContainer.data('kendoWindow').center().open();\n } else {\n this.pane.navigate(this.editView, this._editAnimation);\n }\n },\n _createInlineEditor: function (row, model) {\n var that = this, column, cell, command, fields = [];\n if (that.lockedContent) {\n row = row.add(that._relatedRow(row));\n }\n row.children(':not(.k-group-cell,.k-hierarchy-cell)').each(function () {\n cell = $(this);\n column = leafColumns(that.columns)[that.cellIndex(cell)];\n if (!column.command && isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\n format: column.format,\n editor: column.editor,\n values: column.values\n });\n cell.attr(kendo.attr('container-for'), column.field);\n cell.empty();\n } else if (column.command) {\n command = getCommand(column.command, 'edit');\n if (command) {\n cell.empty();\n var updateText, cancelText, attr;\n if (isPlainObject(command)) {\n if (command.text && isPlainObject(command.text)) {\n updateText = command.text.update;\n cancelText = command.text.cancel;\n }\n if (command.attr) {\n attr = command.attr;\n }\n }\n $(that._createButton({\n name: 'update',\n text: updateText,\n attr: attr\n }) + that._createButton({\n name: 'canceledit',\n text: cancelText,\n attr: attr\n })).appendTo(cell);\n }\n }\n });\n that._editContainer = row;\n that.editable = new kendo.ui.Editable(row.addClass('k-grid-edit-row'), {\n target: that,\n fields: fields,\n model: model,\n clearContainer: false\n });\n if (row.length > 1) {\n adjustRowHeight(row[0], row[1]);\n that._applyLockedContainersWidth();\n }\n that.trigger(EDIT, {\n container: row,\n model: model\n });\n },\n cancelRow: function (notify) {\n var that = this, container = that._editContainer, model;\n if (container) {\n model = that._modelForContainer(container);\n if (notify && that.trigger('cancel', {\n container: container,\n model: model\n })) {\n return;\n }\n that._destroyEditable();\n that.dataSource.cancelChanges(model);\n if (that._editMode() !== 'popup') {\n that._displayRow(container);\n } else {\n that._displayRow(that.tbody.find('[' + kendo.attr('uid') + '=' + model.uid + ']'));\n }\n }\n },\n saveRow: function () {\n var container = this._editContainer;\n var model = this._modelForContainer(container);\n var deferred = $.Deferred();\n if (!container || !this.editable) {\n return deferred.resolve().promise();\n }\n if (!this.editable.end() || this.trigger(SAVE, {\n container: container,\n model: model\n })) {\n return deferred.reject().promise();\n }\n return this.dataSource.sync();\n },\n _displayRow: function (row) {\n var that = this, model = that._modelForContainer(row), related, newRow, nextRow, isSelected = row.hasClass('k-state-selected'), isAlt = row.hasClass('k-alt');\n if (model) {\n if (that.lockedContent) {\n related = $((isAlt ? that.lockedAltRowTemplate : that.lockedRowTemplate)(model));\n that._relatedRow(row.last()).replaceWith(related);\n }\n that.angular('cleanup', function () {\n return { elements: row.get() };\n });\n newRow = $((isAlt ? that.altRowTemplate : that.rowTemplate)(model));\n row.replaceWith(newRow);\n that.trigger('itemChange', {\n item: newRow,\n data: model,\n ns: ui\n });\n if (related && related.length) {\n that.trigger('itemChange', {\n item: related,\n data: model,\n ns: ui\n });\n }\n var angularElements = newRow;\n var angularData = [{ dataItem: model }];\n if (related && related.length) {\n angularElements = newRow.add(related);\n angularData.push({ dataItem: model });\n }\n that.angular('compile', function () {\n return {\n elements: angularElements.get(),\n data: angularData\n };\n });\n if (isSelected && that.options.selectable) {\n that.select(newRow.add(related));\n }\n if (related) {\n adjustRowHeight(newRow[0], related[0]);\n }\n nextRow = newRow.next();\n if (nextRow.hasClass('k-detail-row') && nextRow.is(':visible')) {\n newRow.find('.k-hierarchy-cell .k-icon').removeClass('k-i-expand').addClass('k-i-collapse');\n }\n }\n },\n _showMessage: function (messages, row) {\n var that = this;\n if (!that._isMobile) {\n return window.confirm(messages.title);\n }\n var template = kendo.template('');\n var html = $(template(messages)).appendTo(that.view.element);\n var actionSheet = that._actionSheet = new kendo.mobile.ui.ActionSheet(html, {\n cancel: messages.cancelDelete,\n cancelTemplate: '
  • #:cancel#
  • ',\n close: function () {\n this.destroy();\n },\n command: function (e) {\n var item = $(e.currentTarget).parent();\n if (!item.hasClass('km-actionsheet-cancel')) {\n that._removeRow(row);\n }\n },\n popup: that._actionSheetPopupOptions\n });\n actionSheet.open(row);\n return false;\n },\n _confirmation: function (row) {\n var that = this, editable = that.options.editable, confirmation = editable === true || typeof editable === STRING ? that.options.messages.editable.confirmation : editable.confirmation;\n if (isPlainObject(editable) && typeof editable.mode === STRING && typeof confirmation !== STRING && confirmation !== false) {\n confirmation = that.options.messages.editable.confirmation;\n }\n if (confirmation !== false && confirmation != null) {\n if (typeof confirmation === FUNCTION) {\n confirmation = confirmation(that._modelForContainer(row));\n }\n return that._showMessage({\n confirmDelete: editable.confirmDelete || that.options.messages.editable.confirmDelete,\n cancelDelete: editable.cancelDelete || that.options.messages.editable.cancelDelete,\n title: confirmation === true ? that.options.messages.editable.confirmation : confirmation\n }, row);\n }\n return true;\n },\n cancelChanges: function () {\n this.dataSource.cancelChanges();\n },\n saveChanges: function () {\n var that = this;\n if ((that.editable && that.editable.end() || !that.editable) && !that.trigger(SAVECHANGES)) {\n that.dataSource.sync();\n }\n },\n addRow: function () {\n var that = this, index, dataSource = that.dataSource, mode = that._editMode(), createAt = that.options.editable.createAt || '', pageSize = dataSource.pageSize(), view = dataSource.view() || [];\n if (that.editable && that.editable.end() || !that.editable) {\n if (mode != 'incell') {\n that.cancelRow();\n }\n index = dataSource.indexOf(view[0]);\n if (createAt.toLowerCase() == 'bottom') {\n index += view.length;\n if (pageSize && !dataSource.options.serverPaging && pageSize <= view.length) {\n index -= 1;\n }\n }\n if (index < 0) {\n if (dataSource.page() > dataSource.totalPages()) {\n index = (dataSource.page() - 1) * pageSize;\n } else {\n index = 0;\n }\n }\n var model = dataSource.insert(index, {}), id = model.uid, table = that.lockedContent ? that.lockedTable : that.table, row = table.find('tr[' + kendo.attr('uid') + '=' + id + ']'), cell = row.children('td:not(.k-group-cell,.k-hierarchy-cell)').eq(that._firstEditableColumnIndex(row));\n if (mode === 'inline' && row.length) {\n that.editRow(row);\n } else if (mode === 'popup') {\n that.editRow(model);\n } else if (cell.length) {\n that.editCell(cell);\n }\n if (createAt.toLowerCase() == 'bottom' && that.lockedContent) {\n that.lockedContent[0].scrollTop = that.content[0].scrollTop = that.table[0].offsetHeight;\n }\n }\n },\n _firstEditableColumnIndex: function (container) {\n var that = this, column, columns = leafColumns(that.columns), idx, length, model = that._modelForContainer(container);\n for (idx = 0, length = columns.length; idx < length; idx++) {\n column = columns[idx];\n if (model && (!model.editable || model.editable(column.field)) && !column.command && column.field && column.hidden !== true) {\n return idx;\n }\n }\n return -1;\n },\n _toolbar: function () {\n var that = this, wrapper = that.wrapper, toolbar = that.options.toolbar, editable = that.options.editable, container;\n if (toolbar) {\n container = that.wrapper.find('.k-grid-toolbar');\n if (!container.length) {\n if (!isFunction(toolbar)) {\n toolbar = typeof toolbar === STRING ? toolbar : that._toolbarTmpl(toolbar).replace(templateHashRegExp, '\\\\#');\n toolbar = proxy(kendo.template(toolbar), that);\n }\n container = $('
    ').html(toolbar({})).prependTo(wrapper);\n that.angular('compile', function () {\n return { elements: container.get() };\n });\n }\n if (editable && editable.create !== false) {\n container.on(CLICK + NS, '.k-grid-add', function (e) {\n e.preventDefault();\n that.addRow();\n }).on(CLICK + NS, '.k-grid-cancel-changes', function (e) {\n e.preventDefault();\n that.cancelChanges();\n }).on(CLICK + NS, '.k-grid-save-changes', function (e) {\n e.preventDefault();\n that.saveChanges();\n });\n }\n container.on(CLICK + NS, '.k-grid-excel', function (e) {\n e.preventDefault();\n that.saveAsExcel();\n });\n container.on(CLICK + NS, '.k-grid-pdf', function (e) {\n e.preventDefault();\n that.saveAsPDF();\n });\n }\n },\n _toolbarTmpl: function (commands) {\n var that = this, idx, length, html = '';\n if (isArray(commands)) {\n for (idx = 0, length = commands.length; idx < length; idx++) {\n html += that._createButton(commands[idx]);\n }\n }\n return html;\n },\n _createButton: function (command) {\n var template = command.template || COMMANDBUTTONTMPL, commandName = typeof command === STRING ? command : command.name || command.text, className = defaultCommands[commandName] ? defaultCommands[commandName].className : 'k-grid-' + (commandName || '').replace(/\\s/g, ''), options = {\n className: className,\n text: commandName,\n imageClass: '',\n attr: '',\n iconClass: ''\n }, messages = this.options.messages.commands, attributeClassMatch;\n if (!commandName && !(isPlainObject(command) && command.template)) {\n throw new Error('Custom commands should have name specified');\n }\n if (isPlainObject(command)) {\n command = extend(true, {}, command);\n if (command.className && inArray(options.className, command.className.split(' ')) < 0) {\n command.className += ' ' + options.className;\n } else if (command.className === undefined) {\n command.className = options.className;\n }\n if (commandName === 'edit' && isPlainObject(command.text)) {\n command = extend(true, {}, command);\n command.text = command.text.edit;\n }\n if (command.attr) {\n if (isPlainObject(command.attr)) {\n command.attr = stringifyAttributes(command.attr);\n }\n if (typeof command.attr === STRING) {\n attributeClassMatch = command.attr.match(/class=\"(.+?)\"/);\n if (attributeClassMatch && inArray(attributeClassMatch[1], command.className.split(' ')) < 0) {\n command.className += ' ' + attributeClassMatch[1];\n }\n }\n }\n options = extend(true, options, defaultCommands[commandName], { text: messages[commandName] }, command);\n } else {\n options = extend(true, options, defaultCommands[commandName], { text: messages[commandName] });\n }\n return kendo.template(template)(options);\n },\n _hasFooters: function () {\n return !!this.footerTemplate || !!this.groupFooterTemplate || this.footer && this.footer.length > 0 || this.wrapper.find('.k-grid-footer').length > 0;\n },\n _groupable: function () {\n var that = this;\n if (that._groupableClickHandler) {\n that.table.add(that.lockedTable).off(CLICK + NS, that._groupableClickHandler);\n } else {\n that._groupableClickHandler = function (e) {\n var element = $(this), group = element.closest('tr');\n if (element.hasClass('k-i-collapse')) {\n that.collapseGroup(group);\n } else {\n that.expandGroup(group);\n }\n e.preventDefault();\n e.stopPropagation();\n };\n }\n if (that._isLocked()) {\n that.lockedTable.on(CLICK + NS, '.k-grouping-row .k-i-expand, .k-grouping-row .k-i-collapse', that._groupableClickHandler);\n } else {\n that.table.on(CLICK + NS, '.k-grouping-row .k-i-expand, .k-grouping-row .k-i-collapse', that._groupableClickHandler);\n }\n that._attachGroupable();\n },\n _attachGroupable: function () {\n var that = this, wrapper = that.wrapper, groupable = that.options.groupable, draggables = HEADERCELLS + '[' + kendo.attr('field') + ']', filter = that.content ? '.k-grid-header:first ' + draggables : 'table:first>.k-grid-header ' + draggables;\n if (groupable && groupable.enabled !== false) {\n if (!wrapper.has('div.k-grouping-header')[0]) {\n $('
     
    ').addClass('k-grouping-header').prependTo(wrapper);\n }\n if (that.groupable) {\n that.groupable.destroy();\n }\n that.groupable = new ui.Groupable(wrapper, extend({}, groupable, {\n draggable: that._draggableInstance,\n groupContainer: '>div.k-grouping-header',\n dataSource: that.dataSource,\n draggableElements: filter,\n filter: filter,\n allowDrag: that.options.reorderable,\n change: function (e) {\n if (that.trigger('group', { groups: e.groups })) {\n e.preventDefault();\n }\n }\n }));\n }\n },\n _continuousItems: function (filter, cell) {\n if (!this.lockedContent) {\n return;\n }\n var that = this;\n var elements = that.table.add(that.lockedTable);\n var lockedItems = $(filter, elements[0]);\n var nonLockedItems = $(filter, elements[1]);\n var columns = cell ? lockedColumns(that.columns).length : 1;\n var nonLockedColumns = cell ? that.columns.length - columns : 1;\n var result = [];\n for (var idx = 0; idx < lockedItems.length; idx += columns) {\n push.apply(result, lockedItems.slice(idx, idx + columns));\n push.apply(result, nonLockedItems.splice(0, nonLockedColumns));\n }\n return result;\n },\n _selectable: function () {\n var that = this, multi, cell, notString = [], isLocked = that._isLocked(), selectable = that.options.selectable;\n if (selectable) {\n if (that.selectable) {\n that.selectable.destroy();\n }\n selectable = kendo.ui.Selectable.parseOptions(selectable);\n multi = selectable.multiple;\n cell = selectable.cell;\n if (that._hasDetails()) {\n notString[notString.length] = '.k-detail-row';\n }\n if (that.options.groupable || that._hasFooters()) {\n notString[notString.length] = '.k-grouping-row,.k-group-footer';\n }\n notString = notString.join(',');\n if (notString !== '') {\n notString = ':not(' + notString + ')';\n }\n var elements = that.table;\n if (isLocked) {\n elements = elements.add(that.lockedTable);\n }\n var filter = '>' + (cell ? SELECTION_CELL_SELECTOR : 'tbody>tr' + notString);\n that.selectable = new kendo.ui.Selectable(elements, {\n filter: filter,\n aria: true,\n multiple: multi,\n change: function () {\n that.trigger(CHANGE);\n },\n useAllItems: isLocked && multi && cell,\n relatedTarget: function (items) {\n if (cell || !isLocked) {\n return;\n }\n var related;\n var result = $();\n for (var idx = 0, length = items.length; idx < length; idx++) {\n related = that._relatedRow(items[idx]);\n if (inArray(related[0], items) < 0) {\n result = result.add(related);\n }\n }\n return result;\n },\n continuousItems: function () {\n return that._continuousItems(filter, cell);\n }\n });\n if (that.options.navigatable) {\n elements.on('keydown' + NS, function (e) {\n var current = that.current();\n var target = e.target;\n if (e.keyCode === keys.SPACEBAR && $.inArray(target, elements) > -1 && !current.is('.k-edit-cell,.k-header') && current.parent().is(':not(.k-grouping-row,.k-detail-row,.k-group-footer)')) {\n e.preventDefault();\n e.stopPropagation();\n current = cell ? current : current.parent();\n if (isLocked && !cell) {\n current = current.add(that._relatedRow(current));\n }\n if (multi) {\n if (!e.ctrlKey) {\n that.selectable.clear();\n } else {\n if (current.hasClass(SELECTED)) {\n current.removeClass(SELECTED);\n that.trigger(CHANGE);\n return;\n }\n }\n } else {\n that.selectable.clear();\n }\n that.selectable.value(current);\n }\n });\n }\n }\n },\n _clipboard: function () {\n var options = this.options;\n var selectable = options.selectable;\n if (selectable && options.allowCopy) {\n var grid = this;\n if (!options.navigatable) {\n grid.table.add(grid.lockedTable).attr('tabindex', 0).on('mousedown' + NS + ' keydown' + NS, '.k-detail-cell', function (e) {\n if (e.target !== e.currentTarget) {\n e.stopImmediatePropagation();\n }\n }).on('mousedown' + NS, NAVROW + '>' + NAVCELL, proxy(tableClick, grid));\n }\n grid.copyHandler = proxy(grid.copySelection, grid);\n grid.updateClipBoardState = function () {\n if (grid.areaClipBoard) {\n grid.areaClipBoard.val(grid.getTSV()).focus().select();\n }\n };\n grid.bind('change', grid.updateClipBoardState);\n grid.wrapper.on('keydown', grid.copyHandler);\n grid.clearAreaHandler = proxy(grid.clearArea, grid);\n grid.wrapper.on('keyup', grid.clearAreaHandler);\n }\n },\n copySelection: function (e) {\n if (e instanceof jQuery.Event && !(e.ctrlKey || e.metaKey) || $(e.target).is('input:visible,textarea:visible') || window.getSelection && window.getSelection().toString() || document.selection && document.selection.createRange().text) {\n return;\n }\n if (!this.areaClipBoard) {\n this.areaClipBoard = $('