{"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","column","hidden","uid","field","isVisible","addHiddenStyle","footerAttributes","headerAttributes","guid","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","locked","findReorderTarget","masterColumns","parent","parentColumns","targetIndex","inArray","flatColumnsInDomOrder","flatColumns","targetParentContainerIndex","hiddenLeafColumnsCount","counter","columnsWidth","cols","colWidth","indexOf","parseInt","removeRowSpanValue","removeEmptyRows","emptyRowsCount","remove","mapColumnToCellRows","rowIndex","visibleNonLockedColumns","visibleLockedColumns","visibleLeafColumns","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","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","isInEdit","groupCellBuilder","headerTemplateIndex","ARIALABEL","COLLAPSE","groupCellLockedContentBuilder","groupRowBuilder","colspan","groupRowLockedContentBuilder","ui","DataSource","ObservableObject","tbodyInnerHtml","activeElement","Widget","outerWidth","_outerWidth","outerHeight","_outerHeight","keys","prototype","isFunction","isEmptyObject","math","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","GROUP_SORT","DELETECONFIRM","NORECORDS","CONFIRMDELETE","CANCELDELETE","EXPAND","formatRegExp","templateHashRegExp","whitespaceRegExp","RegExp","COMMANDBUTTONTMPL","SELECTCOLUMNTMPL","SELECTCOLUMNHEADERTMPL","isRtl","isIE7","isIE11","isMac","navigator","userAgent","classNames","widget","scrollContainer","VirtualScrollable","that","fn","call","_refreshHandler","refresh","setDataSource","dataSource","wrap","unbind","bind","useRanges","itemHeight","noop","prefetch","maxScrollHeight","events","destroy","wrapper","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","floor","lastItemOffset","ceil","lastItemIndex","_preventScroll","_scrollTop","_scrolling","_fetch","trigger","_page","take","scrollToTop","_scrollTo","scrollToBottom","_scrollWrapperToTop","_scrollWrapperToBottom","_scrollWrapperOnColumnResize","initialScrollTop","scrollWidth","clientWidth","_wrapperScrolled","_isScrolledToBottom","_isWrapperScrolledToBottom","_isScrolledToTop","itemIndex","rangeStart","_isElementVisible","_isElementVisibleInWrapper","halfHeight","top","abs","pageSize","scrollIntoView","containerHeight","containerScroll","elementOffset","elementHeight","scrollingUp","currentSkip","fetching","prefetchAt","webkitCorrection","min","total","_fetching","callback","inRange","progress","range","repaintScrollbar","shouldScrollWrapper","maxHeight","wrapperElement","wasScrolledToBottom","addScrollBarHeight","totalHeight","cancel","page","defaultCommands","create","iconClass","save","edit","update","canceledit","excel","pdf","Grid","DataBoundWidget","_events","_element","_aria","_columns","_dataSource","_tbody","_pageable","_thead","_groupable","_toolbar","_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","_destroyEditable","_progressHandler","_errorHandler","_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","left","headerWrap","ieCorrection","firefoxCorrection","indicatorWidth","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","reverse","closestVisibleColumn","leafIndex","autoFitColumn","minWidth","contentDiv","footerTable","j","tables","oldColumnWidth","newColumnWidth","visibleLocked","notGroupOrHierarchyCol","notGroupOrHierarchyVisibleCell","lockChanged","sourceColumns","destColumn","groupHeaderColumnTemplateColumns","groupHeaderColumnTemplate","_updateLockedCols","_updateCols","_updateColumnCellIndex","_updateColumnSorters","_renderGroupRows","_updateTablesWidth","_updateFirstColumnClass","lockColumn","unlockColumn","cellIndex","td","lockedColumnOffset","_modelForContainer","_editMode","getByUid","mode","multiple","handler","_editContainer","end","closeCell","_scrollVirtualWrapper","editContainer","_mousedownOnEditCell","isLockedCell","has","blur","editCell","shouldCloseCell","editRow","_isVirtualInlineEditable","stopPropagation","removeRow","_confirmation","_attachModelChange","_shouldClearEditableState","_clearEditableState","kendoEditable","fields","editor","values","skipFocus","_isVirtualIncellEditable","_editableState","_relatedRow","_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","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","toLowerCase","virtualEditable","serverPaging","totalPages","_removeCurrent","_virtualAddRow","insert","_editModel","_firstEditableColumnIndex","_virtualAddRowAtBottom","_virtualAddRowAtTop","at","_virtualPageToBottom","_virtualPage","_toolbarTmpl","prependTo","saveAsExcel","saveAsPDF","attributeClassMatch","split","_hasFooters","groupRow","collapseGroup","expandGroup","_isLocked","_attachGroupable","draggables","enabled","Groupable","groupContainer","draggableElements","allowDrag","endless","_endlessPageSize","_skip","_pageSize","_take","_addGroupableOptionsToHeader","headerCell","columnOptions","columnFieldMap","headerCells","_headerCells","cellFieldAttr","kendoGroupable","_removeGroupableOptionsFromHeader","removeData","_continuousItems","lockedItems","nonLockedItems","apply","multi","notString","Selectable","parseOptions","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","_lastCellIndex","elementToLowercase","tagName","isHorizontal","elementOffsetDir","containerOffsetDir","bottomDistance","offsetLeft","dataTables","headerTables","_openHeaderMenu","_tableFocus","_tableBlur","_tableKeyDown","altKey","_setTabIndex","handled","requestInProgress","canHandle","isDefaultPrevented","_moveUp","_moveDown","_moveRight","_moveLeft","PAGEDOWN","_handlePageDown","PAGEUP","_handlePageUp","HOME","_handleHome","END","_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","_endlessFetchInProgress","_skipRerenderItemsCount","movable","_averageRowHeight","_restoreEditableState","scroll","_focusEditable","_onVirtualPaging","_cacheEditableState","_isVirtualPopupEditable","editableState","editedModel","inlineMode","incellMode","_getByUid","editedField","_canFocusEditable","widgetInstance","_renderNoRecordsContent","noRecordsElement","_setContentWidth","expander","hiddenDivClass","hiddenDiv","isNaN","footerWrap","contentWidth","nonLockedCols","nonLockedColsWidth","isGridHeightSet","scrollableHeight","initialHeight","newHeight","currentRowHeight","itemsCount","_rowHeight","_sum","_measures","_requestStart","_error","_progress","relatedRow","selectableRow","childCells","originalCells","Pager","_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","operator","showOperators","kendoFilterCell","_sortable","sorterInstance","kendoColumnSorter","columnLeafs","initialColumns","headers","_checkboxClick","_headerCheckboxClick","checkBox","parentGrid","getKendoGrid","isSelecting","_tmpl","alt","skipGroupCells","paramName","fieldAttr","dirtyCellTemplate","expr","_dirtyCellTemplate","dirtyField","charAt","_headerCellText","headerTemplate","_dirtyIndicatorTemplate","stringify","useWithBlock","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","_prepareColumns","_retrieveFirstColumn","parentRow","childRow","totalColSpan","_updateHeaderCols","_autoColumns","toJSON","_rowsHtml","templates","_groupData","skipFooter","firstColumn","footerDefaults","_groupAggregatesDefaultObject","groupItems","headerData","footerData","_groupRowHtml","groupHeaderBuilder","skipColspan","skipLastGroup","groupData","groupHeaderTemplate","_skippedGroups","shift","toHide","groupToCollapse","showFooter","footerCount","relatedGroup","_groupToCollapse","footersVisibility","groupsCount","toggleVisibility","pop","_firstDataItem","grouped","headerCellIndex","_columnVisibilitySetter","_setParentsVisibility","predicate","p","originalColumn","columnLeafIndex","_resize","force","_isActiveInTable","contentScrollLeft","cachedItemsToSkip","isCurrentInHeader","_renderContent","_renderLockedContent","_togglePagerVisibility","_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","then","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 ], 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 'mobile.actionsheet',\n 'mobile.pane'\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(.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', 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 = '# var checkboxGuid = kendo.guid(); #' + '' + '', SELECTCOLUMNHEADERTMPL = '# var checkboxGuid = kendo.guid(); #' + '' + '', 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 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) {\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._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 _isElementVisible: function (element) {\n return this._isElementVisibleInWrapper(element);\n },\n _isElementVisibleInWrapper: function (element) {\n var that = this;\n var wrapper = that.wrapper;\n var offsetTop;\n var halfHeight;\n element = $(element);\n if (element[0] && contains(wrapper[0], element[0])) {\n offsetTop = element.offset().top - wrapper.offset().top;\n halfHeight = element.outerHeight() / 2;\n if ((offsetTop >= 0 || math.abs(offsetTop) <= halfHeight) && math.floor(offsetTop + halfHeight) <= wrapper.height()) {\n return true;\n }\n }\n return false;\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 + 1;\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 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, dataSource.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 {\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;\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 (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 });\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.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()) {\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) {\n that._rangeStart = dataSource.skip();\n }\n if (dataSource.page() === 1 && (!action || action !== SYNC && action !== ITEM_CHANGE)) {\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 };\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) {\n return map(columns, function (column) {\n column = typeof column === STRING ? { field: column } : column;\n var hidden;\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 if (column.columns) {\n column.columns = normalizeColumns(column.columns, encoded, hidden);\n }\n var uid = kendo.guid();\n column.headerAttributes = extend({ id: uid }, column.headerAttributes);\n return extend({\n encoded: encoded,\n hidden: hidden\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 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 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 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 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 that._dataSource();\n that._tbody();\n that._pageable();\n that._thead();\n that._groupable();\n that._toolbar();\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 ],\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 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 },\n noRecords: NORECORDS,\n expandCollapseColumnHeader: '',\n groupHeader: 'Press ctrl + space to group',\n ungroupHeader: 'Press ctrl + space to ungroup'\n }\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 that._destroyEditable();\n if (that.dataSource) {\n that.dataSource.unbind(CHANGE, that._refreshHandler).unbind(PROGRESS, that._progressHandler).unbind(ERROR, that._errorHandler);\n that._refreshHandler = that._progressHandler = that._errorHandler = 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 return container.children().filter(function () {\n var tr = $(this);\n return !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 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 left = th.offset().left - parseFloat(th.css('marginLeft')) - (container.offset().left + parseFloat(container.css('borderLeftWidth')));\n if (!isRtl) {\n left += th[0].offsetWidth;\n } else {\n if (scrollable) {\n var headerWrap = th.closest('.k-grid-header-wrap, .k-grid-header-locked'), ieCorrection = browser.msie ? headerWrap.scrollLeft() : 0, webkitCorrection = browser.webkit ? headerWrap[0].scrollWidth - headerWrap[0].offsetWidth - headerWrap.scrollLeft() : 0, firefoxCorrection = browser.mozilla ? headerWrap[0].scrollWidth - headerWrap[0].offsetWidth - (headerWrap[0].scrollWidth - headerWrap[0].offsetWidth - headerWrap.scrollLeft()) : 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 - indicatorWidth * 3 / 2,\n height: outerHeight(th),\n width: indicatorWidth * 3\n }).data('th', th).show();\n resizeHandle.off('dblclick' + NS).on('dblclick' + NS, function () {\n that._autoFitLeafColumn(th.data('index'));\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) {\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 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 (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], 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 (!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, selectable = that.selectable && that.selectable.options.multiple, 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-label') && 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.wrapper.on(kendo.support.touch ? 'touchstart' + NS : CLICK + NS, 'tr:not(.k-grouping-row) > td', function (e) {\n var td = $(this), 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 if (selectable) {\n $(activeElement()).blur();\n }\n that.closeCell();\n that.editCell(td);\n } else {\n that._scrollVirtualWrapper();\n }\n } else {\n that.editCell(td);\n }\n }).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) {\n shouldCloseCell = false;\n }\n that._mousedownOnEditCell = false;\n if (shouldCloseCell) {\n that.timer = setTimeout(function () {\n handler(e);\n }, 1);\n }\n });\n }\n } else {\n if (editable.update !== false) {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible a.k-grid-edit', function (e) {\n e.preventDefault();\n that.editRow($(this).closest('tr'));\n });\n if (that._isVirtualInlineEditable()) {\n that.wrapper.on('focusout' + NS, 'tr:not(.k-grouping-row) > td', function () {\n if (that.editable && !that.editable.end()) {\n that._scrollVirtualWrapper();\n }\n });\n }\n }\n }\n if (editable.destroy !== false) {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible .k-grid-delete', function (e) {\n e.preventDefault();\n e.stopPropagation();\n that.removeRow($(this).closest('tr'));\n });\n } else {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible button.k-grid-delete', function (e) {\n e.stopPropagation();\n if (!that._confirmation()) {\n e.preventDefault();\n }\n });\n }\n }\n },\n editCell: function (cell) {\n cell = $(cell);\n var that = this, column = leafColumns(that.columns)[that.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._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 }\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 _syncLockedContentHeight: function () {\n if (this.lockedTable) {\n if (!this.touchScroller) {\n this._adjustLockedHorizontalScrollBar();\n }\n this._adjustRowsHeight(this.table, this.lockedTable);\n }\n },\n _syncLockedHeaderHeight: function () {\n if (this.lockedHeader) {\n var lockedTable = this.lockedHeader.children('table');\n var table = this.thead.parent();\n this._adjustRowsHeight(lockedTable, table);\n syncTableHeight(lockedTable, table);\n }\n },\n _syncLockedFooterHeight: function () {\n if (this.lockedFooter && this.footer && this.footer.length) {\n this._adjustRowsHeight(this.lockedFooter.children('table'), this.footer.find('.k-grid-footer-wrap > table'));\n }\n },\n _destroyEditable: function () {\n var that = this;\n var destroy = function () {\n if (that.editable) {\n var container = that.editView ? that.editView.element : that._editContainer;\n if (container) {\n container.off(CLICK + NS, 'a.k-grid-cancel', that._editCancelClickHandler);\n container.off(CLICK + NS, 'a.k-grid-update', that._editUpdateClickHandler);\n }\n that._detachModelChange();\n that.editable.destroy();\n that.editable = null;\n that._editContainer = null;\n that._destroyEditView();\n that._editableIsClosing = null;\n }\n };\n if (that.editable) {\n if (that._editMode() === 'popup' && !that._isMobile) {\n if (that._editableIsClosing) {\n that._editContainer.data('kendoWindow').bind('deactivate', destroy);\n } else {\n that._editableIsClosing = true;\n that._editContainer.data('kendoWindow').bind('deactivate', destroy).close();\n }\n } else {\n destroy();\n }\n }\n if (that._confirmDialog) {\n that._confirmDialog.close();\n that._confirmDialog.destroy();\n that._confirmDialog = null;\n }\n },\n _destroyEditView: function () {\n if (this.editView) {\n this.editView.purge();\n this.editView = null;\n this.pane.navigate('');\n }\n },\n _attachModelChange: function (model) {\n var that = this;\n that._modelChangeHandler = function (e) {\n that._modelChange({\n field: e.field,\n model: this\n });\n };\n model.bind('change', that._modelChangeHandler);\n },\n _detachModelChange: function () {\n var that = this, container = that._editContainer, model = that._modelForContainer(container);\n if (model) {\n model.unbind(CHANGE, that._modelChangeHandler);\n }\n },\n closeCell: function (isCancel) {\n var that = this, cell = that._editContainer, column, tr, model;\n if (!cell) {\n return;\n }\n model = that._modelForContainer(cell);\n if (isCancel && that.trigger('cancel', {\n container: cell,\n model: model\n })) {\n return;\n }\n that.trigger(CELLCLOSE, {\n type: isCancel ? 'cancel' : 'save',\n model: model,\n container: cell\n });\n cell.removeClass('k-edit-cell');\n column = leafColumns(that.columns)[that.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 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' : '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 = window.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 }\n } else if (column.command) {\n tempCommand = getCommand(column.command, 'edit');\n if (tempCommand) {\n command = tempCommand;\n }\n }\n }\n }\n if (command) {\n if (isPlainObject(command)) {\n if (isPlainObject(command.text)) {\n updateText = command.text.update;\n cancelText = command.text.cancel;\n }\n if (isPlainObject(command.iconClass)) {\n updateIconClass = command.iconClass.update;\n cancelIconClass = command.iconClass.cancel;\n }\n if (command.attr) {\n attr = command.attr;\n }\n }\n }\n var container;\n if (!that._isMobile) {\n html += '
    ';\n html += that._createButton({\n name: 'update',\n text: updateText,\n attr: attr,\n iconClass: updateIconClass\n }) + that._createButton({\n name: 'canceledit',\n text: cancelText,\n attr: attr,\n iconClass: cancelIconClass\n });\n html += '
    ';\n container = that._editContainer = $(html).appendTo(that.wrapper).eq(0).kendoWindow(extend({\n modal: true,\n resizable: false,\n draggable: true,\n title: that.options.messages.commands.edit || 'Edit',\n visible: false,\n close: function (e) {\n if (e.userTriggered) {\n e.sender.element.focus();\n if (that.trigger('cancel', {\n container: container,\n model: model\n })) {\n e.preventDefault();\n return;\n }\n var currentIndex = that.items().index($(that.current()).parent());\n that._editableIsClosing = true;\n that.cancelRow();\n if (that.options.navigatable) {\n that._setCurrent(that.items().eq(currentIndex).children().filter(NAVCELL).first());\n focusTable(that.table, true);\n }\n }\n }\n }, options));\n } else {\n html += '
    ';\n that.editView = that.pane.append('
    ' + '
    ' + '' + (that.options.messages.commands.edit || 'Edit') + '' + '
    ' + '
    ' + html + '
    ' + '
    ');\n container = that._editContainer = that.editView.element.find('.k-popup-edit-form');\n }\n that.editable = that._editContainer.kendoEditable({\n fields: fields,\n model: model,\n clearContainer: false,\n target: that\n }).data('kendoEditable');\n that._openPopUpEditor();\n that.trigger(EDIT, {\n container: container,\n model: model\n });\n },\n _openPopUpEditor: function () {\n var that = this;\n var windowEditor = that._editContainer ? that._editContainer.data('kendoWindow') : null;\n var windowOptions = (that.options.editable || {}).window || {};\n if (!this._isMobile) {\n if (windowEditor) {\n if (!windowOptions.position) {\n windowEditor.center();\n }\n windowEditor.open();\n }\n } else {\n this.pane.navigate(this.editView, this._editAnimation);\n }\n },\n _createInlineEditor: function (row, model) {\n var that = this;\n var column;\n var cell;\n var command;\n var fields = [];\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n if (that.lockedContent) {\n row = row.add(that._relatedRow(row));\n }\n row.children(':not(.k-group-cell,.k-hierarchy-cell)').each(function () {\n cell = $(this);\n column = leafColumns(that.columns)[that.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,\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 }\n },\n _toolbarTmpl: function (commands) {\n var that = this, idx, length, html = '';\n if (isArray(commands)) {\n for (idx = 0, length = commands.length; idx < length; idx++) {\n html += that._createButton(commands[idx]);\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 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 (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 = $('