{"version":3,"file":"kendo.grid.min.js","names":["factory","define","amd","$","undefined$1","GroupsPager","kendo","window","ui","DataSource","data","ObservableObject","tbodySupportsInnerHtml","support","tbodyInnerHtml","activeElement","_activeElement","Widget","outerWidth","_outerWidth","outerHeight","_outerHeight","keys","isPlainObject","extend","map","grep","isArray","Array","inArray","push","prototype","isFunction","isEmptyObject","contains","math","Math","DOT","PROGRESS","ERROR","DATA_CELL","attr","NAVROW","NAVCELL","ITEMROW","COLGROUP","HEADERCELLS","NS","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","CHECKBOXINPUT","NORECORDSCLASS","SORTED_CLASS","STICKY_CELL_CLASS","STICKY_HEADER_CLASS","STICKY_FOOTER_CLASS","STICKY_HEADER_NO_BORDER_CLASS","RESIZE","COLUMNRESIZE","COLUMNREORDER","COLUMNLOCK","COLUMNUNLOCK","COLUMNSTICK","COLUMNUNSTICK","ROWREORDER","NAVIGATE","CLICK","HEIGHT","TABINDEX","FUNCTION","STRING","BOTTOM","CONTAINER_FOR","FIELD","INPUT","INCELL","INLINE","OVERFLOW","SORT","GROUP_SORT","COLLAPSE","EXPAND","ID","ARIA_LABEL","ARIA_OWNS","ARIA_ROWCOUNT","ARIA_COLCOUNT","ARIA_COLINDEX","ARIA_ROWINDEX","ARIA_EXPANDED","ARIA_CHECKED","ARIA_ACTIVEDESCENDANT","ROLE","NONE","ROW","ROWGROUP","COLUMNHEADER","GRIDCELL","formatRegExp","templateHashRegExp","leftRegExp","RegExp","rightRegExp","nonDataCellsRegExp","filterRowRegExp","isRtl","browser","isIE11","msie","version","isMac","test","navigator","userAgent","classNames","Pager","init","element","options","fn","call","this","dataSource","useRanges","_omitPrefetch","name","totalPages","ceil","_collapsedTotal","pageSize","groupsTotal","VirtualScrollable","that","_refreshHandler","refresh","bind","setDataSource","wrap","unbind","virtual","itemHeight","noop","prefetch","maxScrollHeight","events","destroy","wrapper","add","verticalScrollbar","off","clearTimeout","_timeout","_scrollingTimeout","drag","scrollbar","css","width","overflow","content","children","first","parent","on","_wheelScroll","_wrapper","kineticScrollNeeded","touch","UserEvents","global","allowSelection","start","e","sender","capture","move","scrollTop","y","delta","scrollLeft","x","preventDefault","appendTo","_scroll","ctrlKey","wheelDeltaY","clientHeight","scrollHeight","delayLoading","currentTarget","rowHeight","skip","_rangeStart","height","innerHeight","isScrollingUp","_scrollbarTop","firstItemIndex","max","floor","lastItemOffset","lastItemIndex","_preventScroll","_prevScrollTop","_scrollTop","_scrolling","_fetch","trigger","setTimeout","_page","take","scrollToTop","_scrollTo","scrollToBottom","_scrollWrapperToTop","_scrollWrapperToBottom","_scrollWrapperOnColumnResize","initialScrollTop","scrollWidth","clientWidth","_wrapperScrolled","_isScrolledToBottom","_isWrapperScrolledToBottom","_isScrolledToTop","parseInt","itemIndex","rowIndex","position","index","result","rangeStart","scrollIntoView","row","container","containerHeight","containerScroll","elementOffset","offsetTop","elementHeight","offsetHeight","scrollingUp","currentSkip","fetching","webkitCorrection","webkit","total","_isGroupPaged","min","_fetching","callback","isGroupPaged","_groupRangeExists","inRange","range","repaintScrollbar","shouldScrollWrapper","totalHeight","idx","html","maxHeight","wrapperElement","wasScrolledToBottom","addScrollBarHeight","offsetWidth","action","cancel","page","attrEquals","attrName","attrValue","groupCells","count","join","stringifyAttributes","attributes","defaultCommands","create","text","className","iconClass","save","edit","update","themeColor","canceledit","excel","pdf","search","cursor","context","value","document","body","reorder","selector","source","dest","before","sourceIndex","eq","elements","lockedContent","filter","find","attachCustomCommandEvent","commands","length","command","commandName","click","replace","normalizeColumns","columns","encoded","hide","locked","parentIds","column","hidden","field","isVisible","addHiddenStyle","footerAttributes","headerAttributes","uid","guid","headers","id","columnParent","parents","columnParents","inserted","splice","setColumnVisibility","visible","setVisibility","show","method","removeHiddenStyle","setColumnMediaVisibility","setColumnMatchesMedia","_hideByMedia","matchesMedia","columnMatchesMedia","isUndefined","media","isCellVisible","style","display","visibleColumns","columnsWithMedia","i","minScreenWidth","Error","concat","toJQuery","toArray","findColumnByField","moveCellsBetweenContainers","sources","target","leafs","destination","groups","sourcesDepth","depth","targetDepth","rows","insertAfter","last","cells","rowSpan","addRowSpanValue","moveCells","updateCellIndex","thead","offset","allColumns","leafColumns","el","hasClass","columnPosition","cell","temp","sourcePosition","columnVisiblePosition","ths","t","cellCounts","findReorderTarget","masterColumns","parentColumns","rtl","targetLocked","findParentColumnWithChildren","targetIndex","flatColumnsInDomOrder","flatColumns","lockedColumns","nonLockedColumns","targetParentContainerIndex","hiddenLeafColumnsCount","counter","sumWidths","cols","columnsWidth","colWidth","indexOf","removeEmptyRows","emptyRowsCount","remove","mapColumnToCellRows","setLeftAndRightStyles","left","right","createColumnAttribute","attribute","property","addColumnAttribute","removeColumnAttribute","stickyColumns","sticky","visibleNonLockedColumns","visibleLockedColumns","visibleLeafColumns","visibleLeafExportColumns","values","childColumns","visibleChildColumns","editField","title","format","editor","editorOptions","label","leafDataCells","indexAttr","sort","a","b","indexA","indexB","parentColumnsCells","closest","headerRows","level","parentCellsWithChildren","prevCells","prevAll","colSpan","parentCell","getAttribute","childColumnsCells","colSpanAttr","child","next","appendContent","tbody","table","empty","placeholder","tmp","innerHTML","createElement","firstChild","replaceChild","match","normalizeCols","hasDetails","colgroup","is","append","prepend","convertToObject","array","item","formatGroupValue","columnValues","groupValue","htmlEncode","setCellVisibility","pad","hideColumnCells","columnIndex","groupRows","hasSubgroups","items","groupFooters","aggregates","showColumnCells","updateColspan","toAdd","toRemove","num","tableWidth","Grid","DataBoundWidget","_events","_element","_ariaId","_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","leftMostPosition","groupable","virtualScrollable","navigatable","selectable","toolbar","filterable","sortable","allowCopy","pageable","persistSelection","editable","encodeTitles","rowTemplate","altRowTemplate","noRecords","resizable","reorderable","columnMenu","detailTemplate","columnResizeHandleWidth","mobile","loaderType","messages","cancelDelete","confirmation","confirmDelete","expandCollapseColumnHeader","groupHeader","ungroupHeader","itemsSelected","dragHandleLabel","toolbarLabel","groupingHeaderLabel","filterCellTitle","reorderableInstance","_angularItems","_destroyColumnAttachments","_navigatableTables","_headertables","pager","timer","_progressTimeOut","_collapseGroupsTimeOut","_endlessFetchTimeOut","_destroyGroupable","clearArea","_selectedIds","copyHandler","updateClipBoardState","clearAreaHandler","_resizeUserEvents","_resizeHandleDocumentClickHandler","_destroyVirtualScrollable","editableUserEvents","_lockedContentUserEvents","_destroyEditable","_progressHandler","_errorHandler","_clearSortClasses","_sortHandler","lockedHeader","_removeLockedContainers","pane","_isMobile","minScreenResizeHandler","_detachColumnMediaResizeHandler","_draggableInstance","_draggableRowsInstance","lockedRowTemplate","lockedAltRowTemplate","footerTemplate","groupFooterTemplate","lockedGroupFooterTemplate","noRecordsTemplate","scrollables","footer","lockedTable","lockedFooter","_groupableClickHandler","_groupRows","_setContentWidthHandler","getOptions","deepExtend","initialData","_data","group","aggregate","transport","$angular","setOptions","currentOptions","mobileWrapper","roleSelector","after","removeClass","_setEvents","_items","includeGroupRows","tr","dataItems","n","resizeHandle","angular","get","each","th","filterMenu","_aria","tbodyId","headerGroupId","footerGroupId","tableOwned","rowsCount","gridRole","_hasDetails","groupingHeader","gridId","tableTabindex","numberOfFixedRows","trailingColumns","_trailingColumns","virtualScroll","_ariaRowIndex","_ariaColumnIndex","role","_ariaHeaderFooter","_ariaLockedContent","_ariaGroupTitles","previousIndex","dataIndex","cellsIndex","dataVirtual","not","lockedHeaderRows","firstIndex","Number","MAX_VALUE","lastIndex","lockedLastIndex","previousVirtual","nextVirtual","eachHeaderCell","j","current","currentIndex","lockedParent","setAttribute","prev","forEach","type","rowGroup","groupId","_ariaLocked","_cellId","lockedRows","ownedCells","_cellsIds","tableRows","_ariaAddHiddenColIndex","leafColsCount","_ariaRemoveHiddenColIndex","removeAttr","currentRow","numberOfHeaderRows","bodyRows","footerRows","totalNumberOfItems","previousItems","previousMaster","prefix","_createResizeHandle","headerWrap","ieCorrection","leftMargin","leftBorderWidth","top","indicatorWidth","halfResizeHandle","rtlCorrection","mozilla","parseFloat","_autoFitLeafColumn","_positionColumnResizeHandle","lockedHead","button","buttons","which","hasAttribute","_resizeHandleDocumentClick","_resetResizeHandleHeader","_hideResizeHandle","_positionColumnResizeHandleTouch","threshold","minHold","hold","resizeColumn","columnWidth","col","isLocked","isHidden","mobileOS","contentTable","header","columnMinWidth","minResizableWidth","gridWidth","constrain","totalWidth","_footerWidth","_scrollVirtualWrapperOnColumnResize","_applyLockedContainersWidth","_syncLockedContentHeight","_syncLockedHeaderHeight","_updateStickyColumns","_resizable","columnStart","isMobile","Resizable","handle","hint","location","rtlMultiplier","currentWidth","resizeend","newWidth","oldWidth","_draggable","kendoDraggable","autoScroll","dragstart","dragend","_reorderable","kendoReorderable","draggable","dropFilter","dragOverContainers","lockable","inSameContainer","change","oldIndex","newIndex","reorderColumn","_reorderHeader","destPosition","sourceLockedColumnsCount","lockedColumnDepth","nonLockedColumnDepth","sourceLockedColumns","targetLockedColumns","_reorderContent","headerCol","footerCol","beforeVisibleColumn","visibleSources","destIndex","colSourceIndex","colDest","lockedCount","columnsArray","_findClosestVisibleColumnIndex","slice","_hasFilterRow","_hasVirtualColumns","reverse","closestVisibleColumn","leafIndex","autoFitColumn","_hasReorderableRows","_hasDragHandleColumn","_draggableRows","_checkBoxSelection","Selectable","parseOptions","select","clone","elm","innerText","_reorderableRows","smartPosition","allowIcon","orientation","reorderDropCue","positionDropCue","dropTarget","firstCellLeft","getOffset","transform","externalDraggable","_triggerRowRorder","args","reorderRows","rowsLength","targetItem","dataItem","_rowDropping","pushMove","autoFitColumns","headerTable","leafCols","minWidth","contentDiv","menu","thWidth","visibleLocked","notGroupOrHierarchyCol","notGroupOrHierarchyVisibleCell","footerTable","tables","safari","oldColumnWidth","newColumnWidth","lockChanged","destColumn","groupHeaderColumnTemplateColumns","groupHeaderColumnTemplate","sourceColumns","_updateLockedCols","_updateCols","_updateColumnCellIndex","_updateColumnSorters","_renderGroupRows","_updateTablesWidth","_updateFirstColumnClass","lockColumn","unstickColumn","unlockColumn","stickColumn","_removeStickyAttributes","_removeStickyStyles","_anyStickyColumns","_updateStickyFilterCells","cellIndex","td","lockedColumnOffset","_modelForContainer","_editMode","getByUid","_calculateColumnIndex","virtualOffset","editContainer","_editContainer","_mousedownOnEditCell","tap","isLockedCell","has","end","closeCell","editCell","_scrollVirtualWrapper","shouldCloseCell","_virtualColScroll","_belongsToGrid","editRow","_isVirtualInlineEditable","stopPropagation","removeRow","_confirmation","model","isColumnEditable","_attachModelChange","_shouldClearEditableState","_clearEditableState","kendoEditable","fields","skipFocus","_isVirtualIncellEditable","_editableState","adjustRowHeight","_relatedRow","_syncLockedScroll","_adjustLockedHorizontalScrollBar","touchScroller","_adjustRowsHeight","table1","table2","diff","lockedHeigth","tableHeigth","syncTableHeight","_syncLockedFooterHeight","editView","_editCancelClickHandler","_editUpdateClickHandler","_detachModelChange","_destroyEditView","_editableIsClosing","close","_confirmDialog","purge","navigate","_modelChangeHandler","_modelChange","isCancel","_displayCell","ns","state","storage","settings","Template","templateSettings","tmpl","template","_cellTmpl","_removeRow","key","schema","mode","cancelRow","_removeGroupIfEmpty","idField","sync","_createPopupEditor","_createInlineEditor","_editCancelClick","_editUpdateClick","saveRow","_setCurrent","focusTable","_editFields","updateText","cancelText","updateIconClass","cancelIconClass","tempCommand","buttonsHTML","editMenuGuid","unescape","getCommand","_createButton","kendoWindow","modal","userTriggered","clearContainer","Form","buttonsTemplate","formData","_openPopUpEditor","windowEditor","windowOptions","_editAnimation","center","open","Editable","cancelChanges","_displayRow","valid","deferred","Deferred","reject","promise","resolve","related","newRow","nextRow","isSelected","isAlt","replaceWith","angularElements","angularData","_showMessage","Confirm","preventScroll","closable","okText","done","fail","confirmDialog","confirm","_isVirtualEditable","_virtualPageToTop","saveChanges","addRow","createAt","view","createAtBottom","toLowerCase","virtualEditable","serverPaging","_removeCurrent","_virtualAddRow","insert","_editModel","_firstEditableColumnIndex","_virtualAddRowAtBottom","_virtualAddRowAtTop","at","_virtualPageToBottom","_virtualPage","_toolbarTmpl","prependTo","saveAsExcel","saveAsPDF","_pdfInitialized","input","_searchTimeOut","searchFields","expression","filters","logic","getColumnsFields","endless","_endlessPageSize","_pushExpression","isServerFiltering","serverFiltering","defaultOperators","string","number","date","enums","boolean","operator","modelInfo","reader","fieldInfo","parseFn","parse","searchText","attributeClassMatch","split","renderButton","_hasFooters","groupRow","collapseGroup","expandGroup","_isLocked","_attachGroupable","draggables","enabled","chrome","Groupable","groupContainer","draggableElements","allowDrag","removeGroup","_showUngroupedColumn","_hideGroupedColumns","_resetEndless","_addGroupableOptionsToHeader","colID","hideOnGroup","showColumn","hideColumn","_skip","_pageSize","_take","headerCell","columnOptions","columnFieldMap","headerCells","_headerCells","kendoGroupable","_removeGroupableOptionsFromHeader","removeData","_continuousItems","lockedItems","nonLockedItems","multi","notString","multiple","aria","dragToSelect","selectedValues","_persistSelectedRows","_uncheckCheckBoxes","_checkRows","_toggleHeaderCheckState","event","useAllItems","relatedTarget","continuousItems","ignoreOverlapped","addIdToRanges","triggerChange","lastSelection","eventObject","keyCode","SPACEBAR","shiftKey","_deselectCheckRows","clear","_lastActive","LEFT","RIGHT","UP","DOWN","selectRange","_firstSelectee","toCompare","compareElements","grid","stopImmediatePropagation","tableClick","copySelection","areaClipBoard","val","getTSV","copySelectionToClipboard","includeHeaders","_createAreaClipBoard","execCommand","jQuery","Event","metaKey","getSelection","toString","selection","createRange","opacity","selected","delimeter","hasLockedCols","cellsOffset","lockedCols","inLockedArea","_getCellField","cellText","rowsOffset","getTitle","headerIndex","findIndex","_anyColumnHasMediaQuery","_setColumnsMediaVisibility","_attachColumnMediaResizeHandler","_columnsWithMediaQuery","_columnMediaResizeHandler","_onColumnMediaResize","_setContentMediaWidth","_setColumnMediaVisibility","_showColumnByMedia","_hideColumnByMedia","initiallyHidden","headerColumns","headerColgroup","headerColumnsCount","visibleHeaderColumnsCount","hiddenHeaderColumnsCount","totalHeaderWidth","currentHeaderWidth","colgroupChild","columnStyleWidth","hideMinScreenCols","screenWidth","innerWidth","screen","_iterateMinScreenCols","any","_setStickyColumns","filterCells","stickyStyle","updateStyles","visibleStickyColumns","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","ooxml","exporter","ExcelExporter","book","sheets","autoWidth","freezePane","exportData","sortHandler","exportDataSort","isExcelExportableColumn","_addRangeSelectionRows","_addSingleSelectionRows","workbook","Workbook","skipCustomHeight","toDataURLAsync","dataURI","saveAs","fileName","proxyURL","forceProxy","_setExporterColumns","_createExportRows","_rows","_dataRows","_prepareColumn","columnsFilter","curr","isRowSelection","nodeName","columnMapHandler","fieldAttr","_relatedCell","clearSelection","checked","prop","rangeSelectedAttr","modelId","allRows","selectedViewIds","selectedKeyNames","ids","_updateCurrentAttr","nextId","descId","headerId","_current","_scrollCurrent","tableContainer","isInLockedContainer","isInContent","scrollableContainer","addBack","_rowVirtualIndex","preventTrigger","_filterFocusable","siblings","colspan","_virtualCellIndex","_lastCellIndex","_updateSelctCheckbox","nextCheckbox","focus","elementToLowercase","tagName","isHorizontal","elementOffsetDir","containerOffsetDir","abs","offsetLeft","bottomDistance","firefoxCorrection","edge","dataTables","headerTables","_tableFocus","_tableBlur","_tableKeyDown","_filterFocus","_findCellIndex","startIndex","reversed","_scrollToColumn","HOME","END","requestInProgress","canHandle","isDefaultPrevented","altKey","handled","_moveUp","_moveDown","_moveRight","_moveLeft","PAGEDOWN","_handlePageDown","PAGEUP","_handlePageUp","_handleHome","_handleEnd","_handleSpaceKey","ENTER","F2","_handleEnterKey","ESC","_handleEscKey","TAB","_handleTabKey","currentTable","collapseRow","_moveColumn","_prevHorizontalCell","_tabNext","_horizontalContainer","expandRow","_nextHorizontalCell","nextAll","_prevVerticalCell","_verticalContainer","_nextVerticalCell","isLeft","ctrl","rowContainer","isInLockedTable","isInBody","filterFocusable","_handleEditing","active","isInCell","blur","_toggleCurrent","descriptors","_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","asLowerString","parseVirtualSettings","insertBefore","_createVirtualScrollable","_scrollLeft","isScrollingLeft","originalPageSize","_endlessFetchInProgress","_skipRerenderItemsCount","_cacheEditableState","_restoreEditableState","movable","one","_averageRowHeight","scroll","_focusEditable","loadStart","_progress","loadEnd","_onVirtualPaging","_isVirtualPopupEditable","editableState","editedModel","inlineMode","incellMode","virtualColumns","_getByUid","editedField","_canFocusEditable","isElementVisibleInWrapper","widget","widgetInstance","_renderNoRecordsContent","noRecordsElement","_setContentWidth","expander","hiddenDivClass","isNaN","footerWrap","contentWidth","nonLockedCols","nonLockedColsWidth","initialHeight","scrollableHeight","itemsCount","_rowHeight","_sum","_measures","currentRowHeight","_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","_hasFilterMenu","_filterable","filterInit","filterOpen","columnFilterable","kendoFilterMultiCheck","kendoFilterMenu","_filterRow","rowheader","_updateHeader","suggestDataSource","operators","customDataSource","cellOptions","delay","inputWidth","suggestionOperator","minLength","dataTextField","showOperators","kendoFilterCell","_sortable","sorterInstance","kendoColumnSorter","draggableColumns","initialColumns","len","normalizeHeaderCells","_updateColumnIDs","_checkboxClick","_headerCheckboxClick","_foreignKeyBindings","_fetchForeignKeyValues","_hasBoundForeignKey","dataValueField","checkBox","isSelecting","_tmpl","alt","skipGroupCells","classAttribute","paramName","dirtyCellTemplate","expr","_dirtyCellTemplate","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","scrollableNoGridHeightStyles","templateName","rowClass","scope","fieldsMap","_emptyAggregates","headerTemplateIndex","groupCellBuilder","groupCellLockedContentBuilder","templateFunctionStorage","templateFunctionCount","hasFiltering","columnsWithoutFiltering","_toggleDetails","omitAnimation","detailRow","expanding","masterRow","masterRowIndex","ariaLabelText","ariaExpandText","toggleClass","detailCell","toggle","correctIdx","classesRegEx","sectionRowIndex","_createHeaderCells","isGroupedBy","_appendLockedColumnContent","spanIdx","skipHiddenCount","colOffset","detach","lockedCells","_appendLockedColumnHeader","filtercellCells","hasFilterRow","filterCellOffset","leafColumnsCount","removeRowSpanValue","syncHeight","hasTHead","headerContent","_updateHeadersAttr","_prepareColumns","filterRow","existingFilterRow","hasLockedColumns","_retrieveFirstColumn","parentRow","childRow","totalColSpan","_updateHeaderCols","_autoColumns","toJSON","_rowsHtml","templates","_groupData","skipFooter","firstColumn","footerDefaults","_groupAggregatesDefaultObject","groupItems","headerData","footerData","subgroupsCount","_groupRowHtml","groupHeaderBuilder","skipColspan","skipLastGroup","isLockedTable","groupData","firstVisibleColumnGroupHeaderTemplate","groupHeaderTemplate","currentItems","expanded","_groupsState","isNew","excludeHeader","templateColspan","groupHtmlBuilder","_skippedGroups","shift","groupToCollapse","footerCount","showFooter","relatedGroup","groupCountAfterCollapse","groupUid","groupObject","_getGroupByUid","currentGroupCount","_calculateGroupsTotal","_serverGroupsTotal","_currentRangeStart","toHide","_groupToCollapse","footersVisibility","groupsCount","groupCountAfterExpand","groupCount","toggleVisibility","pop","_firstDataItem","grouped","headerCellIndex","_columnVisibilitySetter","_setParentsVisibility","_updateContentWidth","predicate","p","originalColumn","columnLeafIndex","_buildSkeleton","loaderHTML","columnsCount","skeleton","progress","_resize","size","force","_isActiveInTable","contentScrollLeft","cachedItemsToSkip","isCurrentInHeader","_renderContent","_renderLockedContent","_restoreCurrent","contentResized","resetTouchEvents","_muteAngularRebind","_restoreSelection","selectedRows","dataItemKey","cmd","_cleanupDetailItems","_angularGroupItems","_angularGroupFooterItems","endlessAppend","flatViewLength","flatView","groupRowLockedContentBuilder","groupRowBuilder","groupRowBuilderFunc","groupHeaderData","prevElement","newGroupRowElement","firstColumnGroupData","alwaysVisible","rows2","containers","containersLength","heights","offsetHeight1","offsetHeight2","row1","row2","direct","focusElement","isInputElement","isHeader","isInput","activeEl","halfHeight","includeAdditionalData","backslashEscapeQuotes","exportable","ExcelMixin","PDFMixin","_drawPDF_autoPageBreak","allPages","origBody","cont","toggleUnexportableColumns","paddingRight","_initPDFProgress","startingPage","draw","_destructive","pageNumber","pageNum","drawing","drawDOM","always","err","renderPage","restore","visibleInExport","visibleInExportOnly","_toggledDuringExport","_drawPDF","paperSize","doc","Group","exportPage","_drawPDFShadow","avoidLinks","loading","pb","kendoProgressBar","chunkCount","plugin"],"sources":["kendo.grid.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.data', 'kendo.columnsorter', 'kendo.editable', 'kendo.window', 'kendo.filtermenu', 'kendo.filtercell', 'kendo.columnmenu', 'kendo.groupable', 'kendo.pager', 'kendo.selectable', 'kendo.sortable', 'kendo.reorderable', 'kendo.resizable', 'kendo.ooxml', 'kendo.excel', 'kendo.pane', 'kendo.progressbar', 'kendo.pdf', 'kendo.dialog', 'kendo.switch', 'kendo.html.button', 'kendo.textbox', 'kendo.form'], factory) :\n factory();\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: [ \"data\", \"columnsorter\", \"sortable\", \"html.button\" ],\n features: [ {\n id: \"grid-editing\",\n name: \"Editing\",\n description: \"Support for record editing\",\n depends: [ \"editable\", \"window\", \"textbox\", \"form\" ]\n }, {\n id: \"grid-filtering\",\n name: \"Filtering\",\n description: \"Support for record filtering\",\n depends: [ \"filtermenu\" ]\n }, {\n id: \"grid-columnmenu\",\n name: \"Column menu\",\n description: \"Support for header column menu\",\n depends: [ \"columnmenu\" ]\n }, {\n id: \"grid-grouping\",\n name: \"Grouping\",\n description: \"Support for grid grouping\",\n depends: [ \"groupable\" ]\n }, {\n id: \"grid-filtercell\",\n name: \"Row filter\",\n description: \"Support for grid header filtering\",\n depends: [ \"filtercell\" ]\n }, {\n id: \"grid-paging\",\n name: \"Paging\",\n description: \"Support for grid paging\",\n depends: [ \"pager\" ]\n }, {\n id: \"grid-selection\",\n name: \"Selection\",\n description: \"Support for row selection\",\n depends: [ \"selectable\" ]\n }, {\n id: \"grid-column-reorder\",\n name: \"Column reordering\",\n description: \"Support for column reordering\",\n depends: [ \"reorderable\" ]\n }, {\n id: \"grid-column-resize\",\n name: \"Column resizing\",\n description: \"Support for column resizing\",\n depends: [ \"resizable\" ]\n }, {\n id: \"grid-mobile\",\n name: \"Grid adaptive rendering\",\n description: \"Support for adaptive rendering\",\n depends: [ \"dialog\", \"pane\", \"switch\" ]\n }, {\n id: \"grid-excel-export\",\n name: \"Excel export\",\n description: \"Export grid data as Excel spreadsheet\",\n depends: [ \"excel\" ]\n }, {\n id: \"grid-pdf-export\",\n name: \"PDF export\",\n description: \"Export grid data as PDF\",\n depends: [ \"pdf\", \"drawing\", \"progressbar\" ]\n } ]\n };\n\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n DataSource = kendo.data.DataSource,\n ObservableObject = kendo.data.ObservableObject,\n tbodySupportsInnerHtml = kendo.support.tbodyInnerHtml,\n activeElement = kendo._activeElement,\n Widget = ui.Widget,\n outerWidth = kendo._outerWidth,\n outerHeight = kendo._outerHeight,\n keys = kendo.keys,\n\n isPlainObject = $.isPlainObject,\n extend = $.extend,\n map = $.map,\n grep = $.grep,\n isArray = Array.isArray,\n inArray = $.inArray,\n push = Array.prototype.push,\n isFunction = kendo.isFunction,\n isEmptyObject = $.isEmptyObject,\n contains = $.contains,\n math = Math,\n\n DOT = \".\",\n PROGRESS = \"progress\",\n ERROR = \"error\",\n HIERARCHY_CELL_CLASS = \"k-hierarchy-cell\",\n 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\",\n 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)\",\n NAVROW = \"tr:not(.k-footer-template):visible\",\n NAVCELL = \":not(.k-group-cell):not(.k-detail-cell):not(.k-hierarchy-cell):visible\",\n ITEMROW = \"tr:not(.k-grouping-row):not(.k-detail-row):not(.k-footer-template):not(.k-group-footer):visible\",\n COLGROUP = \"col:not(.k-group-col, .k-hierarchy-col)\",\n HEADERCELLS = \"th.k-header:not(.k-group-cell):not(.k-hierarchy-cell)\",\n WRAPPER = \".k-grid.k-widget\",\n NS = \".kendoGrid\",\n CONTENTRLOCKEDCONTAINER = \"k-grid-content-locked\",\n GROUPCELLCLASS = \"k-group-cell\",\n\n EDIT = \"edit\",\n BEFOREEDIT = \"beforeEdit\",\n SAVE = \"save\",\n REMOVE = \"remove\",\n DETAILINIT = \"detailInit\",\n FILTERMENUINIT = \"filterMenuInit\",\n COLUMNMENUINIT = \"columnMenuInit\",\n FILTERMENUOPEN = \"filterMenuOpen\",\n COLUMNMENUOPEN = \"columnMenuOpen\",\n CELLCLOSE = \"cellClose\",\n CHANGE = \"change\",\n COLUMNHIDE = \"columnHide\",\n COLUMNSHOW = \"columnShow\",\n SAVECHANGES = \"saveChanges\",\n DATABOUND = \"dataBound\",\n DETAILEXPAND = \"detailExpand\",\n DETAILCOLLAPSE = \"detailCollapse\",\n ITEM_CHANGE = \"itemchange\",\n PAGE = \"page\",\n PAGING = \"paging\",\n SCROLL = \"scroll\",\n SYNC = \"sync\",\n LOAD_START = \"loadStart\",\n LOAD_END = \"loadEnd\",\n\n FOCUSED = \"k-focus\",\n FOCUSABLE = \":kendoFocusable\",\n SELECTED = \"k-selected\",\n CHECKBOX = \"k-checkbox\",\n CHECKBOXINPUT = \"input[data-role='checkbox'].k-select-checkbox.\" + CHECKBOX,\n NORECORDSCLASS = \"k-grid-norecords\",\n LINK_CLASS = \"k-link\",\n ICON_CLASS = \"k-icon\",\n ORDER_CLASS = \"k-sort-order\",\n SORTED_CLASS = \"k-sorted\",\n HEADER_COLUMN_MENU_CLASS = \"k-header-column-menu\",\n FILTER_MENU_CLASS = \"k-grid-filter\",\n STICKY_CELL_CLASS = \"k-grid-content-sticky\",\n STICKY_HEADER_CLASS = \"k-grid-header-sticky\",\n STICKY_FOOTER_CLASS = \"k-grid-footer-sticky\",\n STICKY_HEADER_NO_BORDER_CLASS = \"k-grid-no-left-border\",\n RESIZE = \"resize\",\n COLUMNRESIZE = \"columnResize\",\n COLUMNREORDER = \"columnReorder\",\n COLUMNLOCK = \"columnLock\",\n COLUMNUNLOCK = \"columnUnlock\",\n COLUMNSTICK = \"columnStick\",\n COLUMNUNSTICK = \"columnUnstick\",\n ROWREORDER = \"rowReorder\",\n NAVIGATE = \"navigate\",\n CLICK = \"click\",\n MOUSEDOWN = \"mousedown\",\n HEIGHT = \"height\",\n TABINDEX = \"tabIndex\",\n FUNCTION = \"function\",\n STRING = \"string\",\n BOTTOM = \"bottom\",\n CONTAINER_FOR = \"container-for\",\n FIELD = \"field\",\n INPUT = \"input\",\n INCELL = \"incell\",\n INLINE = \"inline\",\n UNIQUE_ID = \"uid\",\n MINCOLSPANVALUE = 1,\n COLSPAN = \"colSpan\",\n OVERFLOW = \"overflow\",\n HIDDEN = \"hidden\",\n SORT = \"sort\",\n GROUP_SORT = \"group-sort\",\n DELETECONFIRM = \"Are you sure you want to delete this record?\",\n NORECORDS = \"No records available.\",\n CONFIRMDELETE = \"Delete\",\n CANCELDELETE = \"Cancel\",\n COLLAPSE = \"Collapse\",\n EXPAND = \"Expand\",\n ID = \"id\",\n\n ARIA_LABEL = \"aria-label\",\n ARIA_OWNS = \"aria-owns\",\n ARIA_ROWCOUNT = \"aria-rowcount\",\n ARIA_COLCOUNT = \"aria-colcount\",\n ARIA_CONTROLS = \"aria-controls\",\n ARIA_COLINDEX = \"aria-colindex\",\n ARIA_ROWINDEX = \"aria-rowindex\",\n ARIA_EXPANDED = \"aria-expanded\",\n ARIA_CHECKED = \"aria-checked\",\n ARIA_ACTIVEDESCENDANT = \"aria-activedescendant\",\n ROLE = \"role\",\n NONE = \"none\",\n ROW = \"row\",\n ROWGROUP = \"rowgroup\",\n COLUMNHEADER = \"columnheader\",\n GRIDCELL = \"gridcell\",\n\n formatRegExp = /(\\}|\\#)/ig,\n templateHashRegExp = /#/ig,\n whitespaceRegExp = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n leftRegExp = new RegExp(\"(\\\\s*left\\\\s*:\\\\s*\\\\d*px;?)*\", \"ig\"),\n rightRegExp = new RegExp(\"(\\\\s*right\\\\s*:\\\\s*\\\\d*px;?)*\", \"ig\"),\n nonDataCellsRegExp = new RegExp(\"(^|\" + whitespaceRegExp + \")\" + \"(k-group-cell|k-hierarchy-cell)\" + \"(\" + whitespaceRegExp + \"|$)\"),\n filterRowRegExp = new RegExp(\"(^|\" + whitespaceRegExp + \")\" + \"(k-filter-row)\" + \"(\" + whitespaceRegExp + \"|$)\"),\n COMMANDBUTTONTMPL = '',\n SELECTCOLUMNTMPL = '',\n SELECTCOLUMNHEADERTMPL = '',\n DRAGHANDLECOLUMNTMPL = '',\n SORTHEADERTMPL = '#=text#',\n isRtl = false,\n browser = kendo.support.browser;\n\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 headerCellInner: \"k-cell-inner\"\n };\n var GroupsPager;\n\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: {\n name: \"GroupsPager\"\n },\n\n totalPages: function() {\n var that = this;\n\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\n var VirtualScrollable = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n that._refreshHandler = that.refresh.bind(that);\n that.setDataSource(options.dataSource);\n that.wrap();\n },\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 that.dataSource.options.virtual = true;\n },\n\n options: {\n name: \"VirtualScrollable\",\n itemHeight: $.noop,\n prefetch: true,\n maxScrollHeight: 250000\n },\n\n events: [\n PAGING,\n PAGE,\n SCROLL,\n LOAD_START,\n LOAD_END\n ],\n\n destroy: function() {\n var that = this;\n\n Widget.fn.destroy.call(that);\n\n that.dataSource.unbind(CHANGE, that._refreshHandler);\n that.wrapper.add(that.verticalScrollbar).off(NS);\n\n clearTimeout(that._timeout);\n if (that._scrollingTimeout) {\n clearTimeout(that._scrollingTimeout);\n }\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\n wrap: function() {\n var that = this,\n // workaround for IE issue where scroll is not raised if container is same width as the scrollbar\n scrollbar = kendo.support.scrollbar() + 1,\n element = that.element,\n wrapper;\n\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('
')\n .parent()\n .on(\"DOMMouseScroll\" + NS + \" mousewheel\" + NS, that._wheelScroll.bind(that));\n that._wrapper();\n\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\n that.verticalScrollbar = $('
')\n .css({\n width: scrollbar\n }).appendTo(element)\n .on(\"scroll\" + NS, that._scroll.bind(that));\n },\n\n _wrapper: function() {\n var that = this;\n\n if (isIE11) {\n //scrolling the virtual scrollbar to the bottom and then\n //scrolling the horizontal content scrollbar does not fire the \"scroll\" event\n //seems like a problem in IE 11 only (after version 11.0.9600.18860)\n //https://github.com/telerik/kendo-ui-core/issues/3779\n that.wrapper.css({\n \"overflow-y\": SCROLL\n });\n\n //hide the wrapper behind the virtual scrollbar\n that.element.css((isRtl ? \"padding-left\" : \"padding-right\"), 0);\n }\n },\n\n _wheelScroll: function(e) {\n if (e.ctrlKey) {\n return;\n }\n\n var scrollbar = this.verticalScrollbar,\n scrollTop = scrollbar.scrollTop(),\n delta = kendo.wheelDeltaY(e);\n\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\n _scroll: function(e) {\n var that = this,\n delayLoading = !that.options.prefetch,\n scrollTop = e.currentTarget.scrollTop,\n dataSource = that.dataSource,\n rowHeight = that.itemHeight,\n skip = dataSource.skip() || 0,\n start = that._rangeStart || skip,\n height = that.element.innerHeight(),\n isScrollingUp = !!(that._scrollbarTop && that._scrollbarTop > scrollTop),\n firstItemIndex = math.max(math.floor(scrollTop / rowHeight), 0),\n lastItemOffset = isScrollingUp ? math.ceil(height / rowHeight) : math.floor(height / rowHeight),\n lastItemIndex = math.max(firstItemIndex + lastItemOffset, 0);\n\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\n that._scrolling = delayLoading;\n\n if (!that._fetch(firstItemIndex, lastItemIndex, isScrollingUp)) {\n that.wrapper[0].scrollTop = that._scrollTop;\n }\n\n that.trigger(SCROLL);\n\n if (delayLoading) {\n if (that._scrollingTimeout) {\n clearTimeout(that._scrollingTimeout);\n }\n\n that._scrollingTimeout = setTimeout(function() {\n that._scrolling = false;\n that._page(that._rangeStart, that.dataSource.take());\n }, 100);\n }\n },\n\n scrollToTop: function() {\n this._scrollTo(0);\n },\n\n scrollToBottom: function() {\n var scrollbar = this.verticalScrollbar;\n this._scrollTo(scrollbar[0].scrollHeight - scrollbar.height());\n },\n\n _scrollWrapperToTop: function() {\n this.wrapper.scrollTop(0);\n },\n\n _scrollWrapperToBottom: function() {\n this.wrapper.scrollTop(this.wrapper[0].scrollHeight);\n },\n\n _scrollWrapperOnColumnResize: function() {\n var that = this;\n var wrapper = this.wrapper;\n var initialScrollTop = wrapper.scrollTop();\n\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\n that._wrapperScrolled = false;\n }\n },\n\n _scrollTo: function(scrollTop) {\n var that = this;\n var scrollbar = that.verticalScrollbar;\n\n if (scrollbar.scrollTop() !== scrollTop) {\n that._preventScroll = true;\n }\n\n that.wrapper.scrollTop(scrollTop);\n that._scrollTop = that.wrapper.scrollTop();\n\n scrollbar.scrollTop(scrollTop);\n that._scrollbarTop = scrollbar.scrollTop();\n },\n\n _isScrolledToTop: function() {\n return this.verticalScrollbar.scrollTop() === 0;\n },\n\n _isScrolledToBottom: function() {\n var scrollbar = this.verticalScrollbar;\n var scrollTop = scrollbar.scrollTop();\n\n return (scrollTop > 0 && scrollTop >= parseInt(scrollbar[0].scrollHeight - scrollbar.height(), 10));\n },\n\n _isWrapperScrolledToBottom: function() {\n var wrapper = this.wrapper;\n\n return (wrapper.scrollTop() >= parseInt(wrapper[0].scrollHeight - wrapper.height(), 10));\n },\n\n itemIndex: function(rowIndex) {\n var rangeStart = this._rangeStart || this.dataSource.skip() || 0;\n\n return rangeStart + rowIndex;\n },\n\n position: function(index) {\n var rangeStart = this._rangeStart || this.dataSource.skip() || 0;\n var pageSize = this.dataSource.pageSize();\n var result;\n\n if (index > rangeStart) {\n result = index - rangeStart;\n } else {\n result = rangeStart - index - 1;\n }\n\n return result > pageSize ? pageSize : result;\n },\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\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\n _fetch: function(firstItemIndex, lastItemIndex, scrollingUp) {\n var that = this,\n dataSource = that.dataSource,\n itemHeight = that.itemHeight,\n take = dataSource.take(),\n rangeStart = that._rangeStart || dataSource.skip() || 0,\n currentSkip = math.floor(firstItemIndex / take) * take,\n fetching = false,\n 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\n if (firstItemIndex < rangeStart) {\n\n fetching = true;\n rangeStart = math.max(0, lastItemIndex - take);\n that._scrollTop = scrollbar.scrollTop() - (rangeStart * itemHeight);\n that._page(rangeStart, take);\n\n } else if (lastItemIndex >= rangeStart + take && !scrollingUp) {\n\n fetching = true;\n rangeStart = math.min(firstItemIndex, total - take);\n\n //ensure the scrollbar can be scrolled to bottom with mouse drag\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\n that._page(rangeStart, take);\n\n } else if (!that._fetching && that.options.prefetch) {\n\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 }\n return fetching;\n },\n\n fetching: function() {\n return this._fetching;\n },\n\n _page: function(skip, take, callback) {\n var that = this,\n delayLoading = !that.options.prefetch,\n dataSource = that.dataSource,\n isGroupPaged = dataSource._isGroupPaged();\n callback = isFunction(callback) ? callback : $.noop;\n\n if (that.trigger(PAGING, { skip: skip, take: take })) {\n return;\n }\n\n clearTimeout(that._timeout);\n that._fetching = true;\n that._rangeStart = skip;\n\n if ((isGroupPaged && dataSource._groupRangeExists(skip, skip + take)) || (!isGroupPaged && dataSource.inRange(skip, take))) {\n that.trigger(LOAD_START);\n\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\n that._timeout = setTimeout(function() {\n if (!that._scrolling) {\n\n if (delayLoading) {\n that.trigger(LOAD_START);\n }\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\n repaintScrollbar: function(shouldScrollWrapper) {\n var that = this,\n html = \"\",\n maxHeight = that.options.maxScrollHeight,\n dataSource = that.dataSource,\n scrollbar = !kendo.support.kineticScrollNeeded ? kendo.support.scrollbar() : 0,\n wrapperElement = that.wrapper[0],\n totalHeight,\n idx,\n itemHeight;\n var wasScrolledToBottom = that._isScrolledToBottom();\n\n itemHeight = that.itemHeight = that.options.itemHeight() || 0;\n\n var addScrollBarHeight = (wrapperElement.scrollWidth > wrapperElement.offsetWidth) ? scrollbar : 0;\n\n totalHeight = (dataSource._isGroupPaged() ? dataSource.groupsTotal(true) : dataSource.total()) * itemHeight + addScrollBarHeight;\n\n for (idx = 0; idx < math.floor(totalHeight / maxHeight); idx++) {\n html += '
';\n }\n\n if (totalHeight % maxHeight) {\n html += '
';\n }\n\n that.verticalScrollbar.html(html);\n\n if (wasScrolledToBottom && !that._isScrolledToBottom() && !that.dataSource._isGroupPaged()) {\n that.scrollToBottom();\n }\n\n if (typeof(that._scrollTop) !== \"undefined\" && !!shouldScrollWrapper) {\n wrapperElement.scrollTop = that._scrollTop;\n that._scrollWrapperOnColumnResize();\n }\n },\n\n refresh: function(e) {\n var that = this,\n dataSource = that.dataSource,\n rangeStart = that._rangeStart;\n var action = (e || {}).action;\n var shouldScrollWrapper = that._isScrolledToBottom() || !action || (action !== ITEM_CHANGE && action !== REMOVE && action !== SYNC);\n\n that.trigger(LOAD_END);\n clearTimeout(that._timeout);\n\n that.repaintScrollbar(shouldScrollWrapper);\n\n if (that.drag) {\n that.drag.cancel();\n }\n\n if (typeof(rangeStart) !== \"undefined\" && !that._fetching) { // we are rebound from outside local range should be reset\n if (!action || (action !== SYNC && action !== ITEM_CHANGE && action !== \"expandGroup\")) {\n that._rangeStart = dataSource.skip();\n }\n\n if (dataSource.page() === 1 && (!action || (action !== SYNC && action !== ITEM_CHANGE && action !== \"expandGroup\" && action !== \"collapseGroup\"))) {\n // reset the scrollbar position if datasource is filtered\n that.verticalScrollbar[0].scrollTop = 0;\n }\n }\n\n that._fetching = false;\n }\n });\n\n function attrEquals(attrName, attrValue) {\n return \"[\" + kendo.attr(attrName) + \"=\" + attrValue + \"]\";\n }\n\n function groupCells(count) {\n return new Array(count + 1).join(' ');\n }\n\n function stringifyAttributes(attributes) {\n var attr,\n result = \" \";\n\n if (attributes) {\n if (typeof attributes === STRING) {\n return attributes;\n }\n\n for (attr in attributes) {\n if (attributes[attr] !== '') {\n result += attr + '=\"' + attributes[attr] + '\"';\n }\n }\n }\n return result;\n }\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-grid-update\",\n iconClass: \"k-icon k-i-check\",\n themeColor: \"primary\"\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\n function cursor(context, value) {\n $('th, th .k-grid-filter, th .k-link', context)\n .add(document.body)\n .css('cursor', value);\n }\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\n if (typeof dest == \"number\") {\n source[before ? \"insertBefore\" : \"insertAfter\"](selector.eq(dest));\n } else {\n source.appendTo(dest);\n }\n }\n\n function elements(lockedContent, content, filter) {\n return $(lockedContent).add(content).find(filter);\n }\n\n function attachCustomCommandEvent(context, container, commands) {\n var idx,\n length,\n command,\n commandName;\n\n commands = !isArray(commands) ? [commands] : commands;\n\n for (idx = 0, length = commands.length; idx < length; idx++) {\n command = commands[idx];\n\n if (isPlainObject(command) && command.click) {\n commandName = command.name || command.text;\n container.on(CLICK + NS, \".k-grid-\" + (commandName || \"\").replace(/\\s/g, \"\"), { commandName: commandName }, command.click.bind(context));\n }\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\n var hidden;\n column.parentIds = parentIds;\n\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\n var uid = kendo.guid();\n if (locked && !column.locked) {\n column.locked = locked;\n }\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 column.uid = uid = column.headerAttributes.id;\n }\n\n if (column.columns) {\n column.columns = normalizeColumns(column.columns, encoded, hidden, column.locked, parentIds ? (parentIds + \" \" + uid) : uid);\n }\n return extend({ encoded: encoded, hidden: hidden, locked: locked }, column);\n });\n }\n\n function columnParent(column, columns) {\n var parents = [];\n columnParents(column, columns, parents);\n return parents[parents.length - 1];\n }\n\n function columnParents(column, columns, parents) {\n parents = parents || [];\n\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\n function setColumnVisibility(column, visible) {\n setVisibility(column, visible, visible);\n }\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\n\n function setColumnMediaVisibility(column, visible) {\n setColumnMatchesMedia(column);\n var hideByMedia = column._hideByMedia;\n setVisibility(column, visible, hideByMedia ? column.matchesMedia : visible);\n }\n\n function setColumnMatchesMedia(column) {\n column.matchesMedia = columnMatchesMedia(column);\n }\n\n function columnMatchesMedia(column) {\n return column && (isUndefined(column.media) || (!isUndefined(column.media) && kendo.matchesMedia(column.media)));\n }\n\n function isCellVisible() {\n return this.style.display !== NONE;\n }\n\n function isElementVisible(element) {\n return $(element)[0].style.display !== NONE;\n }\n\n function isVisible(column) {\n return visibleColumns([column]).length > 0;\n }\n\n function visibleColumns(columns) {\n return grep(columns, function(column) {\n var result = !column.hidden && column.matchesMedia !== false;\n\n if (result && column.columns) {\n result = visibleColumns(column.columns).length > 0;\n }\n return result;\n });\n }\n\n function columnsWithMedia(columns) {\n var result = [];\n var column;\n\n for (var i = 0; i < columns.length; i++) {\n column = columns[i];\n\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\n result.push(column);\n }\n\n if (column.columns) {\n result = result.concat(columnsWithMedia(column.columns));\n }\n }\n\n return result;\n }\n\n function isUndefined(value) {\n return typeof value === \"undefined\";\n }\n\n function toJQuery(elements) {\n return $(elements).map(function() { return this.toArray(); });\n }\n\n function updateCellRowSpan(cell, columns, sourceLockedColumnsCount) {\n var lockedColumnDepth = depth(lockedColumns(columns));\n var nonLockedColumnDepth = depth(nonLockedColumns(columns));\n\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\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\n function moveCellsBetweenContainers(sources, target, leafs, columns, container, destination, groups, action) {\n var sourcesDepth = depth(sources);\n var targetDepth = depth([target]);\n\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\n addRowSpanValue(destination, sourcesDepth - targetDepth);\n\n moveCells(leafs, columns, container, destination, action);\n }\n\n function updateCellIndex(thead, columns, offset) {\n offset = offset || 0;\n\n var position;\n var cell;\n var allColumns = columns;\n columns = leafColumns(columns);\n\n var cells = {};\n var rows = thead.find(\">tr:not(.k-filter-row)\");\n\n var filter = function() {\n var el = $(this);\n return !el.hasClass(\"k-group-cell\") && !el.hasClass(\"k-hierarchy-cell\");\n };\n\n for (var idx = 0, length = columns.length; idx < length; idx++) {\n position = columnPosition(columns[idx], allColumns);\n\n if (!cells[position.row]) {\n cells[position.row] = rows.eq(position.row)\n .find(\".k-header\")\n .filter(filter);\n }\n\n cell = cells[position.row].eq(position.cell);\n cell.attr(kendo.attr(\"index\"), offset + idx);\n }\n\n\n return columns.length;\n }\n\n function depth(columns) {\n var result = 1;\n var max = 0;\n\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\n function moveCells(leafs, columns, container, destination, action) {\n var sourcePosition = columnVisiblePosition(leafs[0], columns);\n\n var ths = container.find(\">tr:not(.k-filter-row)\").eq(sourcePosition.row).children(\"th.k-header\");\n\n var t = $();\n var sourceIndex = sourcePosition.cell;\n var idx;\n\n for (idx = 0; idx < leafs.length; idx++) {\n t = t.add(ths.eq(sourceIndex + idx));\n }\n\n destination.find(\">tr:not(.k-filter-row)\").eq(sourcePosition.row)[action](t);\n\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\n if (children.length) {\n moveCells(children, columns, container, destination, action);\n }\n }\n\n function columnPosition(column, columns, row, cellCounts) {\n var result;\n var idx;\n\n row = row || 0;\n cellCounts = cellCounts || {};\n cellCounts[row] = cellCounts[row] || 0;\n\n for (idx = 0; idx < columns.length; idx++) {\n if (columns[idx] == column) {\n result = { cell: cellCounts[row], row: row };\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\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\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\n return target;\n }\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\n if (parent) {\n parentColumns = parent.columns;\n } else {\n parentColumns = columns;\n }\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\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\n if (target && target != source && target.columns) {\n return findReorderTarget(columns, target, source, before, masterColumns);\n }\n }\n return null;\n }\n\n function columnVisiblePosition(column, columns, row, cellCounts) {\n var result;\n var idx;\n\n row = row || 0;\n cellCounts = cellCounts || {};\n cellCounts[row] = cellCounts[row] || 0;\n\n for (idx = 0; idx < columns.length; idx++) {\n if (columns[idx] == column) {\n result = { cell: cellCounts[row], row: row };\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\n if (!columns[idx].hidden) {\n cellCounts[row]++;\n }\n }\n return result;\n }\n\n function flatColumnsInDomOrder(columns) {\n var result = flatColumns(lockedColumns(columns));\n return result.concat(flatColumns(nonLockedColumns(columns)));\n }\n\n function targetParentContainerIndex(flatColumns, columns, sourceIndex, targetIndex) {\n var column = flatColumns[sourceIndex];\n var target = flatColumns[targetIndex];\n\n var parent = columnParent(column, columns);\n columns = parent ? parent.columns : columns;\n\n return inArray(target, columns);\n }\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 }\n if (children.length) {\n result = result.concat(flatColumns(children));\n }\n return result;\n }\n\n function hiddenLeafColumnsCount(columns) {\n var counter = 0;\n var column;\n\n for (var idx = 0; idx < columns.length; idx++) {\n column = columns[idx];\n\n if (column.columns) {\n counter += hiddenLeafColumnsCount(column.columns);\n } else if (column.hidden) {\n counter++;\n }\n }\n return counter;\n }\n\n function sumWidths(cols) {\n var width = 0;\n\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\n return width;\n }\n\n function columnsWidth(cols) {\n var colWidth, width = 0;\n\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\n return width;\n }\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\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\n function addRowSpanValue(container, count) {\n var cells = container.find(\"tr:not(.k-filter-row) th:not(.k-group-cell,.k-hierarchy-cell)\");\n\n for (var idx = 0; idx < cells.length; idx++) {\n cells[idx].rowSpan += count;\n }\n }\n\n function removeEmptyRows(container) {\n var rows = container.find(\"tr:not(.k-filter-row)\");\n\n var emptyRowsCount = rows.filter(function() {\n return !$(this).children().length;\n }).remove().length;\n\n var cells = rows.find(\"th:not(.k-group-cell,.k-hierarchy-cell)\");\n\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\n function mapColumnToCellRows(columns, cells, rows, rowIndex, offset) {\n var idx, row, length, children = [];\n\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\n if (columns[idx].columns) {\n children = children.concat(columns[idx].columns);\n }\n }\n\n if (children.length) {\n mapColumnToCellRows(children, cells, rows, rowIndex + 1, offset + columns.length);\n }\n }\n\n function setLeftAndRightStyles(element, left, right) {\n element.css({\n \"left\": left,\n \"right\": right\n });\n }\n\n function createColumnAttribute(column, attribute, property) {\n column[attribute] = column[attribute] || {};\n column[attribute][property] = column[attribute][property] || \"\";\n }\n\n function addColumnAttribute(column, attribute, property, value) {\n createColumnAttribute(column, attribute, property);\n\n if (column[attribute][property] !== \"\") {\n column[attribute][property] += \" \" + value;\n } else {\n column[attribute][property] = value;\n }\n }\n\n function removeColumnAttribute(column, attribute, property, value) {\n createColumnAttribute(column, attribute, property);\n\n column[attribute][property] = column[attribute][property].replace(value, \"\");\n }\n\n function lockedColumns(columns) {\n return grep(columns, function(column) {\n return column.locked;\n });\n }\n\n function nonLockedColumns(columns) {\n return grep(columns, function(column) {\n return !column.locked;\n });\n }\n\n function stickyColumns(columns) {\n return grep(columns, function(column) {\n return column.sticky && !column.locked;\n });\n }\n\n function visibleStickyColumns(columns) {\n return grep(columns, function(column) {\n return column.sticky && !column.locked && isVisible(column);\n });\n }\n\n function visibleNonLockedColumns(columns) {\n return grep(columns, function(column) {\n return !column.locked && isVisible(column);\n });\n }\n\n function visibleLockedColumns(columns) {\n return grep(columns, function(column) {\n return column.locked && isVisible(column);\n });\n }\n\n function visibleLeafColumns(columns) {\n var result = [];\n\n for (var idx = 0; idx < columns.length; idx++) {\n if (columns[idx].hidden) {\n continue;\n }\n\n if (columns[idx].columns) {\n result = result.concat(visibleLeafColumns(columns[idx].columns));\n } else {\n result.push(columns[idx]);\n }\n }\n\n return result;\n }\n\n function visibleLeafExportColumns(columns) {\n var result = [];\n\n for (var idx = 0; idx < columns.length; idx++) {\n if (columns[idx].hidden) {\n continue;\n }\n\n if (columns[idx].columns) {\n result = result.concat(visibleLeafColumns(columns[idx].columns));\n } else {\n result.push({\n field: columns[idx].field,\n width: columns[idx].width,\n values: columns[idx].values\n });\n }\n }\n\n return result;\n }\n\n function childColumns(columns) {\n var result = [];\n\n for (var idx = 0; idx < columns.length; idx++) {\n if (columns[idx].columns) {\n result = result.concat(columns[idx].columns);\n }\n }\n\n return result;\n }\n\n function visibleChildColumns(columns) {\n var result = childColumns(columns);\n\n result = result.filter(function(e) {\n return !e.hidden;\n });\n\n return result;\n }\n\n function leafColumns(columns) {\n var result = [];\n\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\n return result;\n }\n\n function getColumnsFields(columns) {\n var result = [];\n columns = leafColumns(columns);\n\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\n function editField(column) {\n return {\n field: column.field,\n title: column.title,\n format: column.format,\n editor: column.editor,\n values: column.values,\n editorOptions: extend(true, { format: column.format }, column.editorOptions),\n label: column.title || column.field || \"\"\n };\n }\n\n function leafDataCells(container) {\n var rows = container.find(\">tr:not(.k-filter-row)\");\n\n var filter = function() {\n var el = $(this);\n return !el.hasClass(\"k-group-cell\") && !el.hasClass(\"k-hierarchy-cell\");\n };\n\n var cells = $();\n if (rows.length > 1) {\n cells = rows.find(\"th\")\n .filter(filter)\n .filter(function() { return this.rowSpan > 1; });\n }\n\n cells = cells.add(rows.last().find(\"th\").filter(filter));\n\n var indexAttr = kendo.attr(\"index\");\n cells.sort(function(a, b) {\n a = $(a);\n b = $(b);\n\n var indexA = a.attr(indexAttr);\n var indexB = b.attr(indexAttr);\n\n if (indexA === undefined$1) {\n indexA = $(a).index();\n }\n if (indexB === undefined$1) {\n indexB = $(b).index();\n }\n\n indexA = parseInt(indexA, 10);\n indexB = parseInt(indexB, 10);\n return indexA > indexB ? 1 : (indexA < indexB ? -1 : 0);\n });\n\n return cells;\n }\n\n function parentColumnsCells(cell) {\n var container = cell.closest(\"table\");\n var result = $().add(cell);\n\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\n var offset = 0;\n var index = row.find(\"th:not(.k-group-cell,.k-hierarchy-cell)\").index(cell);\n\n var prevCells = cell.prevAll(\":not(.k-group-cell,.k-hierarchy-cell)\").filter(function() {\n return this.colSpan > 1;\n });\n\n for (var idx = 0; idx < prevCells.length; idx++) {\n offset += prevCells[idx].colSpan || 1;\n }\n\n index += Math.max(offset - 1, 0);\n\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\n function childColumnsCells(cell) {\n var container = cell.closest(\"thead\");\n var result = $().add(cell);\n\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\n if (level <= headerRows.length - 1) {\n var child = row.next();\n var prevCells = cell.prevAll(\":not(.k-group-cell,.k-hierarchy-cell)\");\n\n var idx;\n\n prevCells = prevCells.filter(function() {\n return !this.rowSpan || this.rowSpan === 1;\n });\n\n var offset = 0;\n\n for (idx = 0; idx < prevCells.length; idx++) {\n offset += parseInt(prevCells.eq(idx).attr(colSpanAttr), 10) || 1;\n }\n\n var cells = child.find(\"th:not(.k-group-cell,.k-hierarchy-cell)\");\n var colSpan = parseInt(cell.attr(colSpanAttr), 10) || 1;\n\n idx = 0;\n\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\n return result;\n }\n\n function appendContent(tbody, table, html, empty) {\n var placeholder,\n tmp = tbody;\n\n // necessary for AngularJS to cleanup its guts.\n if (empty) {\n tbody.empty();\n }\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\n function addHiddenStyle(attr) {\n attr = attr || {};\n var style = attr.style;\n\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\n return extend({}, attr, { style: style });\n }\n\n function hasHiddenStyle(attr) {\n attr = attr || {};\n var style = attr.style || \"\";\n\n return style.indexOf(\"display:none\") !== -1;\n }\n\n function removeHiddenStyle(attr) {\n attr = attr || {};\n var style = attr.style;\n\n if (style) {\n attr.style = style.replace(/(display\\s*:\\s*none\\s*;?)*/ig, \"\");\n }\n\n return attr;\n }\n\n function normalizeCols(table, visibleColumns, hasDetails, groups) {\n var colgroup = table.find(\">colgroup\"),\n width,\n 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\n return \"\";\n });\n\n if (hasDetails || colgroup.find(\".k-hierarchy-col\").length) {\n cols.splice(0, 0, '');\n }\n\n if (colgroup.length) {\n colgroup.remove();\n }\n\n colgroup = $(new Array(groups + 1).join('') + cols.join(\"\"));\n if (!colgroup.is(\"colgroup\")) {\n colgroup = $(\"\").append(colgroup);\n }\n\n table.prepend(colgroup);\n }\n\n function normalizeHeaderCells(container, columns) {\n var lastIndex = 0;\n var idx , len;\n var th = container.find(\"th:not(.k-group-cell)\");\n\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\n function convertToObject(array) {\n var result = {},\n item,\n idx,\n length;\n\n for (idx = 0, length = array.length; idx < length; idx++) {\n item = array[idx];\n result[item.value] = item.text;\n }\n\n return result;\n }\n\n function formatGroupValue(value, format, columnValues, encoded) {\n var isForeignKey = columnValues && columnValues.length && isPlainObject(columnValues[0]) && \"value\" in columnValues[0],\n groupValue = isForeignKey ? convertToObject(columnValues)[value] : value;\n\n groupValue = groupValue != null ? groupValue : \"\";\n\n return format ? kendo.format(format, groupValue) : (encoded === false ? groupValue : kendo.htmlEncode(groupValue));\n }\n\n function setCellVisibility(cells, index, visible) {\n var pad = 0,\n state,\n cell = cells[pad];\n\n while (cell) {\n state = visible ? true : cell.style.display !== NONE;\n\n if (state && !nonDataCellsRegExp.test(cell.className) && --index < 0) {\n cell.style.display = visible ? \"\" : NONE;\n break;\n }\n\n cell = cells[++pad];\n }\n }\n\n function hideColumnCells(rows, columnIndex) {\n var idx = 0,\n length = rows.length,\n cell, row;\n\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\n setCellVisibility(row[0].cells, columnIndex, false);\n }\n }\n }\n\n function groupRows(data) {\n var result = [];\n var item;\n\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\n result.push(item);\n\n if (item.hasSubgroups) {\n result = result.concat(groupRows(item.items));\n }\n }\n\n return result;\n }\n\n function groupFooters(data) {\n var result = [];\n var item;\n\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\n if (item.hasSubgroups) {\n result = result.concat(groupFooters(item.items));\n }\n\n result.push(item.aggregates);\n }\n\n return result;\n }\n\n function showColumnCells(rows, columnIndex) {\n var idx = 0,\n length = rows.length,\n cell, row, columns;\n\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\n setCellVisibility(row[0].cells, columnIndex, true);\n }\n }\n }\n\n function updateColspan(toAdd, toRemove, num) {\n num = num || 1;\n\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\n item = toRemove.eq(idx).children().last();\n item.attr(\"colspan\", parseInt(item.attr(\"colspan\"), 10) - num);\n }\n }\n\n function tableWidth(table) {\n var idx, length, width = 0;\n var cols = table.find(\">colgroup>col\");\n\n for (idx = 0, length = cols.length; idx < length; idx += 1) {\n width += parseInt(cols[idx].style.width, 10);\n }\n\n return width;\n }\n\n var Grid = kendo.ui.DataBoundWidget.extend({\n init: function(element, options, events) {\n var that = this;\n\n options = isArray(options) ? { dataSource: options } : options;\n\n Widget.fn.init.call(that, element, options);\n\n if (events) {\n that._events = events;\n }\n\n isRtl = kendo.support.isRtl(element);\n\n that._element();\n\n that._ariaId();\n\n that._columns($.extend(true, [], that.options.columns));\n\n if (that._foreignKeyPromises) {\n $.when.apply(null, that._foreignKeyPromises)\n .then(function() {\n that._foreignKeyPromises = null;\n that._continueInit();\n });\n } else {\n that._continueInit();\n }\n },\n\n _continueInit: function() {\n var that = this;\n\n that._dataSource();\n\n that._stickyColumns();\n\n that._tbody();\n\n that._thead();\n\n that._groupable();\n\n that._toolbar();\n\n that._pageable();\n\n that._setContentHeight();\n\n that._templates();\n\n that._navigatable();\n\n that._selectable();\n\n that._clipboard();\n\n that._details();\n\n that._editable();\n\n that._attachCustomCommandsEvent();\n\n that._adaptiveColumns();\n\n that._minScreenSupport();\n\n if (that.options.autoBind) {\n that.dataSource.fetch();\n } else {\n that._group = that._groups() > 0;\n that._footer();\n }\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\n kendo.notify(that);\n },\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 ROWREORDER,\n NAVIGATE,\n \"page\",\n \"sort\",\n \"filter\",\n \"group\",\n \"groupExpand\",\n \"groupCollapse\",\n \"kendoKeydown\"\n ],\n\n setDataSource: function(dataSource) {\n var that = this;\n var scrollable = that.options.scrollable;\n var scrollableContent;\n\n that.options.dataSource = dataSource;\n\n that._dataSource();\n\n that._pageable();\n\n that._thead();\n\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\n if (that.options.groupable) {\n that._groupable();\n }\n\n if (that.virtualScrollable) {\n that.virtualScrollable.setDataSource(that.options.dataSource);\n }\n\n if (that.options.navigatable) {\n that._navigatable();\n }\n\n if (that.options.selectable) {\n that._selectable();\n }\n\n if (that.options.autoBind) {\n that.dataSource.fetch();\n } else {\n that._footer();\n }\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 itemsSelected: \"items selected\",\n dragHandleLabel: \"Drag row\",\n toolbarLabel: \"grid toolbar\",\n groupingHeaderLabel: \"grid grouping header\",\n filterCellTitle: \"filter cell\"\n },\n width: null\n },\n\n destroy: function() {\n var that = this,\n element,\n reorderableInstance;\n\n that._angularItems(\"cleanup\");\n that._destroyColumnAttachments();\n\n Widget.fn.destroy.call(that);\n\n if (this._navigatableTables) {\n this._navigatableTables.off(NS);\n this._navigatableTables = null;\n this._headertables = null;\n }\n\n if (that._resizeHandler) {\n $(window).off(\"resize\" + NS, that._resizeHandler);\n }\n\n if (that.pager && that.pager.element) {\n that.pager.destroy();\n }\n\n if (that.timer) {\n clearTimeout(that.timer);\n }\n\n if (that._progressTimeOut) {\n clearTimeout(that._progressTimeOut);\n }\n\n if (that._collapseGroupsTimeOut) {\n clearTimeout(that._collapseGroupsTimeOut);\n }\n\n if (that._endlessFetchTimeOut) {\n clearTimeout(that._endlessFetchTimeOut);\n }\n\n that.pager = null;\n\n that._destroyGroupable();\n\n reorderableInstance = that.wrapper.data(\"kendoReorderable\");\n if (reorderableInstance) {\n reorderableInstance.destroy();\n }\n\n reorderableInstance = that.tbody ? that.tbody.data(\"kendoReorderable\") : null;\n if (reorderableInstance) {\n reorderableInstance.destroy();\n }\n\n if (that.selectable && that.selectable.element) {\n that.selectable.destroy();\n\n that.clearArea();\n that._selectedIds = null;\n\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\n that.selectable = null;\n\n if (that.resizable) {\n that.resizable.destroy();\n\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\n that._destroyVirtualScrollable();\n\n if (that.editableUserEvents) {\n that.editableUserEvents.destroy();\n that.editableUserEvents = null;\n }\n\n if (that._lockedContentUserEvents) {\n that._lockedContentUserEvents.destroy();\n that._lockedContentUserEvents = null;\n }\n\n that._destroyEditable();\n\n if (that.dataSource) {\n that.dataSource.unbind(CHANGE, that._refreshHandler)\n .unbind(PROGRESS, that._progressHandler)\n .unbind(ERROR, that._errorHandler)\n .unbind(SORT, that._clearSortClasses);\n\n that._refreshHandler = that._progressHandler = that._errorHandler = that._sortHandler = null;\n }\n\n element = that.element\n .add(that.wrapper)\n .add(that.table)\n .add(that.thead)\n .add(that.wrapper.find(\">.k-grid-toolbar\"));\n\n if (that.content) {\n element = element\n .add(that.content)\n .add(that.content.find(\">.k-virtual-scrollable-wrap\"));\n }\n\n if (that.lockedHeader) {\n that._removeLockedContainers();\n }\n\n if (that.pane) {\n that.pane.destroy();\n }\n\n if (that._isMobile) {\n that.wrapper.off(\"transitionend\" + NS);\n that.wrapper.off(\"contextmenu\" + NS);\n }\n\n if (that.minScreenResizeHandler) {\n $(window).off(\"resize\", that.minScreenResizeHandler);\n }\n\n that._detachColumnMediaResizeHandler();\n\n if (that._draggableInstance && that._draggableInstance.element) {\n that._draggableInstance.destroy();\n }\n\n that._draggableInstance = null;\n\n if (that._draggableRowsInstance && that._draggableRowsInstance.element) {\n that._draggableRowsInstance.destroy();\n }\n\n that._draggableRowsInstance = null;\n\n element.off(NS);\n\n kendo.destroy(that.wrapper);\n\n that.rowTemplate =\n that.altRowTemplate =\n that.lockedRowTemplate =\n that.lockedAltRowTemplate =\n that.detailTemplate =\n that.footerTemplate =\n that.groupFooterTemplate =\n that.lockedGroupFooterTemplate =\n that.noRecordsTemplate = null;\n\n that.scrollables =\n that.thead =\n that.tbody =\n that.element =\n that.table =\n that.content =\n that.footer =\n that.wrapper =\n that.lockedTable =\n that.lockedContent =\n that.lockedHeader =\n that.lockedFooter =\n that._groupableClickHandler =\n that._groupRows =\n that._setContentWidthHandler = null;\n },\n\n getOptions: function() {\n var options = this.options;\n options.dataSource = null;\n\n var result = extend(true, {}, this.options);\n result.columns = kendo.deepExtend([], this.columns);\n\n var dataSource = this.dataSource;\n\n var initialData = dataSource.options.data && dataSource._data;\n dataSource.options.data = null;\n\n result.dataSource = $.extend(true, {}, dataSource.options);\n\n dataSource.options.data = initialData;\n\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\n if (result.dataSource.transport) {\n result.dataSource.transport.dataSource = null;\n }\n\n if (result.pageable && result.pageable.pageSize) {\n result.pageable.pageSize = dataSource.pageSize();\n }\n\n result.$angular = undefined$1;\n\n return result;\n },\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\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\n this.init(element, currentOptions, events);\n this._setEvents(currentOptions);\n },\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\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\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\n return dataItems;\n },\n\n _destroyColumnAttachments: function() {\n var that = this;\n\n that.resizeHandle = null;\n\n if (!that.thead) {\n return;\n }\n\n this.angular(\"cleanup\", function() {\n return { elements: that.thead.get() };\n });\n\n that.thead.add(that.lockedHeader).find(\"th\").each(function() {\n var th = $(this),\n filterMenu = th.data(\"kendoFilterMenu\"),\n sortable = th.data(\"kendoColumnSorter\"),\n columnMenu = th.data(\"kendoColumnMenu\");\n\n if (filterMenu) {\n filterMenu.destroy();\n }\n\n if (sortable) {\n sortable.destroy();\n }\n\n if (columnMenu) {\n columnMenu.destroy();\n }\n });\n },\n\n _attachCustomCommandsEvent: function() {\n var that = this,\n columns = leafColumns(that.columns || []),\n command,\n idx,\n length;\n\n for (idx = 0, length = columns.length; idx < length; idx++) {\n command = columns[idx].command;\n\n if (command) {\n attachCustomCommandEvent(that, that.wrapper, command);\n }\n }\n },\n\n _aria: function() {\n var wrapper = this.wrapper,\n gridRole = this._hasDetails() ? \"treegrid\" : this.options.navigatable ? \"grid\" : null,\n table = this.table,\n toolbar = wrapper.find(\".k-grid-toolbar\"),\n groupingHeader = wrapper.find(\".k-grouping-header\"),\n gridId = table.attr(ID),\n tableTabindex = table.attr(TABINDEX),\n tbodyId, headerGroupId, footerGroupId, tableOwned,\n numberOfFixedRows = this.thead.find(\"tr\").length + this.wrapper.find(\".k-grid-footer-wrap table tr\").length,\n trailingColumns = this._trailingColumns(),\n virtual = this.virtualScroll,\n pageable = this.options.pageable,\n rowsCount;\n\n table.attr(TABINDEX, tableTabindex >= 0 ? tableTabindex : 0);\n\n if (gridRole) {\n table.attr(ROLE, gridRole);\n }\n\n table.find(\"tbody, thead, tfoot\").attr(ROLE, ROWGROUP);\n table.find(\"tr\").attr(ROLE, ROW);\n table.find(\"th\").attr(ROLE, COLUMNHEADER);\n table.find(\"td\").attr(ROLE, GRIDCELL);\n\n if ((pageable && this.dataSource.totalPages() > 1) || (virtual && virtual.rows)) {\n if (this._groups() > 0) {\n rowsCount = -1;\n } else if (this._hasDetails()) {\n rowsCount = numberOfFixedRows + (this.dataSource.total() * 2);\n } else {\n rowsCount = numberOfFixedRows + this.dataSource.total();\n }\n\n table.attr(ARIA_ROWCOUNT, rowsCount);\n } else if (this._hasDetails()) {\n if (this._groups() > 0) {\n rowsCount = -1;\n } else {\n rowsCount = numberOfFixedRows + (this.dataSource.total() * 2);\n }\n\n table.attr(ARIA_ROWCOUNT, rowsCount);\n }\n\n if (rowsCount && rowsCount > 0) {\n this._ariaRowIndex();\n }\n\n if ((virtual && virtual.columns) ||\n (!table.attr(ARIA_COLCOUNT) &&\n (table.find(\"td:hidden\").length > 0 ||\n wrapper.find(\".k-grid-content-locked td:hidden\").length > 0))) {\n table.attr(ARIA_COLCOUNT, trailingColumns + leafColumns(this.columns).length);\n this._ariaColumnIndex();\n }\n\n if (!gridId) {\n gridId = kendo.guid();\n table.attr(ID, gridId);\n }\n\n if (this.pager) {\n this.pager.element.attr(ARIA_CONTROLS, gridId);\n }\n\n toolbar.attr({\n role: \"toolbar\",\n \"aria-label\": this.options.messages.toolbarLabel,\n \"aria-controls\": gridId\n });\n\n groupingHeader.attr({\n role: \"toolbar\",\n \"aria-label\": this.options.messages.groupingHeaderLabel,\n \"aria-controls\": gridId\n });\n\n headerGroupId = this._ariaHeaderFooter(\"header\", \"thead\", \"th, td\", COLUMNHEADER);\n footerGroupId = this._ariaHeaderFooter(\"footer\", \"tfoot\", \"td\", GRIDCELL);\n\n if (wrapper.find(\".k-grid-content-locked\").length > 0) {\n this._ariaLockedContent();\n }\n\n if (!!headerGroupId || !!footerGroupId) {\n tbodyId = this.tbody.attr(ID) || kendo.guid();\n tableOwned = [headerGroupId, tbodyId, footerGroupId].join(\" \");\n\n this.tbody.attr(ID, tbodyId);\n table.attr(ARIA_OWNS, tableOwned);\n }\n\n if (this.options.groupable) {\n this._ariaGroupTitles();\n }\n },\n\n _ariaColumnIndex: function() {\n var trailingColumns = this._trailingColumns(),\n dataVirtual = this.tbody.find(\">tr\").last().find(\"> td[data-virtual]\"),\n headerRows = this.thead.find(\">tr\").not(\".k-filter-row\"),\n lockedHeaderRows = this.wrapper.find(\".k-grid-header-locked thead > tr\").not(\".k-filter-row\"),\n firstIndex = Number.MAX_VALUE,\n lastIndex = 0,\n lockedLastIndex = 0,\n previousVirtual = 0,\n nextVirtual = 0,\n previousIndex, i, cells, dataIndex, cellsIndex,\n eachHeaderCell = function(j, cell) {\n var current = cell.getAttribute(\"data-index\"),\n currentIndex = Number(current),\n lockedParent = $(cell).closest(\".k-grid-header-locked\");\n\n if (lockedParent.length === 0 && currentIndex < firstIndex) {\n firstIndex = currentIndex;\n }\n\n if (lockedParent.length > 0 && lockedLastIndex < currentIndex) {\n lockedLastIndex = currentIndex;\n }\n\n if (lockedParent.length === 0 && lastIndex < currentIndex) {\n lastIndex = currentIndex;\n }\n\n if (current !== null) {\n cell.setAttribute(ARIA_COLINDEX, Number(currentIndex) + 1);\n previousIndex = Number(currentIndex) + 1 + cell.getAttribute(\"colspan\");\n } else {\n cell.setAttribute(ARIA_COLINDEX, previousIndex + 1);\n previousIndex = previousIndex + cell.getAttribute(\"colspan\");\n }\n };\n\n if (dataVirtual.length === 2) {\n previousVirtual = Number(dataVirtual[0].getAttribute(\"colspan\"));\n nextVirtual = Number(dataVirtual[1].getAttribute(\"colspan\"));\n } else if (dataVirtual.length === 1 && dataVirtual.prev().length === 0) {\n previousVirtual = Number(dataVirtual[0].getAttribute(\"colspan\"));\n } else if (dataVirtual.length === 1 && dataVirtual.prev().length === 1) {\n nextVirtual = Number(dataVirtual[0].getAttribute(\"colspan\"));\n }\n\n for (i = 0; i < lockedHeaderRows.length; i++) {\n previousIndex = 0;\n lockedHeaderRows.eq(i).find(\"th\").each(eachHeaderCell);\n }\n\n for (i = 0; i < headerRows.length; i++) {\n previousIndex = 0;\n headerRows.eq(i).find(\"th\").each(eachHeaderCell);\n }\n\n for (i = 0; i <= lockedLastIndex; i++) {\n dataIndex = i + trailingColumns;\n cells = this.wrapper.find(\".k-grid-content-locked tbody > tr > td:nth-child(\" + (i + 1) + \")\");\n cells.attr(ARIA_COLINDEX, dataIndex + 1);\n }\n\n for (i = previousVirtual; i <= lastIndex - firstIndex - nextVirtual; i++) {\n if (previousVirtual === 0 ) {\n cellsIndex = i + 1;\n } else {\n cellsIndex = i - previousVirtual + 2;\n }\n\n dataIndex = firstIndex + i + trailingColumns;\n\n cells = this.tbody.find(\"> tr > td:nth-child(\" + cellsIndex + \")\");\n cells.attr(ARIA_COLINDEX, dataIndex + 1);\n }\n },\n\n _ariaGroupTitles: function() {\n var that = this,\n groups = that.dataSource.group(),\n ths = that.wrapper.find(\".k-grid-header th\");\n\n ths.each(function(i, el) {\n if (el.getAttribute(\"title\") === that.options.messages.ungroupHeader) {\n el.setAttribute(\"title\", that.options.messages.groupHeader);\n }\n });\n\n if (groups && groups.length > 0) {\n groups.forEach(function(group) {\n var field = group.field,\n el = ths.filter(\"[\" + kendo.attr(\"field\") + \"='\" + field + \"']\");\n\n if (el.attr(\"title\") === that.options.messages.groupHeader) {\n el.attr(\"title\", that.options.messages.ungroupHeader);\n }\n });\n }\n },\n\n _ariaHeaderFooter: function(type, group, el, role) {\n var that = this,\n wrapper = that.wrapper,\n table = wrapper.find(\".k-grid-\" + type + \" .k-grid-\" + type + \"-wrap table\"),\n lockedTable = wrapper.find(\".k-grid-\" + type + \" .k-grid-\" + type + \"-locked table\"),\n groupId = \"\",\n rowGroup;\n\n if (table.length > 0) {\n rowGroup = table.find(group + \", tbody\");\n groupId = rowGroup.attr(ID) || kendo.guid();\n\n table.attr(ROLE, NONE);\n table.find(\"tr\").attr(ROLE, ROW);\n table.find(el).attr(ROLE, role);\n rowGroup.attr({\n role: ROWGROUP,\n id: groupId\n });\n }\n\n if (lockedTable.length > 0) {\n that._ariaLocked(type, group, el, role);\n }\n\n lockedTable.find(\"td\").attr(ROLE, GRIDCELL);\n table.find(\"td\").attr(ROLE, GRIDCELL);\n\n return groupId;\n },\n\n _ariaId: function() {\n var id = this.element.attr(ID) || \"aria\";\n\n if (id) {\n this._cellId = id + \"_active_cell\";\n }\n },\n\n _ariaLocked: function(type, group, el, role) {\n var that = this,\n wrapper = that.wrapper,\n table = wrapper.find(\".k-grid-\" + type + \" .k-grid-\" + type + \"-wrap table\"),\n lockedTable = wrapper.find(\".k-grid-\" + type + \" .k-grid-\" + type + \"-locked table\"),\n rows = table.find(\"tr\"),\n lockedRows = lockedTable.find(\"tr\");\n\n lockedTable.attr(ROLE, NONE);\n lockedTable.find(group + \", tbody\").attr(ROLE, NONE);\n lockedRows.attr(ROLE, NONE);\n\n lockedTable.find(el).attr(ROLE, role);\n\n rows.each(function(i, row) {\n var ownedCells = [];\n\n ownedCells = that._cellsIds(lockedRows.eq(i).find(el), \"locked_\" + type, i);\n ownedCells = ownedCells.concat(that._cellsIds($(row).find(el), type, i));\n\n row.setAttribute(ARIA_OWNS, ownedCells.join(\" \"));\n });\n },\n\n _ariaLockedContent: function() {\n var that = this,\n table = that.table,\n tableRows = table.find(\"tr\"),\n lockedTable = that.wrapper.find(\".k-grid-content-locked table\"),\n lockedRows = lockedTable.find(\"tr\");\n\n lockedTable.attr(ROLE, NONE);\n lockedTable.find(\"tbody\").attr(ROLE, NONE);\n lockedRows.attr(ROLE, NONE);\n lockedTable.find(\"td\").attr(ROLE, GRIDCELL);\n\n tableRows.each(function(i, row) {\n var ownedCells = [];\n\n ownedCells = that._cellsIds(lockedRows.eq(i).find(\"td\"), \"locked_datacell\", i);\n ownedCells = ownedCells.concat(that._cellsIds($(row).find(\"td\"), \"datacell\", i));\n\n row.setAttribute(ARIA_OWNS, ownedCells.join(\" \"));\n });\n },\n\n _ariaAddHiddenColIndex: function() {\n var virtualScroll = this.virtualScroll || {},\n columns = this.columns,\n table = this.table,\n leafColsCount = leafColumns(columns).length;\n\n if (!virtualScroll.columns && !table.attr(ARIA_COLCOUNT)) {\n this._ariaColumnIndex();\n\n table.attr(ARIA_COLCOUNT, leafColsCount);\n }\n },\n\n _ariaRemoveHiddenColIndex: function() {\n var virtualScroll = this.virtualScroll || {},\n columns = this.columns,\n leafColsCount = leafColumns(columns).length;\n\n if (!virtualScroll.columns && (leafColsCount === visibleLeafColumns(this.columns).length)) {\n this.wrapper.find(\"td, th\").removeAttr(ARIA_COLINDEX);\n\n this.table.removeAttr(ARIA_COLCOUNT);\n }\n },\n\n _ariaRowIndex: function() {\n var headerRows = this.thead.find(\">tr\"),\n numberOfHeaderRows = headerRows.length,\n bodyRows = this.tbody.find(\">tr\"),\n footerRows = this.wrapper.find(\".k-grid-footer-wrap tfoot > tr\"),\n totalNumberOfItems = this.dataSource.total(),\n previousItems = this.dataSource.skip() || 0,\n currentIndex = 1,\n previousMaster = false,\n i, currentRow;\n\n if (this._hasDetails()) {\n totalNumberOfItems = totalNumberOfItems * 2;\n previousItems = previousItems * 2;\n }\n\n for (i = 0; i < numberOfHeaderRows; i++) {\n headerRows.eq(i).attr(ARIA_ROWINDEX, currentIndex + i);\n }\n\n currentIndex = numberOfHeaderRows + previousItems;\n\n for (i = 0; i < bodyRows.length; i++) {\n currentRow = bodyRows.eq(i);\n\n if (this._hasDetails() && currentRow.hasClass(\"k-master-row\")) {\n if (previousMaster) {\n currentIndex = currentIndex + 2;\n } else {\n currentIndex = currentIndex + 1;\n }\n\n previousMaster = true;\n } else {\n currentIndex = currentIndex + 1;\n previousMaster = false;\n }\n\n currentRow.attr(ARIA_ROWINDEX, currentIndex);\n }\n\n currentIndex = numberOfHeaderRows + totalNumberOfItems + 1;\n\n for (i = 0; i < footerRows.length; i++) {\n footerRows.eq(i).attr(ARIA_ROWINDEX, currentIndex + i);\n }\n },\n\n _cellsIds: function(elements, prefix, i) {\n var ownedCells = [];\n\n elements.each(function(j, cell) {\n var id = cell.getAttribute(ID) || prefix + \"_\" + i + \"_\" + j;\n\n cell.setAttribute(ID, id);\n\n ownedCells.push(id);\n });\n\n return ownedCells;\n },\n\n _trailingColumns: function() {\n return this._groups() + (this._hasDetails() ? 1 : 0);\n },\n\n _element: function() {\n var that = this,\n table = that.element;\n\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\n if (!table.length) {\n table = $(\"\").appendTo(that.element);\n }\n }\n\n that.table = table;\n\n that._wrapper();\n },\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\n if (resizeHandle && that.lockedContent && resizeHandle.data(\"th\")[0] !== th[0]) {\n resizeHandle.off(NS).remove();\n resizeHandle = null;\n }\n\n if (!resizeHandle) {\n resizeHandle = that.resizeHandle = $('
');\n container.append(resizeHandle);\n }\n\n scrollLeft = kendo.scrollLeft(container);\n\n if (isRtl && (browser.mozilla || (browser.webkit && browser.version >= 85))) {\n scrollLeft = scrollLeft * -1;\n }\n\n leftBorderWidth = parseFloat(container.css(\"borderLeftWidth\"));\n\n left = th.offset().left + scrollLeft - parseFloat(th.css(\"marginLeft\")) - (container.offset().left + leftBorderWidth);\n\n if (!isRtl) {\n left += th[0].offsetWidth;\n } else {\n if (scrollable) {\n rtlCorrection = (left <= scrollLeft ? halfResizeHandle : 0);// when shown on first column headers are misaligned due to the width of the resize handler\n headerWrap = th.closest(\".k-grid-header-wrap, .k-grid-header-locked\");\n invisibleSpace = headerWrap[0].scrollWidth - headerWrap[0].offsetWidth; // the difference between the entire width and the visible area\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\n left -= webkitCorrection + firefoxCorrection + ieCorrection;\n }\n }\n\n top = th.offset().top - parseFloat(th.css(\"marginTop\")) - (container.offset().top + parseFloat(container.css(\"borderTopWidth\")));\n\n resizeHandle.css({\n top: top, //scrollable ? 0 : heightAboveHeader(that.wrapper),\n left: left - halfResizeHandle,\n height: outerHeight(th),\n width: indicatorWidth * 3 - rtlCorrection\n })\n .data(\"th\", th)\n .show();\n\n resizeHandle.off(\"dblclick\" + NS).on(\"dblclick\" + NS, function() {\n that._autoFitLeafColumn(parseInt(th.attr(kendo.attr(\"index\")), 10));\n });\n },\n\n _positionColumnResizeHandle: function() {\n var that = this,\n lockedHead = that.lockedHeader ? that.lockedHeader.find(\"thead\").first() : $();\n\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\n var th = $(this);\n if (th.hasClass(\"k-group-cell\") || th.hasClass(\"k-hierarchy-cell\")) {\n return;\n }\n\n if (typeof button !== \"undefined\" && button !== 0) {\n //do not create a new resize handle if a mouse button is still pressed\n //this happens during resizing or before UserEvents trigger \"start\"\n return;\n }\n\n if (th[0].hasAttribute(kendo.attr(COLSPAN))) {\n // resizing multi-column headers is not supported\n return;\n }\n\n that._createResizeHandle(th.closest(\"div\"), th);\n });\n },\n\n _resizeHandleDocumentClick: function(e) {\n if ($(e.target).closest(\".k-column-active\").length) {\n return;\n }\n\n $(document).off(e);\n\n this._resetResizeHandleHeader();\n this._hideResizeHandle();\n },\n\n _resetResizeHandleHeader: function() {\n var th;\n\n if (!this.resizeHandle) {\n return;\n }\n\n th = $(this.resizeHandle).data(\"th\");\n\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\n _hideResizeHandle: function() {\n if (this.resizeHandle) {\n this.resizeHandle.data(\"th\")\n .removeClass(\"k-column-active\");\n\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\n _positionColumnResizeHandleTouch: function() {\n var that = this,\n lockedHead = that.lockedHeader ? that.lockedHeader.find(\"thead\").first() : $();\n\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\n e.preventDefault();\n\n if (that.resizeHandle) {\n that.resizeHandle.data(\"th\")\n .removeClass(\"k-column-active\");\n that._resetResizeHandleHeader();\n }\n\n th.addClass(\"k-column-active\");\n\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\n that._createResizeHandle(th.closest(\"div\"), th);\n\n if (!that._resizeHandleDocumentClickHandler) {\n that._resizeHandleDocumentClickHandler = that._resizeHandleDocumentClick.bind(that);\n }\n\n $(document).on(\"click\", that._resizeHandleDocumentClickHandler);\n }\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); // IE returns 0 if grid is empty and scrolling is enabled\n var col;\n\n if (isHidden) {\n column.width = columnWidth > columnMinWidth ? columnWidth : columnMinWidth;\n return;\n }\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\n if (options.scrollable) {\n\n col = header.find(\"col:not(.k-group-col,.k-hierarchy-col)\").eq(index)\n .add(contentTable.children(\"colgroup\").find(\"col:not(.k-group-col):not(.k-hierarchy-col)\").eq(index))\n .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\n if (options.scrollable) {\n var constrain = false;\n var totalWidth = that.wrapper.width() - scrollbar;\n var width = columnWidth = columnWidth > columnMinWidth ? columnWidth : columnMinWidth;\n\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\n if (width > 10 && width >= columnMinWidth) {\n col.css('width', width);\n\n if (gridWidth) {\n if (constrain) {\n width = totalWidth - scrollbar * 2;\n } else {\n width = gridWidth + (columnWidth - column.width);\n }\n\n contentTable\n .add(header)\n .add(footer)\n .css('width', width);\n\n if (!isLocked) {\n that._footerWidth = width;\n }\n }\n }\n\n that._scrollVirtualWrapperOnColumnResize();\n } else if (columnWidth > 10 && columnWidth >= columnMinWidth) {\n col.css('width', columnWidth);\n }\n\n column.width = columnWidth;\n\n that._applyLockedContainersWidth();\n that._syncLockedContentHeight();\n that._syncLockedHeaderHeight();\n that._updateStickyColumns();\n },\n\n _resizable: function() {\n var that = this,\n options = that.options,\n container,\n columnStart,\n columnWidth,\n columnMinWidth,\n gridWidth,\n isMobile = this._isMobile,\n scrollbar = !kendo.support.mobileOS ? kendo.support.scrollbar() : 0,\n isLocked,\n col, th;\n\n if (options.resizable) {\n container = options.scrollable ? that.wrapper.find(\".k-grid-header-wrap\").first() : that.wrapper;\n\n if (isMobile) {\n that._positionColumnResizeHandleTouch(container);\n } else {\n that._positionColumnResizeHandle(container);\n }\n\n if (that.resizable) {\n that.resizable.destroy();\n }\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({\n height: outerHeight(handle.data(\"th\")) + that.tbody.attr(\"clientHeight\")\n });\n },\n start: function(e) {\n th = $(e.currentTarget).data(\"th\");\n\n if (isMobile) {\n that._hideResizeHandle();\n }\n\n var header = th.closest(\"table\"),\n index = $.inArray(th[0], leafDataCells(th.closest(\"thead\")).filter(\":visible\"));\n\n isLocked = header.parent().hasClass(\"k-grid-header-locked\");\n\n var contentTable = isLocked ? that.lockedTable : that.table,\n footer = that.footer || $();\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\n cursor(that.wrapper, 'col-resize');\n\n if (options.scrollable) {\n col = header.find(\"col:not(.k-group-col):not(.k-hierarchy-col)\").eq(index)\n .add(contentTable.children(\"colgroup\").find(\"col:not(.k-group-col):not(.k-hierarchy-col)\").eq(index))\n .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\n var columns = $.map(that.columns, function(a) {\n return !a.hidden && ((isLocked && a.locked) || ((!isLocked && !a.locked))) ? a : null;\n });\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); // IE returns 0 if grid is empty and scrolling is enabled\n\n // fix broken UI in Chrome38+\n if (browser.webkit) {\n that.wrapper.addClass(\"k-grid-column-resizing\");\n }\n },\n resize: function(e) {\n var rtlMultiplier = isRtl ? -1 : 1,\n currentWidth = columnWidth + (e.x.location * rtlMultiplier) - (columnStart * rtlMultiplier);\n\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\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\n if (width > 10 && width >= columnMinWidth) {\n col.css('width', width);\n\n if (gridWidth) {\n if (constrain) {\n width = totalWidth - scrollbar * 2;\n } else {\n width = gridWidth + (e.x.location * rtlMultiplier) - (columnStart * rtlMultiplier);\n }\n\n contentTable\n .add(header)\n .add(footer)\n .css('width', width);\n\n if (!isLocked) {\n that._footerWidth = width;\n }\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),\n column,\n header;\n\n cursor(that.wrapper, \"\");\n\n if (browser.webkit) {\n that.wrapper.removeClass(\"k-grid-column-resizing\");\n }\n\n if (columnWidth != newWidth) {\n header = that.lockedHeader ? that.lockedHeader.find(\"thead\").first().find(\"tr\").first().add(that.thead.find(\"tr\").first()) : th.parent();\n\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\n column.width = newWidth;\n\n that.trigger(COLUMNRESIZE, {\n column: column,\n oldWidth: columnWidth,\n newWidth: newWidth\n });\n\n that._applyLockedContainersWidth();\n that._syncLockedContentHeight();\n that._syncLockedHeaderHeight();\n that._updateStickyColumns();\n }\n\n that._resetResizeHandleHeader();\n that._hideResizeHandle();\n th = null;\n }\n });\n\n }\n },\n\n _draggable: function() {\n var that = this,\n reorderable = that.options.reorderable;\n\n if (reorderable === true || (reorderable && reorderable.columns)) {\n\n if (that._draggableInstance) {\n that._draggableInstance.destroy();\n }\n\n var header = that.wrapper.children(\".k-grid-header\");\n\n that._draggableInstance = that.wrapper.kendoDraggable({\n group: kendo.guid(),\n autoScroll: true,\n filter: that.content ? \".k-grid-header:first \" + HEADERCELLS : \"table:first>.k-grid-header \" + HEADERCELLS,\n dragstart: function() {\n header.children(\".k-grid-header-wrap\").off(\"scroll\" + NS + \"scrolling\").on(\"scroll\" + NS + \"scrolling\", function(e) {\n if (that.virtualScrollable) {\n kendo.scrollLeft(that.content.find(\">.k-virtual-scrollable-wrap\"), this.scrollLeft);\n } else {\n kendo.scrollLeft(that.scrollables.not(e.currentTarget), this.scrollLeft);\n }\n });\n },\n dragend: function() {\n that._resetResizeHandleHeader();\n header.children(\".k-grid-header-wrap\").off(\"scroll\" + NS + \"scrolling\");\n },\n drag: function() {\n that._hideResizeHandle();\n },\n hint: function(target) {\n var title = target.attr(kendo.attr(\"title\"));\n if (title) {\n title = kendo.htmlEncode(title);\n }\n return $('
')\n .html(title || target.attr(kendo.attr(\"field\")) || target.text())\n .prepend('');\n }\n }).data(\"kendoDraggable\");\n }\n },\n\n _reorderable: function() {\n var that = this,\n reorderable = that.options.reorderable;\n\n if (reorderable === true || (reorderable && reorderable.columns)) {\n if (that.wrapper.data(\"kendoReorderable\")) {\n that.wrapper.data(\"kendoReorderable\").destroy();\n }\n\n that.wrapper.kendoReorderable({\n draggable: that._draggableInstance,\n dropFilter: HEADERCELLS,\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\n that.trigger(COLUMNREORDER, {\n newIndex: newIndex,\n oldIndex: inArray(column, columns),\n column: column\n });\n\n that.reorderColumn(newIndex, column, e.position === \"before\");\n }\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\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\n var sourceLockedColumns = lockedColumns(sources).length;\n var targetLockedColumns = lockedColumns([target]).length;\n\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\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) { // move between containers\n updateCellRowSpan(ths[sourcePosition.cell], that.columns, sourceLockedColumns);\n }\n\n reorder(ths, sourcePosition.cell, destPosition.cell, before, sources.length);\n },\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\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\n var headerCol, footerCol, beforeVisibleColumn;\n headerCol = footerCol = colDest;\n\n if (destination.hidden) {\n var columnsArray = isLocked ? lockedColumns(that.columns) : nonLockedColumns(that.columns);\n\n if (visibleColumns(columnsArray).length > 0) {\n headerCol = footerCol = colDest = this._findClosestVisibleColumnIndex(columnsArray, destIndex);\n beforeVisibleColumn = visibleColumns(columnsArray.slice(destIndex)).length > 0;\n }\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\n if (that._hasFilterRow()) {\n reorder(that.wrapper.find(\".k-filter-row td:not(.k-group-cell,.k-hierarchy-cell)\"), sourceIndex, destIndex, before, sources.length);\n }\n\n if (colSourceIndex >= 0) {\n reorder(elements(that.lockedHeader, that.thead.prev(), COLGROUP), colSourceIndex, headerCol, beforeVisibleColumn ? beforeVisibleColumn : before, visibleSources.length);\n }\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\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\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(\n that.lockedTable.find(\">tbody>tr.k-grouping-row\"),\n that.table.find(\">tbody>tr.k-grouping-row\"),\n sources.length\n );\n }\n } else if (lockedCount > sourceIndex) {\n updateColspan(\n that.table.find(\">tbody>tr.k-grouping-row\"),\n that.lockedTable.find(\">tbody>tr.k-grouping-row\"),\n sources.length\n );\n }\n\n lockedRows = that.lockedTable.find(\">tbody>tr:not(.k-grouping-row,.k-detail-row)\");\n }\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\n _findClosestVisibleColumnIndex: function(columns, columnIndex) {\n var columnsArray = visibleColumns(columns.slice(columnIndex)).length > 0 ? columns.slice(columnIndex) : columns.slice(0, columnIndex + 1).reverse(),\n closestVisibleColumn = visibleColumns(columnsArray)[0];\n\n return inArray(closestVisibleColumn, visibleColumns(this.columns));\n },\n\n _autoFitLeafColumn: function(leafIndex) {\n this.autoFitColumn(leafColumns(this.columns)[leafIndex]);\n },\n\n _hasReorderableRows: function() {\n return this._hasDragHandleColumn || (this.options.reorderable && this.options.reorderable.rows);\n },\n\n _draggableRows: function() {\n var that = this,\n selectable = that._checkBoxSelection ||\n (that.options.selectable && !kendo.ui.Selectable.parseOptions(that.options.selectable).cell);\n\n if (that._draggableRowsInstance) {\n that._draggableRowsInstance.destroy();\n }\n\n that._draggableRowsInstance = that.tbody.kendoDraggable({\n group: \"row-draggable\",\n autoScroll: true,\n filter: (selectable ? \" > .k-selected\" : \" > \" + ITEMROW) + (that._hasDragHandleColumn ? \" > .k-drag-cell\" : \"\"),\n hint: function(target) {\n var hint = $('
');\n\n if (selectable && that.select().length > 1) {\n hint.append(\"\" + that.select().length + \" \" + that.options.messages.itemsSelected + \"\");\n } else {\n var clone = target.closest(ITEMROW).clone();\n clone.find(\"td.k-command-cell\").remove();\n clone.find(\"td\").each(function(index, elm) {\n hint.append(\"\" + elm.innerText + \" \");\n });\n }\n\n return hint;\n }\n }).data(\"kendoDraggable\");\n },\n\n _reorderableRows: function() {\n var that = this,\n selectable = that._checkBoxSelection ||\n (that.options.selectable && !kendo.ui.Selectable.parseOptions(that.options.selectable).cell);\n\n if (that.tbody.data(\"kendoReorderable\")) {\n that.tbody.data(\"kendoReorderable\").destroy();\n }\n\n that.tbody.kendoReorderable({\n smartPosition: false,\n draggable: that._draggableRowsInstance,\n dragOverContainers: function(sourceIndex, targetIndex) {\n var result = true,\n target = $(ITEMROW, that.content).eq(targetIndex);\n\n if (selectable) {\n result = !target.is(\".k-selected\");\n }\n\n return result;\n },\n inSameContainer: function(e) {\n if (selectable) {\n return !$(e.target).is(\".k-selected\");\n }\n\n return true;\n },\n dropFilter: \"> \" + ITEMROW,\n allowIcon: \"k-i-insert-middle\",\n orientation: \"vertical\",\n reorderDropCue: $('
'),\n positionDropCue: function(reorderDropCue, dropTarget) {\n var firstCellLeft = kendo.getOffset(dropTarget.children(DATA_CELL).eq(0)).left;\n reorderDropCue.css({\n transform: \"translate(0,-50%)\",\n left: firstCellLeft\n });\n },\n externalDraggable: function(e) {\n var draggable = e.draggable;\n\n if (draggable) {\n return draggable;\n }\n },\n change: function(e) {\n that._triggerRowRorder(e);\n }\n });\n },\n\n _triggerRowRorder: function(e) {\n var that = this,\n args = {\n newIndex: e.position === \"after\" ? e.newIndex + 1 : e.newIndex,\n oldIndex: e.oldIndex\n },\n row = e.element,\n selectable = that._checkBoxSelection ||\n (that.options.selectable && !kendo.ui.Selectable.parseOptions(that.options.selectable).cell);\n\n if (selectable && that.select().length > 1) {\n args = extend(args, {\n rows: that.select()\n });\n } else {\n args = extend(args, {\n row: row\n });\n }\n\n if (!that.trigger(ROWREORDER, args)) {\n that.reorderRows(selectable ? that.select() : row, args.newIndex);\n }\n },\n\n reorderRows: function(rows, index) {\n var that = this,\n dataSource = that.dataSource,\n rowsLength = that.tbody.children(ITEMROW).length,\n targetItem = that.dataItem(that.tbody.children(ITEMROW).eq(index)),\n items = rows.toArray().map(function(row) {\n return that.dataItem(row);\n });\n\n if (!targetItem) {\n // If index is after last row dataItem wouldn't exist\n targetItem = that.dataItem(that.tbody.children(ITEMROW).eq(rowsLength - 1));\n index = dataSource.indexOf(targetItem) + 1;\n } else {\n index = dataSource.indexOf(targetItem);\n }\n\n if (index >= 0) {\n that._rowDropping = true;\n dataSource.pushMove(index, items);\n that._rowDropping = false;\n }\n },\n\n autoFitColumns: function(columns) {\n var that = this;\n\n columns = columns || that.columns;\n\n for (var i = 0; i < columns.length; i++) {\n var column = columns[i];\n\n if (column.columns) {\n that.autoFitColumns(column.columns);\n } else {\n that.autoFitColumn(column);\n }\n }\n },\n\n autoFitColumn: function(column) {\n var that = this,\n options = that.options,\n columns = that.columns,\n index,\n th,\n headerTable,\n leafCols,\n isLocked,\n visibleLocked = that.lockedHeader ? leafDataCells(that.lockedHeader.find(\">table>thead\")).filter(isCellVisible).length : 0,\n col,\n minWidth,\n contentDiv, scrollLeft,\n notGroupOrHierarchyCol = \"col:not(.k-group-col):not(.k-hierarchy-col)\",\n notGroupOrHierarchyVisibleCell = \"td:visible:not(.k-group-cell):not(.k-hierarchy-cell)\",\n menu,\n thWidth;\n\n // retrieve the column object, depending on the method argument\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\n if (!column || !isVisible(column)) {\n return;\n }\n\n leafCols = leafColumns(columns);\n minWidth = column.minResizableWidth;\n index = inArray(column, leafCols);\n isLocked = column.locked;\n\n if (isLocked) {\n headerTable = that.lockedHeader.children(\"table\");\n } else {\n headerTable = that.thead.parent();\n }\n\n th = headerTable.find(\"[data-index='\" + index + \"']\");\n menu = th.find('a.k-header-column-menu, a.k-grid-filter');\n\n var contentTable = isLocked ? that.lockedTable : that.table,\n footer = that.footer || $();\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\n var footerTable = footer.find(\"table\").first();\n\n if (that.lockedHeader && !isLocked) {\n index -= visibleLocked;\n }\n\n // adjust column index, depending on previous hidden columns\n for (var j = 0; j < leafCols.length; j++) {\n if (leafCols[j] === column) {\n break;\n } else {\n if (leafCols[j].hidden) {\n index--;\n }\n }\n }\n\n // get col elements\n if (options.scrollable) {\n col = headerTable.find(notGroupOrHierarchyCol).eq(index)\n .add(contentTable.children(\"colgroup\").find(notGroupOrHierarchyCol).eq(index))\n .add(footerTable.find(\"colgroup\").find(notGroupOrHierarchyCol).eq(index));\n\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\n var tables = headerTable.add(contentTable).add(footerTable);\n\n if (browser.safari) {\n th.css(\"white-space\", \"initial\");\n }\n\n var oldColumnWidth = outerWidth(th);\n\n // reset the table and autofitted column widths\n // if scrolling is disabled, we need some additional repainting of the table\n col.width(\"\");\n tables.css(\"table-layout\", \"fixed\");\n col.width(\"auto\");\n tables.addClass(\"k-autofitting\");\n tables.css(\"table-layout\", \"\");\n\n thWidth = menu.length ? outerWidth(menu) + outerWidth(th) : outerWidth(th);\n\n // +1 is required by IE, regardless of the border widths, otherwise unexpected wrapping may occur with hyphenated text\n var newColumnWidth = Math.ceil(Math.max(\n thWidth,\n outerWidth(contentTable.find(\"tr:not(.k-grouping-row)\").eq(0).children(notGroupOrHierarchyVisibleCell).eq(index)),\n outerWidth(footerTable.find(\"tr\").eq(0).children(notGroupOrHierarchyVisibleCell).eq(index))\n )) + 1;\n\n if (minWidth && minWidth > newColumnWidth) {\n newColumnWidth = minWidth;\n }\n\n col.width(newColumnWidth);\n column.width = newColumnWidth;\n\n if (browser.safari) {\n th.css(\"white-space\", \"\");\n }\n\n // if all visible columns have widths, the table needs a pixel width as well\n if (options.scrollable) {\n var cols = headerTable.find(\"col\"),\n colWidth,\n 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\n if (totalWidth) {\n tables.each(function() {\n this.style.width = totalWidth + \"px\";\n });\n }\n }\n\n tables.removeClass(\"k-autofitting\");\n\n if (scrollLeft) {\n kendo.scrollLeft(contentDiv, scrollLeft);\n }\n\n that.trigger(COLUMNRESIZE, {\n column: column,\n oldWidth: oldColumnWidth,\n newWidth: newColumnWidth\n });\n\n that._applyLockedContainersWidth();\n that._syncLockedContentHeight();\n that._syncLockedHeaderHeight();\n that._updateStickyColumns();\n },\n\n reorderColumn: function(destIndex, column, before) {\n var that = this,\n parent = columnParent(column, that.columns),\n columns = parent ? parent.columns : that.columns,\n sourceIndex = inArray(column, columns),\n destColumn = columns[destIndex],\n virtualScroll = that.virtualScroll || {},\n lockChanged,\n isLocked = !!destColumn.locked,\n lockedCount = lockedColumns(that.columns).length,\n groupHeaderColumnTemplateColumns = grep(leafColumns(that.columns), function(column) { return column.groupHeaderColumnTemplate; });\n\n if (sourceIndex === destIndex) {\n return;\n }\n\n if (!column.locked && isLocked && nonLockedColumns(that.columns).length == 1) {\n return;\n }\n\n if (column.locked && !isLocked && lockedCount == 1) {\n return;\n }\n\n that._hideResizeHandle();\n\n if (before === undefined$1) {\n before = destIndex < sourceIndex;\n }\n\n var sourceColumns = [column];\n\n that._reorderHeader(sourceColumns, destColumn, before);\n\n if (that.lockedHeader) {\n removeEmptyRows(that.thead);\n removeEmptyRows(that.lockedHeader);\n }\n\n if (destColumn.columns) {\n destColumn = leafColumns(destColumn.columns);\n destColumn = destColumn[before ? 0 : destColumn.length - 1];\n }\n\n if (column.columns) {\n sourceColumns = leafColumns(column.columns);\n }\n\n that._reorderContent(sourceColumns, destColumn, before);\n\n lockChanged = !!column.locked;\n lockChanged = lockChanged != isLocked;\n column.locked = isLocked;\n\n columns.splice(before ? destIndex : destIndex + 1, 0, column);\n columns.splice(sourceIndex < destIndex ? sourceIndex : sourceIndex + 1, 1);\n\n that._updateLockedCols();\n that._updateCols();\n that._templates();\n\n that._updateColumnCellIndex();\n that._updateColumnSorters();\n\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\n if (virtualScroll.columns) {\n that.refresh();\n }\n\n if (!lockChanged) {\n return;\n }\n\n if (isLocked) {\n that.trigger(COLUMNLOCK, {\n column: column\n });\n } else {\n that.trigger(COLUMNUNLOCK, {\n column: column\n });\n }\n },\n\n _updateColumnCellIndex: function() {\n var header;\n var offset = 0;\n\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\n lockColumn: function(column) {\n var columns = this.columns;\n\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\n if (!column || column.locked || column.hidden) {\n return;\n }\n\n if (column.sticky) {\n this.unstickColumn(columns.indexOf(column));\n }\n\n var index = lockedColumns(columns).length - 1;\n this.reorderColumn(index, column, false);\n },\n\n unlockColumn: function(column) {\n var columns = this.columns;\n\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\n if (!column || !column.locked || column.hidden) {\n return;\n }\n\n var index = lockedColumns(columns).length;\n this.reorderColumn(index, column, true);\n },\n\n stickColumn: function(column) {\n var columns = this.columns;\n\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\n if (!column || column.sticky || column.hidden) {\n return;\n }\n\n if (column.locked) {\n this.unlockColumn(columns.indexOf(column));\n\n if (column.locked) {\n return;\n }\n }\n\n column.sticky = true;\n this._updateStickyColumns();\n },\n\n unstickColumn: function(column) {\n var columns = this.columns;\n\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\n if (!column || !column.sticky || column.locked || column.hidden) {\n return;\n }\n\n this._removeStickyAttributes([column]);\n this._removeStickyStyles(stickyColumns(columns));\n\n column.sticky = false;\n this._updateStickyColumns();\n\n if (this._anyStickyColumns() === 0) {\n this._templates();\n if (this._hasFilterRow()) {\n this._updateStickyFilterCells();\n }\n }\n },\n\n cellIndex: function(td) {\n var lockedColumnOffset = 0;\n\n if (this.lockedTable && !$.contains(this.lockedTable[0], td[0])) {\n lockedColumnOffset = leafColumns(lockedColumns(this.columns)).length;\n }\n\n return $(td).parent().children('td:not(.k-group-cell,.k-hierarchy-cell)').index(td) + lockedColumnOffset;\n },\n\n _modelForContainer: function(container) {\n container = $(container);\n\n if (!container.is(\"tr\") && this._editMode() !== \"popup\") {\n container = container.closest(\"tr\");\n }\n\n var id = container.attr(kendo.attr(\"uid\")) || container.find(\".k-popup-edit-form\").attr(kendo.attr(\"uid\"));\n\n return this.dataSource.getByUid(id);\n },\n\n _calculateColumnIndex: function(cell) {\n var cellIndex = this.cellIndex(cell);\n var virtualOffset = 0;\n\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\n return cellIndex + virtualOffset;\n },\n\n _editable: function() {\n var that = this,\n editable = that.options.editable,\n handler = function() {\n var target = activeElement(),\n cell = that._editContainer;\n\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\n if (editable) {\n this.wrapper.addClass(\"k-editable\");\n\n var mode = that._editMode();\n if (mode === \"incell\") {\n that.table.add(that.lockedTable)\n .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\n if (editable.update !== false) {\n if (isMac) {\n that.wrapper\n .on(CLICK + NS, \".k-edit-cell > input[type='checkbox']\", function(e) {\n // checking /unchecking a checkbox does not change the document.activeElement to be the checkbox\n // this is necessary for the \"focusout\" event to be fired\n $(e.target).trigger(\"focus\");\n })\n .on(CLICK + NS, \".k-edit-cell\", function(e) {\n if (!$(e.target).is(\"input\")) {\n $(e.currentTarget).find(\"input[type='checkbox']\").trigger(\"focus\");\n }\n })\n .on(MOUSEDOWN + NS, \"tr:not(.k-grouping-row) > td\", function(e) {\n var editContainer = that._editContainer;\n\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\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),\n isLockedCell = that.lockedTable && td.closest(\"table\")[0] === that.lockedTable[0];\n\n that._mousedownOnEditCell = false;\n\n if (td.hasClass(\"k-hierarchy-cell\") ||\n td.hasClass(\"k-detail-cell\") ||\n td.hasClass(\"k-group-cell\") ||\n td.hasClass(\"k-edit-cell\") ||\n td.has(\".k-grid-delete\").length ||\n (td.closest(\"tbody\")[0] !== that.tbody[0] && !isLockedCell) ||\n $(e.target).is(\":input\")) {\n return;\n }\n\n if (that.editable) {\n if (that.editable.end()) {\n $(activeElement()).trigger(\"blur\");\n that.closeCell();\n that.editCell(td);\n } else {\n that._scrollVirtualWrapper();\n }\n } else {\n that.editCell(td);\n }\n }\n });\n\n that.wrapper.on(\"focusin\" + NS, function() {\n // fix focus issue in IE\n if (!$.contains(this, activeElement())) {\n clearTimeout(that.timer);\n that.timer = null;\n }\n })\n .on(\"focusout\" + NS, function(e) {\n var shouldCloseCell = true;\n\n if ((isMac && that._mousedownOnEditCell) || that._virtualColScroll) {\n shouldCloseCell = false;\n }\n\n that._mousedownOnEditCell = false;\n\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 .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\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\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 //Required for the MVC server wrapper delete button\n that.wrapper.on(CLICK + NS, \"tbody>tr:not(.k-detail-row,.k-grouping-row):visible .k-grid-delete\", function(e) {\n if (!that._belongsToGrid($(this))) {\n return;\n }\n e.stopPropagation();\n\n if (!that._confirmation()) {\n e.preventDefault();\n }\n });\n }\n }\n },\n\n editCell: function(cell) {\n cell = $(cell);\n\n var that = this,\n column = leafColumns(that.columns)[that._calculateColumnIndex(cell)],\n model = that._modelForContainer(cell);\n\n that.closeCell();\n\n if (model && isColumnEditable(column, model) && !column.command) {\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n\n that._attachModelChange(model);\n\n that._editContainer = cell;\n\n if (that._shouldClearEditableState) {\n that._clearEditableState();\n }\n that.editable = cell.addClass(\"k-edit-cell\")\n .kendoEditable({\n fields: editField(column),\n model: model,\n target: that,\n change: function(e) {\n if (that.trigger(SAVE, { values: e.values, container: cell, model: model } )) {\n e.preventDefault();\n }\n },\n skipFocus: (that._isVirtualIncellEditable() || that._hasVirtualColumns()) && that._editableState ? true : false\n\n }).data(\"kendoEditable\");\n\n var tr = cell.parent().addClass(\"k-grid-edit-row\");\n\n if (that.lockedContent) {\n adjustRowHeight(tr[0], that._relatedRow(tr).addClass(\"k-grid-edit-row\")[0]);\n that._syncLockedScroll();\n }\n\n that.trigger(EDIT, { container: cell, model: model });\n }\n },\n\n _adjustLockedHorizontalScrollBar: function() {\n var table = this.table,\n content = table.parent();\n\n var scrollbar = table[0].offsetWidth > content[0].clientWidth ? kendo.support.scrollbar() : 0;\n this.lockedContent.height(content[0].offsetHeight - scrollbar);\n },\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\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\n _syncLockedHeaderHeight: function() {\n if (this.lockedHeader) {\n var lockedTable = this.lockedHeader.children(\"table\");\n var table = this.thead.parent();\n\n this._adjustRowsHeight(lockedTable, table);\n\n syncTableHeight(lockedTable, table);\n }\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\n _destroyEditable: function() {\n var that = this;\n\n var destroy = function() {\n if (that.editable) {\n\n var container = that.editView ? that.editView.element : that._editContainer;\n var window = that._editContainer.data(\"kendoWindow\");\n\n if (container) {\n container.off(CLICK + NS, \".k-grid-cancel\", that._editCancelClickHandler);\n container.off(CLICK + NS, \".k-grid-update\", that._editUpdateClickHandler);\n }\n\n that._detachModelChange();\n that.editable.destroy();\n that.editable = null;\n if (window) {\n window.destroy();\n }\n that._editContainer = null;\n that._destroyEditView();\n that._editableIsClosing = null;\n }\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 }\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\n _destroyEditView: function() {\n if (this.editView) {\n this.editView.purge();\n this.editView = null;\n this.pane.navigate(\"\");\n }\n },\n\n _attachModelChange: function(model) {\n var that = this;\n\n that._modelChangeHandler = function(e) {\n that._modelChange({ field: e.field, model: this });\n };\n\n model.bind(\"change\", that._modelChangeHandler);\n },\n\n _detachModelChange: function() {\n var that = this,\n container = that._editContainer,\n model = that._modelForContainer(container);\n\n if (model) {\n model.unbind(CHANGE, that._modelChangeHandler);\n }\n },\n\n closeCell: function(isCancel) {\n var that = this,\n cell = that._editContainer,\n column,\n tr,\n model;\n\n if (!cell) {\n return;\n }\n\n model = that._modelForContainer(cell);\n\n if (isCancel && that.trigger(\"cancel\", { container: cell, model: model })) {\n return;\n }\n\n that.trigger(CELLCLOSE, { type: isCancel ? \"cancel\" : \"save\", model: model, container: cell });\n\n cell.removeClass(\"k-edit-cell\");\n column = leafColumns(that.columns)[that._calculateColumnIndex(cell)];\n\n tr = cell.parent().removeClass(\"k-grid-edit-row\");\n\n if (that.lockedContent) {\n that._relatedRow(tr).removeClass(\"k-grid-edit-row\");\n }\n\n that._destroyEditable(); // editable should be destroyed before content of the container is changed\n\n that._displayCell(cell, column, model);\n\n if (that._shouldClearEditableState) {\n that._clearEditableState();\n }\n\n that.trigger(\"itemChange\", { item: tr, data: model, ns: ui });\n\n if (that.lockedContent) {\n adjustRowHeight(tr.css(\"height\", \"\")[0], that._relatedRow(tr).css(\"height\", \"\")[0]);\n }\n },\n\n _displayCell: function(cell, column, dataItem) {\n var that = this,\n state = { storage: {}, count: 0 },\n settings = extend({}, kendo.Template, that.options.templateSettings),\n tmpl = kendo.template(that._cellTmpl(column, state), settings);\n\n if (state.count > 0) {\n tmpl = tmpl.bind(state.storage);\n }\n\n cell.empty().html(tmpl(dataItem));\n\n that.angular(\"compile\", function() {\n return {\n elements: cell,\n data: [ { dataItem: dataItem } ]\n };\n });\n },\n\n removeRow: function(row) {\n if (!this._confirmation(row)) {\n return;\n }\n\n this._removeRow(row);\n },\n\n _removeRow: function(row) {\n var that = this,\n model,\n modelId,\n key,\n schema,\n mode = that._editMode();\n\n if (mode !== \"incell\") {\n that.cancelRow();\n }\n\n row = $(row);\n\n if (that.lockedContent) {\n row = row.add(that._relatedRow(row));\n }\n\n row = row.hide();\n if (that.dataSource._isGroupPaged()) {\n that._removeGroupIfEmpty(row);\n }\n\n model = that._modelForContainer(row);\n\n if (model && !that.trigger(REMOVE, { row: row, model: model })) {\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\n that.dataSource.remove(model);\n\n if (mode === \"inline\" || mode === \"popup\") {\n that.dataSource.sync();\n }\n } else if (mode === \"incell\") {\n that._destroyEditable();\n }\n },\n\n _editMode: function() {\n var mode = \"incell\",\n editable = this.options.editable;\n\n if (editable !== true) {\n if (typeof editable == \"string\") {\n mode = editable;\n } else {\n mode = editable.mode || mode;\n }\n }\n\n return mode;\n },\n\n editRow: function(row) {\n var model;\n var that = this;\n\n if (row instanceof ObservableObject) {\n model = row;\n } else {\n row = $(row);\n model = that._modelForContainer(row);\n }\n\n var mode = that._editMode();\n var container;\n\n that.cancelRow();\n\n if (model) {\n row = that.tbody.children(\"[\" + kendo.attr(\"uid\") + \"=\" + model.uid + \"]\");\n that._attachModelChange(model);\n\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\n model = that._modelForContainer(cell);\n\n if (model && (!model.editable || model.editable(column.field)) && column.field && !column.selectable) {\n that.editCell(cell);\n return false;\n }\n });\n }\n\n\n container = that.editView ? that.editView.element : that._editContainer;\n\n if (container) {\n if (!this._editCancelClickHandler) {\n this._editCancelClickHandler = this._editCancelClick.bind(this);\n }\n\n container.on(CLICK + NS, \".k-grid-cancel\", this._editCancelClickHandler);\n\n if (!this._editUpdateClickHandler) {\n this._editUpdateClickHandler = this._editUpdateClick.bind(this);\n }\n\n container.on(CLICK + NS, \".k-grid-update\", this._editUpdateClickHandler);\n }\n }\n },\n\n _editUpdateClick: function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n this.saveRow();\n },\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\n e.preventDefault();\n e.stopPropagation();\n\n if (that.trigger(\"cancel\", { container: container, model: model })) {\n return;\n }\n\n var currentIndex = that.items().index($(that.current()).parent());\n\n that.cancelRow();\n\n if (navigatable) {\n that._setCurrent(that.items().eq(currentIndex).children().filter(NAVCELL).first());\n focusTable(that.table, true);\n }\n },\n\n _editFields: function(columns, model) {\n var fields = [];\n var column;\n\n for (var idx = 0; idx < columns.length; idx++) {\n column = columns[idx];\n if (column.selectable || column.command) {\n continue;\n }\n if (isColumnEditable(column, model)) {\n fields.push(editField(column));\n }\n }\n return fields;\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 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 var container;\n var buttonsHTML;\n\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n\n options = options || {};\n\n if (template) {\n if (typeof template === STRING) {\n template = kendo.unescape(template);\n }\n\n html += (kendo.template(template, settings))(model);\n\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\n if (isColumnEditable(column, model)) {\n html += '';\n } else {\n state = { storage: {}, count: 0 };\n\n tmpl = kendo.template(that._cellTmpl(column, state), settings);\n\n if (state.count > 0) {\n tmpl = tmpl.bind(state.storage);\n }\n\n html += '';\n }\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\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\n if (command.attr) {\n attr = command.attr;\n }\n }\n }\n\n if (!that._isMobile) {\n buttonsHTML = '
    ';\n buttonsHTML += that._createButton({ name: \"update\", text: updateText, attr: attr, iconClass: updateIconClass }) + that._createButton({ name: \"canceledit\", text: cancelText, attr: attr, iconClass: cancelIconClass });\n buttonsHTML += '
    ';\n\n html += template ? buttonsHTML + '
    ' : '
    ';\n\n container = that._editContainer = $(html)\n .appendTo(that.wrapper).eq(0)\n .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 //The bellow line is required due to: draggable window in IE, change event will be triggered while the window is closing\n e.sender.element.trigger(\"focus\");\n if (that.trigger(\"cancel\", { container: container, model: model })) {\n e.preventDefault();\n return;\n }\n\n var currentIndex = that.items().index($(that.current()).parent());\n\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(\n '
    ' +\n '
    ' +\n '' +\n (that.options.messages.commands.edit || \"Edit\") +\n '' +\n '
    ' +\n '
    ' +\n html +\n '
    ' +\n '
    ');\n container = that._editContainer = that.editView.element.find(\".k-popup-edit-form\");\n }\n\n if (!template && !that._isMobile) {\n that.editable = new ui.Form(that._editContainer.find(\".k-edit-form-container\"), {\n items: that._editFields(columns, model),\n buttonsTemplate: \"\",\n formData: model\n }).editable;\n that._editContainer.append(buttonsHTML);\n } else {\n that.editable = that._editContainer\n .kendoEditable({\n fields: that._isMobile ? that._editFields(columns, model) : null,\n model: model,\n clearContainer: false,\n target: that\n }).data(\"kendoEditable\");\n }\n\n that._openPopUpEditor();\n\n that.trigger(EDIT, { container: container, 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\n if (!this._isMobile) {\n if (windowEditor) {\n if (!windowOptions.position) {\n windowEditor.center();\n }\n\n windowEditor.open();\n }\n } else {\n this.pane.navigate(this.editView, this._editAnimation);\n }\n },\n\n _createInlineEditor: function(row, model) {\n var that = this;\n var column;\n var cell;\n var command;\n var fields = [];\n\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n\n if (that.lockedContent) {\n row = row.add(that._relatedRow(row));\n }\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\n if (!column.command && isColumnEditable(column, model)) {\n fields.push(editField(column));\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\n var updateText,\n cancelText,\n updateIconClass,\n cancelIconClass,\n attr;\n\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\n if (command.attr) {\n attr = command.attr;\n }\n }\n\n $(that._createButton({ name: \"update\", text: updateText, attr: attr, iconClass: updateIconClass }) +\n that._createButton({ name: \"canceledit\", text: cancelText, attr: attr, iconClass: cancelIconClass })).appendTo(cell);\n }\n }\n });\n\n that._editContainer = row;\n that._editContainer.addClass(\"k-grid-edit-row\");\n\n if (that._shouldClearEditableState) {\n that._clearEditableState();\n }\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\n if (row.length > 1) {\n\n adjustRowHeight(row[0], row[1]);\n that._applyLockedContainersWidth();\n }\n\n that.trigger(EDIT, { container: row, model: model });\n },\n\n cancelRow: function(notify) {\n var that = this,\n container = that._editContainer,\n model;\n\n if (container) {\n model = that._modelForContainer(container);\n\n if (!model || (notify && that.trigger(\"cancel\", { container: container, model: model }))) {\n return;\n }\n\n that._destroyEditable();\n\n that.dataSource.cancelChanges(model);\n\n that._clearEditableState();\n\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\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\n if (!container || !this.editable) {\n return deferred.resolve().promise();\n }\n\n valid = that.editable && that.editable.end();\n\n if (!valid || this.trigger(SAVE, { container: container, model: model })) {\n if (!valid) {\n that._scrollVirtualWrapper();\n }\n\n return deferred.reject().promise();\n }\n\n that._clearEditableState();\n\n return this.dataSource.sync();\n },\n\n _displayRow: function(row) {\n var that = this,\n model = that._modelForContainer(row),\n related,\n newRow,\n nextRow,\n isSelected = row.hasClass(\"k-selected\"),\n isAlt = row.hasClass(\"k-alt\");\n\n if (model) {\n\n if (that.lockedContent) {\n related = $((isAlt ? that.lockedAltRowTemplate : that.lockedRowTemplate)(model));\n that._relatedRow(row.last()).replaceWith(related);\n }\n\n that.angular(\"cleanup\", function() { 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\n that.trigger(\"itemChange\", { item: newRow, data: model, ns: ui });\n\n if (related && related.length) {\n that.trigger(\"itemChange\", { item: related, data: model, ns: ui });\n }\n\n var angularElements = newRow;\n var angularData = [{ dataItem: model }];\n\n if (related && related.length) {\n angularElements = newRow.add(related);\n angularData.push({ dataItem: model });\n }\n\n that.angular(\"compile\", function() {\n return {\n elements: angularElements.get(),\n data: angularData\n };\n });\n\n\n if (isSelected && (that.options.selectable || that._checkBoxSelection)) {\n that.select(newRow.add(related));\n }\n\n if (related) {\n adjustRowHeight(newRow[0], related[0]);\n }\n\n nextRow = newRow.next();\n if (nextRow.hasClass(\"k-detail-row\") && nextRow.is(\":visible\")) {\n newRow.find(\".k-hierarchy-cell .k-icon\")\n .removeClass(\"k-i-expand\")\n .addClass(\"k-i-collapse\");\n }\n }\n },\n\n _showMessage: function(messages, row) {\n var that = this;\n\n if (!that._isMobile) {\n // eslint-disable-next-line no-alert\n return window.confirm(messages.title);\n }\n\n var confirmDialog = that._confirmDialog = new kendo.ui.Confirm($(\"
    \").appendTo(document.body), {\n modal: {\n preventScroll: true\n },\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\n confirmDialog.result\n .done(function() {\n that._removeRow(row);\n })\n .fail(function() {\n var confirmDialog = that._confirmDialog;\n\n if (confirmDialog) {\n confirmDialog.close();\n confirmDialog.destroy();\n }\n });\n\n return false;\n },\n\n _confirmation: function(row) {\n var that = this,\n editable = that.options.editable,\n confirmation = (editable === true || typeof editable === STRING) ? that.options.messages.editable.confirmation : editable.confirmation;\n\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\n if (confirmation !== false && confirmation != null) {\n\n if (typeof confirmation === FUNCTION) {\n confirmation = confirmation(that._modelForContainer(row));\n }\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\n return true;\n },\n\n cancelChanges: function() {\n var that = this;\n\n that.dataSource.cancelChanges();\n\n if (that._isVirtualEditable()) {\n that._virtualPageToTop(function() {\n that.virtualScrollable.scrollToTop();\n });\n }\n },\n\n saveChanges: function() {\n var that = this;\n var valid = that.editable && that.editable.end();\n\n if ((valid || !that.editable) && !that.trigger(SAVECHANGES)) {\n that.dataSource.sync();\n } else if (!valid) {\n that._scrollVirtualWrapper();\n }\n },\n\n addRow: function() {\n var that = this,\n index,\n dataSource = that.dataSource,\n mode = that._editMode(),\n createAt = that.options.editable.createAt || \"\",\n pageSize = dataSource.pageSize(),\n view = dataSource.view() || [];\n var createAtBottom = createAt.toLowerCase() === BOTTOM;\n var model;\n var virtualEditable = that._isVirtualEditable();\n\n if ((that.editable && that.editable.end()) || !that.editable) {\n if (mode != \"incell\") {\n that.cancelRow();\n }\n\n index = dataSource.indexOf(view[0]);\n\n if (createAtBottom) {\n index += view.length;\n\n if (pageSize && !dataSource.options.serverPaging && pageSize <= view.length) {\n index -= 1;\n }\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\n if (that.options.navigatable && mode == \"incell\") {\n that._removeCurrent();\n }\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\n _editModel: function(model) {\n var that = this;\n var createAt = that.options.editable.createAt || \"\";\n var mode = that._editMode();\n\n if (model) {\n var id = model.uid,\n table = that.lockedContent ? that.lockedTable : that.table,\n row = table.find(\"tr[\" + kendo.attr(\"uid\") + \"=\" + id + \"]\"),\n cell = row.children(\"td:not(.k-group-cell,.k-hierarchy-cell)\").eq(that._firstEditableColumnIndex(row));\n\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\n if (createAt.toLowerCase() == \"bottom\" && that.lockedContent) {\n //scroll the containers to the bottom\n that.lockedContent[0].scrollTop = that.content[0].scrollTop = that.table[0].offsetHeight;\n }\n }\n },\n\n _virtualAddRow: function() {\n var that = this;\n var createAtBottom = (that.options.editable.createAt || \"\").toLowerCase() === BOTTOM;\n\n that._clearEditableState();\n\n if (createAtBottom) {\n that._virtualAddRowAtBottom();\n } else {\n that._virtualAddRowAtTop();\n }\n },\n\n _virtualAddRowAtTop: function() {\n var that = this;\n var dataSource = that.dataSource;\n var virtualScrollable = that.virtualScrollable;\n var model;\n\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\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\n if (dataSource.at(index - 1) instanceof ObservableObject) {\n model = dataSource.insert(index, {});\n\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\n _virtualPageToTop: function(callback) {\n var that = this;\n\n that._virtualPage(0, that.dataSource.take(), function() {\n callback();\n });\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\n that._virtualPage(skip, take, function() {\n callback();\n });\n },\n\n _virtualPage: function(skip, take, callback) {\n var that = this;\n\n if (that._isVirtualEditable()) {\n that.virtualScrollable._preventScroll = true;\n that.virtualScrollable._page(skip, take, callback);\n }\n },\n\n _firstEditableColumnIndex: function(container) {\n var that = this,\n column,\n columns = leafColumns(that.columns),\n idx,\n length,\n model = that._modelForContainer(container);\n\n for (idx = 0, length = columns.length; idx < length; idx++) {\n column = columns[idx];\n\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\n _toolbar: function() {\n var that = this,\n wrapper = that.wrapper,\n toolbar = that.options.toolbar,\n editable = that.options.editable,\n container;\n\n if (toolbar) {\n container = that.wrapper.find(\".k-grid-toolbar\");\n\n if (!container.length) {\n if (!isFunction(toolbar)) {\n toolbar = (typeof toolbar === STRING ? toolbar : that._toolbarTmpl(toolbar).replace(templateHashRegExp, \"\\\\#\"));\n toolbar = kendo.template(toolbar).bind(that);\n }\n\n container = $('
    ')\n .html(toolbar({}))\n .prependTo(wrapper);\n\n that.angular(\"compile\", function() {\n return { elements: container.get() };\n });\n }\n\n if (editable && editable.create !== false) {\n container.on(CLICK + NS, \".k-grid-add\", function(e) { e.preventDefault(); that.addRow(); })\n .on(CLICK + NS, \".k-grid-cancel-changes\", function(e) { e.preventDefault(); that.cancelChanges(); })\n .on(CLICK + NS, \".k-grid-save-changes\", function(e) { e.preventDefault(); that.saveChanges(); });\n }\n\n container.on(CLICK + NS, \".k-grid-excel\", function(e) {\n e.preventDefault();\n\n that.saveAsExcel();\n });\n\n container.on(CLICK + NS, \".k-grid-pdf\", function(e) {\n e.preventDefault();\n\n var promise = that.saveAsPDF();\n if (promise) {\n promise.done(function() {\n that._pdfInitialized = false;\n });\n }\n });\n\n container.on(INPUT + NS, \".k-grid-search input\", function(e) {\n var input = e.currentTarget;\n clearTimeout(that._searchTimeOut);\n that._searchTimeOut = setTimeout(function() {\n that._searchTimeOut = null;\n var options = that.options;\n var searchFields = options.search ? options.search.fields : null;\n var expression = { filters: [], logic: \"or\" };\n var value = input.value;\n\n if (!searchFields) {\n searchFields = getColumnsFields(options.columns);\n }\n\n if (that.dataSource.options.endless) {\n that.dataSource.options.endless = null;\n that._endlessPageSize = that.dataSource.options.pageSize;\n }\n\n if (value) {\n for (var i = 0; i < searchFields.length; i++) {\n that._pushExpression(expression.filters, searchFields[i], value);\n }\n } else {\n expression = {};\n }\n\n that.dataSource.filter(expression);\n\n }, 300);\n });\n }\n },\n\n _pushExpression: function(filters, field, value) {\n var that = this,\n isServerFiltering = that.dataSource.options.serverFiltering,\n defaultOperators = {\n string: \"contains\",\n number: \"gte\",\n date: \"gte\",\n enums: \"eq\",\n boolean: \"eq\"\n },\n name = field.name || field,\n operator = field.operator,\n modelInfo = that.dataSource.reader.model && that.dataSource.reader.model.fields,\n fieldInfo = modelInfo && modelInfo[name],\n parseFn = fieldInfo && fieldInfo.parse,\n expression = {\n field: name,\n operator: operator || defaultOperators.string,\n value: value\n };\n\n if ((operator || isServerFiltering) && fieldInfo && kendo.isFunction(parseFn) && parseFn(value) !== null) {\n extend(expression, {\n operator: operator || defaultOperators[fieldInfo.type],\n value: parseFn(value)\n });\n }\n\n if (isServerFiltering && fieldInfo && kendo.isFunction(parseFn) && parseFn(value) === null) {\n return;\n }\n\n filters.push(expression);\n },\n\n _toolbarTmpl: function(commands) {\n var that = this,\n idx,\n length,\n html = \"\",\n command,\n searchText = \"\",\n messages = that.options.messages.commands;\n\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 html += \"\";\n } else {\n html += that._createButton(commands[idx]);\n }\n }\n }\n\n return html;\n },\n\n _createButton: function(command) {\n var button,\n template = command.template || COMMANDBUTTONTMPL,\n commandName = typeof command === STRING ? command : command.name || command.text,\n className = defaultCommands[commandName] ? defaultCommands[commandName].className : \"k-grid-\" + (commandName || \"\").replace(/\\s/g, \"\"),\n options = { className: className, text: commandName, attr: \"\", iconClass: \"\" },\n messages = this.options.messages.commands,\n attributeClassMatch;\n\n if (!commandName && !(isPlainObject(command) && command.template)) {\n throw new Error(\"Custom commands should have name specified\");\n }\n\n if (isPlainObject(command)) {\n command = extend(true, {}, command);\n\n if (command.className && inArray(options.className, command.className.split(\" \")) < 0) {\n command.className += \" \" + options.className;\n } else if (command.className === undefined$1) {\n command.className = options.className;\n }\n\n if (command.className.indexOf(\"k-primary\") > -1) {\n command.className = command.className.replace(\"k-primary\", \"\");\n command.themeColor = \"primary\";\n }\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\n if (command.attr) {\n if (isPlainObject(command.attr)) {\n command.attr = stringifyAttributes(command.attr);\n }\n\n if (typeof command.attr === STRING) {\n attributeClassMatch = command.attr.match(/class=\"(.+?)\"/);\n\n if (attributeClassMatch && inArray(attributeClassMatch[1], command.className.split(\" \")) < 0) {\n command.className += \" \" + attributeClassMatch[1];\n }\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\n button = kendo.template(template)(options);\n\n if (!command.template) {\n return kendo.html.renderButton($(button), options);\n } else {\n return button;\n }\n },\n\n _hasFooters: function() {\n return !!this.footerTemplate ||\n !!this.groupFooterTemplate ||\n (this.footer && this.footer.length > 0) ||\n this.wrapper.find(\".k-grid-footer\").length > 0;\n },\n\n _groupable: function() {\n var that = this;\n\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),\n groupRow = element.closest(\"tr\");\n\n var group = that._groupRows ? that._groupRows[that.wrapper.find(\".k-grouping-row\").index(groupRow)] : { };\n\n if (element.hasClass('k-i-collapse')) {\n if (!that.trigger(\"groupCollapse\", { group: group, element: groupRow })) {\n that.collapseGroup(groupRow);\n }\n } else {\n if (!that.trigger(\"groupExpand\", { group: group, element: groupRow })) {\n that.expandGroup(groupRow);\n }\n }\n e.preventDefault();\n e.stopPropagation();\n };\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\n that._attachGroupable();\n },\n\n _attachGroupable: function() {\n var that = this,\n wrapper = that.wrapper,\n groupable = that.options.groupable,\n draggables = HEADERCELLS + \"[\" + kendo.attr(\"field\") + \"]\",\n filter = that.content ? \".k-grid-header:first \" + draggables : \"table:first>.k-grid-header \" + draggables;\n\n if (groupable && groupable.enabled !== false) {\n if (!wrapper.has(\"div.k-grouping-header\")[0]) {\n $(\"
     
    \").addClass(\"k-grouping-header\").prependTo(wrapper);\n }\n\n if (that.groupable) {\n that._destroyGroupable();\n }\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\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 removeGroup: function(e) {\n that._showUngroupedColumn(e);\n },\n change: function(e) {\n if (that.trigger(\"group\", { groups: e.groups })) {\n e.preventDefault();\n } else {\n that._clearEditableState();\n that._hideGroupedColumns(e.groups);\n if (that.dataSource.options.endless) {\n that._resetEndless();\n }\n }\n }\n }));\n\n that._addGroupableOptionsToHeader();\n }\n },\n\n _showUngroupedColumn: function(group) {\n var columns = leafColumns(this.columns);\n var i;\n\n for (i = 0; i < columns.length; i++) {\n if (columns[i].uid == group.colID && columns[i].hideOnGroup) {\n this.showColumn(columns[i]);\n }\n }\n },\n\n _hideGroupedColumns: function(groups) {\n if (!groups) {\n return;\n }\n var columns = leafColumns(this.columns);\n var fields = [];\n var i;\n\n for (i = 0; i < groups.length; i++) {\n if (groups[i].colID) {\n fields.push(groups[i].colID);\n }\n }\n\n for (i = 0; i < columns.length; i++) {\n if (fields.indexOf(columns[i].uid) >= 0 && columns[i].hideOnGroup) {\n this.hideColumn(columns[i]);\n }\n }\n },\n\n _resetEndless: function() {\n var that = this;\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 _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\n for (i = 0; i < columns.length; i++) {\n field = columns[i].field;\n columnFieldMap[columns[i].field] = columns[i];\n }\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\n if (columnOptions && columnOptions.groupable && columnOptions.groupable.sort) {\n headerCell.data(GROUP_SORT, columnOptions.groupable.sort);\n }\n }\n },\n\n _destroyGroupable: function() {\n var that = this;\n\n if (that.groupable && that.groupable.element) {\n that.groupable.element.kendoGroupable(\"destroy\");\n }\n\n that.groupable = null;\n\n that._removeGroupableOptionsFromHeader();\n },\n\n _removeGroupableOptionsFromHeader: function() {\n var that = this;\n var headerCells = that._headerCells();\n\n for (var i = 0; i < headerCells.length; i++) {\n headerCells.eq(i).removeData(GROUP_SORT);\n }\n },\n\n _continuousItems: function(filter, cell) {\n if (!this.lockedContent) {\n return;\n }\n\n var that = this;\n\n var elements = that.table.add(that.lockedTable);\n\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\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\n return result;\n },\n\n _selectable: function() {\n var that = this,\n multi,\n cell,\n notString = [],\n isLocked = that._isLocked(),\n selectable = that.options.selectable;\n\n if (selectable) {\n\n if (that.selectable) {\n that.selectable.destroy();\n }\n\n that._selectedIds = {};\n\n selectable = kendo.ui.Selectable.parseOptions(selectable);\n\n multi = selectable.multiple;\n cell = selectable.cell;\n\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\n notString = notString.join(\",\");\n\n if (notString !== \"\") {\n notString = \":not(\" + notString + \")\";\n }\n\n var elements = that.table;\n if (isLocked) {\n elements = elements.add(that.lockedTable);\n }\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 dragToSelect: that.options.selectable && that.options.selectable.dragToSelect,\n change: function(e) {\n var selectedValues;\n if (!cell) {\n that._persistSelectedRows();\n }\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\n if (e.event) {\n that.trigger(CHANGE);\n }\n },\n useAllItems: isLocked && multi && cell,\n relatedTarget: function(items) {\n if (cell || !isLocked) {\n return;\n }\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\n if (inArray(related[0], items) < 0) {\n result = result.add(related);\n }\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\n if (that.options.navigatable) {\n elements.on(\"keydown\" + NS, function(e) {\n var current = that.current();\n var target = e.target;\n var eventObject = { event: e };\n var triggerChange;\n var lastSelection;\n if (!current) {\n return;\n }\n if (e.keyCode === keys.SPACEBAR && !e.shiftKey && $.inArray(target, elements) > -1 &&\n !current.is(\".k-edit-cell,.k-header\") &&\n 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 triggerChange = !current.hasClass(SELECTED) || that.selectable.value().length > 1;\n\n if (isLocked && !cell) {\n current = current.add(that._relatedRow(current));\n }\n\n if (multi) {\n if (!e.ctrlKey) {\n that.selectable.clear();\n } else {\n if (current.hasClass(SELECTED)) {\n that._deselectCheckRows(current);\n that.trigger(CHANGE);\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 if (triggerChange) {\n that.trigger(CHANGE);\n }\n } else if (!cell &&\n ($(target).is(\"td\") || ($(target).is(\"table\") && inArray(target, this._navigatableTables))) &&\n ((e.shiftKey && e.keyCode == keys.LEFT) ||\n (e.shiftKey && e.keyCode == keys.RIGHT) ||\n (e.shiftKey && e.keyCode == keys.UP) ||\n (e.shiftKey && e.keyCode == keys.DOWN) ||\n (e.keyCode === keys.SPACEBAR && e.shiftKey))) {\n e.preventDefault();\n e.stopPropagation();\n current = current.parent();\n\n lastSelection = that.selectable.value();\n\n if (isLocked) {\n current = current.add(that._relatedRow(current));\n }\n\n if (multi) {\n if (!that.selectable._lastActive) {\n that.selectable._lastActive = current;\n }\n that.selectable.selectRange(that.selectable._firstSelectee(), current);\n\n if (!compareElements(lastSelection, that.selectable.value())) {\n that.trigger(CHANGE, eventObject);\n }\n } else if (!current.hasClass(\"k-selected\")) {\n that.selectable.clear();\n that.selectable.value(current);\n that.trigger(CHANGE);\n }\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.attr(TABINDEX, 0);\n\n grid.table.add(grid.lockedTable)\n .on(\"mousedown\" + NS + \" keydown\" + NS, \".k-detail-cell\", function(e) {\n if (e.target !== e.currentTarget) {\n e.stopImmediatePropagation();\n }\n })\n .on(\"mousedown\" + NS, NAVROW + \">\" + NAVCELL, tableClick.bind(grid));\n }\n grid.copyHandler = grid.copySelection.bind(grid);\n grid.updateClipBoardState = function() {\n if (grid.areaClipBoard) {\n grid.areaClipBoard.val(grid.getTSV()).trigger(\"focus\").select();\n }\n };\n grid.bind(\"change\",grid.updateClipBoardState);\n grid.wrapper.on(\"keydown\", grid.copyHandler);\n grid.clearAreaHandler = grid.clearArea.bind(grid);\n grid.wrapper.on(\"keyup\", grid.clearAreaHandler);\n }\n },\n\n copySelectionToClipboard: function(includeHeaders) {\n this._createAreaClipBoard();\n this.areaClipBoard.val(this.getTSV(includeHeaders)).trigger(\"focus\").select();\n document.execCommand('copy');\n },\n\n copySelection: function(e) {\n if ((e instanceof jQuery.Event && !(e.ctrlKey || e.metaKey)) ||\n $(e.target).is(\"input:visible,textarea:visible\") ||\n (window.getSelection && window.getSelection().toString()) ||\n (document.selection && document.selection.createRange().text) ) {\n return;\n }\n\n this._createAreaClipBoard();\n this.areaClipBoard.val(this.getTSV()).trigger(\"focus\").select();\n\n },\n\n _createAreaClipBoard: function() {\n if (!this.areaClipBoard) {\n this.areaClipBoard =\n $(\"