{"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","findColumnByUID","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","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","focus","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","FIRSTITEMROW","LASTITEMROW","FIRSTNAVITEM","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","first","_wheelScroll","_wrapper","kineticScrollNeeded","UserEvents","global","allowSelection","start","sender","capture","move","scrollTop","y","delta","x","_scroll","overflow-y","ctrlKey","wheelDeltaY","clientHeight","scrollHeight","delayLoading","rowHeight","skip","_rangeStart","innerHeight","isScrollingUp","_scrollbarTop","firstItemIndex","lastItemOffset","lastItemIndex","_preventScroll","_prevScrollTop","_scrollTop","_scrolling","_fetch","trigger","_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","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","blur","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","input","_searchTimeOut","searchFields","expression","filters","logic","endless","_endlessPageSize","operator","searchText","attributeClassMatch","split","_hasFooters","groupRow","collapseGroup","expandGroup","_isLocked","_attachGroupable","draggables","enabled","chrome","Groupable","groupContainer","draggableElements","allowDrag","_skip","_pageSize","_take","_addGroupableOptionsToHeader","headerCell","columnOptions","columnFieldMap","headerCells","_headerCells","cellFieldAttr","kendoGroupable","_removeGroupableOptionsFromHeader","removeData","_continuousItems","lockedItems","nonLockedItems","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","filterCell","getKendoFilterCell","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","_toggleCurrent","descriptors","label","_canDrag","dir","link","focusable","originalIndex","_currentDataIndex","lockedColumnsCount","tmpIndex","currentRowCells","hiddenColumns","up","step","back","switchRow","isEdited","isIE","_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 = $.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)', FIRSTITEMROW = ITEMROW + ':first', LASTITEMROW = ITEMROW + ':last', FIRSTNAVITEM = NAVROW + ':first>' + NAVCELL + ':first', 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().bind('DOMMouseScroll' + NS + ' mousewheel' + NS, proxy(that._wheelScroll, that));\n that._wrapper();\n if (kendo.support.kineticScrollNeeded || kendo.support.touch) {\n that.wrapper.css('touch-action', 'none');\n that.drag = new kendo.UserEvents(that.wrapper, {\n global: true,\n allowSelection: true,\n start: function (e) {\n e.sender.capture();\n },\n move: function (e) {\n that.verticalScrollbar.scrollTop(that.verticalScrollbar.scrollTop() - e.y.delta);\n kendo.scrollLeft(wrapper, kendo.scrollLeft(wrapper) - e.x.delta);\n e.preventDefault();\n }\n });\n }\n that.verticalScrollbar = $('
').css({ width: scrollbar }).appendTo(element).bind('scroll' + NS, proxy(that._scroll, that));\n },\n _wrapper: function () {\n var that = this;\n if (isIE11) {\n that.wrapper.css({ 'overflow-y': SCROLL });\n that.element.css(isRtl ? 'padding-left' : 'padding-right', 0);\n }\n },\n _wheelScroll: function (e) {\n if (e.ctrlKey) {\n return;\n }\n var scrollbar = this.verticalScrollbar, scrollTop = scrollbar.scrollTop(), delta = kendo.wheelDeltaY(e);\n if (delta && !(delta > 0 && scrollTop === 0) && !(delta < 0 && scrollTop + scrollbar[0].clientHeight == scrollbar[0].scrollHeight)) {\n e.preventDefault();\n this.verticalScrollbar.scrollTop(scrollTop + -delta);\n }\n },\n _scroll: function (e) {\n var that = this, delayLoading = !that.options.prefetch, scrollTop = e.currentTarget.scrollTop, dataSource = that.dataSource, rowHeight = that.itemHeight, skip = dataSource.skip() || 0, start = that._rangeStart || skip, height = that.element.innerHeight(), isScrollingUp = !!(that._scrollbarTop && that._scrollbarTop > scrollTop), firstItemIndex = math.max(math.floor(scrollTop / rowHeight), 0), lastItemOffset = isScrollingUp ? math.ceil(height / rowHeight) : math.floor(height / rowHeight), lastItemIndex = math.max(firstItemIndex + lastItemOffset, 0);\n if (that._preventScroll) {\n that._preventScroll = false;\n return;\n }\n that._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 findColumnByUID(columns, uid) {\n for (var i = 0; i < columns.length; i++) {\n if (columns[i].uid == uid) {\n return columns[i];\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 + ')>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 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').unbind('scroll' + NS + 'scrolling').bind('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').unbind('scroll' + NS + 'scrolling');\n },\n drag: function () {\n that._hideResizeHandle();\n },\n hint: function (target) {\n var title = target.attr(kendo.attr('title'));\n if (title) {\n title = kendo.htmlEncode(title);\n }\n return $('
').html(title || target.attr(kendo.attr('field')) || target.text()).prepend('');\n }\n }).data('kendoDraggable');\n }\n },\n _reorderable: function () {\n var that = this;\n if (that.options.reorderable) {\n if (that.wrapper.data('kendoReorderable')) {\n that.wrapper.data('kendoReorderable').destroy();\n }\n that.wrapper.kendoReorderable({\n draggable: that._draggableInstance,\n dragOverContainers: function (sourceIndex, targetIndex) {\n var columns = flatColumnsInDomOrder(that.columns);\n return columns[sourceIndex].lockable !== false && targetParentContainerIndex(columns, that.columns, sourceIndex, targetIndex) > -1;\n },\n inSameContainer: function (e) {\n return $(e.source).parent()[0] === $(e.target).parent()[0] && targetParentContainerIndex(flatColumnsInDomOrder(that.columns), that.columns, e.sourceIndex, e.targetIndex) > -1;\n },\n change: function (e) {\n var columns = flatColumnsInDomOrder(that.columns);\n var column = columns[e.oldIndex];\n var newIndex = targetParentContainerIndex(columns, that.columns, e.oldIndex, e.newIndex);\n that.trigger(COLUMNREORDER, {\n newIndex: newIndex,\n oldIndex: inArray(column, columns),\n column: column\n });\n that.reorderColumn(newIndex, column, e.position === 'before');\n }\n });\n }\n },\n _reorderHeader: function (sources, target, before, container) {\n var that = this;\n var sourcePosition = columnPosition(sources[0], that.columns);\n var destPosition = columnPosition(target, that.columns);\n var action;\n var ths;\n var leafs = [];\n for (var idx = 0; idx < sources.length; idx++) {\n if (sources[idx].columns) {\n leafs = leafs.concat(sources[idx].columns);\n }\n }\n if (container) {\n ths = elements(container, container, 'tr:eq(' + sourcePosition.row + ')>th.k-header:not(.k-group-cell,.k-hierarchy-cell)');\n } else {\n ths = elements(that.lockedHeader, that.thead, 'tr:eq(' + sourcePosition.row + ')>th.k-header:not(.k-group-cell,.k-hierarchy-cell)');\n }\n var sourceLockedColumns = lockedColumns(sources).length;\n var targetLockedColumns = lockedColumns([target]).length;\n if (leafs.length) {\n if (sourceLockedColumns > 0 && targetLockedColumns === 0) {\n action = 'prepend';\n moveCellsBetweenContainers(sources, target, leafs, that.columns, that.lockedHeader.find('thead'), that.thead, this._groups(), action);\n } else if (sourceLockedColumns === 0 && targetLockedColumns > 0) {\n action = destPosition.cell === 0 && sources[0].columns && !target.columns && !that._group ? 'prepend' : 'append';\n moveCellsBetweenContainers(sources, target, leafs, nonLockedColumns(that.columns), that.thead, that.lockedHeader.find('thead'), this._groups(), action);\n }\n if (target.columns || sourcePosition.cell - destPosition.cell > 1 || destPosition.cell - sourcePosition.cell > 1) {\n target = findReorderTarget(that.columns, target, sources[0], before, that.columns);\n if (target) {\n if (sourceLockedColumns > 0 && targetLockedColumns === 0) {\n that._reorderHeader(leafs, target, before, that.thead);\n } else if (sourceLockedColumns === 0 && targetLockedColumns > 0) {\n that._reorderHeader(leafs, target, before, that.lockedHead);\n } else {\n that._reorderHeader(leafs, target, before);\n }\n }\n }\n } else if (sourceLockedColumns !== targetLockedColumns) {\n updateCellRowSpan(ths[sourcePosition.cell], that.columns, sourceLockedColumns);\n }\n reorder(ths, sourcePosition.cell, destPosition.cell, before, sources.length);\n },\n _reorderContent: function (sources, destination, before) {\n var that = this;\n var lockedRows = $();\n var source = sources[0];\n var visibleSources = visibleColumns(sources);\n var sourceIndex = inArray(source, leafColumns(that.columns));\n var destIndex = inArray(destination, leafColumns(that.columns));\n var colSourceIndex = inArray(visibleSources[0], visibleLeafColumns(that.columns));\n var colDest = inArray(destination, visibleLeafColumns(that.columns));\n var lockedCount = lockedColumns(that.columns).length;\n var isLocked = !!destination.locked;\n var footer = that.footer || that.wrapper.find('.k-grid-footer');\n var headerCol, footerCol, beforeVisibleColumn;\n headerCol = footerCol = colDest;\n if (destination.hidden) {\n var columnsArray = isLocked ? lockedColumns(that.columns) : nonLockedColumns(that.columns);\n if (visibleColumns(columnsArray).length > 0) {\n headerCol = footerCol = colDest = this._findClosestVisibleColumnIndex(columnsArray, destIndex);\n beforeVisibleColumn = visibleColumns(columnsArray.slice(destIndex)).length > 0;\n } else {\n if (isLocked) {\n colDest = that.lockedTable.find('colgroup');\n headerCol = that.lockedHeader.find('colgroup');\n footerCol = $(that.lockedFooter).find('>table>colgroup');\n } else {\n colDest = that.tbody.prev();\n headerCol = that.thead.prev();\n footerCol = footer.find('.k-grid-footer-wrap').find('>table>colgroup');\n }\n }\n }\n if (that._hasFilterRow()) {\n reorder(that.wrapper.find('.k-filter-row th:not(.k-group-cell,.k-hierarchy-cell)'), sourceIndex, destIndex, before, sources.length);\n }\n if (colSourceIndex >= 0) {\n reorder(elements(that.lockedHeader, that.thead.prev(), 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 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).focus();\n }).on(CLICK + NS, '.k-edit-cell', function (e) {\n if (!$(e.target).is('input')) {\n $(e.currentTarget).find('input[type=\\'checkbox\\']').focus();\n }\n }).on(MOUSEDOWN + NS, 'tr:not(.k-grouping-row) > td', function (e) {\n var editContainer = that._editContainer;\n if (editContainer && editContainer[0] && ($.contains(editContainer[0], e.target) || editContainer[0] === e.target)) {\n that._mousedownOnEditCell = true;\n } else {\n that._mousedownOnEditCell = false;\n }\n });\n }\n that.editableUserEvents = new kendo.UserEvents(that.wrapper, {\n filter: 'tr:not(.k-grouping-row) > td',\n allowSelection: true,\n tap: function (e) {\n var td = $(e.target), isLockedCell = that.lockedTable && td.closest('table')[0] === that.lockedTable[0];\n that._mousedownOnEditCell = false;\n if (td.hasClass('k-hierarchy-cell') || td.hasClass('k-detail-cell') || td.hasClass('k-group-cell') || td.hasClass('k-edit-cell') || td.has('a.k-grid-delete').length || td.has('button.k-grid-delete').length || td.closest('tbody')[0] !== that.tbody[0] && !isLockedCell || $(e.target).is(':input')) {\n return;\n }\n if (that.editable) {\n if (that.editable.end()) {\n $(activeElement()).blur();\n that.closeCell();\n that.editCell(td);\n } else {\n that._scrollVirtualWrapper();\n }\n } else {\n that.editCell(td);\n }\n }\n });\n that.wrapper.on('focusin' + NS, function () {\n if (!$.contains(this, activeElement())) {\n clearTimeout(that.timer);\n that.timer = null;\n }\n }).on('focusout' + NS, function (e) {\n var shouldCloseCell = true;\n if (isMac && that._mousedownOnEditCell || that._virtualColScroll) {\n shouldCloseCell = false;\n }\n that._mousedownOnEditCell = false;\n if (shouldCloseCell) {\n that.timer = setTimeout(function () {\n handler(e);\n }, 1);\n }\n });\n }\n } else {\n if (editable.update !== false) {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible a.k-grid-edit', function (e) {\n 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.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();\n });\n container.on(INPUT + NS, '.k-grid-search input', function (e) {\n var input = e.currentTarget;\n clearTimeout(that._searchTimeOut);\n that._searchTimeOut = setTimeout(function () {\n that._searchTimeOut = null;\n var options = that.options;\n var searchFields = options.search ? options.search.fields : null;\n var expression = {\n filters: [],\n logic: 'or'\n };\n var value = input.value;\n if (!searchFields) {\n searchFields = getColumnsFields(options.columns);\n }\n if (that.dataSource.options.endless) {\n that.dataSource.options.endless = null;\n that._endlessPageSize = that.dataSource.options.pageSize;\n }\n if (value) {\n for (var i = 0; i < searchFields.length; i++) {\n expression.filters.push({\n field: searchFields[i],\n operator: 'contains',\n value: value\n });\n }\n } else {\n expression = {};\n }\n that.dataSource.filter(expression);\n }, 300);\n });\n }\n },\n _toolbarTmpl: function (commands) {\n var that = this, idx, length, html = '', command, searchText = '', messages = that.options.messages.commands;\n if (isArray(commands)) {\n for (idx = 0, length = commands.length; idx < length; idx++) {\n command = typeof commands[idx] === 'string' ? commands[idx].toLowerCase() : (commands[idx].name || '').toLowerCase();\n if (command === 'search') {\n if (typeof commands[idx] !== 'string') {\n searchText = commands[idx].text;\n }\n searchText = searchText || messages.search;\n html += '';\n html += '';\n html += '';\n html += '';\n } else {\n html += that._createButton(commands[idx]);\n }\n }\n }\n return html;\n },\n _createButton: function (command) {\n var template = command.template || COMMANDBUTTONTMPL, commandName = typeof command === STRING ? command : command.name || command.text, className = defaultCommands[commandName] ? defaultCommands[commandName].className : 'k-grid-' + (commandName || '').replace(/\\s/g, ''), options = {\n className: className,\n text: commandName,\n attr: '',\n iconClass: ''\n }, messages = this.options.messages.commands, attributeClassMatch;\n if (!commandName && !(isPlainObject(command) && command.template)) {\n throw new Error('Custom commands should have name specified');\n }\n if (isPlainObject(command)) {\n command = extend(true, {}, command);\n if (command.className && inArray(options.className, command.className.split(' ')) < 0) {\n command.className += ' ' + options.className;\n } else if (command.className === undefined) {\n command.className = options.className;\n }\n if (commandName === 'edit') {\n command = extend(true, {}, command);\n command.text = isPlainObject(command.text) ? command.text.edit : command.text;\n command.iconClass = isPlainObject(command.iconClass) ? command.iconClass.edit : command.iconClass;\n }\n if (command.attr) {\n if (isPlainObject(command.attr)) {\n command.attr = stringifyAttributes(command.attr);\n }\n if (typeof command.attr === STRING) {\n attributeClassMatch = command.attr.match(/class=\"(.+?)\"/);\n if (attributeClassMatch && inArray(attributeClassMatch[1], command.className.split(' ')) < 0) {\n command.className += ' ' + attributeClassMatch[1];\n }\n }\n }\n options = extend(true, options, defaultCommands[commandName], { text: messages[commandName] }, command);\n } else {\n options = extend(true, options, defaultCommands[commandName], { text: messages[commandName] });\n }\n return kendo.template(template)(options);\n },\n _hasFooters: function () {\n return !!this.footerTemplate || !!this.groupFooterTemplate || this.footer && this.footer.length > 0 || this.wrapper.find('.k-grid-footer').length > 0;\n },\n _groupable: function () {\n var that = this;\n if (that._groupableClickHandler) {\n that.table.add(that.lockedTable).off(CLICK + NS, that._groupableClickHandler);\n } else {\n that._groupableClickHandler = function (e) {\n var element = $(this), groupRow = element.closest('tr');\n var group = that._groupRows ? that._groupRows[that.wrapper.find('.k-grouping-row').index(groupRow)] : {};\n if (element.hasClass('k-i-collapse')) {\n if (!that.trigger('groupCollapse', {\n group: group,\n element: groupRow\n })) {\n that.collapseGroup(groupRow);\n }\n } else {\n if (!that.trigger('groupExpand', {\n group: group,\n element: groupRow\n })) {\n that.expandGroup(groupRow);\n }\n }\n e.preventDefault();\n e.stopPropagation();\n };\n }\n if (that._isLocked()) {\n that.lockedTable.on(CLICK + NS, '.k-grouping-row .k-i-expand, .k-grouping-row .k-i-collapse', that._groupableClickHandler);\n } else {\n that.table.on(CLICK + NS, '.k-grouping-row .k-i-expand, .k-grouping-row .k-i-collapse', that._groupableClickHandler);\n }\n that._attachGroupable();\n },\n _attachGroupable: function () {\n var that = this, wrapper = that.wrapper, groupable = that.options.groupable, draggables = HEADERCELLS + '[' + kendo.attr('field') + ']', filter = that.content ? '.k-grid-header:first ' + draggables : 'table:first>.k-grid-header ' + draggables;\n if (groupable && groupable.enabled !== false) {\n if (!wrapper.has('div.k-grouping-header')[0]) {\n $('
     
    ').addClass('k-grouping-header').prependTo(wrapper);\n }\n if (that.groupable) {\n that._destroyGroupable();\n }\n if (browser.chrome) {\n wrapper.find('div.k-grouping-header').css('touch-action', 'none');\n wrapper.find(filter).css('touch-action', 'none');\n }\n that.groupable = new ui.Groupable(wrapper, extend({}, groupable, {\n draggable: that._draggableInstance,\n groupContainer: '>div.k-grouping-header',\n dataSource: that.dataSource,\n draggableElements: filter,\n filter: filter,\n allowDrag: that.options.reorderable,\n change: function (e) {\n if (that.trigger('group', { groups: e.groups })) {\n e.preventDefault();\n } else {\n that._clearEditableState();\n if (that.dataSource.options.endless) {\n that.dataSource.options.endless = null;\n that._endlessPageSize = that.dataSource.options.pageSize;\n that.dataSource._skip = 0;\n that.dataSource._pageSize = that.dataSource._take = that._endlessPageSize;\n that.dataSource._page = 1;\n }\n }\n }\n }));\n that._addGroupableOptionsToHeader();\n }\n },\n _addGroupableOptionsToHeader: function () {\n var that = this;\n var columns = flatColumns(that.columns);\n var columnFieldMap = {};\n var field = '';\n var headerCells = that._headerCells();\n var cellFieldAttr = '';\n var headerCell;\n var columnOptions;\n var i;\n for (i = 0; i < columns.length; i++) {\n field = columns[i].field;\n columnFieldMap[columns[i].field] = columns[i];\n }\n for (i = 0; i < headerCells.length; i++) {\n headerCell = headerCells.eq(i);\n cellFieldAttr = headerCell.attr(kendo.attr(FIELD));\n columnOptions = columnFieldMap[cellFieldAttr];\n if (columnOptions && columnOptions.groupable && columnOptions.groupable.sort) {\n headerCell.data(GROUP_SORT, columnOptions.groupable.sort);\n }\n }\n },\n _destroyGroupable: function () {\n var that = this;\n if (that.groupable && that.groupable.element) {\n that.groupable.element.kendoGroupable('destroy');\n }\n that.groupable = null;\n that._removeGroupableOptionsFromHeader();\n },\n _removeGroupableOptionsFromHeader: function () {\n var that = this;\n var headerCells = that._headerCells();\n for (var i = 0; i < headerCells.length; i++) {\n headerCells.eq(i).removeData(GROUP_SORT);\n }\n },\n _continuousItems: function (filter, cell) {\n if (!this.lockedContent) {\n return;\n }\n var that = this;\n var elements = that.table.add(that.lockedTable);\n var lockedItems = $(filter, elements[0]);\n var nonLockedItems = $(filter, elements[1]);\n var columns = cell ? lockedColumns(that.columns).length : 1;\n var nonLockedColumns = cell ? that.columns.length - columns : 1;\n var result = [];\n for (var idx = 0; idx < lockedItems.length; idx += columns) {\n push.apply(result, lockedItems.slice(idx, idx + columns));\n push.apply(result, nonLockedItems.splice(0, nonLockedColumns));\n }\n return result;\n },\n _selectable: function () {\n var that = this, multi, cell, notString = [], isLocked = that._isLocked(), selectable = that.options.selectable;\n if (selectable) {\n if (that.selectable) {\n that.selectable.destroy();\n }\n that._selectedIds = {};\n selectable = kendo.ui.Selectable.parseOptions(selectable);\n multi = selectable.multiple;\n cell = selectable.cell;\n if (that._hasDetails()) {\n notString[notString.length] = '.k-detail-row';\n }\n if (that.options.groupable || that._hasFooters() || that._groups()) {\n notString[notString.length] = '.k-grouping-row,.k-group-footer';\n }\n notString = notString.join(',');\n if (notString !== '') {\n notString = ':not(' + notString + ')';\n }\n var elements = that.table;\n if (isLocked) {\n elements = elements.add(that.lockedTable);\n }\n var filter = '>' + (cell ? SELECTION_CELL_SELECTOR : 'tbody>tr' + notString);\n that.selectable = new kendo.ui.Selectable(elements, {\n filter: filter,\n aria: true,\n multiple: multi,\n change: function () {\n var selectedValues;\n if (!cell) {\n that._persistSelectedRows();\n }\n if (that._checkBoxSelection) {\n selectedValues = that.selectable.value();\n that._uncheckCheckBoxes();\n that._checkRows(selectedValues);\n if (selectedValues.length && selectedValues.length === that.items().length) {\n that._toggleHeaderCheckState(true);\n } else {\n that._toggleHeaderCheckState(false);\n }\n }\n that.trigger(CHANGE);\n },\n useAllItems: isLocked && multi && cell,\n relatedTarget: function (items) {\n if (cell || !isLocked) {\n return;\n }\n var related;\n var result = $();\n for (var idx = 0, length = items.length; idx < length; idx++) {\n related = that._relatedRow(items[idx]);\n if (inArray(related[0], items) < 0) {\n result = result.add(related);\n }\n }\n return result;\n },\n continuousItems: function () {\n return that._continuousItems(filter, cell);\n },\n 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()).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)).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()).focus().select();\n },\n _createAreaClipBoard: function () {\n if (!this.areaClipBoard) {\n this.areaClipBoard = $('