{"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","locked","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","findColumnByField","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","findReorderTarget","masterColumns","parent","parentColumns","targetIndex","inArray","flatColumnsInDomOrder","flatColumns","targetParentContainerIndex","hiddenLeafColumnsCount","counter","sumWidths","cols","parseInt","columnsWidth","colWidth","indexOf","removeRowSpanValue","removeEmptyRows","emptyRowsCount","remove","mapColumnToCellRows","rowIndex","setLeftAndRightStyles","left","right","createColumnAttribute","attribute","property","addColumnAttribute","removeColumnAttribute","stickyColumns","sticky","visibleStickyColumns","visibleNonLockedColumns","visibleLockedColumns","visibleLeafColumns","childColumns","visibleChildColumns","e","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","normalizeHeaderCells","len","lastIndex","th","insertBefore","convertToObject","array","item","formatGroupValue","columnValues","isForeignKey","groupValue","htmlEncode","setCellVisibility","state","pad","nonDataCellsRegExp","test","className","hideColumnCells","columnIndex","first","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","preventDefault","trigger","isColumnGroupable","grid","groupable","isGroupedBy","isColumnEditable","model","selectable","editable","isInputElement","tableClick","currentTarget","isHeader","lockedTable","headerTable","lockedHeader","isInput","preventScroll","currentTable","roleSelector","_setCurrent","navigatable","setTimeout","activeEl","_activeElement","CHECKBOXINPUT","contains","support","touch","leftMostPosition","browser","webkit","parseVirtualSettings","asLowerString","toLowerCase","isElementVisibleInWrapper","wrapper","halfHeight","top","outerHeight","math","abs","floor","isInEdit","groupCellBuilder","headerTemplateIndex","ARIALABEL","COLLAPSE","groupCellLockedContentBuilder","groupRowBuilder","colspan","expanded","includeAdditionalData","EXPAND","groupRowLockedContentBuilder","toggleRow","backslashEscapeQuotes","ampRegExp","ltRegExp","quoteRegExp","aposRegExp","gtRegExp","getTitle","col","title","exportDataSort","dataSource","getByUid","isExcelExportableColumn","exportable","excel","GroupsPager","VirtualScrollable","defaultCommands","Grid","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","COLGROUP","HEADERCELLS","WRAPPER","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","LOAD_START","LOAD_END","FOCUSED","FOCUSABLE","SELECTED","CHECKBOX","NORECORDSCLASS","LINK_CLASS","ICON_CLASS","ORDER_CLASS","SORTED_CLASS","HEADER_COLUMN_MENU_CLASS","FILTER_MENU_CLASS","STICKY_CELL_CLASS","STICKY_HEADER_CLASS","STICKY_FOOTER_CLASS","STICKY_HEADER_NO_BORDER_CLASS","RESIZE","COLUMNRESIZE","COLUMNREORDER","COLUMNLOCK","COLUMNUNLOCK","COLUMNSTICK","COLUMNUNSTICK","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","formatRegExp","templateHashRegExp","whitespaceRegExp","leftRegExp","RegExp","rightRegExp","COMMANDBUTTONTMPL","SELECTCOLUMNTMPL","SELECTCOLUMNHEADERTMPL","isRtl","isIE11","msie","version","isMac","navigator","userAgent","classNames","widget","scrollContainer","Pager","fn","call","useRanges","_omitPrefetch","totalPages","that","ceil","_collapsedTotal","pageSize","groupsTotal","_refreshHandler","refresh","setDataSource","wrap","unbind","bind","itemHeight","noop","prefetch","maxScrollHeight","events","destroy","verticalScrollbar","off","clearTimeout","_timeout","_scrollingTimeout","drag","scrollbar","overflow","_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","lastItemIndex","_preventScroll","_prevScrollTop","_scrollTop","_scrolling","_fetch","_page","take","scrollToTop","_scrollTo","scrollToBottom","_scrollWrapperToTop","_scrollWrapperToBottom","_scrollWrapperOnColumnResize","initialScrollTop","scrollWidth","clientWidth","_wrapperScrolled","_isScrolledToBottom","_isWrapperScrolledToBottom","_isScrolledToTop","itemIndex","rangeStart","scrollIntoView","containerHeight","containerScroll","elementOffset","elementHeight","scrollingUp","currentSkip","fetching","prefetchAt","webkitCorrection","total","_isGroupPaged","min","_fetching","callback","isGroupPaged","_groupRangeExists","inRange","range","repaintScrollbar","shouldScrollWrapper","maxHeight","wrapperElement","wasScrolledToBottom","addScrollBarHeight","totalHeight","cancel","page","create","iconClass","save","edit","update","canceledit","pdf","search","DataBoundWidget","_events","_element","_aria","_columns","_foreignKeyPromises","when","apply","then","_continueInit","_dataSource","_stickyColumns","_tbody","_thead","_groupable","_toolbar","_pageable","_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","encodeTitles","rowTemplate","altRowTemplate","noRecords","resizable","reorderable","columnMenu","detailTemplate","columnResizeHandleWidth","mobile","loaderType","messages","cancelDelete","confirmation","confirmDelete","expandCollapseColumnHeader","groupHeader","ungroupHeader","_angularItems","_destroyColumnAttachments","_navigatableTables","_headertables","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","includeGroupRows","tr","dataItems","n","resizeHandle","angular","each","filterMenu","_cellId","_hasDetails","_createResizeHandle","headerWrap","ieCorrection","firefoxCorrection","leftMargin","invisibleSpace","leftBorderWidth","indicatorWidth","halfResizeHandle","rtlCorrection","mozilla","parseFloat","_autoFitLeafColumn","_positionColumnResizeHandle","lockedHead","button","buttons","which","hasAttribute","_resizeHandleDocumentClick","_resetResizeHandleHeader","_hideResizeHandle","_positionColumnResizeHandleTouch","threshold","minHold","hold","resizeColumn","columnWidth","constrain","totalWidth","isLocked","isHidden","mobileOS","contentTable","header","columnMinWidth","minResizableWidth","gridWidth","_footerWidth","_scrollVirtualWrapperOnColumnResize","_applyLockedContainersWidth","_syncLockedContentHeight","_syncLockedHeaderHeight","_updateStickyColumns","_resizable","columnStart","isMobile","Resizable","handle","hint","location","rtlMultiplier","currentWidth","resizeend","newWidth","oldWidth","_draggable","kendoDraggable","autoScroll","dragstart","not","dragend","_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","autoFitColumns","minWidth","contentDiv","menu","thWidth","footerTable","j","tables","oldColumnWidth","newColumnWidth","visibleLocked","notGroupOrHierarchyCol","notGroupOrHierarchyVisibleCell","safari","lockChanged","sourceColumns","destColumn","virtualScroll","groupHeaderColumnTemplateColumns","groupHeaderColumnTemplate","_updateLockedCols","_updateCols","_updateColumnCellIndex","_updateColumnSorters","_renderGroupRows","_updateTablesWidth","_updateFirstColumnClass","lockColumn","unstickColumn","unlockColumn","stickColumn","_removeStickyAttributes","_removeStickyStyles","_anyStickyColumns","_updateStickyFilterCells","cellIndex","td","lockedColumnOffset","_modelForContainer","_editMode","_calculateColumnIndex","virtualOffset","mode","handler","_editContainer","end","closeCell","_scrollVirtualWrapper","editContainer","_mousedownOnEditCell","tap","isLockedCell","has","editCell","shouldCloseCell","_virtualColScroll","_belongsToGrid","editRow","_isVirtualInlineEditable","stopPropagation","removeRow","_confirmation","_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","_removeGroupIfEmpty","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","_removeCurrent","_virtualAddRow","insert","_editModel","_firstEditableColumnIndex","_virtualAddRowAtBottom","_virtualAddRowAtTop","at","_virtualPageToBottom","_virtualPage","_toolbarTmpl","prependTo","saveAsExcel","saveAsPDF","_pdfInitialized","input","_searchTimeOut","searchFields","expression","filters","logic","endless","_endlessPageSize","_pushExpression","isServerFiltering","serverFiltering","defaultOperators","string","number","date","enums","boolean","operator","modelInfo","reader","fieldInfo","parseFn","parse","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","multi","notString","Selectable","parseOptions","multiple","aria","selectedValues","_persistSelectedRows","_uncheckCheckBoxes","_checkRows","_toggleHeaderCheckState","useAllItems","relatedTarget","continuousItems","ignoreOverlapped","addIdToRanges","keyCode","SPACEBAR","shiftKey","_deselectCheckRows","clear","_lastActive","LEFT","RIGHT","UP","DOWN","selectRange","_firstSelectee","stopImmediatePropagation","copySelection","areaClipBoard","val","getTSV","copySelectionToClipboard","includeHeaders","_createAreaClipBoard","execCommand","Event","metaKey","getSelection","selection","createRange","opacity","cellsOffset","lockedCols","inLockedArea","rowsOffset","selected","delimeter","onlyVisible","hasLockedCols","cellText","_getCellField","_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","_setStickyColumns","filterCells","stickyStyle","updateStyles","stickyWidths","_calculateStickyWidths","_setStickyClassAttributes","_setStickyStyleAttributes","_setStickyStyles","initialLeftWidth","initialRightWidth","nextColumnLeft","nextColumnRight","fill","_sumColumnWidth","masterIndex","stickyLeft","stickyRight","childCols","childStickyWidths","cellClassRegExp","headerClassRegExp","footerClassRegExp","headerClassNoBorderRegExp","leafsCols","_getColumnHeader","groupHeaderColumnTemplateClass","_sumCurrentWidths","getSelectedData","selectedRanges","selectedRangeNames","Object","selectedSingleItems","_mapSelectionToData","exportSelectedToExcel","exporter","columnHandler","book","exportData","sortHandler","workbook","ooxml","ExcelExporter","autoWidth","sheets","freezePane","_addRangeSelectionRows","_addSingleSelectionRows","Workbook","skipCustomHeight","toDataURLAsync","dataURI","saveAs","fileName","proxyURL","forceProxy","_setExporterColumns","_createExportRows","_rows","_dataRows","_prepareColumn","columnsFilter","curr","elementType","nodeName","isRowSelection","columnMapHandler","fieldAttr","_relatedCell","clearSelection","selectableoptions","checked","prop","allRows","dataSourceOptions","selectedViewIds","selectedKeyNames","ids","_updateCurrentAttr","nextId","descId","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","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","blur","_toggleCurrent","descriptors","label","_canDrag","dir","link","focusable","originalIndex","_currentDataIndex","lockedColumnsCount","tmpIndex","currentRowCells","hiddenColumns","up","step","back","switchRow","isEdited","isIE","focus","_initMobile","_createPane","Pane","viewEngine","viewOptions","renderOnInit","wrapInSections","detachOnHide","detachOnDestroy","_scrollable","originalPageSize","hasVirtualScroll","_createVirtualScrollable","_scrollLeft","isScrollingLeft","_endlessFetchInProgress","_skipRerenderItemsCount","_cacheEditableState","_restoreEditableState","movable","_averageRowHeight","scroll","_focusEditable","loadStart","_progress","loadEnd","_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","relatedRow","selectableRow","childCells","originalCells","pagerWrap","_groupPaging","_togglePagerVisibility","_wrapFooter","_appendLockedColumnFooter","footerRow","_appendCols","_columnMenu","menuOptions","hasMultiColumnHeaders","hasLockableColumns","hasStickableColumns","stickable","initCallback","openCallback","closeCallback","stickCallback","unstickCallback","filterHandler","compare","forceUnique","checkSource","owner","stick","unstick","filtering","componentType","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","_foreignKeyBindings","_fetchForeignKeyValues","_hasBoundForeignKey","dataValueField","checkBox","isSelecting","_tmpl","alt","skipGroupCells","paramName","dirtyCellTemplate","expr","_dirtyCellTemplate","dirtyField","charAt","_headerCellText","headerTemplate","_dirtyIndicatorTemplate","stringify","useWithBlock","_virtualCols","considerNext","widths","c","sumOfWidths","colsToRender","firstColspan","lastColspan","widthOfHiddenColumns","virtualCols","columnLeafs","columnsLocked","groupHeaderColumnTemplateLockedColumns","groupHeaderColumnTemplateNonLockedColumns","_detailTmpl","_footerTmpl","g","_groupHeaderTmpl","lockedGroupHeaderColumnTemplate","_noRecordsTmpl","defaultTemplate","scrollableNoGridHeightStyles","templateName","rowClass","scope","fieldsMap","_emptyAggregates","templateFunctionStorage","templateFunctionCount","hasFiltering","columnsWithoutFiltering","_toggleDetails","omitAnimation","detailRow","expanding","masterRow","ariaLabelText","ariaExpandText","toggleClass","detailCell","toggle","correctIdx","classesRegEx","sectionRowIndex","_createHeaderCells","_appendLockedColumnContent","spanIdx","skipHiddenCount","colOffset","detach","lockedCells","_appendLockedColumnHeader","trFilter","hasFilterRow","filterCellOffset","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","subgroupsCount","_groupRowHtml","groupHeaderBuilder","skipColspan","skipLastGroup","groupData","firstVisibleColumnGroupHeaderTemplate","groupHeaderTemplate","currentItems","_groupsState","isNew","excludeHeader","_skippedGroups","shift","groupUid","groupObject","currentGroupCount","groupCountAfterCollapse","toHide","groupToCollapse","showFooter","footerCount","relatedGroup","_getGroupByUid","_calculateGroupsTotal","_serverGroupsTotal","_currentRangeStart","_groupToCollapse","footersVisibility","groupsCount","groupCount","groupCountAfterExpand","toggleVisibility","pop","_firstDataItem","grouped","headerCellIndex","_columnVisibilitySetter","_setParentsVisibility","_updateContentWidth","predicate","p","originalColumn","columnLeafIndex","_buildSkeleton","loaderHTML","skeleton","isVirtualization","progress","_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","toggleUnexportableColumns","err","renderPage","origBody","paddingRight","_initPDFProgress","restore","visibleInExport","visibleInExportOnly","_toggledDuringExport","_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 (typeof text === 'undefined' || text === null) {\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 = Array.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', COLGROUP = 'col:not(.k-group-col, .k-hierarchy-col)', HEADERCELLS = 'th.k-header:not(.k-group-cell):not(.k-hierarchy-cell)', WRAPPER = '.k-grid.k-widget', 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', LOAD_START = 'loadStart', LOAD_END = 'loadEnd', 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', SORTED_CLASS = 'k-sorted', HEADER_COLUMN_MENU_CLASS = 'k-header-column-menu', FILTER_MENU_CLASS = 'k-grid-filter', STICKY_CELL_CLASS = 'k-grid-content-sticky', STICKY_HEADER_CLASS = 'k-grid-header-sticky', STICKY_FOOTER_CLASS = 'k-grid-footer-sticky', STICKY_HEADER_NO_BORDER_CLASS = 'k-grid-no-left-border', RESIZE = 'resize', COLUMNRESIZE = 'columnResize', COLUMNREORDER = 'columnReorder', COLUMNLOCK = 'columnLock', COLUMNUNLOCK = 'columnUnlock', COLUMNSTICK = 'columnStick', COLUMNUNSTICK = 'columnUnstick', 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]', leftRegExp = new RegExp('(\\\\s*left\\\\s*:\\\\s*\\\\d*px;?)*', 'ig'), rightRegExp = new RegExp('(\\\\s*right\\\\s*:\\\\s*\\\\d*px;?)*', 'ig'), 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;\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 GroupsPager;\n if (ui.Pager) {\n GroupsPager = ui.Pager.extend({\n init: function (element, options) {\n ui.Pager.fn.init.call(this, element, extend(true, {}, options));\n this.dataSource.options.useRanges = true;\n this.dataSource._omitPrefetch = true;\n },\n options: { name: 'GroupsPager' },\n totalPages: function () {\n var that = this;\n return Math.ceil((that._collapsedTotal() || 0) / (that.pageSize() || 1));\n },\n _collapsedTotal: function () {\n var dataSource = this.dataSource;\n return dataSource ? dataSource.groupsTotal(true) || 0 : 0;\n }\n });\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 LOAD_START,\n LOAD_END\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().on('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 kendo.scrollLeft(wrapper, kendo.scrollLeft(wrapper) - e.x.delta);\n e.preventDefault();\n }\n });\n }\n that.verticalScrollbar = $('
').css({ width: scrollbar }).appendTo(element).on('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._prevScrollTop = that._scrollTop;\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 var total = dataSource._isGroupPaged() ? dataSource.groupsTotal(true) : dataSource.total();\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, 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 if (that.dataSource._isGroupPaged() && firstItemIndex >= total - take) {\n that._scrollTop = that.wrapper[0].scrollHeight - that.wrapper[0].offsetHeight - (that._scrollTop - that._prevScrollTop);\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, isGroupPaged = dataSource._isGroupPaged();\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 (isGroupPaged && dataSource._groupRangeExists(skip, skip + take) || !isGroupPaged && dataSource.inRange(skip, take)) {\n that.trigger(LOAD_START);\n dataSource.range(skip, take, function () {\n that.trigger(LOAD_END);\n callback();\n that.trigger(PAGE);\n }, 'page');\n } else {\n if (!delayLoading) {\n that.trigger(LOAD_START);\n }\n that._timeout = setTimeout(function () {\n if (!that._scrolling) {\n if (delayLoading) {\n that.trigger(LOAD_START);\n }\n dataSource.range(skip, take, function () {\n that.trigger(LOAD_END);\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._isGroupPaged() ? dataSource.groupsTotal(true) : 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() && !that.dataSource._isGroupPaged()) {\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 that.trigger(LOAD_END);\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 && action !== 'expandGroup') {\n that._rangeStart = dataSource.skip();\n }\n if (dataSource.page() === 1 && (!action || action !== SYNC && action !== ITEM_CHANGE && action !== 'expandGroup' && action !== 'collapseGroup')) {\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, locked, 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 if (locked && !column.locked) {\n column.locked = locked;\n }\n column.headerAttributes = extend({ headers: parentIds }, column.headerAttributes);\n if (!column.headerAttributes.id) {\n column.headerAttributes = extend({ id: uid }, column.headerAttributes);\n column.uid = uid;\n } else {\n uid = column.headerAttributes.id;\n }\n if (column.columns) {\n column.columns = normalizeColumns(column.columns, encoded, hidden, column.locked, parentIds ? parentIds + ' ' + uid : uid);\n }\n return extend({\n encoded: encoded,\n hidden: hidden,\n locked: locked\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 findColumnByField(columns, field) {\n for (var i = 0; i < columns.length; i++) {\n if (columns[i].field == field) {\n return columns[i];\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).children('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 setLeftAndRightStyles(element, left, right) {\n element.css({\n 'left': left,\n 'right': right\n });\n }\n function createColumnAttribute(column, attribute, property) {\n column[attribute] = column[attribute] || {};\n column[attribute][property] = column[attribute][property] || '';\n }\n function addColumnAttribute(column, attribute, property, value) {\n createColumnAttribute(column, attribute, property);\n if (column[attribute][property] !== '') {\n column[attribute][property] += ' ' + value;\n } else {\n column[attribute][property] = value;\n }\n }\n function removeColumnAttribute(column, attribute, property, value) {\n createColumnAttribute(column, attribute, property);\n column[attribute][property] = column[attribute][property].replace(value, '');\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 stickyColumns(columns) {\n return grep(columns, function (column) {\n return column.sticky && !column.locked;\n });\n }\n function visibleStickyColumns(columns) {\n return grep(columns, function (column) {\n return column.sticky && !column.locked && isVisible(column);\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 visibleChildColumns(columns) {\n var result = childColumns(columns);\n result = result.filter(function (e) {\n return !e.hidden;\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 }\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 if (that._foreignKeyPromises) {\n $.when.apply(null, that._foreignKeyPromises).then(function () {\n that._foreignKeyPromises = null;\n that._continueInit();\n });\n } else {\n that._continueInit();\n }\n },\n _continueInit: function () {\n var that = this;\n that._dataSource();\n that._stickyColumns();\n that._tbody();\n that._thead();\n that._groupable();\n that._toolbar();\n that._pageable();\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 COLUMNSTICK,\n COLUMNUNSTICK,\n NAVIGATE,\n 'page',\n 'sort',\n 'filter',\n 'group',\n 'groupExpand',\n 'groupCollapse',\n 'kendoKeydown'\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 kendo.scrollLeft(scrollableContent, leftMostPosition(scrollableContent, isRtl));\n } else {\n scrollableContent = that.tbody;\n kendo.scrollLeft(that.content, 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 } else {\n that._footer();\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 encodeTitles: 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 loaderType: 'loadingPanel',\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 width: null\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 this._headertables = 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 } else {\n if (options.dataSource.filter) {\n currentOptions.dataSource.filter = options.dataSource.filter;\n }\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, includeGroupRows) {\n return container.children().filter(function () {\n var tr = $(this);\n return (includeGroupRows ? !tr.hasClass('k-detail-row') : !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 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 = kendo.scrollLeft(container);\n if (isRtl && (browser.mozilla || browser.webkit && browser.version >= 85)) {\n scrollLeft = scrollLeft * -1;\n }\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 * kendo.scrollLeft(headerWrap) + leftBorderWidth - leftMargin - rtlCorrection : 0;\n webkitCorrection = -rtlCorrection;\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(visibleLeafColumns(that.columns))) : inArray(column, visibleNonLockedColumns(visibleLeafColumns(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 that._updateStickyColumns();\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().find('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 that._updateStickyColumns();\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').off('scroll' + NS + 'scrolling').on('scroll' + NS + 'scrolling', function (e) {\n if (that.virtualScrollable) {\n kendo.scrollLeft(that.content.find('>.k-virtual-scrollable-wrap'), this.scrollLeft);\n } else {\n kendo.scrollLeft(that.scrollables.not(e.currentTarget), this.scrollLeft);\n }\n });\n },\n dragend: function () {\n that._resetResizeHandleHeader();\n header.children('.k-grid-header-wrap').off('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(), COLGROUP), 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(), COLGROUP), 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 autoFitColumns: function (columns) {\n var that = this;\n columns = columns || that.columns;\n for (var i = 0; i < columns.length; i++) {\n var column = columns[i];\n if (column.columns) {\n that.autoFitColumns(column.columns);\n } else {\n that.autoFitColumn(column);\n }\n }\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)', menu, thWidth;\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 menu = th.find('a.k-header-column-menu, a.k-grid-filter');\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 = kendo.scrollLeft(contentDiv);\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 thWidth = menu.length ? outerWidth(menu) + outerWidth(th) : outerWidth(th);\n var newColumnWidth = Math.ceil(Math.max(thWidth, 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 tables.removeClass('k-autofitting');\n if (scrollLeft) {\n kendo.scrollLeft(contentDiv, 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 that._updateStickyColumns();\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 that._updateStickyColumns();\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 if (column.sticky) {\n this.unstickColumn(columns.indexOf(column));\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 stickColumn: 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.sticky || column.hidden) {\n return;\n }\n if (column.locked) {\n this.unlockColumn(columns.indexOf(column));\n if (column.locked) {\n return;\n }\n }\n column.sticky = true;\n this._updateStickyColumns();\n },\n unstickColumn: 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.sticky || column.locked || column.hidden) {\n return;\n }\n this._removeStickyAttributes([column]);\n this._removeStickyStyles(stickyColumns(columns));\n column.sticky = false;\n this._updateStickyColumns();\n if (this._anyStickyColumns() === 0) {\n this._templates();\n if (this._hasFilterRow()) {\n this._updateStickyFilterCells();\n }\n }\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 _calculateColumnIndex: function (cell) {\n var cellIndex = this.cellIndex(cell);\n var virtualOffset = 0;\n if (this._hasVirtualColumns()) {\n virtualOffset = parseInt($(cell).closest('tr').find('td').first().attr('colspan'), 10);\n virtualOffset = virtualOffset > 1 ? virtualOffset - 1 : 0;\n }\n return cellIndex + virtualOffset;\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).trigger('focus');\n }).on(CLICK + NS, '.k-edit-cell', function (e) {\n if (!$(e.target).is('input')) {\n $(e.currentTarget).find('input[type=\\'checkbox\\']').trigger('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()).trigger('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 var element = $(this);\n if (!that._belongsToGrid(element)) {\n return;\n }\n e.preventDefault();\n that.editRow(element.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 var element = $(this);\n if (!that._belongsToGrid(element)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n that.removeRow(element.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 if (!that._belongsToGrid($(this))) {\n return;\n }\n e.stopPropagation();\n if (!that._confirmation()) {\n e.preventDefault();\n }\n });\n }\n }\n },\n editCell: function (cell) {\n cell = $(cell);\n var that = this, column = leafColumns(that.columns)[that._calculateColumnIndex(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 = leafColumns(that.columns)[that._calculateColumnIndex(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 if (that.dataSource._isGroupPaged()) {\n that._removeGroupIfEmpty(row);\n }\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._calculateColumnIndex(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.trigger('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 = leafColumns(that.columns)[that._calculateColumnIndex(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 if (that.content) {\n that.content.data(OVERFLOW, that.content.css(OVERFLOW));\n that.content.css(OVERFLOW, HIDDEN);\n }\n },\n close: function () {\n if (that.content) {\n that.content.css(OVERFLOW, that.content.data(OVERFLOW));\n }\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().done(function () {\n that._pdfInitialized = false;\n });\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 that._pushExpression(expression.filters, searchFields[i], value);\n }\n } else {\n expression = {};\n }\n that.dataSource.filter(expression);\n }, 300);\n });\n }\n },\n _pushExpression: function (filters, field, value) {\n var that = this, isServerFiltering = that.dataSource.options.serverFiltering, defaultOperators = {\n string: 'contains',\n number: 'gte',\n date: 'gte',\n enums: 'eq',\n boolean: 'eq'\n }, name = field.name || field, operator = field.operator, modelInfo = that.dataSource.reader.model && that.dataSource.reader.model.fields, fieldInfo = modelInfo && modelInfo[name], parseFn = fieldInfo && fieldInfo.parse, expression = {\n field: name,\n operator: operator || defaultOperators.string,\n value: value\n };\n if ((operator || isServerFiltering) && fieldInfo && kendo.isFunction(parseFn) && parseFn(value) !== null) {\n extend(expression, {\n operator: operator || defaultOperators[fieldInfo.type],\n value: parseFn(value)\n });\n }\n if (isServerFiltering && fieldInfo && kendo.isFunction(parseFn) && parseFn(value) === null) {\n return;\n }\n filters.push(expression);\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 ignoreOverlapped: that.options.selectable && that.options.selectable.ignoreOverlapped,\n addIdToRanges: true\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 (!current) {\n return;\n }\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()).trigger('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 copySelectionToClipboard: function (includeHeaders) {\n this._createAreaClipBoard();\n this.areaClipBoard.val(this.getTSV(includeHeaders)).trigger('focus').select();\n document.execCommand('copy');\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 this._createAreaClipBoard();\n this.areaClipBoard.val(this.getTSV()).trigger('focus').select();\n },\n _createAreaClipBoard: function () {\n if (!this.areaClipBoard) {\n this.areaClipBoard = $('