{"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","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","append","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","normalizeCols","hasDetails","colgroup","format","is","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","isColumnEditable","model","selectable","editable","isInputElement","tableClick","currentTarget","isHeader","lockedTable","headerTable","lockedHeader","isInput","currentTable","roleSelector","_setCurrent","navigatable","isIE8","_activeElement","contains","leftMostPosition","support","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","PROGRESS","ERROR","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","CHECKBOXINPUT","NORECORDSCLASS","RESIZE","COLUMNRESIZE","COLUMNREORDER","COLUMNLOCK","COLUMNUNLOCK","NAVIGATE","HEIGHT","TABINDEX","FUNCTION","BOTTOM","CONTAINER_FOR","FIELD","INPUT","INCELL","INLINE","UNIQUE_ID","MINCOLSPANVALUE","DELETECONFIRM","NORECORDS","CONFIRMDELETE","CANCELDELETE","EXPAND","formatRegExp","templateHashRegExp","whitespaceRegExp","RegExp","COMMANDBUTTONTMPL","SELECTCOLUMNTMPL","SELECTCOLUMNHEADERTMPL","isRtl","isIE7","isIE11","VirtualScrollable","that","fn","call","_refreshHandler","refresh","setDataSource","dataSource","wrap","unbind","bind","useRanges","itemHeight","noop","prefetch","maxScrollHeight","events","destroy","wrapper","verticalScrollbar","off","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","_scrollingTimeout","clearTimeout","_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","_timeout","inRange","progress","range","repaintScrollbar","shouldScrollWrapper","maxHeight","wrapperElement","wasScrolledToBottom","addScrollBarHeight","totalHeight","action","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","groupable","virtualScrollable","toolbar","filterable","sortable","allowCopy","pageable","persistSelection","rowTemplate","altRowTemplate","noRecords","resizable","reorderable","columnMenu","detailTemplate","columnResizeHandleWidth","mobile","messages","cancelDelete","confirmation","confirmDelete","expandCollapseColumnHeader","_angularItems","_destroyColumnAttachments","_navigatableTables","pager","kendoGroupable","clearArea","_selectedIds","copyHandler","updateClipBoardState","clearAreaHandler","_resizeUserEvents","_resizeHandleDocumentClickHandler","_destroyVirtualScrollable","_destroyEditable","_progressHandler","_errorHandler","_removeLockedContainers","pane","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","_isMobile","after","removeClass","_setEvents","_items","tr","dataItems","n","resizeHandle","angular","each","filterMenu","_cellId","_hasDetails","_createResizeHandle","left","headerWrap","ieCorrection","firefoxCorrection","indicatorWidth","mozilla","_autoFitLeafColumn","_positionColumnResizeHandle","lockedHead","button","buttons","which","_resizeHandleDocumentClick","_hideResizeHandle","_positionColumnResizeHandleTouch","threshold","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","paddingLeft","paddingRight","lineHeight","paddingTop","paddingBottom","_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","_updateColumnCellIndex","_renderGroupRows","_updateTablesWidth","_updateFirstColumnClass","lockColumn","unlockColumn","cellIndex","td","lockedColumnOffset","_modelForContainer","_editMode","getByUid","mode","multiple","handler","_editContainer","end","closeCell","_scrollVirtualWrapper","isLockedCell","has","blur","editCell","timer","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","close","_actionSheet","purge","navigate","_modelChangeHandler","_modelChange","isCancel","type","_displayCell","ns","dataItem","storage","settings","Template","templateSettings","tmpl","template","_cellTmpl","_removeRow","modelId","schema","cancelRow","sync","_createPopupEditor","_createInlineEditor","_editCancelClick","_editUpdateClick","saveRow","currentIndex","updateText","cancelText","updateIconClass","cancelIconClass","tempCommand","unescape","_createButton","kendoWindow","modal","userTriggered","clearContainer","_openPopUpEditor","_editAnimation","center","open","Editable","cancelChanges","_displayRow","valid","deferred","Deferred","reject","promise","resolve","related","newRow","nextRow","angularElements","angularData","isSelected","isAlt","replaceWith","_checkBoxSelection","select","_showMessage","actionSheet","view","ActionSheet","cancelTemplate","popup","_actionSheetPopupOptions","confirm","_isVirtualEditable","_virtualPageToTop","saveChanges","addRow","createAt","createAtBottom","toLowerCase","virtualEditable","serverPaging","totalPages","_removeCurrent","_virtualAddRow","insert","_editModel","_firstEditableColumnIndex","_virtualAddRowAtBottom","_virtualAddRowAtTop","at","_virtualPageToBottom","_virtualPage","_toolbarTmpl","prependTo","saveAsExcel","saveAsPDF","attributeClassMatch","split","match","_hasFooters","groupRow","collapseGroup","expandGroup","_isLocked","_attachGroupable","draggables","enabled","Groupable","groupContainer","draggableElements","allowDrag","endless","_endlessPageSize","_skip","_continuousItems","lockedItems","nonLockedItems","apply","multi","notString","Selectable","parseOptions","aria","_persistSelectedRows","useAllItems","relatedTarget","continuousItems","keyCode","SPACEBAR","shiftKey","clear","_lastActive","LEFT","RIGHT","UP","DOWN","selectRange","_firstSelectee","grid","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","parseFloat","any","hideMinScreenCols","screenWidth","innerWidth","screen","_iterateMinScreenCols","_relatedCell","clearSelection","_deselectCheckRows","selectableoptions","prop","_toggleHeaderCheckState","checked","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","touch","_tableFocus","_tableBlur","_tableKeyDown","altKey","_setTabIndex","handled","requestInProgress","canHandle","isDefaultPrevented","_moveUp","_moveDown","_moveRight","_moveLeft","PAGEDOWN","_handlePageDown","PAGEUP","_handlePageUp","HOME","_handleHome","END","_handleEnd","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","link","focusable","originalIndex","_currentDataIndex","lockedColumnsCount","tmpIndex","currentRowCells","hiddenColumns","up","step","right","back","switchRow","isEdited","isIE","oldIE","editContainer","opera","triggerHandler","_initMobile","Pane","documentElement","align","effect","_scrollable","originalPageSize","hasVirtualScroll","_createVirtualScrollable","_scrollLeft","_endlessFetchInProgress","_skipRerenderItemsCount","movable","_averageRowHeight","_restoreEditableState","scroll","_focusEditable","_onVirtualPaging","_cacheEditableState","_isVirtualPopupEditable","editableState","editedModel","inlineMode","incellMode","_getByUid","editedField","_canFocusEditable","widget","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","_headerCells","_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","_prepareColumns","_updateCols","_retrieveFirstColumn","parentRow","childRow","totalColSpan","_updateHeaderCols","_updateLockedCols","_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","pop","_firstDataItem","grouped","headerCellIndex","_columnVisibilitySetter","_setParentsVisibility","predicate","p","originalColumn","columnLeafIndex","_resize","force","_isActiveInTable","contentScrollLeft","cachedItemsToSkip","isCurrentInHeader","_progressTimeOut","_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","fail","err","renderPage","origBody","_initPDFProgress","_drawPDF","exportPage","doc","_drawPDFShadow","avoidLinks","done","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.mobile.actionsheet',\n 'kendo.mobile.pane',\n 'kendo.ooxml',\n 'kendo.excel',\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, PROGRESS = 'progress', ERROR = 'error', DATA_CELL = ':not(.k-group-cell):not(.k-hierarchy-cell):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-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', RESIZE = 'resize', COLUMNRESIZE = 'columnResize', COLUMNREORDER = 'columnReorder', COLUMNLOCK = 'columnLock', COLUMNUNLOCK = 'columnUnlock', NAVIGATE = 'navigate', CLICK = 'click', 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, 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 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 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 || 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.height() - webkitCorrection) {\n that._scrollTop = that.wrapper[0].scrollHeight - that.wrapper.height();\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) {\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);\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) {\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).append(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);\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) {\n index--;\n } else if (index > 0 || index === 0 && !before) {\n index += before ? -1 : 1;\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, '$1:none');\n if (style === attr.style) {\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 }\n },\n destroy: function () {\n var that = this, element;\n that._angularItems('cleanup');\n that._destroyColumnAttachments();\n Widget.fn.destroy.call(that);\n this._navigatableTables = null;\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 that.pager = null;\n if (that.groupable && that.groupable.element) {\n that.groupable.element.kendoGroupable('destroy');\n }\n that.groupable = null;\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.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 = 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 groups = this._groups();\n var left;\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 if (!isRtl) {\n left = th[0].offsetWidth;\n var cells = leafDataCells(th.closest('thead')).filter(':visible');\n for (var idx = 0; idx < cells.length; idx++) {\n if (cells[idx] == th[0]) {\n break;\n }\n left += cells[idx].offsetWidth;\n }\n if (groups > 0) {\n left += outerWidth(container.find('.k-group-cell:first')) * groups;\n }\n if (that._hasDetails()) {\n left += outerWidth(container.find('.k-hierarchy-cell:first'));\n }\n } else {\n left = th.position().left;\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 resizeHandle.css({\n top: th.position().top,\n left: left - indicatorWidth,\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, '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 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._hideResizeHandle();\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 hold: function (e) {\n var th = $(e.target);\n e.preventDefault();\n th.addClass('k-column-active');\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._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 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 $('
').css({\n width: target.width(),\n paddingLeft: target.css('paddingLeft'),\n paddingRight: target.css('paddingRight'),\n lineHeight: target.height() + 'px',\n paddingTop: target.css('paddingTop'),\n paddingBottom: target.css('paddingBottom')\n }).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) {\n var that = this;\n var sourcePosition = columnPosition(sources[0], that.columns);\n var destPosition = columnPosition(target, that.columns);\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 var ths = elements(that.lockedHeader, that.thead, 'tr:eq(' + sourcePosition.row + ')>th.k-header:not(.k-group-cell,.k-hierarchy-cell)');\n var sourceLockedColumns = lockedColumns(sources).length;\n var targetLockedColumns = lockedColumns([target]).length;\n if (leafs.length) {\n if (sourceLockedColumns > 0 && targetLockedColumns === 0) {\n moveCellsBetweenContainers(sources, target, leafs, that.columns, that.lockedHeader.find('thead'), that.thead, this._groups());\n } else if (sourceLockedColumns === 0 && targetLockedColumns > 0) {\n moveCellsBetweenContainers(sources, target, leafs, that.columns, that.thead, that.lockedHeader.find('thead'), this._groups());\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 that._reorderHeader(leafs, target, before);\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._templates();\n that._updateColumnCellIndex();\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 && !$.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 that.wrapper.on(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 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 () {\n that.timer = setTimeout(handler, 1);\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.height() - 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 }\n };\n if (that.editable) {\n if (that._editMode() === 'popup' && !that._isMobile) {\n that._editContainer.data('kendoWindow').bind('deactivate', destroy).close();\n } else {\n destroy();\n }\n }\n if (that._actionSheet) {\n that._actionSheet.destroy();\n that._actionSheet = 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 = 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 = '
';\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 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 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 html += '
';\n if (isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\n format: column.format,\n editor: column.editor,\n values: column.values\n });\n html += '
';\n } else {\n var 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 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: '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.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._createButton({\n name: 'update',\n text: updateText,\n attr: attr\n }) + (options.title || 'Edit') + that._createButton({\n name: 'canceledit',\n text: cancelText,\n attr: attr\n }) + '
' + 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 if (that._isMobile) {\n container.find('input[type=checkbox],input[type=radio]').parent('.k-edit-field').addClass('k-check').prev('.k-edit-label').addClass('k-check').click(function () {\n $(this).next().children('input').click();\n });\n }\n that._openPopUpEditor();\n that.trigger(EDIT, {\n container: container,\n model: model\n });\n },\n _openPopUpEditor: function () {\n if (!this._isMobile) {\n this._editContainer.data('kendoWindow').center().open();\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 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 template = kendo.template('');\n var html = $(template(messages)).appendTo(that.view.element);\n var actionSheet = that._actionSheet = new kendo.mobile.ui.ActionSheet(html, {\n cancel: messages.cancelDelete,\n cancelTemplate: '
  • #:cancel#
  • ',\n close: function () {\n this.destroy();\n },\n command: function (e) {\n var item = $(e.currentTarget).parent();\n if (!item.hasClass('km-actionsheet-cancel')) {\n that._removeRow(row);\n }\n },\n popup: that._actionSheetPopupOptions\n });\n actionSheet.open(row);\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.groupable.destroy();\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._page = 1;\n }\n }\n }\n }));\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 if (!cell) {\n that._persistSelectedRows();\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 current.removeClass(SELECTED);\n that.trigger(CHANGE);\n return;\n }\n }\n } else {\n that.selectable.clear();\n }\n if (!cell) {\n that.selectable._lastActive = current;\n }\n that.selectable.value(current);\n } 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 = $('