{"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","visibleNonLockedColumns","visibleLockedColumns","visibleLeafColumns","childColumns","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","e","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","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","RESIZE","COLUMNRESIZE","COLUMNREORDER","COLUMNLOCK","COLUMNUNLOCK","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","_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","tr","dataItems","n","resizeHandle","angular","each","filterMenu","_cellId","_hasDetails","_createResizeHandle","headerWrap","ieCorrection","firefoxCorrection","leftMargin","invisibleSpace","leftBorderWidth","left","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","_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","footerTable","j","tables","oldColumnWidth","newColumnWidth","visibleLocked","notGroupOrHierarchyCol","notGroupOrHierarchyVisibleCell","safari","lockChanged","sourceColumns","destColumn","virtualScroll","groupHeaderColumnTemplateColumns","groupHeaderColumnTemplate","_updateLockedCols","_updateCols","_updateColumnCellIndex","_updateColumnSorters","_renderGroupRows","_updateTablesWidth","_updateFirstColumnClass","lockColumn","unlockColumn","cellIndex","td","lockedColumnOffset","_modelForContainer","_editMode","getByUid","mode","handler","_editContainer","end","closeCell","_scrollVirtualWrapper","editContainer","_mousedownOnEditCell","tap","isLockedCell","has","blur","editCell","shouldCloseCell","_virtualColScroll","editRow","_isVirtualInlineEditable","stopPropagation","removeRow","_confirmation","virtualCols","_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","_relatedCell","clearSelection","selectableoptions","checked","prop","allRows","dataSourceOptions","selectedViewIds","selectedKeyNames","property","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","leafsCols","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","right","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","menu","menuOptions","hasMultiColumnHeaders","initCallback","openCallback","closeCallback","sortHandler","filterHandler","compare","forceUnique","checkSource","owner","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","columnLeafs","columnsLocked","groupHeaderColumnTemplateLockedColumns","groupHeaderColumnTemplateNonLockedColumns","_detailTmpl","_footerTmpl","g","_groupHeaderTmpl","lockedGroupHeaderColumnTemplate","_noRecordsTmpl","defaultTemplate","scrollableNoGridHeightStyles","templateName","rowClass","scope","fieldsMap","_emptyAggregates","templateFunctionStorage","templateFunctionCount","hasFiltering","columnsWithoutFiltering","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', RESIZE = 'resize', COLUMNRESIZE = 'columnResize', COLUMNREORDER = 'columnReorder', COLUMNLOCK = 'columnLock', COLUMNUNLOCK = 'columnUnlock', 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() || !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 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 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 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 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._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 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) {\n var that = this;\n return container.children().filter(function () {\n var tr = $(this);\n return (that.dataSource._isGroupPaged() ? true : !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(that.columns)) : inArray(column, visibleNonLockedColumns(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 },\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 }\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)';\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 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 var newColumnWidth = Math.ceil(Math.max(outerWidth(th), 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 },\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 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 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 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 _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 = (that.virtualScroll || {}).columns ? that.virtualCols[that.cellIndex(cell)] : leafColumns(that.columns)[that.cellIndex(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 = (that.virtualScroll || {}).columns ? that.virtualCols[that.cellIndex(cell)] : leafColumns(that.columns)[that.cellIndex(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.cellIndex(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 = that._hasVirtualColumns() ? that.virtualCols[that.cellIndex(cell)] : leafColumns(that.columns)[that.cellIndex(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 = $('