{"version":3,"file":"kendo.treelist.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendotreelist","js","this","$","undefined$1","data","kendo","encode","htmlEncode","kendoDom","dom","kendoDomElement","element","kendoTextElement","text","kendoHtmlElement","html","outerWidth","_outerWidth","keys","extend","F10","outerHeight","_outerHeight","ui","DataBoundWidget","DataSource","ObservableArray","Query","Model","browser","support","kendoTemplate","template","activeElement","_activeElement","touchDevice","touch","isArray","Array","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","ICON_EXPAND_COLLAPSE_SELECTOR","ARIA_LABEL","ARIA_ACTIVEDESCENDANT","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","className","methodName","createchild","destroy","edit","update","canceledit","cancel","save","excel","pdf","search","ref","message","iconClass","TreeView","Class","init","options","that","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","_columns","_layout","_aria","_ariaId","_navigatable","_selectable","_sortable","_resizable","_filterable","_filterRow","_attachEvents","_toolbar","_scrollable","_reorderable","_columnMenu","_minScreenSupport","_draggable","_pageable","autoBind","fetch","_hasLockedColumns","widget","addClass","_resizeHandler","resize","notify","reorderable","clickMoveClick","move","_hasDragHandleColumn","_dragging","HierarchicalDragAndDrop","$angular","autoScroll","holdToDrag","itemSelector","allowedContainers","table","hintText","row","closest","join","destination","dest","src","itemFromTarget","first","tr","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","lockedContent","lockedTable","scrollable","scrollables","thead","_wheelScroll","scrollLeft","scrollTop","wrapAll","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","noRecordsElement","scrollableNoGridHeightStyles","height","_contentTree","_lockedContentTree","noRows","applyStylesFromKendoAttributes","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","_headertables","_current","_draggableInstance","selectable","_userEvents","_destroyEditor","_destroyPager","_autoExpandable","_dataSourceFetchProxy","lockedHeader","_statusTree","_headerTree","_lockedHeaderColsTree","_lockedContentColsTree","_lockedHeaderTree","sortable","columnMenu","requestFailed","dragHandleLabel","commands","sortHeader","filterCellTitle","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","_tableClick","_tableFocus","_tableBlur","_tableKeyDown","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","tbodyId","headerGroupId","footerGroupId","tableOwned","rowsCount","groupingHeader","gridId","tableTabindex","numberOfFixedRows","trailingColumns","_trailingColumns","virtual","virtualScroll","role","tabindex","_groups","_ariaRowIndex","_ariaColumnIndex","guid","toolbarLabel","groupingHeaderLabel","_ariaHeaderFooter","_ariaLockedContent","previousIndex","dataIndex","cellsIndex","dataVirtual","headerRows","lockedHeaderRows","firstIndex","Number","MAX_VALUE","lastIndex","lockedLastIndex","previousVirtual","nextVirtual","eachHeaderCell","j","cell","getAttribute","lockedParent","setAttribute","rowGroup","groupId","_ariaLocked","_cellId","lockedRows","ownedCells","_cellsIds","tableRows","_ariaAddHiddenColIndex","leafColsCount","_ariaRemoveHiddenColIndex","numberOfHeaderRows","bodyRows","totalNumberOfItems","previousItems","prefix","_currentDataIndex","lockedColumnsCount","_prevVerticalCell","rowIndex","cellSelector","parentColumnsCells","_nextVerticalCell","childColumnsCells","rowSpan","tmpIndex","currentRowCells","hiddenColumns","_verticalContainer","up","step","floor","_filterFocusable","headerId","replace","handled","canHandle","isDefaultPrevented","altKey","keyCode","DOWN","click","stopImmediatePropagation","UP","_moveUp","shiftKey","_moveDown","RIGHT","LEFT","_moveColumn","_handleExpand","_moveRight","_handleCollapse","_moveLeft","PAGEDOWN","_handlePageDown","PAGEUP","_handlePageUp","ENTER","F2","_handleEnterKey","ESC","_handleEscKey","HOME","_handleHome","END","_handleEnd","TAB","_handleTabKey","stopPropagation","isLeft","kendoReorderable","visibleColumns","flatColumnsInDomOrder","oldIndex","offset","newIndex","targetParentContainerIndex","reorderColumn","ctrl","rowContainer","isInLockedTable","isInBody","currentTable","blur","cancelRow","has","focusable","focus","_handleEditing","filterFocusable","document","_tabCycleStop","_tabNext","_preventPageSizeRestore","back","switchRow","nextAll","editContainer","isEdited","editedCell","isIE","incellEditing","nextFocusableCellRowIndex","nextFocusableCellIndex","currentFocusedCellRowIndex","currentFocusedCellIndex","opera","triggerHandler","saveRow","isHeader","headerTable","isInput","isInputElement","setTimeout","retryButton","UserEvents","press","_onPress","allowSelection","_commandClick","_search","_attachCellEditingEventHandlers","multiple","_editCellEvent","isLockedCell","clearTimeout","_closeCellTimeout","relatedTarget","_commandByName","currentName","commandName","parentsUntil","_searchTimeOut","searchFields","expression","filters","logic","getColumnsFields","operator","_ensureExpandableColumn","expandable","expandableColumns","draggableColumns","encoded","lockedCols","Error","nonLockedColumns","normalizeColumns","_columnTemplates","_columnAttributes","_includeChildren","includeChildren","_checkboxClick","_headerCheckboxClick","headerAttributes","dirtyCellTemplate","_createDirtyColumnTemplate","dirtyIndicatorTemplate","_createIndicatorTemplate","headerTemplate","convertStyle","properties","declaration","split","trim","camelCase","attributes","_clearSortClasses","this$1$1","layoutTemplateFunction","layout","addBack","rtl","_initVirtualTrees","_renderCols","_renderHeader","_headerColsTree","_contentColsTree","_processToolbarItems","word","charAt","toUpperCase","imageClass","spriteCssClass","kendoToolBar","navigateOnTab","_lockedColumns","_nonLockedColumns","_templateColumns","_flushCache","_renderOptions","maps","hasFooterTemplate","viewChildrenMap","_dataToRender","_renderedModelLevel","uidAttr","select","_","_absoluteIndex","_angularItems","_clearRenderMap","buttonClass","_viewChildrenMap","_hasFooterTemplate","_trs","editedColumn","editedColumnIndex","isLockedTable","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","colSpan","sortableTitle","_cols","_clearColsCache","_retrieveFirstColumn","_updateFirstColumnClass","_updateRowSpans","visibleChildColumns","_setColumnDataIndexes","_updateColumnCellIndex","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","iconType","columnHasEditCommand","ariaExpanded","dirty","dirtyFields","isDirtyColumn","cursor","_buildCommands","_cellContent","dirtyIndicator","_evalColumnTemplate","templateSettings","_customTemplateSettings","_dirtyIndicatorTemplate","columnTemplate","paramName","Template","_handleCommand","_button","buttonHTML","renderButton","_positionResizeHandle","left","headerWrap","leftMargin","invisibleSpace","leftBorderWidth","resizeHandle","rtlCorrection","cellWidth","buttons","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","_shouldRestorePageSize","leafCols","fieldRenderer","_createIncellEditor","_editCell","isCancel","ns","row1","row2","adjustRowHeight","saveChanges","_toggleColumnVisibility","_findColumn","_adjustTablesWidth","Draggable","hint","prepend","Reorderable","dragOverContainers","_allowDragOverContainers","inSameContainer","sourceIndex","targetIndex","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","parentCellsWithChildren","prevCells","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 (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.dom.js'), require('kendo.data.js'), require('kendo.columnsorter.js'), require('kendo.editable.js'), require('kendo.window.js'), require('kendo.filtermenu.js'), require('kendo.columnmenu.js'), require('kendo.selectable.js'), require('kendo.resizable.js'), require('kendo.treeview.draganddrop.js'), require('kendo.pager.js'), require('kendo.filtercell.js'), require('kendo.textbox.js'), require('kendo.form.js'), require('kendo.toolbar.js'), require('kendo.icons.js'), require('kendo.reorderable.js')) :\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', 'kendo.toolbar', 'kendo.icons', 'kendo.reorderable'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendotreelist = global.kendotreelist || {}, global.kendotreelist.js = factory()));\n})(this, (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\", \"toolbar\", \"icons\", \"reorderable\" ],\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 encode = kendo.htmlEncode;\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 = $.extend({ F10: 121 }, 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,th:not(.k-group-cell):not(.k-hierarchy-cell):visible\";\n var FILTER_CELL = \".k-filter-row td:not(.k-group-cell):not(.k-hierarchy-cell):visible,.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 DRAGHANDLECOLUMNTMPL = function () { return kendo.ui.icon(\"reorder\"); };\n var SELECTED = \"k-selected\";\n var whitespaceRegExp = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n var filterRowRegExp = new RegExp(\"(^|\" + whitespaceRegExp + \")\" + \"(k-filter-row)\" + \"(\" + whitespaceRegExp + \"|$)\");\n var ICON_REFRESH_SELECTOR = \"[class*='-i-arrow-rotate-cw']\";\n var ICON_EXPAND_COLLAPSE_SELECTOR = \"[ref-treelist-expand-collapse-icon]\";\n var CARET_ALT_RIGHT = \"caret-alt-right\";\n var CARET_ALT_LEFT = \"caret-alt-left\";\n var ARIA_LABEL = \"aria-label\";\n\n var ID = \"id\",\n PX = \"px\",\n TR = \"tr\",\n DIV = \"div\",\n\n ARIA_LABEL = \"aria-label\",\n ARIA_OWNS = \"aria-owns\",\n ARIA_ROWCOUNT = \"aria-rowcount\",\n ARIA_COLCOUNT = \"aria-colcount\",\n ARIA_CONTROLS = \"aria-controls\",\n ARIA_COLINDEX = \"aria-colindex\",\n ARIA_ROWINDEX = \"aria-rowindex\",\n ARIA_EXPANDED = \"aria-expanded\",\n ARIA_CHECKED = \"aria-checked\",\n ARIA_ACTIVEDESCENDANT = \"aria-activedescendant\",\n ROLE = \"role\",\n NONE = \"none\",\n ROW = \"row\",\n ROWGROUP = \"rowgroup\",\n COLUMNHEADER = \"columnheader\",\n GRIDCELL = \"gridcell\";\n\n var classNames = {\n wrapper: \"k-treelist k-grid k-grid-md k-grid-display-block\",\n header: \"k-header k-table-th\",\n button: \"k-button\",\n alt: \"k-alt k-table-alt-row\",\n editCell: \"k-edit-cell\",\n editRow: \"k-grid-edit-row\",\n dirtyCell: \"k-dirty-cell\",\n group: \"k-treelist-group k-table-group-row\",\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-menu\",\n footerTemplate: \"k-footer-template\",\n focused: \"k-focus\",\n loading: \"k-i-loading\",\n refresh: \"arrow-rotate-cw\",\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: \"filter\",\n iconCollapse: \"caret-alt-down\",\n iconExpand: \"caret-alt-right\",\n iconHidden: \"k-i-none\",\n iconPlaceHolder: \"k-icon k-i-none\",\n input: \"k-input\",\n dropPositions: \"k-i-insert-top k-i-insert-bottom k-i-plus k-i-insert-middle\",\n dropTop: \"insert-top\",\n dropBottom: \"insert-bottom\",\n dropAdd: \"plus\",\n dropMiddle: \"insert-middle\",\n dropDenied: \"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 icon: \"plus\",\n className: \"k-grid-add\",\n methodName: \"addRow\"\n },\n createchild: {\n icon: \"plus\",\n className: \"k-grid-add\",\n methodName: \"addRow\"\n },\n destroy: {\n icon: \"x\",\n className: \"k-grid-remove-command\",\n methodName: \"removeRow\"\n },\n edit: {\n icon: \"pencil\",\n className: \"k-button-solid-primary k-grid-edit-command\",\n methodName: \"editRow\"\n },\n update: {\n icon: \"save\",\n className: \"k-button-solid-primary k-grid-save-command\",\n methodName: \"saveRow\"\n },\n canceledit: {\n icon: \"cancel-outline\",\n className: \"k-grid-cancel-command\",\n methodName: \"_cancelEdit\"\n },\n cancel: {\n icon: \"cancel-outline\",\n text: \"Cancel changes\",\n className: \"k-grid-cancel-changes\",\n methodName: \"cancelChanges\"\n },\n save: {\n icon: \"check\",\n text: \"Save changes\",\n className: \"k-grid-save-changes\",\n methodName: \"saveChanges\"\n },\n excel: {\n icon: \"excel\",\n className: \"k-grid-excel\",\n methodName: \"saveAsExcel\"\n },\n pdf: {\n icon: \"pdf\",\n className: \"k-grid-pdf\",\n methodName: \"saveAsPDF\"\n },\n search: {\n template: function (ref) {\n var message = ref.message;\n\n return \"\" +\n \"\" +\n kendo.ui.icon({ icon: \"search\", iconClass: \"k-input-icon\" }) +\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: function () { return ''; },\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-command\", this._cancelProxy);\n\n this._saveProxy = this._save.bind(this);\n this.wrapper.on(CLICK + NS, \".k-grid-save-command\", 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\n classNames.iconExpand = isRtl ? CARET_ALT_LEFT : CARET_ALT_RIGHT;\n\n this._dataSource(this.options.dataSource);\n this._columns();\n this._layout();\n this._aria();\n this._ariaId();\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, clickMoveClick;\n\n if (!editable || !editable.move) {\n return;\n }\n\n reorderable = editable.move.reorderable;\n\n if (editable.move.clickMoveClick !== false && this._hasDragHandleColumn) {\n clickMoveClick = true;\n }\n\n this._dragging = new kendo.ui.HierarchicalDragAndDrop(this.wrapper, {\n $angular: this.$angular,\n autoScroll: true,\n holdToDrag: touchDevice,\n filter: that._hasDragHandleColumn ? \".k-drag-cell\" : \"tbody>tr\",\n itemSelector: \"tr\",\n allowedContainers: this.table,\n clickMoveClick: clickMoveClick,\n hintText: function(row) {\n var text = function() { return $(this).text(); };\n var separator = \"\";\n\n row = row.closest(\"tr\");\n\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 this.element.find(\".k-grid-content, .k-grid-content-locked\").wrapAll(\"
\");\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 function (ref) {\n var className = ref.className;\n var messages = ref.messages;\n\n return (\" \" + (encode(messages.loading)));\n }\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 = isCurrentInHeader ? current.parent().children(\":not(.k-group-cell)\").index(current[0]) : Math.max(this.cellIndex(current), 0);\n }\n\n this._restoreCurrent(currentIndex, isCurrentInHeader);\n }\n\n if (that._checkBoxSelection) {\n that._deselectCheckRows(that.items(), true);\n }\n\n that._aria();\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) ? (\" \" + (kendo.attr(\"style-margin\")) + \"=\\\"0 auto\\\" \" + (kendo.attr(\"style-position\")) + \"=\\\"static\\\"\") : '';\n var template;\n var noRecordsElement;\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 noRecordsElement = $(kendo.template(function () { return kendo.format(wrapper, NORECORDSCLASS, template); })({}));\n kendo.applyStylesFromKendoAttributes(noRecordsElement, [\"margin\", \"position\"]);\n noRecordsElement.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 = $(\"