{"version":3,"file":"kendo.grid.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendogrid","js","this","$","undefined$1","kendo","window","ContextMenu","ui","extend","encode","htmlEncode","ACTION","GridContextMenu","init","element","options","that","fn","call","_overrideTemplates","_extendItems","bind","_onSelect","_onOpen","templates","sprite","icon","spriteCssClass","iconClass","defaultItems","separator","name","create","text","command","rules","edit","destroy","select","items","softRules","copySelection","copySelectionNoHeaders","paste","reorderRow","exportPDF","exportExcel","sortAsc","sortDesc","moveGroupPrevious","moveGroupNext","events","concat","ev","item","data","split","map","val","indexOf","key","reduce","acc","v","Object","assign","target","action","menu","sender","elTarget","event","isEmptyObject","closest","length","preventDefault","_toggleSeparatorVisibility","find","attr","each","i","enable","_validateSoftRules","filter","prev","next","hide","isPlainObject","keys","_append","_extendItem","messages","j","forEach","subItem","commands","uid","guid","_readState","_validateRules","tool","state","states","isFunction","append","args","trigger","grid","jQuery","Command","Class","MoveGroupCommand","exec","groupable","method","dir","_change","SortCommand","idx","dataSource","sort","field","_getCellField","multipleMode","sortable","mode","compare","splice","push","AddCommand","addRow","EditCommand","inCellMode","_editMode","editCell","editRow","DeleteCommand","removeRow","CopySelectionCommand","withHeaders","copySelectionToClipboard","SelectRowCommand","selectMode","Selectable","parseOptions","selectable","cell","SelectAllRowsCommand","rows","ClearSelectionCommand","clearSelection","ReorderRowCommand","newIndex","index","reorderRowTo","ExportPDFCommand","saveAsPDF","ExportExcelCommand","selection","exportSelectedToExcel","saveAsExcel","GridCommand","GroupsPager","DataSource","ObservableObject","tbodySupportsInnerHtml","support","tbodyInnerHtml","activeElement","_activeElement","Widget","outerWidth","_outerWidth","outerHeight","_outerHeight","getType","type","grep","isArray","Array","inArray","prototype","contains","math","Math","DOT","PROGRESS","ERROR","DATA_CELL","DATA_CELL_HIDDENINCLUDED","NAVROW","NAVCELL","ITEMROW","COLGROUP","HEADERCELLS","CARET_ALT_DOWN","CARET_ALT_RIGHT","CARET_ALT_RIGHT_CACHE","NS","EDIT","BEFOREEDIT","SAVE","REMOVE","DETAILINIT","FILTERMENUINIT","COLUMNMENUINIT","FILTERMENUOPEN","COLUMNMENUOPEN","CELLCLOSE","CHANGING","CHANGE","COLUMNHIDE","COLUMNSHOW","SAVECHANGES","DATABOUND","DETAILEXPAND","DETAILCOLLAPSE","ITEM_CHANGE","PAGE","PAGING","PASTE","SCROLL","SYNC","LOAD_START","LOAD_END","FOCUSED","HOVER","ACTIVE","FOCUSABLE","SELECTED","CHECKBOX","CHECKBOXINPUT","NORECORDSCLASS","LINK_CLASS","ICON_CLASS","SVG_ICON_CLASS","ORDER_CLASS","SORTED_CLASS","HEADER_CLASS","HEADER_COLUMN_MENU_CLASS","FILTER_MENU_CLASS","STICKY_CELL_CLASS","STICKY_HEADER_CLASS","STICKY_FOOTER_CLASS","STICKY_HEADER_NO_BORDER_CLASS","GROUPING_ROW","RESIZE","ROWRESIZE","COLUMNRESIZE","COLUMNREORDER","COLUMNLOCK","COLUMNUNLOCK","COLUMNSTICK","COLUMNUNSTICK","ROWREORDER","NAVIGATE","CLICK","MOUSEDOWN","MOUSEUP","MOUSEENTER","MOUSELEAVE","MOUSEMOVE","DUBLECLICK","HEIGHT","WIDTH","AUTO","TABINDEX","FUNCTION","STRING","BOTTOM","CONTAINER_FOR","FIELD","INPUT","INCELL","INLINE","OVERFLOW","SORT","GROUP_SORT","COLLAPSE","EXPAND","ID","PX","TR","DIV","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","whitespaceRegExp","nonDataCellsRegExp","RegExp","filterRowRegExp","COMMANDBUTTONTMPL","className","DEFAULTSELECTCOLUMNTMPL","size","ariaLabel","SELECTCOLUMNTMPL","SELECTCOLUMNHEADERTMPL","DRAGHANDLECOLUMNTMPL","DEFAULTHEADERTEMPLATE","isRtl","browser","isIE11","msie","version","isMac","test","navigator","userAgent","classNames","defaultBodyContextMenu","defaultHeadContextMenu","defaultGroupsContextMenu","Pager","useRanges","_omitPrefetch","totalPages","ceil","_collapsedTotal","pageSize","groupsTotal","VirtualScrollable","_refreshHandler","refresh","setDataSource","wrap","unbind","virtual","itemHeight","noop","prefetch","maxScrollHeight","wrapper","add","verticalScrollbar","off","clearTimeout","_timeout","_scrollingTimeout","drag","scrollbar","css","width","overflow","content","children","first","parent","on","_wheelScroll","_wrapper","kineticScrollNeeded","touch","UserEvents","allowSelection","start","e","capture","move","scrollTop","y","delta","scrollLeft","x","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","setTimeout","_page","take","scrollToTop","_scrollTo","scrollToBottom","_scrollWrapperToTop","_scrollWrapperToBottom","_scrollWrapperOnColumnResize","initialScrollTop","scrollWidth","clientWidth","_wrapperScrolled","_isScrolledToBottom","_isWrapperScrolledToBottom","_isScrolledToTop","parseInt","itemIndex","rowIndex","position","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","maxHeight","wrapperElement","wasScrolledToBottom","addScrollBarHeight","offsetWidth","divElements","join","empty","cancel","page","attrEquals","attrName","attrValue","groupCells","count","stringifyAttributes","attributes","defaultCommands","save","themeColor","update","canceledit","excel","pdf","search","columns","fillMode","cursor","context","value","document","body","reorder","selector","source","dest","before","sourceIndex","eq","elements","lockedContent","attachCustomCommandEvent","commandName","click","replace","normalizeColumns","encoded","locked","parentIds","column","hidden","Function","_attributesFunction","isVisible","addHiddenStyle","footerAttributes","headerAttributes","removeHiddenStyle","headers","id","columnParent","parents","columnParents","inserted","setColumnVisibility","visible","setVisibility","show","setColumnMediaVisibility","setColumnMatchesMedia","_hideByMedia","matchesMedia","columnMatchesMedia","isUndefined","media","isCellVisible","style","display","visibleColumns","columnsWithMedia","minScreenWidth","Error","toJQuery","toArray","findColumnByField","moveCellsBetweenContainers","sources","leafs","destination","groups","sourcesDepth","depth","targetDepth","insertAfter","last","cells","rowSpan","addRowSpanValue","moveCells","updateCellIndex","thead","offset","allColumns","leafColumns","el","hasClass","columnPosition","temp","sourcePosition","columnVisiblePosition","ths","t","cellCounts","decorateCellWithClass","html","classes","match","cssClasses","pop","findReorderTarget","masterColumns","parentColumns","rtl","targetLocked","findParentColumnWithChildren","targetIndex","flatColumnsInDomOrder","flatColumns","lockedColumns","nonLockedColumns","targetParentContainerIndex","hiddenLeafColumnsCount","counter","sumWidths","cols","columnsWidth","colWidth","removeEmptyRows","emptyRowsCount","remove","mapColumnToCellRows","setLeftAndRightStyles","left","right","createColumnAttribute","attribute","property","addColumnAttribute","removeColumnAttribute","removeAttributeProperty","stickyColumns","sticky","visibleNonLockedColumns","visibleLockedColumns","visibleLeafColumns","visibleLeafExportColumns","values","title","childColumns","visibleChildColumns","getColumnsFields","editField","format","editor","editorOptions","label","leafDataCells","indexAttr","a","b","indexA","indexB","parentColumnsCells","headerRows","level","parentCellsWithChildren","prevCells","prevAll","colSpan","parentCell","getAttribute","childColumnsCells","colSpanAttr","child","appendContent","tbody","table","placeholder","tmp","$html","applyStylesFromKendoAttributes","_","appendChild","createElement","innerHTML","addClass","getValidCssClass","firstChild","replaceChild","kendoStyleAttrObject","normalizeCols","hasDetails","colgroup","is","prepend","convertToObject","array","formatGroupValue","columnValues","groupValue","setCellVisibility","pad","classList","hideColumnCells","columnIndex","groupRows","hasSubgroups","showColumnCells","updateColspan","toAdd","toRemove","num","tableWidth","Grid","DataBoundWidget","_events","_element","_ariaId","_columns","_foreignKeyPromises","when","apply","then","_continueInit","_dataSource","_stickyColumns","_tbody","_thead","_rowResizing","_groupable","_toolbar","columnsToolbarButton","_globalColumnsMenu","_pageable","_setContentHeight","_templates","_navigatable","_initSelectableAggregates","_selectable","_statusBar","_clipboard","_paste","_details","_editable","_attachCustomCommandsEvent","_adaptiveColumns","_minScreenSupport","autoBind","fetch","_group","_groups","_footer","contextMenu","_initContextMenu","_resizeHandler","resize","_initLoader","notify","_showWatermarkOverlay","scrollableContent","scrollable","leftMostPosition","virtualScrollable","navigatable","toolbar","filterable","allowCopy","allowPaste","pageable","persistSelection","editable","encodeTitles","rowTemplate","altRowTemplate","statusBarTemplate","noRecords","resizable","reorderable","columnMenu","detailTemplate","columnResizeHandleWidth","mobile","loaderType","loader","loading","exporting","cancelDelete","confirmation","confirmDelete","selectRow","selectAllRows","reorderRowUp","reorderRowDown","reorderRowTop","reorderRowBottom","exportPdf","exportToExcelAll","exportToExcelSelection","exportToExcelSelectionNoHeaders","expandCollapseColumnHeader","groupHeader","ungroupHeader","itemsSelected","dragHandleLabel","toolbarLabel","groupingHeaderLabel","filterCellTitle","reorderableInstance","_destroyColumnAttachments","_navigatableTables","_headertables","pager","timer","_progressTimeOut","_collapseGroupsTimeOut","_endlessFetchTimeOut","_destroyGroupable","pasteHandler","pasteActionsDropDownList","clearArea","_selectedIds","copyHandler","updateClipBoardState","clearAreaHandler","_selectableAggregatesOptions","_resizeUserEvents","_resizeHandleDocumentClickHandler","_destroyRowResizing","_destroyVirtualScrollable","editableUserEvents","_lockedContentUserEvents","_destroyEditable","_progressHandler","_errorHandler","_clearSortClasses","_sortHandler","scrollables","lockedHeader","_removeLockedContainers","pane","_isMobile","minScreenResizeHandler","_detachColumnMediaResizeHandler","_draggableInstance","_draggableRowsInstance","tbodyContextMenu","theadContextMenu","lockedRowTemplate","lockedAltRowTemplate","footerTemplate","groupFooterTemplate","lockedGroupFooterTemplate","noRecordsTemplate","statusBar","footer","lockedTable","lockedFooter","_groupableClickHandler","_groupRows","_setContentWidthHandler","loaderOverlay","wrapperClone","getOptions","deepExtend","initialData","_data","group","aggregate","transport","setOptions","currentOptions","mobileWrapper","roleSelector","after","removeClass","_setEvents","_items","includeGroupRows","tr","dataItems","n","resizeHandle","th","filterMenu","_aria","tbodyId","headerGroupId","footerGroupId","tableOwned","rowsCount","gridRole","_hasDetails","groupingHeader","gridId","_ariaGridId","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","current","currentIndex","lockedParent","setAttribute","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","_adjustColWidths","colWidths","_resizable","columnStart","isMobile","Resizable","handle","hint","location","rtlMultiplier","currentWidth","resizeend","newWidth","oldWidth","_addLockedRowResizing","_getMinRowHeight","minHeight","currentMinHeight","_cacheRowHeight","_cachedRowsHeight","_clearCachedRowsHeight","_mapCachedRowsHeight","input","ds","output","_rowResizerDblClick","newHeight","resizer","rowResizer","oldHeight","rowPair","pairMinHeight","_setupRowResizer","_attachRowResizerEvents","isIn","_getResizerTop","inner","paddingTop","getComputedStyle","_getResizerContainer","_createRowResizer","targetHeight","positionIntarget","offsetY","previousRow","_detachRowResizerEvents","_mapResizedRows","multiSelectionLocked","pairNew","pairMin","r","rowStart","rowResizing","_draggable","kendoDraggable","autoScroll","dragstart","dragend","_reorderable","kendoReorderable","draggable","dropFilter","dragOverContainers","lockable","inSameContainer","sourceParent","targetParent","_isLocked","change","oldIndex","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","clickMoveClick","holdToDrag","showHintOnHold","preventOsHoldFeatures","clone","elm","innerText","cursorOffset","_reorderableRows","smartPosition","allowIcon","orientation","reorderDropCue","positionDropCue","dropTarget","firstCellLeft","getOffset","transform","externalDraggable","_triggerRowRorder","reorderRows","dataItem","pushMove","rowsLength","targetItem","_rowDropping","autoFitColumns","headerTable","leafCols","minWidth","contentDiv","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","getByUid","_calculateColumnIndex","virtualOffset","useDoubleTapEditing","editContainer","_editContainer","_mousedownOnEditCell","supportDoubleTap","fastTap","isLockedCell","has","end","closeCell","_scrollVirtualWrapper","shouldCloseCell","_virtualColScroll","_belongsToGrid","_isVirtualInlineEditable","stopPropagation","_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","dirtyFields","_displayCell","ns","storage","settings","Template","templateSettings","tmpl","template","_cellTmpl","_removeRow","schema","cancelRow","_removeGroupIfEmpty","idField","sync","_createPopupEditor","_createInlineEditor","_editCancelClick","_editUpdateClick","saveRow","_setCurrent","focusTable","_editFields","updateText","cancelText","updateIconClass","cancelIconClass","tempCommand","editMenuGuid","unescape","getCommand","updateButton","_createButton","skipCommandClass","cancelButton","kendoWindow","modal","_footerTemplate","outerHTML","userTriggered","clearContainer","Form","buttonsTemplate","formData","buttonsHTML","_openPopUpEditor","windowEditor","windowOptions","_editAnimation","center","open","Editable","cancelChanges","_displayRow","valid","deferred","Deferred","reject","promise","resolve","related","newRow","nextRow","isSelected","isAlt","replaceWith","_showMessage","Confirm","preventScroll","closable","okText","done","fail","confirmDialog","confirm","_shouldMapHights","_isVirtualEditable","_virtualPageToTop","saveChanges","createAt","view","createAtBottom","toLowerCase","virtualEditable","serverPaging","_removeCurrent","_virtualAddRow","insert","_editModel","_firstEditableColumnIndex","_virtualAddRowAtBottom","_virtualAddRowAtTop","at","_virtualPageToBottom","_virtualPage","_clickAdd","_clickCancel","_clickExcel","_isExport","_progress","always","_clickPdf","_pdfInitialized","_clickSave","_searchInput","_searchTimeOut","searchFields","expression","filters","logic","endless","_endlessPageSize","_pushExpression","_pasteToolbarDropDown","kendoDropDownList","dataTextField","dataValueField","_allowFilterPaste","isServerFiltering","serverFiltering","defaultOperators","string","number","date","enums","boolean","operator","modelInfo","reader","fieldInfo","parseFn","parse","_createClickHandler","_addClickHandler","_cancelClickHandler","_saveClickHandler","_excelClickHandler","_pdfClickHandler","_serachHandler","_attachToolbarClicks","prependTo","_processItems","kendoToolBar","navigateOnTab","tools","itemsCollectionHasSpacer","searchText","_processAttr","keyValue","replaceAll","attributeClassMatch","renderButton","_hasFooters","groupRow","collapseGroup","expandGroup","_attachGroupable","draggables","enabled","chrome","Groupable","groupContainer","draggableElements","allowDrag","enableContextMenu","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","hasSkeletonLoader","checkboxSelection","multiple","aria","toggleable","dragToSelect","changing","originalEvent","selectedValues","_persistSelectedRows","_uncheckCheckBoxes","_checkRows","_toggleHeaderCheckState","_calculateAggregatesForSelected","cellAggregates","_cellAggregates","useAllItems","relatedTarget","continuousItems","ignoreOverlapped","addIdToRanges","triggerChange","lastSelection","eventObject","keyCode","SPACEBAR","shiftKey","_deselectCheckRows","clear","_lastActive","LEFT","RIGHT","UP","DOWN","selectRange","_firstSelectee","toCompare","compareElements","_pasteReplaceHandler","plain","currentRowUid","currentField","uids","f","nextAll","_executePaste","_pasteInsertHandler","dataItemIndex","selectedUids","_getSelectedRowUids","selectedColumnFields","_getSelectedColumnFields","changedItems","startingIndex","c","set","dirty","_pasteKeyboardHandler","rowUid","clipBoardData","clipboardData","operation","getData","trimEnd","_currentRowIndex","_restoreCurrent","stopImmediatePropagation","tableClick","areaClipBoard","getTSV","includeHeaders","_createAreaClipBoard","execCommand","Event","metaKey","getSelection","toString","createRange","opacity","selected","delimeter","hasLockedCols","cellsOffset","lockedCols","inLockedArea","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","selectedSingleItems","_mapSelectionToData","getSelectedDataByKeys","selectedKeyNames","columnMapHandler","get","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","ignoreOffset","curr","isRowSelection","nodeName","fieldAttr","indexOffset","_relatedCell","_parseSelectableAggregatesOptions","sum","average","earliest","latest","isTrue","isFalse","selectedData","cellsLength","columnFields","isCellSelection","numberAggregates","dateAggregates","booleanAggregates","$cell","hasCheckbox","hasWrappedCheckbox","Date","checked","prop","rangeSelectedAttr","modelId","allRows","selectedViewIds","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","F10","_focusToolbar","_moveUp","_moveDown","_moveRight","_moveLeft","PAGEDOWN","_handlePageDown","PAGEUP","_handlePageUp","_handleHome","_handleEnd","_handleSpaceKey","ENTER","F2","_handleEnterKey","ESC","_handleEscKey","TAB","_handleTabKey","focusable","currentTable","collapseRow","_moveColumn","_prevHorizontalCell","_tabNext","_horizontalContainer","expandRow","_nextHorizontalCell","_prevVerticalCell","_verticalContainer","_nextVerticalCell","_findVisibleCell","isLeft","ctrl","rowContainer","isInLockedTable","isInBody","filterFocusable","_handleEditing","active","isInCell","blur","_toggleCurrent","descriptors","aggregates","_canDrag","link","originalIndex","cellToFocus","_currentDataIndex","lockedColumnsCount","$newFocus","hiddenCount","prevUntil","nextCell","originalRow","up","step","back","switchRow","isEdited","isIE","_initMobile","groupsContextMenu","head","mainOptions","_action","_buildStates","showOn","isEditable","isSelectable","isSortable","isRowReorderable","isGroupable","alwaysDisabled","hasSelection","isSorted","canMoveGroupPrev","canMoveGroupNext","commandOptions","_createPane","Pane","viewEngine","viewOptions","renderOnInit","wrapInSections","detachOnHide","detachOnDestroy","defaultOptions","kendoLoader","_loaderContainer","toggle","message","overlayColor","renderLoaderContainer","insertBefore","_scrollable","asLowerString","parseVirtualSettings","_createVirtualScrollable","_scrollLeft","isScrollingLeft","originalPageSize","_endlessFetchInProgress","_skipRerenderItemsCount","_cacheEditableState","_restoreEditableState","movable","one","_averageRowHeight","scroll","_focusEditable","loadStart","loadEnd","_onVirtualPaging","_isVirtualPopupEditable","editableState","editedModel","inlineMode","incellMode","virtualColumns","_getByUid","editedField","_canFocusEditable","isElementVisibleInWrapper","widget","widgetInstance","_renderNoRecordsContent","noRecordsElement","_setContentWidth","expander","hiddenDivClass","hiddenDiv","isNaN","footerWrap","contentWidth","nonLockedCols","nonLockedColsWidth","initialHeight","scrollableHeight","itemsCount","_rowHeight","_sum","_measures","currentRowHeight","_requestStart","_error","relatedRow","selectableRow","childCells","originalCells","tmpResult","pagerWrap","_groupPaging","_togglePagerVisibility","_wrapFooter","_appendLockedColumnFooter","footerRow","_appendCols","menuOptions","autoSize","clearAllFilters","columnsExpanderOptions","expanded","animation","hideExpanderIndicator","hideAutoSizeColumn","owner","closeCallback","componentType","kendoColumnMenu","_columnMenu","hasMultiColumnHeaders","hasLockableColumns","hasStickableColumns","stickable","initCallback","openCallback","stickCallback","unstickCallback","filterHandler","forceUnique","checkSource","stick","unstick","filtering","_hasFilterMenu","_filterable","filterInit","filterOpen","columnFilterable","kendoFilterMultiCheck","kendoFilterMenu","_filterRow","rowheader","_updateHeader","suggestDataSource","operators","customDataSource","cellOptions","delay","inputWidth","suggestionOperator","minLength","showOperators","kendoFilterCell","_sortable","sorterInstance","kendoColumnSorter","draggableColumns","initialColumns","len","normalizeHeaderCells","_updateColumnIDs","_checkboxClick","_headerCheckboxClick","_foreignKeyBindings","_fetchForeignKeyValues","_hasBoundForeignKey","checkBox","isSelecting","_tmpl","alt","skipGroupCells","classAttribute","compiledAttributes","paramName","rowTemplateFunc","getter","rowTemplateResult","dirtyCellTemplate","_dirtyCellTemplate","columnAttributes","colSpanAttributes","charAt","_headerCellText","headerTemplate","_dirtyIndicatorTemplate","useWithBlock","fieldValue","_virtualCols","considerNext","widths","sumOfWidths","colsToRender","firstColspan","lastColspan","hiddenColumns","widthOfHiddenColumns","virtualCols","columnLeafs","columnsLocked","groupHeaderColumnTemplateLockedColumns","groupHeaderColumnTemplateNonLockedColumns","_detailTmpl","_footerTmpl","g","_groupHeaderTmpl","lockedGroupHeaderColumnTemplate","_noRecordsTmpl","scrollableNoGridHeightStyles","resultTemplate","currentCustomTemplate","templateName","rowClass","scope","fieldsMap","_emptyAggregates","headerTemplateIndex","resultHtml","groupCellBuilder","groupCellLockedContentBuilder","stickyAttributes","templateFunctionStorage","templateFunctionCount","hasFiltering","columnsWithoutFiltering","_toggleDetails","omitAnimation","detailRow","expanding","masterRow","masterRowIndex","ariaLabelText","ariaExpandText","detailCell","correctIdx","classesRegEx","sectionRowIndex","_createHeaderCells","currentTh","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","_setRowCachedHeight","$row","cachedHeight","_rowsHtml","cachedHeights","_groupData","skipFooter","firstColumn","footerDefaults","_groupAggregatesDefaultObject","groupItems","headerData","footerData","subgroupsCount","_groupRowHtml","groupHeaderBuilder","skipColspan","skipLastGroup","isLockedTable","groupData","firstVisibleColumnGroupHeaderTemplate","groupHeaderTemplate","currentItems","_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","_firstDataItem","grouped","headerCellIndex","_columnVisibilitySetter","_setParentsVisibility","_updateContentWidth","predicate","p","originalColumn","columnLeafIndex","_buildSkeleton","loaderHTML","columnsCount","skeleton","progress","_resize","force","_isActiveInTable","contentScrollLeft","cachedItemsToSkip","isCurrentInHeader","partialUpdate","flatView","changedItem","_renderContent","_renderLockedContent","contentResized","resetTouchEvents","_restoreSelection","selectedRows","dataItemKey","vc","_cleanupDetailItems","endlessAppend","flatViewLength","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","startingPage","draw","_destructive","pageNumber","pageNum","drawing","drawDOM","err","renderPage","restore","visibleInExport","visibleInExportOnly","_toggledDuringExport","_drawPDF","paperSize","doc","Group","exportPage","_drawPDFShadow","avoidLinks","plugin"],"sources":["kendo.grid.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.data.js'), require('kendo.columnsorter.js'), require('kendo.editable.js'), require('kendo.window.js'), require('kendo.filtermenu.js'), require('kendo.filtercell.js'), require('kendo.columnmenu.js'), require('kendo.groupable.js'), require('kendo.pager.js'), require('kendo.selectable.js'), require('kendo.sortable.js'), require('kendo.reorderable.js'), require('kendo.resizable.js'), require('kendo.ooxml.js'), require('kendo.excel.js'), require('kendo.pane.js'), require('kendo.pdf.js'), require('kendo.dialog.js'), require('kendo.switch.js'), require('kendo.html.button.js'), require('kendo.textbox.js'), require('kendo.form.js'), require('kendo.toolbar.js'), require('kendo.icons.js'), require('kendo.menu.js'), require('kendo.loader.js'), require('kendo.html.loadercontainer.js')) :\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.pdf', 'kendo.dialog', 'kendo.switch', 'kendo.html.button', 'kendo.textbox', 'kendo.form', 'kendo.toolbar', 'kendo.icons', 'kendo.menu', 'kendo.loader', 'kendo.html.loadercontainer'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendogrid = global.kendogrid || {}, global.kendogrid.js = factory()));\n})(this, (function () {\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n ContextMenu = ui.ContextMenu,\n extend = $.extend,\n encode = kendo.htmlEncode;\n\n var ACTION = \"action\";\n\n var GridContextMenu = ContextMenu.extend({\n init: function(element, options) {\n var that = this;\n\n ContextMenu.fn.init.call(that, element, options);\n\n that._overrideTemplates();\n that._extendItems();\n\n that.bind(\"select\", that._onSelect.bind(that));\n that.bind(\"open\", that._onOpen.bind(that));\n },\n\n _overrideTemplates: function() {\n this.templates.sprite = ({ icon, spriteCssClass }) => `${(icon || spriteCssClass) ? kendo.ui.icon({ icon: encode(icon || \"\"), iconClass: encode(spriteCssClass || \"\") }) : ''}`;\n },\n\n defaultItems: {\n \"separator\": { name: \"separator\", separator: true },\n \"create\": { name: \"create\", text: \"Add\", icon: \"plus\", command: \"AddCommand\", rules: \"isEditable\" },\n \"edit\": { name: \"edit\", text: \"Edit\", icon: \"pencil\", command: \"EditCommand\", rules: \"isEditable\" },\n \"destroy\": { name: \"destroy\", text: \"Delete\", icon: \"trash\", command: \"DeleteCommand\", rules: \"isEditable\" },\n \"select\": { name: \"select\", text: \"Select\", icon: \"table-body\", rules: \"isSelectable\", items: [\n { name: \"selectRow\", text: \"Row\", icon: \"table-row-groups\", command: \"SelectRowCommand\" },\n { name: \"selectAllRows\", text: \"All rows\", icon: \"grid\", command: \"SelectAllRowsCommand\" },\n { name: \"clearSelection\", text: \"Clear selection\", icon: \"table-unmerge\", softRules: \"hasSelection\", command: \"ClearSelectionCommand\" },\n ] },\n \"copySelection\": { name: \"copySelection\", text: \"Copy selection\", icon: \"page-header-section\", rules: \"isSelectable\", softRules: \"hasSelection\", command: \"CopySelectionCommand\", options: \"withHeaders\" },\n \"copySelectionNoHeaders\": { name: \"copySelectionNoHeaders\", text: \"Copy selection (No Headers)\", icon: \"file-txt\", rules: \"isSelectable\", softRules: \"hasSelection\", command: \"CopySelectionCommand\" },\n \"paste\": { name: \"paste\", text: \"Paste (use CTRL/⌘ + V)\", rules: \"allowPaste\", softRules: \"alwaysDisabled\", icon: \"clipboard\" },\n \"reorderRow\": { name: \"reorderRow\", text: \"Reorder row\", icon: \"caret-alt-expand\", rules: \"isRowReorderable\", softRules: \"isSorted\", items: [\n { name: \"reorderRowUp\", text: \"Up\", icon: \"caret-alt-up\", command: \"ReorderRowCommand\", options: \"dir:up\" },\n { name: \"reorderRowDown\", text: \"Down\", icon: \"caret-alt-down\", command: \"ReorderRowCommand\", options: \"dir:down\" },\n { name: \"reorderRowTop\", text: \"Top\", icon: \"caret-alt-to-top\", command: \"ReorderRowCommand\", options: \"dir:top\" },\n { name: \"reorderRowBottom\", text: \"Bottom\", icon: \"caret-alt-to-bottom\", command: \"ReorderRowCommand\", options: \"dir:bottom\" }\n ] },\n \"exportPDF\": { name: \"exportPDF\", text: \"Export to PDF\", icon: \"file-pdf\", command: \"ExportPDFCommand\" },\n \"exportExcel\": { name: \"exportExcel\", text: \"Export to Excel\", icon: \"file-excel\", items: [\n { name: \"exportToExcelAll\", text: \"All\", command: \"ExportExcelCommand\" },\n { name: \"exportToExcelSelection\", text: \"Selection\", command: \"ExportExcelCommand\", softRules: \"hasSelection\", options: \"selection,withHeaders\" },\n { name: \"exportToExcelSelectionNoHeaders\", text: \"Selection (No Headers)\", softRules: \"hasSelection\", command: \"ExportExcelCommand\", options: \"selection\" }\n ] },\n \"sortAsc\": { name: \"sortAsc\", text: \"Sort Ascending\", icon: \"sort-asc-small\", rules: \"isSortable\", command: \"SortCommand\", options: \"dir:asc\" },\n \"sortDesc\": { name: \"sortDesc\", text: \"Sort Descending\", icon: \"sort-desc-small\", rules: \"isSortable\", command: \"SortCommand\", options: \"dir:desc\" },\n \"moveGroupPrevious\": { name: \"moveGroupPrevious\", text: \"Move previous\", icon: \"arrow-left\", rules: \"isGroupable\", softRules: \"canMoveGroupPrev\", command: \"MoveGroupCommand\", options: \"dir:prev\" },\n \"moveGroupNext\": { name: \"moveGroupNext\", text: \"Move next\", icon: \"arrow-right\", rules: \"isGroupable\", softRules: \"canMoveGroupNext\", command: \"MoveGroupCommand\", options: \"dir:next\" }\n // \"filter\": { name: \"filter\", text: \"Filter\", icon: \"filter\", attr: { [kendo.attr(\"is-filter\")]: true }, items: [\n // { content: '
' }\n // ] },\n },\n\n events: ContextMenu.fn.events.concat([\n ACTION\n ]),\n\n _onSelect: function(ev) {\n var command = $(ev.item).data(\"command\");\n var options = $(ev.item).data(\"options\");\n options = options ? options.split(\",\")\n .map(val => {\n if (val.indexOf(\":\") > -1) {\n var [key, val] = val.split(\":\");\n return { [key || \"_\"]: val };\n }\n\n return { [val]: true };\n })\n .reduce((acc, v) => Object.assign(acc, v), {}) : {};\n\n var target = $(ev.target);\n\n if (!command) {\n return;\n }\n\n this.action({\n command: command,\n options: Object.assign(options, { target: target })\n });\n },\n\n _onOpen: function(ev) {\n var menu = ev.sender,\n items = menu.options.items,\n elTarget = $(ev.event ? ev.event.target : null);\n\n if ((!items && $.isEmptyObject(this.defaultItems)) || elTarget.closest(\".k-grid-column-menu\").length) {\n ev.preventDefault();\n return;\n }\n\n this._toggleSeparatorVisibility();\n\n menu.element.find(`[${kendo.attr('soft-rules')}]`).each((i, item) => {\n var rules = $(item).attr(kendo.attr('soft-rules')).split(\";\");\n menu.enable(item, this._validateSoftRules(rules, elTarget));\n });\n },\n\n _toggleSeparatorVisibility: function() {\n var that = this,\n items = that.element.find(\".k-item.k-separator\").filter((i, item) => {\n var prev = $(item).prev(\".k-item:not(.k-separator)\");\n var next = $(item).next(\".k-item:not(.k-separator)\");\n\n return !(prev.length && next.length);\n });\n\n items.hide();\n },\n\n _extendItems: function() {\n var that = this,\n items = that.options.items,\n item, isBuiltInTool;\n\n if (items && items.length) {\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n isBuiltInTool = $.isPlainObject(item) && Object.keys(item).length === 1 && item.name;\n\n if (isBuiltInTool) {\n item = item.name;\n }\n\n if ($.isPlainObject(item)) {\n that._append(item);\n } else if (that.defaultItems[item]) {\n item = that.defaultItems[item];\n that._append(item);\n } else if (typeof(item) === \"string\") {\n item = { name: item, text: item, spriteCssClass: item, command: item + \"Command\" };\n that._append(item);\n }\n }\n } else {\n for (var key in that.defaultItems) {\n item = that.defaultItems[key];\n that._append(item);\n }\n }\n },\n\n _extendItem: function(item) {\n var that = this,\n messages = that.options.messages,\n attr = item.attr || {};\n\n if (item.command) {\n attr[kendo.attr(\"command\")] = item.command;\n }\n\n if (item.options) {\n attr[kendo.attr(\"options\")] = item.options;\n }\n\n if (item.softRules) {\n attr[kendo.attr(\"soft-rules\")] = item.softRules;\n }\n\n if (item.items) {\n for (var j = 0; j < item.items.length; j++) {\n item.items.forEach(subItem => {\n that._extendItem(subItem);\n });\n }\n }\n\n extend(item, {\n text: messages.commands[item.name],\n icon: item.icon || \"\",\n spriteCssClass: item.spriteCssClass || \"\",\n attr: attr,\n uid: kendo.guid()\n });\n },\n\n _validateSoftRules: function(rules, target) {\n var that = this;\n\n if (!rules || !(rules && rules.length)) {\n return true;\n }\n\n for (var i = 0; i < rules.length; i++) {\n if (!this._readState(rules[i], target)) {\n return false;\n }\n }\n\n return true;\n },\n\n _validateRules: function(tool) {\n var that = this,\n rules = tool.rules ? tool.rules.split(\";\") : [];\n\n if (!rules.length) {\n return true;\n }\n\n for (var i = 0; i < rules.length; i++) {\n if (!this._readState(rules[i])) {\n return false;\n }\n }\n\n return true;\n },\n\n _readState: function(state, target) {\n var that = this,\n states = that.options.states;\n\n if (kendo.isFunction(states[state])) {\n return states[state](target);\n } else {\n return states[state];\n }\n },\n\n _append: function(item) {\n var that = this;\n\n that._extendItem(item);\n\n if (that._validateRules(item)) {\n that.append(item);\n }\n },\n\n action: function(args) {\n this.trigger(ACTION, args);\n }\n });\n\n kendo.ui.grid = kendo.ui.grid || {};\n\n extend(kendo.ui.grid, {\n ContextMenu: GridContextMenu\n });\n })(window.kendo.jQuery);\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n extend = $.extend,\n Class = kendo.Class;\n\n var Command = Class.extend({\n init: function(options) {\n this.options = options;\n this.grid = options.grid;\n }\n });\n\n var MoveGroupCommand = Command.extend({\n exec: function() {\n var that = this,\n grid = that.grid,\n groupable = grid.groupable,\n options = that.options,\n target = options.target.closest(\".k-chip\"),\n method = options.dir === \"next\" ? \"after\" : \"before\",\n position = options.dir === \"next\" ? target.next() : target.prev();\n\n position[method](target);\n groupable._change();\n },\n });\n\n var SortCommand = Command.extend({\n exec: function() {\n var that = this,\n grid = that.grid,\n dataSource = grid.dataSource,\n sort = dataSource.sort() || [],\n options = that.options,\n dir = options.dir,\n field = grid._getCellField(options.target),\n multipleMode = grid.options.sortable.mode && grid.options.sortable.mode === \"multiple\",\n compare = grid.options.compare,\n length, idx;\n\n if (multipleMode) {\n for (idx = 0, length = sort.length; idx < length; idx++) {\n if (sort[idx].field === field) {\n sort.splice(idx, 1);\n break;\n }\n }\n sort.push({ field: field, dir: dir, compare: compare });\n } else {\n sort = [{ field: field, dir: dir, compare: compare }];\n }\n\n dataSource.sort(sort);\n },\n });\n\n var AddCommand = Command.extend({\n exec: function() {\n var that = this,\n grid = that.grid;\n\n grid.addRow();\n }\n });\n\n var EditCommand = Command.extend({\n exec: function() {\n var that = this,\n grid = that.grid,\n inCellMode = grid._editMode() === \"incell\",\n target = inCellMode ? that.options.target : that.options.target.closest(\"tr\");\n\n if (inCellMode) {\n grid.editCell(target);\n } else {\n grid.editRow(target);\n }\n }\n });\n\n var DeleteCommand = Command.extend({\n exec: function() {\n var that = this,\n grid = that.grid,\n target = that.options.target.closest(\"tr\");\n\n grid.removeRow(target);\n }\n });\n\n var CopySelectionCommand = Command.extend({\n exec: function() {\n var that = this,\n grid = that.grid,\n withHeaders = that.options.withHeaders;\n\n grid.copySelectionToClipboard(withHeaders);\n }\n });\n\n var SelectRowCommand = Command.extend({\n exec: function() {\n var that = this,\n grid = that.grid,\n selectMode = kendo.ui.Selectable.parseOptions(grid.options.selectable),\n target = that.options.target.closest(\"tr\");\n\n grid.select(selectMode.cell ? target.find('td') : target);\n }\n });\n\n var SelectAllRowsCommand = Command.extend({\n exec: function() {\n var that = this,\n grid = that.grid,\n selectMode = kendo.ui.Selectable.parseOptions(grid.options.selectable),\n rows = grid.items();\n\n grid.select(selectMode.cell ? rows.find('td') : rows);\n }\n });\n\n var ClearSelectionCommand = Command.extend({\n exec: function() {\n var that = this,\n grid = that.grid;\n\n grid.clearSelection();\n }\n });\n\n var ReorderRowCommand = Command.extend({\n exec: function() {\n var that = this,\n grid = that.grid,\n dir = that.options.dir,\n target = that.options.target.closest(\"tr\"),\n index = target.index(),\n newIndex;\n\n switch (dir) {\n case \"up\":\n newIndex = index - 1;\n break;\n case \"down\":\n newIndex = index + 2;\n break;\n case \"top\":\n newIndex = 0;\n break;\n case \"bottom\":\n newIndex = grid.items().length;\n break;\n }\n\n grid.reorderRowTo(target, newIndex);\n }\n });\n\n var ExportPDFCommand = Command.extend({\n exec: function() {\n var that = this,\n grid = that.grid;\n\n grid.saveAsPDF();\n }\n });\n\n var ExportExcelCommand = Command.extend({\n exec: function() {\n var that = this,\n selection = that.options.selection,\n withHeaders = that.options.withHeaders,\n grid = that.grid;\n\n if (selection) {\n grid.exportSelectedToExcel(withHeaders);\n } else {\n grid.saveAsExcel();\n }\n }\n });\n\n kendo.ui.grid = kendo.ui.grid || {};\n\n extend(kendo.ui.grid, {\n GridCommand: Command,\n commands: {\n SortCommand: SortCommand,\n AddCommand: AddCommand,\n EditCommand: EditCommand,\n DeleteCommand: DeleteCommand,\n CopySelectionCommand: CopySelectionCommand,\n SelectRowCommand: SelectRowCommand,\n SelectAllRowsCommand: SelectAllRowsCommand,\n ClearSelectionCommand: ClearSelectionCommand,\n ReorderRowCommand: ReorderRowCommand,\n ExportPDFCommand: ExportPDFCommand,\n ExportExcelCommand: ExportExcelCommand,\n MoveGroupCommand: MoveGroupCommand\n }\n });\n })(window.kendo.jQuery);\n\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\", \"toolbar\", \"html.button\", \"icons\", \"menu\", \"loader\", \"html.loadercontainer\" ],\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\" ]\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 getType = kendo.type,\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 encode = kendo.htmlEncode,\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-caret-alt-down,.k-icon.k-i-caret-alt-right,.k-svg-icon.k-svg-i-caret-alt-down,.k-svg-icon.k-svg-i-caret-alt-right,.k-svg-icon.k-svg-i-caret-alt-left,.k-icon.k-i-caret-alt-left))):visible\",\n DATA_CELL_HIDDENINCLUDED = \":not([\" + kendo.attr(\"virtual\") + \"]):not(.k-hierarchy-cell:not(:has(.k-icon.k-i-caret-alt-down,.k-icon.k-i-caret-alt-right,.k-svg-icon.k-svg-i-caret-alt-down,.k-svg-icon.k-svg-i-caret-alt-right,.k-svg-icon.k-svg-i-caret-alt-left,.k-icon.k-i-caret-alt-left)))\",\n SELECTION_CELL_SELECTOR = \"tbody>tr:not(.k-grouping-row):not(.k-detail-row):not(.k-group-footer):not([data-skeleton-row]) > 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 CARET_ALT_DOWN = \"a[class*='-i-caret-alt-down']\",\n CARET_ALT_RIGHT = \"a[class*='-i-caret-alt-right']\",\n CARET_ALT_RIGHT_CACHE = CARET_ALT_RIGHT,\n CARET_ALT_LEFT = \"a[class*='-i-caret-alt-left']\",\n WRAPPER = \".k-grid\",\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 CHANGING = \"changing\",\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 PASTE = \"paste\",\n SCROLL = \"scroll\",\n SYNC = \"sync\",\n LOAD_START = \"loadStart\",\n LOAD_END = \"loadEnd\",\n\n FOCUSED = \"k-focus\",\n HOVER = \"k-hover\",\n ACTIVE = \"k-active\",\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 SVG_ICON_CLASS = \"k-svg-icon\",\n ORDER_CLASS = \"k-sort-order\",\n SORTED_CLASS = \"k-sorted\",\n HEADER_CLASS = \"k-header\",\n HEADER_COLUMN_MENU_CLASS = \"k-grid-column-menu\",\n FILTER_MENU_CLASS = \"k-grid-filter-menu\",\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 ROW_RESIZER = \"k-row-resizer\",\n ROW_RESIZER_WRAP = \"k-resizer-wrap\",\n GROUPING_ROW = \"k-grouping-row\",\n RESIZE = \"resize\",\n ROWRESIZE = \"rowResize\",\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 MOUSEUP = \"mouseup\",\n MOUSEENTER = \"mouseenter\",\n MOUSELEAVE = \"mouseleave\",\n MOUSEMOVE = \"mousemove\",\n DUBLECLICK = \"dblclick\",\n HEIGHT = \"height\",\n WIDTH = \"width\",\n AUTO = \"auto\",\n TABINDEX = \"tabIndex\",\n FUNCTION = \"function\",\n STRING = \"string\",\n NUMBER = \"number\",\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 PX = \"px\",\n TR = \"tr\",\n TD = \"td\",\n DIV = \"div\",\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 = ({ className, attr, text }) => ``,\n DEFAULTSELECTCOLUMNTMPL = (size, ariaLabel) => ``,\n SELECTCOLUMNTMPL = ({ size }) => DEFAULTSELECTCOLUMNTMPL(size, \"Select row\"),\n SELECTCOLUMNHEADERTMPL = ({ size }) => DEFAULTSELECTCOLUMNTMPL(size, \"Select all rows\"),\n DRAGHANDLECOLUMNTMPL = () => kendo.ui.icon(\"reorder\"),\n DEFAULTHEADERTEMPLATE = ({ text }) => `${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 scrollContainer: \"k-scroll-container\",\n headerCellInner: \"k-cell-inner\"\n };\n var GroupsPager;\n\n var defaultBodyContextMenu = [\n \"copySelection\",\n \"copySelectionNoHeaders\",\n \"paste\",\n \"separator\",\n \"create\",\n \"edit\",\n \"destroy\",\n \"select\",\n \"separator\",\n \"reorderRow\",\n \"exportPDF\",\n \"exportExcel\",\n \"separator\"\n ];\n\n var defaultHeadContextMenu = [\n \"sortAsc\",\n \"sortDesc\",\n \"separator\"\n ];\n\n var defaultGroupsContextMenu = [\n \"moveGroupPrevious\",\n \"moveGroupNext\",\n \"separator\"\n ];\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 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 var divElements = $(new Array(math.floor(totalHeight / maxHeight) + 1).join('
'))\n .css({\n width: \"1px\",\n height: `${maxHeight}px`\n });\n\n if (totalHeight % maxHeight) {\n divElements = divElements.add($(\"
\").css({\n width: \"1px\",\n height: `${(totalHeight % maxHeight)}px`\n }));\n }\n\n that.verticalScrollbar.empty().append(divElements);\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 cellsExcludingSpecialColumns(cells) {\n return cells.filter((i,cell) => {\n const $cell = $(cell);\n const hasCheckbox = $cell.children(\".k-select-checkbox\").length > 0;\n const hasWrappedCheckbox = $cell.find(\"> .k-checkbox-wrap > .k-select-checkbox\").length > 0;\n return !$cell.hasClass(\"k-drag-cell\") && !$cell.hasClass(\"k-command-cell\") && !hasCheckbox && !hasWrappedCheckbox;\n });\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-i-plus\"\n },\n cancel: {\n text: \"Cancel changes\",\n className: \"k-grid-cancel-changes\",\n iconClass: \"k-i-cancel\"\n },\n save: {\n text: \"Save changes\",\n className: \"k-grid-save-changes\",\n iconClass: \"k-i-check\"\n },\n destroy: {\n text: \"Delete\",\n className: \"k-grid-remove-command\",\n iconClass: \"k-i-x\"\n },\n edit: {\n text: \"Edit\",\n className: \"k-grid-edit-command\",\n iconClass: \"k-i-pencil\",\n themeColor: \"primary\"\n },\n update: {\n text: \"Save\",\n className: \"k-grid-save-command\",\n iconClass: \"k-i-save\",\n themeColor: \"primary\"\n },\n canceledit: {\n text: \"Cancel\",\n className: \"k-grid-cancel-command\",\n iconClass: \"k-i-cancel\"\n },\n excel: {\n text: \"Export to Excel\",\n className: \"k-grid-excel\",\n iconClass: \"k-i-file-excel\"\n },\n pdf: {\n text: \"Export to PDF\",\n className: \"k-grid-pdf\",\n iconClass: \"k-i-file-pdf\"\n },\n search: {\n text: \"Search...\",\n className: \"k-grid-search\"\n },\n columns: {\n text: \"Columns\",\n type: \"button\",\n icon: \"columns\",\n fillMode: \"flat\",\n overflow: \"never\",\n className: \"k-grid-column-menu\",\n attr: {\n \"aria-haspopup\": \"menu\"\n }\n }\n };\n\n function cursor(context, value) {\n $('th, th .k-grid-filter-menu, 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 (column.attributes instanceof Function) {\n column._attributesFunction = column.attributes;\n }\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 } else if (isVisible(column) || !hide) {\n column.attributes = removeHiddenStyle(column.attributes);\n column.footerAttributes = removeHiddenStyle(column.footerAttributes);\n column.headerAttributes = removeHiddenStyle(column.headerAttributes);\n hidden = undefined$1;\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(DOT + HEADER_CLASS)\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:not(.k-group-cell)\");\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 decorateCellWithClass(html) {\n let element = html;\n let classes = element.match(/class=[\"][^\"]+/g);\n if (classes) {\n const cssClasses = classes[0].split('\\\"').pop();\n element = element.replace(cssClasses, cssClasses + \" k-table-td\");\n } else {\n element = element.replace(\" 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, removeAttributeProperty) {\n createColumnAttribute(column, attribute, property);\n if (removeAttributeProperty) {\n delete column[attribute][property];\n } else {\n column[attribute][property] = column[attribute][property].replace(value, \"\");\n }\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 title: columns[idx].title\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, size) {\n var placeholder,\n tmp = tbody;\n\n if (tbodySupportsInnerHtml) {\n let $html = $(html);\n kendo.applyStylesFromKendoAttributes($html, [\"display\", \"left\", \"right\"]);\n tbody.empty();\n $html.each((_, el) => tbody[0].appendChild(el));\n } else {\n placeholder = document.createElement(DIV);\n placeholder.innerHTML = \"\" + html + \"
\";\n $(placeholder).find(\"table\").addClass(kendo.getValidCssClass(\"k-table-\", \"size\", size));\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 let kendoStyleAttrObject = {};\n kendoStyleAttrObject[kendo.attr(\"style-display\")] = \"none\";\n\n return extend({}, attr, kendoStyleAttrObject);\n }\n\n function hasHiddenStyle(attr) {\n attr = attr || {};\n\n return !!attr[kendo.attr(\"style-display\")];\n }\n\n function removeHiddenStyle(attr) {\n attr = attr || {};\n delete attr[kendo.attr(\"style-display\")];\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 kendo.applyStylesFromKendoAttributes(colgroup, [\"width\"]);\n\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 (visible && cell.classList.contains(\"k-hidden\")) {\n cell.classList.remove(\"k-hidden\");\n }\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(\":not([hidden])\").last();\n item.attr(\"colspan\", parseInt(item.attr(\"colspan\"), 10) + num);\n\n item = toRemove.eq(idx).children(\":not([hidden])\").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 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 CARET_ALT_RIGHT = isRtl ? CARET_ALT_LEFT : CARET_ALT_RIGHT_CACHE;\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._rowResizing();\n\n that._groupable();\n\n that._toolbar();\n\n let columnsToolbarButton = that.wrapper.find(\".k-grid-toolbar .k-toolbar-button.k-grid-column-menu.k-toolbar-tool\");\n if (columnsToolbarButton.length > 0) {\n that._globalColumnsMenu(columnsToolbarButton);\n }\n\n that._pageable();\n\n that._setContentHeight();\n\n that._templates();\n\n that._navigatable();\n\n that._initSelectableAggregates();\n\n that._selectable();\n\n that._statusBar();\n\n that._clipboard();\n\n that._paste();\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.options.contextMenu) {\n that._initContextMenu();\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 that._initLoader();\n\n kendo.notify(that);\n\n if (that._showWatermarkOverlay) {\n that._showWatermarkOverlay(that.wrapper[0]);\n }\n },\n\n events: [\n CHANGE,\n CHANGING,\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 ROWRESIZE,\n COLUMNRESIZE,\n COLUMNREORDER,\n COLUMNSHOW,\n COLUMNHIDE,\n COLUMNLOCK,\n COLUMNUNLOCK,\n COLUMNSTICK,\n COLUMNUNSTICK,\n ROWREORDER,\n NAVIGATE,\n PASTE,\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 that._rowResizing();\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 allowPaste: false,\n navigatable: false,\n pageable: false,\n persistSelection: false,\n editable: false,\n encodeTitles: false,\n groupable: false,\n rowTemplate: \"\",\n altRowTemplate: \"\",\n statusBarTemplate: null,\n search: false,\n noRecords: false,\n dataSource: {},\n height: null,\n resizable: false,\n reorderable: false,\n columnMenu: false,\n detailTemplate: null,\n contextMenu: false,\n columnResizeHandleWidth: 3,\n size: \"medium\",\n mobile: \"\",\n loaderType: \"loadingPanel\",\n messages: {\n loader: {\n loading: \"Loading...\",\n exporting: \"Exporting...\",\n },\n\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 columns: defaultCommands.columns.text,\n select: \"Select\",\n selectRow: \"Select Row\",\n selectAllRows: \"All rows\",\n clearSelection: \"Clear selection\",\n copySelection: \"Copy selection\",\n copySelectionNoHeaders: \"Copy selection (No Headers)\",\n paste: \"Paste (use CTRL/⌘ + V)\",\n reorderRow: \"Reorder row\",\n reorderRowUp: \"Up\",\n reorderRowDown: \"Down\",\n reorderRowTop: \"Top\",\n reorderRowBottom: \"Bottom\",\n exportPdf: \"Export to PDF\",\n exportExcel: \"Export to Excel\",\n exportToExcelAll: \"All\",\n exportToExcelSelection: \"Selection\",\n exportToExcelSelectionNoHeaders: \"Selection (No Headers)\",\n sortAsc: \"Sort Ascending\",\n sortDesc: \"Sort Descending\",\n moveGroupPrevious: \"Move previous\",\n moveGroupNext: \"Move next\",\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._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.allowPaste) {\n that.wrapper.off(\"paste\", that.pasteHandler);\n that.unbind(that.pasteHandler);\n }\n\n if (that.pasteActionsDropDownList) {\n that.pasteActionsDropDownList.destroy();\n that.pasteActionsDropDownList = null;\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 that._selectableAggregatesOptions = 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._destroyRowResizing();\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.scrollables && that.scrollables.first()) {\n element = element.add(that.scrollables.first());\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 if (that.tbodyContextMenu) {\n that.tbodyContextMenu.destroy();\n }\n\n if (that.theadContextMenu) {\n that.theadContextMenu.destroy();\n }\n\n if (that.loader) {\n that.loader.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.statusBar =\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 =\n that.loaderOverlay =\n that.wrapperClone = 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 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(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 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 = this._ariaGridId(),\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:not([group-header-spanned-hidden]):hidden\").length > 0 ||\n wrapper.find(\".k-grid-content-locked td:not([group-header-spanned-hidden]):hidden\").length > 0))) {\n table.attr(ARIA_COLCOUNT, trailingColumns + leafColumns(this.columns).length);\n this._ariaColumnIndex();\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 _ariaGridId: function() {\n var table = this.table,\n gridId = table.attr(ID);\n\n if (!gridId) {\n gridId = kendo.guid();\n table.attr(ID, gridId);\n }\n\n return gridId;\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 gridId = this._ariaGridId();\n\n elements.each(function(j, cell) {\n var id = cell.getAttribute(ID) || gridId + \"_\" + 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 table.addClass(\"k-grid-table k-table\");\n table.addClass(kendo.getValidCssClass(\"k-table-\", \"size\", that.options.size));\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(DUBLECLICK + NS).on(DUBLECLICK + 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:not([data-resizable=false])\", 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 + \",\" + DOT + SVG_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 + \",\" + DOT + SVG_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 _adjustColWidths: function(contentTable, header, footer, gridWidth) {\n const colWidths = {};\n\n contentTable\n .add(header)\n .add(footer)\n .css('width', gridWidth);\n\n contentTable\n .add(header)\n .add(footer)\n .find(\"col\")\n .each((i, col) => {\n // Retrieve the actual widths of the elements.\n colWidths[i] = $(col).css(\"width\");\n });\n\n contentTable\n .add(header)\n .add(footer)\n .find(\"col\")\n .each((i, col) => {\n // Ensure that the style=\"width\" attribute on the col elements matches the real width of the columns.\n $(col).css(\"width\", colWidths[i]);\n });\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 === true || (options.resizable && options.resizable.columns === true)) {\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 that._adjustColWidths(contentTable, header, footer, gridWidth);\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 (th && 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 // Row resizing functionality below\n _addLockedRowResizing: function(tr) {\n var index = tr.index();\n\n return this.lockedTable.find(TR).eq(index)\n .add(this.tbody.find(TR).eq(index));\n },\n\n _getMinRowHeight: function(row) {\n var minHeight = 0;\n\n row.each((i, el) => {\n var currentMinHeight;\n\n el.style.height = '';\n currentMinHeight = outerHeight(el);\n\n if (currentMinHeight > minHeight) {\n minHeight = currentMinHeight;\n }\n });\n\n return minHeight;\n },\n\n _cacheRowHeight: function(rows, height) {\n var that = this;\n\n if (!that._cachedRowsHeight) {\n that._cachedRowsHeight = {};\n }\n\n rows.each((i, el) => {\n var uid = el.getAttribute(\"data-uid\");\n\n that._cachedRowsHeight[uid] = height;\n });\n },\n\n _clearCachedRowsHeight: function(rows) {\n var that = this;\n\n if (rows && that._cachedRowsHeight) {\n rows.each((i, el) => {\n var uid = el.getAttribute(\"data-uid\");\n\n delete that._cachedRowsHeight[uid];\n });\n } else {\n that._cachedRowsHeight = null;\n }\n },\n\n _mapCachedRowsHeight: function(method, target) {\n var input = this._cachedRowsHeight,\n ds = this.dataSource,\n output = {};\n\n Object.keys(input).forEach((key) => {\n var item = ds[method](key);\n\n output[item[target]] = input[key];\n });\n\n this._cachedRowsHeight = output;\n },\n\n _rowResizerDblClick: function() {\n var that = this,\n resizer = that.rowResizer,\n row = resizer.data(TR),\n oldHeight = outerHeight(row),\n newHeight, rows;\n\n if (row.hasClass(SELECTED)) {\n rows = that.select();\n } else {\n rows = row;\n }\n\n if (that.lockedTable) {\n row = that._addLockedRowResizing(row);\n\n if (row.hasClass(SELECTED)) {\n rows = that.lockedTable.find(DOT + SELECTED);\n } else {\n rows = that.lockedTable.find(TR).eq(row.index());\n }\n\n rows.each((i, el) => {\n var rowIndex = el.rowIndex,\n rowPair = $(el).add(that.tbody.find(TR).eq(rowIndex)),\n pairMinHeight = that._getMinRowHeight(rowPair);\n\n rowPair.css(HEIGHT, pairMinHeight);\n });\n } else {\n rows.css(HEIGHT, AUTO);\n }\n\n that._clearCachedRowsHeight(rows);\n\n resizer.removeClass(HOVER);\n resizer.removeClass(ACTIVE);\n\n newHeight = outerHeight(row);\n\n if (oldHeight != newHeight) {\n that.trigger(ROWRESIZE, {\n row,\n rows,\n oldHeight,\n newHeight\n });\n }\n },\n\n _setupRowResizer(resizer, row, top) {\n resizer\n .data(TR, row)\n .css({\n top: top\n });\n },\n\n _attachRowResizerEvents: function() {\n var rowResizer = this.rowResizer,\n delay = 200,\n isIn = false;\n\n rowResizer\n .on(MOUSEDOWN + NS, (e) => {\n if (e.button === 0) {\n rowResizer.removeClass(HOVER);\n rowResizer.addClass(ACTIVE);\n }\n })\n .on(MOUSEUP + NS, (e) => {\n if (e.button === 0) {\n rowResizer.removeClass(ACTIVE);\n rowResizer.addClass(HOVER);\n }\n })\n .on(MOUSEENTER + NS, () => {\n isIn = true;\n\n setTimeout(() => {\n if (isIn) {\n rowResizer.addClass(HOVER);\n }\n }, delay);\n })\n .on(MOUSELEAVE + NS, () => {\n isIn = false;\n rowResizer.removeClass(HOVER);\n });\n },\n\n _getResizerTop: function(tr, container) {\n var resizer = this.rowResizer,\n inner = resizer.find(DOT + ROW_RESIZER)[0],\n paddingTop = parseInt(getComputedStyle(resizer[0]).paddingTop);\n\n return tr.offset().top -\n parseFloat(tr.css(\"marginTop\")) -\n (container.offset().top + parseFloat(container.css(\"borderTopWidth\"))) -\n inner.clientHeight -\n paddingTop +\n container.scrollTop();\n },\n\n _getResizerContainer: function() {\n var container = this.tbody.closest(DIV);\n\n if (this.lockedTable) {\n container = container.closest(DOT + \"k-grid-container\");\n }\n\n return container;\n },\n\n _createRowResizer: function(e) {\n var that = this,\n tr = $(e.currentTarget),\n targetHeight = e.currentTarget.clientHeight,\n positionIntarget = e.offsetY,\n rowResizer = that.rowResizer,\n previousRow = tr.prev(TR + \":visible\"),\n container = that._getResizerContainer(),\n top;\n\n if (!rowResizer) {\n rowResizer = that.rowResizer = $('
');\n container.append(rowResizer);\n that._attachRowResizerEvents();\n\n rowResizer.off(DUBLECLICK + NS).on(DUBLECLICK + NS, that._rowResizerDblClick.bind(that));\n }\n\n top = that._getResizerTop(tr, container);\n\n if (previousRow.length !== 0 && targetHeight / 2 > positionIntarget) {\n if (!previousRow.hasClass(GROUPING_ROW)) {\n that._setupRowResizer(rowResizer, previousRow, top);\n }\n } else {\n if (!tr.hasClass(GROUPING_ROW)) {\n that._setupRowResizer(rowResizer, tr, top + targetHeight);\n }\n }\n },\n\n _detachRowResizerEvents: function() {\n var rowResizer = this.rowResizer;\n\n rowResizer\n .off(MOUSEDOWN + NS)\n .off(MOUSEUP + NS)\n .off(MOUSEENTER + NS)\n .off(MOUSELEAVE + NS);\n },\n\n _mapResizedRows: function(rows, multiSelectionLocked, newHeight) {\n var that = this;\n\n rows.each((i, el) => {\n var minHeight;\n\n if (multiSelectionLocked) {\n var rowIndex = el.rowIndex,\n pairNew = newHeight,\n pairMin = 0,\n rowPair = $(el).add(that.tbody.find(TR).eq(rowIndex));\n\n rowPair.each((i, r) => {\n var currentMinHeight;\n\n r.style.height = '';\n currentMinHeight = outerHeight(r);\n\n if (currentMinHeight > pairMin) {\n pairMin = currentMinHeight;\n }\n });\n\n if (pairNew < pairMin) {\n pairNew = pairMin;\n\n that._clearCachedRowsHeight(rowPair.eq(0));\n } else {\n that._cacheRowHeight(rowPair.eq(0), pairNew);\n }\n\n rowPair.css(HEIGHT, pairNew);\n } else {\n el.style.height = '';\n minHeight = outerHeight(el);\n\n if (newHeight > minHeight) {\n el.style.height = newHeight + PX;\n\n that._cacheRowHeight($(el), newHeight);\n } else {\n that._clearCachedRowsHeight($(el));\n }\n }\n });\n },\n\n _rowResizing: function() {\n var that = this,\n options = that.options,\n container, rowStart, rowHeight, tr;\n\n if (options.resizable && options.resizable.rows === true) {\n that.tbody\n .parent()\n .add(that.lockedTable)\n .on(MOUSEMOVE + NS, \".k-grid-footer tr, .k-table-tbody tr\", that._createRowResizer.bind(that));\n\n if (that.rowResizing) {\n that.rowResizing.destroy();\n }\n\n container = that._getResizerContainer();\n\n that.rowResizing = new ui.Resizable(container, {\n handle: DOT + ROW_RESIZER_WRAP,\n start: function(e) {\n tr = $(e.currentTarget).data(TR);\n\n if (that.lockedTable) {\n tr = that._addLockedRowResizing(tr);\n }\n\n tr.addClass(HOVER);\n\n that._detachRowResizerEvents();\n\n rowStart = e.y.location;\n rowHeight = outerHeight(tr);\n },\n resize: function(e) {\n var newHeight = rowHeight + e.y.location - rowStart,\n minHeight = 0;\n\n if (tr.length > 1) {\n minHeight = that._getMinRowHeight(tr);\n }\n\n if (newHeight < minHeight) {\n newHeight = minHeight;\n }\n\n tr.css('height', newHeight);\n\n that._setupRowResizer(that.rowResizer, tr, that._getResizerTop(tr, container) + newHeight);\n },\n resizeend: function() {\n var newHeight = outerHeight(tr),\n multiSelectionLocked = false,\n rows;\n\n if (tr.hasClass(SELECTED)) {\n rows = that.select();\n\n if (tr.length > 1 && rows.length > tr.length) {\n rows = that.lockedTable.find(DOT + SELECTED).not(tr);\n multiSelectionLocked = true;\n }\n } else {\n rows = tr;\n }\n\n that._mapResizedRows(rows, multiSelectionLocked, newHeight);\n\n tr.removeClass(HOVER);\n\n that.rowResizer.removeClass(ACTIVE);\n that.rowResizer.addClass(HOVER);\n that._attachRowResizerEvents();\n\n if (multiSelectionLocked) {\n rows = that.select();\n }\n\n if (rowHeight != newHeight) {\n that.trigger(ROWRESIZE, {\n row: tr,\n rows,\n oldHeight: rowHeight,\n newHeight\n });\n }\n\n tr = null;\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(kendo.ui.icon({ icon: \"cancel\", iconClass: \"k-drag-status\" }));\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 var sourceParent = $(e.source).parent()[0],\n targetParent = $(e.target).parent()[0];\n\n /* If there are locked columns, check if the grid header is the same instead.\n Otherwise the locked/unlocked headers are treated as separate(in the case of column reordering they shouldn't be). */\n if (that._isLocked()) {\n sourceParent = $(e.source.closest(\".k-grid-header\"))[0];\n targetParent = $(e.target.closest(\".k-grid-header\"))[0];\n }\n\n return sourceParent === targetParent && 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:not([hidden])\"),\n that.table.find(\">tbody>tr.k-grouping-row:not([hidden])\"),\n sources.length\n );\n }\n } else if (lockedCount > sourceIndex) {\n updateColspan(\n that.table.find(\">tbody>tr.k-grouping-row:not([hidden])\"),\n that.lockedTable.find(\">tbody>tr.k-grouping-row:not([hidden])\"),\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 clickMoveClick = false,\n isMobile = !!(that._isMobile || kendo.support.mobileOS);\n\n if (that._draggableRowsInstance) {\n that._draggableRowsInstance.destroy();\n }\n\n if (this.options.reorderable.rows.clickMoveClick !== false && this._hasDragHandleColumn) {\n clickMoveClick = true;\n }\n\n that._draggableRowsInstance = that.tbody.kendoDraggable({\n holdToDrag: isMobile,\n showHintOnHold: isMobile,\n preventOsHoldFeatures: isMobile,\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 = $('
' + kendo.ui.icon({ icon: \"cancel\", iconClass: \"k-drag-status\" }) + '
');\n\n if (selectable && that.select().length > 1 && that.lockedContent) {\n hint.append(\"\" + that.select().length / 2 + \" \" + encode(that.options.messages.itemsSelected) + \"\");\n } else if (selectable && that.select().length > 1 && !that.lockedContent) {\n hint.append(\"\" + that.select().length + \" \" + encode(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 clickMoveClick: clickMoveClick,\n cursorOffset: { top: 0, left: 0 }\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: \"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 reorderRowTo: function(row, index) {\n var that = this,\n item = that.dataItem(row),\n oldIndex = row.index();\n\n if (index < 0 || index === oldIndex) {\n return;\n }\n\n if (!that.trigger(ROWREORDER, {\n row: row,\n oldIndex: row.index(),\n newIndex: index\n })) {\n that.dataSource.pushMove(index, [item]);\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-grid-column-menu, a.k-grid-filter-menu');\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 = 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 useDoubleTapEditing = !!(that._isMobile || kendo.support.mobileOS);\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 supportDoubleTap: useDoubleTapEditing,\n fastTap: useDoubleTapEditing,\n [useDoubleTapEditing ? 'doubleTap' : '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-remove-command\").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-command\", 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-remove-command\", 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-remove-command\", 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 size: that.options.size,\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 if (window) {\n container = window.wrapper;\n }\n container.off(CLICK + NS, \".k-grid-cancel-command, button[ref-cancel-button]\", that._editCancelClickHandler);\n container.off(CLICK + NS, \".k-grid-save-command, button[ref-update-button]\", 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 if (isCancel && model.dirtyFields && model.dirtyFields[column.field]) {\n delete model.dirtyFields[column.field];\n }\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\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 : mode === \"popup\" ? that._editContainer.parent() : 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-command, button[ref-cancel-button]\", this._editCancelClickHandler);\n\n if (!this._editUpdateClickHandler) {\n this._editUpdateClickHandler = this._editUpdateClick.bind(this);\n }\n\n container.on(CLICK + NS, \".k-grid-save-command, button[ref-update-button]\", 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 let updateButton = $(that._createButton({ name: \"update\", text: updateText, attr: attr, iconClass: updateIconClass, size: \"medium\", skipCommandClass: true })).attr(\"ref-update-button\", \"\");\n let cancelButton = $(that._createButton({ name: \"canceledit\", text: cancelText, attr: attr, iconClass: cancelIconClass, size: \"medium\", skipCommandClass: true })).attr(\"ref-cancel-button\", \"\");\n\n html += '
    ';\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 _footerTemplate: () =>\n `
    ` +\n updateButton[0].outerHTML +\n cancelButton[0].outerHTML +\n `
    `,\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 '' + kendo.ui.icon(\"chevron-left\") + '' +\n encode(that.options.messages.commands.edit || \"Edit\") +\n '' + kendo.ui.icon(\"check\") + '' +\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 && !template) ? that._editFields(columns, model) : null,\n model: model,\n clearContainer: false,\n target: that,\n skipFocus: true\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 size: that.options.size,\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 that._aria();\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(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 kendo.applyStylesFromKendoAttributes(related, [\"display\"]);\n that._relatedRow(row.last()).replaceWith(related);\n }\n\n newRow = $((isAlt ? that.altRowTemplate : that.rowTemplate)(model));\n if (!row.is(\":visible\")) {\n newRow.hide();\n }\n\n kendo.applyStylesFromKendoAttributes(newRow, [\"display\"]);\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 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 kendo.ui.icon(newRow.find(\".k-hierarchy-cell .k-icon,.k-hierarchy-cell .k-svg-icon\"), { icon: \"caret-alt-down\" });\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 if (that._cachedRowsHeight) {\n that._mapCachedRowsHeight(\"getByUid\", \"id\");\n that._shouldMapHights = true;\n }\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 _clickAdd: function(e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n\n this.addRow();\n },\n\n _clickCancel: function(e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n\n this.cancelChanges();\n },\n\n _clickExcel: function(e) {\n var that = this;\n var deferred = $.Deferred();\n\n if (e.preventDefault) {\n e.preventDefault();\n }\n that._isExport = true;\n\n that._progress(true);\n\n setTimeout(() => {\n that.saveAsExcel(deferred);\n deferred.always(() => {\n that._progress(false);\n that._isExport = false;\n });\n }, 1);\n },\n\n _clickPdf: function(e) {\n var that = this;\n\n if (e.preventDefault) {\n e.preventDefault();\n }\n that._isExport = true;\n that._pdfInitialized = true;\n\n that._progress(true);\n var promise = that.saveAsPDF();\n\n if (promise) {\n promise.done(function() {\n that._progress(false);\n that._isExport = false;\n that._pdfInitialized = false;\n });\n }\n },\n\n _clickSave: function(e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n\n this.saveChanges();\n },\n\n _searchInput: function(e) {\n var that = this,\n input = e.currentTarget;\n\n clearTimeout(that._searchTimeOut);\n\n that._searchTimeOut = setTimeout(function() {\n that._searchTimeOut = null;\n\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 }, 300);\n },\n\n _pasteToolbarDropDown: function() {\n var that = this;\n\n if (that.wrapper.find(\".k-grid-paste-action\").length) {\n that.pasteActionsDropDownList = that.wrapper\n .find(\".k-grid-paste-action\")\n .kendoDropDownList({\n dataSource: [{ value: \"insert\", text: \"Paste (Insert)\" }, { value: \"replace\", text: \"Paste (Replace)\" }],\n dataTextField: \"text\",\n dataValueField: \"value\",\n _allowFilterPaste: false,\n }).data(\"kendoDropDownList\");\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 _toolbar: function() {\n var that = this,\n wrapper = that.wrapper,\n toolbar = that.options.toolbar,\n\n container, items;\n\n if (toolbar) {\n that._createClickHandler = that._addClickHandler = that._clickAdd.bind(that);\n that._cancelClickHandler = that._clickCancel.bind(that);\n that._saveClickHandler = that._clickSave.bind(that);\n that._excelClickHandler = that._clickExcel.bind(that);\n that._pdfClickHandler = that._clickPdf.bind(that);\n that._serachHandler = that._searchInput.bind(that);\n\n container = that.wrapper.find(\".k-grid-toolbar\");\n\n if (!container.length) {\n container = $('
    ')\n .prependTo(wrapper);\n\n if (typeof toolbar === STRING || isFunction(toolbar)) {\n if (typeof toolbar === STRING) {\n toolbar = kendo.template(toolbar).bind(that);\n }\n\n container.html(toolbar({ grid: that }));\n that._attachToolbarClicks();\n } else if (isArray(toolbar)) {\n items = that._processItems(toolbar);\n\n container.kendoToolBar({\n navigateOnTab: !that.options.navigatable,\n size: that.options.size,\n items: items\n });\n }\n } else {\n that._attachToolbarClicks();\n }\n\n container.on(INPUT + NS, \".k-grid-search input\", this._serachHandler);\n }\n },\n\n _attachToolbarClicks: function() {\n var editable = this.options.editable,\n container = this.wrapper.find(\".k-grid-toolbar\");\n\n if (editable && editable.create !== false) {\n container.on(CLICK + NS, \".k-grid-add\", this._createClickHandler)\n .on(CLICK + NS, \".k-grid-cancel-changes\", this._cancelClickHandler)\n .on(CLICK + NS, \".k-grid-save-changes\", this._saveClickHandler);\n }\n\n container.on(CLICK + NS, \".k-grid-excel\", this._excelClickHandler);\n container.on(CLICK + NS, \".k-grid-pdf\", this._pdfClickHandler);\n },\n\n _processItems: function(tools) {\n var that = this,\n options = that.options,\n items = [],\n messages = this.options.messages.commands,\n itemsCollectionHasSpacer = false;\n\n tools.map(t => {\n var command, searchText, icon, className, inputSize, template = \"\";\n\n if (typeof t === 'string') {\n command = t.toLowerCase();\n t = {};\n t.text = messages[command] || command;\n } else {\n command = (t.name || t.text || \"\").toLowerCase();\n t.text = t.text || messages[command] || command;\n }\n\n if (!itemsCollectionHasSpacer && (command === \"search\" || command === \"columns\")) {\n itemsCollectionHasSpacer = true;\n items.push({\n type: \"spacer\"\n });\n }\n\n if (command === \"search\") {\n searchText = t.text || messages.search;\n icon = t.icon || t.iconClass || \"search\";\n\n inputSize = kendo.getValidCssClass(\"k-input-\", \"size\", that.options.size);\n template += ``;\n template += kendo.ui.icon({ icon: icon, iconClass: \"k-input-icon\" });\n template += \"\";\n template += \"\";\n\n items.push({\n name: \"search\",\n overflow: \"never\",\n template: template\n });\n } else if (command === \"paste\" && options.allowPaste) {\n items.push({\n template: \"\"\n });\n } else {\n if (!command && !(isPlainObject(t) && t.template)) {\n throw new Error(\"Custom commands should have name specified\");\n }\n\n t = extend({ type: \"button\" }, defaultCommands[command], t);\n className = t.className || \"k-grid-\" + (command || \"\").replace(/\\s/g, \"\");\n t.spriteCssClass = t.icon ? null : t.iconClass;\n\n t.attributes = that._processAttr(t.attr);\n delete t.attr;\n\n if (!!className) {\n if (t.attributes[\"class\"] === undefined$1) {\n t.attributes[\"class\"] = \"\";\n }\n\n t.attributes[\"class\"] += (\" \" + className);\n }\n\n if (t.template) {\n delete t.type;\n }\n\n if (!!that[\"_\" + command + \"ClickHandler\"]) {\n t.click = that[\"_\" + command + \"ClickHandler\"];\n }\n\n items.push(t);\n }\n });\n\n return items;\n },\n\n _processAttr: function(attr) {\n var attributes = {},\n attrArray;\n\n if (typeof attr === STRING && attr.length > 0) {\n attrArray = attr.split(\" \");\n attrArray.map(a => {\n var keyValue = a.split(\"=\");\n\n if (keyValue.length === 2) {\n attributes[keyValue[0]] = keyValue[1].replaceAll('\"', \"\").replaceAll(\"'\", \"\");\n }\n });\n } else if (isPlainObject(attr)) {\n attributes = attr;\n }\n\n return attributes;\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: command.skipCommandClass ? \"\" : className, text: commandName, attr: \"\", iconClass: \"\", size: command.size || this.options.size },\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(DOT + GROUPING_ROW).index(groupRow)] : { };\n\n if (element.is(CARET_ALT_DOWN)) {\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 \" + CARET_ALT_RIGHT + \", .k-grouping-row \" + CARET_ALT_DOWN, that._groupableClickHandler);\n } else {\n that.table.on(CLICK + NS, \".k-grouping-row \" + CARET_ALT_RIGHT + \", .k-grouping-row \" + CARET_ALT_DOWN, 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 size: that.options.size,\n allowDrag: that.options.reorderable,\n enableContextMenu: !!that.options.contextMenu,\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(leafColumns(that.columns)).length : 1;\n var nonLockedColumns = cell ? leafColumns(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 hasSkeletonLoader = that.options.loaderType === \"skeleton\";\n\n if (selectable && !selectable.checkboxSelection) {\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 if (hasSkeletonLoader) {\n notString[notString.length] = \"[data-skeleton-row]\";\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 allowPaste: that.options.allowPaste,\n filter: filter,\n aria: true,\n multiple: multi,\n holdToDrag: !!(that._isMobile || kendo.support.mobileOS),\n toggleable: !!(that._isMobile || kendo.support.mobileOS),\n dragToSelect: that.options.selectable && that.options.selectable.dragToSelect,\n changing: function(e) {\n if (that.trigger(CHANGING, { target: e.target, originalEvent: e.originalEvent })) {\n e.preventDefault();\n }\n },\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 that._calculateAggregatesForSelected();\n\n if (e.event) {\n that.trigger(CHANGE, { cellAggregates: that._cellAggregates });\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 triggerChanging;\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 triggerChanging = triggerChange || (multi && current.hasClass(SELECTED) && e.ctrlKey);\n\n if (triggerChanging && that.trigger(CHANGING, { target: current, originalEvent: e })) {\n return;\n }\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._calculateAggregatesForSelected();\n that.trigger(CHANGE, { cellAggregates: that._cellAggregates });\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._calculateAggregatesForSelected();\n that.trigger(CHANGE, { cellAggregates: that._cellAggregates });\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 if (that.trigger(CHANGING, { target: current, originalEvent: e })) {\n return;\n }\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(SELECTED)) {\n that.selectable.clear();\n that.selectable.value(current);\n that._calculateAggregatesForSelected();\n that.trigger(CHANGE, { cellAggregates: that._cellAggregates });\n }\n }\n });\n }\n }\n },\n\n _pasteReplaceHandler: function(plain) {\n var that = this,\n rows,\n current,\n currentRow,\n currentRowUid,\n currentField,\n uids = [];\n\n current = that.select().first();\n\n if (!current.length) {\n return;\n }\n\n if (current.is(TR)) {\n current = current.children(TD).first();\n }\n\n rows = plain.split(\"\\n\").filter(f => f);\n currentRow = current.closest(\"tr\");\n currentField = that.thead.find(\"th:eq(\" + current.index() + \")\").data(\"field\");\n currentRowUid = currentRow.data(\"uid\");\n\n uids.push(currentRowUid);\n\n currentRow.nextAll(ITEMROW).slice(0, rows.length - 1).each((i, item) => {\n uids.push($(item).data(\"uid\"));\n });\n\n that._executePaste(rows, uids, null, currentField);\n },\n\n _pasteInsertHandler: function(plain) {\n var that = this,\n dataSource = that.dataSource,\n rows,\n current,\n currentRow,\n dataItemIndex,\n dataItem;\n\n current = that.select().first();\n\n if (!current.length) {\n return;\n }\n\n if (current.is(TR)) {\n current = current.children(TD).first();\n }\n\n rows = plain.split(\"\\n\").filter(f => f);\n currentRow = current.closest(\"tr\");\n dataItem = that.dataItem(currentRow);\n dataItemIndex = dataSource.indexOf(dataItem) + 1;\n\n that._executePaste(rows, null, dataItemIndex, null);\n },\n\n _executePaste: function(rows, uids, index, currentField) {\n var that = this,\n dataSource = that.dataSource,\n update = uids || false,\n dataItem,\n row,\n cells,\n cell,\n column,\n field,\n selectedUids = that._getSelectedRowUids(),\n selectedColumnFields = that._getSelectedColumnFields(),\n changedItems = [],\n visibleColumns = visibleLeafColumns(that.columns).filter(col => !col.selectable && !col.draggable & !col.command),\n startingIndex = currentField && visibleColumns.map(c => c.field).indexOf(currentField);\n\n // If only one value is copied and multiple cells are selected, replace all values in all selected cells with the copied value.\n if (rows.length === 1 && rows[0].split(\"\\t\").length === 1 && update) {\n for (let j = 0; j < selectedUids.length; j++) {\n const uid = selectedUids[j];\n dataItem = dataSource.getByUid(uid);\n cell = rows[0].split(\"\\t\")[0];\n\n for (let j = 0; j < selectedColumnFields.length; j++) {\n field = selectedColumnFields[j];\n if (dataItem && cell) {\n dataItem.set(field, cell);\n }\n }\n\n if (dataItem && dataItem.dirty) {\n changedItems.push(dataItem);\n }\n }\n } else {\n // If more than one value is copied, proceed with the standard replace.\n for (let i = 0; i < rows.length; i++) {\n row = rows[i];\n cells = row.split(\"\\t\");\n dataItem = update ? dataSource.getByUid(uids[i]) : dataSource.insert(index + i, {});\n\n for (let j = 0; j < cells.length; j++) {\n cell = cells[j].replace(/\\r/, \"\");\n column = visibleColumns[j + startingIndex || 0];\n\n if (column && dataItem && cell) {\n field = column.field;\n dataItem.set(field, cell);\n }\n }\n\n if (dataItem && dataItem.dirty) {\n changedItems.push(dataItem);\n }\n }\n }\n that.trigger(PASTE, { items: changedItems, type: update ? \"replace\" : \"insert\" });\n },\n\n _pasteKeyboardHandler: function(e) {\n var that = this,\n current = that.current(),\n clipBoardData = e.originalEvent.clipboardData,\n operation = (that.pasteActionsDropDownList && that.pasteActionsDropDownList.value()) || \"insert\",\n rowUid,\n cellIndex,\n plain;\n\n if ($(e.target).is(\".k-edit-cell input:visible\")) {\n return;\n }\n\n if (clipBoardData) {\n e.preventDefault();\n plain = clipBoardData.getData(\"text\").trimEnd();\n\n // If the copied value consists only of white spaces or new lines, reduce it to a single white space.\n if (isEmptyString(plain)) {\n plain = \" \";\n }\n\n if (current && current.length) {\n cellIndex = current.index();\n rowUid = current.closest(TR).data(\"uid\");\n }\n\n if (operation === \"replace\") {\n that._pasteReplaceHandler(plain);\n }\n\n if (operation === \"insert\") {\n that._pasteInsertHandler(plain);\n }\n\n // Restore the focus to the last focused cell.\n if (cellIndex && rowUid) {\n that._currentRowIndex = that.wrapper.find(TR + \"[data-uid='\" + rowUid + \"']\").index();\n that._restoreCurrent(cellIndex);\n }\n }\n },\n\n _paste: function() {\n var that = this,\n options = that.options,\n selectable = options.selectable,\n allowPaste = options.allowPaste;\n\n if (allowPaste && selectable) {\n that.pasteHandler = that._pasteKeyboardHandler.bind(that);\n that.wrapper.on(\"paste\", that.pasteHandler);\n\n if (that.options.toolbar) {\n that._pasteToolbarDropDown();\n }\n }\n },\n\n _clipboard: function() {\n var options = this.options;\n var selectable = options.selectable;\n\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.keyCode === 67 && (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 _createAreaClipBoard: function() {\n if (!this.areaClipBoard) {\n this.areaClipBoard =\n $(\"