{"version":3,"sources":["kendo.grid.js"],"names":["f","define","$","normalizeText","text","String","replace","REPLACE_REGEX","SPACE","objectKey","object","key","parts","push","sort","join","hashKey","str","i","hash","length","charCodeAt","zeroSize","width","height","baseline","measureText","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","styleKey","cacheKey","cachedResult","baselineMarker","textStr","box","_baselineMarker","cloneNode","textContent","appendChild","body","offsetWidth","offsetHeight","offsetTop","parentNode","removeChild","marker","deepExtend","jQuery","amd","a1","a2","a3","undefined","attrEquals","attrName","attrValue","attr","groupCells","count","Array","stringifyAttributes","attributes","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","proxy","normalizeColumns","columns","encoded","hide","parentIds","column","hidden","uid","field","isVisible","addHiddenStyle","footerAttributes","headerAttributes","guid","headers","id","columnParent","parents","columnParents","inserted","splice","setColumnVisibility","visible","setVisibility","show","method","removeHiddenStyle","setColumnMediaVisibility","setColumnMatchesMedia","hideByMedia","_hideByMedia","matchesMedia","columnMatchesMedia","isUndefined","media","isCellVisible","display","isElementVisible","element","visibleColumns","grep","columnsWithMedia","minScreenWidth","Error","concat","toJQuery","toArray","updateCellRowSpan","cell","sourceLockedColumnsCount","lockedColumnDepth","depth","lockedColumns","nonLockedColumnDepth","nonLockedColumns","rowSpan","moveCellsBetweenContainers","sources","target","leafs","destination","groups","action","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","cellCounts","findParentColumnWithChildren","index","rtl","targetLocked","locked","findReorderTarget","masterColumns","parent","parentColumns","targetIndex","inArray","flatColumnsInDomOrder","flatColumns","targetParentContainerIndex","hiddenLeafColumnsCount","counter","sumWidths","cols","parseInt","columnsWidth","colWidth","indexOf","removeRowSpanValue","removeEmptyRows","emptyRowsCount","remove","mapColumnToCellRows","rowIndex","visibleNonLockedColumns","visibleLockedColumns","visibleLeafColumns","childColumns","getColumnsFields","leafDataCells","indexAttr","a","b","indexA","indexB","parentColumnsCells","parentCellsWithChildren","prevCells","parentCell","closest","headerRows","level","prevAll","colSpan","Math","getAttribute","childColumnsCells","child","colSpanAttr","next","appendContent","tbody","table","html","empty","placeholder","tmp","tbodySupportsInnerHtml","innerHTML","firstChild","replaceChild","match","hasHiddenStyle","normalizeCols","hasDetails","colgroup","format","is","append","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","scrollLeft","focusElement","one","e","preventDefault","focus","isColumnGroupable","grid","groupable","isGroupedBy","isColumnEditable","model","selectable","editable","isInputElement","tableClick","currentTarget","isHeader","lockedTable","headerTable","lockedHeader","isInput","preventScroll","currentTable","roleSelector","_setCurrent","navigatable","isIE8","_activeElement","CHECKBOXINPUT","contains","support","touch","leftMostPosition","webkit","parseVirtualSettings","asLowerString","toLowerCase","isElementVisibleInWrapper","wrapper","halfHeight","top","outerHeight","math","abs","floor","isInEdit","groupCellBuilder","headerTemplateIndex","ARIALABEL","COLLAPSE","groupCellLockedContentBuilder","groupRowBuilder","colspan","groupRowLockedContentBuilder","ui","DataSource","ObservableObject","tbodyInnerHtml","activeElement","Widget","outerWidth","_outerWidth","_outerHeight","keys","prototype","isFunction","isEmptyObject","DOT","PROGRESS","ERROR","HIERARCHY_CELL_CLASS","DATA_CELL","SELECTION_CELL_SELECTOR","NAVROW","NAVCELL","ITEMROW","FIRSTITEMROW","LASTITEMROW","FIRSTNAVITEM","HEADERCELLS","CONTENTRLOCKEDCONTAINER","GROUPCELLCLASS","EDIT","BEFOREEDIT","SAVE","REMOVE","DETAILINIT","FILTERMENUINIT","COLUMNMENUINIT","FILTERMENUOPEN","COLUMNMENUOPEN","CELLCLOSE","CHANGE","COLUMNHIDE","COLUMNSHOW","SAVECHANGES","DATABOUND","DETAILEXPAND","DETAILCOLLAPSE","ITEM_CHANGE","PAGE","PAGING","SCROLL","SYNC","FOCUSED","FOCUSABLE","SELECTED","CHECKBOX","NORECORDSCLASS","LINK_CLASS","ICON_CLASS","ORDER_CLASS","HEADER_COLUMN_MENU_CLASS","FILTER_MENU_CLASS","RESIZE","COLUMNRESIZE","COLUMNREORDER","COLUMNLOCK","COLUMNUNLOCK","NAVIGATE","MOUSEDOWN","HEIGHT","TABINDEX","FUNCTION","BOTTOM","CONTAINER_FOR","FIELD","INPUT","INCELL","INLINE","UNIQUE_ID","MINCOLSPANVALUE","COLSPAN","OVERFLOW","HIDDEN","SORT","GROUP_SORT","DELETECONFIRM","NORECORDS","CONFIRMDELETE","CANCELDELETE","EXPAND","formatRegExp","templateHashRegExp","whitespaceRegExp","RegExp","COMMANDBUTTONTMPL","SELECTCOLUMNTMPL","SELECTCOLUMNHEADERTMPL","isRtl","isIE7","isIE11","isMac","navigator","userAgent","classNames","widget","scrollContainer","VirtualScrollable","that","fn","call","_refreshHandler","refresh","setDataSource","dataSource","wrap","unbind","bind","useRanges","itemHeight","noop","prefetch","maxScrollHeight","events","destroy","verticalScrollbar","off","clearTimeout","_timeout","_scrollingTimeout","drag","scrollbar","overflow","first","_wheelScroll","_wrapper","kineticScrollNeeded","UserEvents","global","allowSelection","start","sender","capture","move","scrollTop","y","delta","x","_scroll","overflow-y","ctrlKey","wheelDeltaY","clientHeight","scrollHeight","delayLoading","rowHeight","skip","_rangeStart","innerHeight","isScrollingUp","_scrollbarTop","firstItemIndex","lastItemOffset","ceil","lastItemIndex","_preventScroll","_scrollTop","_scrolling","_fetch","trigger","_page","take","scrollToTop","_scrollTo","scrollToBottom","_scrollWrapperToTop","_scrollWrapperToBottom","_scrollWrapperOnColumnResize","initialScrollTop","scrollWidth","clientWidth","_wrapperScrolled","_isScrolledToBottom","_isWrapperScrolledToBottom","_isScrolledToTop","itemIndex","rangeStart","pageSize","scrollIntoView","containerHeight","containerScroll","elementOffset","elementHeight","scrollingUp","currentSkip","fetching","prefetchAt","webkitCorrection","min","total","_fetching","callback","inRange","progress","range","repaintScrollbar","shouldScrollWrapper","maxHeight","wrapperElement","wasScrolledToBottom","addScrollBarHeight","totalHeight","cancel","page","defaultCommands","create","iconClass","save","edit","update","canceledit","excel","pdf","search","Grid","DataBoundWidget","_events","_element","_aria","_columns","_dataSource","_tbody","_pageable","_thead","_groupable","_toolbar","_setContentHeight","_templates","_navigatable","_selectable","_clipboard","_details","_editable","_attachCustomCommandsEvent","_adaptiveColumns","_minScreenSupport","autoBind","fetch","_group","_groups","_footer","addClass","_resizeHandler","resize","notify","scrollableContent","scrollable","virtual","virtualScrollable","toolbar","filterable","sortable","allowCopy","pageable","persistSelection","rowTemplate","altRowTemplate","noRecords","resizable","reorderable","columnMenu","detailTemplate","columnResizeHandleWidth","mobile","messages","cancelDelete","confirmation","confirmDelete","expandCollapseColumnHeader","groupHeader","ungroupHeader","_angularItems","_destroyColumnAttachments","_navigatableTables","pager","timer","_progressTimeOut","_collapseGroupsTimeOut","_endlessFetchTimeOut","_destroyGroupable","clearArea","_selectedIds","copyHandler","updateClipBoardState","clearAreaHandler","_resizeUserEvents","_resizeHandleDocumentClickHandler","_destroyVirtualScrollable","editableUserEvents","_lockedContentUserEvents","_destroyEditable","_progressHandler","_errorHandler","_clearSortClasses","_removeLockedContainers","pane","_isMobile","minScreenResizeHandler","_detachColumnMediaResizeHandler","_draggableInstance","lockedRowTemplate","lockedAltRowTemplate","footerTemplate","groupFooterTemplate","lockedGroupFooterTemplate","noRecordsTemplate","scrollables","footer","lockedFooter","_groupableClickHandler","_groupRows","_setContentWidthHandler","getOptions","initialData","_data","group","aggregate","transport","$angular","setOptions","mobileWrapper","currentOptions","after","removeClass","_setEvents","_items","tr","dataItems","n","resizeHandle","angular","each","filterMenu","_cellId","_hasDetails","_createResizeHandle","headerWrap","ieCorrection","firefoxCorrection","leftMargin","invisibleSpace","leftBorderWidth","left","indicatorWidth","halfResizeHandle","rtlCorrection","parseFloat","mozilla","_autoFitLeafColumn","_positionColumnResizeHandle","lockedHead","button","buttons","which","hasAttribute","_resizeHandleDocumentClick","_resetResizeHandleHeader","_hideResizeHandle","_positionColumnResizeHandleTouch","threshold","minHold","hold","resizeColumn","columnWidth","col","constrain","totalWidth","isLocked","isHidden","mobileOS","contentTable","header","columnMinWidth","minResizableWidth","gridWidth","_footerWidth","_scrollVirtualWrapperOnColumnResize","_applyLockedContainersWidth","_syncLockedContentHeight","_syncLockedHeaderHeight","_resizable","columnStart","isMobile","Resizable","handle","hint","location","rtlMultiplier","currentWidth","resizeend","newWidth","oldWidth","_draggable","kendoDraggable","autoScroll","dragstart","not","dragend","title","_reorderable","kendoReorderable","draggable","dragOverContainers","lockable","inSameContainer","change","oldIndex","newIndex","reorderColumn","_reorderHeader","sourceLockedColumns","targetLockedColumns","destPosition","_reorderContent","footerCol","beforeVisibleColumn","columnsArray","lockedRows","visibleSources","destIndex","colSourceIndex","colDest","lockedCount","headerCol","_findClosestVisibleColumnIndex","slice","prev","_hasFilterRow","_hasVirtualColumns","reverse","closestVisibleColumn","leafIndex","autoFitColumn","minWidth","contentDiv","footerTable","j","tables","oldColumnWidth","newColumnWidth","visibleLocked","notGroupOrHierarchyCol","notGroupOrHierarchyVisibleCell","safari","lockChanged","sourceColumns","destColumn","virtualScroll","groupHeaderColumnTemplateColumns","groupHeaderColumnTemplate","_updateLockedCols","_updateCols","_updateColumnCellIndex","_updateColumnSorters","_renderGroupRows","_updateTablesWidth","_updateFirstColumnClass","lockColumn","unlockColumn","cellIndex","td","lockedColumnOffset","_modelForContainer","_editMode","getByUid","mode","handler","_editContainer","end","closeCell","_scrollVirtualWrapper","editContainer","_mousedownOnEditCell","tap","isLockedCell","has","blur","editCell","shouldCloseCell","_virtualColScroll","editRow","_isVirtualInlineEditable","stopPropagation","removeRow","_confirmation","virtualCols","_attachModelChange","_shouldClearEditableState","_clearEditableState","kendoEditable","fields","editor","values","skipFocus","_isVirtualIncellEditable","_editableState","_relatedRow","_syncLockedScroll","_adjustLockedHorizontalScrollBar","touchScroller","_adjustRowsHeight","_syncLockedFooterHeight","editView","_editCancelClickHandler","_editUpdateClickHandler","_detachModelChange","_destroyEditView","_editableIsClosing","close","_confirmDialog","purge","navigate","_modelChangeHandler","_modelChange","isCancel","type","_displayCell","ns","dataItem","storage","settings","Template","templateSettings","tmpl","template","_cellTmpl","_removeRow","modelId","schema","cancelRow","idField","sync","_createPopupEditor","_createInlineEditor","_editCancelClick","_editUpdateClick","saveRow","currentIndex","updateText","cancelText","updateIconClass","cancelIconClass","tempCommand","editMenuGuid","unescape","_createButton","kendoWindow","modal","userTriggered","clearContainer","_openPopUpEditor","windowEditor","windowOptions","_editAnimation","center","open","Editable","cancelChanges","_displayRow","valid","deferred","Deferred","reject","promise","resolve","related","newRow","nextRow","angularElements","angularData","isSelected","isAlt","replaceWith","_checkBoxSelection","select","_showMessage","confirmDialog","Confirm","closable","okText","done","fail","confirm","_isVirtualEditable","_virtualPageToTop","saveChanges","addRow","createAt","view","createAtBottom","virtualEditable","serverPaging","totalPages","_removeCurrent","_virtualAddRow","insert","_editModel","_firstEditableColumnIndex","_virtualAddRowAtBottom","_virtualAddRowAtTop","at","_virtualPageToBottom","_virtualPage","_toolbarTmpl","prependTo","saveAsExcel","saveAsPDF","input","_searchTimeOut","searchFields","expression","filters","logic","endless","_endlessPageSize","operator","searchText","attributeClassMatch","split","_hasFooters","groupRow","collapseGroup","expandGroup","_isLocked","_attachGroupable","draggables","enabled","chrome","Groupable","groupContainer","draggableElements","allowDrag","_skip","_pageSize","_take","_addGroupableOptionsToHeader","headerCell","columnOptions","columnFieldMap","headerCells","_headerCells","cellFieldAttr","kendoGroupable","_removeGroupableOptionsFromHeader","removeData","_continuousItems","lockedItems","nonLockedItems","apply","multi","notString","Selectable","parseOptions","multiple","aria","selectedValues","_persistSelectedRows","_uncheckCheckBoxes","_checkRows","_toggleHeaderCheckState","useAllItems","relatedTarget","continuousItems","keyCode","SPACEBAR","shiftKey","_deselectCheckRows","clear","_lastActive","LEFT","RIGHT","UP","DOWN","selectRange","_firstSelectee","stopImmediatePropagation","copySelection","areaClipBoard","val","getTSV","Event","metaKey","getSelection","selection","createRange","opacity","cellsOffset","lockedCols","inLockedArea","rowsOffset","selected","delimeter","onlyVisible","cellText","_anyColumnHasMediaQuery","_setColumnsMediaVisibility","_attachColumnMediaResizeHandler","_columnsWithMediaQuery","_columnMediaResizeHandler","_onColumnMediaResize","_setContentMediaWidth","_setColumnMediaVisibility","_showColumnByMedia","_hideColumnByMedia","showColumn","initiallyHidden","hideColumn","headerColumns","headerColgroup","headerColumnsCount","visibleHeaderColumnsCount","hiddenHeaderColumnsCount","totalHeaderWidth","currentHeaderWidth","colgroupChild","columnStyleWidth","any","hideMinScreenCols","screenWidth","innerWidth","screen","_iterateMinScreenCols","_relatedCell","clearSelection","selectableoptions","checked","prop","allRows","dataSourceOptions","selectedViewIds","selectedKeyNames","property","ids","_updateCurrentAttr","headerId","removeAttr","_current","_scrollCurrent","tableContainer","isInLockedContainer","isInContent","scrollableContainer","addBack","_rowVirtualIndex","preventTrigger","siblings","_virtualCellIndex","_lastCellIndex","elementToLowercase","tagName","isHorizontal","elementOffsetDir","containerOffsetDir","offsetLeft","bottomDistance","edge","dataTables","headerTables","_openHeaderMenu","_tableFocus","_tableBlur","_tableKeyDown","altKey","_setTabIndex","_findCellIndex","startIndex","reversed","_scrollToColumn","leafsCols","HOME","END","handled","requestInProgress","canHandle","isDefaultPrevented","_moveUp","_moveDown","_moveRight","_moveLeft","PAGEDOWN","_handlePageDown","PAGEUP","_handlePageUp","_handleHome","_handleEnd","_handleSpaceKey","ENTER","F2","_handleEnterKey","ESC","_handleEscKey","TAB","_handleTabKey","collapseRow","_moveColumn","_prevHorizontalCell","_tabNext","_horizontalContainer","expandRow","_nextHorizontalCell","nextAll","_prevVerticalCell","_verticalContainer","_nextVerticalCell","isLeft","ctrl","rowContainer","isInLockedTable","isInBody","isInCell","_handleEditing","active","_toggleCurrent","descriptors","label","_canDrag","dir","link","focusable","originalIndex","_currentDataIndex","lockedColumnsCount","tmpIndex","currentRowCells","hiddenColumns","up","step","right","back","switchRow","isEdited","isIE","oldIE","opera","triggerHandler","_initMobile","_createPane","Pane","viewEngine","viewOptions","renderOnInit","wrapInSections","detachOnHide","detachOnDestroy","_scrollable","originalPageSize","hasVirtualScroll","_createVirtualScrollable","_scrollLeft","isScrollingLeft","_endlessFetchInProgress","_skipRerenderItemsCount","_cacheEditableState","_restoreEditableState","movable","_averageRowHeight","scroll","_focusEditable","_onVirtualPaging","_isVirtualPopupEditable","editableState","editedModel","inlineMode","incellMode","virtualColumns","_getByUid","editedField","_canFocusEditable","widgetInstance","_renderNoRecordsContent","noRecordsElement","_setContentWidth","expander","hiddenDivClass","hiddenDiv","isNaN","footerWrap","contentWidth","nonLockedCols","nonLockedColsWidth","isGridHeightSet","scrollableHeight","initialHeight","newHeight","currentRowHeight","itemsCount","_rowHeight","_sum","_measures","_sortHandler","_requestStart","_error","_progress","relatedRow","selectableRow","childCells","originalCells","Pager","_togglePagerVisibility","_wrapFooter","_appendLockedColumnFooter","footerRow","_appendCols","_columnMenu","menu","menuOptions","hasMultiColumnHeaders","initCallback","openCallback","closeCallback","sortHandler","filterHandler","compare","forceUnique","checkSource","owner","filtering","kendoColumnMenu","_filterable","columnFilterable","filterInit","filterOpen","kendoFilterMultiCheck","kendoFilterMenu","_filterRow","rowheader","suggestDataSource","operators","customDataSource","cellOptions","_updateHeader","delay","inputWidth","suggestionOperator","minLength","dataTextField","showOperators","kendoFilterCell","_sortable","sorterInstance","kendoColumnSorter","initialColumns","_updateColumnIDs","_checkboxClick","_headerCheckboxClick","checkBox","parentGrid","getKendoGrid","isSelecting","_tmpl","alt","skipGroupCells","paramName","fieldAttr","dirtyCellTemplate","expr","_dirtyCellTemplate","dirtyField","charAt","_headerCellText","headerTemplate","_dirtyIndicatorTemplate","stringify","useWithBlock","_virtualCols","considerNext","widths","c","sumOfWidths","colsToRender","firstColspan","lastColspan","widthOfHiddenColumns","columnLeafs","columnsLocked","groupHeaderColumnTemplateLockedColumns","groupHeaderColumnTemplateNonLockedColumns","_detailTmpl","_footerTmpl","g","_groupHeaderTmpl","lockedGroupHeaderColumnTemplate","_noRecordsTmpl","defaultTemplate","scrollableNoGridHeightStyles","templateName","rowClass","scope","fieldsMap","_emptyAggregates","templateFunctionStorage","templateFunctionCount","hasFiltering","columnsWithoutFiltering","detailRow","expanding","masterRow","ariaLabelText","ariaExpandText","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","headerContent","_updateHeadersAttr","_prepareColumns","_retrieveFirstColumn","parentRow","childRow","totalColSpan","_updateHeaderCols","_autoColumns","toJSON","_rowsHtml","templates","_groupData","skipFooter","firstColumn","footerDefaults","_groupAggregatesDefaultObject","groupItems","headerData","footerData","_groupRowHtml","groupHeaderBuilder","skipColspan","skipLastGroup","groupData","firstVisibleColumnGroupHeaderTemplate","groupHeaderTemplate","_skippedGroups","shift","toHide","groupToCollapse","showFooter","footerCount","relatedGroup","_groupToCollapse","footersVisibility","groupsCount","toggleVisibility","pop","_firstDataItem","grouped","headerCellIndex","_columnVisibilitySetter","_setParentsVisibility","_updateContentWidth","predicate","p","originalColumn","columnLeafIndex","_resize","force","_isActiveInTable","contentScrollLeft","cachedItemsToSkip","isCurrentInHeader","_renderContent","_renderLockedContent","_restoreCurrent","contentResized","resetTouchEvents","_muteAngularRebind","_restoreSelection","selectedRows","dataItemKey","cmd","_cleanupDetailItems","_angularGroupItems","_angularGroupFooterItems","flatViewLength","endlessAppend","flatView","groupRowBuilderFunc","groupHeaderData","prevElement","newGroupRowElement","currentRow","firstColumnGroupData","alwaysVisible","rows2","containers","containersLength","heights","ExcelMixin","PDFMixin","_drawPDF_autoPageBreak","allPages","startingPage","draw","cont","_destructive","pageNumber","pageNum","drawing","drawDOM","clone","always","then","err","renderPage","origBody","paddingRight","_initPDFProgress","_drawPDF","exportPage","doc","_drawPDFShadow","avoidLinks","args","paperSize","Group","pb","loading","kendoProgressBar","chunkCount","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 var REPLACE_REGEX = /\\r?\\n|\\r|\\t/g;\n var SPACE = ' ';\n function normalizeText(text) {\n return String(text).replace(REPLACE_REGEX, SPACE);\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: pre!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, options) {\n if (options === void 0) {\n options = {};\n }\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 = options.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 var textStr = options.normalizeText !== false ? normalizeText(text) : String(text);\n measureBox.textContent = textStr;\n measureBox.appendChild(baselineMarker);\n document.body.appendChild(measureBox);\n if (textStr.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 normalizeText: normalizeText\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.ooxml',\n 'kendo.excel',\n 'kendo.pane',\n 'kendo.progressbar',\n 'kendo.pdf',\n 'kendo.dialog',\n 'kendo.pane',\n 'kendo.switch'\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 'sortable'\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 'dialog',\n 'pane',\n 'switch'\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, ObservableObject = kendo.data.ObservableObject, 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, contains = $.contains, math = Math, DOT = '.', PROGRESS = 'progress', ERROR = 'error', HIERARCHY_CELL_CLASS = 'k-hierarchy-cell', DATA_CELL = ':not(.k-group-cell):not([' + kendo.attr('virtual') + ']):not(.k-hierarchy-cell:not(:has(.k-icon.k-i-collapse,.k-icon.k-i-expand))):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-detail-cell):not(.k-hierarchy-cell):visible', ITEMROW = 'tr:not(.k-grouping-row):not(.k-detail-row):not(.k-footer-template):not(.k-group-footer):visible', FIRSTITEMROW = ITEMROW + ':first', LASTITEMROW = ITEMROW + ':last', FIRSTNAVITEM = NAVROW + ':first>' + NAVCELL + ':first', HEADERCELLS = 'th.k-header:not(.k-group-cell):not(.k-hierarchy-cell)', NS = '.kendoGrid', CONTENTRLOCKEDCONTAINER = 'k-grid-content-locked', GROUPCELLCLASS = 'k-group-cell', EDIT = 'edit', BEFOREEDIT = 'beforeEdit', SAVE = 'save', REMOVE = 'remove', DETAILINIT = 'detailInit', FILTERMENUINIT = 'filterMenuInit', COLUMNMENUINIT = 'columnMenuInit', FILTERMENUOPEN = 'filterMenuOpen', COLUMNMENUOPEN = 'columnMenuOpen', CELLCLOSE = 'cellClose', CHANGE = 'change', COLUMNHIDE = 'columnHide', COLUMNSHOW = 'columnShow', SAVECHANGES = 'saveChanges', DATABOUND = 'dataBound', DETAILEXPAND = 'detailExpand', DETAILCOLLAPSE = 'detailCollapse', ITEM_CHANGE = 'itemchange', PAGE = 'page', PAGING = 'paging', SCROLL = 'scroll', SYNC = 'sync', FOCUSED = 'k-state-focused', FOCUSABLE = ':kendoFocusable', SELECTED = 'k-state-selected', CHECKBOX = 'k-checkbox', CHECKBOXINPUT = 'input[data-role=\\'checkbox\\'].' + CHECKBOX, NORECORDSCLASS = 'k-grid-norecords', LINK_CLASS = 'k-link', ICON_CLASS = 'k-icon', ORDER_CLASS = 'k-sort-order', HEADER_COLUMN_MENU_CLASS = 'k-header-column-menu', FILTER_MENU_CLASS = 'k-grid-filter', RESIZE = 'resize', COLUMNRESIZE = 'columnResize', COLUMNREORDER = 'columnReorder', COLUMNLOCK = 'columnLock', COLUMNUNLOCK = 'columnUnlock', NAVIGATE = 'navigate', CLICK = 'click', MOUSEDOWN = 'mousedown', HEIGHT = 'height', TABINDEX = 'tabIndex', FUNCTION = 'function', STRING = 'string', BOTTOM = 'bottom', CONTAINER_FOR = 'container-for', FIELD = 'field', INPUT = 'input', INCELL = 'incell', INLINE = 'inline', UNIQUE_ID = 'uid', MINCOLSPANVALUE = 1, COLSPAN = 'colSpan', OVERFLOW = 'overflow', HIDDEN = 'hidden', SORT = 'sort', GROUP_SORT = 'group-sort', DELETECONFIRM = 'Are you sure you want to delete this record?', NORECORDS = 'No records available.', CONFIRMDELETE = 'Delete', CANCELDELETE = 'Cancel', COLLAPSE = 'Collapse', EXPAND = 'Expand', ARIALABEL = 'aria-label', 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 = '# if (iconClass) {#' + '#=text#' + '# } else { #' + '#=text#' + '# } #', SELECTCOLUMNTMPL = '', SELECTCOLUMNHEADERTMPL = '', isRtl = false, browser = kendo.support.browser, isIE7 = browser.msie && browser.version == 7, isIE8 = browser.msie && browser.version == 8;\n var isIE11 = browser.msie && browser.version === 11;\n var isMac = /Mac OS/.test(navigator.userAgent);\n var classNames = {\n content: 'k-content',\n widget: 'k-widget',\n scrollContainer: 'k-scroll-container'\n };\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 that.dataSource.options.useRanges = true;\n },\n options: {\n name: 'VirtualScrollable',\n itemHeight: $.noop,\n prefetch: true,\n maxScrollHeight: 250000\n },\n events: [\n PAGING,\n PAGE,\n SCROLL\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 clearTimeout(that._timeout);\n if (that._scrollingTimeout) {\n clearTimeout(that._scrollingTimeout);\n }\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 that._wrapper();\n if (kendo.support.kineticScrollNeeded || kendo.support.touch) {\n that.wrapper.css('touch-action', 'none');\n that.drag = new kendo.UserEvents(that.wrapper, {\n global: true,\n allowSelection: 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 _wrapper: function () {\n var that = this;\n if (isIE11) {\n that.wrapper.css({ 'overflow-y': SCROLL });\n that.element.css(isRtl ? 'padding-left' : 'padding-right', 0);\n }\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), lastItemOffset = isScrollingUp ? math.ceil(height / rowHeight) : math.floor(height / rowHeight), lastItemIndex = math.max(firstItemIndex + lastItemOffset, 0);\n if (that._preventScroll) {\n that._preventScroll = false;\n return;\n }\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 that.trigger(SCROLL);\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 scrollToTop: function () {\n this._scrollTo(0);\n },\n scrollToBottom: function () {\n var scrollbar = this.verticalScrollbar;\n this._scrollTo(scrollbar[0].scrollHeight - scrollbar.height());\n },\n _scrollWrapperToTop: function () {\n this.wrapper.scrollTop(0);\n },\n _scrollWrapperToBottom: function () {\n this.wrapper.scrollTop(this.wrapper[0].scrollHeight);\n },\n _scrollWrapperOnColumnResize: function () {\n var that = this;\n var wrapper = this.wrapper;\n var initialScrollTop = wrapper.scrollTop();\n if (wrapper[0].scrollWidth > wrapper[0].clientWidth) {\n if (!that._wrapperScrolled && initialScrollTop || that._isScrolledToBottom()) {\n wrapper.scrollTop(initialScrollTop + kendo.support.scrollbar());\n that._scrollTop = wrapper.scrollTop();\n that._wrapperScrolled = true;\n }\n } else if (that._wrapperScrolled) {\n if (!that._isWrapperScrolledToBottom()) {\n wrapper.scrollTop(initialScrollTop - kendo.support.scrollbar());\n that._scrollTop = wrapper.scrollTop();\n }\n that._wrapperScrolled = false;\n }\n },\n _scrollTo: function (scrollTop) {\n var that = this;\n var scrollbar = that.verticalScrollbar;\n if (scrollbar.scrollTop() !== scrollTop) {\n that._preventScroll = true;\n }\n that.wrapper.scrollTop(scrollTop);\n that._scrollTop = that.wrapper.scrollTop();\n scrollbar.scrollTop(scrollTop);\n that._scrollbarTop = scrollbar.scrollTop();\n },\n _isScrolledToTop: function () {\n return this.verticalScrollbar.scrollTop() === 0;\n },\n _isScrolledToBottom: function () {\n var scrollbar = this.verticalScrollbar;\n var scrollTop = scrollbar.scrollTop();\n return scrollTop > 0 && scrollTop >= parseInt(scrollbar[0].scrollHeight - scrollbar.height(), 10);\n },\n _isWrapperScrolledToBottom: function () {\n var wrapper = this.wrapper;\n return wrapper.scrollTop() >= parseInt(wrapper[0].scrollHeight - wrapper.height(), 10);\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;\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._isScrolledToBottom() ? this._scrollTop || container.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 var scrollbar = that.verticalScrollbar;\n var webkitCorrection = browser.webkit ? 1 : 0;\n if (firstItemIndex < rangeStart) {\n fetching = true;\n rangeStart = math.max(0, lastItemIndex - take);\n that._scrollTop = scrollbar.scrollTop() - rangeStart * itemHeight;\n that._page(rangeStart, take);\n } else if (lastItemIndex >= rangeStart + take && !scrollingUp) {\n fetching = true;\n rangeStart = math.min(firstItemIndex, dataSource.total() - take);\n if (scrollbar.scrollTop() >= scrollbar[0].scrollHeight - scrollbar[0].offsetHeight - webkitCorrection) {\n that._scrollTop = that.wrapper[0].scrollHeight - that.wrapper[0].offsetHeight;\n } else {\n that._scrollTop = itemHeight;\n }\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, callback) {\n var that = this, delayLoading = !that.options.prefetch, dataSource = that.dataSource;\n callback = isFunction(callback) ? callback : $.noop;\n if (that.trigger(PAGING, {\n skip: skip,\n take: take\n })) {\n return;\n }\n clearTimeout(that._timeout);\n that._fetching = true;\n that._rangeStart = skip;\n if (dataSource.inRange(skip, take)) {\n kendo.ui.progress($(that.wrapper).parent(), true);\n dataSource.range(skip, take, function () {\n kendo.ui.progress($(that.wrapper).parent(), false);\n callback();\n that.trigger(PAGE);\n });\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, function () {\n kendo.ui.progress(that.wrapper.parent(), false);\n callback();\n that.trigger(PAGE);\n });\n }\n }, 100);\n }\n },\n repaintScrollbar: function (shouldScrollWrapper) {\n var that = this, html = '', maxHeight = that.options.maxScrollHeight, dataSource = that.dataSource, scrollbar = !kendo.support.kineticScrollNeeded ? kendo.support.scrollbar() : 0, wrapperElement = that.wrapper[0], totalHeight, idx, itemHeight;\n var wasScrolledToBottom = that._isScrolledToBottom();\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 if (wasScrolledToBottom && !that._isScrolledToBottom()) {\n that.scrollToBottom();\n }\n if (typeof that._scrollTop !== 'undefined' && !!shouldScrollWrapper) {\n wrapperElement.scrollTop = that._scrollTop;\n that._scrollWrapperOnColumnResize();\n }\n },\n refresh: function (e) {\n var that = this, dataSource = that.dataSource, rangeStart = that._rangeStart;\n var action = (e || {}).action;\n var shouldScrollWrapper = that._isScrolledToBottom() || !action || action !== ITEM_CHANGE && action !== REMOVE && action !== SYNC;\n kendo.ui.progress(that.wrapper.parent(), false);\n clearTimeout(that._timeout);\n that.repaintScrollbar(shouldScrollWrapper);\n if (that.drag) {\n that.drag.cancel();\n }\n if (typeof rangeStart !== 'undefined' && !that._fetching) {\n if (!action || action !== SYNC && action !== ITEM_CHANGE) {\n that._rangeStart = dataSource.skip();\n }\n if (dataSource.page() === 1 && (!action || action !== SYNC && action !== ITEM_CHANGE)) {\n that.verticalScrollbar[0].scrollTop = 0;\n }\n }\n that._fetching = false;\n }\n });\n function attrEquals(attrName, attrValue) {\n return '[' + kendo.attr(attrName) + '=' + attrValue + ']';\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 if (attributes[attr] !== '') {\n result += attr + '=\"' + attributes[attr] + '\"';\n }\n }\n }\n return result;\n }\n var defaultCommands = {\n create: {\n text: 'Add new record',\n className: 'k-grid-add',\n iconClass: 'k-icon k-i-plus'\n },\n cancel: {\n text: 'Cancel changes',\n className: 'k-grid-cancel-changes',\n iconClass: 'k-icon k-i-cancel'\n },\n save: {\n text: 'Save changes',\n className: 'k-grid-save-changes',\n iconClass: 'k-icon k-i-check'\n },\n destroy: {\n text: 'Delete',\n className: 'k-grid-delete',\n iconClass: 'k-icon k-i-close'\n },\n edit: {\n text: 'Edit',\n className: 'k-grid-edit',\n iconClass: 'k-icon k-i-edit'\n },\n update: {\n text: 'Update',\n className: 'k-primary k-grid-update',\n iconClass: 'k-icon k-i-check'\n },\n canceledit: {\n text: 'Cancel',\n className: 'k-grid-cancel',\n iconClass: 'k-icon k-i-cancel'\n },\n excel: {\n text: 'Export to Excel',\n className: 'k-grid-excel',\n iconClass: 'k-icon k-i-file-excel'\n },\n pdf: {\n text: 'Export to PDF',\n className: 'k-grid-pdf',\n iconClass: 'k-icon k-i-file-pdf'\n },\n search: {\n text: 'Search...',\n className: 'k-grid-search'\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, parentIds) {\n return map(columns, function (column) {\n column = typeof column === STRING ? { field: column } : column;\n var hidden;\n column.parentIds = parentIds;\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 var uid = kendo.guid();\n column.headerAttributes = extend({ headers: parentIds }, column.headerAttributes);\n if (!column.headerAttributes.id) {\n column.headerAttributes = extend({ id: uid }, column.headerAttributes);\n } else {\n uid = column.headerAttributes.id;\n }\n if (column.columns) {\n column.columns = normalizeColumns(column.columns, encoded, hidden, parentIds ? parentIds + ' ' + uid : uid);\n }\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 setVisibility(column, visible, visible);\n }\n function setVisibility(column, visible, show) {\n var method = show ? 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 setColumnMediaVisibility(column, visible) {\n setColumnMatchesMedia(column);\n var hideByMedia = column._hideByMedia;\n setVisibility(column, visible, hideByMedia ? column.matchesMedia : visible);\n }\n function setColumnMatchesMedia(column) {\n column.matchesMedia = columnMatchesMedia(column);\n }\n function columnMatchesMedia(column) {\n return column && (isUndefined(column.media) || !isUndefined(column.media) && kendo.matchesMedia(column.media));\n }\n function isCellVisible() {\n return this.style.display !== 'none';\n }\n function isElementVisible(element) {\n return $(element)[0].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 && column.matchesMedia !== false;\n if (result && column.columns) {\n result = visibleColumns(column.columns).length > 0;\n }\n return result;\n });\n }\n function columnsWithMedia(columns) {\n var result = [];\n var column;\n for (var i = 0; i < columns.length; i++) {\n column = columns[i];\n if (!isUndefined(column.media)) {\n if (!isUndefined(column.minScreenWidth)) {\n throw new Error('Using \\'media\\' and \\'minScreenWidth\\' options at the same time is not supported.');\n }\n result.push(column);\n }\n if (column.columns) {\n result = result.concat(columnsWithMedia(column.columns));\n }\n }\n return result;\n }\n function isUndefined(value) {\n return typeof value === 'undefined';\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, action) {\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, action);\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, action) {\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)[action](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, action);\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 var targetLocked;\n do {\n target = columns[index];\n index += rtl ? 1 : -1;\n targetLocked = !!target.locked;\n } while (target && index > -1 && index < columns.length && target != source && !target.columns && targetLocked === locked);\n return target;\n }\n function findReorderTarget(columns, target, source, before, masterColumns) {\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 || !source.locked && !target.columns && !before) {\n index--;\n } else if (index > 0 || index === 0 && !before) {\n index++;\n }\n var sourceIndex = inArray(source, parentColumns);\n target = findParentColumnWithChildren(parentColumns, index, source, sourceIndex > index);\n var targetIndex = inArray(target, masterColumns);\n if (target.columns && (!targetIndex || targetIndex === parentColumns.length - 1)) {\n return null;\n }\n if (target && target != source && target.columns) {\n return findReorderTarget(columns, target, source, before, masterColumns);\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 targetParentContainerIndex(flatColumns, columns, sourceIndex, targetIndex) {\n var column = flatColumns[sourceIndex];\n var target = flatColumns[targetIndex];\n var parent = columnParent(column, columns);\n columns = parent ? parent.columns : columns;\n return inArray(target, 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 sumWidths(cols) {\n var width = 0;\n for (var idx = 0, length = cols.length; idx < length; idx++) {\n if (!cols[idx].hidden) {\n width += parseInt(cols[idx].width, 10);\n }\n }\n return width;\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 childColumns(columns) {\n var result = [];\n for (var idx = 0; idx < columns.length; idx++) {\n if (columns[idx].columns) {\n result = result.concat(columns[idx].columns);\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 getColumnsFields(columns) {\n var result = [];\n columns = leafColumns(columns);\n for (var idx = 0; idx < columns.length; idx++) {\n if (typeof columns[idx] === 'string') {\n result.push(columns[idx]);\n } else if (columns[idx].field) {\n result.push(columns[idx].field);\n }\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('data-colspan')) {\n offset += parentCell[0].getAttribute('data-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, 'display:none');\n if (!style.match(/display:/i)) {\n style = style.replace(/(.*)?/i, 'display:none;$1');\n }\n }\n return extend({}, attr, { style: style });\n }\n function hasHiddenStyle(attr) {\n attr = attr || {};\n var style = attr.style || '';\n return style.indexOf('display:none') !== -1;\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($.extend(true, [], 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._adaptiveColumns();\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 FILTERMENUOPEN,\n COLUMNMENUINIT,\n COLUMNMENUOPEN,\n EDIT,\n BEFOREEDIT,\n SAVE,\n REMOVE,\n SAVECHANGES,\n CELLCLOSE,\n COLUMNRESIZE,\n COLUMNREORDER,\n COLUMNSHOW,\n COLUMNHIDE,\n COLUMNLOCK,\n COLUMNUNLOCK,\n NAVIGATE,\n 'page',\n 'sort',\n 'filter',\n 'group',\n 'groupExpand',\n 'groupCollapse'\n ],\n setDataSource: function (dataSource) {\n var that = this;\n var scrollable = that.options.scrollable;\n var scrollableContent;\n that.options.dataSource = dataSource;\n that._dataSource();\n that._pageable();\n that._thead();\n if (scrollable) {\n if (scrollable.virtual) {\n scrollableContent = that.content.find('>.k-virtual-scrollable-wrap');\n scrollableContent.scrollLeft(leftMostPosition(scrollableContent, isRtl));\n } else {\n scrollableContent = that.tbody;\n that.content.scrollLeft(leftMostPosition(scrollableContent, isRtl));\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 that.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 persistSelection: false,\n editable: false,\n groupable: false,\n rowTemplate: '',\n altRowTemplate: '',\n search: false,\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 search: defaultCommands.search.text\n },\n noRecords: NORECORDS,\n expandCollapseColumnHeader: '',\n groupHeader: 'Press ctrl + space to group',\n ungroupHeader: 'Press ctrl + space to ungroup'\n }\n },\n destroy: function () {\n var that = this, element;\n that._angularItems('cleanup');\n that._destroyColumnAttachments();\n Widget.fn.destroy.call(that);\n if (this._navigatableTables) {\n this._navigatableTables.off(NS);\n this._navigatableTables = null;\n }\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 if (that.timer) {\n clearTimeout(that.timer);\n }\n if (that._progressTimeOut) {\n clearTimeout(that._progressTimeOut);\n }\n if (that._collapseGroupsTimeOut) {\n clearTimeout(that._collapseGroupsTimeOut);\n }\n if (that._endlessFetchTimeOut) {\n clearTimeout(that._endlessFetchTimeOut);\n }\n that.pager = null;\n that._destroyGroupable();\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 that._selectedIds = null;\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 that._destroyVirtualScrollable();\n if (that.editableUserEvents) {\n that.editableUserEvents.destroy();\n that.editableUserEvents = null;\n }\n if (that._lockedContentUserEvents) {\n that._lockedContentUserEvents.destroy();\n that._lockedContentUserEvents = null;\n }\n that._destroyEditable();\n if (that.dataSource) {\n that.dataSource.unbind(CHANGE, that._refreshHandler).unbind(PROGRESS, that._progressHandler).unbind(ERROR, that._errorHandler).unbind(SORT, that._clearSortClasses);\n that._refreshHandler = that._progressHandler = that._errorHandler = that._clearSortClasses = 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._isMobile) {\n that.wrapper.off('transitionend' + NS);\n that.wrapper.off('contextmenu' + NS);\n }\n if (that.minScreenResizeHandler) {\n $(window).off('resize', that.minScreenResizeHandler);\n }\n that._detachColumnMediaResizeHandler();\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._groupRows = 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 = $.extend(true, {}, 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 halfResizeHandle = indicatorWidth * 3 / 2;\n var rtlCorrection = 0;\n var headerWrap;\n var ieCorrection;\n var webkitCorrection;\n var firefoxCorrection;\n var leftMargin;\n var invisibleSpace;\n var leftBorderWidth;\n var scrollLeft;\n var left;\n var top;\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 scrollLeft = container.scrollLeft();\n leftBorderWidth = parseFloat(container.css('borderLeftWidth'));\n left = th.offset().left + scrollLeft - parseFloat(th.css('marginLeft')) - (container.offset().left + leftBorderWidth);\n if (!isRtl) {\n left += th[0].offsetWidth;\n } else {\n if (scrollable) {\n rtlCorrection = left <= scrollLeft ? halfResizeHandle : 0;\n headerWrap = th.closest('.k-grid-header-wrap, .k-grid-header-locked');\n invisibleSpace = headerWrap[0].scrollWidth - headerWrap[0].offsetWidth;\n leftMargin = parseFloat(headerWrap.css('marginLeft'));\n ieCorrection = browser.msie ? 2 * headerWrap.scrollLeft() + leftBorderWidth - leftMargin - rtlCorrection : 0;\n webkitCorrection = browser.webkit ? invisibleSpace - rtlCorrection - leftMargin + leftBorderWidth : 0;\n firefoxCorrection = browser.mozilla ? leftBorderWidth - leftMargin - rtlCorrection : 0;\n left -= webkitCorrection + firefoxCorrection + ieCorrection;\n }\n }\n top = th.offset().top - parseFloat(th.css('marginTop')) - (container.offset().top + parseFloat(container.css('borderTopWidth')));\n resizeHandle.css({\n top: top,\n left: left - halfResizeHandle,\n height: outerHeight(th),\n width: indicatorWidth * 3 - rtlCorrection\n }).data('th', th).show();\n resizeHandle.off('dblclick' + NS).on('dblclick' + NS, function () {\n that._autoFitLeafColumn(parseInt(th.attr(kendo.attr('index')), 10));\n });\n },\n _positionColumnResizeHandle: function () {\n var that = this, lockedHead = that.lockedHeader ? that.lockedHeader.find('thead:first') : $();\n that.thead.add(lockedHead).on('mousemove' + NS, 'tr:not(.k-filter-row) > th', function (e) {\n var button = typeof e.buttons !== 'undefined' ? e.buttons : e.which || e.button;\n var th = $(this);\n if (th.hasClass('k-group-cell') || th.hasClass('k-hierarchy-cell')) {\n return;\n }\n if (typeof button !== 'undefined' && button !== 0) {\n return;\n }\n if (th[0].hasAttribute(kendo.attr(COLSPAN))) {\n return;\n }\n that._createResizeHandle(th.closest('div'), th);\n });\n },\n _resizeHandleDocumentClick: function (e) {\n if ($(e.target).closest('.k-column-active').length) {\n return;\n }\n $(document).off(e);\n this._resetResizeHandleHeader();\n this._hideResizeHandle();\n },\n _resetResizeHandleHeader: function () {\n var th;\n if (!this.resizeHandle) {\n return;\n }\n th = $(this.resizeHandle).data('th');\n if (th) {\n th.find(DOT + LINK_CLASS).find(DOT + ICON_CLASS).show();\n th.find(DOT + ORDER_CLASS).show();\n th.find(DOT + HEADER_COLUMN_MENU_CLASS).show();\n th.find(DOT + FILTER_MENU_CLASS).show();\n }\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 minHold: 500,\n hold: function (e) {\n var th = $(e.target);\n e.preventDefault();\n if (that.resizeHandle) {\n that.resizeHandle.data('th').removeClass('k-column-active');\n that._resetResizeHandleHeader();\n }\n th.addClass('k-column-active');\n th.find(DOT + LINK_CLASS).find(DOT + ICON_CLASS).hide();\n th.find(DOT + ORDER_CLASS).hide();\n th.find(DOT + HEADER_COLUMN_MENU_CLASS).hide();\n th.find(DOT + FILTER_MENU_CLASS).hide();\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 resizeColumn: function (column, columnWidth) {\n var that = this;\n var isLocked = !!column.locked;\n var isHidden = !!column.hidden;\n var options = this.options;\n var scrollbar = !kendo.support.mobileOS ? kendo.support.scrollbar() : 0;\n var index = isLocked ? inArray(column, visibleLockedColumns(that.columns)) : inArray(column, visibleNonLockedColumns(that.columns));\n var contentTable = isLocked ? that.lockedTable : that.table;\n var footer = that.footer || $();\n var header = isLocked ? that.lockedHeader.find('table') : that.thead.closest('table');\n var columnMinWidth = column.minResizableWidth || 10;\n var gridWidth = isLocked ? outerWidth(contentTable.find('tbody')) : outerWidth(that.tbody);\n var col;\n if (isHidden) {\n column.width = columnWidth > columnMinWidth ? columnWidth : columnMinWidth;\n return;\n }\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 if (options.scrollable) {\n col = header.find('col:not(.k-group-col,.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.find('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')');\n }\n if (options.scrollable) {\n var constrain = false;\n var totalWidth = that.wrapper.width() - scrollbar;\n var width = columnWidth = columnWidth > columnMinWidth ? columnWidth : columnMinWidth;\n if (isLocked && gridWidth - columnWidth + width > totalWidth) {\n width = columnWidth + (totalWidth - gridWidth - scrollbar * 2);\n if (width < 0) {\n width = columnWidth;\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 + (columnWidth - column.width);\n }\n contentTable.add(header).add(footer).css('width', width);\n if (!isLocked) {\n that._footerWidth = width;\n }\n }\n }\n that._scrollVirtualWrapperOnColumnResize();\n } else if (columnWidth > 10 && columnWidth >= columnMinWidth) {\n col.css('width', columnWidth);\n }\n column.width = columnWidth;\n that._applyLockedContainersWidth();\n that._syncLockedContentHeight();\n that._syncLockedHeaderHeight();\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 var columns = $.map(that.columns, function (a) {\n return !a.hidden && (isLocked && a.locked || !isLocked && !a.locked) ? a : null;\n });\n columnStart = e.x.location;\n columnWidth = outerWidth(th);\n columnMinWidth = leafColumns(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 that._scrollVirtualWrapperOnColumnResize();\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._resetResizeHandleHeader();\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 that._resetResizeHandleHeader();\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 $('
').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 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, that.columns, sourceIndex, targetIndex) > -1;\n },\n inSameContainer: function (e) {\n return $(e.source).parent()[0] === $(e.target).parent()[0] && targetParentContainerIndex(flatColumnsInDomOrder(that.columns), 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, that.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, container) {\n var that = this;\n var sourcePosition = columnPosition(sources[0], that.columns);\n var destPosition = columnPosition(target, that.columns);\n var action;\n var ths;\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 if (container) {\n ths = elements(container, container, 'tr:eq(' + sourcePosition.row + ')>th.k-header:not(.k-group-cell,.k-hierarchy-cell)');\n } else {\n ths = elements(that.lockedHeader, that.thead, 'tr:eq(' + sourcePosition.row + ')>th.k-header:not(.k-group-cell,.k-hierarchy-cell)');\n }\n var sourceLockedColumns = lockedColumns(sources).length;\n var targetLockedColumns = lockedColumns([target]).length;\n if (leafs.length) {\n if (sourceLockedColumns > 0 && targetLockedColumns === 0) {\n action = 'prepend';\n moveCellsBetweenContainers(sources, target, leafs, that.columns, that.lockedHeader.find('thead'), that.thead, this._groups(), action);\n } else if (sourceLockedColumns === 0 && targetLockedColumns > 0) {\n action = destPosition.cell === 0 && sources[0].columns && !target.columns && !that._group ? 'prepend' : 'append';\n moveCellsBetweenContainers(sources, target, leafs, nonLockedColumns(that.columns), that.thead, that.lockedHeader.find('thead'), this._groups(), action);\n }\n if (target.columns || sourcePosition.cell - destPosition.cell > 1 || destPosition.cell - sourcePosition.cell > 1) {\n target = findReorderTarget(that.columns, target, sources[0], before, that.columns);\n if (target) {\n if (sourceLockedColumns > 0 && targetLockedColumns === 0) {\n that._reorderHeader(leafs, target, before, that.thead);\n } else if (sourceLockedColumns === 0 && targetLockedColumns > 0) {\n that._reorderHeader(leafs, target, before, that.lockedHead);\n } else {\n that._reorderHeader(leafs, target, before);\n }\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(visibleSources[0], 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, beforeVisibleColumn;\n headerCol = footerCol = colDest;\n if (destination.hidden) {\n var columnsArray = isLocked ? lockedColumns(that.columns) : nonLockedColumns(that.columns);\n if (visibleColumns(columnsArray).length > 0) {\n headerCol = footerCol = colDest = this._findClosestVisibleColumnIndex(columnsArray, destIndex);\n beforeVisibleColumn = visibleColumns(columnsArray.slice(destIndex)).length > 0;\n } else {\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 }\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 if (colSourceIndex >= 0) {\n reorder(elements(that.lockedHeader, that.thead.prev(), 'col:not(.k-group-col,.k-hierarchy-col)'), colSourceIndex, headerCol, beforeVisibleColumn ? beforeVisibleColumn : before, visibleSources.length);\n }\n if (that.options.scrollable) {\n if (colSourceIndex >= 0 && !that._hasVirtualColumns()) {\n reorder(elements(that.lockedTable, that.tbody.prev(), 'col:not(.k-group-col,.k-hierarchy-col)'), colSourceIndex, colDest, beforeVisibleColumn ? beforeVisibleColumn : before, visibleSources.length);\n }\n }\n if (footer && footer.length) {\n if (colSourceIndex >= 0) {\n reorder(elements(that.lockedFooter, footer.find('.k-grid-footer-wrap'), '>table>colgroup>col:not(.k-group-col,.k-hierarchy-col)'), colSourceIndex, footerCol, beforeVisibleColumn ? beforeVisibleColumn : before, visibleSources.length);\n }\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 _findClosestVisibleColumnIndex: function (columns, columnIndex) {\n var columnsArray = visibleColumns(columns.slice(columnIndex)).length > 0 ? columns.slice(columnIndex) : columns.slice(0, columnIndex + 1).reverse(), closestVisibleColumn = visibleColumns(columnsArray)[0];\n return inArray(closestVisibleColumn, visibleColumns(this.columns));\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, minWidth, 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 minWidth = column.minResizableWidth;\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 if (browser.safari) {\n th.css('white-space', 'initial');\n }\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 if (minWidth && minWidth > newColumnWidth) {\n newColumnWidth = minWidth;\n }\n col.width(newColumnWidth);\n column.width = newColumnWidth;\n if (browser.safari) {\n th.css('white-space', '');\n }\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 if (cols.eq(idx).hasClass('k-group-col')) {\n totalWidth += parseInt(cols.eq(idx).width(), 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], virtualScroll = that.virtualScroll || {}, lockChanged, isLocked = !!destColumn.locked, lockedCount = lockedColumns(that.columns).length, groupHeaderColumnTemplateColumns = grep(leafColumns(that.columns), function (column) {\n return column.groupHeaderColumnTemplate;\n });\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._updateLockedCols();\n that._updateCols();\n that._templates();\n that._updateColumnCellIndex();\n that._updateColumnSorters();\n if (groupHeaderColumnTemplateColumns.length > 0) {\n that._renderGroupRows();\n }\n that._updateTablesWidth();\n that._applyLockedContainersWidth();\n that._syncLockedHeaderHeight();\n that._syncLockedContentHeight();\n that._updateFirstColumnClass();\n if (virtualScroll.columns) {\n that.refresh();\n }\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, editable = that.options.editable, handler = function () {\n var target = activeElement(), cell = that._editContainer;\n if (cell && cell[0] && !$.contains(cell[0], target) && cell[0] !== target && !$(target).closest('.k-animation-container').length) {\n if (that.editable.end()) {\n that.closeCell();\n } else {\n that._scrollVirtualWrapper();\n }\n }\n };\n if (editable) {\n this.wrapper.addClass('k-editable');\n var mode = that._editMode();\n if (mode === 'incell') {\n that.table.add(that.lockedTable).on('mousedown' + NS, NAVROW + '>' + NAVCELL, function (e) {\n var target = $(e.target);\n if (that._editMode() === 'incell' && target.hasClass('k-checkbox') && target.prev().attr(kendo.attr('bind'))) {\n e.preventDefault();\n }\n });\n if (editable.update !== false) {\n if (isMac) {\n that.wrapper.on(CLICK + NS, '.k-edit-cell > input[type=\\'checkbox\\']', function (e) {\n $(e.target).focus();\n }).on(CLICK + NS, '.k-edit-cell', function (e) {\n if (!$(e.target).is('input')) {\n $(e.currentTarget).find('input[type=\\'checkbox\\']').focus();\n }\n }).on(MOUSEDOWN + NS, 'tr:not(.k-grouping-row) > td', function (e) {\n var editContainer = that._editContainer;\n if (editContainer && editContainer[0] && ($.contains(editContainer[0], e.target) || editContainer[0] === e.target)) {\n that._mousedownOnEditCell = true;\n } else {\n that._mousedownOnEditCell = false;\n }\n });\n }\n that.editableUserEvents = new kendo.UserEvents(that.wrapper, {\n filter: 'tr:not(.k-grouping-row) > td',\n allowSelection: true,\n tap: function (e) {\n var td = $(e.target), isLockedCell = that.lockedTable && td.closest('table')[0] === that.lockedTable[0];\n that._mousedownOnEditCell = false;\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 $(activeElement()).blur();\n that.closeCell();\n that.editCell(td);\n } else {\n that._scrollVirtualWrapper();\n }\n } else {\n that.editCell(td);\n }\n }\n });\n that.wrapper.on('focusin' + NS, function () {\n if (!$.contains(this, activeElement())) {\n clearTimeout(that.timer);\n that.timer = null;\n }\n }).on('focusout' + NS, function (e) {\n var shouldCloseCell = true;\n if (isMac && that._mousedownOnEditCell || that._virtualColScroll) {\n shouldCloseCell = false;\n }\n that._mousedownOnEditCell = false;\n if (shouldCloseCell) {\n that.timer = setTimeout(function () {\n handler(e);\n }, 1);\n }\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 if (that._isVirtualInlineEditable()) {\n that.wrapper.on('focusout' + NS, 'tr:not(.k-grouping-row) > td', function () {\n if (that.editable && !that.editable.end()) {\n that._scrollVirtualWrapper();\n }\n });\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 = (that.virtualScroll || {}).columns ? that.virtualCols[that.cellIndex(cell)] : leafColumns(that.columns)[that.cellIndex(cell)], model = that._modelForContainer(cell);\n that.closeCell();\n if (model && isColumnEditable(column, model) && !column.command) {\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n that._attachModelChange(model);\n that._editContainer = cell;\n if (that._shouldClearEditableState) {\n that._clearEditableState();\n }\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 skipFocus: (that._isVirtualIncellEditable() || that._hasVirtualColumns()) && that._editableState ? true : false\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 that._syncLockedScroll();\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[0].offsetHeight - scrollbar);\n },\n _syncLockedScroll: function () {\n this.lockedContent[0].scrollTop = this.content[0].scrollTop;\n if (this.virtualScrollable) {\n this.lockedContent[0].scrollTop = this.wrapper.find('.k-virtual-scrollable-wrap')[0].scrollTop;\n }\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 that._editableIsClosing = null;\n }\n };\n if (that.editable) {\n if (that._editMode() === 'popup' && !that._isMobile) {\n if (that._editableIsClosing) {\n that._editContainer.data('kendoWindow').bind('deactivate', destroy);\n } else {\n that._editableIsClosing = true;\n that._editContainer.data('kendoWindow').bind('deactivate', destroy).close();\n }\n } else {\n destroy();\n }\n }\n if (that._confirmDialog) {\n that._confirmDialog.close();\n that._confirmDialog.destroy();\n that._confirmDialog = 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, column, tr, model;\n if (!cell) {\n return;\n }\n model = that._modelForContainer(cell);\n if (isCancel && that.trigger('cancel', {\n container: cell,\n model: model\n })) {\n return;\n }\n that.trigger(CELLCLOSE, {\n type: isCancel ? 'cancel' : 'save',\n model: model,\n container: cell\n });\n cell.removeClass('k-edit-cell');\n column = (that.virtualScroll || {}).columns ? that.virtualCols[that.cellIndex(cell)] : leafColumns(that.columns)[that.cellIndex(cell)];\n tr = cell.parent().removeClass('k-grid-edit-row');\n if (that.lockedContent) {\n that._relatedRow(tr).removeClass('k-grid-edit-row');\n }\n that._destroyEditable();\n that._displayCell(cell, column, model);\n if (that._shouldClearEditableState) {\n that._clearEditableState();\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, modelId, key, schema, 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 schema = that.dataSource.options.schema;\n if (that._selectedIds && schema && schema.model) {\n modelId = isFunction(that.dataSource.options.schema.model) ? that.dataSource.options.schema.model.fn.idField : that.dataSource.options.schema.model.id;\n key = model[modelId];\n delete that._selectedIds[key];\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 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 && !column.selectable) {\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;\n var html = '
<' + (that._isMobile ? 'ul class=\"k-edit-form-container k-listgroup k-listgroup-flush\">' : 'div class=\"k-edit-form-container\">');\n var column;\n var command;\n var fields = [];\n var idx;\n var length;\n var tmpl;\n var updateText;\n var cancelText;\n var updateIconClass;\n var cancelIconClass;\n var tempCommand;\n var columns = leafColumns(that.columns);\n var attr;\n var editMenuGuid = kendo.guid();\n var editable = that.options.editable;\n var template = editable.template;\n var options = isPlainObject(editable) ? editable.window : {};\n var settings = extend({}, kendo.Template, that.options.templateSettings);\n var state;\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n options = options || {};\n if (template) {\n if (typeof template === STRING) {\n template = kendo.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.selectable) {\n continue;\n }\n if (!column.command) {\n if (!that._isMobile) {\n html += '
';\n if (isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\n title: column.title,\n format: column.format,\n editor: column.editor,\n values: column.values\n });\n html += '
';\n } else {\n 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 {\n html += '
  • ';\n if (isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\n title: column.title,\n format: column.format,\n editor: column.editor,\n values: column.values\n });\n html += '';\n } else {\n 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 += '';\n }\n html += '
  • ';\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 (isPlainObject(command.text)) {\n updateText = command.text.update;\n cancelText = command.text.cancel;\n }\n if (isPlainObject(command.iconClass)) {\n updateIconClass = command.iconClass.update;\n cancelIconClass = command.iconClass.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 iconClass: updateIconClass\n }) + that._createButton({\n name: 'canceledit',\n text: cancelText,\n attr: attr,\n iconClass: cancelIconClass\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: that.options.messages.commands.edit || '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._editableIsClosing = true;\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.options.messages.commands.edit || 'Edit') + '' + '
    ' + '
    ' + 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 that._openPopUpEditor();\n that.trigger(EDIT, {\n container: container,\n model: model\n });\n },\n _openPopUpEditor: function () {\n var that = this;\n var windowEditor = that._editContainer ? that._editContainer.data('kendoWindow') : null;\n var windowOptions = (that.options.editable || {}).window || {};\n if (!this._isMobile) {\n if (windowEditor) {\n if (!windowOptions.position) {\n windowEditor.center();\n }\n windowEditor.open();\n }\n } else {\n this.pane.navigate(this.editView, this._editAnimation);\n }\n },\n _createInlineEditor: function (row, model) {\n var that = this;\n var column;\n var cell;\n var command;\n var fields = [];\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\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 = that._hasVirtualColumns() ? that.virtualCols[that.cellIndex(cell)] : leafColumns(that.columns)[that.cellIndex(cell)];\n if (!column.command && isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\n title: column.title,\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, updateIconClass, cancelIconClass, attr;\n if (isPlainObject(command)) {\n if (isPlainObject(command.text)) {\n updateText = command.text.update;\n cancelText = command.text.cancel;\n }\n if (isPlainObject(command.iconClass)) {\n updateIconClass = command.iconClass.update;\n cancelIconClass = command.iconClass.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 iconClass: updateIconClass\n }) + that._createButton({\n name: 'canceledit',\n text: cancelText,\n attr: attr,\n iconClass: cancelIconClass\n })).appendTo(cell);\n }\n }\n });\n that._editContainer = row;\n that._editContainer.addClass('k-grid-edit-row');\n if (that._shouldClearEditableState) {\n that._clearEditableState();\n }\n that.editable = new kendo.ui.Editable(that._editContainer, {\n target: that,\n fields: fields,\n model: model,\n skipFocus: that._isVirtualInlineEditable() && that._editableState && (that._editableState.field ? true : false) || that._hasVirtualColumns(),\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 (!model || notify && that.trigger('cancel', {\n container: container,\n model: model\n })) {\n return;\n }\n that._destroyEditable();\n that.dataSource.cancelChanges(model);\n that._clearEditableState();\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 that = this;\n var container = this._editContainer;\n var model = this._modelForContainer(container);\n var deferred = $.Deferred();\n var valid;\n if (!container || !this.editable) {\n return deferred.resolve().promise();\n }\n valid = that.editable && that.editable.end();\n if (!valid || this.trigger(SAVE, {\n container: container,\n model: model\n })) {\n if (!valid) {\n that._scrollVirtualWrapper();\n }\n return deferred.reject().promise();\n }\n that._clearEditableState();\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 if (!row.is(':visible')) {\n newRow.hide();\n }\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 || that._checkBoxSelection)) {\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 confirmDialog = that._confirmDialog = new kendo.ui.Confirm($('
    ').appendTo(document.body), {\n modal: { preventScroll: true },\n closable: false,\n title: false,\n content: messages.title,\n messages: {\n okText: messages.confirmDelete,\n cancel: messages.cancelDelete\n },\n open: function () {\n that.content.data(OVERFLOW, that.content.css(OVERFLOW));\n that.content.css(OVERFLOW, HIDDEN);\n },\n close: function () {\n that.content.css(OVERFLOW, that.content.data(OVERFLOW));\n }\n });\n confirmDialog.result.done(function () {\n that._removeRow(row);\n }).fail(function () {\n var confirmDialog = that._confirmDialog;\n if (confirmDialog) {\n confirmDialog.close();\n confirmDialog.destroy();\n }\n });\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 !== FUNCTION && 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 var that = this;\n that.dataSource.cancelChanges();\n if (that._isVirtualEditable()) {\n that._virtualPageToTop(function () {\n that.virtualScrollable.scrollToTop();\n });\n }\n },\n saveChanges: function () {\n var that = this;\n var valid = that.editable && that.editable.end();\n if ((valid || !that.editable) && !that.trigger(SAVECHANGES)) {\n that.dataSource.sync();\n } else if (!valid) {\n that._scrollVirtualWrapper();\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 var createAtBottom = createAt.toLowerCase() === BOTTOM;\n var model;\n var virtualEditable = that._isVirtualEditable();\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 (createAtBottom) {\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 if (that.options.navigatable && mode == 'incell') {\n that._removeCurrent();\n }\n if (virtualEditable) {\n that._virtualAddRow();\n } else {\n model = dataSource.insert(index, {});\n that._editModel(model);\n }\n } else {\n that._scrollVirtualWrapper();\n }\n },\n _editModel: function (model) {\n var that = this;\n var createAt = that.options.editable.createAt || '';\n var mode = that._editMode();\n if (model) {\n var 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 _virtualAddRow: function () {\n var that = this;\n var createAtBottom = (that.options.editable.createAt || '').toLowerCase() === BOTTOM;\n that._clearEditableState();\n if (createAtBottom) {\n that._virtualAddRowAtBottom();\n } else {\n that._virtualAddRowAtTop();\n }\n },\n _virtualAddRowAtTop: function () {\n var that = this;\n var dataSource = that.dataSource;\n var virtualScrollable = that.virtualScrollable;\n var model;\n if (dataSource.page() === 1) {\n model = dataSource.insert(0, {});\n that._editModel(model);\n virtualScrollable.scrollToTop();\n } else {\n that._virtualPageToTop(function () {\n model = dataSource.insert(0, {});\n that._editModel(model);\n virtualScrollable.scrollToTop();\n });\n }\n },\n _virtualAddRowAtBottom: function () {\n var that = this;\n var dataSource = that.dataSource;\n var virtualScrollable = that.virtualScrollable;\n var index = dataSource.total();\n var model;\n if (dataSource.at(index - 1) instanceof ObservableObject) {\n model = dataSource.insert(index, {});\n that._virtualPageToBottom(function () {\n that._editModel(model);\n virtualScrollable.scrollToBottom();\n });\n } else {\n that._virtualPageToBottom(function () {\n model = dataSource.insert(index, {});\n that._editModel(model);\n virtualScrollable.scrollToBottom();\n });\n }\n },\n _virtualPageToTop: function (callback) {\n var that = this;\n that._virtualPage(0, that.dataSource.take(), function () {\n callback();\n });\n },\n _virtualPageToBottom: function (callback) {\n var that = this;\n var dataSource = that.dataSource;\n var take = dataSource.take();\n var total = dataSource.total();\n var skip = total > take ? total - take : 0;\n that._virtualPage(skip, take, function () {\n callback();\n });\n },\n _virtualPage: function (skip, take, callback) {\n var that = this;\n if (that._isVirtualEditable()) {\n that.virtualScrollable._preventScroll = true;\n that.virtualScrollable._page(skip, take, callback);\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 container.on(INPUT + NS, '.k-grid-search input', function (e) {\n var input = e.currentTarget;\n clearTimeout(that._searchTimeOut);\n that._searchTimeOut = setTimeout(function () {\n that._searchTimeOut = null;\n var options = that.options;\n var searchFields = options.search ? options.search.fields : null;\n var expression = {\n filters: [],\n logic: 'or'\n };\n var value = input.value;\n if (!searchFields) {\n searchFields = getColumnsFields(options.columns);\n }\n if (that.dataSource.options.endless) {\n that.dataSource.options.endless = null;\n that._endlessPageSize = that.dataSource.options.pageSize;\n }\n if (value) {\n for (var i = 0; i < searchFields.length; i++) {\n expression.filters.push({\n field: searchFields[i],\n operator: 'contains',\n value: value\n });\n }\n } else {\n expression = {};\n }\n that.dataSource.filter(expression);\n }, 300);\n });\n }\n },\n _toolbarTmpl: function (commands) {\n var that = this, idx, length, html = '', command, searchText = '', messages = that.options.messages.commands;\n if (isArray(commands)) {\n for (idx = 0, length = commands.length; idx < length; idx++) {\n command = typeof commands[idx] === 'string' ? commands[idx].toLowerCase() : (commands[idx].name || '').toLowerCase();\n if (command === 'search') {\n if (typeof commands[idx] !== 'string') {\n searchText = commands[idx].text;\n }\n searchText = searchText || messages.search;\n html += '';\n html += '';\n html += '';\n html += '';\n } else {\n html += that._createButton(commands[idx]);\n }\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 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') {\n command = extend(true, {}, command);\n command.text = isPlainObject(command.text) ? command.text.edit : command.text;\n command.iconClass = isPlainObject(command.iconClass) ? command.iconClass.edit : command.iconClass;\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), groupRow = element.closest('tr');\n var group = that._groupRows ? that._groupRows[that.wrapper.find('.k-grouping-row').index(groupRow)] : {};\n if (element.hasClass('k-i-collapse')) {\n if (!that.trigger('groupCollapse', {\n group: group,\n element: groupRow\n })) {\n that.collapseGroup(groupRow);\n }\n } else {\n if (!that.trigger('groupExpand', {\n group: group,\n element: groupRow\n })) {\n that.expandGroup(groupRow);\n }\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._destroyGroupable();\n }\n if (browser.chrome) {\n wrapper.find('div.k-grouping-header').css('touch-action', 'none');\n wrapper.find(filter).css('touch-action', 'none');\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 } else {\n that._clearEditableState();\n if (that.dataSource.options.endless) {\n that.dataSource.options.endless = null;\n that._endlessPageSize = that.dataSource.options.pageSize;\n that.dataSource._skip = 0;\n that.dataSource._pageSize = that.dataSource._take = that._endlessPageSize;\n that.dataSource._page = 1;\n }\n }\n }\n }));\n that._addGroupableOptionsToHeader();\n }\n },\n _addGroupableOptionsToHeader: function () {\n var that = this;\n var columns = flatColumns(that.columns);\n var columnFieldMap = {};\n var field = '';\n var headerCells = that._headerCells();\n var cellFieldAttr = '';\n var headerCell;\n var columnOptions;\n var i;\n for (i = 0; i < columns.length; i++) {\n field = columns[i].field;\n columnFieldMap[columns[i].field] = columns[i];\n }\n for (i = 0; i < headerCells.length; i++) {\n headerCell = headerCells.eq(i);\n cellFieldAttr = headerCell.attr(kendo.attr(FIELD));\n columnOptions = columnFieldMap[cellFieldAttr];\n if (columnOptions && columnOptions.groupable && columnOptions.groupable.sort) {\n headerCell.data(GROUP_SORT, columnOptions.groupable.sort);\n }\n }\n },\n _destroyGroupable: function () {\n var that = this;\n if (that.groupable && that.groupable.element) {\n that.groupable.element.kendoGroupable('destroy');\n }\n that.groupable = null;\n that._removeGroupableOptionsFromHeader();\n },\n _removeGroupableOptionsFromHeader: function () {\n var that = this;\n var headerCells = that._headerCells();\n for (var i = 0; i < headerCells.length; i++) {\n headerCells.eq(i).removeData(GROUP_SORT);\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 that._selectedIds = {};\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() || that._groups()) {\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 var selectedValues;\n if (!cell) {\n that._persistSelectedRows();\n }\n if (that._checkBoxSelection) {\n selectedValues = that.selectable.value();\n that._uncheckCheckBoxes();\n that._checkRows(selectedValues);\n if (selectedValues.length && selectedValues.length === that.items().length) {\n that._toggleHeaderCheckState(true);\n } else {\n that._toggleHeaderCheckState(false);\n }\n }\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 && !e.shiftKey && $.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 that._deselectCheckRows(current);\n return;\n }\n }\n } else {\n that.selectable.clear();\n }\n if (!cell) {\n that.selectable._lastActive = current;\n }\n that.selectable.value(current);\n } else if (!cell && ($(target).is('td') || $(target).is('table') && inArray(target, this._navigatableTables)) && (e.shiftKey && e.keyCode == keys.LEFT || e.shiftKey && e.keyCode == keys.RIGHT || e.shiftKey && e.keyCode == keys.UP || e.shiftKey && e.keyCode == keys.DOWN || e.keyCode === keys.SPACEBAR && e.shiftKey)) {\n e.preventDefault();\n e.stopPropagation();\n current = current.parent();\n if (isLocked) {\n current = current.add(that._relatedRow(current));\n }\n if (multi) {\n if (!that.selectable._lastActive) {\n that.selectable._lastActive = current;\n }\n that.selectable.selectRange(that.selectable._firstSelectee(), current);\n } else {\n that.selectable.clear();\n that.selectable.value(current);\n }\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 = $('