{"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","isColumnGroupable","grid","groupable","isGroupedBy","isColumnEditable","model","selectable","editable","isInputElement","tableClick","currentTarget","isHeader","lockedTable","headerTable","lockedHeader","isInput","currentTable","roleSelector","_setCurrent","navigatable","isIE8","_activeElement","contains","support","touch","leftMostPosition","webkit","isInEdit","groupCellBuilder","headerTemplateIndex","ARIALABEL","COLLAPSE","groupCellLockedContentBuilder","groupRowBuilder","colspan","groupRowLockedContentBuilder","ui","DataSource","ObservableObject","tbodyInnerHtml","activeElement","Widget","outerWidth","_outerWidth","outerHeight","_outerHeight","keys","prototype","isFunction","isEmptyObject","math","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","MOUSEDOWN","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","isMac","navigator","userAgent","VirtualScrollable","that","fn","call","_refreshHandler","refresh","setDataSource","dataSource","wrap","unbind","bind","useRanges","itemHeight","noop","prefetch","maxScrollHeight","events","destroy","wrapper","verticalScrollbar","off","clearTimeout","_timeout","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","_page","take","scrollToTop","_scrollTo","scrollToBottom","_scrollWrapperToTop","_scrollWrapperToBottom","_scrollWrapperOnColumnResize","initialScrollTop","scrollWidth","clientWidth","_wrapperScrolled","_isScrolledToBottom","_isWrapperScrolledToBottom","_isScrolledToTop","itemIndex","rangeStart","_isElementVisible","_isElementVisibleInWrapper","halfHeight","top","abs","pageSize","scrollIntoView","containerHeight","containerScroll","elementOffset","elementHeight","scrollingUp","currentSkip","fetching","prefetchAt","webkitCorrection","min","total","_fetching","callback","inRange","progress","range","repaintScrollbar","shouldScrollWrapper","maxHeight","wrapperElement","wasScrolledToBottom","addScrollBarHeight","totalHeight","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","virtualScrollable","toolbar","filterable","sortable","allowCopy","pageable","persistSelection","rowTemplate","altRowTemplate","noRecords","resizable","reorderable","columnMenu","detailTemplate","columnResizeHandleWidth","mobile","messages","cancelDelete","confirmation","confirmDelete","expandCollapseColumnHeader","groupHeader","ungroupHeader","_angularItems","_destroyColumnAttachments","_navigatableTables","pager","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","_updateLockedCols","_updateCols","_updateColumnCellIndex","_renderGroupRows","_updateTablesWidth","_updateFirstColumnClass","lockColumn","unlockColumn","cellIndex","td","lockedColumnOffset","_modelForContainer","_editMode","getByUid","mode","multiple","handler","_editContainer","end","closeCell","_scrollVirtualWrapper","editContainer","_mousedownOnEditCell","isLockedCell","has","blur","editCell","timer","shouldCloseCell","editRow","_isVirtualInlineEditable","stopPropagation","removeRow","_confirmation","_attachModelChange","_shouldClearEditableState","_clearEditableState","kendoEditable","fields","editor","values","skipFocus","_isVirtualIncellEditable","_editableState","_relatedRow","_adjustLockedHorizontalScrollBar","touchScroller","_adjustRowsHeight","_syncLockedFooterHeight","editView","_editCancelClickHandler","_editUpdateClickHandler","_detachModelChange","_destroyEditView","_editableIsClosing","close","_actionSheet","purge","navigate","_modelChangeHandler","_modelChange","isCancel","type","_displayCell","ns","dataItem","storage","settings","Template","templateSettings","tmpl","template","_cellTmpl","_removeRow","modelId","schema","cancelRow","idField","sync","_createPopupEditor","_createInlineEditor","_editCancelClick","_editUpdateClick","saveRow","currentIndex","updateText","cancelText","updateIconClass","cancelIconClass","tempCommand","unescape","_createButton","kendoWindow","modal","userTriggered","clearContainer","_openPopUpEditor","windowEditor","windowOptions","_editAnimation","center","open","Editable","cancelChanges","_displayRow","valid","deferred","Deferred","reject","promise","resolve","related","newRow","nextRow","angularElements","angularData","isSelected","isAlt","replaceWith","_checkBoxSelection","select","_showMessage","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","_pageSize","_take","_continuousItems","lockedItems","nonLockedItems","apply","multi","notString","Selectable","parseOptions","aria","_persistSelectedRows","useAllItems","relatedTarget","continuousItems","keyCode","SPACEBAR","shiftKey","clear","_lastActive","LEFT","RIGHT","UP","DOWN","selectRange","_firstSelectee","stopImmediatePropagation","copySelection","areaClipBoard","val","getTSV","Event","metaKey","getSelection","selection","createRange","opacity","cellsOffset","lockedCols","inLockedArea","rowsOffset","selected","delimeter","onlyVisible","cellText","_anyColumnHasMediaQuery","_setColumnsMediaVisibility","_attachColumnMediaResizeHandler","_columnsWithMediaQuery","_columnMediaResizeHandler","_onColumnMediaResize","_setContentMediaWidth","_setColumnMediaVisibility","_showColumnByMedia","_hideColumnByMedia","showColumn","initiallyHidden","hideColumn","headerColumns","headerColgroup","headerColumnsCount","visibleHeaderColumnsCount","hiddenHeaderColumnsCount","totalHeaderWidth","currentHeaderWidth","colgroupChild","columnStyleWidth","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","_tableFocus","_tableBlur","_tableKeyDown","altKey","_setTabIndex","handled","requestInProgress","canHandle","isDefaultPrevented","_moveUp","_moveDown","_moveRight","_moveLeft","PAGEDOWN","_handlePageDown","PAGEUP","_handlePageUp","HOME","_handleHome","END","_handleEnd","_handleSpaceKey","ENTER","F2","_handleEnterKey","ESC","_handleEscKey","TAB","_handleTabKey","collapseRow","_moveColumn","_prevHorizontalCell","_tabNext","_horizontalContainer","expandRow","_nextHorizontalCell","nextAll","_prevVerticalCell","_verticalContainer","_nextVerticalCell","isLeft","ctrl","rowContainer","isInLockedTable","isInBody","isInCell","_handleEditing","active","_toggleCurrent","descriptors","label","_canDrag","dir","link","focusable","originalIndex","_currentDataIndex","lockedColumnsCount","tmpIndex","currentRowCells","hiddenColumns","up","step","right","back","switchRow","isEdited","isIE","oldIE","opera","triggerHandler","_initMobile","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","_retrieveFirstColumn","parentRow","childRow","totalColSpan","_updateHeaderCols","_autoColumns","toJSON","_rowsHtml","templates","_groupData","skipFooter","firstColumn","footerDefaults","_groupAggregatesDefaultObject","groupItems","headerData","footerData","_groupRowHtml","groupHeaderBuilder","skipColspan","skipLastGroup","groupData","groupHeaderTemplate","_skippedGroups","shift","toHide","groupToCollapse","showFooter","footerCount","relatedGroup","_groupToCollapse","footersVisibility","groupsCount","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:not(:has(.k-icon.k-i-collapse,.k-icon.k-i-expand))):visible', SELECTION_CELL_SELECTOR = 'tbody>tr:not(.k-grouping-row):not(.k-detail-row):not(.k-group-footer) > td:not(.k-group-cell):not(.k-hierarchy-cell)', NAVROW = 'tr:not(.k-footer-template):visible', NAVCELL = ':not(.k-group-cell):not(.k-detail-cell):not(.k-hierarchy-cell):visible', ITEMROW = 'tr:not(.k-grouping-row):not(.k-detail-row):not(.k-footer-template):not(.k-group-footer):visible', FIRSTITEMROW = ITEMROW + ':first', LASTITEMROW = ITEMROW + ':last', FIRSTNAVITEM = NAVROW + ':first>' + NAVCELL + ':first', HEADERCELLS = 'th.k-header:not(.k-group-cell):not(.k-hierarchy-cell)', NS = '.kendoGrid', CONTENTRLOCKEDCONTAINER = 'k-grid-content-locked', GROUPCELLCLASS = 'k-group-cell', EDIT = 'edit', BEFOREEDIT = 'beforeEdit', SAVE = 'save', REMOVE = 'remove', DETAILINIT = 'detailInit', FILTERMENUINIT = 'filterMenuInit', COLUMNMENUINIT = 'columnMenuInit', FILTERMENUOPEN = 'filterMenuOpen', COLUMNMENUOPEN = 'columnMenuOpen', CELLCLOSE = 'cellClose', CHANGE = 'change', COLUMNHIDE = 'columnHide', COLUMNSHOW = 'columnShow', SAVECHANGES = 'saveChanges', DATABOUND = 'dataBound', DETAILEXPAND = 'detailExpand', DETAILCOLLAPSE = 'detailCollapse', ITEM_CHANGE = 'itemchange', PAGE = 'page', PAGING = 'paging', SCROLL = 'scroll', SYNC = 'sync', FOCUSED = 'k-state-focused', FOCUSABLE = ':kendoFocusable', SELECTED = 'k-state-selected', CHECKBOX = 'k-checkbox', CHECKBOXINPUT = 'input[data-role=\\'checkbox\\'].' + CHECKBOX, NORECORDSCLASS = 'k-grid-norecords', RESIZE = 'resize', COLUMNRESIZE = 'columnResize', COLUMNREORDER = 'columnReorder', COLUMNLOCK = 'columnLock', COLUMNUNLOCK = 'columnUnlock', NAVIGATE = 'navigate', CLICK = 'click', MOUSEDOWN = 'mousedown', HEIGHT = 'height', TABINDEX = 'tabIndex', FUNCTION = 'function', STRING = 'string', BOTTOM = 'bottom', CONTAINER_FOR = 'container-for', FIELD = 'field', INPUT = 'input', INCELL = 'incell', INLINE = 'inline', UNIQUE_ID = 'uid', MINCOLSPANVALUE = 1, DELETECONFIRM = 'Are you sure you want to delete this record?', NORECORDS = 'No records available.', CONFIRMDELETE = 'Delete', CANCELDELETE = 'Cancel', COLLAPSE = 'Collapse', EXPAND = 'Expand', ARIALABEL = 'aria-label', formatRegExp = /(\\}|\\#)/gi, templateHashRegExp = /#/gi, whitespaceRegExp = '[\\\\x20\\\\t\\\\r\\\\n\\\\f]', nonDataCellsRegExp = new RegExp('(^|' + whitespaceRegExp + ')' + '(k-group-cell|k-hierarchy-cell)' + '(' + whitespaceRegExp + '|$)'), filterRowRegExp = new RegExp('(^|' + whitespaceRegExp + ')' + '(k-filter-row)' + '(' + whitespaceRegExp + '|$)'), COMMANDBUTTONTMPL = '# if (iconClass) {#' + '#=text#' + '# } else { #' + '#=text#' + '# } #', SELECTCOLUMNTMPL = '# var checkboxGuid = kendo.guid(); #' + '' + '', SELECTCOLUMNHEADERTMPL = '# var checkboxGuid = kendo.guid(); #' + '' + '', isRtl = false, browser = kendo.support.browser, isIE7 = browser.msie && browser.version == 7, isIE8 = browser.msie && browser.version == 8;\n var isIE11 = browser.msie && browser.version === 11;\n var isMac = /Mac OS/.test(navigator.userAgent);\n var VirtualScrollable = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n that._refreshHandler = proxy(that.refresh, that);\n that.setDataSource(options.dataSource);\n that.wrap();\n },\n setDataSource: function (dataSource) {\n var that = this;\n if (that.dataSource) {\n that.dataSource.unbind(CHANGE, that._refreshHandler);\n }\n that.dataSource = dataSource;\n that.dataSource.bind(CHANGE, that._refreshHandler);\n that.dataSource.options.useRanges = true;\n },\n options: {\n name: 'VirtualScrollable',\n itemHeight: $.noop,\n prefetch: true,\n maxScrollHeight: 250000\n },\n events: [\n PAGING,\n PAGE,\n SCROLL\n ],\n destroy: function () {\n var that = this;\n Widget.fn.destroy.call(that);\n that.dataSource.unbind(CHANGE, that._refreshHandler);\n that.wrapper.add(that.verticalScrollbar).off(NS);\n clearTimeout(that._timeout);\n if (that.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 groupHeader: 'Press ctrl + space to group',\n ungroupHeader: 'Press ctrl + space to ungroup'\n }\n },\n destroy: function () {\n var that = this, element;\n that._angularItems('cleanup');\n that._destroyColumnAttachments();\n Widget.fn.destroy.call(that);\n 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, nonLockedColumns(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._updateLockedCols();\n that._updateCols();\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 && cell[0] && !$.contains(cell[0], target) && cell[0] !== target && !$(target).closest('.k-animation-container').length) {\n if (that.editable.end()) {\n that.closeCell();\n } else {\n that._scrollVirtualWrapper();\n }\n }\n };\n if (editable) {\n this.wrapper.addClass('k-editable');\n var mode = that._editMode();\n if (mode === 'incell') {\n that.table.add(that.lockedTable).on('mousedown' + NS, NAVROW + '>' + NAVCELL, function (e) {\n var target = $(e.target);\n if (that._editMode() === 'incell' && target.hasClass('k-checkbox-label') && target.prev().attr(kendo.attr('bind'))) {\n e.preventDefault();\n }\n });\n if (editable.update !== false) {\n if (isMac) {\n that.wrapper.on(CLICK + NS, '.k-edit-cell > input[type=\\'checkbox\\']', function (e) {\n $(e.target).focus();\n }).on(CLICK + NS, '.k-edit-cell', function (e) {\n if (!$(e.target).is('input')) {\n $(e.currentTarget).find('input[type=\\'checkbox\\']').focus();\n }\n }).on(MOUSEDOWN + NS, 'tr:not(.k-grouping-row) > td', function (e) {\n var editContainer = that._editContainer;\n if (editContainer && editContainer[0] && $.contains(editContainer[0], e.target) || editContainer[0] === e.target) {\n that._mousedownOnEditCell = true;\n } else {\n that._mousedownOnEditCell = false;\n }\n });\n }\n that.wrapper.on(CLICK + NS, 'tr:not(.k-grouping-row) > td', function (e) {\n var td = $(this), isLockedCell = that.lockedTable && td.closest('table')[0] === that.lockedTable[0];\n that._mousedownOnEditCell = false;\n if (td.hasClass('k-hierarchy-cell') || td.hasClass('k-detail-cell') || td.hasClass('k-group-cell') || td.hasClass('k-edit-cell') || td.has('a.k-grid-delete').length || td.has('button.k-grid-delete').length || td.closest('tbody')[0] !== that.tbody[0] && !isLockedCell || $(e.target).is(':input')) {\n return;\n }\n if (that.editable) {\n if (that.editable.end()) {\n if (selectable) {\n $(activeElement()).blur();\n }\n that.closeCell();\n that.editCell(td);\n } else {\n that._scrollVirtualWrapper();\n }\n } else {\n that.editCell(td);\n }\n }).on('focusin' + NS, function () {\n if (!$.contains(this, activeElement())) {\n clearTimeout(that.timer);\n that.timer = null;\n }\n }).on('focusout' + NS, function (e) {\n var shouldCloseCell = true;\n if (isMac && that._mousedownOnEditCell) {\n shouldCloseCell = false;\n }\n that._mousedownOnEditCell = false;\n if (shouldCloseCell) {\n that.timer = setTimeout(function () {\n handler(e);\n }, 1);\n }\n });\n }\n } else {\n if (editable.update !== false) {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible a.k-grid-edit', function (e) {\n e.preventDefault();\n that.editRow($(this).closest('tr'));\n });\n if (that._isVirtualInlineEditable()) {\n that.wrapper.on('focusout' + NS, 'tr:not(.k-grouping-row) > td', function () {\n if (that.editable && !that.editable.end()) {\n that._scrollVirtualWrapper();\n }\n });\n }\n }\n }\n if (editable.destroy !== false) {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible .k-grid-delete', function (e) {\n e.preventDefault();\n e.stopPropagation();\n that.removeRow($(this).closest('tr'));\n });\n } else {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible button.k-grid-delete', function (e) {\n e.stopPropagation();\n if (!that._confirmation()) {\n e.preventDefault();\n }\n });\n }\n }\n },\n editCell: function (cell) {\n cell = $(cell);\n var that = this, column = leafColumns(that.columns)[that.cellIndex(cell)], model = that._modelForContainer(cell);\n that.closeCell();\n if (model && isColumnEditable(column, model) && !column.command) {\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n that._attachModelChange(model);\n that._editContainer = cell;\n if (that._shouldClearEditableState) {\n that._clearEditableState();\n }\n that.editable = cell.addClass('k-edit-cell').kendoEditable({\n fields: {\n field: column.field,\n format: column.format,\n editor: column.editor,\n values: column.values\n },\n model: model,\n target: that,\n change: function (e) {\n if (that.trigger(SAVE, {\n values: e.values,\n container: cell,\n model: model\n })) {\n e.preventDefault();\n }\n },\n skipFocus: that._isVirtualIncellEditable() && that._editableState ? true : false\n }).data('kendoEditable');\n var tr = cell.parent().addClass('k-grid-edit-row');\n if (that.lockedContent) {\n adjustRowHeight(tr[0], that._relatedRow(tr).addClass('k-grid-edit-row')[0]);\n }\n that.trigger(EDIT, {\n container: cell,\n model: model\n });\n }\n },\n _adjustLockedHorizontalScrollBar: function () {\n var table = this.table, content = table.parent();\n var scrollbar = table[0].offsetWidth > content[0].clientWidth ? kendo.support.scrollbar() : 0;\n this.lockedContent.height(content.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 that._editableIsClosing = null;\n }\n };\n if (that.editable) {\n if (that._editMode() === 'popup' && !that._isMobile) {\n that._editableIsClosing = true;\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 = isFunction(that.dataSource.options.schema.model) ? that.dataSource.options.schema.model.fn.idField : that.dataSource.options.schema.model.id;\n key = model[modelId];\n delete that._selectedIds[key];\n }\n that.dataSource.remove(model);\n if (mode === 'inline' || mode === 'popup') {\n that.dataSource.sync();\n }\n } else if (mode === 'incell') {\n that._destroyEditable();\n }\n },\n _editMode: function () {\n var mode = 'incell', editable = this.options.editable;\n if (editable !== true) {\n if (typeof editable == 'string') {\n mode = editable;\n } else {\n mode = editable.mode || mode;\n }\n }\n return mode;\n },\n editRow: function (row) {\n var model;\n var that = this;\n if (row instanceof ObservableObject) {\n model = row;\n } else {\n row = $(row);\n model = that._modelForContainer(row);\n }\n var mode = that._editMode();\n var container;\n that.cancelRow();\n if (model) {\n row = that.tbody.children('[' + kendo.attr('uid') + '=' + model.uid + ']');\n that._attachModelChange(model);\n if (mode === 'popup') {\n that._createPopupEditor(model);\n } else if (mode === 'inline') {\n that._createInlineEditor(row, model);\n } else if (mode === 'incell') {\n $(row).children(DATA_CELL).each(function () {\n var cell = $(this);\n var column = leafColumns(that.columns)[that.cellIndex(cell)];\n model = that._modelForContainer(cell);\n if (model && (!model.editable || model.editable(column.field)) && column.field && !column.selectable) {\n that.editCell(cell);\n return false;\n }\n });\n }\n container = that.editView ? that.editView.element : that._editContainer;\n if (container) {\n if (!this._editCancelClickHandler) {\n this._editCancelClickHandler = proxy(this._editCancelClick, this);\n }\n container.on(CLICK + NS, 'a.k-grid-cancel', this._editCancelClickHandler);\n if (!this._editUpdateClickHandler) {\n this._editUpdateClickHandler = proxy(this._editUpdateClick, this);\n }\n container.on(CLICK + NS, 'a.k-grid-update', this._editUpdateClickHandler);\n }\n }\n },\n _editUpdateClick: function (e) {\n e.preventDefault();\n e.stopPropagation();\n this.saveRow();\n },\n _editCancelClick: function (e) {\n var that = this;\n var navigatable = that.options.navigatable;\n var model = that.editable.options.model;\n var container = that.editView ? that.editView.element : that._editContainer;\n e.preventDefault();\n e.stopPropagation();\n if (that.trigger('cancel', {\n container: container,\n model: model\n })) {\n return;\n }\n var currentIndex = that.items().index($(that.current()).parent());\n that.cancelRow();\n if (navigatable) {\n that._setCurrent(that.items().eq(currentIndex).children().filter(NAVCELL).first());\n focusTable(that.table, true);\n }\n },\n _createPopupEditor: function (model) {\n var that = this;\n var html = '
';\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 var that = this;\n var windowEditor = that._editContainer ? that._editContainer.data('kendoWindow') : null;\n var windowOptions = (that.options.editable || {}).window || {};\n if (!this._isMobile) {\n if (windowEditor) {\n if (!windowOptions.position) {\n windowEditor.center();\n }\n windowEditor.open();\n }\n } else {\n this.pane.navigate(this.editView, this._editAnimation);\n }\n },\n _createInlineEditor: function (row, model) {\n var that = this;\n var column;\n var cell;\n var command;\n var fields = [];\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n if (that.lockedContent) {\n row = row.add(that._relatedRow(row));\n }\n row.children(':not(.k-group-cell,.k-hierarchy-cell)').each(function () {\n cell = $(this);\n column = leafColumns(that.columns)[that.cellIndex(cell)];\n if (!column.command && isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\n 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._pageSize = that.dataSource._take = that._endlessPageSize;\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 = $('