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