{"version":3,"sources":["webpack:///./node_modules/ag-grid-community/dist/lib/rendering/tooltipComponent.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/rowContainerComponent.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/valueFormatterService.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/rowDragComp.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/rowRenderer.js","webpack:///./node_modules/ag-grid-community/dist/lib/rendering/rowComp.js"],"names":["__extends","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","prototype","create","defineProperty","exports","value","popupComponent_1","TooltipComponent","_super","call","init","params","getGui","innerHTML","PopupComponent","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","__metadata","k","v","metadata","context_1","gridOptionsWrapper_1","utils_1","RowContainerComponent","childCount","rowTemplatesToAdd","afterGuiAttachedCallbacks","lastMadeVisibleTime","eContainer","eViewport","eWrapper","hideWhenNoChildren","setVerticalScrollPosition","verticalScrollPosition","scrollTop","postConstruct","checkDomOrder","checkVisibility","gridOptionsWrapper","addEventListener","GridOptionsWrapper","PROP_DOM_LAYOUT","bind","domOrder","isEnsureDomOrder","getRowElement","compId","querySelector","setHeight","height","style","flushRowTemplates","htmlToAdd","join","_","appendHtml","forEach","func","lastPlacedElement","appendRowTemplate","rowTemplate","callback","insertTemplateWithDomOrder","push","ensureDomOrder","eRow","removeRowElement","removeChild","eGui","visible","Date","getTime","setDisplayed","isMadeVisibleRecently","now","millisSinceVisible","Autowired","PostConstruct","Function","expressionService_1","ValueFormatterService","formatValue","column","rowNode","$scope","formatter","colDef","getColDef","rowPinned","pinnedRowValueFormatter","valueFormatter","result","node","data","api","getApi","columnApi","getColumnApi","context","getContext","expressionService","evaluate","refData","undefined","isArray","ExpressionService","Bean","component_1","rowNode_1","dragAndDropService_1","eventKeys_1","beanStub_1","RowDragComp","cellValue","beans","_this","appendChild","createIconNoSpan","addDragSource","checkCompatibility","isRowDragManaged","addFeature","ManagedVisibilityStrategy","NonManagedVisibilityStrategy","managed","treeData","isTreeData","doOnce","console","warn","dragItem","dragSource","type","DragSourceType","RowDrag","eElement","dragItemName","dragItemCallback","dragStartPixels","dragAndDropService","addDestroyFunc","removeDragSource","Component","VisibilityStrategy","parent","setDisplayedOrVisible","neverDisplayed","shown","isRowDrag","isShownSometimes","isFunction","rowDrag","setVisible","BeanStub","addDestroyableEventListener","onSuppressRowDrag","RowNode","EVENT_DATA_CHANGED","workOutVisibility","EVENT_CELL_CHANGED","isSuppressRowDrag","eventService","Events","EVENT_SORT_CHANGED","onSortChanged","EVENT_FILTER_CHANGED","onFilterChanged","EVENT_COLUMN_ROW_GROUP_CHANGED","onRowGroupChanged","updateSortActive","updateFilterActive","updateRowGroupActive","rowGroups","columnController","getRowGroupColumns","rowGroupActive","missingOrEmpty","sortModel","sortController","getSortModel","sortActive","filterActive","filterManager","isAnyFilterPresent","sortOrFilterOrGroupActive","suppressRowDrag","__param","paramIndex","decorator","eventService_1","rowComp_1","column_1","events_1","constants_1","cellComp_1","columnApi_1","columnController_1","logger_1","focusedCellController_1","cellNavigationService_1","paginationProxy_1","gridApi_1","pinnedRowModel_1","beans_1","animationFrameService_1","maxDivHeightScaler_1","rowPosition_1","RowRenderer","apply","destroyFuncsForColumnListeners","rowCompsByIndex","floatingTopRowComps","floatingBottomRowComps","refreshInProgress","registerGridCore","gridCore","getGridCore","agWire","loggerFactory","logger","registerGridComp","gridPanel","rowContainers","getRowContainers","EVENT_PAGINATION_CHANGED","onPageLoaded","EVENT_PINNED_ROW_DATA_CHANGED","onPinnedRowDataChanged","EVENT_DISPLAYED_COLUMNS_CHANGED","onDisplayedColumnsChanged","EVENT_BODY_SCROLL","redrawAfterScroll","EVENT_BODY_HEIGHT_CHANGED","onDomLayoutChanged","registerCellEventListeners","printLayout","getDomLayout","Constants","DOM_LAYOUT_PRINT","embedFullWidthRows","isEmbedFullWidthRows","redrawAfterModelUpdate","EVENT_CELL_FOCUSED","event","forEachCellComp","cellComp","onCellFocused","EVENT_FLASH_CELLS","onFlashCells","EVENT_COLUMN_HOVER_CHANGED","onColumnHover","EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED","onLeftChanged","rangeSelectionEnabled","isEnableRangeSelection","EVENT_RANGE_SELECTION_CHANGED","onRangeSelectionChanged","EVENT_COLUMN_MOVED","updateRangeBordersIfRangeCount","EVENT_COLUMN_PINNED","EVENT_COLUMN_VISIBLE","refreshListenersToColumnsForCellComps","EVENT_GRID_COLUMNS_CHANGED","removeGridColumnListeners","cols","getAllGridColumns","col","forEachCellWithThisCol","getColumn","leftChangedListener","widthChangedListener","onWidthChanged","firstRightPinnedChangedListener","onFirstRightPinnedChanged","lastLeftPinnedChangedListener","onLastLeftPinnedChanged","Column","EVENT_LEFT_CHANGED","EVENT_WIDTH_CHANGED","EVENT_FIRST_RIGHT_PINNED_CHANGED","EVENT_LAST_LEFT_PINNED_CHANGED","removeEventListener","destroyRows","datasourceChanged","firstRenderedRow","lastRenderedRow","rowIndexesToRemove","keys","removeRowComps","refreshEvent","missing","EVENT_MODEL_UPDATED","gridApi","animate","keepRenderedRows","newData","newPage","onModelUpdated","getAllCellsForColumn","eCells","rowComp","eCell","getCellForCol","iterateObject","refreshFloatingRowComps","refreshFloatingRows","pinnedRowModel","getPinnedTopRowData","floatingTopPinnedLeft","floatingTopPinnedRight","floatingTop","floatingTopFullWidth","getPinnedBottomRowData","floatingBottomPinnedLeft","floatingBottomPinnedRight","floatingBottom","floatingBottomFullWith","rowComps","rowNodes","pinnedLeftContainerComp","pinnedRightContainerComp","bodyContainerComp","fullWidthContainerComp","row","destroy","RowComp","flushContainers","recycleRows","onlyBody","getRenderedIndexesForRowNodes","index","renderedRow","getRowNode","indexOf","redrawRows","indexesToRemove","getCellToRestoreFocusToAfterRefresh","focusedCell","suppressKeepFocus","focusedCellController","getFocusCellToUseAfterRefresh","activeElement","document","domData","getDomData","CellComp","DOM_DATA_KEY_CELL_COMP","elementIsNotACellDev","getLockOnRefresh","sizeContainerToPageHeight","scrollToTopIfNewData","isAnimateRows","rowsToRecycle","binRowComps","redraw","restoreFocusedCell","releaseLockOnRefresh","scrollToTop","suppressScrollToTop","isSuppressScrollOnNewData","containers","body","fullWidth","pinnedLeft","pinnedRight","container","containerHeight","paginationProxy","getCurrentPageHeight","maxDivHeightScaler","setModelHeight","realHeight","getUiContainerHeight","Error","cellPosition","setFocusedCell","rowIndex","stopEditing","cancel","forEachRowComp","addRenderedRowListener","eventName","flashCells","forEachCellCompFiltered","columns","flashCell","refreshCells","refreshCellParams","forceRefresh","force","refreshCell","getCellRendererInstances","res","cellRenderer","getCellRenderer","getCellEditorInstances","cellEditor","getCellEditor","getEditingCells","isEditing","getCellPosition","rowIdsMap","colIdsMap","exists","top","bottom","normal","PINNED_TOP","id","PINNED_BOTTOM","colKey","getGridColumn","getId","processRow","floating","colId","excludeColFromRefresh","rowsToRemove","indexToRemove","removeRowCompsNotToDraw","indexesToDraw","indexesToDrawMap","existingIndexes","indexesNotToDraw","filter","calculateIndexesToDraw","createArrayOfNumbers","indexStr","Number","doNotUnVirtualiseRow","sort","a","afterScroll","updateOffset","workOutFirstAndLastRowsToRender","nextVmTurnFunctions","createOrUpdateRowComp","pushAll","getAndClearNextVMTurnFunctions","executeNextVMTurn","useAnimationFrame","isSuppressAnimationFrame","taskQueue","addP2Task","destroyRowComps","checkAngularCompile","updateRowCount","rowContainerComp","afterFlush","pinningLeft","isPinningLeft","pinningRight","isPinningRight","atLeastOneChanged","redrawFullWidthEmbeddedRows","isFullWidth","toString","refreshFullWidthRows","fullWidthRowsRefreshed","refreshFullWidth","getRow","alreadyRendered","creatingNewRowComp","createRowComp","rowCompsMap","delayedFuncs","nodeId","getAndClearDelayedDestroyFunctions","executeInAWhile","isAngularCompileRows","window","setTimeout","$apply","newFirst","newLast","isRowsToRender","getPageFirstRow","getPageLastRow","paginationOffset","getPixelOffset","getOffset","bodyVRange","getVScrollPosition","bodyTopPixel","bodyBottomPixel","bufferPixels","getRowBufferInPixels","firstPixel","lastPixel","ensureAllRowsInRangeHaveHeightsCalculated","firstRowIndex","getRowIndexAtPixel","lastRowIndex","pageFirstRow","pageLastRow","rowLayoutNormal","DOM_LAYOUT_NORMAL","suppressRowCountRestriction","isSuppressMaxRenderedRowRestriction","rowBufferMaxSize","Math","max","getRowBuffer","firstDiffers","lastDiffers","event_1","EVENT_VIEWPORT_CHANGED","firstRow","lastRow","dispatchEvent","event_2","EVENT_FIRST_DATA_RENDERED","dispatchEventOnce","topPixel","bottomPixel","rowHeightsChanged","ensureRowHeightsValid","getFirstVirtualRenderedRow","getLastVirtualRenderedRow","REMOVE_ROW","KEEP_ROW","rowHasFocus","isRowNodeFocused","rowIsEditing","rowIsDetail","detail","mightWantToKeepRow","rowNodePresent","isRowPresent","suppressAnimationFrame","useAnimationFrameForCreate","getRenderedNodes","renderedRows","map","navigateToNextCell","currentCell","allowUserOverride","nextCell","finished","isEnableRtl","KEY_LEFT","getLastCellOfColSpan","KEY_RIGHT","cellNavigationService","getNextCellToFocus","hitEdgeOfGrid","rowPositionUtils","group","pivotMode","isPivotMode","usingFullWidthRows","isGroupUseEntireRow","userFunc","getNavigateToNextCellFunc","previousCellPosition","nextCellPosition","userCell","ensureCellVisible","getComponentForCell","rangeController","setRangeToCell","cell","colSpanningList","getColSpanningList","last","gridCell","ensureIndexVisible","isPinned","ensureColumnVisible","horizontallyScrollHeaderCenterAndFloatingCenter","animationFrameService","flushAllFrames","startEditingCell","keyPress","charPress","startRowOrCellEdit","rowComponent","cellComponent","getRenderedCellForColumn","gridRow","rowModel","onTabKeyDown","previousRenderedCell","keyboardEvent","backwards","shiftKey","success","moveToCellAfter","preventDefault","tabToNextCell","getFocusedCell","renderedCell","editing","isFullRowEdit","moveToNextEditingRow","moveToNextEditingCell","moveToNextCellNotEditing","nextRenderedCell","findNextCellToFocusOn","foundCell","startEditingIfEnabled","focusCell","moveEditToNextCellOrRow","pGridCell","nGridCell","rowsMatch","setFocusOutOnEditor","setFocusInOnEditor","pRow","getRenderedRow","nRow","startRowEditing","startEditing","getNextTabbedCell","getTabToNextCellFunc","lookupRowNodeForCell","cellIsEditable","isCellEditable","cellIsNotFloating","nextCellComp","isSuppressNavigable","getPinnedTopRow","getPinnedBottomRow","PaginationProxy","ColumnController","EventService","PinnedRowModel","LoggerFactory","FocusedCellController","CellNavigationService","ColumnApi","GridApi","Beans","MaxDivHeightScaler","AnimationFrameService","RowPositionUtils","Optional","Qualifier","__assign","assign","t","s","n","parentScope","animateIn","embedFullWidth","eAllRowContainers","active","rowContainerReadyCount","refreshNeeded","columnRefreshPending","cellComps","createSecondPassFuncs","removeFirstPassFuncs","removeSecondPassFuncs","initialised","rowIsEven","paginationPage","getCurrentPage","setAnimateFlags","rowFocused","isRowFocused","scope","createChildScopeOrNull","setupRowContainers","addListeners","slideRowIn","onTopChanged","fadeRowIn","removeCssClass","createTemplate","contents","extraCssClass","templateParts","rowHeight","rowClasses","getInitialRowClasses","rowIdSanitised","escape","userRowStyles","preProcessStylesFromGridOptions","businessKey","getRowBusinessKey","businessKeySanitised","rowTopStyle","getInitialRowTopStyle","rowIdx","getRowIndexString","headerRowCount","headerRootComp","getHeaderRowCount","getCompId","getColId","executeProcessRowPostCreateFunc","getProcessRowPostCreateFunc","eBodyRow","ePinnedLeftRow","ePinnedRightRow","pixels","roundRowTopToBounds","oldRowTop","rowTop","afterPaginationPixels","applyPaginationOffset","afterScalingPixels","getRealPixelPosition","isSuppressRowTransform","businessKeyForNodeFunc","getBusinessKeyForNodeFunc","areAllContainersReady","lazyCreateCells","cellTemplatesAndComps","createCells","template","callAfterRowAttachedOnCells","createRowContainer","useAnimationsFrameForCreate","afterRowAttached","addP1Task","newChildScope","$new","$destroy","isFullWidthCellFunc","getIsFullWidthCellFunc","isFullWidthCell","isDetailCell","doingMasterDetail","isGroupRow","footer","isFullWidthGroup","stub","createFullWidthRows","LOADING_CELL_RENDERER","LOADING_CELL_RENDERER_COMP_NAME","DETAIL_CELL_RENDERER","DETAIL_CELL_RENDERER_COMP_NAME","FULL_WIDTH_CELL_RENDERER","GROUP_ROW_RENDERER","GROUP_ROW_RENDERER_COMP_NAME","setupNormalRowContainers","centerCols","leftCols","rightCols","getAllDisplayedColumns","getAllDisplayedCenterVirtualColumnsForRow","getDisplayedLeftColumnsForRow","getDisplayedRightColumnsForRow","name","fullWidthRow","createFullWidthRowContainer","eFullWidthRowBody","fullWidthRowComponentBody","PINNED_LEFT","eFullWidthRowLeft","fullWidthRowComponentLeft","PINNED_RIGHT","eFullWidthRowRight","fullWidthRowComponentRight","eFullWidthRow","fullWidthRowComponent","oldRowTopExists","editingRow","stopRowEditing","tryRefresh","eCellComp","pinned","refresh","createFullWidthParams","refreshSucceeded","normalSuccess","bodySuccess","leftSuccess","rightSuccess","allFullWidthRowsRefreshed","EVENT_HEIGHT_CHANGED","onRowHeightChanged","EVENT_ROW_SELECTED","onRowSelected","EVENT_ROW_INDEX_CHANGED","onRowIndexChanged","EVENT_TOP_CHANGED","EVENT_EXPANDED_CHANGED","onExpandedChanged","onRowNodeDataChanged","onRowNodeCellChanged","EVENT_DRAGGING_CHANGED","onRowNodeDraggingChanged","EVENT_HEIGHT_SCALE_CHANGED","EVENT_VIRTUAL_COLUMNS_CHANGED","onVirtualColumnsChanged","EVENT_COLUMN_RESIZED","onColumnResized","onCellFocusChanged","onPaginationChanged","onGridColumnsChanged","addListenersForCellComps","onCellChanged","removeRenderedCells","suppressFlash","update","postProcessCss","postProcessStylesFromGridOptions","postProcessClassesFromGridOptions","postProcessRowClassRules","postProcessRowDragging","dragging","addOrRemoveCssClass","expanded","destroyFullWidthComponents","detailRowCompCache","addOrDestroy","getContainerForCell","pinnedType","skipAnimationFrame","refreshCellsInAnimationFrame","insertCellsIntoContainer","colIdsToRemove","removeFromArray","eligibleToBeRemoved","isCellEligibleToBeRemoved","colIds","detach","displayedColumns","REMOVE_CELL","KEEP_CELL","isCellInWrongRow","focused","isCellFocused","mightWantToKeepCell","cellStillDisplayed","ensureCellInCorrectContainer","element","getPinned","eOldContainer","getParentRow","inWrongRow","setParentRow","rowWeWant","oldRow","cellTemplates","newCellComps","existingCell","createNewCell","addDomData","eRowContainer","gow","setDomData","DOM_DATA_KEY_RENDERED_ROW","newCellComp","cellTemplate","getCreateTemplate","onMouseEvent","mouseEvent","onRowDblClick","onRowClick","createRowEvent","domEvent","createRowEventWithSource","source","isStopPropagationForAgGrid","agEvent","EVENT_ROW_DOUBLE_CLICKED","stop","EVENT_ROW_CLICKED","multiSelectKeyPressed","ctrlKey","metaKey","shiftKeyPressed","selectable","isRowSelection","isSuppressRowClickSelection","multiSelectOnClick","isRowMultiSelectWithClick","rowDeselectionWithCtrl","isRowDeselection","isSelected","setSelectedParams","newValue","clearSelection","rangeSelect","cellRendererType","cellRendererName","eRowCallback","cellRendererCallback","isAlive","gui","cachedRowComp","get","userComponentFactory","newFullWidthCellRenderer","error","then","angular1Compile","$compile","eGridCell","eParentOfValue","classes","level","addExpandedClass","allChildrenCount","processClassesFromGridOptions","preProcessRowClassRules","firstRowOnPage","isFirstRowOnPage","lastRowOnPage","isLastRowOnPage","processRowClassRules","className","onApplicableClass","onNotApplicableClass","stylingService","processClassRules","rowClassRules","EVENT_ROW_VALUE_CHANGED","setEditingRow","EVENT_ROW_EDITING_STARTED","EVENT_ROW_EDITING_STOPPED","sourceRenderedCell","cellStartedEdit","cssClasses","classStr","addCssClass","process","rowCls","e","rowClass","getRowClass","rowClassFunc","getRowClassFunc","rowClassFuncResult","rowStyles","processStylesFromGridOptions","cssStyleObjectToMarkup","addStylesToElement","rowStyle","getRowStyle","rowStyleFuncResult","rowStyleFunc","getRowStyleFunc","templateAndComps","selected","afterAttached","setRowTop","addHoverFunctionality","onMouseEnter","onMouseLeave","EVENT_MOUSE_ENTER","isSuppressRowHoverHighlight","EVENT_MOUSE_LEAVE","range","minPixel","maxPixel","min","getFrameworkOverrides","frameworkOverrides","heightPx_1","eventType","listener","EVENT_VIRTUAL_ROW_REMOVED","destroyContainingCells","delayedDestroyFunctions","currentPage","topPx","reverse","isRowPinned","pixelOffset","multiplier","topPx_1","transform","spanList","cmp","updateRowIndexes","rowIndexStr","rowIsEvenChanged","setAttribute","sides","el","getBodyRowElement","ct","getPinnedLeftRowElement","getPinnedRightRowElement","getFullWidthRowElement","side"],"mappings":"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","file":"js/chunk-vendors~4e2ef574.075b02ec.js","sourcesContent":["/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar popupComponent_1 = require(\"../widgets/popupComponent\");\nvar TooltipComponent = /** @class */ (function (_super) {\n __extends(TooltipComponent, _super);\n function TooltipComponent() {\n return _super.call(this, \"
\") || this;\n }\n // will need to type params\n TooltipComponent.prototype.init = function (params) {\n var value = params.value;\n this.getGui().innerHTML = value;\n };\n return TooltipComponent;\n}(popupComponent_1.PopupComponent));\nexports.TooltipComponent = TooltipComponent;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar context_1 = require(\"../context/context\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar utils_1 = require(\"../utils\");\n/**\n * There are many instances of this component covering each of the areas a row can be entered\n * eg body, pinned left, fullWidth. The component differs from others in that it's given the\n * elements, there is no template. All of the elements are part of the GridPanel.\n */\nvar RowContainerComponent = /** @class */ (function () {\n function RowContainerComponent(params) {\n this.childCount = 0;\n this.rowTemplatesToAdd = [];\n this.afterGuiAttachedCallbacks = [];\n // this is to cater for a 'strange behaviour' where when a panel is made visible, it is firing a scroll\n // event which we want to ignore. see gridPanel.onAnyBodyScroll()\n this.lastMadeVisibleTime = 0;\n this.eContainer = params.eContainer;\n this.eViewport = params.eViewport;\n if (params.eWrapper) {\n this.eWrapper = params.eWrapper;\n }\n this.hideWhenNoChildren = params.hideWhenNoChildren;\n }\n RowContainerComponent.prototype.setVerticalScrollPosition = function (verticalScrollPosition) {\n this.scrollTop = verticalScrollPosition;\n };\n RowContainerComponent.prototype.postConstruct = function () {\n this.checkDomOrder();\n this.checkVisibility();\n this.gridOptionsWrapper.addEventListener(gridOptionsWrapper_1.GridOptionsWrapper.PROP_DOM_LAYOUT, this.checkDomOrder.bind(this));\n };\n RowContainerComponent.prototype.checkDomOrder = function () {\n this.domOrder = this.gridOptionsWrapper.isEnsureDomOrder();\n };\n RowContainerComponent.prototype.getRowElement = function (compId) {\n return this.eContainer.querySelector(\"[comp-id=\\\"\" + compId + \"\\\"]\");\n };\n RowContainerComponent.prototype.setHeight = function (height) {\n if (height == null) {\n this.eContainer.style.height = '';\n return;\n }\n this.eContainer.style.height = height + \"px\";\n if (this.eWrapper) {\n this.eWrapper.style.height = height + \"px\";\n }\n };\n RowContainerComponent.prototype.flushRowTemplates = function () {\n // if doing dom order, then rowTemplates will be empty,\n // or if no rows added since last time also empty.\n if (this.rowTemplatesToAdd.length !== 0) {\n var htmlToAdd = this.rowTemplatesToAdd.join('');\n utils_1._.appendHtml(this.eContainer, htmlToAdd);\n this.rowTemplatesToAdd.length = 0;\n }\n // this only empty if no rows since last time, as when\n // doing dom order, we still have callbacks to process\n this.afterGuiAttachedCallbacks.forEach(function (func) { return func(); });\n this.afterGuiAttachedCallbacks.length = 0;\n this.lastPlacedElement = null;\n };\n RowContainerComponent.prototype.appendRowTemplate = function (rowTemplate, callback) {\n if (this.domOrder) {\n this.lastPlacedElement = utils_1._.insertTemplateWithDomOrder(this.eContainer, rowTemplate, this.lastPlacedElement);\n }\n else {\n this.rowTemplatesToAdd.push(rowTemplate);\n }\n this.afterGuiAttachedCallbacks.push(callback);\n // it is important we put items in in order, so that when we open a row group,\n // the new rows are inserted after the opened group, but before the rows below.\n // that way, the rows below are over the new rows (as dom renders last in dom over\n // items previous in dom), otherwise the child rows would cover the row below and\n // that meant the user doesn't see the rows below slide away.\n this.childCount++;\n this.checkVisibility();\n };\n RowContainerComponent.prototype.ensureDomOrder = function (eRow) {\n if (this.domOrder) {\n utils_1._.ensureDomOrder(this.eContainer, eRow, this.lastPlacedElement);\n this.lastPlacedElement = eRow;\n }\n };\n RowContainerComponent.prototype.removeRowElement = function (eRow) {\n this.eContainer.removeChild(eRow);\n this.childCount--;\n this.checkVisibility();\n };\n RowContainerComponent.prototype.checkVisibility = function () {\n if (!this.hideWhenNoChildren) {\n return;\n }\n var eGui = this.eViewport ? this.eViewport : this.eContainer;\n var visible = this.childCount > 0;\n if (this.visible !== visible) {\n this.visible = visible;\n this.lastMadeVisibleTime = new Date().getTime();\n utils_1._.setDisplayed(eGui, visible);\n // if we are showing the viewport, then the scroll is always zero,\n // so we need to align with the other sections (ie if this is full\n // width container, and first time showing a full width row, we need to\n // scroll it so full width rows are show in right place alongside the\n // body rows). without this, there was an issue with 'loading rows' for\n // server side row model, as loading rows are full width, and they were\n // not getting displayed in the right location when rows were expanded.\n if (visible && this.eViewport) {\n this.eViewport.scrollTop = this.scrollTop;\n }\n }\n };\n RowContainerComponent.prototype.isMadeVisibleRecently = function () {\n var now = new Date().getTime();\n var millisSinceVisible = now - this.lastMadeVisibleTime;\n return millisSinceVisible < 500;\n };\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], RowContainerComponent.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], RowContainerComponent.prototype, \"postConstruct\", null);\n return RowContainerComponent;\n}());\nexports.RowContainerComponent = RowContainerComponent;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar context_1 = require(\"../context/context\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar expressionService_1 = require(\"../valueService/expressionService\");\nvar ValueFormatterService = /** @class */ (function () {\n function ValueFormatterService() {\n }\n ValueFormatterService.prototype.formatValue = function (column, rowNode, $scope, value) {\n var formatter;\n var colDef = column.getColDef();\n // if floating, give preference to the floating formatter\n if (rowNode && rowNode.rowPinned) {\n formatter = colDef.pinnedRowValueFormatter ? colDef.pinnedRowValueFormatter : colDef.valueFormatter;\n }\n else {\n formatter = colDef.valueFormatter;\n }\n var result = null;\n if (formatter) {\n var params = {\n value: value,\n node: rowNode,\n data: rowNode ? rowNode.data : null,\n colDef: column.getColDef(),\n column: column,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n // originally we put the angular 1 scope here, but we don't want the scope\n // in the params interface, as other frameworks will see the interface, and\n // angular 1 is not cool any more. so we hack the scope in here (we cannot\n // include it above, as it's not in the interface, so would cause a compile error).\n // in the future, when we stop supporting angular 1, we can take this out.\n params.$scope = $scope;\n result = this.expressionService.evaluate(formatter, params);\n }\n else if (colDef.refData) {\n return colDef.refData[value] || '';\n }\n // if we don't do this, then arrays get displayed as 1,2,3, but we want 1, 2, 3 (ie with spaces)\n if ((result === null || result === undefined) && Array.isArray(value)) {\n result = value.join(', ');\n }\n return result;\n };\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], ValueFormatterService.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.Autowired('expressionService'),\n __metadata(\"design:type\", expressionService_1.ExpressionService)\n ], ValueFormatterService.prototype, \"expressionService\", void 0);\n ValueFormatterService = __decorate([\n context_1.Bean('valueFormatterService')\n ], ValueFormatterService);\n return ValueFormatterService;\n}());\nexports.ValueFormatterService = ValueFormatterService;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"../widgets/component\");\nvar context_1 = require(\"../context/context\");\nvar rowNode_1 = require(\"../entities/rowNode\");\nvar dragAndDropService_1 = require(\"../dragAndDrop/dragAndDropService\");\nvar eventKeys_1 = require(\"../eventKeys\");\nvar beanStub_1 = require(\"../context/beanStub\");\nvar utils_1 = require(\"../utils\");\nvar RowDragComp = /** @class */ (function (_super) {\n __extends(RowDragComp, _super);\n function RowDragComp(rowNode, column, cellValue, beans) {\n var _this = _super.call(this, \"\") || this;\n _this.rowNode = rowNode;\n _this.column = column;\n _this.cellValue = cellValue;\n _this.beans = beans;\n return _this;\n }\n RowDragComp.prototype.postConstruct = function () {\n var eGui = this.getGui();\n eGui.appendChild(utils_1._.createIconNoSpan('rowDrag', this.beans.gridOptionsWrapper, null));\n this.addDragSource();\n this.checkCompatibility();\n if (this.beans.gridOptionsWrapper.isRowDragManaged()) {\n this.addFeature(this.beans.context, new ManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column));\n }\n else {\n this.addFeature(this.beans.context, new NonManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column));\n }\n };\n // returns true if all compatibility items work out\n RowDragComp.prototype.checkCompatibility = function () {\n var managed = this.beans.gridOptionsWrapper.isRowDragManaged();\n var treeData = this.beans.gridOptionsWrapper.isTreeData();\n if (treeData && managed) {\n utils_1._.doOnce(function () {\n return console.warn('ag-Grid: If using row drag with tree data, you cannot have rowDragManaged=true');\n }, 'RowDragComp.managedAndTreeData');\n }\n };\n RowDragComp.prototype.addDragSource = function () {\n var _this = this;\n var dragItem = {\n rowNode: this.rowNode\n };\n var dragSource = {\n type: dragAndDropService_1.DragSourceType.RowDrag,\n eElement: this.getGui(),\n dragItemName: this.cellValue,\n dragItemCallback: function () { return dragItem; },\n dragStartPixels: 0\n };\n this.beans.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.beans.dragAndDropService.removeDragSource(dragSource); });\n };\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], RowDragComp.prototype, \"postConstruct\", null);\n return RowDragComp;\n}(component_1.Component));\nexports.RowDragComp = RowDragComp;\nvar VisibilityStrategy = /** @class */ (function (_super) {\n __extends(VisibilityStrategy, _super);\n function VisibilityStrategy(parent, rowNode, column) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.column = column;\n _this.rowNode = rowNode;\n return _this;\n }\n VisibilityStrategy.prototype.setDisplayedOrVisible = function (neverDisplayed) {\n if (neverDisplayed) {\n this.parent.setDisplayed(false);\n }\n else {\n var shown = this.column.isRowDrag(this.rowNode);\n var isShownSometimes = utils_1._.isFunction(this.column.getColDef().rowDrag);\n // if shown sometimes, them some rows can have drag handle while other don't,\n // so we use setVisible to keep the handles horizontally aligned (as setVisible\n // keeps the empty space, whereas setDisplayed looses the space)\n if (isShownSometimes) {\n this.parent.setVisible(shown);\n }\n else {\n this.parent.setDisplayed(shown);\n }\n }\n };\n return VisibilityStrategy;\n}(beanStub_1.BeanStub));\n// when non managed, the visibility depends on suppressRowDrag property only\nvar NonManagedVisibilityStrategy = /** @class */ (function (_super) {\n __extends(NonManagedVisibilityStrategy, _super);\n function NonManagedVisibilityStrategy(parent, beans, rowNode, column) {\n var _this = _super.call(this, parent, rowNode, column) || this;\n _this.beans = beans;\n return _this;\n }\n NonManagedVisibilityStrategy.prototype.postConstruct = function () {\n this.addDestroyableEventListener(this.beans.gridOptionsWrapper, 'suppressRowDrag', this.onSuppressRowDrag.bind(this));\n // in case data changes, then we need to update visibility of drag item\n this.addDestroyableEventListener(this.rowNode, rowNode_1.RowNode.EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));\n this.addDestroyableEventListener(this.rowNode, rowNode_1.RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.workOutVisibility();\n };\n NonManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {\n this.workOutVisibility();\n };\n NonManagedVisibilityStrategy.prototype.workOutVisibility = function () {\n // only show the drag if both sort and filter are not present\n var neverDisplayed = this.beans.gridOptionsWrapper.isSuppressRowDrag();\n this.setDisplayedOrVisible(neverDisplayed);\n };\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], NonManagedVisibilityStrategy.prototype, \"postConstruct\", null);\n return NonManagedVisibilityStrategy;\n}(VisibilityStrategy));\n// when managed, the visibility depends on sort, filter and row group, as well as suppressRowDrag property\nvar ManagedVisibilityStrategy = /** @class */ (function (_super) {\n __extends(ManagedVisibilityStrategy, _super);\n function ManagedVisibilityStrategy(parent, beans, rowNode, column) {\n var _this = _super.call(this, parent, rowNode, column) || this;\n _this.beans = beans;\n return _this;\n }\n ManagedVisibilityStrategy.prototype.postConstruct = function () {\n // we do not show the component if sort, filter or grouping is active\n this.addDestroyableEventListener(this.beans.eventService, eventKeys_1.Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.addDestroyableEventListener(this.beans.eventService, eventKeys_1.Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addDestroyableEventListener(this.beans.eventService, eventKeys_1.Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onRowGroupChanged.bind(this));\n // in case data changes, then we need to update visibility of drag item\n this.addDestroyableEventListener(this.rowNode, rowNode_1.RowNode.EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));\n this.addDestroyableEventListener(this.rowNode, rowNode_1.RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addDestroyableEventListener(this.beans.gridOptionsWrapper, 'suppressRowDrag', this.onSuppressRowDrag.bind(this));\n this.updateSortActive();\n this.updateFilterActive();\n this.updateRowGroupActive();\n this.workOutVisibility();\n };\n ManagedVisibilityStrategy.prototype.updateRowGroupActive = function () {\n var rowGroups = this.beans.columnController.getRowGroupColumns();\n this.rowGroupActive = !utils_1._.missingOrEmpty(rowGroups);\n };\n ManagedVisibilityStrategy.prototype.onRowGroupChanged = function () {\n this.updateRowGroupActive();\n this.workOutVisibility();\n };\n ManagedVisibilityStrategy.prototype.updateSortActive = function () {\n var sortModel = this.beans.sortController.getSortModel();\n this.sortActive = !utils_1._.missingOrEmpty(sortModel);\n };\n ManagedVisibilityStrategy.prototype.onSortChanged = function () {\n this.updateSortActive();\n this.workOutVisibility();\n };\n ManagedVisibilityStrategy.prototype.updateFilterActive = function () {\n this.filterActive = this.beans.filterManager.isAnyFilterPresent();\n };\n ManagedVisibilityStrategy.prototype.onFilterChanged = function () {\n this.updateFilterActive();\n this.workOutVisibility();\n };\n ManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {\n this.workOutVisibility();\n };\n ManagedVisibilityStrategy.prototype.workOutVisibility = function () {\n // only show the drag if both sort and filter are not present\n var sortOrFilterOrGroupActive = this.sortActive || this.filterActive || this.rowGroupActive;\n var suppressRowDrag = this.beans.gridOptionsWrapper.isSuppressRowDrag();\n var neverDisplayed = sortOrFilterOrGroupActive || suppressRowDrag;\n this.setDisplayedOrVisible(neverDisplayed);\n };\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], ManagedVisibilityStrategy.prototype, \"postConstruct\", null);\n return ManagedVisibilityStrategy;\n}(VisibilityStrategy));\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar eventService_1 = require(\"../eventService\");\nvar rowComp_1 = require(\"./rowComp\");\nvar column_1 = require(\"../entities/column\");\nvar events_1 = require(\"../events\");\nvar constants_1 = require(\"../constants\");\nvar cellComp_1 = require(\"./cellComp\");\nvar context_1 = require(\"../context/context\");\nvar columnApi_1 = require(\"../columnController/columnApi\");\nvar columnController_1 = require(\"../columnController/columnController\");\nvar logger_1 = require(\"../logger\");\nvar focusedCellController_1 = require(\"../focusedCellController\");\nvar cellNavigationService_1 = require(\"../cellNavigationService\");\nvar beanStub_1 = require(\"../context/beanStub\");\nvar paginationProxy_1 = require(\"../rowModels/paginationProxy\");\nvar gridApi_1 = require(\"../gridApi\");\nvar pinnedRowModel_1 = require(\"../rowModels/pinnedRowModel\");\nvar beans_1 = require(\"./beans\");\nvar animationFrameService_1 = require(\"../misc/animationFrameService\");\nvar maxDivHeightScaler_1 = require(\"./maxDivHeightScaler\");\nvar utils_1 = require(\"../utils\");\nvar rowPosition_1 = require(\"../entities/rowPosition\");\nvar RowRenderer = /** @class */ (function (_super) {\n __extends(RowRenderer, _super);\n function RowRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.destroyFuncsForColumnListeners = [];\n // map of row ids to row objects. keeps track of which elements\n // are rendered for which rows in the dom.\n _this.rowCompsByIndex = {};\n _this.floatingTopRowComps = [];\n _this.floatingBottomRowComps = [];\n // we only allow one refresh at a time, otherwise the internal memory structure here\n // will get messed up. this can happen if the user has a cellRenderer, and inside the\n // renderer they call an API method that results in another pass of the refresh,\n // then it will be trying to draw rows in the middle of a refresh.\n _this.refreshInProgress = false;\n return _this;\n }\n RowRenderer.prototype.registerGridCore = function (gridCore) {\n this.gridCore = gridCore;\n };\n RowRenderer.prototype.getGridCore = function () {\n return this.gridCore;\n };\n RowRenderer.prototype.agWire = function (loggerFactory) {\n this.logger = loggerFactory.create(\"RowRenderer\");\n };\n RowRenderer.prototype.registerGridComp = function (gridPanel) {\n this.gridPanel = gridPanel;\n this.rowContainers = this.gridPanel.getRowContainers();\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_PAGINATION_CHANGED, this.onPageLoaded.bind(this));\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_BODY_SCROLL, this.redrawAfterScroll.bind(this));\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_BODY_HEIGHT_CHANGED, this.redrawAfterScroll.bind(this));\n this.addDestroyableEventListener(this.gridOptionsWrapper, gridOptionsWrapper_1.GridOptionsWrapper.PROP_DOM_LAYOUT, this.onDomLayoutChanged.bind(this));\n this.registerCellEventListeners();\n this.printLayout = this.gridOptionsWrapper.getDomLayout() === constants_1.Constants.DOM_LAYOUT_PRINT;\n this.embedFullWidthRows = this.printLayout || this.gridOptionsWrapper.isEmbedFullWidthRows();\n this.redrawAfterModelUpdate();\n };\n // in a clean design, each cell would register for each of these events. however when scrolling, all the cells\n // registering and de-registering for events is a performance bottleneck. so we register here once and inform\n // all active cells.\n RowRenderer.prototype.registerCellEventListeners = function () {\n var _this = this;\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_CELL_FOCUSED, function (event) {\n _this.forEachCellComp(function (cellComp) { return cellComp.onCellFocused(event); });\n });\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_FLASH_CELLS, function (event) {\n _this.forEachCellComp(function (cellComp) { return cellComp.onFlashCells(event); });\n });\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_COLUMN_HOVER_CHANGED, function () {\n _this.forEachCellComp(function (cellComp) { return cellComp.onColumnHover(); });\n });\n // only for printLayout - because we are rendering all the cells in the same row, regardless of pinned state,\n // then changing the width of the containers will impact left position. eg the center cols all have their\n // left position adjusted by the width of the left pinned column, so if the pinned left column width changes,\n // all the center cols need to be shifted to accommodate this. when in normal layout, the pinned cols are\n // in different containers so doesn't impact.\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, function () {\n if (_this.printLayout) {\n _this.forEachCellComp(function (cellComp) { return cellComp.onLeftChanged(); });\n }\n });\n var rangeSelectionEnabled = this.gridOptionsWrapper.isEnableRangeSelection();\n if (rangeSelectionEnabled) {\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_RANGE_SELECTION_CHANGED, function () {\n _this.forEachCellComp(function (cellComp) { return cellComp.onRangeSelectionChanged(); });\n });\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_COLUMN_MOVED, function () {\n _this.forEachCellComp(function (cellComp) { return cellComp.updateRangeBordersIfRangeCount(); });\n });\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_COLUMN_PINNED, function () {\n _this.forEachCellComp(function (cellComp) { return cellComp.updateRangeBordersIfRangeCount(); });\n });\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_COLUMN_VISIBLE, function () {\n _this.forEachCellComp(function (cellComp) { return cellComp.updateRangeBordersIfRangeCount(); });\n });\n }\n // add listeners to the grid columns\n this.refreshListenersToColumnsForCellComps();\n // if the grid columns change, then refresh the listeners again\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_GRID_COLUMNS_CHANGED, this.refreshListenersToColumnsForCellComps.bind(this));\n this.addDestroyFunc(this.removeGridColumnListeners.bind(this));\n };\n // executes all functions in destroyFuncsForColumnListeners and then clears the list\n RowRenderer.prototype.removeGridColumnListeners = function () {\n this.destroyFuncsForColumnListeners.forEach(function (func) { return func(); });\n this.destroyFuncsForColumnListeners.length = 0;\n };\n // this function adds listeners onto all the grid columns, which are the column that we could have cellComps for.\n // when the grid columns change, we add listeners again. in an ideal design, each CellComp would just register to\n // the column it belongs to on creation, however this was a bottleneck with the number of cells, so do it here\n // once instead.\n RowRenderer.prototype.refreshListenersToColumnsForCellComps = function () {\n var _this = this;\n this.removeGridColumnListeners();\n var cols = this.columnController.getAllGridColumns();\n if (!cols) {\n return;\n }\n cols.forEach(function (col) {\n var forEachCellWithThisCol = function (callback) {\n _this.forEachCellComp(function (cellComp) {\n if (cellComp.getColumn() === col) {\n callback(cellComp);\n }\n });\n };\n var leftChangedListener = function () {\n forEachCellWithThisCol(function (cellComp) { return cellComp.onLeftChanged(); });\n };\n var widthChangedListener = function () {\n forEachCellWithThisCol(function (cellComp) { return cellComp.onWidthChanged(); });\n };\n var firstRightPinnedChangedListener = function () {\n forEachCellWithThisCol(function (cellComp) { return cellComp.onFirstRightPinnedChanged(); });\n };\n var lastLeftPinnedChangedListener = function () {\n forEachCellWithThisCol(function (cellComp) { return cellComp.onLastLeftPinnedChanged(); });\n };\n col.addEventListener(column_1.Column.EVENT_LEFT_CHANGED, leftChangedListener);\n col.addEventListener(column_1.Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n col.addEventListener(column_1.Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, firstRightPinnedChangedListener);\n col.addEventListener(column_1.Column.EVENT_LAST_LEFT_PINNED_CHANGED, lastLeftPinnedChangedListener);\n _this.destroyFuncsForColumnListeners.push(function () {\n col.removeEventListener(column_1.Column.EVENT_LEFT_CHANGED, leftChangedListener);\n col.removeEventListener(column_1.Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n col.removeEventListener(column_1.Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, firstRightPinnedChangedListener);\n col.removeEventListener(column_1.Column.EVENT_LAST_LEFT_PINNED_CHANGED, lastLeftPinnedChangedListener);\n });\n });\n };\n RowRenderer.prototype.onDomLayoutChanged = function () {\n var printLayout = this.gridOptionsWrapper.getDomLayout() === constants_1.Constants.DOM_LAYOUT_PRINT;\n var embedFullWidthRows = printLayout || this.gridOptionsWrapper.isEmbedFullWidthRows();\n // if moving towards or away from print layout, means we need to destroy all rows, as rows are not laid\n // out using absolute positioning when doing print layout\n var destroyRows = embedFullWidthRows !== this.embedFullWidthRows || this.printLayout !== printLayout;\n this.printLayout = printLayout;\n this.embedFullWidthRows = embedFullWidthRows;\n if (destroyRows) {\n this.redrawAfterModelUpdate();\n }\n };\n // for row models that have datasources, when we update the datasource, we need to force the rowRenderer\n // to redraw all rows. otherwise the old rows from the old datasource will stay displayed.\n RowRenderer.prototype.datasourceChanged = function () {\n this.firstRenderedRow = 0;\n this.lastRenderedRow = -1;\n var rowIndexesToRemove = Object.keys(this.rowCompsByIndex);\n this.removeRowComps(rowIndexesToRemove);\n };\n RowRenderer.prototype.onPageLoaded = function (refreshEvent) {\n if (utils_1._.missing(refreshEvent)) {\n refreshEvent = {\n type: events_1.Events.EVENT_MODEL_UPDATED,\n api: this.gridApi,\n columnApi: this.columnApi,\n animate: false,\n keepRenderedRows: false,\n newData: false,\n newPage: false\n };\n }\n this.onModelUpdated(refreshEvent);\n };\n RowRenderer.prototype.getAllCellsForColumn = function (column) {\n var eCells = [];\n utils_1._.iterateObject(this.rowCompsByIndex, callback);\n utils_1._.iterateObject(this.floatingBottomRowComps, callback);\n utils_1._.iterateObject(this.floatingTopRowComps, callback);\n function callback(key, rowComp) {\n var eCell = rowComp.getCellForCol(column);\n if (eCell) {\n eCells.push(eCell);\n }\n }\n return eCells;\n };\n RowRenderer.prototype.refreshFloatingRowComps = function () {\n this.refreshFloatingRows(this.floatingTopRowComps, this.pinnedRowModel.getPinnedTopRowData(), this.rowContainers.floatingTopPinnedLeft, this.rowContainers.floatingTopPinnedRight, this.rowContainers.floatingTop, this.rowContainers.floatingTopFullWidth);\n this.refreshFloatingRows(this.floatingBottomRowComps, this.pinnedRowModel.getPinnedBottomRowData(), this.rowContainers.floatingBottomPinnedLeft, this.rowContainers.floatingBottomPinnedRight, this.rowContainers.floatingBottom, this.rowContainers.floatingBottomFullWith);\n };\n RowRenderer.prototype.refreshFloatingRows = function (rowComps, rowNodes, pinnedLeftContainerComp, pinnedRightContainerComp, bodyContainerComp, fullWidthContainerComp) {\n var _this = this;\n rowComps.forEach(function (row) {\n row.destroy();\n });\n rowComps.length = 0;\n if (rowNodes) {\n rowNodes.forEach(function (node) {\n var rowComp = new rowComp_1.RowComp(_this.$scope, bodyContainerComp, pinnedLeftContainerComp, pinnedRightContainerComp, fullWidthContainerComp, node, _this.beans, false, false, _this.printLayout, _this.embedFullWidthRows);\n rowComp.init();\n rowComps.push(rowComp);\n });\n }\n this.flushContainers(rowComps);\n };\n RowRenderer.prototype.onPinnedRowDataChanged = function () {\n // recycling rows in order to ensure cell editing is not cancelled\n var params = {\n recycleRows: true\n };\n this.redrawAfterModelUpdate(params);\n };\n RowRenderer.prototype.onModelUpdated = function (refreshEvent) {\n var params = {\n recycleRows: refreshEvent.keepRenderedRows,\n animate: refreshEvent.animate,\n newData: refreshEvent.newData,\n newPage: refreshEvent.newPage,\n // because this is a model updated event (not pinned rows), we\n // can skip updating the pinned rows. this is needed so that if user\n // is doing transaction updates, the pinned rows are not getting constantly\n // trashed - or editing cells in pinned rows are not refreshed and put into read mode\n onlyBody: true\n };\n this.redrawAfterModelUpdate(params);\n };\n // if the row nodes are not rendered, no index is returned\n RowRenderer.prototype.getRenderedIndexesForRowNodes = function (rowNodes) {\n var result = [];\n if (utils_1._.missing(rowNodes)) {\n return result;\n }\n utils_1._.iterateObject(this.rowCompsByIndex, function (index, renderedRow) {\n var rowNode = renderedRow.getRowNode();\n if (rowNodes.indexOf(rowNode) >= 0) {\n result.push(index);\n }\n });\n return result;\n };\n RowRenderer.prototype.redrawRows = function (rowNodes) {\n if (!rowNodes || rowNodes.length == 0) {\n return;\n }\n // we only need to be worried about rendered rows, as this method is\n // called to what's rendered. if the row isn't rendered, we don't care\n var indexesToRemove = this.getRenderedIndexesForRowNodes(rowNodes);\n // remove the rows\n this.removeRowComps(indexesToRemove);\n // add draw them again\n this.redrawAfterModelUpdate({\n recycleRows: true\n });\n };\n RowRenderer.prototype.getCellToRestoreFocusToAfterRefresh = function (params) {\n var focusedCell = params.suppressKeepFocus ? null : this.focusedCellController.getFocusCellToUseAfterRefresh();\n if (utils_1._.missing(focusedCell)) {\n return null;\n }\n // if the dom is not actually focused on a cell, then we don't try to refocus. the problem this\n // solves is with editing - if the user is editing, eg focus is on a text field, and not on the\n // cell itself, then the cell can be registered as having focus, however it's the text field that\n // has the focus and not the cell div. therefore, when the refresh is finished, the grid will focus\n // the cell, and not the textfield. that means if the user is in a text field, and the grid refreshes,\n // the focus is lost from the text field. we do not want this.\n var activeElement = document.activeElement;\n var domData = this.gridOptionsWrapper.getDomData(activeElement, cellComp_1.CellComp.DOM_DATA_KEY_CELL_COMP);\n var elementIsNotACellDev = utils_1._.missing(domData);\n if (elementIsNotACellDev) {\n return null;\n }\n return focusedCell;\n };\n // gets called after changes to the model.\n RowRenderer.prototype.redrawAfterModelUpdate = function (params) {\n if (params === void 0) { params = {}; }\n this.getLockOnRefresh();\n var focusedCell = this.getCellToRestoreFocusToAfterRefresh(params);\n this.sizeContainerToPageHeight();\n this.scrollToTopIfNewData(params);\n // never recycle rows when print layout, we draw each row again from scratch. this is because print layout\n // uses normal dom layout to put cells into dom - it doesn't allow reordering rows.\n var recycleRows = !this.printLayout && params.recycleRows;\n var animate = params.animate && this.gridOptionsWrapper.isAnimateRows();\n var rowsToRecycle = this.binRowComps(recycleRows);\n this.redraw(rowsToRecycle, animate);\n if (!params.onlyBody) {\n this.refreshFloatingRowComps();\n }\n this.restoreFocusedCell(focusedCell);\n this.releaseLockOnRefresh();\n };\n RowRenderer.prototype.scrollToTopIfNewData = function (params) {\n var scrollToTop = params.newData || params.newPage;\n var suppressScrollToTop = this.gridOptionsWrapper.isSuppressScrollOnNewData();\n if (scrollToTop && !suppressScrollToTop) {\n this.gridPanel.scrollToTop();\n }\n };\n RowRenderer.prototype.sizeContainerToPageHeight = function () {\n var containers = [\n this.rowContainers.body,\n this.rowContainers.fullWidth,\n this.rowContainers.pinnedLeft,\n this.rowContainers.pinnedRight\n ];\n if (this.printLayout) {\n containers.forEach(function (container) { return container.setHeight(null); });\n return;\n }\n var containerHeight = this.paginationProxy.getCurrentPageHeight();\n // we need at least 1 pixel for the horizontal scroll to work. so if there are now rows,\n // we still want the scroll to be present, otherwise there would be no way to scroll the header\n // which might be needed us user wants to access columns\n // on the RHS - and if that was where the filter was that cause no rows to be presented, there\n // is no way to remove the filter.\n if (containerHeight === 0) {\n containerHeight = 1;\n }\n this.maxDivHeightScaler.setModelHeight(containerHeight);\n var realHeight = this.maxDivHeightScaler.getUiContainerHeight();\n containers.forEach(function (container) { return container.setHeight(realHeight); });\n };\n RowRenderer.prototype.getLockOnRefresh = function () {\n if (this.refreshInProgress) {\n throw new Error(\"ag-Grid: cannot get grid to draw rows when it is in the middle of drawing rows. \" +\n \"Your code probably called a grid API method while the grid was in the render stage. To overcome \" +\n \"this, put the API call into a timeout, eg instead of api.refreshView(), \" +\n \"call setTimeout(function(){api.refreshView(),0}). To see what part of your code \" +\n \"that caused the refresh check this stacktrace.\");\n }\n this.refreshInProgress = true;\n };\n RowRenderer.prototype.releaseLockOnRefresh = function () {\n this.refreshInProgress = false;\n };\n // sets the focus to the provided cell, if the cell is provided. this way, the user can call refresh without\n // worry about the focus been lost. this is important when the user is using keyboard navigation to do edits\n // and the cellEditor is calling 'refresh' to get other cells to update (as other cells might depend on the\n // edited cell).\n RowRenderer.prototype.restoreFocusedCell = function (cellPosition) {\n if (cellPosition) {\n this.focusedCellController.setFocusedCell(cellPosition.rowIndex, cellPosition.column, cellPosition.rowPinned, true);\n }\n };\n RowRenderer.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n this.forEachRowComp(function (key, rowComp) {\n rowComp.stopEditing(cancel);\n });\n };\n RowRenderer.prototype.forEachCellComp = function (callback) {\n this.forEachRowComp(function (key, rowComp) { return rowComp.forEachCellComp(callback); });\n };\n RowRenderer.prototype.forEachRowComp = function (callback) {\n utils_1._.iterateObject(this.rowCompsByIndex, callback);\n utils_1._.iterateObject(this.floatingTopRowComps, callback);\n utils_1._.iterateObject(this.floatingBottomRowComps, callback);\n };\n RowRenderer.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {\n var rowComp = this.rowCompsByIndex[rowIndex];\n if (rowComp) {\n rowComp.addEventListener(eventName, callback);\n }\n };\n RowRenderer.prototype.flashCells = function (params) {\n if (params === void 0) { params = {}; }\n this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) { return cellComp.flashCell(); });\n };\n RowRenderer.prototype.refreshCells = function (params) {\n if (params === void 0) { params = {}; }\n var refreshCellParams = {\n forceRefresh: params.force,\n newData: false\n };\n this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) { return cellComp.refreshCell(refreshCellParams); });\n };\n RowRenderer.prototype.getCellRendererInstances = function (params) {\n var res = [];\n this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) {\n var cellRenderer = cellComp.getCellRenderer();\n if (cellRenderer) {\n res.push(cellRenderer);\n }\n });\n return res;\n };\n RowRenderer.prototype.getCellEditorInstances = function (params) {\n var res = [];\n this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) {\n var cellEditor = cellComp.getCellEditor();\n if (cellEditor) {\n res.push(cellEditor);\n }\n });\n return res;\n };\n RowRenderer.prototype.getEditingCells = function () {\n var res = [];\n this.forEachCellComp(function (cellComp) {\n if (cellComp.isEditing()) {\n var cellPosition = cellComp.getCellPosition();\n res.push(cellPosition);\n }\n });\n return res;\n };\n // calls the callback for each cellComp that match the provided rowNodes and columns. eg if one row node\n // and two columns provided, that identifies 4 cells, so callback gets called 4 times, once for each cell.\n RowRenderer.prototype.forEachCellCompFiltered = function (rowNodes, columns, callback) {\n var _this = this;\n var rowIdsMap;\n if (utils_1._.exists(rowNodes)) {\n rowIdsMap = {\n top: {},\n bottom: {},\n normal: {}\n };\n rowNodes.forEach(function (rowNode) {\n if (rowNode.rowPinned === constants_1.Constants.PINNED_TOP) {\n rowIdsMap.top[rowNode.id] = true;\n }\n else if (rowNode.rowPinned === constants_1.Constants.PINNED_BOTTOM) {\n rowIdsMap.bottom[rowNode.id] = true;\n }\n else {\n rowIdsMap.normal[rowNode.id] = true;\n }\n });\n }\n var colIdsMap;\n if (utils_1._.exists(columns)) {\n colIdsMap = {};\n columns.forEach(function (colKey) {\n var column = _this.columnController.getGridColumn(colKey);\n if (utils_1._.exists(column)) {\n colIdsMap[column.getId()] = true;\n }\n });\n }\n var processRow = function (rowComp) {\n var rowNode = rowComp.getRowNode();\n var id = rowNode.id;\n var floating = rowNode.rowPinned;\n // skip this row if it is missing from the provided list\n if (utils_1._.exists(rowIdsMap)) {\n if (floating === constants_1.Constants.PINNED_BOTTOM) {\n if (!rowIdsMap.bottom[id]) {\n return;\n }\n }\n else if (floating === constants_1.Constants.PINNED_TOP) {\n if (!rowIdsMap.top[id]) {\n return;\n }\n }\n else {\n if (!rowIdsMap.normal[id]) {\n return;\n }\n }\n }\n rowComp.forEachCellComp(function (cellComp) {\n var colId = cellComp.getColumn().getId();\n var excludeColFromRefresh = colIdsMap && !colIdsMap[colId];\n if (excludeColFromRefresh) {\n return;\n }\n callback(cellComp);\n });\n };\n utils_1._.iterateObject(this.rowCompsByIndex, function (index, rowComp) {\n processRow(rowComp);\n });\n if (this.floatingTopRowComps) {\n this.floatingTopRowComps.forEach(processRow);\n }\n if (this.floatingBottomRowComps) {\n this.floatingBottomRowComps.forEach(processRow);\n }\n };\n RowRenderer.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n var rowIndexesToRemove = Object.keys(this.rowCompsByIndex);\n this.removeRowComps(rowIndexesToRemove);\n };\n RowRenderer.prototype.binRowComps = function (recycleRows) {\n var _this = this;\n var indexesToRemove;\n var rowsToRecycle = {};\n if (recycleRows) {\n indexesToRemove = [];\n utils_1._.iterateObject(this.rowCompsByIndex, function (index, rowComp) {\n var rowNode = rowComp.getRowNode();\n if (utils_1._.exists(rowNode.id)) {\n rowsToRecycle[rowNode.id] = rowComp;\n delete _this.rowCompsByIndex[index];\n }\n else {\n indexesToRemove.push(index);\n }\n });\n }\n else {\n indexesToRemove = Object.keys(this.rowCompsByIndex);\n }\n this.removeRowComps(indexesToRemove);\n return rowsToRecycle;\n };\n // takes array of row indexes\n RowRenderer.prototype.removeRowComps = function (rowsToRemove) {\n var _this = this;\n // if no fromIndex then set to -1, which will refresh everything\n // let realFromIndex = -1;\n rowsToRemove.forEach(function (indexToRemove) {\n var renderedRow = _this.rowCompsByIndex[indexToRemove];\n renderedRow.destroy();\n delete _this.rowCompsByIndex[indexToRemove];\n });\n };\n // gets called when rows don't change, but viewport does, so after:\n // 1) height of grid body changes, ie number of displayed rows has changed\n // 2) grid scrolled to new position\n // 3) ensure index visible (which is a scroll)\n RowRenderer.prototype.redrawAfterScroll = function () {\n this.getLockOnRefresh();\n this.redraw(null, false, true);\n this.releaseLockOnRefresh();\n };\n RowRenderer.prototype.removeRowCompsNotToDraw = function (indexesToDraw) {\n // for speedy lookup, dump into map\n var indexesToDrawMap = {};\n indexesToDraw.forEach(function (index) { return (indexesToDrawMap[index] = true); });\n var existingIndexes = Object.keys(this.rowCompsByIndex);\n var indexesNotToDraw = utils_1._.filter(existingIndexes, function (index) { return !indexesToDrawMap[index]; });\n this.removeRowComps(indexesNotToDraw);\n };\n RowRenderer.prototype.calculateIndexesToDraw = function () {\n var _this = this;\n // all in all indexes in the viewport\n var indexesToDraw = utils_1._.createArrayOfNumbers(this.firstRenderedRow, this.lastRenderedRow);\n // add in indexes of rows we want to keep, because they are currently editing\n utils_1._.iterateObject(this.rowCompsByIndex, function (indexStr, rowComp) {\n var index = Number(indexStr);\n if (index < _this.firstRenderedRow || index > _this.lastRenderedRow) {\n if (_this.doNotUnVirtualiseRow(rowComp)) {\n indexesToDraw.push(index);\n }\n }\n });\n indexesToDraw.sort(function (a, b) { return a - b; });\n return indexesToDraw;\n };\n RowRenderer.prototype.redraw = function (rowsToRecycle, animate, afterScroll) {\n var _this = this;\n if (animate === void 0) { animate = false; }\n if (afterScroll === void 0) { afterScroll = false; }\n this.maxDivHeightScaler.updateOffset();\n this.workOutFirstAndLastRowsToRender();\n // the row can already exist and be in the following:\n // rowsToRecycle -> if model change, then the index may be different, however row may\n // exist here from previous time (mapped by id).\n // this.rowCompsByIndex -> if just a scroll, then this will contain what is currently in the viewport\n // this is all the indexes we want, including those that already exist, so this method\n // will end up going through each index and drawing only if the row doesn't already exist\n var indexesToDraw = this.calculateIndexesToDraw();\n this.removeRowCompsNotToDraw(indexesToDraw);\n // never animate when doing print layout - as we want to get things ready to print as quickly as possible,\n // otherwise we risk the printer printing a row that's half faded (half way through fading in)\n if (this.printLayout) {\n animate = false;\n }\n // add in new rows\n var nextVmTurnFunctions = [];\n var rowComps = [];\n indexesToDraw.forEach(function (rowIndex) {\n var rowComp = _this.createOrUpdateRowComp(rowIndex, rowsToRecycle, animate, afterScroll);\n if (utils_1._.exists(rowComp)) {\n rowComps.push(rowComp);\n utils_1._.pushAll(nextVmTurnFunctions, rowComp.getAndClearNextVMTurnFunctions());\n }\n });\n this.flushContainers(rowComps);\n utils_1._.executeNextVMTurn(nextVmTurnFunctions);\n var useAnimationFrame = afterScroll && !this.gridOptionsWrapper.isSuppressAnimationFrame() && !this.printLayout;\n if (useAnimationFrame) {\n this.beans.taskQueue.addP2Task(this.destroyRowComps.bind(this, rowsToRecycle, animate));\n }\n else {\n this.destroyRowComps(rowsToRecycle, animate);\n }\n this.checkAngularCompile();\n this.gridPanel.updateRowCount();\n };\n RowRenderer.prototype.flushContainers = function (rowComps) {\n utils_1._.iterateObject(this.rowContainers, function (key, rowContainerComp) {\n if (rowContainerComp) {\n rowContainerComp.flushRowTemplates();\n }\n });\n rowComps.forEach(function (rowComp) { return rowComp.afterFlush(); });\n };\n RowRenderer.prototype.onDisplayedColumnsChanged = function () {\n var pinningLeft = this.columnController.isPinningLeft();\n var pinningRight = this.columnController.isPinningRight();\n var atLeastOneChanged = this.pinningLeft !== pinningLeft || pinningRight !== this.pinningRight;\n if (atLeastOneChanged) {\n this.pinningLeft = pinningLeft;\n this.pinningRight = pinningRight;\n if (this.embedFullWidthRows) {\n this.redrawFullWidthEmbeddedRows();\n }\n }\n };\n // when embedding, what gets showed in each section depends on what is pinned. eg if embedding group expand / collapse,\n // then it should go into the pinned left area if pinning left, or the center area if not pinning.\n RowRenderer.prototype.redrawFullWidthEmbeddedRows = function () {\n // if either of the pinned panels has shown / hidden, then need to redraw the fullWidth bits when\n // embedded, as what appears in each section depends on whether we are pinned or not\n var rowsToRemove = [];\n utils_1._.iterateObject(this.rowCompsByIndex, function (id, rowComp) {\n if (rowComp.isFullWidth()) {\n var rowIndex = rowComp.getRowNode().rowIndex;\n rowsToRemove.push(rowIndex.toString());\n }\n });\n this.refreshFloatingRowComps();\n this.removeRowComps(rowsToRemove);\n this.redrawAfterScroll();\n };\n RowRenderer.prototype.refreshFullWidthRows = function () {\n var rowsToRemove = [];\n utils_1._.iterateObject(this.rowCompsByIndex, function (id, rowComp) {\n if (rowComp.isFullWidth()) {\n var fullWidthRowsRefreshed = rowComp.refreshFullWidth();\n if (!fullWidthRowsRefreshed) {\n var rowIndex = rowComp.getRowNode().rowIndex;\n rowsToRemove.push(rowIndex.toString());\n }\n }\n });\n this.removeRowComps(rowsToRemove);\n this.redrawAfterScroll();\n };\n RowRenderer.prototype.createOrUpdateRowComp = function (rowIndex, rowsToRecycle, animate, afterScroll) {\n var rowNode;\n var rowComp = this.rowCompsByIndex[rowIndex];\n // if no row comp, see if we can get it from the previous rowComps\n if (!rowComp) {\n rowNode = this.paginationProxy.getRow(rowIndex);\n if (utils_1._.exists(rowNode) && utils_1._.exists(rowsToRecycle) && rowsToRecycle[rowNode.id] && rowNode.alreadyRendered) {\n rowComp = rowsToRecycle[rowNode.id];\n rowsToRecycle[rowNode.id] = null;\n }\n }\n var creatingNewRowComp = !rowComp;\n if (creatingNewRowComp) {\n // create a new one\n if (!rowNode) {\n rowNode = this.paginationProxy.getRow(rowIndex);\n }\n if (utils_1._.exists(rowNode)) {\n rowComp = this.createRowComp(rowNode, animate, afterScroll);\n }\n else {\n // this should never happen - if somehow we are trying to create\n // a row for a rowNode that does not exist.\n return;\n }\n }\n else {\n // ensure row comp is in right position in DOM\n rowComp.ensureDomOrder();\n }\n if (rowNode) {\n // set node as 'alreadyRendered' to ensure we only recycle rowComps that have been rendered, this ensures\n // we don't reuse rowComps that have been removed and then re-added in the same batch transaction.\n rowNode.alreadyRendered = true;\n }\n this.rowCompsByIndex[rowIndex] = rowComp;\n return rowComp;\n };\n RowRenderer.prototype.destroyRowComps = function (rowCompsMap, animate) {\n var delayedFuncs = [];\n utils_1._.iterateObject(rowCompsMap, function (nodeId, rowComp) {\n // if row was used, then it's null\n if (!rowComp) {\n return;\n }\n rowComp.destroy(animate);\n utils_1._.pushAll(delayedFuncs, rowComp.getAndClearDelayedDestroyFunctions());\n });\n utils_1._.executeInAWhile(delayedFuncs);\n };\n RowRenderer.prototype.checkAngularCompile = function () {\n var _this = this;\n // if we are doing angular compiling, then do digest the scope here\n if (this.gridOptionsWrapper.isAngularCompileRows()) {\n // we do it in a timeout, in case we are already in an apply\n window.setTimeout(function () {\n _this.$scope.$apply();\n }, 0);\n }\n };\n RowRenderer.prototype.workOutFirstAndLastRowsToRender = function () {\n var newFirst;\n var newLast;\n if (!this.paginationProxy.isRowsToRender()) {\n newFirst = 0;\n newLast = -1; // setting to -1 means nothing in range\n }\n else if (this.printLayout) {\n newFirst = this.paginationProxy.getPageFirstRow();\n newLast = this.paginationProxy.getPageLastRow();\n }\n else {\n var paginationOffset = this.paginationProxy.getPixelOffset();\n var maxDivHeightScaler = this.maxDivHeightScaler.getOffset();\n var bodyVRange = this.gridPanel.getVScrollPosition();\n var bodyTopPixel = bodyVRange.top;\n var bodyBottomPixel = bodyVRange.bottom;\n var bufferPixels = this.gridOptionsWrapper.getRowBufferInPixels();\n var firstPixel = bodyTopPixel + paginationOffset + maxDivHeightScaler - bufferPixels;\n var lastPixel = bodyBottomPixel + paginationOffset + maxDivHeightScaler + bufferPixels;\n this.ensureAllRowsInRangeHaveHeightsCalculated(firstPixel, lastPixel);\n var firstRowIndex = this.paginationProxy.getRowIndexAtPixel(firstPixel);\n var lastRowIndex = this.paginationProxy.getRowIndexAtPixel(lastPixel);\n var pageFirstRow = this.paginationProxy.getPageFirstRow();\n var pageLastRow = this.paginationProxy.getPageLastRow();\n // adjust, in case buffer extended actual size\n if (firstRowIndex < pageFirstRow) {\n firstRowIndex = pageFirstRow;\n }\n if (lastRowIndex > pageLastRow) {\n lastRowIndex = pageLastRow;\n }\n newFirst = firstRowIndex;\n newLast = lastRowIndex;\n }\n // sometimes user doesn't set CSS right and ends up with grid with no height and grid ends up\n // trying to render all the rows, eg 10,000+ rows. this will kill the browser. so instead of\n // killing the browser, we limit the number of rows. just in case some use case we didn't think\n // of, we also have a property to not do this operation.\n var rowLayoutNormal = this.gridOptionsWrapper.getDomLayout() === constants_1.Constants.DOM_LAYOUT_NORMAL;\n var suppressRowCountRestriction = this.gridOptionsWrapper.isSuppressMaxRenderedRowRestriction();\n var rowBufferMaxSize = Math.max(this.gridOptionsWrapper.getRowBuffer(), 500);\n if (rowLayoutNormal && !suppressRowCountRestriction) {\n if (newLast - newFirst > rowBufferMaxSize) {\n newLast = newFirst + rowBufferMaxSize;\n }\n }\n var firstDiffers = newFirst !== this.firstRenderedRow;\n var lastDiffers = newLast !== this.lastRenderedRow;\n if (firstDiffers || lastDiffers) {\n this.firstRenderedRow = newFirst;\n this.lastRenderedRow = newLast;\n var event_1 = {\n type: events_1.Events.EVENT_VIEWPORT_CHANGED,\n firstRow: newFirst,\n lastRow: newLast,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n if (this.paginationProxy.isRowsToRender()) {\n var event_2 = {\n type: events_1.Events.EVENT_FIRST_DATA_RENDERED,\n firstRow: newFirst,\n lastRow: newLast,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEventOnce(event_2);\n }\n };\n RowRenderer.prototype.ensureAllRowsInRangeHaveHeightsCalculated = function (topPixel, bottomPixel) {\n // ensureRowHeightsVisible only works with CSRM, as it's the only row model that allows lazy row height calcs.\n // all the other row models just hard code so the method just returns back false\n var rowHeightsChanged = this.paginationProxy.ensureRowHeightsValid(topPixel, bottomPixel, -1, -1);\n if (rowHeightsChanged) {\n // if row heights have changed, we need to resize the containers the rows sit it\n this.sizeContainerToPageHeight();\n // we also need to update heightScaler as this has dependency of row container height\n this.maxDivHeightScaler.updateOffset();\n }\n };\n RowRenderer.prototype.getFirstVirtualRenderedRow = function () {\n return this.firstRenderedRow;\n };\n RowRenderer.prototype.getLastVirtualRenderedRow = function () {\n return this.lastRenderedRow;\n };\n // check that none of the rows to remove are editing or focused as:\n // a) if editing, we want to keep them, otherwise the user will loose the context of the edit,\n // eg user starts editing, enters some text, then scrolls down and then up, next time row rendered\n // the edit is reset - so we want to keep it rendered.\n // b) if focused, we want ot keep keyboard focus, so if user ctrl+c, it goes to clipboard,\n // otherwise the user can range select and drag (with focus cell going out of the viewport)\n // and then ctrl+c, nothing will happen if cell is removed from dom.\n // c) if detail record of master detail, as users complained that the context of detail rows\n // was getting lost when detail row out of view. eg user expands to show detail row,\n // then manipulates the detail panel (eg sorts the detail grid), then context is lost\n // after detail panel is scrolled out of / into view.\n RowRenderer.prototype.doNotUnVirtualiseRow = function (rowComp) {\n var REMOVE_ROW = false;\n var KEEP_ROW = true;\n var rowNode = rowComp.getRowNode();\n var rowHasFocus = this.focusedCellController.isRowNodeFocused(rowNode);\n var rowIsEditing = rowComp.isEditing();\n var rowIsDetail = rowNode.detail;\n var mightWantToKeepRow = rowHasFocus || rowIsEditing || rowIsDetail;\n // if we deffo don't want to keep it,\n if (!mightWantToKeepRow) {\n return REMOVE_ROW;\n }\n // editing row, only remove if it is no longer rendered, eg filtered out or new data set.\n // the reason we want to keep is if user is scrolling up and down, we don't want to loose\n // the context of the editing in process.\n var rowNodePresent = this.paginationProxy.isRowPresent(rowNode);\n return rowNodePresent ? KEEP_ROW : REMOVE_ROW;\n };\n RowRenderer.prototype.createRowComp = function (rowNode, animate, afterScroll) {\n var suppressAnimationFrame = this.gridOptionsWrapper.isSuppressAnimationFrame();\n // we don't use animations frames for printing, so the user can put the grid into print mode\n // and immediately print - otherwise the user would have to wait for the rows to draw in the background\n // (via the animation frames) which is awkward to do from code.\n // we only do the animation frames after scrolling, as this is where we want the smooth user experience.\n // having animation frames for other times makes the grid look 'jumpy'.\n var useAnimationFrameForCreate = afterScroll && !suppressAnimationFrame && !this.printLayout;\n var rowComp = new rowComp_1.RowComp(this.$scope, this.rowContainers.body, this.rowContainers.pinnedLeft, this.rowContainers.pinnedRight, this.rowContainers.fullWidth, rowNode, this.beans, animate, useAnimationFrameForCreate, this.printLayout, this.embedFullWidthRows);\n rowComp.init();\n return rowComp;\n };\n RowRenderer.prototype.getRenderedNodes = function () {\n var renderedRows = this.rowCompsByIndex;\n return Object.keys(renderedRows).map(function (key) {\n return renderedRows[key].getRowNode();\n });\n };\n // we use index for rows, but column object for columns, as the next column (by index) might not\n // be visible (header grouping) so it's not reliable, so using the column object instead.\n RowRenderer.prototype.navigateToNextCell = function (event, key, currentCell, allowUserOverride) {\n // we keep searching for a next cell until we find one. this is how the group rows get skipped\n var nextCell = currentCell;\n var finished = false;\n while (!finished) {\n // if the current cell is spanning across multiple columns, we need to move\n // our current position to be the last cell on the right before finding the\n // the next target.\n if (this.gridOptionsWrapper.isEnableRtl()) {\n if (key === constants_1.Constants.KEY_LEFT) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n }\n else if (key === constants_1.Constants.KEY_RIGHT) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n nextCell = this.cellNavigationService.getNextCellToFocus(key, nextCell);\n // eg if going down, and nextCell=undefined, means we are gone past the last row\n var hitEdgeOfGrid = utils_1._.missing(nextCell);\n if (hitEdgeOfGrid) {\n finished = true;\n continue;\n }\n var rowNode = this.rowPositionUtils.getRowNode(nextCell);\n // we do not allow focusing on full width rows, this includes details rows\n if (rowNode.detail) {\n continue;\n }\n // if not a group, then we have a valid row, so quit the search\n if (!rowNode.group) {\n finished = true;\n continue;\n }\n // full width rows cannot be focused, so if it's a group and using full width rows,\n // we need to skip over the row\n var pivotMode = this.columnController.isPivotMode();\n var usingFullWidthRows = this.gridOptionsWrapper.isGroupUseEntireRow(pivotMode);\n if (!usingFullWidthRows) {\n finished = true;\n }\n }\n // allow user to override what cell to go to next. when doing normal cell navigation (with keys)\n // we allow this, however if processing 'enter after edit' we don't allow override\n if (allowUserOverride) {\n var userFunc = this.gridOptionsWrapper.getNavigateToNextCellFunc();\n if (utils_1._.exists(userFunc)) {\n var params = {\n key: key,\n previousCellPosition: currentCell,\n nextCellPosition: nextCell ? nextCell : null,\n event: event\n };\n var userCell = userFunc(params);\n if (utils_1._.exists(userCell)) {\n if (userCell.floating) {\n utils_1._.doOnce(function () { console.warn(\"ag-Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?\"); }, 'no floating in userCell');\n userCell.rowPinned = userCell.floating;\n }\n nextCell = {\n rowPinned: userCell.rowPinned,\n rowIndex: userCell.rowIndex,\n column: userCell.column\n };\n }\n else {\n nextCell = null;\n }\n }\n }\n // no next cell means we have reached a grid boundary, eg left, right, top or bottom of grid\n if (!nextCell) {\n return;\n }\n // in case we have col spanning we get the cellComp and use it to\n // get the position. This was we always focus the first cell inside\n // the spanning.\n this.ensureCellVisible(nextCell); // ensureCellVisible first, to make sure nextCell is rendered\n var cellComp = this.getComponentForCell(nextCell);\n nextCell = cellComp.getCellPosition();\n // we call this again, as nextCell can be different to it's previous value due to Column Spanning\n // (ie if cursor moving from right to left, and cell is spanning columns, then nextCell was the\n // last column in the group, however now it's the first column in the group). if we didn't do\n // ensureCellVisible again, then we could only be showing the last portion (last column) of the\n // merged cells.\n this.ensureCellVisible(nextCell);\n this.focusedCellController.setFocusedCell(nextCell.rowIndex, nextCell.column, nextCell.rowPinned, true);\n if (this.rangeController) {\n this.rangeController.setRangeToCell(nextCell);\n }\n };\n RowRenderer.prototype.getLastCellOfColSpan = function (cell) {\n var cellComp = this.getComponentForCell(cell);\n if (!cellComp) {\n return cell;\n }\n var colSpanningList = cellComp.getColSpanningList();\n if (colSpanningList.length === 1) {\n return cell;\n }\n return {\n rowIndex: cell.rowIndex,\n column: utils_1._.last(colSpanningList),\n rowPinned: cell.rowPinned\n };\n };\n RowRenderer.prototype.ensureCellVisible = function (gridCell) {\n // this scrolls the row into view\n if (utils_1._.missing(gridCell.rowPinned)) {\n this.gridPanel.ensureIndexVisible(gridCell.rowIndex);\n }\n if (!gridCell.column.isPinned()) {\n this.gridPanel.ensureColumnVisible(gridCell.column);\n }\n // need to nudge the scrolls for the floating items. otherwise when we set focus on a non-visible\n // floating cell, the scrolls get out of sync\n this.gridPanel.horizontallyScrollHeaderCenterAndFloatingCenter();\n // need to flush frames, to make sure the correct cells are rendered\n this.animationFrameService.flushAllFrames();\n };\n RowRenderer.prototype.startEditingCell = function (gridCell, keyPress, charPress) {\n var cell = this.getComponentForCell(gridCell);\n if (cell) {\n cell.startRowOrCellEdit(keyPress, charPress);\n }\n };\n RowRenderer.prototype.getComponentForCell = function (cellPosition) {\n var rowComponent;\n switch (cellPosition.rowPinned) {\n case constants_1.Constants.PINNED_TOP:\n rowComponent = this.floatingTopRowComps[cellPosition.rowIndex];\n break;\n case constants_1.Constants.PINNED_BOTTOM:\n rowComponent = this.floatingBottomRowComps[cellPosition.rowIndex];\n break;\n default:\n rowComponent = this.rowCompsByIndex[cellPosition.rowIndex];\n break;\n }\n if (!rowComponent) {\n return null;\n }\n var cellComponent = rowComponent.getRenderedCellForColumn(cellPosition.column);\n return cellComponent;\n };\n RowRenderer.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case constants_1.Constants.PINNED_TOP:\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case constants_1.Constants.PINNED_BOTTOM:\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n RowRenderer.prototype.onTabKeyDown = function (previousRenderedCell, keyboardEvent) {\n var backwards = keyboardEvent.shiftKey;\n var success = this.moveToCellAfter(previousRenderedCell, backwards);\n if (success) {\n keyboardEvent.preventDefault();\n }\n };\n RowRenderer.prototype.tabToNextCell = function (backwards) {\n var focusedCell = this.focusedCellController.getFocusedCell();\n // if no focus, then cannot navigate\n if (utils_1._.missing(focusedCell)) {\n return false;\n }\n var renderedCell = this.getComponentForCell(focusedCell);\n // if cell is not rendered, means user has scrolled away from the cell\n if (utils_1._.missing(renderedCell)) {\n return false;\n }\n var result = this.moveToCellAfter(renderedCell, backwards);\n return result;\n };\n RowRenderer.prototype.moveToCellAfter = function (previousRenderedCell, backwards) {\n var editing = previousRenderedCell.isEditing();\n var res;\n if (editing) {\n if (this.gridOptionsWrapper.isFullRowEdit()) {\n res = this.moveToNextEditingRow(previousRenderedCell, backwards);\n }\n else {\n res = this.moveToNextEditingCell(previousRenderedCell, backwards);\n }\n }\n else {\n res = this.moveToNextCellNotEditing(previousRenderedCell, backwards);\n }\n return res;\n };\n RowRenderer.prototype.moveToNextEditingCell = function (previousRenderedCell, backwards) {\n var gridCell = previousRenderedCell.getCellPosition();\n // need to do this before getting next cell to edit, in case the next cell\n // has editable function (eg colDef.editable=func() ) and it depends on the\n // result of this cell, so need to save updates from the first edit, in case\n // the value is referenced in the function.\n previousRenderedCell.stopEditing();\n // find the next cell to start editing\n var nextRenderedCell = this.findNextCellToFocusOn(gridCell, backwards, true);\n var foundCell = utils_1._.exists(nextRenderedCell);\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n if (foundCell) {\n nextRenderedCell.startEditingIfEnabled(null, null, true);\n nextRenderedCell.focusCell(false);\n }\n return foundCell;\n };\n RowRenderer.prototype.moveToNextEditingRow = function (previousRenderedCell, backwards) {\n var gridCell = previousRenderedCell.getCellPosition();\n // find the next cell to start editing\n var nextRenderedCell = this.findNextCellToFocusOn(gridCell, backwards, true);\n var foundCell = utils_1._.exists(nextRenderedCell);\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n if (foundCell) {\n this.moveEditToNextCellOrRow(previousRenderedCell, nextRenderedCell);\n }\n return foundCell;\n };\n RowRenderer.prototype.moveToNextCellNotEditing = function (previousRenderedCell, backwards) {\n var gridCell = previousRenderedCell.getCellPosition();\n // find the next cell to start editing\n var nextRenderedCell = this.findNextCellToFocusOn(gridCell, backwards, false);\n var foundCell = utils_1._.exists(nextRenderedCell);\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n if (foundCell) {\n nextRenderedCell.focusCell(true);\n }\n return foundCell;\n };\n RowRenderer.prototype.moveEditToNextCellOrRow = function (previousRenderedCell, nextRenderedCell) {\n var pGridCell = previousRenderedCell.getCellPosition();\n var nGridCell = nextRenderedCell.getCellPosition();\n var rowsMatch = pGridCell.rowIndex === nGridCell.rowIndex && pGridCell.rowPinned === nGridCell.rowPinned;\n if (rowsMatch) {\n // same row, so we don't start / stop editing, we just move the focus along\n previousRenderedCell.setFocusOutOnEditor();\n nextRenderedCell.setFocusInOnEditor();\n }\n else {\n var pRow = previousRenderedCell.getRenderedRow();\n var nRow = nextRenderedCell.getRenderedRow();\n previousRenderedCell.setFocusOutOnEditor();\n pRow.stopEditing();\n nRow.startRowEditing();\n nextRenderedCell.setFocusInOnEditor();\n }\n nextRenderedCell.focusCell();\n };\n // called by the cell, when tab is pressed while editing.\n // @return: RenderedCell when navigation successful, otherwise null\n RowRenderer.prototype.findNextCellToFocusOn = function (gridCell, backwards, startEditing) {\n var nextCell = gridCell;\n while (true) {\n if (!backwards) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n nextCell = this.cellNavigationService.getNextTabbedCell(nextCell, backwards);\n // allow user to override what cell to go to next\n var userFunc = this.gridOptionsWrapper.getTabToNextCellFunc();\n if (utils_1._.exists(userFunc)) {\n var params = {\n backwards: backwards,\n editing: startEditing,\n previousCellPosition: gridCell,\n nextCellPosition: nextCell ? nextCell : null\n };\n var userCell = userFunc(params);\n if (utils_1._.exists(userCell)) {\n if (userCell.floating) {\n utils_1._.doOnce(function () { console.warn(\"ag-Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?\"); }, 'no floating in userCell');\n userCell.rowPinned = userCell.floating;\n }\n nextCell = {\n rowIndex: userCell.rowIndex,\n column: userCell.column,\n rowPinned: userCell.rowPinned\n };\n }\n else {\n nextCell = null;\n }\n }\n // if no 'next cell', means we have got to last cell of grid, so nothing to move to,\n // so bottom right cell going forwards, or top left going backwards\n if (!nextCell) {\n return null;\n }\n // if editing, but cell not editable, skip cell. we do this before we do all of\n // the 'ensure index visible' and 'flush all frames', otherwise if we are skipping\n // a bunch of cells (eg 10 rows) then all the work on ensuring cell visible is useless\n // (except for the last one) which causes grid to stall for a while.\n if (startEditing) {\n var rowNode = this.lookupRowNodeForCell(nextCell);\n var cellIsEditable = nextCell.column.isCellEditable(rowNode);\n if (!cellIsEditable) {\n continue;\n }\n }\n // this scrolls the row into view\n var cellIsNotFloating = utils_1._.missing(nextCell.rowPinned);\n if (cellIsNotFloating) {\n this.gridPanel.ensureIndexVisible(nextCell.rowIndex);\n }\n // pinned columns don't scroll, so no need to ensure index visible\n if (!nextCell.column.isPinned()) {\n this.gridPanel.ensureColumnVisible(nextCell.column);\n }\n // need to nudge the scrolls for the floating items. otherwise when we set focus on a non-visible\n // floating cell, the scrolls get out of sync\n this.gridPanel.horizontallyScrollHeaderCenterAndFloatingCenter();\n // get the grid panel to flush all animation frames - otherwise the call below to get the cellComp\n // could fail, if we just scrolled the grid (to make a cell visible) and the rendering hasn't finished.\n this.animationFrameService.flushAllFrames();\n // we have to call this after ensureColumnVisible - otherwise it could be a virtual column\n // or row that is not currently in view, hence the renderedCell would not exist\n var nextCellComp = this.getComponentForCell(nextCell);\n // if next cell is fullWidth row, then no rendered cell,\n // as fullWidth rows have no cells, so we skip it\n if (utils_1._.missing(nextCellComp)) {\n continue;\n }\n if (nextCellComp.isSuppressNavigable()) {\n continue;\n }\n // by default, when we click a cell, it gets selected into a range, so to keep keyboard navigation\n // consistent, we set into range here also.\n if (this.rangeController) {\n this.rangeController.setRangeToCell(nextCell);\n }\n // we successfully tabbed onto a grid cell, so return true\n return nextCellComp;\n }\n };\n RowRenderer.prototype.lookupRowNodeForCell = function (cell) {\n if (cell.rowPinned === constants_1.Constants.PINNED_TOP) {\n return this.pinnedRowModel.getPinnedTopRow(cell.rowIndex);\n }\n if (cell.rowPinned === constants_1.Constants.PINNED_BOTTOM) {\n return this.pinnedRowModel.getPinnedBottomRow(cell.rowIndex);\n }\n return this.paginationProxy.getRow(cell.rowIndex);\n };\n __decorate([\n context_1.Autowired(\"paginationProxy\"),\n __metadata(\"design:type\", paginationProxy_1.PaginationProxy)\n ], RowRenderer.prototype, \"paginationProxy\", void 0);\n __decorate([\n context_1.Autowired(\"columnController\"),\n __metadata(\"design:type\", columnController_1.ColumnController)\n ], RowRenderer.prototype, \"columnController\", void 0);\n __decorate([\n context_1.Autowired(\"gridOptionsWrapper\"),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], RowRenderer.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.Autowired(\"$scope\"),\n __metadata(\"design:type\", Object)\n ], RowRenderer.prototype, \"$scope\", void 0);\n __decorate([\n context_1.Autowired(\"eventService\"),\n __metadata(\"design:type\", eventService_1.EventService)\n ], RowRenderer.prototype, \"eventService\", void 0);\n __decorate([\n context_1.Autowired(\"pinnedRowModel\"),\n __metadata(\"design:type\", pinnedRowModel_1.PinnedRowModel)\n ], RowRenderer.prototype, \"pinnedRowModel\", void 0);\n __decorate([\n context_1.Autowired(\"rowModel\"),\n __metadata(\"design:type\", Object)\n ], RowRenderer.prototype, \"rowModel\", void 0);\n __decorate([\n context_1.Autowired(\"loggerFactory\"),\n __metadata(\"design:type\", logger_1.LoggerFactory)\n ], RowRenderer.prototype, \"loggerFactory\", void 0);\n __decorate([\n context_1.Autowired(\"focusedCellController\"),\n __metadata(\"design:type\", focusedCellController_1.FocusedCellController)\n ], RowRenderer.prototype, \"focusedCellController\", void 0);\n __decorate([\n context_1.Autowired(\"cellNavigationService\"),\n __metadata(\"design:type\", cellNavigationService_1.CellNavigationService)\n ], RowRenderer.prototype, \"cellNavigationService\", void 0);\n __decorate([\n context_1.Autowired(\"columnApi\"),\n __metadata(\"design:type\", columnApi_1.ColumnApi)\n ], RowRenderer.prototype, \"columnApi\", void 0);\n __decorate([\n context_1.Autowired(\"gridApi\"),\n __metadata(\"design:type\", gridApi_1.GridApi)\n ], RowRenderer.prototype, \"gridApi\", void 0);\n __decorate([\n context_1.Autowired(\"beans\"),\n __metadata(\"design:type\", beans_1.Beans)\n ], RowRenderer.prototype, \"beans\", void 0);\n __decorate([\n context_1.Autowired(\"maxDivHeightScaler\"),\n __metadata(\"design:type\", maxDivHeightScaler_1.MaxDivHeightScaler)\n ], RowRenderer.prototype, \"maxDivHeightScaler\", void 0);\n __decorate([\n context_1.Autowired(\"animationFrameService\"),\n __metadata(\"design:type\", animationFrameService_1.AnimationFrameService)\n ], RowRenderer.prototype, \"animationFrameService\", void 0);\n __decorate([\n context_1.Autowired(\"rowPositionUtils\"),\n __metadata(\"design:type\", rowPosition_1.RowPositionUtils)\n ], RowRenderer.prototype, \"rowPositionUtils\", void 0);\n __decorate([\n context_1.Optional(\"rangeController\"),\n __metadata(\"design:type\", Object)\n ], RowRenderer.prototype, \"rangeController\", void 0);\n __decorate([\n __param(0, context_1.Qualifier(\"loggerFactory\")),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [logger_1.LoggerFactory]),\n __metadata(\"design:returntype\", void 0)\n ], RowRenderer.prototype, \"agWire\", null);\n RowRenderer = __decorate([\n context_1.Bean(\"rowRenderer\")\n ], RowRenderer);\n return RowRenderer;\n}(beanStub_1.BeanStub));\nexports.RowRenderer = RowRenderer;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar cellComp_1 = require(\"./cellComp\");\nvar rowNode_1 = require(\"../entities/rowNode\");\nvar column_1 = require(\"../entities/column\");\nvar events_1 = require(\"../events\");\nvar component_1 = require(\"../widgets/component\");\nvar utils_1 = require(\"../utils\");\nvar RowComp = /** @class */ (function (_super) {\n __extends(RowComp, _super);\n function RowComp(parentScope, bodyContainerComp, pinnedLeftContainerComp, pinnedRightContainerComp, fullWidthContainerComp, rowNode, beans, animateIn, useAnimationFrameForCreate, printLayout, embedFullWidth) {\n var _this = _super.call(this) || this;\n _this.eAllRowContainers = [];\n _this.active = true;\n _this.rowContainerReadyCount = 0;\n _this.refreshNeeded = false;\n _this.columnRefreshPending = false;\n _this.cellComps = {};\n // for animations, there are bits we want done in the next VM turn, to all DOM to update first.\n // instead of each row doing a setTimeout(func,0), we put the functions here and the rowRenderer\n // executes them all in one timeout\n _this.createSecondPassFuncs = [];\n // these get called before the row is destroyed - they set up the DOM for the remove animation (ie they\n // set the DOM up for the animation), then the delayedDestroyFunctions get called when the animation is\n // complete (ie removes from the dom).\n _this.removeFirstPassFuncs = [];\n // for animations, these functions get called 400ms after the row is cleared, called by the rowRenderer\n // so each row isn't setting up it's own timeout\n _this.removeSecondPassFuncs = [];\n _this.initialised = false;\n _this.parentScope = parentScope;\n _this.beans = beans;\n _this.bodyContainerComp = bodyContainerComp;\n _this.pinnedLeftContainerComp = pinnedLeftContainerComp;\n _this.pinnedRightContainerComp = pinnedRightContainerComp;\n _this.fullWidthContainerComp = fullWidthContainerComp;\n _this.rowNode = rowNode;\n _this.rowIsEven = _this.rowNode.rowIndex % 2 === 0;\n _this.paginationPage = _this.beans.paginationProxy.getCurrentPage();\n _this.useAnimationFrameForCreate = useAnimationFrameForCreate;\n _this.printLayout = printLayout;\n _this.embedFullWidth = embedFullWidth;\n _this.setAnimateFlags(animateIn);\n return _this;\n }\n RowComp.prototype.init = function () {\n var _this = this;\n this.rowFocused = this.beans.focusedCellController.isRowFocused(this.rowNode.rowIndex, this.rowNode.rowPinned);\n this.scope = this.createChildScopeOrNull(this.rowNode.data);\n this.setupRowContainers();\n this.addListeners();\n if (this.slideRowIn) {\n this.createSecondPassFuncs.push(function () {\n _this.onTopChanged();\n });\n }\n if (this.fadeRowIn) {\n this.createSecondPassFuncs.push(function () {\n _this.eAllRowContainers.forEach(function (eRow) { return utils_1._.removeCssClass(eRow, 'ag-opacity-zero'); });\n });\n }\n };\n RowComp.prototype.createTemplate = function (contents, extraCssClass) {\n if (extraCssClass === void 0) { extraCssClass = null; }\n var templateParts = [];\n var rowHeight = this.rowNode.rowHeight;\n var rowClasses = this.getInitialRowClasses(extraCssClass).join(' ');\n var rowIdSanitised = utils_1._.escape(this.rowNode.id);\n var userRowStyles = this.preProcessStylesFromGridOptions();\n var businessKey = this.getRowBusinessKey();\n var businessKeySanitised = utils_1._.escape(businessKey);\n var rowTopStyle = this.getInitialRowTopStyle();\n var rowIdx = this.rowNode.getRowIndexString();\n var headerRowCount = this.beans.gridPanel.headerRootComp.getHeaderRowCount();\n templateParts.push(\"