{"version":3,"file":"kendo.treelist.min.js","names":["factory","define","amd","$","undefined$1","data","kendo","kendoDom","dom","kendoDomElement","element","kendoTextElement","text","kendoHtmlElement","html","outerWidth","_outerWidth","keys","outerHeight","_outerHeight","ui","DataBoundWidget","DataSource","ObservableArray","Query","Model","browser","support","kendoTemplate","template","activeElement","_activeElement","touchDevice","touch","isArray","Array","extend","map","grep","inArray","isPlainObject","push","prototype","STRING","CHANGE","ITEM_CHANGE","ERROR","PROGRESS","DOT","NS","CLICK","BEFORE_EDIT","EDIT","PAGE","SAVE","SAVE_CHANGES","EXPAND","COLLAPSE","CELL_CLOSE","REMOVE","DATA_CELL","FILTER_CELL","DATABINDING","DATABOUND","CANCEL","TABINDEX","FILTERMENUINIT","FILTERMENUOPEN","COLUMNHIDE","COLUMNSHOW","COLUMNREORDER","COLUMNRESIZE","COLUMNMENUINIT","COLUMNMENUOPEN","COLUMNLOCK","COLUMNUNLOCK","FILTER","NAVIGATE","SORT","PARENTIDFIELD","DRAGSTART","DRAG","DROP","DRAGEND","NAVROW","NAVCELL","NAVHEADER","NORECORDSCLASS","ITEMROW","isRtl","CHECKBOX","CHECKBOXINPUT","SELECTED","filterRowRegExp","RegExp","classNames","wrapper","header","button","alt","editCell","editRow","dirtyCell","group","toolbar","gridToolbar","gridHeader","gridHeaderWrap","gridContent","gridContentWrap","gridFilter","footerTemplate","focused","loading","refresh","retry","selected","status","link","filterable","icon","iconFilter","iconCollapse","iconExpand","iconHidden","iconPlaceHolder","input","dropPositions","dropTop","dropBottom","dropAdd","dropMiddle","dropDenied","dragStatus","dragClue","dragClueText","headerCellInner","columnTitle","defaultCommands","create","imageClass","className","methodName","createchild","destroy","edit","update","canceledit","cancel","save","excel","pdf","search","TreeView","Class","init","options","that","this","defaultParentId","idField","parentIdField","childrenMap","dataItem","dataItemId","dataItemParentId","dataLength","length","_childrenMap","i","idsMap","_idMap","dataMaps","_dataMaps","children","ids","rootNodes","removeCollapsedSubtreesFromRootNodes","prunedTree","result","maxDepth","Infinity","removeCollapsedSubtrees","concat","rootNode","childIdx","expanded","isUndefined","TreeQuery","constructor","process","inPlace","total","filteredChildrenMap","view","prunedData","query","sort","normalizeGroup","normalizeSort","filterCallback","filter","skip","take","toArray","processFromRootNodes","range","TreeListModel","id","parentId","fields","type","nullable","value","fn","call","_loaded","get","accept","set","field","initiator","loaded","shouldSerialize","is","object","not","func","base","model","TreeListDataSource","_getDataMaps","schema","modelBase","_addRange","_createNewModel","fromModel","_modelParentIdField","_isPageable","_shouldWrap","_push","operation","_readData","_getData","_data","newData","toJSON","_replaceData","source","target","sourceLength","_readAggregates","_aggregateResult","reader","aggregates","_defaultParentId","read","_modelOptions","_skip","_page","_collapsedTotal","remove","root","_removeChildData","_removeFromDataMaps","removePristine","pageable","_getChildrenMap","items","_subtree","shouldRemovePristine","removedItems","_removeItems","pushDestroy","insert","index","newModel","_insertInDataMaps","_filterCallback","item","parent","_modelIdField","parentSubtree","_parentNode","unshift","parentNode","len","_observeView","_createTreeView","_initIdsMap","_idsMap","_getIdsMap","_getFilteredChildrenMap","filteredChildren","_setFilteredChildrenMap","_initDataMaps","_initChildrenMapForParent","_defaultTreeModelOptions","modelOptions","_defaultDataItemType","ObservableObject","_calculateAggregates","subtree","pageableChildrenMap","aggregate","bind","_queryProcess","_processPageableQuery","hasLoadedChildren","hasChildren","slice","_processTreeQuery","_replaceWithObservedData","_processDataItemsState","_replaceItemsInDataMaps","dataToAggregate","_dataToAggregate","_replaceInMapWithObservedData","_calculateCollapsedTotal","firstDataItem","_parentNodes","observableArray","parents","directParent","itemType","viewIndex","_insertInIdsMap","_replaceInMap","replacement","itemInArray","itemIndex","indexOf","dataToReplace","replacementArray","itemToReplace","itemToReplaceId","dataItemIndex","observableItem","_getById","at","key","_insertInChildrenMap","itemId","splice","_removeFromIdsMap","_removeFromChildrenMap","_indexInChildrenMap","_itemIndexInMap","dataMap","uid","_isLastItemInView","_defaultPageableQueryOptions","page","pageSize","serverPaging","_updateTotalForAction","action","_updateCollapsedTotalForAction","parseInt","isNaN","_setFilterTotal","filterTotal","setDefaultValue","collapsedTotal","filteredData","_dataWithoutCollapsedSubtrees","_removeCollapsedSubtrees","_processDataItemState","_queueRequest","callback","_modelLoaded","childNodes","_modelError","e","_error","success","requestParams","_observe","_total","load","method","remote","serverSorting","serverFiltering","serverGrouping","serverAggregates","defaultPromise","Deferred","resolve","promise","done","fail","contains","child","rootId","_byParentId","defaultId","current","defaults","allChildNodes","directChildren","_rootNode","_pageableRootNodes","node","nodesWithoutParentInView","_nodesWithoutParentInView","_parentNodesNotInView","_parentInView","level","_pageableModelLevel","baseFilter","_pageableQueryOptions","_flatData","cancelChanges","_restorePageSizeAfterAddChild","_modelCanceled","_changesCanceled","_setAddChildPageSize","queryOptions","_addChildPageSize","_query","sync","then","_syncEnd","isCellVisible","style","display","sortCells","cells","indexAttr","attr","a","b","indexA","indexB","leafDataCells","container","rows","find","el","hasClass","add","last","createPlaceholders","spans","columnsWidth","cols","colWidth","width","idx","TreeListPager","Pager","name","totalPages","dataSource","_filter","Math","ceil","_createDataSource","Editor","Observable","events","_fields","columns","_initContainer","createEditable","renderForm","form","Form","buttonsTemplate","formData","change","editable","Editable","clearContainer","_isEditable","column","isColumnEditable","format","editor","editorOptions","label","title","end","close","empty","removeAttr","PopupEditor","_attachHandlers","cycleForm","open","window","modal","resizable","draggable","visible","formContent","append","_appendTemplate","_appendButtons","Tree","render","appendTo","Window","unescape","class","commandRenderer","closeHandler","_cancelProxy","_cancel","on","_saveProxy","_save","userTriggered","_detachHandlers","off","trigger","center","IncellEditor","TreeList","_events","_dataSource","_aria","_columns","_layout","_navigatable","_selectable","_sortable","_resizable","_filterable","_filterRow","_attachEvents","_toolbar","_scrollable","_reorderable","_columnMenu","_minScreenSupport","_draggable","_pageable","autoBind","fetch","_hasLockedColumns","widget","addClass","_resizeHandler","resize","notify","reorderable","move","_dragging","HierarchicalDragAndDrop","$angular","autoScroll","holdToDrag","itemSelector","allowedContainers","hintText","row","join","destination","dest","src","itemFromTarget","first","tr","closest","prevRow","prev","nextRow","next","sameLevel","content","dragstart","css","drag","drop","removeClass","dragend","originalSrcParentId","originalSrcIndex","position","isPrevented","insertBefore","insertAfter","dropHintContainer","eq","dropPositionFrom","dropHint","contents","dropHintElement","isAfterText","prevAll","nodeType","arguments","nodeData","referenceNode","insertAction","indexOffset","destIndex","nodeDataIndex","originalDestIndex","_unbindDataSource","_unbindDataChange","_destroyed","pop","_bindDataChange","_bindDataSource","_changeHandler","unbind","_refreshHandler","itemFor","tbody","_itemFor","table","lockedContent","lockedTable","scrollable","scrollables","thead","_wheelScroll","scrollLeft","scrollTop","touchScroller","movable","_touchScroller","sender","x","y","ctrlKey","delta","wheelDeltaY","lockedDiv","currentTarget","scrollHeight","clientHeight","preventDefault","one","_progress","messages","_showStatus","_render","error","currentIndex","isCurrentInHeader","_cancelEditor","_adjustHeight","navigatable","_isActiveInTable","max","cellIndex","_restoreCurrent","_checkBoxSelection","_deselectCheckRows","_angularFooters","command","footer","allAggregates","footerRows","_footerItems","_angularFooter","angular","elements","col","_items","dataItems","n","tmp","_showNoRecordsTemplate","scrollableNoGridHeightStyles","height","_contentTree","_lockedContentTree","noRows","message","hide","_hideStatus","_hideNoRecordsTempalte","show","contentWrap","pagerHeight","pager","scrollbar","initialHeight","newHeight","offsetWidth","clientWidth","_resize","size","force","_applyLockedContainersWidth","hideMinScreenCols","minScreenResizeHandler","_iterateMinScreenCols","screenWidth","any","minWidth","minScreenWidth","hideColumn","showColumn","hidden","innerWidth","screen","_destroyColumnAttachments","_errorHandler","_progressHandler","_navigatableTables","_current","_draggableInstance","selectable","_userEvents","_destroyEditor","_destroyPager","_autoExpandable","_dataSourceFetchProxy","lockedHeader","_statusTree","_headerTree","_lockedHeaderColsTree","_lockedContentColsTree","_lockedHeaderTree","sortable","columnMenu","requestFailed","commands","hierarchy","renderAllRows","rowTemplate","altRowTemplate","getOptions","deepExtend","initialData","transport","setOptions","currentOptions","before","_setEvents","each","th","filterMenu","_toggle","expand","_isIncellEditable","closeCell","afterModelLoaded","_toggleData","_syncLockedContentHeight","always","_togglePageableData","_renderProgress","_refreshPager","collapse","_toggleChildren","event","tables","headerTables","_openHeaderMenu","_tableClick","_tableFocus","_tableBlur","_tableKeyDown","altKey","keyCode","DOWN","click","stopImmediatePropagation","td","lockedColumnOffset","leafColumns","lockedColumns","active","_setCurrent","focusTable","newCurrent","preventTrigger","isIncellEditable","_updateCurrentAttr","_scrollCurrent","_lastCellIndex","tableContainer","isInLockedContainer","isInContent","scrollableContainer","_scrollTo","_relatedRow","_findCurrentCell","elementToLowercase","tagName","toLowerCase","isHorizontal","elementOffsetDir","containerScroll","containerOffsetDir","elementOffset","abs","offsetLeft","bottomDistance","ieCorrection","firefoxCorrection","msie","edge","mozilla","webkit","version","_elementId","_currentDataIndex","lockedColumnsCount","_prevVerticalCell","rowIndex","cellSelector","parentColumnsCells","_nextVerticalCell","childColumnsCells","rowSpan","tmpIndex","currentRowCells","hiddenColumns","_verticalContainer","up","step","floor","headerId","replace","handled","canHandle","isDefaultPrevented","UP","_moveUp","shiftKey","_moveDown","LEFT","RIGHT","_handleExpand","_moveRight","_handleCollapse","_moveLeft","PAGEDOWN","_handlePageDown","PAGEUP","_handlePageUp","ENTER","F2","_handleEnterKey","ESC","_handleEscKey","HOME","_handleHome","END","_handleEnd","TAB","_handleTabKey","stopPropagation","ctrl","rowContainer","isInLockedTable","isInBody","currentTable","blur","cancelRow","has","focusable","_handleEditing","cell","_tabNext","_preventPageSizeRestore","back","switchRow","nextAll","editContainer","isEdited","editedCell","isIE","incellEditing","nextFocusableCellRowIndex","nextFocusableCellIndex","currentFocusedCellRowIndex","currentFocusedCellIndex","opera","triggerHandler","focus","saveRow","isHeader","headerTable","isInput","isInputElement","setTimeout","_setTabIndex","retryButton","UserEvents","press","_onPress","allowSelection","_commandClick","_search","_attachCellEditingEventHandlers","icons","multiple","isLockedCell","clearTimeout","_closeCellTimeout","relatedTarget","_commandByName","j","currentName","commandName","parentsUntil","_searchTimeOut","searchFields","expression","filters","logic","getColumnsFields","operator","_ensureExpandableColumn","expandable","visibleColumns","expandableColumns","encoded","lockedCols","Error","nonLockedColumns","normalizeColumns","_columnTemplates","_columnAttributes","_includeChildren","includeChildren","_checkboxClick","_headerCheckboxClick","dirtyCellTemplate","_createDirtyColumnTemplate","dirtyIndicatorTemplate","_createIndicatorTemplate","headerTemplate","convertStyle","properties","declaration","split","trim","camelCase","attributes","headerAttributes","_clearSortClasses","layout","addBack","rtl","_initVirtualTrees","_renderCols","_renderHeader","_headerColsTree","_contentColsTree","buttons","_buildCommands","_lockedColumns","_nonLockedColumns","_templateColumns","_flushCache","_renderOptions","maps","hasFooterTemplate","viewChildrenMap","_dataToRender","_renderedModelLevel","uidAttr","select","_","_absoluteIndex","_angularItems","_clearRenderMap","buttonClass","_viewChildrenMap","_hasFooterTemplate","_trs","editedColumn","editedColumnIndex","contentResized","_muteAngularRebind","_togglePagerVisibility","_setExpanderElement","expander","hiddenDivClass","toggle","progress","parentNotInView","parentNotInViewId","childId","parentsCopy","parentsNotInView","_markNodeAsNonRenderable","parentIndex","_skipRenderingMap","nodeId","_adjustRowsHeight","table1","table2","rows2","containers","containersLength","heights","offsetHeight1","offsetHeight","offsetHeight2","_ths","cellClasses","headerContent","leafs","ths","scope","role","colSpan","_cols","_clearColsCache","_retrieveFirstColumn","_updateFirstColumnClass","_updateRowSpans","visibleChildColumns","_setColumnDataIndexes","_updateColumnCellIndex","offset","updateCellIndex","_setParentsVisibility","predicate","p","columnParents","_prepareColumns","parentCell","parentRow","parentColumn","childRow","totalColSpan","_renderHeaderTree","tree","hasMultiColumnHeaders","rowsToRender","filterThs","_hasFilterRow","_filterThs","_syncLockedHeaderHeight","_updateFilterThs","refColumn","refIndex","currIndex","filterRowThs","thIndex","lockedWidth","nonLockedWidth","wrapperWidth","modelId","_edit","rowOptions","isAlt","_trFromTemplate","_tds","_td","_footerId","isFunction","parseRowTemplate","nodeName","toLocaleLowerCase","parseAttributes","test","nodeValue","_createCellElement","_isTextNode","spaceElements","iconElement","noop","c","renderer","editedColumnField","editColumn","iconClass","columnHasEditCommand","dirty","dirtyFields","isDirtyColumn","_cellContent","dirtyIndicator","_evalColumnTemplate","templateSettings","_customTemplateSettings","columnTemplateAlias","paramName","templateString","_dirtyIndicatorTemplate","columnTemplate","charAt","expr","Template","_handleCommand","_button","_positionResizeHandle","left","headerWrap","leftMargin","invisibleSpace","leftBorderWidth","resizeHandle","rtlCorrection","cellWidth","which","indicatorWidth","columnResizeHandleWidth","halfResizeHandle","parseFloat","scrollWidth","top","val","locked","autoFitColumn","isLocked","visibleLocked","contentTable","footerTable","oldColumnWidth","newColumnWidth","totalWidth","oldWidth","newWidth","_adjustLockedHorizontalScrollBar","_syncLockedScroll","diff","lockedHeigth","tableHeigth","syncTableHeight","treelist","Resizable","handle","start","startLocation","location","columnWidth","rtlModifier","resizeend","sortableInstance","sortHandler","_sort","kendoColumnSorter","filterMenuInstance","filterInit","filterOpen","filterHandler","mode","kendoFilterMenu","settings","existingInstance","suggestDataSource","operators","customDataSource","cellOptions","enabled","values","delay","inputWidth","suggestionOperator","minLength","dataTextField","showOperators","kendoFilterCell","hasFiltering","columnsWithoutFiltering","_change","selectedValues","_uncheckCheckBoxes","_checkRows","_toggleHeaderCheckState","_isLocked","useAllItems","multi","Selectable","parseOptions","aria","continuousItems","_continuousItems","_selectableTarget","SPACEBAR","clear","_lastActive","selectRange","_firstSelectee","lockedItems","nonLockedItems","apply","related","clearSelection","prop","preventChange","checkBox","checked","parentGrid","getKendoTreeList","isSelecting","selector","ds","_sortHandler","setDataSource","getByUid","_isPopupEditable","_editMode","_createEditor","_cancelEdit","args","addRow","inlineEditing","_isInlineEditable","showNewModelInView","_insertAt","_firstEditableColumnIndex","removeRow","document","_shouldRestorePageSize","leafCols","fieldRenderer","_createIncellEditor","_editCell","isCancel","ns","row1","row2","adjustRowHeight","saveChanges","_toggleColumnVisibility","_findColumn","_adjustTablesWidth","Draggable","guid","hint","prepend","Reorderable","dragOverContainers","_allowDragOverContainers","inSameContainer","targetParentContainerIndex","flatColumnsInDomOrder","sourceIndex","targetIndex","oldIndex","newIndex","reorderColumn","lockable","_reorderTrees","destSources","destContainer","destDomTree","sources","sourcesContainer","sourcesDomTree","depth","sourcesLeafs","destLeafs","reorderTaget","destThs","sourceDOM","sourceChildren","destColumn","findReorderTarget","_insertTree","domTr","_reorderHeader","rowsToAdd","destTarget","sourcesDepth","targetDepth","sourceLocked","destLocked","destRows","updateRowSpans","removeEmptyRows","rowspan","lockChanged","nonLockedColumnsLength","lockColumn","unlockColumn","menu","menuOptions","initHandler","_columnMenuInit","openHandler","_columnMenuOpen","hasLockableColumns","compare","pane","owner","closeCallback","filtering","kendoColumnMenu","_createPager","alwaysVisible","masterColumns","parentColumns","columnParent","targetLocked","findParentColumnWithChildren","parentIds","isVisible","headers","flatColumns","headerRows","parentCellsWithChildren","prevCells","getAttribute","colSpanAttr","inserted","columnPosition","cellCounts","allColumns","temp","containerDOMtree","emptyRows","shouldRemove","direct","focusElement","ExcelMixin","PDFMixin","_drawPDF","treeList","paperSize","_drawPDF_autoPageBreak","allPages","_initPDFProgress","doc","drawing","Group","startingPage","exportPage","_drawPDFShadow","avoidLinks","pageNum","pageNumber","err","reject","deferred","clone","progressBar","kendoProgressBar","chunkCount","min","origBody","cont","overflow","paddingRight","body","draw","_destructive","drawDOM","renderPage","plugin","jQuery"],"sources":["kendo.treelist.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.dom', 'kendo.data', 'kendo.columnsorter', 'kendo.editable', 'kendo.window', 'kendo.filtermenu', 'kendo.columnmenu', 'kendo.selectable', 'kendo.resizable', 'kendo.treeview.draganddrop', 'kendo.pager', 'kendo.filtercell', 'kendo.textbox', 'kendo.form'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"treelist\",\n name: \"TreeList\",\n category: \"web\",\n description: \"The TreeList widget displays self-referencing data and offers rich support for interacting with data, sorting, filtering, and selection.\",\n depends: [ \"dom\", \"data\", \"pager\" ],\n features: [ {\n id: \"treelist-sorting\",\n name: \"Sorting\",\n description: \"Support for column sorting\",\n depends: [ \"columnsorter\" ]\n }, {\n id: \"treelist-filtering\",\n name: \"Filtering\",\n description: \"Support for record filtering\",\n depends: [ \"filtermenu\" ]\n }, {\n id: \"treelist-columnmenu\",\n name: \"Column menu\",\n description: \"Support for header column menu\",\n depends: [ \"columnmenu\" ]\n }, {\n id: \"treelist-editing\",\n name: \"Editing\",\n description: \"Support for record editing\",\n depends: [ \"editable\", \"window\", \"textbox\", \"form\" ]\n }, {\n id: \"treelist-selection\",\n name: \"Selection\",\n description: \"Support for row selection\",\n depends: [ \"selectable\" ]\n }, {\n id: \"treelist-column-resize\",\n name: \"Column resizing\",\n description: \"Support for column resizing\",\n depends: [ \"resizable\" ]\n }, {\n id: \"treelist-dragging\",\n name: \"Drag & Drop\",\n description: \"Support for drag & drop of rows\",\n depends: [ \"treeview.draganddrop\" ]\n }, {\n id: \"treelist-excel-export\",\n name: \"Excel export\",\n description: \"Export data as Excel spreadsheet\",\n depends: [ \"excel\" ]\n }, {\n id: \"treelist-pdf-export\",\n name: \"PDF export\",\n description: \"Export data as PDF\",\n depends: [ \"pdf\", \"drawing\" ]\n }, {\n id: \"treelist-paging\",\n name: \"Paging\",\n description: \"Support for treelist paging\",\n depends: [ \"pager\" ]\n } ]\n };\n\n (function($, undefined$1) {\n var data = kendo.data;\n var kendoDom = kendo.dom;\n var kendoDomElement = kendoDom.element;\n var kendoTextElement = kendoDom.text;\n var kendoHtmlElement = kendoDom.html;\n var outerWidth = kendo._outerWidth;\n var keys = kendo.keys;\n var outerHeight = kendo._outerHeight;\n var ui = kendo.ui;\n var DataBoundWidget = ui.DataBoundWidget;\n var DataSource = data.DataSource;\n var ObservableArray = data.ObservableArray;\n var Query = data.Query;\n var Model = data.Model;\n var browser = kendo.support.browser;\n var kendoTemplate = kendo.template;\n var activeElement = kendo._activeElement;\n var touchDevice = kendo.support.touch;\n\n var isArray = Array.isArray;\n var extend = $.extend;\n var map = $.map;\n var grep = $.grep;\n var inArray = $.inArray;\n var isPlainObject = $.isPlainObject;\n\n var push = Array.prototype.push;\n\n var STRING = \"string\";\n var CHANGE = \"change\";\n var ITEM_CHANGE = \"itemChange\";\n var ERROR = \"error\";\n var PROGRESS = \"progress\";\n var DOT = \".\";\n var NS = \".kendoTreeList\";\n var CLICK = \"click\";\n var INPUT = \"input\";\n var BEFORE_EDIT = \"beforeEdit\";\n var EDIT = \"edit\";\n var PAGE = \"page\";\n var PAGE_CHANGE = \"pageChange\";\n var SAVE = \"save\";\n var SAVE_CHANGES = \"saveChanges\";\n var EXPAND = \"expand\";\n var COLLAPSE = \"collapse\";\n var CELL_CLOSE = \"cellClose\";\n var REMOVE = \"remove\";\n var DATA_CELL = \"td:not(.k-group-cell):not(.k-hierarchy-cell):visible\";\n var FILTER_CELL = \".k-filter-row th:not(.k-group-cell):not(.k-hierarchy-cell):visible\";\n var DATABINDING = \"dataBinding\";\n var DATABOUND = \"dataBound\";\n var CANCEL = \"cancel\";\n var TABINDEX = \"tabIndex\";\n var FILTERMENUINIT = \"filterMenuInit\";\n var FILTERMENUOPEN = \"filterMenuOpen\";\n var COLUMNHIDE = \"columnHide\";\n var COLUMNSHOW = \"columnShow\";\n var HEADERCELLS = \"th.k-header\";\n var COLUMNREORDER = \"columnReorder\";\n var COLUMNRESIZE = \"columnResize\";\n var COLUMNMENUINIT = \"columnMenuInit\";\n var COLUMNMENUOPEN = \"columnMenuOpen\";\n var COLUMNLOCK = \"columnLock\";\n var COLUMNUNLOCK = \"columnUnlock\";\n var FILTER = \"filter\";\n var NAVIGATE = \"navigate\";\n var SORT = \"sort\";\n var PARENTIDFIELD = \"parentId\";\n var DRAGSTART = \"dragstart\";\n var DRAG = \"drag\";\n var DROP = \"drop\";\n var DRAGEND = \"dragend\";\n var NAVROW = \"tr:visible\";\n var NAVCELL = \"td:visible\";\n var NAVHEADER = \"th:visible\";\n var NORECORDSCLASS = \"k-grid-norecords\";\n var ITEMROW = \"tr:not(.k-footer-template):visible\";\n var isRtl = false;\n var HEIGHT = \"height\";\n var INCELL = \"incell\";\n var INLINE = \"inline\";\n var POPUP = \"popup\";\n var TABLE = \"table\";\n var CHECKBOX = \"k-checkbox\";\n var CHECKBOXINPUT = \"input[data-role='checkbox'].\" + CHECKBOX;\n var SELECTCOLUMNTMPL = '';\n var SELECTCOLUMNHEADERTMPL = '';\n var SELECTED = \"k-selected\";\n var whitespaceRegExp = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n var filterRowRegExp = new RegExp(\"(^|\" + whitespaceRegExp + \")\" + \"(k-filter-row)\" + \"(\" + whitespaceRegExp + \"|$)\");\n\n var classNames = {\n wrapper: \"k-treelist k-grid k-widget k-grid-display-block\",\n header: \"k-header\",\n button: \"k-button\",\n alt: \"k-alt\",\n editCell: \"k-edit-cell\",\n editRow: \"k-grid-edit-row\",\n dirtyCell: \"k-dirty-cell\",\n group: \"k-treelist-group\",\n toolbar: \"k-toolbar\",\n gridToolbar: \"k-grid-toolbar\",\n gridHeader: \"k-grid-header\",\n gridHeaderWrap: \"k-grid-header-wrap\",\n gridContent: \"k-grid-content\",\n gridContentWrap: \"k-grid-content\",\n gridFilter: \"k-grid-filter\",\n footerTemplate: \"k-footer-template\",\n focused: \"k-focus\",\n loading: \"k-i-loading\",\n refresh: \"k-i-reload\",\n retry: \"k-request-retry\",\n selected: \"k-selected\",\n status: \"k-status\",\n link: \"k-link\",\n filterable: \"k-filterable\",\n icon: \"k-icon\",\n iconFilter: \"k-i-filter\",\n iconCollapse: \"k-i-collapse\",\n iconExpand: \"k-i-expand\",\n iconHidden: \"k-i-none\",\n iconPlaceHolder: \"k-icon k-i-none\",\n input: \"k-input\",\n dropPositions: \"k-i-insert-up k-i-insert-down k-i-plus k-i-insert-middle\",\n dropTop: \"k-i-insert-up\",\n dropBottom: \"k-i-insert-down\",\n dropAdd: \"k-i-plus\",\n dropMiddle: \"k-i-insert-middle\",\n dropDenied: \"k-i-cancel\",\n dragStatus: \"k-drag-status\",\n dragClue: \"k-drag-clue\",\n dragClueText: \"k-clue-text\",\n headerCellInner: \"k-cell-inner\",\n columnTitle: \"k-column-title\"\n };\n\n var defaultCommands = {\n create: {\n imageClass: \"k-i-plus\",\n className: \"k-grid-add\",\n methodName: \"addRow\"\n },\n createchild: {\n imageClass: \"k-i-plus\",\n className: \"k-grid-add\",\n methodName: \"addRow\"\n },\n destroy: {\n imageClass: \"k-i-close\",\n className: \"k-grid-delete\",\n methodName: \"removeRow\"\n },\n edit: {\n imageClass: \"k-i-edit\",\n className: \"k-grid-edit\",\n methodName: \"editRow\"\n },\n update: {\n imageClass: \"k-i-check\",\n className: \"k-button-solid-primary k-grid-update\",\n methodName: \"saveRow\"\n },\n canceledit: {\n imageClass: \"k-i-cancel\",\n className: \"k-grid-cancel\",\n methodName: \"_cancelEdit\"\n },\n cancel: {\n imageClass: \"k-icon k-i-cancel\",\n text: \"Cancel changes\",\n className: \"k-grid-cancel-changes\",\n methodName: \"cancelChanges\"\n },\n save: {\n imageClass: \"k-icon k-i-check\",\n text: \"Save changes\",\n className: \"k-grid-save-changes\",\n methodName: \"saveChanges\"\n },\n excel: {\n imageClass: \"k-i-file-excel\",\n className: \"k-grid-excel\",\n methodName: \"saveAsExcel\"\n },\n pdf: {\n imageClass: \"k-i-file-pdf\",\n className: \"k-grid-pdf\",\n methodName: \"saveAsPDF\"\n },\n search: {\n template:\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\"\n }\n };\n\n var TreeView = kendo.Class.extend({\n init: function(data, options) {\n var that = this;\n\n that.data = data || [];\n that.options = extend(that.options, options);\n },\n\n options: {\n defaultParentId: null,\n idField: \"id\",\n parentIdField: PARENTIDFIELD\n },\n\n childrenMap: function() {\n var that = this;\n var childrenMap = {};\n var dataLength = that.data.length;\n var dataItem;\n var dataItemId;\n var dataItemParentId;\n var idField = that.options.idField;\n var parentIdField = that.options.parentIdField;\n\n if (that._childrenMap) {\n return that._childrenMap;\n }\n\n for (var i = 0; i < dataLength; i++) {\n dataItem = this.data[i];\n dataItemId = dataItem[idField];\n dataItemParentId = dataItem[parentIdField];\n\n childrenMap[dataItemId] = childrenMap[dataItemId] || [];\n childrenMap[dataItemParentId] = childrenMap[dataItemParentId] || [];\n\n childrenMap[dataItemParentId].push(dataItem);\n }\n\n that._childrenMap = childrenMap;\n\n return childrenMap;\n },\n\n idsMap: function() {\n var that = this;\n var idsMap = {};\n var data = that.data;\n var dataLength = data.length;\n var dataItem;\n var idField = that.options.idField;\n\n if (that._idMap) {\n return that._idMap;\n }\n\n for (var i = 0; i < dataLength; i++) {\n dataItem = data[i];\n idsMap[dataItem[idField]] = dataItem;\n }\n\n that.idsMap = idsMap;\n return idsMap;\n },\n\n dataMaps: function() {\n var that = this;\n var childrenMap = {};\n var data = that.data;\n var dataLength = data.length;\n var idsMap = {};\n var dataItem;\n var dataItemId;\n var dataItemParentId;\n var idField = that.options.idField;\n var parentIdField = that.options.parentIdField;\n\n if (that._dataMaps) {\n return that._dataMaps;\n }\n\n for (var i = 0; i < dataLength; i++) {\n dataItem = data[i];\n dataItemId = dataItem[idField];\n dataItemParentId = dataItem[parentIdField];\n\n idsMap[dataItemId] = dataItem;\n\n childrenMap[dataItemId] = childrenMap[dataItemId] || [];\n childrenMap[dataItemParentId] = childrenMap[dataItemParentId] || [];\n childrenMap[dataItemParentId].push(dataItem);\n }\n\n that._dataMaps = {\n children: childrenMap,\n ids: idsMap\n };\n\n return that._dataMaps;\n },\n\n rootNodes: function() {\n var that = this;\n var data = that.data;\n var defaultParentId = that.options.defaultParentId;\n var dataLength = data.length;\n var rootNodes = [];\n var dataItem;\n var parentIdField = that.options.parentIdField;\n\n for (var i = 0; i < dataLength; i++) {\n dataItem = data[i];\n\n if (dataItem[parentIdField] === defaultParentId) {\n rootNodes.push(dataItem);\n }\n }\n\n return rootNodes;\n },\n\n removeCollapsedSubtreesFromRootNodes: function(options) {\n options = options || {};\n var that = this;\n var rootNodes = that.rootNodes();\n var result = [];\n var prunedTree;\n\n that._childrenMap = options.childrenMap = options.childrenMap || that.childrenMap();\n options.maxDepth = options.maxDepth || Infinity;\n\n for (var i = 0; i < rootNodes.length; i++) {\n prunedTree = that.removeCollapsedSubtrees(rootNodes[i], options);\n result = result.concat(prunedTree);\n }\n\n return result;\n },\n\n removeCollapsedSubtrees: function(rootNode, options) {\n options = options || {};\n var that = this;\n var result = [];\n var childIdx;\n var prunedTree;\n var childrenMap = options.childrenMap || {};\n var maxDepth = options.maxDepth || Infinity;\n var idField = that.options.idField;\n var children = childrenMap[rootNode[idField]] || [];\n var expanded = isUndefined(rootNode.expanded) ? options.expanded : rootNode.expanded;\n\n result.push(rootNode);\n\n if (children && expanded) {\n for (childIdx = 0; childIdx < children.length; childIdx++) {\n if (result.length >= maxDepth) {\n break;\n }\n\n prunedTree = that.removeCollapsedSubtrees(children[childIdx], options);\n result = result.concat(prunedTree);\n }\n }\n\n return result;\n }\n });\n\n var TreeQuery = function(data) {\n this.data = data || [];\n };\n\n TreeQuery.prototype = new Query();\n TreeQuery.prototype.constructor = TreeQuery;\n\n TreeQuery.process = function(data, options, inPlace) {\n options = options || {};\n var query = new TreeQuery(data);\n var group = options.group;\n var sort = Query.normalizeGroup(group || []).concat(Query.normalizeSort(options.sort || []));\n var filterCallback = options.filterCallback;\n var filter = options.filter;\n var skip = options.skip;\n var take = options.take;\n var total;\n var childrenMap;\n var filteredChildrenMap;\n var view;\n var prunedData;\n\n if (sort && inPlace) {\n query = query.sort(sort, undefined$1, undefined$1, inPlace);\n }\n\n if (filter) {\n query = query.filter(filter);\n\n if (filterCallback) {\n query = filterCallback(query);\n }\n\n total = query.toArray().length;\n }\n\n if (sort && !inPlace) {\n query = query.sort(sort);\n\n if (group) {\n data = query.toArray();\n }\n }\n\n if (options.processFromRootNodes) {\n view = new TreeView(query.toArray(), options);\n\n if (filter) {\n filteredChildrenMap = view.childrenMap();\n }\n\n prunedData = view.removeCollapsedSubtreesFromRootNodes({\n // filtering or sorting requires changes to childrenMap\n childrenMap: filter || (sort && sort.length) ? undefined$1 : options.childrenMap,\n expanded: options.expanded,\n maxDepth: (skip + take) || Infinity\n });\n\n childrenMap = view.childrenMap();\n\n query = new TreeQuery(prunedData);\n }\n\n if (skip !== undefined$1 && take !== undefined$1) {\n query = query.range(skip, take);\n }\n\n if (group) {\n query = query.group(group, data);\n }\n\n return {\n total: total,\n data: query.toArray(),\n childrenMap: childrenMap,\n filteredChildrenMap: filteredChildrenMap\n };\n };\n\n var TreeListModel = Model.define({\n id: \"id\",\n\n parentId: PARENTIDFIELD,\n\n fields: {\n id: { type: \"number\" },\n parentId: { type: \"number\", nullable: true }\n },\n\n init: function(value) {\n Model.fn.init.call(this, value);\n\n this._loaded = false;\n\n if (!this.parentIdField) {\n this.parentIdField = PARENTIDFIELD;\n }\n\n this.parentId = this.get(this.parentIdField);\n },\n\n accept: function(data) {\n Model.fn.accept.call(this, data);\n\n this.parentId = this.get(this.parentIdField);\n },\n\n set: function(field, value, initiator) {\n if (field == PARENTIDFIELD && this.parentIdField != PARENTIDFIELD) {\n this[this.parentIdField] = value;\n }\n\n Model.fn.set.call(this, field, value, initiator);\n\n if (field == this.parentIdField) {\n this.parentId = this.get(this.parentIdField);\n }\n },\n\n loaded: function(value) {\n if (value !== undefined$1) {\n this._loaded = value;\n } else {\n return this._loaded;\n }\n },\n\n shouldSerialize: function(field) {\n return Model.fn.shouldSerialize.call(this, field) && field !== \"_loaded\" && field != \"_error\" && field != \"_edit\" && !(this.parentIdField !== \"parentId\" && field === \"parentId\");\n }\n });\n\n TreeListModel.parentIdField = PARENTIDFIELD;\n\n TreeListModel.define = function(base, options) {\n if (options === undefined$1) {\n options = base;\n base = TreeListModel;\n }\n\n var parentId = options.parentId || PARENTIDFIELD;\n\n options.parentIdField = parentId;\n\n var model = Model.define(base, options);\n\n if (parentId) {\n model.parentIdField = parentId;\n }\n\n return model;\n };\n\n function is(field) {\n return function(object) {\n return object[field];\n };\n }\n\n function not(func) {\n return function(object) {\n return !func(object);\n };\n }\n\n var TreeListDataSource = DataSource.extend({\n init: function(options) {\n options = options || {};\n var that = this;\n that._dataMaps = that._getDataMaps();\n\n options.schema = extend(true, {}, {\n modelBase: TreeListModel,\n model: TreeListModel\n }, options.schema);\n\n DataSource.fn.init.call(this, options);\n },\n\n _addRange: function() {\n // empty override for performance - the treelist does not support virtualization\n },\n\n _createNewModel: function(data) {\n var that = this;\n var model = {};\n var fromModel = data instanceof Model;\n var parentIdField = this._modelParentIdField();\n\n if (fromModel) {\n model = data;\n }\n\n model = DataSource.fn._createNewModel.call(this, model);\n\n if (!fromModel) {\n if (data.parentId) {\n data[model.parentIdField] = data.parentId;\n } else if (that._isPageable() && data[parentIdField]) {\n data[model.parentIdField] = data[parentIdField];\n }\n\n model.accept(data);\n }\n\n return model;\n },\n\n _shouldWrap: function() {\n return true;\n },\n\n _push: function(result, operation) {\n var data = DataSource.fn._readData.call(this, result);\n\n if (!data) {\n data = result;\n }\n\n this[operation](data);\n },\n\n _getData: function() {\n // do not use .data(), which wraps the data items\n return this._data || [];\n },\n\n _readData: function(newData) {\n var that = this;\n var data = that._isPageable() ? that._getData().toJSON() : that.data();\n\n newData = DataSource.fn._readData.call(this, newData);\n\n this._replaceData(((data.toJSON ? data.toJSON() : data)).concat(newData), data);\n\n if (newData instanceof ObservableArray) {\n return newData;\n }\n\n return data;\n },\n\n _replaceData: function(source, target) {\n var sourceLength = source.length;\n\n for (var i = 0; i < sourceLength; i++) {\n target[i] = source[i];\n }\n\n target.length = sourceLength;\n },\n\n _readAggregates: function(data) {\n var result = extend(this._aggregateResult, this.reader.aggregates(data));\n if (\"\" in result) {\n result[this._defaultParentId()] = result[\"\"];\n delete result[\"\"];\n }\n\n return result;\n },\n\n read: function(data) {\n var that = this;\n\n if (that._isPageable()) {\n that._dataMaps = {};\n if (!that._modelOptions().expanded) {\n that._skip = 0;\n that._page = 1;\n that._collapsedTotal = undefined$1;\n }\n }\n\n return DataSource.fn.read.call(that, data);\n },\n\n remove: function(root) {\n this._removeChildData(root);\n\n this._removeFromDataMaps(root);\n\n return DataSource.fn.remove.call(this, root);\n },\n\n _removeChildData: function(model, removePristine) {\n var that = this;\n var pageable = that._isPageable();\n var data = pageable ? this._getData() : this.data();\n var childrenMap = pageable ? that._getChildrenMap() || that.childrenMap(data) : that._childrenMap(data);\n var items = this._subtree(childrenMap, model.id);\n var shouldRemovePristine = isUndefined(removePristine) ? false : removePristine;\n\n var removedItems = this._removeItems(items, shouldRemovePristine);\n\n that._removeFromDataMaps(removedItems);\n },\n\n pushDestroy: function(items) {\n var that = this;\n\n if (!isArray(items)) {\n items = [items];\n }\n\n for (var i = 0; i < items.length; i++) {\n that._removeChildData(items[i], true);\n that._removeFromDataMaps(items[i]);\n }\n\n DataSource.fn.pushDestroy.call(that, items);\n },\n\n insert: function(index, model) {\n var that = this;\n var newModel = that._createNewModel(model);\n\n that._insertInDataMaps(newModel);\n\n return DataSource.fn.insert.call(that, index, newModel);\n },\n\n _filterCallback: function(query) {\n var that = this;\n var i, item;\n var map = {};\n var result = [];\n var data = query.toArray();\n var idField = that._modelIdField();\n var parentIdField = that._modelParentIdField();\n var pageable = that._isPageable();\n var parentSubtree = [];\n var parent;\n\n for (i = 0; i < data.length; i++) {\n item = data[i];\n\n if (pageable) {\n // return view from root nodes to child nodes\n parentSubtree = [];\n\n if (!map[item[idField]]) {\n map[item[idField]] = true;\n parentSubtree.push(item);\n }\n\n parent = that._parentNode(item);\n\n while (parent) {\n if (!map[parent[idField]]) {\n map[parent[idField]] = true;\n parentSubtree.unshift(parent);\n parent = that._parentNode(parent);\n } else {\n // the parent chain is already processed\n break;\n }\n }\n\n if (parentSubtree.length) {\n result = result.concat(parentSubtree);\n }\n } else {\n while (item) {\n if (!map[item[idField]]) {\n map[item[idField]] = true;\n result.push(item);\n }\n\n if (!map[item[parentIdField]]) {\n map[item[parentIdField]] = true;\n item = this.parentNode(item);\n\n if (item) {\n result.push(item);\n }\n } else {\n break;\n }\n }\n }\n }\n\n return new Query(result);\n },\n\n _subtree: function(map, id) {\n var that = this;\n var result = map[id] || [];\n var defaultParentId = that._defaultParentId();\n var idField = that._modelIdField();\n\n for (var i = 0, len = result.length; i < len; i++) {\n if (result[i][idField] !== defaultParentId) {\n result = result.concat(that._subtree(map, result[i][idField]));\n }\n }\n\n return result;\n },\n\n // builds hash id -> children\n _childrenMap: function(data) {\n var map = {};\n var i, item, id, parentId;\n\n data = this._observeView(data);\n\n for (i = 0; i < data.length; i++) {\n item = data[i];\n id = item.id;\n parentId = item.parentId;\n\n map[id] = map[id] || [];\n map[parentId] = map[parentId] || [];\n map[parentId].push(item);\n }\n\n return map;\n },\n\n childrenMap: function(data) {\n var view = this._createTreeView(data);\n var map = view.childrenMap();\n return map;\n },\n\n _getChildrenMap: function() {\n var that = this;\n var dataMaps = that._getDataMaps();\n return dataMaps.children;\n },\n\n _initIdsMap: function(data) {\n var that = this;\n var dataMaps = that._getDataMaps();\n\n if (isUndefined(dataMaps.ids)) {\n dataMaps.ids = that._idsMap(data);\n }\n\n return dataMaps.ids;\n },\n\n _idsMap: function(data) {\n var view = this._createTreeView(data);\n var map = view.idsMap();\n return map;\n },\n\n _getIdsMap: function() {\n var that = this;\n var dataMaps = that._getDataMaps();\n return dataMaps.ids || {};\n },\n\n _getFilteredChildrenMap: function() {\n var that = this;\n var dataMaps = that._getDataMaps();\n return dataMaps.filteredChildren;\n },\n\n _setFilteredChildrenMap: function(map) {\n var that = this;\n var dataMaps = that._getDataMaps();\n dataMaps.filteredChildren = map;\n },\n\n _initDataMaps: function(data) {\n var that = this;\n var view = that._createTreeView(data);\n\n that._dataMaps = view.dataMaps();\n\n return that._dataMaps;\n },\n\n _initChildrenMapForParent: function(parent) {\n var that = this;\n var data = that._getData();\n var childrenMap = that._getChildrenMap();\n var idField = that._modelIdField();\n var parentIdField = that._modelParentIdField();\n var parentId = (parent || {})[idField];\n\n if (childrenMap && parent) {\n childrenMap[parentId] = [];\n\n for (var i = 0; i < data.length; i++) {\n if (data[i][parentIdField] === parentId) {\n childrenMap[parentId].push(data[i]);\n }\n }\n }\n },\n\n _getDataMaps: function() {\n var that = this;\n that._dataMaps = that._dataMaps || {};\n return that._dataMaps;\n },\n\n _createTreeView: function(data, options) {\n var view = new TreeView(data, extend(options, this._defaultTreeModelOptions()));\n return view;\n },\n\n _defaultTreeModelOptions: function() {\n var that = this;\n var modelOptions = that._modelOptions();\n\n return {\n defaultParentId: that._defaultParentId(),\n idField: that._modelIdField(),\n parentIdField: that._modelParentIdField(),\n expanded: modelOptions.expanded\n };\n },\n\n _defaultDataItemType: function() {\n return this.reader.model || kendo.data.ObservableObject;\n },\n\n _calculateAggregates: function(data, options) {\n options = options || {};\n var that = this;\n var result = {};\n var item, subtree, i;\n var filter = options.filter;\n var skip = options.skip;\n var take = options.take;\n var maxDepth = !isUndefined(skip) && !isUndefined(take) ? (skip + take) : Infinity;\n var pageable = that._isPageable();\n var filteredChildrenMap = options.filteredChildrenMap;\n var childrenMap = options.childrenMap;\n var pageableChildrenMap;\n\n if (pageable) {\n if (isUndefined(options.aggregate)) {\n return result;\n }\n\n if (filteredChildrenMap) {\n pageableChildrenMap = filteredChildrenMap;\n } else if (childrenMap) {\n pageableChildrenMap = childrenMap;\n } else {\n pageableChildrenMap = that.childrenMap(that._getData());\n }\n }\n\n if (!pageable && filter) {\n data = Query.process(data, {\n filter: filter,\n filterCallback: this._filterCallback.bind(this)\n }).data;\n }\n\n var map = pageable ? pageableChildrenMap : that._childrenMap(data);\n\n // calculate aggregates for each subtree\n result[this._defaultParentId()] = new Query(this._subtree(map, this._defaultParentId())).aggregate(options.aggregate);\n\n for (i = 0; i < data.length; i++) {\n if (i >= maxDepth) {\n break;\n }\n\n item = data[i];\n subtree = this._subtree(map, item.id);\n\n result[item.id] = new Query(subtree).aggregate(options.aggregate);\n }\n\n return result;\n },\n\n _queryProcess: function(data, options) {\n var that = this;\n var result = {};\n options = options || {};\n options.filterCallback = this._filterCallback.bind(this);\n\n if (that._isPageable()) {\n return that._processPageableQuery(data, options);\n } else {\n var defaultParentId = this._defaultParentId();\n result = Query.process(data, options);\n var map = this._childrenMap(result.data);\n var hasLoadedChildren, i, item, children;\n\n data = map[defaultParentId] || [];\n\n for (i = 0; i < data.length; i++) {\n item = data[i];\n\n if (item.id === defaultParentId) {\n continue;\n }\n\n children = map[item.id];\n hasLoadedChildren = !!(children && children.length);\n\n if (!item.loaded()) {\n item.loaded(hasLoadedChildren || !item.hasChildren);\n }\n\n if (item.loaded() || item.hasChildren !== true) {\n item.hasChildren = hasLoadedChildren;\n }\n\n if (hasLoadedChildren) {\n //cannot use splice due to IE8 bug\n data = data.slice(0, i + 1).concat(children, data.slice(i + 1));\n }\n }\n\n result.data = data;\n }\n\n return result;\n },\n\n _processPageableQuery: function(data, options) {\n var that = this;\n var dataMaps = that._getDataMaps();\n var result;\n var filteredChildrenMap;\n\n if (that._getData() !== data || !dataMaps.children || !dataMaps.ids) {\n dataMaps = that._initDataMaps(that._getData());\n }\n\n options.childrenMap = dataMaps.children || {};\n options.idsMap = dataMaps.ids || {};\n\n result = that._processTreeQuery(data, options);\n\n that._replaceWithObservedData(result.data, data);\n\n that._processDataItemsState(result.data, result.childrenMap);\n\n that._replaceItemsInDataMaps(result.data);\n\n result.dataToAggregate = that._dataToAggregate(result.data, options);\n\n if (options.filter || that.filter()) {\n filteredChildrenMap = result.filteredChildrenMap;\n that._replaceInMapWithObservedData(filteredChildrenMap, data);\n that._setFilteredChildrenMap(filteredChildrenMap);\n options.filteredChildrenMap = filteredChildrenMap;\n that._calculateCollapsedTotal(result.data);\n } else {\n that._collapsedTotal = undefined$1;\n }\n\n return result;\n },\n\n _dataToAggregate: function(data) {\n var that = this;\n var firstDataItem = data[0] || {};\n var firstItemParents = that._parentNodes(firstDataItem);\n var dataToAggregate = firstItemParents.concat(data);\n\n return dataToAggregate;\n },\n\n _replaceItemsInDataMaps: function(observableArray) {\n var that = this;\n var view = isArray(observableArray) ? observableArray : [observableArray];\n var itemType = that._defaultDataItemType();\n var defaultParentId = that._defaultParentId();\n var idField = that._modelIdField();\n var parentIdField = that._modelParentIdField();\n var dataMaps = that._getDataMaps();\n var item;\n var parents;\n var directParent;\n\n for (var viewIndex = 0; viewIndex < view.length; viewIndex++) {\n item = view[viewIndex];\n\n if (!(item instanceof itemType)) {\n continue;\n }\n\n that._insertInIdsMap(item);\n\n parents = that._parentNodes(item);\n directParent = parents && parents.length ? parents[parents.length - 1] : undefined$1;\n\n if (item[parentIdField] === defaultParentId) {\n that._replaceInMap(dataMaps.children, defaultParentId, item, itemType);\n } else if (directParent) {\n that._replaceInMap(dataMaps.children, directParent[idField], item, itemType);\n }\n }\n },\n\n _replaceInMap: function(map, id, replacement, itemType) {\n var idField = this._modelIdField();\n map[id] = map[id] || [];\n itemType = itemType || this._defaultDataItemType();\n\n var itemInArray = map[id].filter(function(element) {\n return replacement[idField] === element[idField];\n })[0];\n\n var itemIndex = itemInArray ? map[id].indexOf(itemInArray) : -1;\n\n if (itemIndex !== -1 && !(itemInArray instanceof itemType)) {\n map[id][itemIndex] = replacement;\n }\n },\n\n _replaceWithObservedData: function(dataToReplace, replacementArray) {\n var that = this;\n var idsMap = that._getDataMaps().ids || {};\n var idField = that._modelIdField();\n var itemType = that._defaultDataItemType();\n var itemToReplace;\n var itemToReplaceId;\n var dataItem;\n var dataItemIndex;\n var observableItem;\n\n for (var i = 0; i < dataToReplace.length; i++) {\n itemToReplace = dataToReplace[i];\n itemToReplaceId = itemToReplace[idField];\n\n if (!(itemToReplace instanceof itemType)) {\n if (!(idsMap[itemToReplaceId] instanceof itemType)) {\n dataItem = that._getById(itemToReplaceId);\n dataItemIndex = replacementArray.indexOf(dataItem);\n\n if (dataItem && dataItemIndex !== -1) {\n observableItem = replacementArray.at(dataItemIndex);\n dataToReplace[i] = observableItem;\n }\n } else {\n dataToReplace[i] = idsMap[itemToReplaceId];\n }\n }\n }\n },\n\n _replaceInMapWithObservedData: function(map, replacementArray) {\n var that = this;\n\n for (var key in map) {\n that._replaceWithObservedData(map[key], replacementArray);\n }\n },\n\n _insertInDataMaps: function(item) {\n var that = this;\n\n if (that._isPageable()) {\n that._insertInIdsMap(item);\n that._insertInChildrenMap(item);\n }\n },\n\n _insertInIdsMap: function(item) {\n var that = this;\n var idsMap = that._getIdsMap();\n var idField = that._modelIdField();\n\n if (!isUndefined(item[idField])) {\n idsMap[item[idField]] = item;\n }\n },\n\n _insertInChildrenMap: function(item, index) {\n var that = this;\n var childrenMap = that._getChildrenMap() || {};\n var idField = that._modelIdField();\n var parentIdField = that._modelParentIdField();\n var itemId = item[idField];\n var parentId = item[parentIdField];\n index = index || 0;\n\n childrenMap[itemId] = childrenMap[itemId] || [];\n childrenMap[parentId] = childrenMap[parentId] || [];\n childrenMap[parentId].splice(index, 0, item);\n },\n\n _removeFromDataMaps: function(items) {\n var that = this;\n items = isArray(items) ? items : [items];\n\n if (that._isPageable()) {\n for (var i = 0; i < items.length; i++) {\n that._removeFromIdsMap(items[i]);\n that._removeFromChildrenMap(items[i]);\n }\n }\n },\n\n _removeFromIdsMap: function(item) {\n var that = this;\n var idsMap = that._getIdsMap();\n var idField = that._modelIdField();\n\n if (!isUndefined(item[idField])) {\n idsMap[item[idField]] = undefined$1;\n }\n },\n\n _removeFromChildrenMap: function(item) {\n var that = this;\n var childrenMap = that._getChildrenMap() || {};\n var parentIdField = that._modelParentIdField();\n var parentId = item[parentIdField];\n\n childrenMap[parentId] = childrenMap[parentId] || [];\n\n var itemIndex = that._indexInChildrenMap(item);\n\n if (itemIndex !== -1) {\n childrenMap[parentId].splice(itemIndex, 1);\n }\n },\n\n _indexInChildrenMap: function(item) {\n var that = this;\n return that._itemIndexInMap(item, that._getChildrenMap());\n },\n\n _itemIndexInMap: function(item, dataMap) {\n var that = this;\n var map = dataMap || {};\n var parentIdField = that._modelParentIdField();\n var parentId = item[parentIdField];\n\n map[parentId] = map[parentId] || [];\n\n var itemInArray = map[parentId].filter(function(element) {\n return item.uid === element.uid;\n })[0];\n\n var itemIndex = itemInArray ? map[parentId].indexOf(itemInArray) : -1;\n\n return itemIndex;\n },\n\n _getById: function(id) {\n var that = this;\n var idField = that._modelIdField();\n var data = that._getData();\n\n for (var i = 0; i < data.length; i++) {\n if (data[i][idField] === id) {\n return data[i];\n }\n }\n },\n\n _isLastItemInView: function(dataItem) {\n var view = this.view();\n return view.length && view[view.length - 1] === dataItem;\n },\n\n _defaultPageableQueryOptions: function() {\n var that = this;\n var dataMaps = that._getDataMaps();\n var options = {\n skip: that.skip(),\n take: that.take(),\n page: that.page(),\n pageSize: that.pageSize(),\n sort: that.sort(),\n filter: that.filter(),\n group: that.group(),\n aggregate: that.aggregate(),\n filterCallback: that._filterCallback.bind(that),\n childrenMap: dataMaps.children,\n idsMap: dataMaps.ids\n };\n\n return options;\n },\n\n _isPageable: function() {\n var pageSize = this.pageSize();\n return (!isUndefined(pageSize) && pageSize > 0 && !this.options.serverPaging);\n },\n\n _updateTotalForAction: function(action, items) {\n var that = this;\n\n DataSource.fn._updateTotalForAction.call(that, action, items);\n\n if (that._isPageable()) {\n that._updateCollapsedTotalForAction(action, items);\n }\n },\n\n _updateCollapsedTotalForAction: function(action, items) {\n var that = this;\n var total = parseInt(that._collapsedTotal, 10);\n\n if (!isNumber(that._collapsedTotal)) {\n that._calculateCollapsedTotal();\n return;\n }\n\n if (action === \"add\") {\n total += items.length;\n } else if (action === \"remove\") {\n total -= items.length;\n } else if (action !== \"itemchange\" && action !== \"sync\" && !that.options.serverPaging) {\n total = that._calculateCollapsedTotal();\n } else if (action === \"sync\") {\n total = that._calculateCollapsedTotal();\n }\n\n that._collapsedTotal = total;\n },\n\n _setFilterTotal: function(filterTotal, setDefaultValue) {\n var that = this;\n\n DataSource.fn._setFilterTotal.call(that, filterTotal, setDefaultValue);\n\n },\n\n collapsedTotal: function() {\n var that = this;\n\n if (!isUndefined(that._collapsedTotal)) {\n return that._collapsedTotal;\n }\n\n return that._calculateCollapsedTotal();\n },\n\n _calculateCollapsedTotal: function(filteredData) {\n var that = this;\n var data = that._dataWithoutCollapsedSubtrees(filteredData);//\n\n if (data.length) {\n that._collapsedTotal = data.length;\n }\n\n return that._collapsedTotal;\n },\n\n _dataWithoutCollapsedSubtrees: function(filteredData) {\n return this._removeCollapsedSubtrees(filteredData || this._getData());\n },\n\n _removeCollapsedSubtrees: function(data) {\n var that = this;\n var view = that._createTreeView(data);\n var result = view.removeCollapsedSubtreesFromRootNodes({\n expanded: that._modelOptions().expanded,\n childrenMap: that.filter() ? that._getFilteredChildrenMap() : that._getChildrenMap()\n });\n\n return result;\n },\n\n _processTreeQuery: function(data, options) {\n var result = TreeQuery.process(data, extend(options, this._defaultTreeModelOptions(), {\n processFromRootNodes: true\n }));\n\n return result;\n },\n\n _processDataItemsState: function(data, childrenMap) {\n var dataLength = data.length;\n var i;\n\n for (i = 0; i < dataLength; i++) {\n this._processDataItemState(data[i], childrenMap);\n }\n },\n\n _processDataItemState: function(dataItem, childrenMap) {\n var defaultParentId = this._defaultParentId();\n\n if (dataItem.id === defaultParentId) {\n return;\n }\n\n var children = childrenMap[dataItem.id] || [];\n var hasLoadedChildren = !!(children && children.length);\n\n if (!dataItem.loaded) {\n return;\n }\n\n if (!dataItem.loaded()) {\n dataItem.loaded(hasLoadedChildren || !dataItem.hasChildren);\n }\n\n if (dataItem.loaded() || dataItem.hasChildren !== true) {\n dataItem.hasChildren = hasLoadedChildren;\n }\n },\n\n _queueRequest: function(options, callback) {\n // allow simultaneous requests (loading multiple items at the same time)\n callback.call(this);\n },\n\n _modelLoaded: function(id) {\n var model = this.get(id);\n model.loaded(true);\n model.hasChildren = this.childNodes(model).length > 0;\n },\n\n _modelError: function(id, e) {\n this.get(id)._error = e;\n },\n\n success: function(data, requestParams) {\n if (!requestParams || typeof requestParams.id == \"undefined\") {\n this._data = this._observe([]);\n }\n\n DataSource.fn.success.call(this, data, requestParams);\n \t\t\tthis._total = this._data.length;\n },\n\n load: function(model) {\n var method = \"_query\";\n var remote = this.options.serverSorting || this.options.serverPaging || this.options.serverFiltering || this.options.serverGrouping || this.options.serverAggregates;\n var defaultPromise = $.Deferred().resolve().promise();\n\n if (model.loaded()) {\n if (remote) {\n return defaultPromise;\n }\n } else if (model.hasChildren) {\n method = \"read\";\n this._removeChildData(model);\n }\n\n return this[method]({ id: model.id })\n .done(this._modelLoaded.bind(this, model.id))\n .fail(this._modelError.bind(this, model.id));\n },\n\n contains: function(root, child) {\n var that = this;\n var idField = that._modelIdField();\n var parentIdField = that._modelParentIdField();\n var rootId = root[idField];\n var pageable = that._isPageable();\n\n while (child) {\n if (child[parentIdField] === rootId) {\n return true;\n }\n\n child = pageable ? that._parentNode(child) : that.parentNode(child);\n }\n\n return false;\n },\n\n _byParentId: function(id, defaultId) {\n var result = [];\n var view = this.view();\n var current;\n\n if (id === defaultId) {\n return [];\n }\n\n for (var i = 0; i < view.length; i++) {\n current = view.at(i);\n\n if (current.parentId == id) {\n result.push(current);\n }\n }\n\n return result;\n },\n\n _defaultParentId: function() {\n return this.reader.model.fn.defaults[this.reader.model.parentIdField];\n },\n\n _modelOptions: function() {\n var modelOptions = ((this.options.schema || {}).model || {});\n return modelOptions;\n },\n\n _modelIdField: function() {\n var modelOptions = this._modelOptions();\n return modelOptions.id || \"id\";\n },\n\n _modelParentIdField: function() {\n var modelOptions = this._modelOptions();\n return modelOptions.parentId || PARENTIDFIELD;\n },\n\n childNodes: function(model) {\n return this._byParentId(model.id, this._defaultParentId());\n },\n\n allChildNodes: function(model, result) {\n var directChildren = this.data().filter(function(item) {\n return item.parentId === model.id;\n });\n\n for (var i = 0; i < directChildren.length; i++) {\n result.push(directChildren[i]);\n this.allChildNodes(directChildren[i], result);\n }\n },\n\n rootNodes: function() {\n return this._byParentId(this._defaultParentId());\n },\n\n _rootNode: function(child) {\n return this._parentNodes(child)[0];\n },\n\n _pageableRootNodes: function(options) {\n options = options || {};\n var that = this;\n var defaultParentId = that._defaultParentId();\n var parentIdField = that._modelParentIdField();\n var result = [];\n var nodesWithoutParentInView = that._nodesWithoutParentInView(options);\n var node;\n var root;\n\n for (var i = 0; i < nodesWithoutParentInView.length; i++) {\n node = nodesWithoutParentInView[i];\n\n if (node[parentIdField] === defaultParentId) {\n result.push(node);\n } else {\n root = that._rootNode(node);\n\n if (root && result.indexOf(root) === -1) {\n result.push(root);\n }\n }\n }\n\n return result;\n },\n\n parentNode: function(model) {\n return this.get(model.parentId);\n },\n\n _parentNode: function(child) {\n var that = this;\n var parentIdField = that._modelParentIdField();\n var idsMap = that._initIdsMap(that._getData());\n var parentId = child[parentIdField];\n var parent = idsMap[parentId] || that._getById(parentId);\n\n return parent;\n },\n\n _parentNodes: function(child) {\n var that = this;\n var parent = that._parentNode(child);\n var parents = [];\n\n while (parent) {\n parents.unshift(parent);\n parent = that._parentNode(parent);\n }\n\n return parents;\n },\n\n _parentNodesNotInView: function() {\n var that = this;\n var view = that.view();\n var result = [];\n var defaultParentId = that._defaultParentId();\n var idField = that._modelIdField();\n var parentIdField = that._modelParentIdField();\n var parentInView;\n var parents = [];\n var directParent;\n var dataItem;\n var dataItemId;\n var dataItemParentId;\n\n for (var i = 0; i < view.length; i++) {\n dataItem = view[i];\n dataItemId = dataItem[idField];\n dataItemParentId = dataItem[parentIdField];\n parentInView = that._parentInView(dataItemParentId);\n\n if (!parentInView && dataItemParentId !== defaultParentId) {\n parents = that._parentNodes(dataItem);\n\n directParent = parents && parents.length ? parents[parents.length - 1] : that._getById(dataItemParentId);\n\n if (directParent && result.indexOf(directParent) === -1) {\n result.push(directParent);\n }\n }\n }\n\n return result;\n },\n\n _nodesWithoutParentInView: function(options) {\n options = options || {};\n var that = this;\n var view = that.view();\n var childrenMap = options.childrenMap || that.childrenMap(that._getData());\n var idField = that._modelIdField();\n var parentIdField = that._modelParentIdField();\n var dataItem;\n var parentInView;\n var children = [];\n var result = [];\n\n for (var i = 0; i < view.length; i++) {\n dataItem = view[i];\n children = childrenMap[dataItem[idField]];\n parentInView = that._parentInView(dataItem[parentIdField]);\n\n if (!parentInView) {\n result.push(dataItem);\n }\n }\n\n return result;\n },\n\n _parentInView: function(parentId) {\n var view = this.view();\n\n for (var i = 0; i < view.length; i++) {\n if (view[i].id === parentId) {\n return view[i];\n }\n }\n },\n\n level: function(model) {\n var result = -1;\n\n if (!(model instanceof TreeListModel)) {\n model = this.get(model);\n }\n\n do {\n model = this.parentNode(model);\n result++;\n } while (model);\n\n return result;\n },\n\n _pageableModelLevel: function(model) {\n var that = this;\n\n if (!model || !that._isPageable()) {\n return 0;\n }\n\n var parents = that._parentNodes(model);\n\n return parents.length;\n },\n\n filter: function(value) {\n var baseFilter = DataSource.fn.filter;\n\n if (value === undefined$1) {\n return baseFilter.call(this, value);\n }\n\n baseFilter.call(this, value);\n },\n\n _pageableQueryOptions: function(options) {\n var dataMaps = this._getDataMaps();\n\n options.childrenMap = dataMaps.children;\n options.idsMap = dataMaps.ids;\n\n return options;\n },\n\n _flatData: function(data, skip) {\n skip = this._isPageable() ? true : skip;\n return DataSource.fn._flatData.call(this, data, skip);\n },\n\n data: function(data) {\n var that = this;\n var result = DataSource.fn.data.call(that, data);\n\n if (that._isPageable()) {\n that._initDataMaps(that._getData());\n that._calculateCollapsedTotal();\n }\n\n return result;\n },\n\n cancelChanges: function(model) {\n var that = this;\n\n DataSource.fn.cancelChanges.call(that, model);\n\n that._restorePageSizeAfterAddChild();\n },\n\n _modelCanceled: function(model) {\n var that = this;\n\n if (that._isPageable()) {\n that._removeFromDataMaps(model);\n }\n },\n\n _changesCanceled: function() {\n var that = this;\n\n if (that._isPageable()) {\n that._initDataMaps(that._getData());\n }\n },\n\n _setAddChildPageSize: function() {\n var that = this;\n var queryOptions = {};\n\n if (that._isPageable()) {\n // increase the page size to make the new item visible in view\n that._addChildPageSize = that.pageSize() + 1;\n\n queryOptions = that._defaultPageableQueryOptions();\n queryOptions.take = that._addChildPageSize;\n queryOptions.pageSize = that._addChildPageSize;\n that._query(queryOptions);\n }\n },\n\n _restorePageSizeAfterAddChild: function() {\n var that = this;\n var queryOptions = {};\n\n if (that._isPageable()) {\n if (!isUndefined(that._addChildPageSize)) {\n queryOptions = that._defaultPageableQueryOptions();\n queryOptions.take = that._addChildPageSize - 1;\n queryOptions.pageSize = that._addChildPageSize - 1;\n that._query(queryOptions);\n }\n }\n\n that._addChildPageSize = undefined$1;\n },\n\n sync: function() {\n var that = this;\n\n return DataSource.fn.sync.call(that)\n .then(function() {\n that._restorePageSizeAfterAddChild();\n });\n },\n\n _syncEnd: function() {\n var that = this;\n\n if (that._isPageable()) {\n that._initDataMaps(that._getData());\n }\n }\n });\n\n TreeListDataSource.create = function(options) {\n if (Array.isArray(options)) {\n options = { data: options };\n } else if (options instanceof ObservableArray) {\n options = { data: options.toJSON() };\n }\n\n return options instanceof TreeListDataSource ? options : new TreeListDataSource(options);\n };\n\n function isCellVisible() {\n return this.style.display !== \"none\";\n }\n\n function sortCells(cells) {\n var indexAttr = kendo.attr(\"index\");\n return cells.sort(function(a, b) {\n a = $(a);\n b = $(b);\n\n var indexA = a.attr(indexAttr);\n var indexB = b.attr(indexAttr);\n\n if (indexA === undefined$1) {\n indexA = $(a).index();\n }\n if (indexB === undefined$1) {\n indexB = $(b).index();\n }\n\n indexA = parseInt(indexA, 10);\n indexB = parseInt(indexB, 10);\n return indexA > indexB ? 1 : (indexA < indexB ? -1 : 0);\n });\n }\n\n function leafDataCells(container) {\n var rows = container.find(\">tr:not(.k-filter-row)\");\n\n var filter = function() {\n var el = $(this);\n return !el.hasClass(\"k-group-cell\") && !el.hasClass(\"k-hierarchy-cell\");\n };\n\n var cells = $();\n if (rows.length > 1) {\n cells = rows.find(\"th[data-index]\")\n .filter(filter);\n }\n\n cells = cells.add(rows.last().find(\"th\").filter(filter));\n\n return sortCells(cells);\n }\n\n function createPlaceholders(options) {\n var spans = [];\n var className = options.className;\n\n for (var i = 0, level = options.level; i < level; i++) {\n spans.push(kendoDomElement(\"span\", { className: className }));\n }\n\n return spans;\n }\n\n function columnsWidth(cols) {\n var colWidth, width = 0;\n\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\n return width;\n }\n\n function syncTableHeight(table1, table2) {\n table1 = table1[0];\n table2 = table2[0];\n\n if (table1.rows.length && table2.rows.length && table1.rows.length !== table2.rows.length) {\n var lockedHeigth = table1.offsetHeight;\n var tableHeigth = table2.offsetHeight;\n\n var row;\n var diff;\n if (lockedHeigth > tableHeigth) {\n row = table2.rows[table2.rows.length - 1];\n\n if (filterRowRegExp.test(row.className)) {\n row = table2.rows[table2.rows.length - 2];\n }\n\n diff = lockedHeigth - tableHeigth;\n } else {\n row = table1.rows[table1.rows.length - 1];\n\n if (filterRowRegExp.test(row.className)) {\n row = table1.rows[table1.rows.length - 2];\n }\n\n diff = tableHeigth - lockedHeigth;\n }\n row.style.height = row.offsetHeight + diff + \"px\";\n }\n }\n\n var TreeListPager = ui.Pager.extend({\n options: {\n name: \"TreeListPager\"\n },\n\n totalPages: function() {\n var that = this;\n var dataSource = that.dataSource;\n\n if (dataSource && dataSource._filter) {\n return ui.Pager.fn.totalPages.call(that);\n }\n\n return Math.ceil((that._collapsedTotal() || 0) / (that.pageSize() || 1));\n },\n\n _createDataSource: function(options) {\n this.dataSource = kendo.data.TreeListDataSource.create(options.dataSource);\n },\n\n _collapsedTotal: function() {\n var dataSource = this.dataSource;\n return dataSource ? (dataSource.collapsedTotal() || 0) : 0;\n }\n });\n\n var Editor = kendo.Observable.extend({\n init: function(element, options) {\n kendo.Observable.fn.init.call(this);\n\n options = this.options = extend(true, {}, this.options, options);\n\n this.element = element;\n\n this.bind(this.events, options);\n\n this.model = this.options.model;\n\n this.fields = this._fields(this.options.columns);\n\n this._initContainer();\n\n this.createEditable();\n },\n\n options: {\n renderForm: false\n },\n\n events: [],\n\n _initContainer: function() {\n this.wrapper = this.element;\n },\n\n createEditable: function() {\n var options = this.options;\n\n if (options.renderForm) {\n this.form = new ui.Form(this.wrapper.find(\".k-treelist-form\"), {\n items: this.fields,\n buttonsTemplate: \"\",\n formData: this.model,\n change: options.change\n });\n\n this.editable = this.form.editable;\n } else {\n this.editable = new ui.Editable(this.wrapper, {\n fields: this.fields,\n target: options.target,\n clearContainer: options.clearContainer,\n model: this.model,\n change: options.change\n });\n }\n },\n\n _isEditable: function(column) {\n return isColumnEditable(column, this.model);\n },\n\n _fields: function(columns) {\n var fields = [];\n var idx, length, column;\n\n for (idx = 0, length = columns.length; idx < length; idx++) {\n column = columns[idx];\n\n if (this._isEditable(column)) {\n fields.push({\n field: column.field,\n format: column.format,\n editor: column.editor,\n editorOptions: extend(true, { format: column.format }, column.editorOptions),\n label: column.title || column.field || \"\"\n });\n }\n }\n\n return fields;\n },\n\n end: function() {\n return this.editable.end();\n },\n\n close: function() {\n this.destroy();\n },\n\n destroy: function() {\n this.editable.destroy();\n this.editable.element\n .find(\"[\" + kendo.attr(\"container-for\") + \"]\")\n .empty()\n .end()\n .removeAttr(kendo.attr(\"role\"));\n\n this.model = this.wrapper = this.element = this.columns = this.editable = null;\n }\n });\n\n var PopupEditor = Editor.extend({\n init: function(element, options) {\n Editor.fn.init.call(this, element, options);\n\n this._attachHandlers();\n kendo.cycleForm(this.wrapper);\n\n this.open();\n },\n\n events: [\n CANCEL,\n SAVE\n ],\n\n options: {\n window: {\n modal: true,\n resizable: false,\n draggable: true,\n title: \"Edit\",\n visible: false\n }\n },\n\n _initContainer: function() {\n var options = this.options;\n var formContent = [];\n\n this.wrapper = $('
')\n .attr(kendo.attr(\"uid\"), this.model.uid)\n .append('
');\n\n if (options.template) {\n this._appendTemplate(formContent);\n this.fields = [];\n } else {\n this.options.renderForm = true;\n formContent.push(kendoHtmlElement('
'));\n }\n this._appendButtons(formContent);\n\n new kendoDom.Tree(this.wrapper.children()[0]).render(formContent);\n\n this.wrapper.appendTo(options.appendTo);\n\n this.window = new ui.Window(this.wrapper, options.window);\n },\n\n _appendTemplate: function(form) {\n var template = this.options.template;\n\n if (typeof template === STRING) {\n template = kendo.unescape(template);\n }\n\n template = kendo.template(template)(this.model);\n\n form.push(kendoHtmlElement(template));\n },\n\n _appendButtons: function(form) {\n form.push(kendoDomElement(\"div\", {\n \"class\": \"k-edit-buttons\"\n }, this.options.commandRenderer()));\n },\n\n _attachHandlers: function() {\n var closeHandler = this._cancelProxy = this._cancel.bind(this);\n this.wrapper.on(CLICK + NS, \".k-grid-cancel\", this._cancelProxy);\n\n this._saveProxy = this._save.bind(this);\n this.wrapper.on(CLICK + NS, \".k-grid-update\", this._saveProxy);\n\n this.window.bind(\"close\", function(e) {\n if (e.userTriggered) {\n closeHandler(e);\n }\n });\n },\n\n _detachHandlers: function() {\n this._cancelProxy = null;\n this._saveProxy = null;\n this.wrapper.off(NS);\n },\n\n _cancel: function(e) {\n this.trigger(CANCEL, e);\n },\n\n _save: function() {\n this.trigger(SAVE);\n },\n\n open: function() {\n this.window.center().open();\n },\n\n close: function() {\n this.window.bind(\"deactivate\", this.destroy.bind(this)).close();\n },\n\n destroy: function() {\n if (this.form) {\n this.form.destroy();\n }\n\n this.window.destroy();\n this.window = null;\n this._detachHandlers();\n\n Editor.fn.destroy.call(this);\n }\n });\n\n var IncellEditor = Editor.extend({\n destroy: function() {\n var that = this;\n\n that.editable.destroy();\n\n that.editable.element\n .off()\n .empty()\n .removeAttr(kendo.attr(\"role\"));\n\n that.model = that.wrapper = that.element = that.columns = that.editable = null;\n }\n });\n\n var TreeList = DataBoundWidget.extend({\n init: function(element, options, events) {\n DataBoundWidget.fn.init.call(this, element, options);\n\n if (events) {\n this._events = events;\n }\n\n isRtl = kendo.support.isRtl(element);\n this._dataSource(this.options.dataSource);\n this._aria();\n this._columns();\n this._layout();\n this._navigatable();\n this._selectable();\n this._sortable();\n this._resizable();\n this._filterable();\n this._filterRow();\n this._attachEvents();\n this._toolbar();\n this._scrollable();\n this._reorderable();\n this._columnMenu();\n this._minScreenSupport();\n this._draggable();\n this._pageable();\n\n if (this.options.autoBind) {\n this.dataSource.fetch();\n }\n\n if (this._hasLockedColumns) {\n var widget = this;\n this.wrapper.addClass(\"k-grid-lockedcolumns\");\n this._resizeHandler = function() { widget.resize(); };\n $(window).on(\"resize\" + NS, this._resizeHandler);\n }\n\n kendo.notify(this);\n },\n\n _draggable: function() {\n var that = this;\n var editable = this.options.editable;\n var dataSource = that.dataSource;\n var idField = dataSource._modelIdField();\n var parentIdField = dataSource._modelParentIdField();\n var pageable = that._isPageable();\n var reorderable;\n\n if (!editable || !editable.move) {\n return;\n }\n\n reorderable = editable.move.reorderable;\n\n this._dragging = new kendo.ui.HierarchicalDragAndDrop(this.wrapper, {\n $angular: this.$angular,\n autoScroll: true,\n holdToDrag: touchDevice,\n filter: \"tbody>tr\",\n itemSelector: \"tr\",\n allowedContainers: this.wrapper,\n hintText: function(row) {\n var text = function() { return $(this).text(); };\n var separator = \"\";\n return row.children(\"td\").map(text).toArray().join(separator);\n },\n contains: (function(source, destination) {\n var dest = this.dataItem(destination);\n var src = this.dataItem(source);\n\n return src == dest || this.dataSource.contains(src, dest);\n }).bind(this),\n itemFromTarget: function(target) {\n var tr = target.closest(\"tr\");\n var prevRow = tr.prev();\n var nextRow = tr.next();\n var first;\n var last;\n\n if (prevRow) {\n first = !that.sameLevel(prevRow, tr);\n }\n\n if (nextRow) {\n last = !that.sameLevel(nextRow, tr);\n }\n\n return {\n item: tr,\n content: tr,\n first: first,\n last: last\n };\n },\n dragstart: (function(source) {\n this.wrapper.addClass(\"k-treelist-dragging\");\n\n if (this.wrapper.find('.k-grid-content').length) {\n this.wrapper.find('.k-grid-content table, .k-grid-content-locked table').css(\"position\", \"relative\");\n }\n\n var model = this.dataItem(source);\n\n return this.trigger(DRAGSTART, { source: model });\n }).bind(this),\n drag: (function(e) {\n e.source = this.dataItem(e.source);\n\n this.trigger(DRAG, e);\n }).bind(this),\n drop: (function(e) {\n e.source = this.dataItem(e.source);\n e.destination = this.dataItem(e.destination);\n\n this.wrapper.removeClass(\"k-treelist-dragging\");\n\n if (this.wrapper.find('.k-grid-content').length) {\n this.wrapper.find('.k-grid-content table, .k-grid-content-locked table').css(\"position\", \"static\");\n }\n\n return this.trigger(DROP, e);\n }).bind(this),\n dragend: (function(e) {\n var dest = this.dataItem(e.destination);\n var src = this.dataItem(e.source);\n var originalSrcParentId = src[parentIdField];\n var originalSrcIndex = dataSource._indexInChildrenMap(src);\n var position = e.position;\n\n if (position == \"over\") {\n if (pageable) {\n dataSource._removeFromChildrenMap(src);\n src[parentIdField] = dest ? dest[idField] : null;\n\n dataSource._initChildrenMapForParent(dest);\n\n // src.set() below will not work as the parent id is already set\n src[parentIdField] = originalSrcParentId;\n }\n\n var isPrevented = src.set(\"parentId\", dest ? dest.id : null);\n\n if (pageable && isPrevented) {\n dataSource._removeFromChildrenMap(src);\n src[parentIdField] = originalSrcParentId;\n dataSource._removeFromChildrenMap(src);\n dataSource._insertInChildrenMap(src, originalSrcIndex);\n }\n\n\n } else {\n if (position == \"before\") {\n that.insertBefore(src, dest);\n } else if (position == \"after\") {\n that.insertAfter(src, dest);\n }\n }\n\n e.source = src;\n e.destination = dest;\n\n this.trigger(DRAGEND, e);\n }).bind(this),\n reorderable: reorderable,\n dropHintContainer: function(item) {\n return item.children(\"td:visible\").eq(0);\n },\n dropPositionFrom: function(dropHint) {\n var contents;\n var length;\n var i;\n var dropHintElement;\n var isAfterText = false;\n\n if (dropHint.parent().find('.k-i-none').length) {\n return dropHint.prevAll(\".k-i-none\").length > 0 ? \"after\" : \"before\";\n } else {\n contents = dropHint.parent().contents();\n length = contents.length;\n dropHintElement = dropHint[0];\n\n for (i = 0; i < length; i++) {\n if (contents[i] === dropHintElement) {\n break;\n }\n\n if (contents[i].nodeType === 3) {\n isAfterText = true;\n }\n }\n\n return isAfterText ? \"after\" : \"before\";\n }\n }\n });\n },\n\n sameLevel: function() {\n return arguments[0].find(\".\" + classNames.iconHidden).length === arguments[1].find(\".\" + classNames.iconHidden).length;\n },\n\n insertAfter: function(nodeData, referenceNode) {\n this.insertAction(nodeData, referenceNode, 1);\n },\n\n insertBefore: function(nodeData, referenceNode) {\n this.insertAction(nodeData, referenceNode, 0);\n },\n\n insertAction: function(nodeData, referenceNode, indexOffset) {\n var that = this;\n var dataSource = that.dataSource;\n var parentIdField = dataSource._modelParentIdField();\n var referenceNodeIndex;\n var nodeDataIndex = dataSource.indexOf(nodeData);\n var pageable = that._isPageable();\n var originalDestIndex = dataSource._indexInChildrenMap(referenceNode);\n var destIndex;\n var childrenMap = dataSource._getChildrenMap() || {};\n var parentId = nodeData[parentIdField];\n\n that._unbindDataSource();\n that._unbindDataChange();\n\n if (pageable) {\n dataSource._removeFromChildrenMap(nodeData);\n }\n\n if (nodeData[parentIdField] != referenceNode[parentIdField]) {\n nodeData.set(\"parentId\", referenceNode && referenceNode.parentId ? referenceNode.parentId : null);\n }\n\n dataSource._data.splice(nodeDataIndex, 1);\n referenceNodeIndex = dataSource.indexOf(referenceNode);\n destIndex = referenceNodeIndex + indexOffset;\n\n if (pageable) {\n originalDestIndex += indexOffset;\n\n if (childrenMap[parentId].length <= originalDestIndex) {\n originalDestIndex = childrenMap[parentId].length;\n }\n dataSource._insertInChildrenMap(nodeData, originalDestIndex);\n }\n\n dataSource._data.splice(destIndex, 0, nodeData);\n dataSource._destroyed.pop();\n that._bindDataChange();\n that._bindDataSource();\n that.refresh();\n },\n\n _bindDataChange: function() {\n var dataSource = this.dataSource;\n if (dataSource._data && dataSource._changeHandler) {\n dataSource._data.bind(CHANGE, dataSource._changeHandler);\n dataSource._data.trigger(CHANGE);\n }\n },\n\n _unbindDataChange: function() {\n var dataSource = this.dataSource;\n if (dataSource._data && dataSource._changeHandler) {\n dataSource._data.unbind(CHANGE, dataSource._changeHandler);\n }\n },\n\n _bindDataSource: function() {\n var that = this;\n var dataSource = that.dataSource;\n\n if (dataSource) {\n dataSource.bind(CHANGE, that._refreshHandler);\n }\n },\n\n _unbindDataSource: function() {\n var that = this;\n var dataSource = that.dataSource;\n\n if (dataSource) {\n dataSource.unbind(CHANGE, that._refreshHandler);\n }\n },\n\n itemFor: function(model) {\n if (typeof model == \"number\") {\n model = this.dataSource.get(model);\n }\n\n return this.tbody.find(\"[\" + kendo.attr(\"uid\") + \"=\" + model.uid + \"]\");\n },\n\n _itemFor: function(model) {\n var that = this;\n var table = that.lockedContent ? that.lockedTable : that.table;\n\n if (typeof model == \"number\") {\n model = this.dataSource.get(model);\n }\n\n return table.find(\"[\" + kendo.attr(\"uid\") + \"=\" + model.uid + \"]\");\n },\n\n _scrollable: function() {\n if (this.options.scrollable) {\n var scrollables = this.thead.closest(\".k-grid-header-wrap\");\n var lockedContent = $(this.lockedContent)\n .on(\"DOMMouseScroll\" + NS + \" mousewheel\" + NS, this._wheelScroll.bind(this));\n\n this.content.on(\"scroll\" + NS, function() {\n kendo.scrollLeft(scrollables, this.scrollLeft);\n lockedContent.scrollTop(this.scrollTop);\n });\n\n\n var touchScroller = kendo.touchScroller(this.content);\n\n if (touchScroller && touchScroller.movable) {\n this._touchScroller = touchScroller;\n\n touchScroller.movable.bind(\"change\", function(e) {\n kendo.scrollLeft(scrollables, -e.sender.x);\n if (lockedContent) {\n lockedContent.scrollTop(-e.sender.y);\n }\n });\n }\n }\n },\n\n _wheelScroll: function(e) {\n if (e.ctrlKey) {\n return;\n }\n\n var delta = kendo.wheelDeltaY(e);\n var lockedDiv = $(e.currentTarget);\n\n if (delta) {\n if (lockedDiv[0].scrollHeight > lockedDiv[0].clientHeight &&\n (lockedDiv[0].scrollTop < lockedDiv[0].scrollHeight - lockedDiv[0].clientHeight && delta < 0 ||\n lockedDiv[0].scrollTop > 0 && delta > 0)) {\n e.preventDefault();\n }\n //In Firefox DOMMouseScroll event cannot be canceled\n lockedDiv.one(\"wheel\" + NS, false);\n\n this.content.scrollTop(this.content.scrollTop() + (-delta));\n }\n },\n\n _progress: function() {\n var messages = this.options.messages;\n\n if (!this.tbody.find(\"tr\").length) {\n this._showStatus(\n kendo.template(\n \" #: messages.loading #\"\n )({\n className: classNames.icon + \" \" + classNames.loading,\n messages: messages\n })\n );\n }\n },\n\n _error: function(e) {\n if (!this.dataSource.rootNodes().length) {\n this._render({ error: e });\n }\n },\n\n refresh: function(e) {\n var that = this;\n e = e || {};\n\n if (e.action == \"itemchange\" && this.editor) {\n return;\n }\n\n if (this.trigger(DATABINDING)) {\n return;\n }\n var current = $(this.current());\n var isCurrentInHeader = false;\n var currentIndex;\n\n this._cancelEditor();\n\n this._render();\n\n this._adjustHeight();\n\n if (this.options.navigatable) {\n if (this._isActiveInTable() || this.editor) {\n isCurrentInHeader = current.is(\"th\");\n currentIndex = Math.max(this.cellIndex(current), 0);\n }\n this._restoreCurrent(currentIndex, isCurrentInHeader);\n }\n\n if (that._checkBoxSelection) {\n that._deselectCheckRows(that.items(), true);\n }\n\n this.trigger(DATABOUND);\n },\n\n _angularFooters: function(command) {\n var i, footer, aggregates;\n var allAggregates = this.dataSource.aggregates();\n var footerRows = this._footerItems();\n\n for (i = 0; i < footerRows.length; i++) {\n footer = footerRows.eq(i);\n aggregates = allAggregates[footer.attr(\"data-parentId\")];\n\n this._angularFooter(command, footer.find(\"td\").get(), aggregates);\n }\n },\n\n _angularFooter: function(command, cells, aggregates) {\n var columns = this.columns;\n this.angular(command, function() {\n return {\n elements: cells,\n data: map(columns, function(col) {\n return {\n column: col,\n aggregate: aggregates && aggregates[col.field]\n };\n })\n };\n });\n },\n\n items: function() {\n if (this._hasLockedColumns) {\n return this._items(this.tbody).add(this._items(this.lockedTable));\n } else {\n return this._items(this.tbody);\n }\n },\n\n _items: function(container) {\n return container.find(\"tr[data-uid]\").filter(function() {\n return !$(this).hasClass(classNames.footerTemplate);\n });\n },\n\n _footerItems: function() {\n var container = this.tbody;\n if (this._hasLockedColumns) {\n container = container.add(this.lockedTable);\n }\n\n return container.find(\"tr\").filter(function() {\n return $(this).hasClass(classNames.footerTemplate);\n });\n },\n\n dataItems: function() {\n var dataItems = kendo.ui.DataBoundWidget.fn.dataItems.call(this);\n if (this._hasLockedColumns) {\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\n return dataItems;\n },\n\n _showNoRecordsTemplate: function() {\n var wrapper = '
{1}
';\n var defaultTemplate = '
{0}
';\n var scrollableNoGridHeightStyles = (this.options.scrollable && !this.wrapper[0].style.height) ? ' style=\"margin:0 auto;position:static;\"' : '';\n var template;\n\n this._contentTree.render([]);\n if (this._hasLockedColumns) {\n this._lockedContentTree.render([]);\n }\n\n template = kendo.format(defaultTemplate, this.options.messages.noRows, scrollableNoGridHeightStyles);\n\n $(kendo.template(kendo.format(wrapper, NORECORDSCLASS, template))({})).insertAfter(this.table);\n },\n\n _showStatus: function(message) {\n var status = this.element.find(\".k-status\");\n var content = $(this.content).add(this.lockedContent);\n\n if (!status.length) {\n status = $(\"